python3-tornado-4.5.3-150000.3.6.1<>,d17p9|4TiU$ 2@]9eh VUQ6+9K-kvb ioϪ nGC(?d % t-NY oi 4i i i |i f%i hXimiu i||@i D X (89:=FGiHxiIiXY\i]\i^j-bڐc9dۺeۿfluiv|w ixiyhz\lpCpython3-tornado4.5.3150000.3.6.1Open source version of scalable, non-blocking web server that power FriendFeedTornado is an open source version of the scalable, non-blocking web server and tools that power FriendFeed. The FriendFeed application is written using a web framework that looks a bit like web.py or Google's webapp, but with additional tools and optimizations to take advantage of the underlying non-blocking infrastructure. The framework is distinct from most mainstream web server frameworks (and certainly most Python frameworks) because it is non-blocking and reasonably fast. Because it is non-blocking and uses epoll, it can handle thousands of simultaneous standing connections, which means it is ideal for real-time web services. We built the web server specifically to handle FriendFeed's real-time features — every active user of FriendFeed maintains an open connection to the FriendFeed servers. (For more information on scaling servers to support thousands of clients, see The C10K problem.)d17s390zp3aCOTSUSE Linux Enterprise 15SUSE LLC Apache-2.0https://www.suse.com/Development/Languages/Pythonhttp://www.tornadoweb.orglinuxs390x# remove egg-info _file_, being replaced by an egg-info directory if [ -f /usr/lib64/python3.6/site-packages/tornado-4.5.3-py3.6.egg-info ]; then rm /usr/lib64/python3.6/site-packages/tornado-4.5.3-py3.6.egg-info fi I>hh DD22**LLcc- - vovo <<A}A}88NGNG((,,TT?G?G))11''{4{4acac6z6zss--g@0I|Y8#D|k1FO,;r0 QS$PP ] ]  4 4   H HJJrrU  A= $V1(DT`z3R!0 j j\p\pHH%d%dۃۃ i ihh$$>>))m#m#LL@V@V!!"{"{%% V V88  ''LL??--.. M>M>..ff $$_/_/55llXd6&+FjDZa>%E+"-E2x+9_,JOS!loXPmx>,&/4PCX%RA d  !)R& 3$"#Vu4g[&sk%* H@! ,^AA큤A큤A큤A큤큤A큤A큤A큤AAA큤AA큤A큤AAA큤A큤A큤A큤A큤A큤큤A큤AA큤AA큤A큤A큤A큤AA큤A큤AA큤A큤A큤AAA큤A큤A큤d1d1d1d1d1d1dtd1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1dtdtdtdtdtdtdtdtdtdtdtdtdtdtdtdtdtdtd1dtd1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1dtdtdtdtdtdtdtdtdtdtdtdtdtdtdtd1dtdtdtdtd1dtdtd1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1d1dtdtdtd1W'dtdtdtd1d1d1W'W'dtdtdtdtdtdtdtdtdtdtdtXbdtdtdtdtdtdtdtdtd1d1W(W(W(W(W(W(dtdtdtd1W(W(W(dtdtdtdtdtdtdtdtdtdtdtdtdtd15ZQd1W'W'd1ZQW'ZQW'W'W'W'W'W'ZQW'd1d1d1d1d1d1d1W'd1W'ZQW'd1d1W'W'W'd1d1d1W'ZQW'd1d1ZQW'XZQXW'd1W'd1ZQW'W'ZQZQW'W'd1d1d1d1d1d1d1d1d1d1d1W'd1d1d1d1d1Xd1Xd1d1d1d15W'5c90ce91e35ab04c3c67afced57bc2e64731c802d257a07b091f8ad3f74ef27683788d0c838ea3558b0632d543aa6de28c0dce45f972583d390852f36da8e65601ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546be5000ad4c78da5681876a5a853c898943b8607c8fa3433e0c7eb925074ded00efd326a40eb5b35f71fd20d56595b19ab12a6aaac550da4e1ded8ef941e512e55a63c5cb88116d33835742e96fc41aca2bb7c9b1e8acaaa4e0d9f6ea845780330629f505e1d46b01e595caf5fbc9c08866a96a093c54a8142291e8027706c7bafe987f08da392581f94055555940aacd4a43ab38bf3dbec1fdb299fa3a3b8fa25ce406616aca572f9f8e447aa672564988f5edabcdf22d2ab81c650923aa1f0144bf6a13de730ab91b575d6d01c0f3a6f079281c2335c9812624ed44fc0d695f0e9956a466c67ca25d326f72bcc22d1ad6845578b76df9b4b6c201d967d8331a54a79f0f7f0f71706762a673cb6b18e2647bca0f9c259e452edde9932df80f45e1fe8f562f9a497459b66072fbc7f7d47a4ad7173d298f73efc67fc51f5c4012ef3a20754d38d93fa9618fe393f4368ef78b4dd09e088e75733083bb0d948f4794ada679f3dbe15cf27f1c14e1ee8bf71cb4ad85789d4aa83ad82f0984beac2d21ae0afe4db4f3febf36e28b35e733a6823d5ff9feb3cc658221ba3072ee34bdd14f9d9eddbec5e8849e98938feedfdddd38cb528afe5d5e0c90cac1bd36ae49486a19467024fa818051156dfdc20dc8347edd08ef34e935dfa38038b22f4a605898a5f91ee38afe69aca24f682b515abec8ae75c86acbcdf686a5ceceb259f8467cb5edbbe6ab747169eee9e91988578a650b5fc9e0cafda995302db0dcf4087898872cfa9b96aa1a5c5f559327fc9133e332dcc2d94dc1b22e0b990730d1b86bf5423ace850101659fb5c5252d564e833d14c0d58dbe60c77f841efcc1acae8f8f24268b3a8c322baa36c618336c2ecd4ad577e47b13aa1093659959c8e5fd68ec6c22b93fadad512dadd650a7959b009ffbc73e9d777e9297c9bd2bd63cbcd67290bdc15c85354c33032b69ccc4971042c49e6265519797f6213900a91be57b73be99a18e961aa5ed39e2d19ec6d3e716e9ffce27490a7e5a280327965a389fa4fd63230d683273e11f3c4af68df8b51db8e1bf349a60817f4984f6bf497ff9e4aea8da1262972b484c04106597cb4df576c5223e0c9b70d361b1f3795749a1d4368c9a8b1d47c04892cc7f63c3a79585e4e1f4414dc033cb68168eb4da1e270c8d0eca374ffcdabed1c106345ea137c641f8c164b39c76cfe313629c84b1865dcf9a978d5612ff475307eeefacb1667648cba809aab95c43d42f3e08b0f7b1d79d15581a04168305daa3c116484d311ed3916e42802283339cef8ed2c0ab9c2c00cfabe3803ac2dd0cbb439aa306652d89d6b30500376c2380f445b46cd658d750def2ce9f86c6ef68c75a7f1d94f43a24f78ffa268daf7252e7ae6adf4d4353c3df849e12aad424269fcdcfb8cf5c29a702a5feda72a50318029173a4b094e1636a06f568820e7538eb575738d52a6541dbb11c5d37dca63c2a38bb1b98940ff0f6bcbe1fb6238583c56a6fdaf144d6bff0d22181fc4b1e224f100b4771a89f497320bb4e27a5b30847b474f98979c3497f456a65326299a47e5ef2f9a5fb53f031fb5b9ea9a7ea0795d721a1e01cfc89f39a76077463a72125925599f14ccf86dc3d9ae7d9a2e084697fe24e8366373da65d06a8670bdbda2ac803563fea5b7f2886a54169765d476154b3e4f248ae1221b229f5078efccb39f866c06860d07ae625a1dc8f05c0b4814793f75c08a6813a552b6149e86b32b1ce8779cc089811723404391e8615acf3933e4b07ddf50d18f9dc2eb9c775ea90b6dd5bc2189bd573985c851e16b31f8d1096bf682963ff298b633d7fba499e841234c8551f3a3759f70d63399e1929f65bb32daaacf2cb9c90033758b04dda393c66bd19bb98ebd7512749a5b20771e3252cd5b5ca6ee41dad0c830bdfa43363a058a30c85c2ba3c5bb06e5445f0e65713162bfea9068e21a78d2b792bba4427fc19d5e0d5b53e82f7a7ae07b4ced81093097f9ddfa7ef2473311aed4ad6af27399431cffcb369e340ef6bceda401d4c751707fc36a476849a51fe53040d484774223207bff789bba3bc76ed590699cfb5e22cef62285cdf02505785f1f7773fbd462214445a18a6062a323665bd48f10cd90dd3808fd5bcfee9043f6a6e5651cd55d463fb0ae7afe2889878109f1f197d795bc275cab73a0d3e0c37fd27fbb71c919cc616bf44f1e7e7dabfae68dd3986f30eace792d00184428061f8f2f8d398a11cc9edf8bdfb0c383314dbcb1046c11f164250fcf10c01ce903be87b45ecac8710fc26e4db5487c8157c802925b97e962ceb95e57471df58b5a6486d366d5704c02030b3991d3a1ca943a3c56960832756bb4fcd302ccbfd9855455895112bfbb90124e46804f3994c6be79f9261a21ca6505f38ad7f03e30d0fa8f7add011aba7dbfbdc58bf499eee0f270b42ca943136588a9214fa9aef1a1811dd9600f56d459a98a9a1cd96c49bfd1bad64d8208805dac2d7b55bf4b4f44f97effb8d0738a62795f2577f1348086bcab41338487870eb696f1a6b883cd1574ed452617f86fc50c9b0931f2b59342349aea8c5ae3e3c31d916d4ad107b7f1980f00339f351d4ea8d4038d98f9ad9638076e3eb698354e00240000315549195ee2889fd21fe73dc625adca844f87a285ba821fa73caf20fd1ff0d07416a015a8f0282ed44db4e2a4cf798b707d21445d52980b1777670f52e0d06d29682b88bb7567bbe089221963f8270e299aaf05cfee72ba7b3334792cf14c5a32ae4b213fbe95ad0f374a15a57cab532bcff5b77cd15a254349bb6bb1754c7b50e4c930da70d9a6e0fc3673120aa2247327962612ba38ceafc1d82ccc5ecaa19193c2e31757a15835980c9998540dd06db115dfc2711dbf75016915221545d92ee9141e1459dd066d17a95a95b9639ef588634abf145ab0b9273a03c66c864c6df3b2d046ce4f1ab890a341befb15b908fe2a7703ca6593d84d87523d1638403169cf76fe1696e7b09b79af17f63b843cd2888c468260a7a9ed9ef599551c06b124ce0e73a2e1241b3994fbd7d2ca47a2f434d151ddf224d681b56e380f34ed8549d28ce71b15195f64c70210d888332486293f9feba3a4a27822c77f555c1b9e0c9e1249e4c3832ba8a4bc601c50afcb312e12d9af718c8bf7afb85e03272fae2a4ddb7cf039f2cafa6ec4e1ef85bf67392f1b47112be889f8b8840733566eebe62275374ad1506d7eddb3f8b6cab12e49db017d19f243a40ca76894c775a5905632e784ab2e5464e2f798bb3bd2f24673436f6704ab7b26b72c7f132541b9a1d42044d93f10c5a8c4cd797721a92382fdc289db8440ed1e0078a77f0f63643a3150a05306116e6ce4ad50078bf7ca546a7a672384727016d1959fac0b3f0657473cacc991109721b2ff97cd301eea8abe9ca81524d6247f3540d6e6c0d33483a3fd2bdf576b9cb2298a387194932d9cf75dc4ec1ad0768f4f043ad18593ce0cdb6466f68d96438b2a38e564ff14cabd62beba8826acdaca3c9d79ead5f0d0af4caaa5fa534513cee1470093d058e750215b4f17db97101814ff6fc945ee2535f70dfd8a74e4759558900821e75db472ed64bed8864166bcc29032b93eec2a88dd516f4fb8927b536230b48561598e402f812ae5c849c2959e19b076c0a2436f266114768aa1265dcd0149a06becb84c58b6027224a999b98c3fb2d807cb2a3ad7e682f7d2bd271483934b3a71e93b277dee029c8c7cbac1c1a4e4ad65a63a665cc932c324f767fbd5233e38e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8556e6b63051088169a80f49350dc6dba67bfbdcff1c4e7cd14b2cc72ceacd28e696e6b63051088169a80f49350dc6dba67bfbdcff1c4e7cd14b2cc72ceacd28e69f710fb5fe6390d2a3b27eb970325ece2141d1b4b36dc5d3cbf009ac001f9bff709f11fc0ad63caf9ca2c0624e876ee5f9277f53b71b8fc2921b6408fd1582ef7877aafabb94fb9a1c6602cd4ae945f8055c5bc95f544e5966af105f9883b0bd434a7ccde7b9eed812ee68367496bad5ce700f712ae4b5594bb51fad251e9608e50fd1af7bc32d89829dd190c8985416652d7123634493f245b8f0b01499b2766ca2cbec7071d89e5a064a3f3f072245764fc285ad168d256b1f0f44c430d84dfec60a96efe1033c633b7d13736dbe64ca2160eec4477ecb6a22dad9733eae8a09022339013f887c62ef4d175dd5735bcae87f12c42d27fdc71e9a0a5876a33e45dff4a798a264e3f3aef56c580e459277a57b9b991764f4c85262518f391740c022bb6ad9acf0dadc8094f2a9f330197e22738cf3f84619a0989a9310b03dc00fbf19f4ebe4bf416b00b374fcf9f943cb536a9df581385e39c287016ef7c476553845ac62e2c0829563c0dfb3a88811214d1f30b34c72646c9e4cc2c9069ff7bad7434a201aa82e664ee899eca020652127ad3999258f0447d270acebd2db1213ee1fb20e870244d13eb1ee1b6a0f78c7c803f33cfeec5f29727694cc634eebf468cec24a9758c1812843418996c27e3b7313cbf69b78e768988103eca47e50bdcf2f0e0d4ad61028e79fec1bcbdcdfafc42164cfd21fee0a5d9aebdab57e656b6329b60507d0b4c218f9262fdcb826072d8ec66fe30c898e6156799e63acc6f751755552b18475844723ecd41569405c9ca3d04696cb5ec203772f65480c50a11518b7c39d950406aa71dc9d503142bf38311849048eeeb31cdb4d117c9f0095e3cf853ca2b3aeecf2ca465a5fc12b408c4f338d1cc018cdf96213eb4cc6d0cdbe28d413df43fedef93851dc978b6689414f877a5a2106d0f7bd816aee8bfc8e3a2d772f158bf1f3ed865983cd9a330ecc7124c6ac68d1c4b556ade180446a680b08a35722ff01654ae90844d65213e9f66044396ec777cf0f89498454f3ed05138b793cad40893fd18909290ee2cb256e8dbfddba441ff90a0cd6310afcdeecd60a7d6e4d2028ca817905b8a2fae6aae92c5600c0afbcc32f7636264fa9e3d9663a5037e6001a4f2d34dfc81409a91027346a64ed3ba9562d62eca7a0417c12e4ee805c23f67a1d12d9cedaac4e8c65b3babc896fca6c7396041e9398fc7b98e5fc0edbaaab74b1915762272793d97a2986bd32b2da9fedba2f45c2eeea91b408dd033a21a1814cb24d9e083f84f9700723f0f2c3a157cadc113e1c49218a298e538fad873236bfec14b393c3c21c3f5f8b4fa0736fd2039b4da80f242106aa97c808bd50dd2f0a6af2d748393e94f22165665c9d27f4555c1908d49dacb6b9fdeda3ebe99f7e8ed120381885fee2c395b29710397a4a67fed06de7e04b75b4c5e0d9d3bb30f13aae762b38d15970dfc41d1553d6652b89966d6642ea2cb829e1dad7df47569e9314a515873d4d335d2873a7d59268ba36e845b346a2c88cd84a64c7a8bf3074998830e8bf1de9f6f9312b908a45d8146133336059d3a67f24b20917d1ff864fb19713c8d52219c4fa0de0e57f9be0ff31cdfdca2006c35c0e7314c29ff7997a86ee4c109974cc99bf982a5ea3bda73acf77c498f70aeff39c82154d8caf4768d72002ed6a64a1021bdba1d5b3b0eef6371f61d5329c1037c8f9a3215f5c2c26a442ad550465e59775d46f0e48be741d1c3d01deaabf7908d62ed49b5e838e30e9c1b436c634f0a6cdef1ed9d73b80397f1f74761dab32279fefe0e65c806c2b43bc5b84148da3efc434bf3abf87172ca24cf2c791cb7306a2511cf40a2aa3604a1e21bb528f210f5021ca1fa64ef7bd84b6f14256a38fd1ce3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8552e6712bd3f5565582e7d9a8dfd2d69fe6754e52e2ea15be3ed87ae562fbc6b08795427d30e7cdc3e68ddde8097fa09723bd09a4c45f8b407baeb810c563045c3795427d30e7cdc3e68ddde8097fa09723bd09a4c45f8b407baeb810c563045c3da622e5c31b5c92eac935ee5616ea070d76fc6a97b6f49e43b04a5be7d491f537f961a1114477b509e19c9f29e2506a902f91632b237647827a28ae0f785ab3ddbc0ffc2cb55b3f1cc04c57f7d1d63c8309410f457da976799b5a8a275b0e88c6d2a094cc33d19df33ea23f182c0623856e279d7d3bc5d301f03f69ae770893710097ff543a5282728f24959dc426798ae146e415ebe19bad281e5d6c31412c4146c7d2c61c22aee1b5a8c06f2a02ef538dbe65f18f9b3c9872e32d8e8e8a086b6374ac9b99eeb439ec38326b1e6917105d5e3cdd56da424049cf2a17ccc4444bd7a0e60c24b6b693ede2a845e958f66729c4e728b91d5449982bb4074cb7902f08553dc2d4ce7c0dff2c873876583ce10d36cae65637c048acd743bb8bc7e59e57a07f6d0a5ee5e1dcd610a851d8775f9d1ea64a1def773961b766833198b374f2604326fc334a67a17fb0d06677d6678c6cf3fc1564b87795b82b4cbae37d916ebb3a50b1f9895df05ab1150e5dbcb20b3565d085fe0bbf7d37658f803033b08c449b7b9e4d03cafda8de714fbd299502c1a25465ffdf28c735a96c0373ffba318cffa1a0cc820c206d62961ddafe0d6cabcb808f5e527bc2ba3b2ea1607d76e928400bb793ac8a63c42a9b2a0eaae37ac18537efacd99e67d9c10767054314f562bbd397b50b04588e0609f2f9570248f52195a425f99ea138ef05c454cba7b6301ddf490a31e230fd70a9c7ddae97dea9b97f32fb84c8999e66d0db619ad7b56cdd3fa724490143c45f3737f3020196270b729ef37228998b4182ee54e9dd93b6e091a229526ac75d3ab9b3fce6677dfb14d5f36067500928571da9261f96a68b88a3b68ef60c8a0ff17a3f7037e07ee10e3786ad7d39b3a0994cb9640ec615d62782cd647dd66fafce8dafb00d4ab31a7b80d80ea635ea25f62e26c0ed86ae8b6e36d19af877e609328c8de0664573274c9c349acbdc40966045a9a04dca2e958c4aeee243f26af8de60719fec2ea52be583b0f6bbb80cbc2c10bab406c263722ce9db553c56d04bc0a95a3c3a9e06cee81e8af1fa7954dbb010e2a2ab07377e55513e1ed36615d464b9a9f8c52d4741a35e150218bba4c0dc540c40169295fd0c81b0b4a02c5c5057bd42fe58f9dce3a894e0483f93848fd7bb5de1ab2ee10027d6843228c10144a09199eb54b0eb3752c2638340c9e40a4b68f369a11c6d61b833381fad6832890fad6153d2480bc2a8ce78ea0fc80c100b3b976cfd38b155f8d7f133cfb648a4ede2ca6de3c1fbaa6ef1a9e351ed58aab58b08a2a4fa86e550238abb4e050b9b75b27fcac536d057d2d91ea1275c64c924a7aa99744a732602093cad8dedbd0cbfd55acfddb77a04d6fb7e806407531e88970f8cabd2e7eec00cc9e33a0a0478efa853c5b32993208eca71561a24ef3a8873006ea0b11590840cfc2fa4a74a375c8b08c41dad3cb8ddcccd1972faaa9cf20c32ec9fc306ce542515fc35c71689ae13fa3621babac6e9c8d1e0781c2495c7452540faacc3c8da372e825c65c3c09c7f2ac2c98ca7d411c2bd39893ba29161a14bf69c85f6493dad2b699ecf620abb6733b71ebf704990a7ed46cceeeaf38c6043e5b0689cf3da25270dc30cf7646b0dd60188c3bac038f4f4eccc5b51efc6e6b9559aa3bfe74860bd3565aba94465892588d1a1bf0b366d482be71ebf3abf0fed634a60d790de109c26d16c5e079a43223e6a2e25b5145d6641484048be556973d83acbc544f7a8cf66b578a0ac860e17889855d34b142e64547a4edb343088ed3f74e38bbbd0d0dd43c3dcd084f9fb73a664268b48677cb66b3918b23592ea92c102fc85e4937eded1393c42cb5fb01712ccecf4ce9319d3031ddb29ec6c3c8c2aac01b8229990208592ed167b4aa4ce2e744ba88a4312b514bff6f01cdabc8c07f6656b45bdb41d67bb5bf08d554bb146a1f47ea5d395b57a935d2ba42057bb1e908d43ed31e29adce93199d6ba970277024f37aae792968a8674306b964e7605b94d48f8e1fcbc1788d88b3f612d44e8bb9c8461f35e3fd76fb6eb1144e751cd17312e7cbdd983f1a3015d8d08320d8a022c94755b2d48c5d5874e9fa3291b6d1044057ab6e6f6be7e3fdc045f7a2175cbc678b2aa4835f96e11289c17e4f96d4692dcc8f87ce909b15f30e1df22a45143fa82c187657b65150eccfca599d50dd0e7bd1270fa4fb05a91c85175965717c0af8590f9bbe3442719bdec800b75b4f70ed0c221cadd32469e2e6c1b55b6ad5603b0c4977614e65fde74ea0a267277cf11867c63e30fd3c5ffbca604ac6c9681c196ff880420311935c89c6eaa31ca90f107cabf893c5087d25be8a373597b5f787cf7412def2733139ace64cd34b1b602c63cb59b9d7fcae24293d354e8441d0c2f4f5f3d5c49884e2f8958444b096b92189157761051f6a4b94632718465e2b8b3fdca97310814119b9d9d76f96cfff22f498c10b153a8205ec87a63927015932f693f871ee82664343a92c54ae6bcfd2d620fba0972d47d85703a05ae7c292ee09bd7c698645dbe64680fec6faac95154aece4992c38ab81023565cb48edbb5e3939756f9e5f1c54111e1a7e0ec4f6ca9ecf9c718a64f6a9d1523c36ae11cbb899c435248f3b4ed69c9a5dc780cf4612c2c1b8833e104dfd518352f79cae748dd685376ad56b2689c30624b722c991531ac26ef5c145e94b38f8c16b054769a9506096f193faf55edb317469893675587b4c79363f691c726450dbc6f044836f57eab277c81cbbc12cf7397fb29cf36d6390a6289f65f9fccbabb2eefb579be2ed19cd90602d58a85af42a29f9f43e726bd5d1768f093b1820f49152b9482e6dba86462faad9cdb390492e3be0a87893b28e84d35f77c8789535d55ec6a814c2c917c43702e45d81ca023f67ec007df5f1306643eb60156bf7af102c8e2ffa3ee5f6be975c2e5baaac3c2b6184384e507a13d551444efefda7ef41ef879690a6f0a23b79009e14653232b9030d96df3b1be617897c02ded34b6056153dc5aa1730be12c89fd27026c4485773a679e4010d1e78208c70d74e63eb7cc1fd131a4d4b3945dd5b4fc881279e2074eeebc42f9df3c4293f2a3bf8257a52d108d7dc92a214129ac4cc55d1098e95498e6a5c51ef717951256a38af751166e13efe18c734f8b8e4f9c401c239eafc7a6c3c63904c9d7cd102bb4b19b8d847323ab210c9f2d5812d274843d61ae9cd81c56c3867093054a89b0a49a47d99440d6b63eafc6cfd5a2775f9de7c48a1caee796efb806ea7138a18810ca772aca23179e26524d5b238c5b9b1f452d6cdfb11449ef704ee09a580a5a249e03ae4756c0c723157d564ebf84cf3905fc8884ef070c2a40ea7225f6911e4320517e4411c6ac11719392d7829172ac35fb1beed9bc2aba781703ab481c74f9e1ec70ea6a2176c6e78bb6862147e74ff46ade51c16d817dad14b0ccdf875730df241d852ee90a645f4280246ea5a9833ce876966aa7bb6d310d3235140b462a69a75d0686af098141b0acf204cda21007e25f09181ee2da623ab7e41ee9622d34412d3719b09ff845e951aa32ccecf66ac3711e6fcd0b84091e02f4c79257f3ab1e2478dc4dc656e3446bf8e8994f8bbbdd777ee309abd687e5d19559225370c14f653f1dbda606785fe1dfc84558a6126eed45ad965ee3a0a5c3a1f2414728a46576e6ac37a6fc37827d59a99458ae8bec8bc3d04d002737fe6eece006f254e1dcdf299b4db07160df20882ea08babb97fb13b19216f37d94a01daf288e43762bb7bdbe0c2c4e32e2e95827d5ce480ee7a64c2628b33be7a22430ea1846915e4e0082fbae9d45907819ee8f8b7762396ec5a745c4b82ded404f25ef74fd23efe033fdf9907c18a33a0446aaf650e295e57fc7526bc6439063eefba5e6cd6e50c071e13edb67f92e4211aebb45c6590e1342dccb0a0c3aca04098f2db42f499dbaa98d88611a0717e34fc81180f5908751973d0ab03b51bc3c206784d305d056dd4cd050255ae4eef43093b66d2dab0a2cb48ff57404d06ab380657df2d7f7abce6332461f43e895720ccbb13feedbe0b7d617d59c224f07612b904f6bccc5d14574bdbe1484c66072840c84266b2710e41eb4de218619065f93d996bfb95e272745304d80e55ed950e3f98dc7df1bcf97b6cfc705a68bcfb4920e5b2bd74257986db5a920ac520712c4f79055bdf082d1d7af6c760282f94a952ea64f8c7d704c84b10da97983f8ae5ad8ca7cf3c444a9f20242ea5c82a703af2a96601dc089df4052fb198764bbb09003c74a323e38cf5fc729f8a83854d6debc3331fdceb6e41dc207cf017a71fd42ac2df47fc416b9fe93d03b71201762413640578b6bf1951f815e0fab6eb442cb11abb6631dbe38d60101171e59ef065f0a351d9ff831f9932d0341fddea80496ec21664d40797df3f786dcadefe3f85b4dac742b54b5b07cc073f678d430a14c91eb463ab55c15e834cfd7a5e0bf67d99a3a2782e0f4a7d288c56dadac54401acc8f78c45cbb6ed17adbf0336254f147791c00c9b686cc0b78c156c6196d8b62286c81338139b4ed2b283dadacecbeb2950f28c15c38b61d0d0ed07467fa06c7ff7a365eff3375380e91b778d8f7b41c016a75128c8494cb40556a7fd034a91874b6aef2ab3ffcfd06f680223fbf331ea9090db0c9f6f597bd9840fd5b171830f6e0b3ba1cb24dfa91f0c95aedc1ecb7937f5e81583b9c8a9b1469964aee80f1b4a10c0c7f6c16db0d4751baa4c1d9097971c5a7692a43753ca2a229e8ec1c3f75c185906fd140ee4b9b971f4fa0fc0a69d302a99f7d6565503d3ffaec972b4f9b87a2e46bcd3d52a1e79afb976f0dd00a001cc76fc92e9c6ac0bd4a132e71e581d4cdfbafcf8c7d62ad59a8926f70cb5fbf9bdb8b4e487501c5bec0d6b003a233627dbc598c3bc79db6fab9082fc1e55a27d93cd05f4e2bc08578413371c6276cbe4481e115ad21da40858001da5995440002021e6db04fd6e1c985c53cac21f9cf9e7b7702eaac485ae0517f98f5dd5e89ac392828d44c26d144897f44b4b2d0b0895da3be6f3545d8bff7d9f3644e3d9d509fb00ec7e1d40f1067e8622d4e71f0df7b3e0c7f3814af2b258bd329b02b5cee62cb34894524fb02d5648f94d4e735d99499f1bee1bffc153804d5fafcbb5688dae5e8da14274324dee0cdfbdcfe7bf9fc33ac2df72e7cc6911e674ff7156519d869663e287d78dc7c6bbc73a7686146a033b1fef978c264e38848dc9ed82ad32cfcdd43ee8736d9e22033400e9533662fb51e83f76a7cf0c4d4876bb95a6958c968412dc8da1ba261aaadd6f8f12443b0687a0be66b2c2ed1ff61ba52bf032177489416d6c06beaf3048822c0165c646c7b5ba46d8a69cf31bccf865de9ddaa33e31a2911ccb113228a9e3eff00b2fc67b63fe78599cea94626f26704f3252e727bc56cd05b054c8a024dcde3bfa9c0b5775dfeeb194331b68f8aee46e31136b04b96849c367edd1df868984c46cf0e7970e2611c55389a28ea05fed21d3fedb28087c0976570a8cb3e31f0b374719d26268b4059f9b82b7a482b4b3fb7e900e341a8d25fc352a2fe3b40eb4c0da91f47b98b609ec7b776127e9afff7d870f6f158a0a5c73d01b6fb21549bf0215e95531fa23c599a317a5ecf932b99043ceef0c8feb15908a6f5af15e486176dc6d9200f40217b9870b40dae7ec885eb5207a2686fb6914e0611de11d67a048f4ac8e9025eccbb80f1d8c40f9f471b30e8b18b09f6e2ad9b8dfbdd799499badcc6b1108b0fdbc8e8d4222cbf47dacba76c5a00a6be4ee2d726f673a44407ce9d5d42e85efaebac7efcad36a640e7d96bcbac182292c74a98925461cd056168881677b59f234baab66aa028ac121881567bf6ee115770aa1e347eec7b54a116c6aa5eb41cf9040fcd14198708d74e61e7f508e1781bf55c2fafaaff3a65f81332e17322da13c093edc7d94ef7a783c0ebf0d743fe835fafa10dcc2996db404df1d0e36cff367eb036eac413eccb020c1c6ae8d91d56f8cba4661733e98e5dcf098422f6acc1e0be0634a3b1806e914944c86b231b88f42c0a5ca674571377adab3261e1e82c1cb78f095ec3a1abcb079b29afce0523de15c4675545f5c13d975d0d685cb204f991775356cddf590234d541c04a5a97b36af321fb23a9b48330d80fbbf5bf6ba3a007ca88c8e109d3e35e3b00995d16045a861e434bf0479e03ee8362a1ea3d0f0be6b5e9f7768bf92047a1ea991ff3d9c432c3c9ffbe21e3b04356a1adfd7eb9c6743d38a0f8098506693de123232335a9a0073dcb168c101085090bd102717caf406ece957e6cbaab65e1087d22621f4fa0531bdee47dedaf119166f8073765ea024784ac2a086cf70d01ad6dc99667b0e08de2ae2ee59eacd60f66fc16e2cf79db9666fd4cf0cf3fa9314359038c8d60aaa739b21ff92f32b6b802d525b0ee44be57334bcd220f89004db4d79a25ffec76630dcb1bcff90855ec4cccf9c1510765dc10d7e716f7f67eac4a7f2ea6c5740541797d0d4542a13ae3be0cae1898887e29483dc5d69d93f3b44aaeb0a8318f904e3d79aa666570d5641da960ca48a2cc09c399dbc7661ec6a22348ebf5a252fe156bfcbc29853808c2d2b886217db35b7f017e5d9dfd25af98617b8fd363741a4dc01f61edf3ffbd1ce2be9e3f4cae49c9df3ce1bdbfaa3e7c4acd4cf504fc552c3f12e1c16683a7aad86ed3dbe61c8bf285616cb0de1eb541973a3102bf2b7cfdf0d74b261967e85c39345e5b23c1ec14ca7c5cf5af6662d44605562e0c3ec70a25b883f5a08c09aba2e518da24f9d7d090a321256ea71ac91c0238fd05e290a14403c214512eb127f157771baeb0afc0aae66c9a197d7eaddfc9567d4e43bff4b2526a31778b16768442d644288a32c7f854f99ccaeb0e12734fa7e926dc6d3706459fcf2628fa280c4490801fe48e42215b99a05e3beb67b542163bc53f485ca3010a27d4dc18b7c4c8bf3864e802eb57e7f540e9b09c7445bcf93e9b7f213987150102cdda85fdcf8668edb9aad98dafbfa7730ee01a5765068f26aec16801be33cac1b9262f74074cea8b36c421b2f183f2c887252deb5ec246d7c2b0a68b469a59026d6c679d958c4d96e563f3cf142cc6e8e5fc76d020fc45e50f1062ec7afb475084fc7047cfafb80afbe5985bd5c54f48bd53edfa3d26b971b28302ba7581fb3b271dd8a894cf9543b0b576b07ed372b5e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85547fed6106a31ebd36abd3b04374b68b4eec7a61dd649bc664296eb099df793c667a100c2357a9b1bce36ea70880f3ce92a4107b6a7231c53b504d4ba1d2926f959e2d678d9928ce75d56a7853605bdfc37f8c9ae97bb2f9f9378a6fc0e04234f465808359a820c95cb44b786f7f7eb79aab07a2802e61bba2bf1d9573ffa650fe2b748ae2ce999868d9f2f59690a3c9ce024456831bfa2bd243a32e7679183b8e07f049425833bcf18fa7aaeef22da33798a14425c4382220b1b44385ea3063758f88ce59fc91b79bd0a491eda2719736df49c430cd560ab4bb8b141d967635658a664c77faa8748007fc52b5a13c0633d77ae0bc52ff1ff7f3915901a9043b7fe83e1e6594814297295a8e37f2822bb5f3cf8f0296e8b69939e224d688d80ca624a38ada9e7bb88b783cb37672079112d989c3ff5f4932be3fe28a7f46227e796cd1f2b86e302a82d61751df139ddd2f66ff22d8644899b0a7528c6754dfcdeadb30bfc11b0bba821faa84143ce43800afdc9b0a1f8da9d76508705cf5db0ee557b89617892015a8dd9db8068935793d88c8b5a1a2d4f2b0333e0d093596422f0ba9e9f19ef0bd4ad0d1f9033bb5d8863619585693ca1ebbc91325f165df01bcfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30demos/appengine/templates/archive.htmldemos/appengine/templates/entry.htmldemos/appengine/templates/feed.xmldemos/appengine/templates/home.htmldemos/chat/static/chat.cssdemos/chat/templates/message.htmlrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpython-tornado-4.5.3-150000.3.6.1.src.rpmpython3-tornadopython3-tornado(s390-64)@@@@@@    /bin/shlibc.so.6()(64bit)libc.so.6(GLIBC_2.2)(64bit)libc.so.6(GLIBC_2.4)(64bit)libpthread.so.0()(64bit)libpython3.6m.so.1.0()(64bit)python(abi)python3python3-simplejsonrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.63.0.4-14.6.0-14.0-15.2-14.14.1dt]ZZ@ZH@Z@ZN@Z'ZfYYY@YMY?Y.@X@X-X)@VzVhVf@V"8@V VV@UpU5@U7@qzhao@suse.comvcizek@suse.comro@suse.deaplanas@suse.comaplanas@suse.comtoddrme2178@gmail.comjmatejek@suse.comtchvatal@suse.comarun@gmx.deopensuse_buildservice@ojkastl.deopensuse_buildservice@ojkastl.detoddrme2178@gmail.comjmatejek@suse.comjmatejek@suse.comdmueller@suse.comtoddrme2178@gmail.comjmatejek@suse.comdmueller@suse.comjmassaguerpla@suse.comtoddrme2178@gmail.comkkaempf@suse.commc@suse.comfcastelli@suse.comtoddrme2178@gmail.comtampakrap@opensuse.orgaboe76@gmail.comseife+obs@b1-systems.commcihar@suse.cz- Add tornado-Fix-an-open-redirect-in-StaticFileHandler.patch: Backport from upstream, Fix an open redirect in StaticFileHandler. Under some configurations the default_filename redirect could be exploited to redirect to an attacker-controlled site. This change refuses to redirect to URLs that could be misinterpreted (CVE-2023-28370 bsc#1211741).- Add patch to skip tests failing with OpenSSL 1.1.1 (bsc#1149792) * it happens only when using TLS 1.3, so if user wants to use tornado, they can hand disable the TLS 1.3 and continue * add tornado-skip-failing-tests.patch- add tornado-testsuite_timeout.patch (bsc#1085661) extend timeouts in testsuite to allow successful build on ppc64le- Allows Recommends and Suggest in Fedora- Recommends only for SUSE- Update to version 4.5.3 + tornado.curl_httpclient * Improved debug logging on Python 3. + tornado.httpserver * ``Content-Length`` and ``Transfer-Encoding`` headers are no longer sent with 1xx or 204 responses (this was already true of 304 responses). * Reading chunked requests no longer leaves the connection in a broken state. + tornado.iostream * Writing a `memoryview` can no longer result in "BufferError: Existing exports of data: object cannot be re-sized". + tornado.options * Duplicate option names are now detected properly whether they use hyphens or underscores. + tornado.testing * `.AsyncHTTPTestCase.fetch` now uses ``127.0.0.1`` instead of ``localhost``, improving compatibility with systems that have partially-working ipv6 stacks. + tornado.web * It is no longer allowed to send a body with 1xx or 204 responses. + tornado.websocket * Requests with invalid websocket headers now get a response with status code 400 instead of a closed connection.- only buildrequire futures / singledispatch if python2 is present (fixes build in environments that don't have python2 at all)- Distribute license file- specfile: * removed tornado-configtest.patch: fixed upstream * update tornado-async-deprecation.patch (partly integrated) - update to version 4.5.2: * Tornado now sets the FD_CLOEXEC flag on all file descriptors it creates. This prevents hanging client connections and resource leaks when the tornado.autoreload module (or Application(debug=True)) is used. - changes from version 4.5.1: * tornado.log + Improved detection of libraries for colorized logging. * tornado.httputil + url_concat once again treats None as equivalent to an empty sequence. - changes from version 4.5.0: * long changelog, see http://www.tornadoweb.org/en/stable/releases/v4.5.0.html for details- added %{python_module backports.ssl_match_hostname} on SLES12 GA aka SP0, to avoid build errors - explicit BuildRequires for certifi on SLES12 GA aka SP0 only- added certifi to BuildRequires, to fix 'ImportError: No module named certifi'- Fix tests- in %pre, remove egg-info file if installed, because it's being replaced by a directory (bsc#1035604)- replace the complicated condition for requiring backports.ssl_match_hostname with unconditional requirement for Python >= 2.7.9- require python-backports.ssl_hostname only on python 2.x- update to 4.4.3 * The `tornado.auth` module has been updated for compatibility with `a change to Facebook's access_token endpoint.- tornado-configtest.patch: fix test failure when __file__ is not absolute - tornado-async-deprecations.patch: filter test failures due to async deprecation warnings, to fix build on python 3.6 - update for multipython build - enable test suite- update to 4.4.2: * Tornado now requires Python 2.7 or 3.3+; versions 2.6 and 3.2 are no longer supported. Pypy3 is still supported even though its latest release is mainly based on Python 3.2. * The `monotonic `_ package is now supported as an alternative to `Monotime `_ for monotonic clock support on Python 2.- add singledispatch and backports_abc dependencies as stated in docs/releases/v4.3.0.rst * Tornado has several new dependencies: (...) ``singledispatch`` on all Python versions prior to 3.4 (This was an optional dependency in prior versions of Tornado, and is now mandatory), and ``backports_abc>=0.4`` on all versions prior to 3.5 Since this python module works with python version >= 2.7.9 (otherwise it would be called python3-tornado, afaiu)- Switch to pypi tarball. It uses "4.3" instead of "4.3.0"- Update to 4.3.0 - The new async/await keywords in Python 3.5 are supported. Deprecation notice - This will be the last release of Tornado to support Python 2.6 or 3.2. See http://www.tornadoweb.org/en/stable/releases/v4.3.0.html- fix macro - use package name python-backports-ssl_match_hostname on rhel7 - define py_ver where it does not exist- python-certifi is an optional depedency when python 2.7.9 is available.- python-certifi is a hard dependency, not an optional one.- Remove python-Twisted BuildRequires. It causes a python-cryptography build dependency, which is currently broken on SLE11SP4 due to old OpenSSL version- Update to 4.2.1: Security fix: * This release fixes a path traversal vulnerability in StaticFileHandler, in which files whose names started with the static_path directory but were not actually in that directory could be accessed. - Update to 4.2: Backwards-compatibility: * SSLIOStream.connect and IOStream.start_tls now validate certificates by default. * Certificate validation will now use the system CA root certificates instead of certifi when possible (i.e. Python 2.7.9+ or 3.4+). This includes IOStream and simple_httpclient, but not curl_httpclient * The default SSL configuration has become stricter, using ssl.create_default_context where available on the client side. (On the server side, applications are encouraged to migrate from the ssl_options dict-based API to pass an ssl.SSLContext instead). * The deprecated classes in the tornado.auth module, GoogleMixin, FacebookMixin, and FriendFeedMixin have been removed. * see more details: http://www.tornadoweb.org/en/stable/releases/v4.2.0.html- fix build with non-SUSE distributions- Update to 4.1: * If a `.Future` contains an exception but that exception is never examined or re-raised (e.g. by yielding the `.Future`), a stack trace will be logged when the `.Future` is garbage-collected. * New class `tornado.gen.WaitIterator` provides a way to iterate over ``Futures`` in the order they resolve. * The `tornado.websocket` module now supports compression via the "permessage-deflate" extension. Override `.WebSocketHandler.get_compression_options` to enable on the server side, and use the ``compression_options`` keyword argument to `.websocket_connect` on the client side. * When the appropriate packages are installed, it is possible to yield `asyncio.Future` or Twisted ``Defered`` objects in Tornado coroutines./bin/shs390zp3a 1688088887  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi4.5.3-150000.3.6.14.5.3-150000.3.6.1   ! ""#$%%&&''(('))*+,tornadotornado-4.5.3-py3.6.egg-infoPKG-INFOSOURCES.txtdependency_links.txttop_level.txt__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pyc_locale_data.cpython-36.opt-1.pyc_locale_data.cpython-36.pycauth.cpython-36.opt-1.pycauth.cpython-36.pycautoreload.cpython-36.opt-1.pycautoreload.cpython-36.pycconcurrent.cpython-36.opt-1.pycconcurrent.cpython-36.pyccurl_httpclient.cpython-36.opt-1.pyccurl_httpclient.cpython-36.pycescape.cpython-36.opt-1.pycescape.cpython-36.pycgen.cpython-36.opt-1.pycgen.cpython-36.pychttp1connection.cpython-36.opt-1.pychttp1connection.cpython-36.pychttpclient.cpython-36.opt-1.pychttpclient.cpython-36.pychttpserver.cpython-36.opt-1.pychttpserver.cpython-36.pychttputil.cpython-36.opt-1.pychttputil.cpython-36.pycioloop.cpython-36.opt-1.pycioloop.cpython-36.pyciostream.cpython-36.opt-1.pyciostream.cpython-36.pyclocale.cpython-36.opt-1.pyclocale.cpython-36.pyclocks.cpython-36.opt-1.pyclocks.cpython-36.pyclog.cpython-36.opt-1.pyclog.cpython-36.pycnetutil.cpython-36.opt-1.pycnetutil.cpython-36.pycoptions.cpython-36.opt-1.pycoptions.cpython-36.pycprocess.cpython-36.opt-1.pycprocess.cpython-36.pycqueues.cpython-36.opt-1.pycqueues.cpython-36.pycrouting.cpython-36.opt-1.pycrouting.cpython-36.pycsimple_httpclient.cpython-36.opt-1.pycsimple_httpclient.cpython-36.pycstack_context.cpython-36.opt-1.pycstack_context.cpython-36.pyctcpclient.cpython-36.opt-1.pyctcpclient.cpython-36.pyctcpserver.cpython-36.opt-1.pyctcpserver.cpython-36.pyctemplate.cpython-36.opt-1.pyctemplate.cpython-36.pyctesting.cpython-36.opt-1.pyctesting.cpython-36.pycutil.cpython-36.opt-1.pycutil.cpython-36.pycweb.cpython-36.opt-1.pycweb.cpython-36.pycwebsocket.cpython-36.opt-1.pycwebsocket.cpython-36.pycwsgi.cpython-36.opt-1.pycwsgi.cpython-36.pyc_locale_data.pyauth.pyautoreload.pyconcurrent.pycurl_httpclient.pyescape.pygen.pyhttp1connection.pyhttpclient.pyhttpserver.pyhttputil.pyioloop.pyiostream.pylocale.pylocks.pylog.pynetutil.pyoptions.pyplatform__init__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pycasyncio.cpython-36.opt-1.pycasyncio.cpython-36.pycauto.cpython-36.opt-1.pycauto.cpython-36.pyccaresresolver.cpython-36.opt-1.pyccaresresolver.cpython-36.pyccommon.cpython-36.opt-1.pyccommon.cpython-36.pycepoll.cpython-36.opt-1.pycepoll.cpython-36.pycinterface.cpython-36.opt-1.pycinterface.cpython-36.pyckqueue.cpython-36.opt-1.pyckqueue.cpython-36.pycposix.cpython-36.opt-1.pycposix.cpython-36.pycselect.cpython-36.opt-1.pycselect.cpython-36.pyctwisted.cpython-36.opt-1.pyctwisted.cpython-36.pycwindows.cpython-36.opt-1.pycwindows.cpython-36.pycasyncio.pyauto.pycaresresolver.pycommon.pyepoll.pyinterface.pykqueue.pyposix.pyselect.pytwisted.pywindows.pyprocess.pyqueues.pyrouting.pysimple_httpclient.pyspeedups.cpython-36m-s390x-linux-gnu.sostack_context.pytcpclient.pytcpserver.pytemplate.pytest__init__.py__main__.py__pycache____init__.cpython-36.opt-1.pyc__init__.cpython-36.pyc__main__.cpython-36.opt-1.pyc__main__.cpython-36.pycasyncio_test.cpython-36.opt-1.pycasyncio_test.cpython-36.pycauth_test.cpython-36.opt-1.pycauth_test.cpython-36.pycconcurrent_test.cpython-36.opt-1.pycconcurrent_test.cpython-36.pyccurl_httpclient_test.cpython-36.opt-1.pyccurl_httpclient_test.cpython-36.pycescape_test.cpython-36.opt-1.pycescape_test.cpython-36.pycgen_test.cpython-36.opt-1.pycgen_test.cpython-36.pychttp1connection_test.cpython-36.opt-1.pychttp1connection_test.cpython-36.pychttpclient_test.cpython-36.opt-1.pychttpclient_test.cpython-36.pychttpserver_test.cpython-36.opt-1.pychttpserver_test.cpython-36.pychttputil_test.cpython-36.opt-1.pychttputil_test.cpython-36.pycimport_test.cpython-36.opt-1.pycimport_test.cpython-36.pycioloop_test.cpython-36.opt-1.pycioloop_test.cpython-36.pyciostream_test.cpython-36.opt-1.pyciostream_test.cpython-36.pyclocale_test.cpython-36.opt-1.pyclocale_test.cpython-36.pyclocks_test.cpython-36.opt-1.pyclocks_test.cpython-36.pyclog_test.cpython-36.opt-1.pyclog_test.cpython-36.pycnetutil_test.cpython-36.opt-1.pycnetutil_test.cpython-36.pycoptions_test.cpython-36.opt-1.pycoptions_test.cpython-36.pycprocess_test.cpython-36.opt-1.pycprocess_test.cpython-36.pycqueues_test.cpython-36.opt-1.pycqueues_test.cpython-36.pycresolve_test_helper.cpython-36.opt-1.pycresolve_test_helper.cpython-36.pycrouting_test.cpython-36.opt-1.pycrouting_test.cpython-36.pycruntests.cpython-36.opt-1.pycruntests.cpython-36.pycsimple_httpclient_test.cpython-36.opt-1.pycsimple_httpclient_test.cpython-36.pycstack_context_test.cpython-36.opt-1.pycstack_context_test.cpython-36.pyctcpclient_test.cpython-36.opt-1.pyctcpclient_test.cpython-36.pyctcpserver_test.cpython-36.opt-1.pyctcpserver_test.cpython-36.pyctemplate_test.cpython-36.opt-1.pyctemplate_test.cpython-36.pyctesting_test.cpython-36.opt-1.pyctesting_test.cpython-36.pyctwisted_test.cpython-36.opt-1.pyctwisted_test.cpython-36.pycutil.cpython-36.opt-1.pycutil.cpython-36.pycutil_test.cpython-36.opt-1.pycutil_test.cpython-36.pycweb_test.cpython-36.opt-1.pycweb_test.cpython-36.pycwebsocket_test.cpython-36.opt-1.pycwebsocket_test.cpython-36.pycwindows_test.cpython-36.opt-1.pycwindows_test.cpython-36.pycwsgi_test.cpython-36.opt-1.pycwsgi_test.cpython-36.pycasyncio_test.pyauth_test.pyconcurrent_test.pycsv_translationsfr_FR.csvcurl_httpclient_test.pyescape_test.pygen_test.pygettext_translationsfr_FRLC_MESSAGEStornado_test.motornado_test.pohttp1connection_test.pyhttpclient_test.pyhttpserver_test.pyhttputil_test.pyimport_test.pyioloop_test.pyiostream_test.pylocale_test.pylocks_test.pylog_test.pynetutil_test.pyoptions_test.cfgoptions_test.pyprocess_test.pyqueues_test.pyresolve_test_helper.pyrouting_test.pyruntests.pysimple_httpclient_test.pystack_context_test.pystaticdirindex.htmlrobots.txtsample.xmlsample.xml.bz2sample.xml.gzstatic_foo.txttcpclient_test.pytcpserver_test.pytemplate_test.pytemplatesutf8.htmltest.crttest.keytesting_test.pytwisted_test.pyutil.pyutil_test.pyweb_test.pywebsocket_test.pywindows_test.pywsgi_test.pytesting.pyutil.pyweb.pywebsocket.pywsgi.pypython3-tornadodemosappengineREADMEapp.yamlblog.pystaticblog.csstemplatesarchive.htmlbase.htmlcompose.htmlentry.htmlfeed.xmlhome.htmlmodulesentry.htmlbenchmarkbenchmark.pychunk_benchmark.pygen_benchmark.pystack_context_benchmark.pytemplate_benchmark.pyblogREADMEblog.pyschema.sqlstaticblog.csstemplatesarchive.htmlbase.htmlcompose.htmlcreate_author.htmlentry.htmlfeed.xmlhome.htmllogin.htmlmodulesentry.htmlchatchatdemo.pystaticchat.csschat.jstemplatesindex.htmlmessage.htmlfacebookREADMEfacebook.pystaticfacebook.cssfacebook.jstemplatesmodulespost.htmlstream.htmlfile_uploadfile_receiver.pyfile_uploader.pyhelloworldhelloworld.pys3servers3server.pytcpechoclient.pyserver.pytwitterhome.htmltwitterdemo.pywebsocketchatdemo.pystaticchat.csschat.jstemplatesindex.htmlmessage.htmlwebspiderwebspider.pypython3-tornadoLICENSE/usr/lib64/python3.6/site-packages//usr/lib64/python3.6/site-packages/tornado-4.5.3-py3.6.egg-info//usr/lib64/python3.6/site-packages/tornado//usr/lib64/python3.6/site-packages/tornado/__pycache__//usr/lib64/python3.6/site-packages/tornado/platform//usr/lib64/python3.6/site-packages/tornado/platform/__pycache__//usr/lib64/python3.6/site-packages/tornado/test//usr/lib64/python3.6/site-packages/tornado/test/__pycache__//usr/lib64/python3.6/site-packages/tornado/test/csv_translations//usr/lib64/python3.6/site-packages/tornado/test/gettext_translations//usr/lib64/python3.6/site-packages/tornado/test/gettext_translations/fr_FR//usr/lib64/python3.6/site-packages/tornado/test/gettext_translations/fr_FR/LC_MESSAGES//usr/lib64/python3.6/site-packages/tornado/test/static//usr/lib64/python3.6/site-packages/tornado/test/static/dir//usr/lib64/python3.6/site-packages/tornado/test/templates//usr/share/doc/packages//usr/share/doc/packages/python3-tornado//usr/share/doc/packages/python3-tornado/demos//usr/share/doc/packages/python3-tornado/demos/appengine//usr/share/doc/packages/python3-tornado/demos/appengine/static//usr/share/doc/packages/python3-tornado/demos/appengine/templates//usr/share/doc/packages/python3-tornado/demos/appengine/templates/modules//usr/share/doc/packages/python3-tornado/demos/benchmark//usr/share/doc/packages/python3-tornado/demos/blog//usr/share/doc/packages/python3-tornado/demos/blog/static//usr/share/doc/packages/python3-tornado/demos/blog/templates//usr/share/doc/packages/python3-tornado/demos/blog/templates/modules//usr/share/doc/packages/python3-tornado/demos/chat//usr/share/doc/packages/python3-tornado/demos/chat/static//usr/share/doc/packages/python3-tornado/demos/chat/templates//usr/share/doc/packages/python3-tornado/demos/facebook//usr/share/doc/packages/python3-tornado/demos/facebook/static//usr/share/doc/packages/python3-tornado/demos/facebook/templates//usr/share/doc/packages/python3-tornado/demos/facebook/templates/modules//usr/share/doc/packages/python3-tornado/demos/file_upload//usr/share/doc/packages/python3-tornado/demos/helloworld//usr/share/doc/packages/python3-tornado/demos/s3server//usr/share/doc/packages/python3-tornado/demos/tcpecho//usr/share/doc/packages/python3-tornado/demos/twitter//usr/share/doc/packages/python3-tornado/demos/websocket//usr/share/doc/packages/python3-tornado/demos/websocket/static//usr/share/doc/packages/python3-tornado/demos/websocket/templates//usr/share/doc/packages/python3-tornado/demos/webspider//usr/share/licenses//usr/share/licenses/python3-tornado/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:29669/SUSE_SLE-15_Update/00c2b5f6213f4a866881ebada7a8c6d8-python-tornado.SUSE_SLE-15_Updatedrpmxz5s390x-suse-linux    directoryPython script, ASCII text executableASCII textpython 3.6 byte-compiledPython script, UTF-8 Unicode text executableemptyELF 64-bit MSB shared object, IBM S/390, version 1 (SYSV), dynamically linked, BuildID[sha1]=9899361d5a22f7c728e82fc3560ecac9521a7f53, strippedUTF-8 Unicode textGNU gettext message catalogue, UTF-8 Unicode textXML 1.0 document, ASCII textXML 1.0 document, ASCII text (bzip2 compressed data, block size = 900k)XML 1.0 document, ASCII text (gzip compressed data, was "sample.xml", last modified: Thu Jul 30 02:32:39 2015, max compression, from Unix)Python script, ASCII text executable, with very long linesHTML document, ASCII text  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRm,@w 3tpython3-Twistedpython3-pycarespython3-pycurlpython3-service_identityutf-8a50981d94c916e9a48364a2bb1300e1fc5eb9ce3a1906337bb17bc92600875ed?7zXZ !t/.]"k%w#) `>fhFaC&A@.`TՁbZe2SYM#*8==-ffQV 6G~p bX%;"!Kdry+br6X:hj'pgV[`;'9Ao-ENޣ ΃jG/zBX ;}Pm& < #t˴\b45sCaȁ݊{Y%P؞`Nzai4i?l IG+wzO;"NYtuy5:C'u!Bk=rOlņ湋tE(s՝ U&#SOG|E ? NJ]@V(Ac hϴQd]*yMeJ/Ff*rHu41h7҄?(:Pc`bVDd'ћ;zyevx2 0M ̎Koo^@K qg+lH['ƢuC $JQyג⨑^YnLdڇbxcCn#٥aggSl"_$d5L8dodLnRq9 :UNspP ZXv/܌'}d fuK2 ƿ6!z6(}8kr\z>ALatX%j9=wqUdl!Gp}9("`Sq4t8`.r=<]PB~(1muJM5Q}+#S7Iw**kZf]ʃ)]J"G-"9xo/b"MQX_I z{$~-r}<ꅍaR'LU&&˜o85ӊD+rb7wnGt1"28v4)g^.ؒT&<]1Ϸ L/F#G Ck拻ͫw7$,0pZAZ=xU-%~ &)ڐ0;*J"y~^S At Uk.JNk\VIJ$vC}T%] <us smg/078JWCE)LlcPOO볇I~~ S>q u%}( baORPwftamS|_ˡ^ ׫8Imkg3IΔ-2I+2|F~ĦSLΙ&\Z X[[dꨬJm7\pLcV;#.bjb99AXqfA TrF?I6QT[%ͫ2w]55M ? qlxx}V ;Q+5CZ7Z"X`|f ?$zebKg:?͕޺R7=HDZ`j_m?tL47[RL5aW?qK$ӌaL,%yNm@GEʭig3u,Wf/|Ho \.\K#} GymĂqh/d `kb@c ѳ\|=AeuK7uvΫuto1V,,]^#+of q䥇(PQHY?τP}j2q 5Y02^g6gPk\/=A>\[ӻV( a~EYqeþ;9boeK1Tx4VnO1UPs>so6l4~'q˴ɊUm9 Yϕ݆cV@e2ܢLHTEA-vH+#^;9DZuXs8 :j Xڲ>`m 5F2EM܊Q\W:y6w6]b4(+) n]1K2@ )?aM;ShŠk5vb"$`#LjE ׏ p!F7gsI{>Rhɔm6A1OCw /hXv&Yn[ ZhM G,6ykkoJZ 78NAш3D ȕ=\;(5mesr֯}h{(P2j$1jJHmw-f*\$KCҕk%q &/m|mߺ sԚEqY0z#F}_R%8H̗#;c^2=SZ=ق_{+Luqf;WnУxZٞZUOTXܣ*$!!w@];a@RJFh=6vaaK[d3h)㧗vVĮXa%`>q@Ktp\_IܸK(h*ƼI$%zO=OX±WGJrkYʩu}<,X.i>mU(>zQQ<'! @Ksy"3[3B6S7{ xfΝMQ&TcHb 0EhoUY<^5W~GΟ{CN2r8b="ƥՖDv+ڐdG3,g/VЫ '&wWHk9iyr"R-ɧO.&XeMywN.dkfCQ%-JB-y5]GP(ԮMy9E?zˉ+]r A(Bw 3ޝRY:vE4i/ %:X+v>KlM:n pN("sOyJjpt/0+=9vؕkJQZNUFvޜoMjc.>rv~O\=Ҍ$NG+&!x4܂.96tB~&g# T˖Aj)>tśŬL`{LR7/r.*߼tw`OWy$Y5 pvA(Eߓ ٢XctAO}v2`ݰmJž3M_:aIrL 3%j\ИC]{\r0,Yi18E90~ڮEcoTɁOtl/r ޡ0Z@!;~R#>S\?fwːgHQ6(1gn'iˀNGILĴ ,k7oFms%2EI haޠ}tQwߺE)llx|q]R0ǮDu8Gy.Dp`AAK W;x>O(h|g%_ $Y{4vX; Pwn&K0ȦUh`[$pkHЌo75Ƅ=flDZ>Ytl>/ծl/FhBj9 f?`KsZrꖘC "UL"Q/(;lb!/^Gq}Y> J6 'Up Kcu%gc L.0'zE>?YCsΚIh7tnsvCYv%(L؃uvJU/C?_ TX IUv 3XĺDSf~|?bP0lyjG+ݕd W^xz))I":knn*0AMY/0:~L  ,cLdTQ[(mibXI4KtknXF?]9 螉=Q#r;[/ыV5|b֍Ry5nvHU!k2gp&U ҠǻƼ8ƈMyP _.R/6i T/. sG%Etv4 xd2vD5=Xxj뭦"Oم́r+/FaEVڌp}+rRD66dhEE{t B8u6Aߑ9-ĽγI\hFxPQ~݅Ѫ¡,MXv64Q$s sBT8"2;7&R;opS+X=KMy8Dl0绚:栔Yuy6bD?q_\ҿ+@PH[(etԫ&v/ͶT8ZUil½pxJ@n7 }MD "X6+ )$XEȋ]Ԣv6c-ˊJ{n؉h4`ɏRVeôqI|bFO oC6~0],R YZ