```------art_4992_15383776.1166380121405
Content-Type: multipart/alternative;
boundary---art_4993_18232670.1166380121405"

------art_4993_18232670.1166380121405
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

This is not a very elegant or concise or even efficient solution. I tried
finding the weirdest solution I could think of. The idea is to reduce (or in
this case, enlarge :) the problem to the exact-cover problem. So I
formalized 6 constraints that need to be satisfied by a solution:

1) all the pieces need to be placed
2) all the columns need to be occupied
3) the left rook must appear to the left of the king and the right rook to
the right
4) the left bishop must appear to the left of the right one
5) the left knight must appear to the left of the right knight
6) each color must be occupied by exactly one bishop

The program constructs rows of a DLX matrix (if you don't know this
It then uses a DLX solver that I wrote to find legal combinations of piece
placements. The enumeration order is not the same as the one on the internet
but is deterministic.

The file 'dlx.rb' contains the DLX solver.

Mushfeq.

------art_4993_18232670.1166380121405
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

This is not a very elegant or concise or even efficient solution. I tried finding the weirdest solution I could think of. The idea is to reduce (or in this case, enlarge :) the problem to the exact-cover problem. So I formalized 6 constraints that need to be satisfied by a solution:
<br><br>1) all the pieces need to be placed<br>2) all the columns need to be occupied<br>3) the left rook must appear to the left of the king and the right rook to the right<br>4) the left bishop must appear to the left of the right one
<br>5) the left knight must appear to the left of the right knight<br>6) each color must be occupied by exactly one bishop<br><br>The program constructs rows of a DLX matrix (if you don't know this algorithm, it's described here:
<a hrefttp://en.wikipedia.org/wiki/Dancing_Links">http://en.wikipedia.org/wiki/Dancing_Links</a>). It then uses a DLX solver that I wrote to find legal combinations of piece placements. The enumeration order is not the same as the one on the internet but is deterministic.
<br><br>The file 'dlx.rb' contains the DLX solver. <br><br>Mushfeq.<br><br>

------art_4993_18232670.1166380121405--

------art_4992_15383776.1166380121405
Content-Type: application/octet-stream; name=chess960.rb
Content-Transfer-Encoding: base64
X-Attachment-Id: f_evtsizto
Content-Disposition: attachment; filename="chess960.rb"

cmVxdWlyZSAnZGx4JwpjbGFzcyBQaWVjZQogIGF0dHJfcmVhZGVyIDpjb2x1bW4KICBkZWYgaW5p
dGlhbGl6ZShjb2x1bW4pCiAgICBAY29sdW1uID0gY29sdW1uCiAgZW5kCiAgZGVmIGNvbHVtbl9j
b25zdHJhaW50CiAgICBvY3RldF93aXRoX29uZXNfYXQoQGNvbHVtbikKICBlbmQKICBkZWYgcm9v
a19raW5nX2NvbnN0cmFpbnQKICAgIFswXSo4CiAgZW5kCiAgZGVmIGJpc2hvcF9jb25zdHJhaW50
CiAgICBbMF0qOAogIGVuZAogIGRlZiBrbmlnaHRfY29uc3RyYWludAogICAgWzBdKjgKICBlbmQK
ICBkZWYgb2N0ZXRfd2l0aF9vbmVzX2F0KCppbmRleGVzKQogICAgcmVzdWx0ID0gWzBdKjgKICAg
IGluZGV4ZXMuZWFjaCB7fGl8IHJlc3VsdFtpXSA9IDF9CiAgICByZXN1bHQKICBlbmQKICBkZWYg
c2FtZV9jb2xvcl9jb2x1bW5zKGNvbHVtbikKICAgIGNvbHVtbiAlIDIgPT0gMCA/IFswLCAyLCA0
LCA2XSA6IFsxLCAzLCA1LCA3XQogIGVuZAogIGRlZiBiaXNob3BfY29sb3JfY29uc3RyYWludAog
ICAgWzBdCiAgZW5kCiAgZGVmIHRvX2RseF9yb3cKICAgIHBpZWNlX2NvbnN0cmFpbnQgKyBjb2x1
bW5fY29uc3RyYWludCArIHJvb2tfa2luZ19jb25zdHJhaW50ICsgYmlzaG9wX2NvbnN0cmFpbnQg
KyBrbmlnaHRfY29uc3RyYWludCArIGJpc2hvcF9jb2xvcl9jb25zdHJhaW50CiAgZW5kCmVuZAoK
Y2xhc3MgTGVmdFJvb2sgPCBQaWVjZQogIGRlZiBwaWVjZV9jb25zdHJhaW50CiAgICBvY3RldF93
aXRoX29uZXNfYXQoMCkKICBlbmQKICBkZWYgcm9va19raW5nX2NvbnN0cmFpbnQKICAgIG9jdGV0
X3dpdGhfb25lc19hdCgqKDAuLkBjb2x1bW4pLnRvX2EpCiAgZW5kCiAgZGVmIHRvX3MKICAgICJM
ZWZ0IFJvb2sgYXQgI3tAY29sdW1ufSIKICBlbmQKICBkZWYgc3ltYm9sCiAgICAnUicKICBlbmQK
ZW5kCgpjbGFzcyBSaWdodFJvb2sgPCBQaWVjZQogIGRlZiBwaWVjZV9jb25zdHJhaW50CiAgICBv
Y3RldF93aXRoX29uZXNfYXQoNykKICBlbmQKICBkZWYgcm9va19raW5nX2NvbnN0cmFpbnQKICAg
IG9jdGV0X3dpdGhfb25lc19hdCgqKEBjb2x1bW4uLjcpLnRvX2EpCiAgZW5kCiAgZGVmIHRvX3MK
ICAgICJSaWdodCBSb29rIGF0ICN7QGNvbHVtbn0iCiAgZW5kCiAgZGVmIHN5bWJvbAogICAgJ1In
CiAgZW5kCmVuZAoKY2xhc3MgS2luZyA8IFBpZWNlCiAgZGVmIHBpZWNlX2NvbnN0cmFpbnQKICAg
IG9jdGV0X3dpdGhfb25lc19hdCg0KQogIGVuZAogIGRlZiByb29rX2tpbmdfY29uc3RyYWludAog
ICAgY29sdW1uX2NvbnN0cmFpbnQKICBlbmQKICBkZWYgdG9fcwogICAgIktpbmcgYXQgI3tAY29s
dW1ufSIKICBlbmQKICBkZWYgc3ltYm9sCiAgICAnSycKICBlbmQKZW5kCgpjbGFzcyBRdWVlbiA8
IFBpZWNlCiAgZGVmIHBpZWNlX2NvbnN0cmFpbnQKICAgIG9jdGV0X3dpdGhfb25lc19hdCgzKQog
IGVuZAogIGRlZiB0b19zCiAgICAiUXVlZW4gYXQgI3tAY29sdW1ufSIKICBlbmQKICBkZWYgc3lt
Ym9sCiAgICAnUScKICBlbmQKZW5kCgpjbGFzcyBGaWxsZXIgPCBQaWVjZQogIGRlZiBjb2x1bW5f
Y29uc3RyYWludAogICAgWzBdKjgKICBlbmQKICBkZWYgcGllY2VfY29uc3RyYWludAogICAgWzBd
KjgKICBlbmQKICBkZWYgdG9fcwogICAgIkZpbGxlciIKICBlbmQKZW5kCgpjbGFzcyBLbmlnaHRG
aWxsZXIgPCBGaWxsZXIKICBkZWYga25pZ2h0X2NvbnN0cmFpbnQKICAgIG9jdGV0X3dpdGhfb25l
c19hdChAY29sdW1uKQogIGVuZAplbmQKCmNsYXNzIFJvb2tGaWxsZXIgPCBGaWxsZXIKICBkZWYg
cm9va19raW5nX2NvbnN0cmFpbnQKICAgIG9jdGV0X3dpdGhfb25lc19hdChAY29sdW1uKQogIGVu
ZAplbmQKCmNsYXNzIEJpc2hvcEZpbGxlciA8IEZpbGxlcgogIGRlZiBiaXNob3BfY29uc3RyYWlu
dAogICAgb2N0ZXRfd2l0aF9vbmVzX2F0KEBjb2x1bW4pCiAgZW5kCmVuZAoKCmNsYXNzIExlZnRL
bmlnaHQgPCBQaWVjZQogIGRlZiBwaWVjZV9jb25zdHJhaW50CiAgICBvY3RldF93aXRoX29uZXNf
YXQoMSkKICBlbmQKICBkZWYga25pZ2h0X2NvbnN0cmFpbnQKICAgIG9jdGV0X3dpdGhfb25lc19h
dCgqKDAuLkBjb2x1bW4pLnRvX2EpCiAgZW5kCiAgZGVmIHRvX3MKICAgICJMZWZ0IEtuaWdodCBh
dCAje0Bjb2x1bW59IgogIGVuZAogIGRlZiBzeW1ib2wKICAgICdOJwogIGVuZAplbmQKCmNsYXNz
IFJpZ2h0S25pZ2h0IDwgUGllY2UKICBkZWYgcGllY2VfY29uc3RyYWludAogICAgb2N0ZXRfd2l0
aF9vbmVzX2F0KDYpCiAgZW5kCiAgZGVmIGtuaWdodF9jb25zdHJhaW50CiAgICBvY3RldF93aXRo
X29uZXNfYXQoKihAY29sdW1uLi43KS50b19hKQogIGVuZAogIGRlZiB0b19zCiAgICAiUmlnaHQg
S25pZ2h0IGF0ICN7QGNvbHVtbn0iCiAgZW5kCiAgZGVmIHN5bWJvbAogICAgJ04nCiAgZW5kCmVu
ZAoKY2xhc3MgTGVmdEJpc2hvcCA8IFBpZWNlCiAgZGVmIHBpZWNlX2NvbnN0cmFpbnQKICAgIG9j
dGV0X3dpdGhfb25lc19hdCgyKQogIGVuZAogIGRlZiBiaXNob3BfY29sb3JfY29uc3RyYWludAog
ICAgQGNvbHVtbiAlIDIgPT0gMCA/IFsxXSA6IFswXQogIGVuZAogIGRlZiBiaXNob3BfY29uc3Ry
YWludAogICAgb2N0ZXRfd2l0aF9vbmVzX2F0KCooMC4uQGNvbHVtbikudG9fYSkKICBlbmQKICBk
ZWYgdG9fcwogICAgIkxlZnQgQmlzaG9wIGF0ICN7QGNvbHVtbn0iCiAgZW5kCiAgZGVmIHN5bWJv
bAogICAgJ0InCiAgZW5kCmVuZAoKY2xhc3MgUmlnaHRCaXNob3AgPCBQaWVjZQogIGRlZiBwaWVj
ZV9jb25zdHJhaW50CiAgICBvY3RldF93aXRoX29uZXNfYXQoNSkKICBlbmQKICBkZWYgYmlzaG9w
X2NvbG9yX2NvbnN0cmFpbnQKICAgIEBjb2x1bW4gJSAyID09IDAgPyBbMV0gOiBbMF0KICBlbmQK
ICBkZWYgYmlzaG9wX2NvbnN0cmFpbnQKICAgIG9jdGV0X3dpdGhfb25lc19hdCgqKEBjb2x1bW4u
LjcpLnRvX2EpCiAgZW5kCiAgZGVmIHRvX3MKICAgICJSaWdodCBCaXNob3AgYXQgI3tAY29sdW1u
fSIKICBlbmQKICBkZWYgc3ltYm9sCiAgICAnQicKICBlbmQKZW5kCgpkZWYgdG9fYm9hcmQocGxh
Y2VtZW50cykKICByZXN1bHQgPSBbXQogIHBsYWNlbWVudHMuZWFjaCBkbyB8cGxhY2VtZW50fAog
ICAgcmVzdWx0W3BsYWNlbWVudC5jb2x1bW5dID0gcGxhY2VtZW50LnN5bWJvbCB1bmxlc3MgRmls
bGVyID09PSBwbGFjZW1lbnQKICBlbmQKICByZXN1bHQuam9pbignJykKZW5kCgpwbGFjZW1lbnRz
ID0gW10KMC51cHRvKDUpIHt8Y29sfCBwbGFjZW1lbnRzIDw8IExlZnRSb29rLm5ldyhjb2wpfQow
LnVwdG8oNikge3xjb2x8IHBsYWNlbWVudHMgPDwgTGVmdEtuaWdodC5uZXcoY29sKSA8PCBMZWZ0
QmlzaG9wLm5ldyhjb2wpfQowLnVwdG8oNykge3xjb2x8IHBsYWNlbWVudHMgPDwgUXVlZW4ubmV3
KGNvbCl9CjEudXB0byg2KSB7fGNvbHwgcGxhY2VtZW50cyA8PCBSb29rRmlsbGVyLm5ldyhjb2wp
IDw8IEtpbmcubmV3KGNvbCkgPDwgS25pZ2h0RmlsbGVyLm5ldyhjb2wpIDw8IEJpc2hvcEZpbGxl
ci5uZXcoY29sKX0KMS51cHRvKDcpIHt8Y29sfCBwbGFjZW1lbnRzIDw8IFJpZ2h0S25pZ2h0Lm5l
dyhjb2wpIDw8IFJpZ2h0QmlzaG9wLm5ldyhjb2wpfQoyLnVwdG8oNykge3xjb2x8IHBsYWNlbWVu
dHMgPDwgUmlnaHRSb29rLm5ldyhjb2wpfQoKZCA9IERMWE1hdHJpeC5uZXcocGxhY2VtZW50cy5j
b2xsZWN0IHt8cGxhY2VtZW50fCBwbGFjZW1lbnQudG9fZGx4X3Jvd30pCm4gPSAwCmQuc29sdXRp
b25zIGRvIHxzb2x1dGlvbnwKICBwdXRzICJTb2x1dGlvbiAje259OiIKICBwdXRzIHRvX2JvYXJk
KHNvbHV0aW9uLmNvbGxlY3R7fGluZGV4fCBwbGFjZW1lbnRzW2luZGV4XX0pCiAgbiArPSAxCmVu
ZAo------art_4992_15383776.1166380121405
Content-Type: application/octet-stream; name=dlx.rb
Content-Transfer-Encoding: base64
X-Attachment-Id: f_evtsk7ta
Content-Disposition: attachment; filename="dlx.rb"

RElSRUNUSU9OUyA9IFs6bGVmdCwgOnJpZ2h0LCA6dXAsIDpkb3duXQoKY2xhc3MgTm9kZQoJYXR0
cl9hY2Nlc3NvciAqRElSRUNUSU9OUwoJZGVmIGluaXRpYWxpemUoYXR0cnMpCgkgIERJUkVDVElP
TlMuZWFjaCBkbyB8ZGlyZWN0aW9ufAoJICAgIHNlbGYuc2VuZCgiI3tkaXJlY3Rpb24udG9fc309
IiwgYXR0cnNbZGlyZWN0aW9uXSkKCSAgZW5kCgllbmQKCWRlZiBhZGphY2VudF9ub2RlcyhkaXJl
Y3Rpb24pCgkgIGN1cnJfbm9kZSA9IHNlbGYuc2VuZChkaXJlY3Rpb24pCgkgIHdoaWxlIHRydWUK
CSAgICBicmVhayBpZiAoY3Vycl9ub2RlID09IHNlbGYpCgkgICAgeWllbGQgY3Vycl9ub2RlCgkg
ICAgY3Vycl9ub2RlID0gY3Vycl9ub2RlLnNlbmQoZGlyZWN0aW9uKQoJICBlbmQKCWVuZAoJZGVm
IGluc3BlY3QKCSAgdG9fcyArICIgIisgKERJUkVDVElPTlMuY29sbGVjdCB7fGRpcmVjdGlvbnwg
IiN7ZGlyZWN0aW9uLnRvX3N9OiAje3NlbGYuc2VuZChkaXJlY3Rpb24pfSJ9LmpvaW4oIiAiKSkK
CWVuZAplbmQKCmNsYXNzIEhlYWRlck5vZGUgPCBOb2RlCiAgYXR0cl9hY2Nlc3NvciA6bnVtX29u
ZXMKICBhdHRyX3JlYWRlciA6Y29sCiAgZGVmIGluaXRpYWxpemUoYXR0cnMpCiAgICBAY29sID0g
YXR0cnNbOmNvbF0KICAgIEBudW1fb25lcyA9IDAKICAgIHN1cGVyCiAgZW5kCiAgZGVmIHRvX3MK
ICAgICI8SGVhZGVyICN7Y29sfT4iCiAgZW5kCmVuZAoKY2xhc3MgRW50cnlOb2RlIDwgTm9kZQog
IGF0dHJfcmVhZGVyIDpyb3csIDpjb2wsIDpoZWFkZXIKICBkZWYgaW5pdGlhbGl6ZShhdHRycykK
ICAgIEByb3cgPSBhdHRyc1s6cm93XQogICAgQGNvbCA9IGF0dHJzWzpjb2xdCiAgICBAaGVhZGVy
ID0gYXR0cnNbOmhlYWRlcl0KICAgIHN1cGVyCiAgZW5kCiAgZGVmIHRvX3MKICAgICI8RW50cnkg
YXQgKCN7cm93fSwgI3tjb2x9KT4iCiAgZW5kCmVuZAoKY2xhc3MgRExYTWF0cml4CiAgYXR0cl9y
ZWFkZXIgOm1hc3Rlcl9ub2RlCiAgZGVmIGluaXRpYWxpemUobWF0cml4KQogICAgQG1hc3Rlcl9u
b2RlID0gSGVhZGVyTm9kZS5uZXcoOmNvbCA9PiAtMSkKICAgIChAbWFzdGVyX25vZGUubGVmdCA9
ICgwLi4ubWF0cml4WzBdLnNpemUpLmluamVjdChAbWFzdGVyX25vZGUpIGRvIHxwcmV2aW91c19u
b2RlLCBjb2x8CiAgICAgIHByZXZpb3VzX25vZGUucmlnaHQgPSBIZWFkZXJOb2RlLm5ldyg6Y29s
ID0+IGNvbCwgOmxlZnQgPT4gcHJldmlvdXNfbm9kZSkKICAgIGVuZCkucmlnaHQgPSBAbWFzdGVy
X25vZGUKCiAgICBoZWFkZXJzID0gW10KICAgIEBtYXN0ZXJfbm9kZS5hZGphY2VudF9ub2Rlcyg6
cmlnaHQpIGRvIHxub2RlfAogICAgICBoZWFkZXJzIDw8IG5vZGUKICAgIGVuZAogICAgdXBfbm9k
ZXMgPSBoZWFkZXJzLmR1cAogICAgCiAgICBtYXRyaXguZWFjaF93aXRoX2luZGV4IGRvIHxyb3cs
IHJvd19udW18CiAgICAgIG5vZGVzID0gW10KICAgICAgcm93LmVhY2hfd2l0aF9pbmRleCBkbyB8
Y29sLCBjb2xfbnVtfAogICAgICAgIGlmIGNvbD09MQogICAgICAgICAgdXBfbm9kZXNbY29sX251
bV0uZG93biA9IG5ld19ub2RlID0gRW50cnlOb2RlLm5ldyg6bGVmdCA9PiBub2Rlc1stMV0sIDp1
cCA9PiB1cF9ub2Rlc1tjb2xfbnVtXSwgOnJvdyA9PiByb3dfbnVtLCA6Y29sID0+IGNvbF9udW0s
IDpoZWFkZXIgPT4gaGVhZGVyc1tjb2xfbnVtXSkKICAgICAgICAgIG5vZGVzWy0xXS5yaWdodCA9
IG5ld19ub2RlIGlmIG5vZGVzWy0xXQogICAgICAgICAgbmV3X25vZGUuaGVhZGVyLm51bV9vbmVz
ICs9IDEKICAgICAgICAgIG5vZGVzIDw8IHVwX25vZGVzW2NvbF9udW1dID0gbmV3X25vZGUKICAg
ICAgICBlbmQKICAgICAgZW5kCiAgICAgIGlmIG5vZGVzLnNpemUgPiAwCiAgICAgICAgbm9kZXNb
MF0ubGVmdCA9IG5vZGVzWy0xXQogICAgICAgIG5vZGVzWy0xXS5yaWdodCA9IG5vZGVzWzBdCiAg
ICAgIGVuZAogICAgZW5kCiAgICAoMC4uLm1hdHJpeFswXS5zaXplKS5lYWNoIGRvIHxjb2xfbnVt
fAogICAgICB1cF9ub2Rlc1tjb2xfbnVtXS5kb3duID0gaGVhZGVyc1tjb2xfbnVtXQogICAgICBo
ZWFkZXJzW2NvbF9udW1dLnVwID0gdXBfbm9kZXNbY29sX251bV0KICAgIGVuZAogIGVuZAogIGRl
ZiBjb3ZlcihoZWFkZXIpCiAgICBoZWFkZXIubGVmdC5yaWdodCA9IGhlYWRlci5yaWdodAogICAg
aGVhZGVyLnJpZ2h0LmxlZnQgPSBoZWFkZXIubGVmdAogICAgaGVhZGVyLmFkamFjZW50X25vZGVz
KDpkb3duKSBkbyB8Y29sdW1uX25vZGV8CiAgICAgIGNvbHVtbl9ub2RlLmFkamFjZW50X25vZGVz
KDpyaWdodCkgZG8gfHJvd19ub2RlfAogICAgICAgIHJvd19ub2RlLnVwLmRvd24gPSByb3dfbm9k
ZS5kb3duCiAgICAgICAgcm93X25vZGUuZG93bi51cCA9IHJvd19ub2RlLnVwCiAgICAgICAgcm93
X25vZGUuaGVhZGVyLm51bV9vbmVzIC09IDEKICAgICAgZW5kCiAgICBlbmQKICBlbmQKICBkZWYg
dW5jb3ZlcihoZWFkZXIpCiAgICBoZWFkZXIuYWRqYWNlbnRfbm9kZXMoOnVwKSBkbyB8Y29sdW1u
X25vZGV8CiAgICAgIGNvbHVtbl9ub2RlLmFkamFjZW50X25vZGVzKDpsZWZ0KSBkbyB8cm93X25v
ZGV8CiAgICAgICAgcm93X25vZGUudXAuZG93biA9IHJvd19ub2RlCiAgICAgICAgcm93X25vZGUu
ZG93bi51cCA9IHJvd19ub2RlCiAgICAgICAgcm93X25vZGUuaGVhZGVyLm51bV9vbmVzICs9IDEK
ICAgICAgZW5kCiAgICBlbmQKICAgIGhlYWRlci5sZWZ0LnJpZ2h0ID0gaGVhZGVyCiAgICBoZWFk
ZXIucmlnaHQubGVmdCA9IGhlYWRlcgogIGVuZAogIGRlZiBzb2x1dGlvbnMoc29sdXRpb24gPSBb
XSkKICAgIHNvbHV0aW9uID0gc29sdXRpb24uZHVwCiAgICBpZiBtYXN0ZXJfbm9kZS5yaWdodCA9
PSBtYXN0ZXJfbm9kZQogICAgICB5aWVsZCBzb2x1dGlvbgogICAgICByZXR1cm4KICAgIGVuZAoK
ICAgIHNwYXJzZXN0X2hlYWRlciA9IG1hc3Rlcl9ub2RlLnJpZ2h0CiAgICBtYXN0ZXJfbm9kZS5h
ZGphY2VudF9ub2Rlcyg6cmlnaHQpIGRvIHxoZWFkZXJ8CiAgICAgIHNwYXJzZXN0X2hlYWRlciA9
IGhlYWRlciBpZiAoaGVhZGVyLm51bV9vbmVzIDwgc3BhcnNlc3RfaGVhZGVyLm51bV9vbmVzKQog
ICAgZW5kCiAgICAKICAgIGNvdmVyKHNwYXJzZXN0X2hlYWRlcikKICAgIAogICAgc29sdXRpb24g
PDwgbmlsCiAgICBzcGFyc2VzdF9oZWFkZXIuYWRqYWNlbnRfbm9kZXMoOmRvd24pIGRvIHxjb2x1
bW5fbm9kZXwKICAgICAgc29sdXRpb25bLTFdID0gY29sdW1uX25vZGUucm93CiAgICAgIGNvbHVt
bl9ub2RlLmFkamFjZW50X25vZGVzKDpyaWdodCkgZG8gfHJvd19ub2RlfAogICAgICAgIGNvdmVy
KHJvd19ub2RlLmhlYWRlcikKICAgICAgZW5kCiAgICAgIHNvbHV0aW9ucyhzb2x1dGlvbikgZG8g
fHNvbHwKICAgICAgICB5aWVsZCBzb2wKICAgICAgZW5kCiAgICAgIGNvbHVtbl9ub2RlLmFkamFj
ZW50X25vZGVzKDpsZWZ0KSBkbyB8cm93X25vZGV8CiAgICAgICAgdW5jb3Zlcihyb3dfbm9kZS5o
ZWFkZXIpCiAgICAgIGVuZAogICAgZW5kCiAgICAKICAgIHVuY292ZXIoc3BhcnNlc3RfaGVhZGVy
KQogIGVuZAplbmQK
------art_4992_15383776.1166380121405--

```