#!/bin/bash

function fillIddfsFile {
    (cat | base64 --decode > "$TMP_DIR/$IDDFS_FILE") << EOF
Oi0gbW9kdWxlKCBmb3J0cHJvZwogICAgICAgICAsIFsgaWRkZnNfYXNzZXJ0SWZOb3RFeGlzdHMv
MQogICAgICAgICAgICwgaWRkZnNfbWF4TGlzdC8yCiAgICAgICAgICAgLCBpZGRmc19pc05ld1Jl
c3VsdC8yCiAgICAgICAgICAgLCBpZGRmc19zZWFyY2hEZXB0aC8xCiAgICAgICAgICAgLCBpZGRm
c19zZXRfc3RlcC8xIF0KICAgICAgICAgKS4KOi0gZHluYW1pYyB1c2VyOmNvbnRpbnVlX2lkZGZz
LzAuCjotIGR5bmFtaWMgdXNlcjppZGRmc19pc1VzZXJEZWZpbmVkLzIuCjotIGR5bmFtaWMgdXNl
cjppZGRmc19zdGVwLzEuCjotIGR5bmFtaWMgdXNlcjpleHBhbmRfcXVlcnkvNC4KOi0gbXVsdGlm
aWxlIHVzZXI6ZXhwYW5kX3F1ZXJ5LzQuCjotIG11bHRpZmlsZSB1c2VyOnRlcm1fZXhwYW5zaW9u
LzIuCgoKJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSBBVFRFTlRJT04gJSUlJSUl
JSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUKJSBUaGUgInJvb3QiIHByZWRpY2F0ZXMgYXJl
IHRlcm1fZXhwYW5zaW9uLzIgYW5kIGV4cGFuZF9xdWVyeS80LCBhdCB0aGUgYm90dG9tCiUgb2Yg
dGhpcyBmaWxlIChmb3IgdGVjaG5pY2FsIHJlYXNvbnMpLiBTa2lwIHRvIHRoZW0gdG8gdW5kZXJz
dGFuZCB0aGUgb3RoZXIKJSBwcmVkaWNhdGVzLgolJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUl
JSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJQoKCiUl
JSUlIFNwZWNpYWwgcXVlcmllcyAlJSUlJQolIEhhbmRsZSB0aGUgc3BlY2lhbCBxdWVyeSBvZiBs
b2FkaW5nIGEgbW9kdWxlIChkZXRlcm1pbmUgdXNlciBkZWZpbmVkCiUgcHJlZGljYXRlcyBiZWZv
cmUpLgpleHBhbmRRdWVyeShbTW9kdWxlXSwgW01vZHVsZV0pCiAgICA6LSBhYnNvbHV0ZV9maWxl
X25hbWUoTW9kdWxlLCBGaWxlTmFtZSwgW2V4dGVuc2lvbnMoWycucGwnXSldKQogICAgLCAgd3Jp
dGUoRmlsZU5hbWUpLCBubAogICAgLCAgcHJlUHJvY2VzcyhGaWxlTmFtZSkuCgoKCiUlJSUlIFRo
ZSBwdXJlIHRlcm0gZXhwYW5kaW5nIHByZWRpY2F0ZXMgJSUlJSUKJSBFeHBhbmQgYSBxdWVyeQol
IGA/LSA8UXVlcnk+LmAKJQolIHRvCiUKJSBgPy0gaWRkZnNfYXNzZXJ0SWZOb3RFeGlzdHModXNl
cjpjb250aW51ZV9pZGRmcykKJSAgICwgaWRkZnNfc2VhcmNoRGVwdGgoTWF4RGVwdGgpCiUgICAs
IHJldHJhY3QodXNlcjpjb250aW51ZV9pZGRmcykKJSAgICwgPFF1ZXJ5X3VzaW5nX2V4cGFuZGVk
X3ByZWRpY2F0ZXM+CiUgICAsIGlkZGZzX21heExpc3QoTHZscywgTHZsKQolICAgLCBpZGRmc19p
c05ld1Jlc3VsdChMdmwsIE1heERlcHRoKS5gCmV4cGFuZFF1ZXJ5KFF1ZXJ5LCBOZXdRdWVyeSkK
ICAgIDotIHRlcm1BbnkoaXNVc2VyRGVmaW5lZFRlcm0sIFF1ZXJ5KQogICAgLT4gKCBleHBhbmRC
b2R5KE1heERlcHRoLCBRdWVyeSwgRXhwUXVlcnksIEx2bHMpCiAgICAgICAsIG1ha2VDb25qVGVy
bShbIGlkZGZzX2Fzc2VydElmTm90RXhpc3RzKHVzZXI6Y29udGludWVfaWRkZnMpCiAgICAgICAg
ICAgICAgICAgICAgICAsIGlkZGZzX3NlYXJjaERlcHRoKE1heERlcHRoKQogICAgICAgICAgICAg
ICAgICAgICAgLCByZXRyYWN0KHVzZXI6Y29udGludWVfaWRkZnMpCiAgICAgICAgICAgICAgICAg
ICAgICAsIEV4cFF1ZXJ5CiAgICAgICAgICAgICAgICAgICAgICAsIGlkZGZzX21heExpc3QoTHZs
cywgTHZsKQogICAgICAgICAgICAgICAgICAgICAgLCBpZGRmc19pc05ld1Jlc3VsdChMdmwsIE1h
eERlcHRoKSBdCiAgICAgICAgICAgICAgICAgICAgICwgTmV3UXVlcnkpCiAgICAgICAgKQogICAg
OyBRdWVyeSA9IE5ld1F1ZXJ5LgoKZXhwYW5kUnVsZShIZWFkLCBCb2R5LCBOZXdIZWFkLCBOZXdC
b2R5KQogICAgOi0gZnVuY3RvcihIZWFkLCBGdW5jdG9yLCBBcml0eSkKICAgICwgIHVzZXI6aWRk
ZnNfaXNVc2VyRGVmaW5lZChGdW5jdG9yLCBBcml0eSkKICAgIC0+ICggZXhwYW5kUHJlZGljYXRp
b24oTWF4RGVwdGgsIEhlYWQsIE5ld0hlYWQsIEx2bCkKICAgICAgICwgZXhwYW5kQm9keShNYXhE
MSwgQm9keSwgVGVtcEJvZHkwLCBMdmxzKQogICAgICAgLCBleHBhbmRCb2R5QnlMdmxDYWxjKEx2
bHMsIEx2bCwgVGVtcEJvZHkwLCBUZW1wQm9keTEpCiAgICAgICAsIGV4cGFuZEJvZHlCeURlcHRo
Q2FsY0FuZEN1dChNYXhEZXB0aCwgTWF4RDEsIFRlbXBCb2R5MSwgTmV3Qm9keSkgKQogICAgOyAg
KEhlYWQgPSBOZXdIZWFkLCBCb2R5ID0gTmV3Qm9keSkuCgolIEV4cGVjdCB0ZXJtIChhbmQgbm90
IGl0cyBwYXJ0cyBnZW5lcmF0ZWQgYnkgYD0uLmApIGFzIGlucHV0LgpleHBhbmRQcmVkaWNhdGlv
bihEZXB0aCwgQ29tcG91bmRUZXJtLCBFeHBhbnNpb24sIEx2bCkKICAgIDotIENvbXBvdW5kVGVy
bSA9Li4gQ1RQYXJ0cwogICAgLCAgZXhwYW5kQ29tcG91bmRUZXJtUGFydHMoRGVwdGgsIENUUGFy
dHMsIEV4cENUUGFydHMsIEx2bCkKICAgICwgIEV4cGFuc2lvbiA9Li4gRXhwQ1RQYXJ0cy4KCmV4
cGFuZENvbXBvdW5kVGVybVBhcnRzKERlcHRoLCBbRnVuY3RvciB8IEFyZ3NdLCBbTmV3RnVuY3Rv
ciB8IE5ld0FyZ3NdLCBMdmwpCiAgICA6LSBsZW5ndGgoQXJncywgTikKICAgICwgIHVzZXI6aWRk
ZnNfaXNVc2VyRGVmaW5lZChGdW5jdG9yLCBOKQogICAgLT4gKCBhcHBlbmRBcmdzKFtEZXB0aCwg
THZsXSwgQXJncywgTmV3QXJncykKICAgICAgICwgYXRvbV9jb25jYXQoRnVuY3RvciwgJ19pZGRm
c19leHBhbmRlZCcsIE5ld0Z1bmN0b3IpCiAgICAgICApCiAgICAlIERvbid0IGV4cGFuZCBpZiBw
cmVkaWNhdGUgaXMgbm90IHVzZXItZGVmaW5lZC4KICAgIDsgICggRnVuY3RvciA9IE5ld0Z1bmN0
b3IKICAgICAgICwgQXJncyA9IE5ld0FyZ3MKICAgICAgICwgTHZsID0gMCApLgoKJSBFeHBlY3Qg
dGVybSAoYW5kIG5vdCBpdHMgcGFydHMgZ2VuZXJhdGVkIGJ5IGA9Li5gKSBhcyBpbnB1dC4KJSBJ
ZiBib2R5IGlzIGp1c3QgYSB2YXJpYWJsZSwgYD0uLmAgZG9lcyBub3Qgd29yay4KZXhwYW5kQm9k
eShfICAgICwgVmFyQm9keSwgVmFyQm9keSwgWzBdKSA6LSB2YXIoVmFyQm9keSksICEuCmV4cGFu
ZEJvZHkoRGVwdGgsIEJvZHkgICAsIE5ld0JvZHksIEx2bHMpCiAgICA6LSBCb2R5ID0uLiBCb2R5
UGFydHMKICAgICwgIGV4cGFuZEJvZHlQYXJ0cyhEZXB0aCwgQm9keVBhcnRzLCBFeHBCb2R5UGFy
dHMsIEx2bHMpCiAgICAsICBOZXdCb2R5ID0uLiBFeHBCb2R5UGFydHMuCgpleHBhbmRCb2R5UGFy
dHMoRGVwdGgsIFsnLCcsIExlZnQsIFJpZ2h0XSwgWycsJywgRXhwTGVmdCwgRXhwUmlnaHRdLCBM
dmxzKQogICAgOi0gZXhwYW5kQm9keShEZXB0aCwgTGVmdCwgRXhwTGVmdCwgTHZsc0xlZnQpCiAg
ICAsICBleHBhbmRCb2R5KERlcHRoLCBSaWdodCwgRXhwUmlnaHQsIEx2bHNSaWdodCkKICAgICwg
IGFwcGVuZChMdmxzTGVmdCwgTHZsc1JpZ2h0LCBMdmxzKS4KZXhwYW5kQm9keVBhcnRzKERlcHRo
LCBbJzsnLCBMZWZ0LCBSaWdodF0sIFsnOycsIEV4cExlZnQsIEV4cFJpZ2h0XSwgTHZscykKICAg
IDotIGV4cGFuZEJvZHkoRGVwdGgsIExlZnQsIEV4cExlZnQsIEx2bHNMZWZ0KQogICAgLCAgZXhw
YW5kQm9keShEZXB0aCwgUmlnaHQsIEV4cFJpZ2h0LCBMdmxzUmlnaHQpCiAgICAsICBhcHBlbmQo
THZsc0xlZnQsIEx2bHNSaWdodCwgTHZscykuCmV4cGFuZEJvZHlQYXJ0cyhEZXB0aCwgWy0+LCBM
ZWZ0LCBSaWdodF0sIFstPiwgRXhwTGVmdCwgRXhwUmlnaHRdLCBMdmxzKQogICAgOi0gZXhwYW5k
Qm9keShEZXB0aCwgTGVmdCwgRXhwTGVmdCwgTHZsc0xlZnQpCiAgICAsICBleHBhbmRCb2R5KERl
cHRoLCBSaWdodCwgRXhwUmlnaHQsIEx2bHNSaWdodCkKICAgICwgIGFwcGVuZChMdmxzTGVmdCwg
THZsc1JpZ2h0LCBMdmxzKS4KZXhwYW5kQm9keVBhcnRzKERlcHRoLCBbXCssIEFyZ10sIFtcKywg
RXhwQXJnXSwgTHZscykKICAgIDotIGV4cGFuZEJvZHkoRGVwdGgsIEFyZywgRXhwQXJnLCBMdmxz
KS4KZXhwYW5kQm9keVBhcnRzKERlcHRoLCBQcmVkaWNhdGlvblBhcnRzLCBOZXdQcmVkLCBbTHZs
XSkKICAgIDotIFByZWRpY2F0aW9uVGVybSA9Li4gUHJlZGljYXRpb25QYXJ0cwogICAgLCAgZXhw
YW5kUHJlZGljYXRpb24oRGVwdGgsIFByZWRpY2F0aW9uVGVybSwgRXhwUHJlZFRlcm0sIEx2bCkK
ICAgICwgIEV4cFByZWRUZXJtID0uLiBOZXdQcmVkLgoKJSBUcmFuc2Zvcm0KJQolIDxCb2R5Pgol
CiUgdG8KJQolIDxCb2R5PiwgaWRkZnNfbWF4TGlzdChMdmxzLCBNYXhMdmwpLCBMdmwgaXMgTWF4
THZsICsgMQpleHBhbmRCb2R5QnlMdmxDYWxjKEx2bHMsIEx2bCwgQm9keSwgTmV3Qm9keSkKICAg
IDotIG1ha2VDb25qVGVybSggWyBCb2R5CiAgICAgICAgICAgICAgICAgICAgICwgaWRkZnNfbWF4
TGlzdChMdmxzLCBNYXhMdmwpCiAgICAgICAgICAgICAgICAgICAgICwgTHZsIGlzIE1heEx2bCAr
IDFdCiAgICAgICAgICAgICAgICAgICAsIE5ld0JvZHkpLgoKJSBUcmFuc2Zvcm0KJSA8Qm9keT4K
JQolIHRvCiUKJSBOID4gMCAtPiAoIE4xIGlzIE4gLSAxLCA8Qm9keT4gKQolICAgICAgICA7IChp
ZGRmc19hc3NlcnRJZk5vdEV4aXN0cyh1c2VyOmNvbnRpbnVlX2lkZGZzKSwgZmFpbCkKZXhwYW5k
Qm9keUJ5RGVwdGhDYWxjQW5kQ3V0KE1heERlcHRoLCBNYXhEMSwgQm9keSwgTmV3Qm9keSkKICAg
IDotIG1ha2VDb25qVGVybShbTWF4RDEgaXMgTWF4RGVwdGggLSAxLCBCb2R5XSwgVGhlbkFjdGlv
bikKICAgICwgIG1ha2VEaXNqVGVybShbIE1heERlcHRoID4gMCAtPiBUaGVuQWN0aW9uCiAgICAg
ICAgICAgICAgICAgICAgLCAoaWRkZnNfYXNzZXJ0SWZOb3RFeGlzdHModXNlcjpjb250aW51ZV9p
ZGRmcykKICAgICAgICAgICAgICAgICAgICAsIGZhaWwpXQogICAgICAgICAgICAgICAgICAgLCBO
ZXdCb2R5KS4KCgoKJSUlJSUgU3BlY2lmaWMgdXRpbGl0eSBwcmVkaWNhdGVzICUlJSUlCmlkZGZz
X2Fzc2VydElmTm90RXhpc3RzKFRlcm0pIDotIFwrIFRlcm0gLT4gYXNzZXJ0YShUZXJtKSA7IHRy
dWUuCgolIFRoaXMgZGV0ZXJtaW5lcyB0aGUgc3RlcCB1c2VkIHRvIGluY3JlYXNlIHRoZSBzZWFy
Y2ggZGVwdGguIEl0IGlzIGNvbmZpZ3VyYWJsZQolIGJ5IHVzaW5nIGBpZGRmc19zZXRfc3RlcC8x
YC4KdXNlcjppZGRmc19zdGVwKDEpLgoKaWRkZnNfc2V0X3N0ZXAoTikgOi0gcmV0cmFjdGFsbCh1
c2VyOmlkZGZzX3N0ZXAoXykpLCBhc3NlcnRhKHVzZXI6aWRkZnNfc3RlcChOKSkuCgolIENvdW50
IGZyb20gMCB0byBpbmZpbml0eSB1c2luZyBnbG9iYWwgc3RlcCBzZXR0aW5nLgppZGRmc19zZWFy
Y2hEZXB0aCgwKS4KaWRkZnNfc2VhcmNoRGVwdGgoRCkKICAgIDotIHVzZXI6Y29udGludWVfaWRk
ZnMKICAgICwgIGlkZGZzX3NlYXJjaERlcHRoKEQxKQogICAgLCAgdXNlcjppZGRmc19zdGVwKFN0
ZXApCiAgICAsICBEIGlzIEQxICsgU3RlcC4KCmlkZGZzX21heExpc3QoW10sIDApLiAlIEZvciBv
dXIgcHVycG9zZSB0aGlzIGlzIGEgZ29vZCBjaG9pY2UuCmlkZGZzX21heExpc3QoWyBYIHwgWHMg
XSwgTWF4KQogICAgOi0gaWRkZnNfbWF4TGlzdChYcywgTWF4U29GYXIpCiAgICAsIChncm91bmQo
WCkgLT4gTWF4IGlzIG1heChYLCBNYXhTb0ZhcikKICAgICAgICAgICAgICAgICAgOyBNYXggaXMg
TWF4U29GYXIpLgoKJSBBIHJlc3VsdCBpcyBjb25zaWRlcmVkIG5ldywgaWYgaXQgaXMgZm91bmQg
d2l0aGluIGEgbmV3IGludGVydmFsLgppZGRmc19pc05ld1Jlc3VsdChMdmwsIE1heERlcHRoKQog
ICAgOi0gdXNlcjppZGRmc19zdGVwKFN0ZXApCiAgICAsICBMdmwgPj0gTWF4RGVwdGggLSBTdGVw
ICsgMS4KCnByZVByb2Nlc3MoTW9kdWxlKQogICAgOi0gb3BlbihNb2R1bGUsIHJlYWQsIFN0cmVh
bSkKICAgICwgIHJlYWRfdGVybXMoU3RyZWFtLCBUZXJtcykKICAgICwgIGNoZWNrRm9ySWxsZWdh
bE9wcyhUZXJtcykKICAgICwgIGdldFVzZXJEZWZpbmVkUHJlZHMoVGVybXMpCiAgICAsICBjbG9z
ZShTdHJlYW0pLgoKcmVhZF90ZXJtcyhTdHJlYW0sIFtdKQogICAgOi0gYXRfZW5kX29mX3N0cmVh
bShTdHJlYW0pLgpyZWFkX3Rlcm1zKFN0cmVhbSwgW1QgfCBUc10pCiAgICA6LSBcKyBhdF9lbmRf
b2Zfc3RyZWFtKFN0cmVhbSkKICAgICwgIHJlYWQoU3RyZWFtLCBUKQogICAgLCAgcmVhZF90ZXJt
cyhTdHJlYW0sIFRzKS4KCmNoZWNrRm9ySWxsZWdhbE9wcyhUZXJtcykgOi0gbGlzdEFueSh0ZXJt
QW55KGlzRm9yYmlkZGVuT3ApLCBUZXJtcyksICEuCmNoZWNrRm9ySWxsZWdhbE9wcyhfKS4KCmlz
Rm9yYmlkZGVuT3AoVGVybSkKICAgIDotIFwrIHZhcihUZXJtKQogICAgLT4gZnVuY3RvcihUZXJt
LCAnIScsIDApCiAgICAsICBzeW50YXhfZXJyb3IoJ0lEREZTIGlzIG5vdCBjb21wYXRpYmxlIHdp
dGggdGhlIGN1dCAoISkgb3BlcmF0b3IhJykuCmlzRm9yYmlkZGVuT3AoVGVybSkKICAgIDotIFwr
IHZhcihUZXJtKQogICAgLT4gZnVuY3RvcihUZXJtLCBcKywgMSkKICAgICwgIHN5bnRheF9lcnJv
cignSURERlMgaXMgbm90IGNvbXBhdGlibGUgd2l0aCB0aGUgbmVnYXRpb24gKFxcKykgb3BlcmF0
b3IhJykuCgpnZXRVc2VyRGVmaW5lZFByZWRzKFRlcm1zKQogICAgOi0gcmV0cmFjdGFsbCh1c2Vy
OmlkZGZzX2lzVXNlckRlZmluZWQoXyxfKSkKICAgICwgIGRpc3BhdGNoX3Rlcm1zKFRlcm1zKS4K
CmlzVXNlckRlZmluZWRUZXJtKFRlcm0pCiAgICA6LSBcKyB2YXIoVGVybSkgLT4gZnVuY3RvcihU
ZXJtLCBGLCBBKSwgdXNlcjppZGRmc19pc1VzZXJEZWZpbmVkKEYsIEEpLgoKbWFya0FzVXNlckRl
ZmluZWQoVGVybSkKICAgIDotIGZ1bmN0b3IoVGVybSwgRiwgQSkKICAgICwgIEYgXD0gZW5kX29m
X2ZpbGUKICAgIC0+IGlkZGZzX2Fzc2VydElmTm90RXhpc3RzKHVzZXI6aWRkZnNfaXNVc2VyRGVm
aW5lZChGLCBBKSkKICAgIDsgIHRydWUuCgolIFRyYW5zZm9ybSB0ZXJtcyBmcm9tIGFyZ3VtZW50
IGxpc3QgdG8gYW4gcmlnaHQgYXNzb2NpYXRpdmUgY29uanVuY3Rpb24gdGVybS4KJSBGb3IgZXhh
bXBsZTogYFt0cnVlLCBmYWxzZSwgdHJ1ZSwgZmFsc2VdYCBiZWNvbWVzIGB0cnVlLCAoZmFsc2Us
ICh0cnVlLCBmYWxzZSkpYAptYWtlQ29ualRlcm0oQXJncywgUmVzdWx0KSA6LSBtYWtlT3BUZXJt
KCcsJywgQXJncywgUmVzdWx0KS4KCiUgU2VlIGBtYWtlQ29ualRlcm1gLCBidXQgd2l0aCBgO2Ag
aW5zdGVhZCBvZiBgLGAKbWFrZURpc2pUZXJtKEFyZ3MsIFJlc3VsdCkgOi0gbWFrZU9wVGVybSgn
OycsIEFyZ3MsIFJlc3VsdCkuCgphcHBlbmRBcmdzKEFyZ3MsIE9sZEFyZ3MsIE5ld0FyZ3MpIDot
IGFwcGVuZChPbGRBcmdzLCBBcmdzLCBOZXdBcmdzKS4KCgoKJSUlJSUgR2VuZXJpYyB1dGlsaXR5
IHByZWRpY2F0ZXMgJSUlJSUKJSBUcnVlIGlmIEdvYWwgY2FuIHN1Y2Nlc3NmdWxseSBiZSBhcHBs
aWVkIG9uIHJvb3QgdGVybSwgb3IgaWYgdGVybUFueShHb2FsLCBTVCkKJSBjYW4gY2FuIHN1Y2Nl
c3NmdWxseSBiZSBhcHBsaWVkIG9uIGFueSBzdWJ0ZXJtIFNUIG9mIHRoZSByb290IHRlcm0uCiUg
TWluZCB0aGF0IHRoZSByb290IHRlcm0gY291bGQgYWxzbyBiZSBhIHZhcmlhYmxlIG9yIGFuIGF0
b20uCnRlcm1BbnkoR29hbCwgVGVybSkgOi0gY2FsbChHb2FsLCBUZXJtKSwgIS4KdGVybUFueShH
b2FsLCBUZXJtKQogICAgOi0gXCsgdmFyKFRlcm0pCiAgICAtPiBUZXJtID0uLiBbIF8gfCBBcmdz
IF0sIGxpc3RBbnkodGVybUFueShHb2FsKSwgQXJncykuCgolIFRydWUgaWYgR29hbCBjYW4gc3Vj
Y2Vzc2Z1bGx5IGJlIGFwcGxpZWQgb24gYW55IGVsZW1lbnQgb2YgTGlzdApsaXN0QW55KEdvYWws
IFtYIHwgXyBdKSA6LSBjYWxsKEdvYWwsIFgpLCAhLgpsaXN0QW55KEdvYWwsIFtfIHwgWHNdKSA6
LSBsaXN0QW55KEdvYWwsIFhzKS4KCiUgQ29udHJ1Y3QgdGVybSB1c2luZyBnaXZlbiBiaW5hcnkg
b3AuIEZvciBleGFtcGxlOgolIG1ha2VPcFRlcm0oIG9wLCBbeDEsIC4uLiwgeG5dLCB4MSBvcCAo
eDIgb3AgKC4uLiggeG4tMSBvcCB4bikuLi4pKSApLgptYWtlT3BUZXJtKF8gLCBbQXJnMF0sIFJl
c3VsdCkgOi0gUmVzdWx0ID0gQXJnMC4KbWFrZU9wVGVybShPcCwgW0FyZzAsIEFyZzEgfCBBcmdz
XSwgUmVzdWx0KQogICAgOi0gbWFrZU9wVGVybShPcCwgW0FyZzEgfCBBcmdzXSwgVGVtcFJlcykK
ICAgICwgIFJlc3VsdCA9Li4gW09wLCBBcmcwLCBUZW1wUmVzXS4KCgolJSUlJSBUaGUgRGlzcGF0
Y2hpbmcgb2YgdGVybXMgJSUlJSUKJSUlIERpc3BhdGNoaW5nIG5lZWRlZCBkdXJpbmcgdGVybSBl
eHBhbnNpb24KZGlzcGF0Y2goWzotLCBEaXJlY3RpdmVdLCBbOi0sIERpcmVjdGl2ZV0pIDotICEu
CmRpc3BhdGNoKFs/LSwgUXVlcnldLCBbPy0sIE5ld1F1ZXJ5XSkgOi0gZXhwYW5kUXVlcnkoUXVl
cnksIE5ld1F1ZXJ5KSwgIS4KZGlzcGF0Y2goWzotLCBIZWFkLCBCb2R5XSwgWzotLCBOZXdIZWFk
LCBOZXdCb2R5XSkKICAgIDotIGV4cGFuZFJ1bGUoSGVhZCwgQm9keSwgTmV3SGVhZCwgTmV3Qm9k
eSksICEuCmRpc3BhdGNoKFByZWRpY2F0aW9uUGFydHMsIE5ld1ByZWQpCiAgICA6LSBQcmVkaWNh
dGlvblRlcm0gPS4uIFByZWRpY2F0aW9uUGFydHMKICAgICwgIGV4cGFuZFByZWRpY2F0aW9uKF8s
IFByZWRpY2F0aW9uVGVybSwgRXhwUHJlZFRlcm0sIDApCiAgICAsICBFeHBQcmVkVGVybSA9Li4g
TmV3UHJlZC4KCiUlJSBEaXNwYXRjaGluZyBuZWVkZWQgZHVyaW5nIHF1ZXJ5IGV4cGFuc2lvbgpk
aXNwYXRjaF90ZXJtcyhbXSkuCmRpc3BhdGNoX3Rlcm1zKFtUIHwgVHNdKSA6LSBUID0uLiBUUGFy
dHMsIGRpc3BhdGNoKFRQYXJ0cyksIGRpc3BhdGNoX3Rlcm1zKFRzKS4KCmRpc3BhdGNoKFs6LSwg
X10pIDotICEuCmRpc3BhdGNoKFs/LSwgX10pIDotICEuCmRpc3BhdGNoKFs6LSwgSGVhZCwgX10p
IDotIG1hcmtBc1VzZXJEZWZpbmVkKEhlYWQpLCAhLgpkaXNwYXRjaChQcmVkUGFydHMpIDotIFBy
ZWQgPS4uIFByZWRQYXJ0cywgIG1hcmtBc1VzZXJEZWZpbmVkKFByZWQpLgoKJSUlJSUgVGhlIGhv
b2tzIHdoaWNoIGluaXRpYXRlIHRlcm0gZXhwYW5zaW9uICUlJSUlCjotIGFzc2VydGEoKHVzZXI6
ZXhwYW5kX3F1ZXJ5KFExLFEyLEIsQikgOi0gZXhwYW5kUXVlcnkoUTEsIFEyKSkpLgo6LSBhc3Nl
cnRhKCh1c2VyOnRlcm1fZXhwYW5zaW9uKFRlcm0sIEV4cGFuc2lvbikgOi0gVGVybSA9Li4gUGFy
dHMsIGRpc3BhdGNoKFBhcnRzLCBQcm9jZXNzZWRQYXJ0cyksIEV4cGFuc2lvbiA9Li4gUHJvY2Vz
c2VkUGFydHMpKS4KCiUlJSBHcmVldGluZyBtZXNzYWdlOgo6LSB3cml0ZSgnV2VsY29tZSB0byBT
V0ktUHJvbG9nIChleHRlbmRlZCBXSVRIIENPTVBMRVRFIFNFQVJDSCBmb3IgRGVrbFByb2csIDA1
LzEyLzIyKS4nKSwKICAgbmwuCg==
EOF
}

TMP_DIR="$(mktemp -d)"
IDDFS_FILE="iddfs.pl"
touch "$TMP_DIR/$IDDFS_FILE"

fillIddfsFile

swipl --traditional --quiet -s "$TMP_DIR/$IDDFS_FILE"

rm -R "$TMP_DIR"
