From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Wed, 22 Jan 2003 03:07:42 +0300 From: =?KOI8-R?B?IuHMxcvTxcog7MDCyc3P1yI=?= To: devel Message-Id: <20030122030742.607e4afc.avl@l14.ru> Organization: Chipok X-Mailer: Sylpheed version 0.8.6 (GTK+ 1.2.10; i586-alt-linux) Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart_Wed__22_Jan_2003_03:07:42_+0300_0825d880" Subject: [devel] =?KOI8-R?B?88vSydDUIMTM0SDawdfP0sHeydfBzsnRINDBy8XUz9cg1yDSxdDP2g==?= =?KOI8-R?B?ydTB0snKLg==?= Sender: devel-admin@altlinux.ru Errors-To: devel-admin@altlinux.ru X-BeenThere: devel@altlinux.ru X-Mailman-Version: 2.0.9 Precedence: bulk Reply-To: devel@altlinux.ru List-Unsubscribe: , List-Id: List-Post: List-Help: List-Subscribe: , List-Archive: Archived-At: List-Archive: List-Post: This is a multi-part message in MIME format. --Multipart_Wed__22_Jan_2003_03:07:42_+0300_0825d880 Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: 8bit Вот, в первая прикидка для скрипта, создающего репозитарий из набора rpm и src.rpm. Хотелось бы , чтобы знающий народ посмотрел на предмет кривых решений в скрипте. --Multipart_Wed__22_Jan_2003_03:07:42_+0300_0825d880 Content-Type: application/octet-stream; name="config.py" Content-Disposition: attachment; filename="config.py" Content-Transfer-Encoding: base64 aW1wb3J0IHJlLCBvcwoKI8TJ0sXL1M/SyckuCiMg09DJ08/LIMTJ0sXL1M/Sycog0yAqLnJwbSDQ wcvF1MHNySAKIzEuIPzUzyDJzcXOzs8g09DJ08/LLCDBIM7FINPU0s/LwS4g98HSycHO1CDTIM/E zs/KINPU0s/Lz8ogyc3FxdQg18nEICAoItDV1NgiLCkgCiMyLiDw1dTJIMTPzNbO2SDC2dTYIMHC 08/MwNTO2c3JLiDv1M7P08nUxczYztnFINDV1Mkg0NLJ18XE1dQgyyDOxdDSwdfJzNjO2c0g09PZ zMvBzSDXINLF0M/aydTB0snRyC4KcnBtX2RpcnM9KCIuL3JwbXMiLCkKc3JjX3JwbV9kaXJzPSgi Li9zcnBtcyIsKQoKI9fF0tvJzsEgxMXSxdfBINMgx8/Uz9fZzckg0sXQz9rJ1MHSydHNyQp0b3Bf ZGlyPW9zLnBhdGguYWJzcGF0aCgiLi9vdXQiKQoKI+/Qw8nJCmVuYWJsZV9ycG09VHJ1ZQkJI+/C 0sHCwdTZ18HU2CDEydLFy9TP0snAINMg0tDN2SAKZW5hYmxlX3NyY19ycG09VHJ1ZQkj78LSwcLB 1NnXwdTYIHNyYy5ycG0Kc2VwYXJhdGVfcnBtX2FuZF9zcmNfcnBtPVRydWUJI/LB2sTFzMnU2CBy cG0gySBzcmMucnBtINcgz9TExczYztnFINLF0M/aydTB0snJCmluY2x1ZGVfcnBtX25hbWVzPSgp CSPz0MnTz8sgzcHTz8sgxMzRIM/Uws/SwSDQ18vF1M/XINMgcnBtICjc1M8g0sXH1czR0s7ZxSDX 2dLB1sXOydEhKQpleGNsdWRlX3JwbV9uYW1lcz0oKQkj09DJ08/LIM3B08/LIMTM0SDJ08vMwN7F zsnRIM7FztXWztnIIHJwbSAo3NTPINLFx9XM0dLO2cUg19nSwdbFzsnRISkKCgoKbWF4X3JlcF9z aXplPTcwMDAwMAkjIM3By9PJzcHM2M7ZyiDSwdrNxdIgz8TOz8fPINLF0M/aydTB0snRINcgy8nM z8LBytTByApyZXBfbmFtZT0iY2xhc3NpYyIJIyDuwdrXwc7JxSDSxdDP2snUwdLJ0S4gKMnT0M/M 2NrVxdTT0SDXIM7Byc3Fzs/Xwc7JySDMyc7Lz9cg187V1NLJINLF0M/aydTB0snRKQoKZW5hYmxl X2J1cm5fY2Q9VHJ1ZQkj9sfFzSDCz8zXwc7LyT8KCmJ1cm5fY29tbWFuZD0ibWtpc29mcyAtciAt ZiAlcyB8IGNkcmVjb3JkIC12IHNwZWVkPTE2IGRldj0xLDAsMCAtIgoKCgojIMTJ0sXL1M/Sycks INPP2sTB18HFzdnFINcg0sXQz9rJ1MHSyckuCnJlcF9kaXJzPSgiU1JQTVMiLCJpMzg2L1JQTVMi LCJpMzg2L2Jhc2UiLCJpNDg2L1JQTVMiLCJpNDg2L2Jhc2UiLCJpNTg2L1JQTVMiLCJpNTg2L2Jh c2UiLCJpNjg2L1JQTVMiLCJpNjg2L2Jhc2UiLCJhdGhsb24vUlBNUyIsImF0aGxvbi9iYXNlIiwi bm9hcmNoL1JQTVMiLCJub2FyY2gvYmFzZSIpIAojIMzJzsvJLCDTz9rEwdfBxc3ZxSDXINLF0M/a ydTB0snJLiBTUlBNUzwtU1JQTVMuJXMgJXMgLSDJzdEg0sXQz9rJ1MHSydEgcmVwX25hbWUuCnJl cF9saW5rcz0oKCJTUlBNUyIsIlNSUE1TLiVzIiksKCJSUE1TIiwiaTM4Ni9SUE1TLiVzIiksKCJS UE1TIiwiaTQ4Ni9SUE1TLiVzIiksKCJSUE1TIiwiaTU4Ni9SUE1TLiVzIiksKCJSUE1TIiwiaTY4 Ni9SUE1TLiVzIiksKCJSUE1TIiwiYXRobG9uL1JQTVMuJXMiKSwoIlJQTVMiLCJub2FyY2gvUlBN Uy4lcyIpKSAKCmxzX3JlZ2V4cD1yZS5jb21waWxlKCJeICooXGQqKSAqKC4qXC5ycG0pIikKbGli X3JlZ2V4cD1yZS5jb21waWxlKCJsaWIoLiopLS4qXGQiKQphcmNoX3JlZ2V4cD1yZS5jb21waWxl KCIuKlwuKFx3KilcLnJwbSQiKQoK --Multipart_Wed__22_Jan_2003_03:07:42_+0300_0825d880 Content-Type: application/octet-stream; name="repository.py" Content-Disposition: attachment; filename="repository.py" Content-Transfer-Encoding: base64 aW1wb3J0IG9zCmZyb20gY29uZmlnIGltcG9ydCB0b3BfZGlyLCBhcmNoX3JlZ2V4cCwgcmVwX2Rp cnMsIHJlcF9saW5rcywgcmVwX25hbWUKCiNkaXJzPSgiU1JQTVMiLCJpMzg2L1JQTVMiLCJpMzg2 L2Jhc2UiLCJpNDg2L1JQTVMiLCJpNDg2L2Jhc2UiLCJpNTg2L1JQTVMiLCJpNTg2L2Jhc2UiLCJp Njg2L1JQTVMiLCJpNjg2L2Jhc2UiLCJhdGhsb24vUlBNUyIsImF0aGxvbi9iYXNlIiwibm9hcmNo L1JQTVMiLCJub2FyY2gvYmFzZSIpCgpjbGFzcyBjbGFzc19hcmNoOgogICAgIsvMwdPTIC0gwdLI ydTFy9TV0sEgaTM4Ni9pNDg2L2k1ODYvaTY4Ni9hdGhsb24vbm9hcmNoIgogICAgZGVmIF9faW5p dF9fKHNlbGYsdG9wX2RpcixhcmNoKToKCSLzz9rEwcXNIMTJ0sXL1M/SyckgySDJzsnDycHMydrJ 0tXFzSDQxdLFzcXOztnFIMTM0SDB0sjJ1MXL1NXS2SIKCglhc3NlcnQgdG9wX2RpciwgInRvcF9k aXIg0sXQz9rJ1MHSydEg0NXT1C4iCglhc3NlcnQgYXJjaCwgIu7B2tfBzsnFIMHSyMnUxcvU1dLZ INDV09TPLiIKCWFzc2VydCBvcy5wYXRoLmlzZGlyKHRvcF9kaXIpLCAi68/SzsXXwdEgxMnSxcvU z9LJ0SAlcyDEzNEgwdLIydTFy9TV0tkgJXMgIM7FINPV3cXT1NfVxdQuIiAlICh0b3BfZGlyLGFy Y2gpCgoJIyDLz9LFztgg0sXQz9rJ1MHSydEKCXNlbGYudG9wX2Rpcj10b3BfZGlyCglzZWxmLmFy Y2g9YXJjaAoJCglvcy5ta2Rpcihvcy5wYXRoLmpvaW4odG9wX2RpcixhcmNoKSwwNzU1KQoJb3Mu bWtkaXIob3MucGF0aC5qb2luKHRvcF9kaXIsYXJjaCwiUlBNUyIpLDA3NTUpCglvcy5ta2Rpcihv cy5wYXRoLmpvaW4odG9wX2RpcixhcmNoLCJiYXNlIiksMDc1NSkKCW9zLnN5bWxpbmsob3MucGF0 aC5qb2luKHRvcF9kaXIsYXJjaCwiUlBNUyIpLG9zLnBhdGguam9pbih0b3BfZGlyLGFyY2gsIlJQ TVMuJXMiICUgcmVwX25hbWUpKQoJCiAgICBkZWYgY3JlYXRlX2l0ZW0oc2VsZixpdGVtKToKCSLz z9rEwcXUINPT2czL1SDOwSDQwcvF1CDXINPXz8XKIMHSyMnUxcvU1dLFIgoJb3Muc3ltbGluayhv cy5wYXRoLmFic3BhdGgoaXRlbSksb3MucGF0aC5qb2luKHNlbGYudG9wX2RpcixzZWxmLmFyY2gs IlJQTVMiLG9zLnBhdGguYmFzZW5hbWUoaXRlbSkpKQoJCiAgICBkZWYgY2xlYW4oc2VsZik6Cgki 8NnUwcXU09Eg09TF0sXU2CDOxc7V1s7ZxSAo0NXT1NnFKSDB0sjJ1MXL1NXS2SDJIMnIIMLB2tks INPP2sTBzs7ZxSBnZW5iYXNlZGlyIgoJdHJ5OgoJICAgIG9zLnJtZGlyKG9zLnBhdGguam9pbihz ZWxmLnRvcF9kaXIsc2VsZi5hcmNoLCJSUE1TIikpIAoJICAgIG9zLnJlbW92ZShvcy5wYXRoLmpv aW4oc2VsZi50b3BfZGlyLHNlbGYuYXJjaCwiUlBNUy4lcyIgJSByZXBfbmFtZSkpCglleGNlcHQ6 CgkgICAgcHJpbnQgIv7V1NggzsUg0NLJwsnMIMPFzs7ZyiDSxdDP2snUwdLJyi4gOikiCgkgICAg cmV0dXJuIEZhbHNlCiNpZiBub3Qgb3MucGF0aC5leGlzdHMob3MucGF0aC5qb2luKHNlbGYudG9w X2RpcixzZWxmLmFyY2gsIlJQTVMiKSk6CiAgICAgICAgb3Muc3lzdGVtKCJybSAtZiAlcyIgJSBv cy5wYXRoLmpvaW4oc2VsZi50b3BfZGlyLHNlbGYuYXJjaCwiYmFzZSIsInBrZ2xpc3QuJXMqIiAl IHJlcF9uYW1lKSkKCXJldHVybiBUcnVlCgkKICAgIGRlZiBnZW5iYXNlZGlyKHNlbGYpOgoKCSLz z9rEwcXNIMjF2yDUwcLMycPZIMTM0SDSxdDP2snUwdLJ0SIKCW9zLnN5c3RlbSgiZ2VuYmFzZWRp ciAtLXRvcGRpciAlcyAlcyAlcyIgJSAoc2VsZi50b3BfZGlyLHNlbGYuYXJjaCxyZXBfbmFtZSkp CgkKCSAgICAKCgpjbGFzcyBjbGFzc19zcmM6CiAgICAiy8zB09MgLSDPwtPM1cfBIHNyYy5ycG0i CiAgICBkZWYgX19pbml0X18oc2VsZix0b3BfZGlyKToKCSLzz9rEwcXNIMTJ0sXL1M/SyckgySDJ zsnDycHMydrJ0tXFzSDQxdLFzcXOztnFIMTM0SBzcmMucnBtIgoKCWFzc2VydCB0b3BfZGlyLCAi dG9wX2RpciDSxdDP2snUwdLJ0SDQ1dPULiIKCWFzc2VydCBvcy5wYXRoLmlzZGlyKHRvcF9kaXIp LCAi68/SzsXXwdEgxMnSxcvUz9LJ0SAlcyDEzNEgwdLIydTFy9TV0tkgJXMgIM7FINPV3cXT1NfV xdQuIiAlIHRvcF9kaXIKCgkjIMvP0sXO2CDSxdDP2snUwdLJ0QoJc2VsZi50b3BfZGlyPXRvcF9k aXIKCQoJb3MubWtkaXIob3MucGF0aC5qb2luKHRvcF9kaXIsIlNSUE1TIiksMDc1NSkKCW9zLnN5 bWxpbmsob3MucGF0aC5qb2luKHRvcF9kaXIsIlNSUE1TIiksb3MucGF0aC5qb2luKHRvcF9kaXIs IlNSUE1TLiVzIiAlIHJlcF9uYW1lKSkKCQogICAgZGVmIGNyZWF0ZV9pdGVtKHNlbGYsaXRlbSk6 Cgki88/axMHF1CDT09nMy9UgzsEgc3JjINDBy8XUIgoJb3Muc3ltbGluayhvcy5wYXRoLmFic3Bh dGgoaXRlbSksb3MucGF0aC5qb2luKHNlbGYudG9wX2RpciwiU1JQTVMiLG9zLnBhdGguYmFzZW5h bWUoaXRlbSkpKQoJCiAgICBkZWYgY2xlYW4oc2VsZik6Cgki8NnUwcXU09Eg09TF0sXU2CDOxc7V 1s7ZxSAo0NXT1NnFKSDB0sjJ1MXL1NXS2SDJIMnIIMLB2tksINPP2sTBzs7ZxSBnZW5iYXNlZGly IgoJdHJ5OgoJICAgIG9zLnJtZGlyKG9zLnBhdGguam9pbihzZWxmLnRvcF9kaXIsIlNSUE1TIikp IAoJICAgIG9zLnJlbW92ZShvcy5wYXRoLmpvaW4oc2VsZi50b3BfZGlyLCJTUlBNUy4lcyIgJSBy ZXBfbmFtZSkpCglleGNlcHQ6CgkgICAgcHJpbnQgIv7V1NggzsUg0NLJwsnMIMPFzs7ZyiBzcmMu cnBtINLF0M/aydTB0snKLiA6KSIKCSAgICByZXR1cm4gRmFsc2UKCiNpZiBub3Qgb3MucGF0aC5l eGlzdHMob3MucGF0aC5qb2luKHNlbGYudG9wX2RpciwiU1JQTVMiKSk6CiAgICAgICAgb3Muc3lz dGVtKCJmaW5kICVzIC1uYW1lIHNyY2xpc3QuJXMqICAtZXhlYyBybSAtZiB7fSAnOyciICUgKHNl bGYudG9wX2RpcixyZXBfbmFtZSkpCglyZXR1cm4gVHJ1ZQoJCiAgICBkZWYgZ2VuYmFzZWRpcihz ZWxmKToKCSL6wcfM1dvLwSDEzNEg08/XzcXT1MnNz9PUySDTIGNsYXNzX2FyY2giCglwcmludCAi 99na18HOIGdlbmJhc2VkaXIgxMzRIMvMwdPTwSBzcmMiCiAgICAKCmNsYXNzIGNsYXNzX3JlcG9z aXRvcnk6CiAgICBkZWYgX19pbml0X18oc2VsZixwcmVmaXgpOgoJc2VsZi5wcmVmaXg9cHJlZml4 CglzZWxmLnRvcF9kaXI9b3MucGF0aC5qb2luKHRvcF9kaXIscHJlZml4KQoJc2VsZi5hcmNoX2xp c3Q9eyJzcmMiOk5vbmUsIm5vc3JjIjpOb25lLCJpMzg2IjpOb25lLCJpNDg2IjpOb25lLCJpNTg2 IjpOb25lLCJpNjg2IjpOb25lLCJhdGhsb24iOk5vbmUsIm5vYXJjaCI6Tm9uZX0KCQoJI9DSz9fF 0svJCglhc3NlcnQgcHJlZml4LCAi0NXT1M/KINDSxcbJy9MgxMzRINPP2sTB18HFzc/HzyDSxdDP 2snUwdLJ0SIKCWFzc2VydCB0b3BfZGlyLCAi0NXT1M/KIHRvcF9kaXIgxMzRINPP2sTB18HFzdnI INLF0M/aydTB0snF1yIKCWFzc2VydCBvcy5wYXRoLmlzZGlyKHRvcF9kaXIpLCAi68/SzsXXwdEg xMnSxcvUz9LJ0SAlcyDEzNEg19PFyCDTz9rEwdfBxc3ZyCDSxdDP2snUwdLJxdcgzsUg09XdxdPU 19XF1C4iICUgdG9wX2RpcgoJCglpZiBvcy5wYXRoLmV4aXN0cyhzZWxmLnRvcF9kaXIpOgoJICAg IG9zLnN5c3RlbSgicm0gLXJmICVzIiAlIHNlbGYudG9wX2RpcikKCW9zLm1rZGlyKHNlbGYudG9w X2RpcikJICAgICAgICAKCglzZWxmLmFyY2hfbGlzdFsic3JjIl0JPSBjbGFzc19zcmMoc2VsZi50 b3BfZGlyKQoJc2VsZi5hcmNoX2xpc3RbIm5vc3JjIl0JPSBzZWxmLmFyY2hfbGlzdFsic3JjIl0K CXNlbGYuYXJjaF9saXN0WyJpMzg2Il0JPSBjbGFzc19hcmNoKHNlbGYudG9wX2RpciwiaTM4NiIp CglzZWxmLmFyY2hfbGlzdFsiaTQ4NiJdCT0gY2xhc3NfYXJjaChzZWxmLnRvcF9kaXIsImk0ODYi KQoJc2VsZi5hcmNoX2xpc3RbImk1ODYiXQk9IGNsYXNzX2FyY2goc2VsZi50b3BfZGlyLCJpNTg2 IikKCXNlbGYuYXJjaF9saXN0WyJpNjg2Il0JPSBjbGFzc19hcmNoKHNlbGYudG9wX2RpciwiaTY4 NiIpCglzZWxmLmFyY2hfbGlzdFsiYXRobG9uIl09IGNsYXNzX2FyY2goc2VsZi50b3BfZGlyLCJh dGhsb24iKQoJc2VsZi5hcmNoX2xpc3RbIm5vYXJjaCJdPSBjbGFzc19hcmNoKHNlbGYudG9wX2Rp ciwibm9hcmNoIikKCQoJCQogICAgZGVmIGNyZWF0ZV9pdGVtKHNlbGYsaXRlbSk6CiAgICAKCW1h dGNoPWFyY2hfcmVnZXhwLm1hdGNoKGl0ZW0pCglhc3NlcnQgbWF0Y2gsICLuxdLB09DP2s7BzsEg wdLIydTFy9TV0sEg0MHLxdTBLiDv1snEwcXU09EgeHh4LmFyY2gucnBtLCDBINDSydvMzyAlcyIg JSBpdGVtCgoJYXJjaD1zZWxmLmFyY2hfbGlzdC5nZXQobWF0Y2guZ3JvdXAoMSksTm9uZSkKCWFz c2VydCBhcmNoLCAi7sXJ2tfF09TOwdEgwdLIydTFy9TV0sEgJXMiICUgbWF0Y2guZ3JvdXAoMSkK CQoJYXJjaC5jcmVhdGVfaXRlbShpdGVtKQoKICAgIGRlZiBjbGVhbihzZWxmKToKCSLwz8TeydPU y8Eg0NXT1NnIIMHSyMnUxcvU1dIgySDJ08jPxM7Jy8/XINcg0sXQz9rJ1MHSyckiCglmb3IgaSBp biBzZWxmLmFyY2hfbGlzdC5rZXlzKCk6CgkgICAgc2VsZi5hcmNoX2xpc3RbaV0uY2xlYW4oKQoJ CiAgICBkZWYgZ2VuYmFzZWRpcnMoc2VsZik6Cglmb3IgaSBpbiBzZWxmLmFyY2hfbGlzdC5rZXlz KCk6CgkgICAgc2VsZi5hcmNoX2xpc3RbaV0uY2xlYW4oKQoJICAgIHNlbGYuYXJjaF9saXN0W2ld LmdlbmJhc2VkaXIoKQogICAgCg== --Multipart_Wed__22_Jan_2003_03:07:42_+0300_0825d880 Content-Type: application/octet-stream; name="rpm2apt.py" Content-Disposition: attachment; filename="rpm2apt.py" Content-Transfer-Encoding: base64 IyEvdXNyL2Jpbi9weXRob24KaW1wb3J0ICBvcywgc3RyaW5nLCBzeXMKZnJvbSBjb25maWcgaW1w b3J0ICoKZnJvbSByZXBvc2l0b3J5IGltcG9ydCBjbGFzc19yZXBvc2l0b3J5CgoKZGVmIGdldF9m aWxlX2xpc3QgKGxpc3RfZGlycyxpbmNsdWRlX25hbWVzLGV4Y2x1ZGVfbmFtZXMpOgogICAgIiD3 z9rX0sHdwcXUINPQydPPyyDGwcrMz9cgydogbGlzdF9kaXJzIMnNxc7BIMvP1M/S2cgg1cTP18zF 1NfP0tHA1CBpbmNsdWRlX25hbWVzIMkgZXhjbHVkZV9uYW1lcyIKCiAgICAj8NXT1M/KINPQydPP yyDEydLFy9TPycogxMzRINDPydPLwSDS0M0tz9cg0NLJINfLzMDexc7Oz8ogz9DDyckgZW5hYmxl X3JwbSAtIM/bycLLwQogICAgYXNzZXJ0IGxpc3RfZGlycywgIvPQydPPyyDEydLF1M/SycogxMzR INDPydPLwSDGwcrMz9cg0NXT1CEiICAgICAKCiAgICBmaWxlX2xpc3Q9W10KICAgIGZvciBpIGlu IGxpc3RfZGlyczoKCWZvciBsc19zdHJpbmcgaW4gb3MucG9wZW4oImNkICVzOyBscyAtcyIgJSBp KS5yZWFkbGluZXMoKToKICAgIAkgICAgbWF0Y2g9bHNfcmVnZXhwLm1hdGNoKGxzX3N0cmluZykK CSAgICBpZiBtYXRjaDoKCQlmaWxlX2xpc3QuYXBwZW5kKFtvcy5wYXRoLmpvaW4oaSxtYXRjaC5n cm91cCgyKSksbWF0Y2guZ3JvdXAoMiksc3RyaW5nLmF0b2kobWF0Y2guZ3JvdXAoMSkpLCJwYXJ0 Il0pCiAgICBpZiBpbmNsdWRlX25hbWVzOgoJIiDVxMHM0cXNIM7FztXWztnFINzMxc3FztTZINcg 09DJ08vFIMbByszP1yIKCXByaW50ICJUb0RvLiDvwtLBws/Uy8EgaW5jbHVkZV9ycG1fbmFtZXMi CQogICAgCiAgICBpZiBleGNsdWRlX25hbWVzOgoJIiDVxMHM0cXNIM7FztXWztnFINzMxc3FztTZ INcg09DJ08vFIMbByszP1yIKCXByaW50ICJUb0RvLiDvwtLBws/Uy8EgZXhjbHVkZV9ycG1fbmFt ZXMiCQogICAgcmV0dXJuIGZpbGVfbGlzdAoKZGVmIHNvcnRfbGlzdChsaXN0LGZpZWxkKToKICAg ICIg88/S1MnS1cXUINPQydPPyyBmaWxlX2xpc3Qg0M8g0M/MwCBmaWVsZCAgKNDV2tnSxcspLiIK ICAgIGFzc2VydCBsaXN0LCAi8NXT1M/KINPQydPPyyBsaXN0INcgc29ydF9saXN0KGxpc3QsZmll bGQpIiAKCiAgICB0ZW1wPU5vbmUgICMg19HMwdEg0M/Q2dTLwSDP0NTJzcnawcPJyS4KICAgIGJy ZWFrX3NvcnQ9VHJ1ZQogICAgd2hpbGUgYnJlYWtfc29ydDoKCWJyZWFrX3NvcnQ9RmFsc2UKCWZv ciBpIGluIHJhbmdlKGxlbihsaXN0KS0xKToKCSAgICBpZiBsaXN0IFtpXSBbZmllbGRdID4gbGlz dCBbaSsxXSBbZmllbGRdOgoJCXRlbXA9IGxpc3RbaV0KCQlsaXN0W2ldPWxpc3RbaSsxXQoJCWxp c3RbaSsxXT10ZW1wCgkJYnJlYWtfc29ydD1UcnVlCiAgICByZXR1cm4gbGlzdAoKZGVmIHNvcnRf d2l0aF9saWJfZmlsZXMobGlzdCxmaWVsZCk6CiAgICAiIiIg0M/Q2dTLwSDQz9PUwdfJ1NggwsnC zMnP1MXLySAobGlieHh4LTExMS1hbHQucnBtKSDS0cTPzSDTIM/Tzs/XztnNySDQwcvF1MHNySAo eHh4LTExMS1hbHQucnBtKQogICAgbGlzdCAtINPQydPPyyDGwcrMz9cg0yDSwdrNxdLBzckuIGZp ZWxkIC0gzs/NxdIg0M/M0SDTIMnNxc7FzSAo08vP0sXFINfTxcfPIDEpLiIiIgogICAgYXNzZXJ0 IGxpc3QsICLw1dPUz8og09DJ08/LIGxpc3Qg1yBzb3J0X3dpdGhfbGliX2ZpbGVzKGxpc3QsZmll bGQpIiAKICAgIGZvciBpIGluIGxpc3Q6CgltYXRjaCA9IGxpYl9yZWdleHAubWF0Y2goaVtmaWVs ZF0pCglpZiBtYXRjaDoKCSAgICBpLmFwcGVuZChtYXRjaC5ncm91cCgxKSkKCWVsc2U6CgkgICAg aS5hcHBlbmQoaVtmaWVsZF0pCiAgICB0bXBfaW5kZXg9bGVuKGxpc3RbMV0pLTEgIyDpzsTFy9Mg 1M/M2MvPIN7UzyDTz9rEwc7Oz8fPINfT0M/Nz8fB1MXM2M7Px88g0M/M0SDEzNEg08/S1MnSz9fL yS4KICAgIGxpc3QgPSBzb3J0X2xpc3QobGlzdCx0bXBfaW5kZXgpCiAgICBmb3IgaSBpbiBsaXN0 OiAgICMg1cTBzNHFzSDCz8zFxSDOxc7V1s7PxSDX09DPzc/HwdTFzNjOz8Ug0M/MxSDEzNEg08/S 1MnSz9fLyS4KCWRlbCBpW3RtcF9pbmRleF0KICAgIHJldHVybiBsaXN0CgpkZWYgc2ltcGxlX3Nw bGl0X2xpc3RfYnlfc2l6ZShsaXN0LGZpZWxkLHByZWZpeCk6CiAgICAi5MXMydQg09DJ08/LIMbB yszP1yDOwSDewdPUySwgz9LJxc7UydLV0dPYIM7BIGxpc3RbeF1bZmllbGRdIMTPwsHXzNHRINcg 0M/MxSBsaXN0W3hdWzNdICDNxdTL1S3ewdPU2CIKICAgIHN1bT1pbnQoMCkKICAgIHBhcnQ9MQog ICAgZm9yIGkgaW4gbGlzdDoKCWlmIHN1bStpW2ZpZWxkXSA+IG1heF9yZXBfc2l6ZToKCSAgICBz dW09aVtmaWVsZF0KCSAgICBwYXJ0Kz0xCgllbHNlOgoJICAgIHN1bSs9aVtmaWVsZF0KCWlbM109 KHByZWZpeCtzdHIocGFydCkpCiAgICByZXR1cm4gbGlzdAoKZGVmIGNyZWF0ZV9yZXBvc2l0b3J5 ZXMobGlzdCk6CiAgICByZXBfbGlzdD1bXQogICAgcmVwX2xpc3QuYXBwZW5kKGNsYXNzX3JlcG9z aXRvcnkobGlzdFswXVszXSkpCiAgICByZXBfY3VyPXJlcF9saXN0W2xlbihyZXBfbGlzdCktMV0g IyDP0NTJzcnawcPJ0S4g3tTPwiDLwdbE2cog0sHaINfF09gg09DJ08/LIM7FINDF0sXCydLB1Ngs IMTM0SDOwd7BzMEg09LB187JzSDNxdTL1SDSxdDP2snUwdLJ0SDTINTFy9XdxcoKICAgIGZvciBs aXN0X2l0ZW0gaW4gbGlzdDoKCWlmIGxpc3RfaXRlbVszXSE9cmVwX2N1ci5wcmVmaXg6CgkgICAg cmVwX2NyZWF0ZT1UcnVlCgkgICAgZm9yIHRlbXAgaW4gcmVwX2xpc3Q6CgkJaWYgbGlzdF9pdGVt WzNdPT10ZW1wLnByZWZpeDoKCQkgICAgcmVwX2NyZWF0ZT1GYWxzZQoJCSAgICByZXBfY3VyPXRl bXAKCSAgICBpZiByZXBfY3JlYXRlOgoJCXJlcF9saXN0LmFwcGVuZChjbGFzc19yZXBvc2l0b3J5 KGxpc3RfaXRlbVszXSkpCgkJcmVwX2N1cj1yZXBfbGlzdFtsZW4ocmVwX2xpc3QpLTFdCglyZXBf Y3VyLmNyZWF0ZV9pdGVtKGxpc3RfaXRlbVswXSkKICAgIGZvciBpIGluIHJlcF9saXN0OgogICAg ICAgIGkuZ2VuYmFzZWRpcnMoKQoKaWYgc2VwYXJhdGVfcnBtX2FuZF9zcmNfcnBtOgogICAgaWYg ZW5hYmxlX3JwbToKICAgICAgICBsaXN0PWdldF9maWxlX2xpc3QocnBtX2RpcnMsaW5jbHVkZV9y cG1fbmFtZXMsZXhjbHVkZV9ycG1fbmFtZXMpCglsaXN0PXNvcnRfd2l0aF9saWJfZmlsZXMobGlz dCwxKQogICAgICAgIGxpc3Q9c2ltcGxlX3NwbGl0X2xpc3RfYnlfc2l6ZShsaXN0LDIsInJwbV9k aXNrXyIpCgljcmVhdGVfcmVwb3NpdG9yeWVzKGxpc3QpCiAgICBpZiBlbmFibGVfc3JjX3JwbToK ICAgICAgICBsaXN0PWdldF9maWxlX2xpc3Qoc3JjX3JwbV9kaXJzLGluY2x1ZGVfcnBtX25hbWVz LGV4Y2x1ZGVfcnBtX25hbWVzKQoJbGlzdD1zb3J0X2xpc3QobGlzdCwxKQogICAgICAgIGxpc3Q9 c2ltcGxlX3NwbGl0X2xpc3RfYnlfc2l6ZShsaXN0LDIsInNycG1fZGlza18iKQoJY3JlYXRlX3Jl cG9zaXRvcnllcyhsaXN0KQoJCg== --Multipart_Wed__22_Jan_2003_03:07:42_+0300_0825d880--