<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>102757</bug_id>
          
          <creation_ts>2012-11-19 18:56:26 -0800</creation_ts>
          <short_desc>[JSC] Replace $implClassName with $interfaceName in CodeGeneratorJS.pm</short_desc>
          <delta_ts>2012-11-19 23:39:31 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>abarth</cc>
    
    <cc>ggaren</cc>
    
    <cc>japhet</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>771383</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-19 18:56:26 -0800</bug_when>
    <thetext>In CodeGeneratorJS.pm $implClassName and $interfaceName are equivalent. We&apos;re using them interchangeably. We should replace $implClassName with $interfaceName.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771389</commentid>
    <comment_count>1</comment_count>
      <attachid>175113</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-19 19:03:33 -0800</bug_when>
    <thetext>Created attachment 175113
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771581</commentid>
    <comment_count>2</comment_count>
      <attachid>175113</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-19 23:39:27 -0800</bug_when>
    <thetext>Comment on attachment 175113
Patch

Clearing flags on attachment: 175113

Committed r135256: &lt;http://trac.webkit.org/changeset/135256&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771582</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-19 23:39:31 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175113</attachid>
            <date>2012-11-19 19:03:33 -0800</date>
            <delta_ts>2012-11-19 23:39:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102757-20121120120122.patch</filename>
            <type>text/plain</type>
            <size>46546</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjJiYWY1NjllZGIxMDRi
ZjVmMmRmNGE3YTYzMzZlZGVjZjY3ZWZmOC4uZDkwMjY3MGY1OWVlZTIxZTM4MTc2NTRhZmM1Zjhl
YTY3YTczOGM3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI5IEBACiAyMDEyLTExLTE5ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAorICAgICAgICBbSlNDXSBSZXBsYWNl
ICRpbXBsQ2xhc3NOYW1lIHdpdGggJGludGVyZmFjZU5hbWUgaW4gQ29kZUdlbmVyYXRvckpTLnBt
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI3NTcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBDb2Rl
R2VuZXJhdG9ySlMucG0gJGltcGxDbGFzc05hbWUgYW5kICRpbnRlcmZhY2VOYW1lIGFyZQorICAg
ICAgICBlcXVpdmFsZW50LiBXZSdyZSB1c2luZyB0aGVtIGludGVyY2hhbmdlYWJseS4gV2Ugc2hv
dWxkIHJlcGxhY2UKKyAgICAgICAgJGltcGxDbGFzc05hbWUgd2l0aCAkaW50ZXJmYWNlTmFtZS4K
KworICAgICAgICBObyB0ZXN0cy4gTm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChBZGRDbGFzc0Zv
cndhcmRJZk5lZWRlZCk6CisgICAgICAgIChHZW5lcmF0ZUdldE93blByb3BlcnR5U2xvdEJvZHkp
OgorICAgICAgICAoR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JCb2R5KToKKyAgICAg
ICAgKEdlbmVyYXRlSGVhZGVyKToKKyAgICAgICAgKEdlbmVyYXRlT3ZlcmxvYWRlZEZ1bmN0aW9u
KToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAoR2VuZXJhdGVQ
YXJhbWV0ZXJzQ2hlY2spOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbkZ1bmN0aW9u
Q2FsbCk6CisgICAgICAgIChOYXRpdmVUb0pTVmFsdWUpOgorCisyMDEyLTExLTE5ICBLZW50YXJv
IEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKwogICAgICAgICBJbiBDb2RlR2VuZXJhdG9y
SlMucG0gd2Ugc2hvdWxkIHJlbmFtZSAkZGF0YU5vZGUgdG8gJGludGVyZmFjZQogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAyNzQ4CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXgg
YjEwYWVhMTE2MjQ0NDNkMGI4YjY4NTc3MmI3NWY3Yjg0ZDgyM2QxZi4uZDA1YzZjNmRhM2UwNWQx
MTY4MWIzMzIwYWQ2ZTQ2ZTA4NWI0ZDE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTMxOSwxNSArMzE5LDE1IEBAIHN1
YiBBZGRUeXBlZGVmRm9yU2NyaXB0UHJvZmlsZVR5cGUKIAogc3ViIEFkZENsYXNzRm9yd2FyZElm
TmVlZGVkCiB7Ci0gICAgbXkgJGltcGxDbGFzc05hbWUgPSBzaGlmdDsKKyAgICBteSAkaW50ZXJm
YWNlTmFtZSA9IHNoaWZ0OwogCiAgICAgIyBTVkdBbmltYXRlZExlbmd0aC9OdW1iZXIvZXRjLiBh
cmUgdHlwZWRlZnMgdG8gU1ZHQW5pbWF0ZWRUZW1wbGF0ZSwgc28gZG9uJ3QgdXNlIGNsYXNzIGZv
cndhcmRzIGZvciB0aGVtIQotICAgIHVubGVzcyAoJGNvZGVHZW5lcmF0b3ItPklzU1ZHQW5pbWF0
ZWRUeXBlKCRpbXBsQ2xhc3NOYW1lKSBvciBJc1NjcmlwdFByb2ZpbGVUeXBlKCRpbXBsQ2xhc3NO
YW1lKSBvciAkY29kZUdlbmVyYXRvci0+SXNUeXBlZEFycmF5VHlwZSgkaW1wbENsYXNzTmFtZSkp
IHsKLSAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgImNsYXNzICRpbXBsQ2xhc3NOYW1lO1xu
XG4iKTsKKyAgICB1bmxlc3MgKCRjb2RlR2VuZXJhdG9yLT5Jc1NWR0FuaW1hdGVkVHlwZSgkaW50
ZXJmYWNlTmFtZSkgb3IgSXNTY3JpcHRQcm9maWxlVHlwZSgkaW50ZXJmYWNlTmFtZSkgb3IgJGNv
ZGVHZW5lcmF0b3ItPklzVHlwZWRBcnJheVR5cGUoJGludGVyZmFjZU5hbWUpKSB7CisgICAgICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICJjbGFzcyAkaW50ZXJmYWNlTmFtZTtcblxuIik7CiAgICAg
IyBTY3JpcHRQcm9maWxlIGFuZCBTY3JpcHRQcm9maWxlTm9kZSBhcmUgdHlwZWRlZnMgdG8gSlND
OjpQcm9maWxlIGFuZCBKU0M6OlByb2ZpbGVOb2RlLgotICAgIH0gZWxzaWYgKElzU2NyaXB0UHJv
ZmlsZVR5cGUoJGltcGxDbGFzc05hbWUpKSB7CisgICAgfSBlbHNpZiAoSXNTY3JpcHRQcm9maWxl
VHlwZSgkaW50ZXJmYWNlTmFtZSkpIHsKICAgICAgICAgJGhlYWRlckluY2x1ZGVzeyI8cHJvZmls
ZXIvUHJvZmlsZU5vZGUuaD4ifSA9IDE7Ci0gICAgICAgIEFkZFR5cGVkZWZGb3JTY3JpcHRQcm9m
aWxlVHlwZSgkaW1wbENsYXNzTmFtZSk7CisgICAgICAgIEFkZFR5cGVkZWZGb3JTY3JpcHRQcm9m
aWxlVHlwZSgkaW50ZXJmYWNlTmFtZSk7CiAgICAgfQogfQogCkBAIC0zOTEsNyArMzkxLDcgQEAg
c3ViIEdldEN1c3RvbUlzUmVhY2hhYmxlCiAKIHN1YiBHZW5lcmF0ZUdldE93blByb3BlcnR5U2xv
dEJvZHkKIHsKLSAgICBteSAoJGludGVyZmFjZSwgJGludGVyZmFjZU5hbWUsICRjbGFzc05hbWUs
ICRpbXBsQ2xhc3NOYW1lLCAkaGFzQXR0cmlidXRlcywgJGlubGluZWQpID0gQF87CisgICAgbXkg
KCRpbnRlcmZhY2UsICRpbnRlcmZhY2VOYW1lLCAkY2xhc3NOYW1lLCAkaGFzQXR0cmlidXRlcywg
JGlubGluZWQpID0gQF87CiAKICAgICBteSAkbmFtZXNwYWNlTWF5YmUgPSAoJGlubGluZWQgPyAi
SlNDOjoiIDogIiIpOwogCkBAIC00MjMsMTAgKzQyMywxMCBAQCBzdWIgR2VuZXJhdGVHZXRPd25Q
cm9wZXJ0eVNsb3RCb2R5CiAKICAgICAgICAgIyBJZiB0aGUgaXRlbSBmdW5jdGlvbiByZXR1cm5z
IGEgc3RyaW5nIHRoZW4gd2UgbGV0IHRoZSBUcmVhdFJldHVybmVkTnVsbFN0cmluZ0FzIGhhbmRs
ZSB0aGUgY2FzZXMKICAgICAgICAgIyB3aGVyZSB0aGUgaW5kZXggaXMgb3V0IG9mIHJhbmdlLgot
ICAgICAgICBpZiAoSW5kZXhHZXR0ZXJSZXR1cm5zU3RyaW5ncygkaW1wbENsYXNzTmFtZSkpIHsK
KyAgICAgICAgaWYgKEluZGV4R2V0dGVyUmV0dXJuc1N0cmluZ3MoJGludGVyZmFjZU5hbWUpKSB7
CiAgICAgICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIGlmIChpbmRl
eCAhPSBQcm9wZXJ0eU5hbWU6Ok5vdEFuSW5kZXgpIHtcbiIpOwogICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICBpZiAoaW5kZXgg
IT0gUHJvcGVydHlOYW1lOjpOb3RBbkluZGV4ICYmIGluZGV4IDwgc3RhdGljX2Nhc3Q8JGltcGxD
bGFzc05hbWUqPih0aGlzT2JqZWN0LT5pbXBsKCkpLT5sZW5ndGgoKSkge1xuIik7CisgICAgICAg
ICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAiICAgIGlmIChpbmRleCAhPSBQcm9w
ZXJ0eU5hbWU6Ok5vdEFuSW5kZXggJiYgaW5kZXggPCBzdGF0aWNfY2FzdDwkaW50ZXJmYWNlTmFt
ZSo+KHRoaXNPYmplY3QtPmltcGwoKSktPmxlbmd0aCgpKSB7XG4iKTsKICAgICAgICAgfQogICAg
ICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik51bWVyaWNJbmRleGVk
R2V0dGVyIn0pIHsKICAgICAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIg
ICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdC0+Z2V0QnlJbmRleChleGVjLCBpbmRleCkp
O1xuIik7CkBAIC00MzgsNyArNDM4LDcgQEAgc3ViIEdlbmVyYXRlR2V0T3duUHJvcGVydHlTbG90
Qm9keQogICAgIH0KIAogICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
TmFtZWRHZXR0ZXIifSB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9t
TmFtZWRHZXR0ZXIifSkgewotICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eVNsb3RJbXBsLCAi
ICAgIGlmIChjYW5HZXRJdGVtc0Zvck5hbWUoZXhlYywgc3RhdGljX2Nhc3Q8JGltcGxDbGFzc05h
bWUqPih0aGlzT2JqZWN0LT5pbXBsKCkpLCBwcm9wZXJ0eU5hbWUpKSB7XG4iKTsKKyAgICAgICAg
cHVzaChAZ2V0T3duUHJvcGVydHlTbG90SW1wbCwgIiAgICBpZiAoY2FuR2V0SXRlbXNGb3JOYW1l
KGV4ZWMsIHN0YXRpY19jYXN0PCRpbnRlcmZhY2VOYW1lKj4odGhpc09iamVjdC0+aW1wbCgpKSwg
cHJvcGVydHlOYW1lKSkge1xuIik7CiAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdElt
cGwsICIgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIHRoaXNPYmplY3QtPm5hbWVH
ZXR0ZXIpO1xuIik7CiAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdEltcGwsICIgICAg
ICAgIHJldHVybiB0cnVlO1xuIik7CiAgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5U2xvdElt
cGwsICIgICAgfVxuIik7CkBAIC00NzQsNyArNDc0LDcgQEAgc3ViIEdlbmVyYXRlR2V0T3duUHJv
cGVydHlTbG90Qm9keQogCiBzdWIgR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JCb2R5
CiB7Ci0gICAgbXkgKCRpbnRlcmZhY2UsICRpbnRlcmZhY2VOYW1lLCAkY2xhc3NOYW1lLCAkaW1w
bENsYXNzTmFtZSwgJGhhc0F0dHJpYnV0ZXMsICRpbmxpbmVkKSA9IEBfOworICAgIG15ICgkaW50
ZXJmYWNlLCAkaW50ZXJmYWNlTmFtZSwgJGNsYXNzTmFtZSwgJGhhc0F0dHJpYnV0ZXMsICRpbmxp
bmVkKSA9IEBfOwogICAgIAogICAgIG15ICRuYW1lc3BhY2VNYXliZSA9ICgkaW5saW5lZCA/ICJK
U0M6OiIgOiAiIik7CiAgICAgCkBAIC01MTQsNyArNTE0LDcgQEAgc3ViIEdlbmVyYXRlR2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yQm9keQogCiAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJJbmRleGVkR2V0dGVyIn0gfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57Ik51bWVyaWNJbmRleGVkR2V0dGVyIn0pIHsKICAgICAgICAgcHVzaChAZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9ySW1wbCwgIiAgICB1bnNpZ25lZCBpbmRleCA9IHByb3BlcnR5TmFtZS5h
c0luZGV4KCk7XG4iKTsKLSAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ySW1w
bCwgIiAgICBpZiAoaW5kZXggIT0gUHJvcGVydHlOYW1lOjpOb3RBbkluZGV4ICYmIGluZGV4IDwg
c3RhdGljX2Nhc3Q8JGltcGxDbGFzc05hbWUqPih0aGlzT2JqZWN0LT5pbXBsKCkpLT5sZW5ndGgo
KSkge1xuIik7CisgICAgICAgIHB1c2goQGdldE93blByb3BlcnR5RGVzY3JpcHRvckltcGwsICIg
ICAgaWYgKGluZGV4ICE9IFByb3BlcnR5TmFtZTo6Tm90QW5JbmRleCAmJiBpbmRleCA8IHN0YXRp
Y19jYXN0PCRpbnRlcmZhY2VOYW1lKj4odGhpc09iamVjdC0+aW1wbCgpKS0+bGVuZ3RoKCkpIHtc
biIpOwogICAgICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik51bWVy
aWNJbmRleGVkR2V0dGVyIn0pIHsKICAgICAgICAgICAgICMgQXNzdW1lIHRoYXQgaWYgdGhlcmUn
cyBhIHNldHRlciwgdGhlIGluZGV4IHdpbGwgYmUgd3JpdGFibGUKICAgICAgICAgICAgIGlmICgk
aW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tSW5kZXhlZFNldHRlciJ9KSB7
CkBAIC01MzcsNyArNTM3LDcgQEAgc3ViIEdlbmVyYXRlR2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
Qm9keQogICAgIH0KIAogICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
TmFtZWRHZXR0ZXIifSB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9t
TmFtZWRHZXR0ZXIifSkgewotICAgICAgICBwdXNoKEBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JJ
bXBsLCAiICAgIGlmIChjYW5HZXRJdGVtc0Zvck5hbWUoZXhlYywgc3RhdGljX2Nhc3Q8JGltcGxD
bGFzc05hbWUqPih0aGlzT2JqZWN0LT5pbXBsKCkpLCBwcm9wZXJ0eU5hbWUpKSB7XG4iKTsKKyAg
ICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ySW1wbCwgIiAgICBpZiAoY2FuR2V0
SXRlbXNGb3JOYW1lKGV4ZWMsIHN0YXRpY19jYXN0PCRpbnRlcmZhY2VOYW1lKj4odGhpc09iamVj
dC0+aW1wbCgpKSwgcHJvcGVydHlOYW1lKSkge1xuIik7CiAgICAgICAgIHB1c2goQGdldE93blBy
b3BlcnR5RGVzY3JpcHRvckltcGwsICIgICAgICAgICR7bmFtZXNwYWNlTWF5YmV9UHJvcGVydHlT
bG90IHNsb3Q7XG4iKTsKICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ySW1w
bCwgIiAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgbmFtZUdldHRlcik7XG4iKTsK
ICAgICAgICAgcHVzaChAZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ySW1wbCwgIiAgICAgICAgZGVz
Y3JpcHRvci5zZXREZXNjcmlwdG9yKHNsb3QuZ2V0VmFsdWUoZXhlYywgcHJvcGVydHlOYW1lKSwg
UmVhZE9ubHkgfCBEb250RGVsZXRlIHwgRG9udEVudW0pO1xuIik7CkBAIC02NjAsNyArNjYwLDYg
QEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAKICAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRpbnRlcmZh
Y2UtPm5hbWU7CiAgICAgbXkgJGNsYXNzTmFtZSA9ICJKUyRpbnRlcmZhY2VOYW1lIjsKLSAgICBt
eSAkaW1wbENsYXNzTmFtZSA9ICRpbnRlcmZhY2VOYW1lOwogICAgIG15IEBhbmNlc3RvckludGVy
ZmFjZU5hbWVzID0gKCk7CiAgICAgbXkgJXN0cnVjdHVyZUZsYWdzID0gKCk7CiAKQEAgLTcwMSwx
NyArNzAwLDE3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIH0KIAogICAgIGlmICgkaGFzUGFy
ZW50ICYmICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0dlbmVyYXRlVG9OYXRp
dmVPYmplY3QifSkgewotICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzVHlwZWRBcnJheVR5
cGUoJGltcGxDbGFzc05hbWUpKSB7Ci0gICAgICAgICAgICAkaGVhZGVySW5jbHVkZXN7Ijx3dGYv
JGltcGxDbGFzc05hbWUuaD4ifSA9IDE7CisgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNU
eXBlZEFycmF5VHlwZSgkaW50ZXJmYWNlTmFtZSkpIHsKKyAgICAgICAgICAgICRoZWFkZXJJbmNs
dWRlc3siPHd0Zi8kaW50ZXJmYWNlTmFtZS5oPiJ9ID0gMTsKICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICRoZWFkZXJJbmNsdWRlc3siJGltcGxDbGFzc05hbWUuaCJ9ID0gMTsKKyAgICAg
ICAgICAgICRoZWFkZXJJbmNsdWRlc3siJGludGVyZmFjZU5hbWUuaCJ9ID0gMTsKICAgICAgICAg
fQogICAgIH0KICAgICAKICAgICAkaGVhZGVySW5jbHVkZXN7IjxydW50aW1lL0pTT2JqZWN0Lmg+
In0gPSAxOwogICAgICRoZWFkZXJJbmNsdWRlc3siU1ZHRWxlbWVudC5oIn0gPSAxIGlmICRjbGFz
c05hbWUgPX4gL15KU1NWRy87CiAKLSAgICBteSAkaW1wbFR5cGUgPSAkaW1wbENsYXNzTmFtZTsK
KyAgICBteSAkaW1wbFR5cGUgPSAkaW50ZXJmYWNlTmFtZTsKICAgICBteSAoJHN2Z1Byb3BlcnR5
VHlwZSwgJHN2Z0xpc3RQcm9wZXJ0eVR5cGUsICRzdmdOYXRpdmVUeXBlKSA9IEdldFNWR1Byb3Bl
cnR5VHlwZXMoJGltcGxUeXBlKTsKICAgICAkaW1wbFR5cGUgPSAkc3ZnTmF0aXZlVHlwZSBpZiAk
c3ZnTmF0aXZlVHlwZTsKIApAQCAtNzI1LDEyICs3MjQsMTIgQEAgc3ViIEdlbmVyYXRlSGVhZGVy
CiAKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiXG5uYW1lc3BhY2UgV2ViQ29yZSB7XG5cbiIp
OwogCi0gICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1NWR0FuaW1hdGVkVHlwZSgkaW1wbENsYXNz
TmFtZSkpIHsKLSAgICAgICAgJGhlYWRlckluY2x1ZGVzeyIkaW1wbENsYXNzTmFtZS5oIn0gPSAx
OworICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNTVkdBbmltYXRlZFR5cGUoJGludGVyZmFjZU5h
bWUpKSB7CisgICAgICAgICRoZWFkZXJJbmNsdWRlc3siJGludGVyZmFjZU5hbWUuaCJ9ID0gMTsK
ICAgICB9IGVsc2UgewogICAgICAgICAjIEltcGxlbWVudGF0aW9uIGNsYXNzIGZvcndhcmQgZGVj
bGFyYXRpb24KICAgICAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciIHx8ICRp
bnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJc1dvcmtlckNvbnRleHQifSkgewotICAg
ICAgICAgICAgQWRkQ2xhc3NGb3J3YXJkSWZOZWVkZWQoJGltcGxDbGFzc05hbWUpIHVubGVzcyAk
c3ZnUHJvcGVydHlPckxpc3RQcm9wZXJ0eVR5cGU7CisgICAgICAgICAgICBBZGRDbGFzc0Zvcndh
cmRJZk5lZWRlZCgkaW50ZXJmYWNlTmFtZSkgdW5sZXNzICRzdmdQcm9wZXJ0eU9yTGlzdFByb3Bl
cnR5VHlwZTsKICAgICAgICAgfQogICAgIH0KIApAQCAtOTU5LDkgKzk1OCw5IEBAIHN1YiBHZW5l
cmF0ZUhlYWRlcgogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAicHJpdmF0ZTpcbiIpOwog
ICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICRpbXBsVHlwZSogbV9pbXBsO1xuIik7
CiAgICAgfSBlbHNpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTR2VuZXJh
dGVUb05hdGl2ZU9iamVjdCJ9KSB7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAg
JGltcGxDbGFzc05hbWUqIGltcGwoKSBjb25zdFxuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICIgICAgJGludGVyZmFjZU5hbWUqIGltcGwoKSBjb25zdFxuIik7CiAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAge1xuIik7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICIgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+KEJhc2U6Omlt
cGwoKSk7XG4iKTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PCRpbnRlcmZhY2VOYW1lKj4oQmFzZTo6aW1wbCgpKTtcbiIpOwogICAgICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIH1cbiIpOwogICAgIH0KIApAQCAtMTAxNCw3ICsx
MDEzLDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgIyBOYW1lIGdldHRlcgogICAgIGlmICgk
aW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTmFtZWRHZXR0ZXIifSB8fCAkaW50ZXJm
YWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tTmFtZWRHZXR0ZXIifSkgewogICAgICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAicHJpdmF0ZTpcbiIpOwotICAgICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiICAgIHN0YXRpYyBib29sIGNhbkdldEl0ZW1zRm9yTmFtZShKU0M6OkV4ZWNT
dGF0ZSosICRpbXBsQ2xhc3NOYW1lKiwgSlNDOjpQcm9wZXJ0eU5hbWUpO1xuIik7CisgICAgICAg
IHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIGJvb2wgY2FuR2V0SXRlbXNGb3JOYW1l
KEpTQzo6RXhlY1N0YXRlKiwgJGludGVyZmFjZU5hbWUqLCBKU0M6OlByb3BlcnR5TmFtZSk7XG4i
KTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgSlNDOjpKU1ZhbHVl
IG5hbWVHZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTtcbiIpOwogICAgIH0KIApAQCAtMTAyNSwxMyArMTAyNCwxMyBAQCBzdWIgR2VuZXJhdGVI
ZWFkZXIKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIntcbiIpOwogICAgICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogdGhpc09iamVjdCA9IEpTQzo6anND
YXN0PCR7Y2xhc3NOYW1lfSo+KGNlbGwpO1xuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICIgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCAmc19pbmZvKTtc
biIpOwotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCBHZW5lcmF0ZUdldE93blByb3BlcnR5
U2xvdEJvZHkoJGludGVyZmFjZSwgJGludGVyZmFjZU5hbWUsICRjbGFzc05hbWUsICRpbXBsQ2xh
c3NOYW1lLCAkbnVtQXR0cmlidXRlcyA+IDAsIDEpKTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3RCb2R5KCRpbnRlcmZhY2UsICRpbnRlcmZh
Y2VOYW1lLCAkY2xhc3NOYW1lLCAkbnVtQXR0cmlidXRlcyA+IDAsIDEpKTsKICAgICAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIn1cblxuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICJBTFdBWVNfSU5MSU5FIGJvb2wgJHtjbGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoSlNDOjpKU09iamVjdCogb2JqZWN0LCBKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpQcm9w
ZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRv
cilcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAie1xuIik7CiAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9KiB0aGlzT2JqZWN0ID0gSlNDOjpq
c0Nhc3Q8JHtjbGFzc05hbWV9Kj4ob2JqZWN0KTtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAiICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgJnNfaW5m
byk7XG4iKTsKLSAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgR2VuZXJhdGVHZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3JCb2R5KCRpbnRlcmZhY2UsICRpbnRlcmZhY2VOYW1lLCAkY2xhc3NOYW1l
LCAkaW1wbENsYXNzTmFtZSwgJG51bUF0dHJpYnV0ZXMgPiAwLCAxKSk7CisgICAgICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsIEdlbmVyYXRlR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yQm9keSgkaW50
ZXJmYWNlLCAkaW50ZXJmYWNlTmFtZSwgJGNsYXNzTmFtZSwgJG51bUF0dHJpYnV0ZXMgPiAwLCAx
KSk7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJ9XG5cbiIpOwogICAgIH0KIApAQCAt
MTA0MCwxMSArMTAzOSwxMSBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAgR2V0Q3VzdG9t
SXNSZWFjaGFibGUoJGludGVyZmFjZSkgfHwKICAgICAgICAgJGludGVyZmFjZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkpTQ3VzdG9tRmluYWxpemUifSB8fAogICAgICAgICAkaW50ZXJmYWNlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiQWN0aXZlRE9NT2JqZWN0In0pIHsKLSAgICAgICAgaWYgKCRp
bXBsQ2xhc3NOYW1lIG5lICJOb2RlIiAmJiAkY29kZUdlbmVyYXRvci0+SXNTdWJUeXBlKCRpbnRl
cmZhY2UsICJOb2RlIikpIHsKKyAgICAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIG5lICJOb2RlIiAm
JiAkY29kZUdlbmVyYXRvci0+SXNTdWJUeXBlKCRpbnRlcmZhY2UsICJOb2RlIikpIHsKICAgICAg
ICAgICAgICRoZWFkZXJJbmNsdWRlc3siSlNOb2RlLmgifSA9IDE7Ci0gICAgICAgICAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiY2xhc3MgSlMke2ltcGxDbGFzc05hbWV9T3duZXIgOiBwdWJsaWMg
SlNOb2RlT3duZXIge1xuIik7CisgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiY2xh
c3MgSlMke2ludGVyZmFjZU5hbWV9T3duZXIgOiBwdWJsaWMgSlNOb2RlT3duZXIge1xuIik7CiAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiY2xhc3Mg
SlMke2ltcGxDbGFzc05hbWV9T3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIge1xu
Iik7CisgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiY2xhc3MgSlMke2ludGVyZmFj
ZU5hbWV9T3duZXIgOiBwdWJsaWMgSlNDOjpXZWFrSGFuZGxlT3duZXIge1xuIik7CiAgICAgICAg
IH0KICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgInB1YmxpYzpcbiIpOwogICAgICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZyb21PcGFx
dWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBKU0M6OlNs
b3RWaXNpdG9yJik7XG4iKTsKQEAgLTEwNTMsOCArMTA1Miw4IEBAIHN1YiBHZW5lcmF0ZUhlYWRl
cgogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiXG4iKTsKICAgICAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgImlubGluZSBKU0M6OldlYWtIYW5kbGVPd25lciogd3JhcHBlck93bmVyKERP
TVdyYXBwZXJXb3JsZCosICRpbXBsVHlwZSopXG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIntcbiIpOwotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIERFRklORV9T
VEFUSUNfTE9DQUwoSlMke2ltcGxDbGFzc05hbWV9T3duZXIsIGpzJHtpbXBsQ2xhc3NOYW1lfU93
bmVyLCAoKSk7XG4iKTsKLSAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICByZXR1cm4g
JmpzJHtpbXBsQ2xhc3NOYW1lfU93bmVyO1xuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICIgICAgREVGSU5FX1NUQVRJQ19MT0NBTChKUyR7aW50ZXJmYWNlTmFtZX1Pd25lciwganMk
e2ludGVyZmFjZU5hbWV9T3duZXIsICgpKTtcbiIpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCAiICAgIHJldHVybiAmanMke2ludGVyZmFjZU5hbWV9T3duZXI7XG4iKTsKICAgICAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIn1cbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiXG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgImlubGluZSB2b2lkKiB3cmFw
cGVyQ29udGV4dChET01XcmFwcGVyV29ybGQqIHdvcmxkLCAkaW1wbFR5cGUqKVxuIik7CkBAIC0x
MzU3LDcgKzEzNTYsNyBAQCBzdWIgR2VuZXJhdGVPdmVybG9hZGVkRnVuY3Rpb24KIHsKICAgICBt
eSAkZnVuY3Rpb24gPSBzaGlmdDsKICAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7Ci0gICAgbXkg
JGltcGxDbGFzc05hbWUgPSBzaGlmdDsKKyAgICBteSAkaW50ZXJmYWNlTmFtZSA9IHNoaWZ0Owog
CiAgICAgIyBHZW5lcmF0ZSBjb2RlIGZvciBjaG9vc2luZyB0aGUgY29ycmVjdCBvdmVybG9hZCB0
byBjYWxsLiBPdmVybG9hZHMgYXJlCiAgICAgIyBjaG9zZW4gYmFzZWQgb24gdGhlIHRvdGFsIG51
bWJlciBvZiBhcmd1bWVudHMgcGFzc2VkIGFuZCB0aGUgdHlwZSBvZgpAQCAtMTM2Niw3ICsxMzY1
LDcgQEAgc3ViIEdlbmVyYXRlT3ZlcmxvYWRlZEZ1bmN0aW9uCiAgICAgIyBkZWNsYXJhdGlvbiBp
biB0aGUgSURMLgogCiAgICAgbXkgJGtpbmQgPSAkZnVuY3Rpb24tPmlzU3RhdGljID8gIkNvbnN0
cnVjdG9yIiA6ICJQcm90b3R5cGUiOwotICAgIG15ICRmdW5jdGlvbk5hbWUgPSAianMke2ltcGxD
bGFzc05hbWV9JHtraW5kfUZ1bmN0aW9uIiAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRm
dW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lKTsKKyAgICBteSAkZnVuY3Rpb25OYW1lID0gImpzJHtp
bnRlcmZhY2VOYW1lfSR7a2luZH1GdW5jdGlvbiIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNmaXJz
dCgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZSk7CiAKICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IkVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgJHtmdW5jdGlvbk5hbWV9KEV4ZWNTdGF0ZSog
ZXhlYylcbiIpOwogICAgIHB1c2goQGltcGxDb250ZW50LCA8PEVORCk7CkBAIC0xNDA3LDcgKzE0
MDYsNiBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAgICAgbXkgJGludGVyZmFjZU5h
bWUgPSAkaW50ZXJmYWNlLT5uYW1lOwogICAgIG15ICRjbGFzc05hbWUgPSAiSlMkaW50ZXJmYWNl
TmFtZSI7Ci0gICAgbXkgJGltcGxDbGFzc05hbWUgPSAkaW50ZXJmYWNlTmFtZTsKIAogICAgIG15
ICRoYXNMZWdhY3lQYXJlbnQgPSAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNM
ZWdhY3lQYXJlbnQifTsKICAgICBteSAkaGFzUmVhbFBhcmVudCA9IEB7JGludGVyZmFjZS0+cGFy
ZW50c30gPiAwOwpAQCAtMTY2OCw3ICsxNjY2LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRp
b24KICAgICB9CiAgICAgcHVzaChAaW1wbENvbnRlbnQsICIsIENSRUFURV9NRVRIT0RfVEFCTEUo
JGNsYXNzTmFtZSkgfTtcblxuIik7CiAKLSAgICBteSAkaW1wbFR5cGUgPSAkaW1wbENsYXNzTmFt
ZTsKKyAgICBteSAkaW1wbFR5cGUgPSAkaW50ZXJmYWNlTmFtZTsKICAgICBteSAoJHN2Z1Byb3Bl
cnR5VHlwZSwgJHN2Z0xpc3RQcm9wZXJ0eVR5cGUsICRzdmdOYXRpdmVUeXBlKSA9IEdldFNWR1By
b3BlcnR5VHlwZXMoJGltcGxUeXBlKTsKICAgICAkaW1wbFR5cGUgPSAkc3ZnTmF0aXZlVHlwZSBp
ZiAkc3ZnTmF0aXZlVHlwZTsKIApAQCAtMTc2MiwxMyArMTc2MCwxMyBAQCBzdWIgR2VuZXJhdGVJ
bXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogdGhpc09iamVj
dCA9IGpzQ2FzdDwke2NsYXNzTmFtZX0qPihjZWxsKTtcbiIpOwogICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCAm
c19pbmZvKTtcbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIEdlbmVyYXRlR2V0
T3duUHJvcGVydHlTbG90Qm9keSgkaW50ZXJmYWNlLCAkaW50ZXJmYWNlTmFtZSwgJGNsYXNzTmFt
ZSwgJGltcGxDbGFzc05hbWUsICRudW1BdHRyaWJ1dGVzID4gMCwgMCkpOworICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsIEdlbmVyYXRlR2V0T3duUHJvcGVydHlTbG90Qm9keSgkaW50ZXJm
YWNlLCAkaW50ZXJmYWNlTmFtZSwgJGNsYXNzTmFtZSwgJG51bUF0dHJpYnV0ZXMgPiAwLCAwKSk7
CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CiAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgImJvb2wgJHtjbGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpXG4iKTsKICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICAke2NsYXNzTmFtZX0qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8JHtjbGFzc05hbWV9
Kj4ob2JqZWN0KTtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQVNT
RVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCAmc19pbmZvKTtcbiIpOwotICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsIEdlbmVyYXRlR2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
Qm9keSgkaW50ZXJmYWNlLCAkaW50ZXJmYWNlTmFtZSwgJGNsYXNzTmFtZSwgJGltcGxDbGFzc05h
bWUsICRudW1BdHRyaWJ1dGVzID4gMCwgMCkpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsIEdlbmVyYXRlR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yQm9keSgkaW50ZXJmYWNlLCAkaW50
ZXJmYWNlTmFtZSwgJGNsYXNzTmFtZSwgJG51bUF0dHJpYnV0ZXMgPiAwLCAwKSk7CiAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxuIik7CiAgICAgICAgIH0KIApAQCAtMTc5Miwx
MCArMTc5MCwxMCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgfTsK
ICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJJbmRleGVkR2V0dGVyIn0gfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57Ik51bWVyaWNJbmRleGVkR2V0dGVyIn0pIHsKLSAgICAgICAgICAgICAgICBpZiAoSW5kZXhH
ZXR0ZXJSZXR1cm5zU3RyaW5ncygkaW1wbENsYXNzTmFtZSkpIHsKKyAgICAgICAgICAgICAgICBp
ZiAoSW5kZXhHZXR0ZXJSZXR1cm5zU3RyaW5ncygkaW50ZXJmYWNlTmFtZSkpIHsKICAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKGluZGV4IDw9IE1BWF9BUlJB
WV9JTkRFWCkge1xuIik7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKGluZGV4IDwgc3RhdGljX2Nhc3Q8JGlt
cGxDbGFzc05hbWUqPih0aGlzT2JqZWN0LT5pbXBsKCkpLT5sZW5ndGgoKSkge1xuIik7CisgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChpbmRleCA8IHN0YXRp
Y19jYXN0PCRpbnRlcmZhY2VOYW1lKj4odGhpc09iamVjdC0+aW1wbCgpKS0+bGVuZ3RoKCkpIHtc
biIpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBpZiAoJGludGVyZmFjZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik51bWVyaWNJbmRleGVkR2V0dGVyIn0pIHsKICAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHNsb3Quc2V0VmFsdWUodGhp
c09iamVjdC0+Z2V0QnlJbmRleChleGVjLCBpbmRleCkpO1xuIik7CkBAIC0xODA4LDcgKzE4MDYs
NyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgCiAgICAgICAgICAg
ICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5hbWVkR2V0dGVyIn0gfHwg
JGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbU5hbWVkR2V0dGVyIn0pIHsK
ICAgICAgICAgICAgICAgICAmJHByb3BlcnR5TmFtZUdlbmVyYXRpb24oKTsKLSAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoY2FuR2V0SXRlbXNGb3JOYW1lKGV4ZWMs
IHN0YXRpY19jYXN0PCRpbXBsQ2xhc3NOYW1lKj4odGhpc09iamVjdC0+aW1wbCgpKSwgcHJvcGVy
dHlOYW1lKSkge1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
aWYgKGNhbkdldEl0ZW1zRm9yTmFtZShleGVjLCBzdGF0aWNfY2FzdDwkaW50ZXJmYWNlTmFtZSo+
KHRoaXNPYmplY3QtPmltcGwoKSksIHByb3BlcnR5TmFtZSkpIHtcbiIpOwogICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0
LCB0aGlzT2JqZWN0LT5uYW1lR2V0dGVyKTtcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdHJ1ZTtcbiIpOwogICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIH1cbiIpOwpAQCAtMTg2MSwxNSArMTg1OSwxNSBAQCBzdWIg
R2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICByZXR1cm4gY2FzdGVkVGhpcy0+JGltcGxHZXR0ZXJGdW5jdGlvbk5hbWUoZXhl
Yyk7XG4iKTsKICAgICAgICAgICAgICAgICB9IGVsc2lmICgkYXR0cmlidXRlLT5zaWduYXR1cmUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDaGVja1NlY3VyaXR5Rm9yTm9kZSJ9KSB7CiAgICAgICAg
ICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IkpTRE9NQmluZGluZy5oIn0gPSAxOwotICAgICAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAkaW1wbENsYXNzTmFtZSogaW1w
bCA9IHN0YXRpY19jYXN0PCRpbXBsQ2xhc3NOYW1lKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTtcbiIp
OwotICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gc2hv
dWxkQWxsb3dBY2Nlc3NUb05vZGUoZXhlYywgaW1wbC0+IiAuICRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZS0+bmFtZSAuICIoKSkgPyAiIC4gTmF0aXZlVG9KU1ZhbHVlKCRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZSwgMCwgJGltcGxDbGFzc05hbWUsICJpbXBsLT4kaW1wbEdldHRlckZ1bmN0aW9uTmFtZSgpIiwg
ImNhc3RlZFRoaXMiKSAuICIgOiBqc051bGwoKTtcbiIpOworICAgICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAkaW50ZXJmYWNlTmFtZSogaW1wbCA9IHN0YXRpY19jYXN0
PCRpbnRlcmZhY2VOYW1lKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTtcbiIpOworICAgICAgICAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gc2hvdWxkQWxsb3dBY2Nlc3NU
b05vZGUoZXhlYywgaW1wbC0+IiAuICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSAuICIoKSkg
PyAiIC4gTmF0aXZlVG9KU1ZhbHVlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSwgMCwgJGludGVyZmFj
ZU5hbWUsICJpbXBsLT4kaW1wbEdldHRlckZ1bmN0aW9uTmFtZSgpIiwgImNhc3RlZFRoaXMiKSAu
ICIgOiBqc051bGwoKTtcbiIpOwogICAgICAgICAgICAgICAgIH0gZWxzaWYgKCR0eXBlIGVxICJF
dmVudExpc3RlbmVyIikgewogICAgICAgICAgICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJFdmVu
dExpc3RlbmVyLmgifSA9IDE7CiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIFVOVVNFRF9QQVJBTShleGVjKTtcbiIpOwotICAgICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICAkaW1wbENsYXNzTmFtZSogaW1wbCA9IHN0YXRpY19jYXN0PCRp
bXBsQ2xhc3NOYW1lKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTtcbiIpOworICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAkaW50ZXJmYWNlTmFtZSogaW1wbCA9IHN0YXRp
Y19jYXN0PCRpbnRlcmZhY2VOYW1lKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTtcbiIpOwogICAgICAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoRXZlbnRMaXN0ZW5lciog
bGlzdGVuZXIgPSBpbXBsLT4kaW1wbEdldHRlckZ1bmN0aW9uTmFtZSgpKSB7XG4iKTsKICAgICAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIGlmIChjb25zdCBKU0V2
ZW50TGlzdGVuZXIqIGpzTGlzdGVuZXIgPSBKU0V2ZW50TGlzdGVuZXI6OmNhc3QobGlzdGVuZXIp
KSB7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCRpbXBsQ2xhc3NOYW1lIGVxICJEb2N1
bWVudCIgfHwgJGltcGxDbGFzc05hbWUgZXEgIldvcmtlckNvbnRleHQiIHx8ICRpbXBsQ2xhc3NO
YW1lIGVxICJTaGFyZWRXb3JrZXJDb250ZXh0IiB8fCAkaW1wbENsYXNzTmFtZSBlcSAiRGVkaWNh
dGVkV29ya2VyQ29udGV4dCIpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCRpbnRlcmZhY2VO
YW1lIGVxICJEb2N1bWVudCIgfHwgJGludGVyZmFjZU5hbWUgZXEgIldvcmtlckNvbnRleHQiIHx8
ICRpbnRlcmZhY2VOYW1lIGVxICJTaGFyZWRXb3JrZXJDb250ZXh0IiB8fCAkaW50ZXJmYWNlTmFt
ZSBlcSAiRGVkaWNhdGVkV29ya2VyQ29udGV4dCIpIHsKICAgICAgICAgICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICAgICAgaWYgKEpTT2JqZWN0KiBqc0Z1bmN0aW9u
ID0ganNMaXN0ZW5lci0+anNGdW5jdGlvbihpbXBsKSlcbiIpOwogICAgICAgICAgICAgICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgICAgICAgICBpZiAoSlNPYmplY3QqIGpzRnVuY3Rpb24gPSBqc0xpc3RlbmVyLT5qc0Z1bmN0
aW9uKGltcGwtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpXG4iKTsKQEAgLTE5MDMsMTMgKzE5
MDEsMTMgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAgICAg
bXkgQGNhbGxXaXRoQXJncyA9IEdlbmVyYXRlQ2FsbFdpdGgoJGF0dHJpYnV0ZS0+c2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2FsbFdpdGgifSwgXEBpbXBsQ29udGVudCwgImpzVW5k
ZWZpbmVkKCkiKTsKIAogICAgICAgICAgICAgICAgICAgICBpZiAoJHN2Z0xpc3RQcm9wZXJ0eVR5
cGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEpT
VmFsdWUgcmVzdWx0ID0gICIgLiBOYXRpdmVUb0pTVmFsdWUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJl
LCAwLCAkaW1wbENsYXNzTmFtZSwgImNhc3RlZFRoaXMtPmltcGwoKS0+JGltcGxHZXR0ZXJGdW5j
dGlvbk5hbWUoIiAuIChqb2luICIsICIsIEBjYWxsV2l0aEFyZ3MpIC4gIikiLCAiY2FzdGVkVGhp
cyIpIC4gIjtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgSlNWYWx1ZSByZXN1bHQgPSAgIiAuIE5hdGl2ZVRvSlNWYWx1ZSgkYXR0cmlidXRlLT5z
aWduYXR1cmUsIDAsICRpbnRlcmZhY2VOYW1lLCAiY2FzdGVkVGhpcy0+aW1wbCgpLT4kaW1wbEdl
dHRlckZ1bmN0aW9uTmFtZSgiIC4gKGpvaW4gIiwgIiwgQGNhbGxXaXRoQXJncykgLiAiKSIsICJj
YXN0ZWRUaGlzIikgLiAiO1xuIik7CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRzdmdQ
cm9wZXJ0eU9yTGlzdFByb3BlcnR5VHlwZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgJHN2Z1Byb3BlcnR5T3JMaXN0UHJvcGVydHlUeXBlJiBpbXBs
ID0gY2FzdGVkVGhpcy0+aW1wbCgpLT5wcm9wZXJ0eVJlZmVyZW5jZSgpO1xuIik7CiAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAoJHN2Z1Byb3BlcnR5T3JMaXN0UHJvcGVydHlUeXBlIGVxICJm
bG9hdCIpIHsgIyBTcGVjaWFsIGNhc2UgZm9yIEpTU1ZHTnVtYmVyCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSlNWYWx1ZSByZXN1bHQgPSAgIiAu
IE5hdGl2ZVRvSlNWYWx1ZSgkYXR0cmlidXRlLT5zaWduYXR1cmUsIDAsICRpbXBsQ2xhc3NOYW1l
LCAiaW1wbCIsICJjYXN0ZWRUaGlzIikgLiAiO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSlNWYWx1ZSByZXN1bHQgPSAgIiAuIE5hdGl2
ZVRvSlNWYWx1ZSgkYXR0cmlidXRlLT5zaWduYXR1cmUsIDAsICRpbnRlcmZhY2VOYW1lLCAiaW1w
bCIsICJjYXN0ZWRUaGlzIikgLiAiO1xuIik7CiAgICAgICAgICAgICAgICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IEpTVmFsdWUgcmVzdWx0ID0gICIgLiBOYXRpdmVUb0pTVmFsdWUoJGF0dHJpYnV0ZS0+c2lnbmF0
dXJlLCAwLCAkaW1wbENsYXNzTmFtZSwgImltcGwuJGltcGxHZXR0ZXJGdW5jdGlvbk5hbWUoIiAu
IChqb2luICIsICIsIEBjYWxsV2l0aEFyZ3MpIC4gIikiLCAiY2FzdGVkVGhpcyIpIC4gIjtcbiIp
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEpT
VmFsdWUgcmVzdWx0ID0gICIgLiBOYXRpdmVUb0pTVmFsdWUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJl
LCAwLCAkaW50ZXJmYWNlTmFtZSwgImltcGwuJGltcGxHZXR0ZXJGdW5jdGlvbk5hbWUoIiAuIChq
b2luICIsICIsIEBjYWxsV2l0aEFyZ3MpIC4gIikiLCAiY2FzdGVkVGhpcyIpIC4gIjtcbiIpOwog
CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7
CkBAIC0xOTIwLDE1ICsxOTE4LDE1IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTmFtZSA9ICIke2ltcGxlbWVudGVkQnl9
Ojoke2Z1bmN0aW9uTmFtZX0iOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2hpZnQo
QGFyZ3VtZW50cywgImltcGwiKSBpZiAhJGF0dHJpYnV0ZS0+aXNTdGF0aWM7CiAgICAgICAgICAg
ICAgICAgICAgICAgICB9IGVsc2lmICgkYXR0cmlidXRlLT5pc1N0YXRpYykgewotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgPSAiJHtpbXBsQ2xhc3NOYW1lfTo6JHtm
dW5jdGlvbk5hbWV9IjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1l
ID0gIiR7aW50ZXJmYWNlTmFtZX06OiR7ZnVuY3Rpb25OYW1lfSI7CiAgICAgICAgICAgICAgICAg
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5h
bWUgPSAiaW1wbC0+JHtmdW5jdGlvbk5hbWV9IjsKICAgICAgICAgICAgICAgICAgICAgICAgIH0K
IAogICAgICAgICAgICAgICAgICAgICAgICAgdW5zaGlmdChAYXJndW1lbnRzLCBAY2FsbFdpdGhB
cmdzKTsKIAotICAgICAgICAgICAgICAgICAgICAgICAgbXkgJGpzVHlwZSA9IE5hdGl2ZVRvSlNW
YWx1ZSgkYXR0cmlidXRlLT5zaWduYXR1cmUsIDAsICRpbXBsQ2xhc3NOYW1lLCAiJHtmdW5jdGlv
bk5hbWV9KCIgLiBqb2luKCIsICIsIEBhcmd1bWVudHMpIC4gIikiLCAiY2FzdGVkVGhpcyIpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgJGltcGxDbGFz
c05hbWUqIGltcGwgPSBzdGF0aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+KGNhc3RlZFRoaXMtPmlt
cGwoKSk7XG4iKSBpZiAhJGF0dHJpYnV0ZS0+aXNTdGF0aWM7CisgICAgICAgICAgICAgICAgICAg
ICAgICBteSAkanNUeXBlID0gTmF0aXZlVG9KU1ZhbHVlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSwg
MCwgJGludGVyZmFjZU5hbWUsICIke2Z1bmN0aW9uTmFtZX0oIiAuIGpvaW4oIiwgIiwgQGFyZ3Vt
ZW50cykgLiAiKSIsICJjYXN0ZWRUaGlzIik7CisgICAgICAgICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICAkaW50ZXJmYWNlTmFtZSogaW1wbCA9IHN0YXRpY19jYXN0PCRp
bnRlcmZhY2VOYW1lKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTtcbiIpIGlmICEkYXR0cmlidXRlLT5p
c1N0YXRpYzsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNT
VkdBbmltYXRlZFR5cGUoJHR5cGUpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgUmVmUHRyPCR0eXBlPiBvYmogPSAkanNUeXBlO1xuIik7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSlNWYWx1
ZSByZXN1bHQgPSAgdG9KUyhleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgb2JqLmdl
dCgpKTtcbiIpOwpAQCAtMTk0OCwxMCArMTk0NiwxMCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRh
dGlvbgogCiAgICAgICAgICAgICAgICAgICAgIGlmICgkc3ZnUHJvcGVydHlPckxpc3RQcm9wZXJ0
eVR5cGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
ICRzdmdQcm9wZXJ0eU9yTGlzdFByb3BlcnR5VHlwZSBpbXBsKCpjYXN0ZWRUaGlzLT5pbXBsKCkp
O1xuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBK
U0M6OkpTVmFsdWUgcmVzdWx0ID0gIiAuIE5hdGl2ZVRvSlNWYWx1ZSgkYXR0cmlidXRlLT5zaWdu
YXR1cmUsIDAsICRpbXBsQ2xhc3NOYW1lLCAiaW1wbC4kaW1wbEdldHRlckZ1bmN0aW9uTmFtZSgi
IC4gam9pbigiLCAiLCBAYXJndW1lbnRzKSAuICIpIiwgImNhc3RlZFRoaXMiKSAuICI7XG4iKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEpTQzo6SlNW
YWx1ZSByZXN1bHQgPSAiIC4gTmF0aXZlVG9KU1ZhbHVlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSwg
MCwgJGludGVyZmFjZU5hbWUsICJpbXBsLiRpbXBsR2V0dGVyRnVuY3Rpb25OYW1lKCIgLiBqb2lu
KCIsICIsIEBhcmd1bWVudHMpIC4gIikiLCAiY2FzdGVkVGhpcyIpIC4gIjtcbiIpOwogICAgICAg
ICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgJGltcGxDbGFzc05hbWUqIGltcGwgPSBzdGF0aWNfY2FzdDwkaW1wbENs
YXNzTmFtZSo+KGNhc3RlZFRoaXMtPmltcGwoKSk7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEpTQzo6SlNWYWx1ZSByZXN1bHQgPSAiIC4gTmF0
aXZlVG9KU1ZhbHVlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSwgMCwgJGltcGxDbGFzc05hbWUsICJp
bXBsLT4kaW1wbEdldHRlckZ1bmN0aW9uTmFtZSgiIC4gam9pbigiLCAiLCBAYXJndW1lbnRzKSAu
ICIpIiwgImNhc3RlZFRoaXMiKSAuICI7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgICRpbnRlcmZhY2VOYW1lKiBpbXBsID0gc3RhdGljX2Nhc3Q8
JGludGVyZmFjZU5hbWUqPihjYXN0ZWRUaGlzLT5pbXBsKCkpO1xuIik7CisgICAgICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBKU0M6OkpTVmFsdWUgcmVzdWx0ID0g
IiAuIE5hdGl2ZVRvSlNWYWx1ZSgkYXR0cmlidXRlLT5zaWduYXR1cmUsIDAsICRpbnRlcmZhY2VO
YW1lLCAiaW1wbC0+JGltcGxHZXR0ZXJGdW5jdGlvbk5hbWUoIiAuIGpvaW4oIiwgIiwgQGFyZ3Vt
ZW50cykgLiAiKSIsICJjYXN0ZWRUaGlzIikgLiAiO1xuIik7CiAgICAgICAgICAgICAgICAgICAg
IH0KIAogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBzZXRET01F
eGNlcHRpb24oZXhlYywgZWMpO1xuIik7CkBAIC0yMDgxLDcgKzIwNzksNyBAQCBzdWIgR2VuZXJh
dGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHdp
bmRvd0V2ZW50TGlzdGVuZXIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qg
PSBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKTtcbiIpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgICRpbXBsQ2xhc3NOYW1lKiBpbXBsID0gc3RhdGljX2Nhc3Q8JGltcGxDbGFz
c05hbWUqPihjYXN0ZWRUaGlzLT5pbXBsKCkpO1xuIik7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICRpbnRlcmZhY2VOYW1lKiBpbXBsID0g
c3RhdGljX2Nhc3Q8JGludGVyZmFjZU5hbWUqPihjYXN0ZWRUaGlzLT5pbXBsKCkpO1xuIik7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoKCRpbnRlcmZhY2VOYW1lIGVxICJE
T01XaW5kb3ciKSBvciAoJGludGVyZmFjZU5hbWUgZXEgIldvcmtlckNvbnRleHQiKSkgYW5kICRu
YW1lIGVxICJvbmVycm9yIikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JGltcGxJbmNsdWRlc3siSlNFcnJvckhhbmRsZXIuaCJ9ID0gMTsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGltcGwtPnNldCRpbXBs
U2V0dGVyRnVuY3Rpb25OYW1lKGNyZWF0ZUpTRXJyb3JIYW5kbGVyKGV4ZWMsIHZhbHVlLCB0aGlz
T2JqZWN0KSk7XG4iKTsKQEAgLTIxNjYsNyArMjE2NCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaGlmdChA
YXJndW1lbnRzLCAiaW1wbCIpIGlmICEkYXR0cmlidXRlLT5pc1N0YXRpYzsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZnVuY3Rpb25OYW1lID0gIiR7aW1wbGVtZW50
ZWRCeX06OiR7ZnVuY3Rpb25OYW1lfSI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9IGVsc2lmICgkYXR0cmlidXRlLT5pc1N0YXRpYykgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgPSAiJHtpbXBsQ2xhc3NOYW1lfTo6
JHtmdW5jdGlvbk5hbWV9IjsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAkZnVuY3Rpb25OYW1lID0gIiR7aW50ZXJmYWNlTmFtZX06OiR7ZnVuY3Rpb25OYW1lfSI7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICRmdW5jdGlvbk5hbWUgPSAiaW1wbC0+JHtmdW5j
dGlvbk5hbWV9IjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KQEAgLTIy
MTksNyArMjIxNyw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogdGhpc09iamVjdCA9IGpzQ2FzdDwke2Ns
YXNzTmFtZX0qPihvYmplY3QpO1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgJnNfaW5mbyk7XG4iKTsKICAg
ICAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbmRleGVkR2V0dGVy
In0gfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik51bWVyaWNJbmRleGVkR2V0
dGVyIn0pIHsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBzdGF0aWNfY2FzdDwke2ltcGxDbGFzc05hbWV9Kj4odGhpc09iamVjdC0+
aW1wbCgpKS0+bGVuZ3RoKCk7ICsraSlcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHN0YXRpY19jYXN0PCR7aW50ZXJmYWNl
TmFtZX0qPih0aGlzT2JqZWN0LT5pbXBsKCkpLT5sZW5ndGgoKTsgKytpKVxuIik7CiAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRp
Zmllcjo6ZnJvbShleGVjLCBpKSk7XG4iKTsKICAgICAgICAgfQogICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAgQmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyh0aGlzT2JqZWN0LCBleGVj
LCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTtcbiIpOwpAQCAtMjI3OCw4ICsyMjc2LDggQEAgc3ViIEdl
bmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAg
ICAgICAgICAgIG15ICRudW1QYXJhbWV0ZXJzID0gQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9Owot
ICAgICAgICAgICAgICAgICAgICBteSAoJGZ1bmN0aW9uU3RyaW5nLCAkZHVtbXkpID0gR2VuZXJh
dGVQYXJhbWV0ZXJzQ2hlY2soXEBpbXBsQ29udGVudCwgJGZ1bmN0aW9uLCAkaW50ZXJmYWNlLCAk
bnVtUGFyYW1ldGVycywgJGltcGxDbGFzc05hbWUsICRmdW5jdGlvbkltcGxlbWVudGF0aW9uTmFt
ZSwgJHN2Z1Byb3BlcnR5VHlwZSwgJHN2Z1Byb3BlcnR5T3JMaXN0UHJvcGVydHlUeXBlLCAkc3Zn
TGlzdFByb3BlcnR5VHlwZSk7Ci0gICAgICAgICAgICAgICAgICAgIEdlbmVyYXRlSW1wbGVtZW50
YXRpb25GdW5jdGlvbkNhbGwoJGZ1bmN0aW9uLCAkZnVuY3Rpb25TdHJpbmcsICIgICAgIiwgJHN2
Z1Byb3BlcnR5VHlwZSwgJGltcGxDbGFzc05hbWUpOworICAgICAgICAgICAgICAgICAgICBteSAo
JGZ1bmN0aW9uU3RyaW5nLCAkZHVtbXkpID0gR2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2soXEBpbXBs
Q29udGVudCwgJGZ1bmN0aW9uLCAkaW50ZXJmYWNlLCAkbnVtUGFyYW1ldGVycywgJGludGVyZmFj
ZU5hbWUsICRmdW5jdGlvbkltcGxlbWVudGF0aW9uTmFtZSwgJHN2Z1Byb3BlcnR5VHlwZSwgJHN2
Z1Byb3BlcnR5T3JMaXN0UHJvcGVydHlUeXBlLCAkc3ZnTGlzdFByb3BlcnR5VHlwZSk7CisgICAg
ICAgICAgICAgICAgICAgIEdlbmVyYXRlSW1wbGVtZW50YXRpb25GdW5jdGlvbkNhbGwoJGZ1bmN0
aW9uLCAkZnVuY3Rpb25TdHJpbmcsICIgICAgIiwgJHN2Z1Byb3BlcnR5VHlwZSwgJGludGVyZmFj
ZU5hbWUpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSB7CkBAIC0yMzQ1LDgg
KzIzNDMsOCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgICAg
ICAgICAgfQogCiAgICAgICAgICAgICAgICAgICAgICAgICBteSAkbnVtUGFyYW1ldGVycyA9IEB7
JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG15ICgkZnVu
Y3Rpb25TdHJpbmcsICRkdW1teSkgPSBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjayhcQGltcGxDb250
ZW50LCAkZnVuY3Rpb24sICRpbnRlcmZhY2UsICRudW1QYXJhbWV0ZXJzLCAkaW1wbENsYXNzTmFt
ZSwgJGZ1bmN0aW9uSW1wbGVtZW50YXRpb25OYW1lLCAkc3ZnUHJvcGVydHlUeXBlLCAkc3ZnUHJv
cGVydHlPckxpc3RQcm9wZXJ0eVR5cGUsICRzdmdMaXN0UHJvcGVydHlUeXBlKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIEdlbmVyYXRlSW1wbGVtZW50YXRpb25GdW5jdGlvbkNhbGwoJGZ1bmN0
aW9uLCAkZnVuY3Rpb25TdHJpbmcsICIgICAgIiwgJHN2Z1Byb3BlcnR5VHlwZSwgJGltcGxDbGFz
c05hbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgbXkgKCRmdW5jdGlvblN0cmluZywgJGR1
bW15KSA9IEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrKFxAaW1wbENvbnRlbnQsICRmdW5jdGlvbiwg
JGludGVyZmFjZSwgJG51bVBhcmFtZXRlcnMsICRpbnRlcmZhY2VOYW1lLCAkZnVuY3Rpb25JbXBs
ZW1lbnRhdGlvbk5hbWUsICRzdmdQcm9wZXJ0eVR5cGUsICRzdmdQcm9wZXJ0eU9yTGlzdFByb3Bl
cnR5VHlwZSwgJHN2Z0xpc3RQcm9wZXJ0eVR5cGUpOworICAgICAgICAgICAgICAgICAgICAgICAg
R2VuZXJhdGVJbXBsZW1lbnRhdGlvbkZ1bmN0aW9uQ2FsbCgkZnVuY3Rpb24sICRmdW5jdGlvblN0
cmluZywgIiAgICAiLCAkc3ZnUHJvcGVydHlUeXBlLCAkaW50ZXJmYWNlTmFtZSk7CiAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CkBAIC0yMzU1
LDcgKzIzNTMsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAgICAgICAgICAgICBp
ZiAoISRpc0N1c3RvbSAmJiAkaXNPdmVybG9hZGVkICYmICRmdW5jdGlvbi0+e292ZXJsb2FkSW5k
ZXh9ID09IEB7JGZ1bmN0aW9uLT57b3ZlcmxvYWRzfX0pIHsKICAgICAgICAgICAgICAgICAjIEdl
bmVyYXRlIGEgZnVuY3Rpb24gZGlzcGF0Y2hpbmcgY2FsbCB0byB0aGUgcmVzdCBvZiB0aGUgb3Zl
cmxvYWRzLgotICAgICAgICAgICAgICAgIEdlbmVyYXRlT3ZlcmxvYWRlZEZ1bmN0aW9uKCRmdW5j
dGlvbiwgJGludGVyZmFjZSwgJGltcGxDbGFzc05hbWUpOworICAgICAgICAgICAgICAgIEdlbmVy
YXRlT3ZlcmxvYWRlZEZ1bmN0aW9uKCRmdW5jdGlvbiwgJGludGVyZmFjZSwgJGludGVyZmFjZU5h
bWUpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNl
bmRpZlxuXG4iKSBpZiAkY29uZGl0aW9uYWw7CkBAIC0yNDIyLDExICsyNDIwLDExIEBAIHN1YiBH
ZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7
CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogdGhpc09iaiA9
IGpzQ2FzdDwkY2xhc3NOYW1lKj4oYXNPYmplY3Qoc2xvdEJhc2UpKTtcbiIpOwogICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmos
ICZzX2luZm8pO1xuIik7Ci0gICAgICAgIGlmIChJbmRleEdldHRlclJldHVybnNTdHJpbmdzKCRp
bXBsQ2xhc3NOYW1lKSkgeworICAgICAgICBpZiAoSW5kZXhHZXR0ZXJSZXR1cm5zU3RyaW5ncygk
aW50ZXJmYWNlTmFtZSkpIHsKICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IktVUkwuaCJ9ID0g
MTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBqc1N0cmluZ09y
VW5kZWZpbmVkKGV4ZWMsIHRoaXNPYmotPmltcGwoKS0+aXRlbShpbmRleCkpO1xuIik7CiAgICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4g
dG9KUyhleGVjLCB0aGlzT2JqLT5nbG9iYWxPYmplY3QoKSwgc3RhdGljX2Nhc3Q8JGltcGxDbGFz
c05hbWUqPih0aGlzT2JqLT5pbXBsKCkpLT5pdGVtKGluZGV4KSk7XG4iKTsKKyAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiB0b0pTKGV4ZWMsIHRoaXNPYmotPmdsb2Jh
bE9iamVjdCgpLCBzdGF0aWNfY2FzdDwkaW50ZXJmYWNlTmFtZSo+KHRoaXNPYmotPmltcGwoKSkt
Pml0ZW0oaW5kZXgpKTtcbiIpOwogICAgICAgICB9CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAifVxuXG4iKTsKICAgICAgICAgaWYgKCRpbnRlcmZhY2VOYW1lID1+IC9eSFRNTFx3KkNvbGxl
Y3Rpb24kLyBvciAkaW50ZXJmYWNlTmFtZSBlcSAiUmFkaW9Ob2RlTGlzdCIpIHsKQEAgLTI0Mzks
NyArMjQzNyw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiXG5KU1ZhbHVlICR7Y2xhc3NOYW1lfTo6Z2V0QnlJbmRleChFeGVjU3RhdGUq
LCB1bnNpZ25lZCBpbmRleClcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIp
OwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVS
SVRTKHRoaXMsICZzX2luZm8pO1xuIik7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IGRvdWJsZSByZXN1bHQgPSBzdGF0aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+KGltcGwoKSktPml0
ZW0oaW5kZXgpO1xuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGRvdWJsZSBy
ZXN1bHQgPSBzdGF0aWNfY2FzdDwkaW50ZXJmYWNlTmFtZSo+KGltcGwoKSktPml0ZW0oaW5kZXgp
O1xuIik7CiAgICAgICAgICMganNOdW1iZXIgY29udmVyc2lvbiBkb2Vzbid0IHN1cHByZXNzIHNp
Z25hbGxpbmcgTmFOcywgc28gZW5mb3JjZSB0aGF0IGhlcmUuCiAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIGlmIChpc25hbihyZXN1bHQpKVxuIik7CiAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgICAgICByZXR1cm4ganNOYU4oKTtcbiIpOwpAQCAtMjQ1MywzMyArMjQ1MSwz
MyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAgICAgaWYgKCRpbnRlcmZhY2VOYW1l
IGVxICJIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24iIG9yICRpbnRlcmZhY2VOYW1lIGVxICJET01O
YW1lZEZsb3dDb2xsZWN0aW9uIikgewogICAgICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57Ik5hbWVkR2V0dGVyIn0pIHsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiYm9vbCAke2NsYXNzTmFtZX06OmNhbkdldEl0ZW1zRm9yTmFtZShFeGVjU3RhdGUqLCAk
aW1wbENsYXNzTmFtZSogY29sbGVjdGlvbiwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSlcbiIp
OworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJib29sICR7Y2xhc3NOYW1lfTo6Y2Fu
R2V0SXRlbXNGb3JOYW1lKEV4ZWNTdGF0ZSosICRpbnRlcmZhY2VOYW1lKiBjb2xsZWN0aW9uLCBQ
cm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKVxuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIntcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJu
IGNvbGxlY3Rpb24tPmhhc05hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9w
ZXJ0eU5hbWUpKTtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIp
OwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU1ZhbHVlICR7Y2xhc3NOYW1lfTo6
bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIFByb3BlcnR5TmFt
ZSBwcm9wZXJ0eU5hbWUpXG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xu
Iik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX0qIHRo
aXNPYmogPSBqc0Nhc3Q8JGNsYXNzTmFtZSo+KGFzT2JqZWN0KHNsb3RCYXNlKSk7XG4iKTsKLSAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiB0b0pTKGV4ZWMsIHRoaXNP
YmotPmdsb2JhbE9iamVjdCgpLCBzdGF0aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+KHRoaXNPYmot
PmltcGwoKSktPm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5h
bWUpKSk7XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiB0
b0pTKGV4ZWMsIHRoaXNPYmotPmdsb2JhbE9iamVjdCgpLCBzdGF0aWNfY2FzdDwkaW50ZXJmYWNl
TmFtZSo+KHRoaXNPYmotPmltcGwoKSktPm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0
cmluZyhwcm9wZXJ0eU5hbWUpKSk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAifVxuXG4iKTsKICAgICAgICAgfQogICAgIH0KIAogICAgIGlmICgoISRoYXNQYXJlbnQgJiYg
IUdldEN1c3RvbUlzUmVhY2hhYmxlKCRpbnRlcmZhY2UpKXx8IEdldEdlbmVyYXRlSXNSZWFjaGFi
bGUoJGludGVyZmFjZSkgfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkFjdGl2
ZURPTU9iamVjdCJ9KSB7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAic3RhdGljIGlubGlu
ZSBib29sIGlzT2JzZXJ2YWJsZShKUyR7aW1wbENsYXNzTmFtZX0qIGpzJHtpbXBsQ2xhc3NOYW1l
fSlcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInN0YXRpYyBpbmxpbmUgYm9vbCBp
c09ic2VydmFibGUoSlMke2ludGVyZmFjZU5hbWV9KiBqcyR7aW50ZXJmYWNlTmFtZX0pXG4iKTsK
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKLSAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgaWYgKGpzJHtpbXBsQ2xhc3NOYW1lfS0+aGFzQ3VzdG9tUHJvcGVydGllcygp
KVxuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChqcyR7aW50ZXJmYWNl
TmFtZX0tPmhhc0N1c3RvbVByb3BlcnRpZXMoKSlcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICAgICAgcmV0dXJuIHRydWU7XG4iKTsKICAgICAgICAgaWYgKCRldmVudFRhcmdl
dCkgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKGpzJHtpbXBsQ2xh
c3NOYW1lfS0+aW1wbCgpLT5oYXNFdmVudExpc3RlbmVycygpKVxuIik7CisgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoanMke2ludGVyZmFjZU5hbWV9LT5pbXBsKCktPmhh
c0V2ZW50TGlzdGVuZXJzKCkpXG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgICAgICByZXR1cm4gdHJ1ZTtcbiIpOwogICAgICAgICB9CiAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIHJldHVybiBmYWxzZTtcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIn1cblxuIik7CiAKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJib29sIEpTJHtpbXBs
Q2xhc3NOYW1lfU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxK
U0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKVxuIik7Cisg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiYm9vbCBKUyR7aW50ZXJmYWNlTmFtZX1Pd25lcjo6
aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5k
bGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcilcbiIpOwogICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIntcbiIpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBKUyR7aW1w
bENsYXNzTmFtZX0qIGpzJHtpbXBsQ2xhc3NOYW1lfSA9IGpzQ2FzdDxKUyR7aW1wbENsYXNzTmFt
ZX0qPihoYW5kbGUuZ2V0KCkuYXNDZWxsKCkpO1xuIik7CisgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIEpTJHtpbnRlcmZhY2VOYW1lfSoganMke2ludGVyZmFjZU5hbWV9ID0ganNDYXN0
PEpTJHtpbnRlcmZhY2VOYW1lfSo+KGhhbmRsZS5nZXQoKS5hc0NlbGwoKSk7XG4iKTsKICAgICAg
ICAgIyBBbGwgQWN0aXZlRE9NT2JqZWN0cyBpbXBsZW1lbnQgaGFzUGVuZGluZ0FjdGl2aXR5KCks
IGJ1dCBub3QgYWxsIG9mIHRoZW0KICAgICAgICAgIyBpbmNyZW1lbnQgdGhlaXIgQysrIHJlZmVy
ZW5jZSBjb3VudHMgd2hlbiBoYXNQZW5kaW5nQWN0aXZpdHkoKSBiZWNvbWVzCiAgICAgICAgICMg
dHJ1ZS4gQXMgYSByZXN1bHQsIEFjdGl2ZURPTU9iamVjdHMgY2FuIGJlIHByZW1hdHVyZWx5IGRl
c3Ryb3llZCBiZWZvcmUKQEAgLTI0ODgsNDAgKzI0ODYsNDAgQEAgc3ViIEdlbmVyYXRlSW1wbGVt
ZW50YXRpb24KICAgICAgICAgIyBGSVhNRTogRml4IHRoaXMgbGlmZXRpbWUgaXNzdWUgaW4gdGhl
IERPTSwgYW5kIG1vdmUgdGhpcyBoYXNQZW5kaW5nQWN0aXZpdHkKICAgICAgICAgIyBjaGVjayBi
ZWxvdyB0aGUgaXNPYnNlcnZhYmxlIGNoZWNrLgogICAgICAgICBpZiAoJGludGVyZmFjZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IkFjdGl2ZURPTU9iamVjdCJ9KSB7Ci0gICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICBpZiAoanMke2ltcGxDbGFzc05hbWV9LT5pbXBsKCktPmhhc1Bl
bmRpbmdBY3Rpdml0eSgpKVxuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICBpZiAoanMke2ludGVyZmFjZU5hbWV9LT5pbXBsKCktPmhhc1BlbmRpbmdBY3Rpdml0eSgpKVxu
Iik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIHRydWU7
XG4iKTsKICAgICAgICAgfQogICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzU3ViVHlwZSgk
aW50ZXJmYWNlLCAiTm9kZSIpKSB7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICBpZiAoSlNOb2RlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKGhhbmRsZSwgMCwg
dmlzaXRvcikpXG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBy
ZXR1cm4gdHJ1ZTtcbiIpOwogICAgICAgICB9Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIGlmICghaXNPYnNlcnZhYmxlKGpzJHtpbXBsQ2xhc3NOYW1lfSkpXG4iKTsKKyAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFpc09ic2VydmFibGUoanMke2ludGVyZmFjZU5h
bWV9KSlcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgcmV0dXJuIGZh
bHNlO1xuIik7CiAgICAgICAgIGlmIChHZXRHZW5lcmF0ZUlzUmVhY2hhYmxlKCRpbnRlcmZhY2Up
KSB7CiAgICAgICAgICAgICBteSAkcm9vdFN0cmluZzsKICAgICAgICAgICAgIGlmIChHZXRHZW5l
cmF0ZUlzUmVhY2hhYmxlKCRpbnRlcmZhY2UpIGVxICJJbXBsIikgewotICAgICAgICAgICAgICAg
ICRyb290U3RyaW5nICA9ICIgICAgJHtpbXBsVHlwZX0qIHJvb3QgPSBqcyR7aW1wbENsYXNzTmFt
ZX0tPmltcGwoKTtcbiI7CisgICAgICAgICAgICAgICAgJHJvb3RTdHJpbmcgID0gIiAgICAke2lt
cGxUeXBlfSogcm9vdCA9IGpzJHtpbnRlcmZhY2VOYW1lfS0+aW1wbCgpO1xuIjsKICAgICAgICAg
ICAgIH0gZWxzaWYgKEdldEdlbmVyYXRlSXNSZWFjaGFibGUoJGludGVyZmFjZSkgZXEgIkltcGxD
b250ZXh0IikgewotICAgICAgICAgICAgICAgICRyb290U3RyaW5nICA9ICIgICAgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0KiByb290ID0ganMke2ltcGxDbGFzc05hbWV9LT5pbXBsKCktPmNvbnRleHQo
KTtcbiI7CisgICAgICAgICAgICAgICAgJHJvb3RTdHJpbmcgID0gIiAgICBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQqIHJvb3QgPSBqcyR7aW50ZXJmYWNlTmFtZX0tPmltcGwoKS0+Y29udGV4dCgpO1xu
IjsKICAgICAgICAgICAgIH0gZWxzaWYgKEdldEdlbmVyYXRlSXNSZWFjaGFibGUoJGludGVyZmFj
ZSkgZXEgIkltcGxGcmFtZSIpIHsKLSAgICAgICAgICAgICAgICAkcm9vdFN0cmluZyAgPSAiICAg
IEZyYW1lKiByb290ID0ganMke2ltcGxDbGFzc05hbWV9LT5pbXBsKCktPmZyYW1lKCk7XG4iOwor
ICAgICAgICAgICAgICAgICRyb290U3RyaW5nICA9ICIgICAgRnJhbWUqIHJvb3QgPSBqcyR7aW50
ZXJmYWNlTmFtZX0tPmltcGwoKS0+ZnJhbWUoKTtcbiI7CiAgICAgICAgICAgICAgICAgJHJvb3RT
dHJpbmcgLj0gIiAgICBpZiAoIXJvb3QpXG4iOwogICAgICAgICAgICAgICAgICRyb290U3RyaW5n
IC49ICIgICAgICAgIHJldHVybiBmYWxzZTtcbiI7CiAgICAgICAgICAgICB9IGVsc2lmIChHZXRH
ZW5lcmF0ZUlzUmVhY2hhYmxlKCRpbnRlcmZhY2UpIGVxICJJbXBsRG9jdW1lbnQiKSB7Ci0gICAg
ICAgICAgICAgICAgJHJvb3RTdHJpbmcgID0gIiAgICBEb2N1bWVudCogcm9vdCA9IGpzJHtpbXBs
Q2xhc3NOYW1lfS0+aW1wbCgpLT5kb2N1bWVudCgpO1xuIjsKKyAgICAgICAgICAgICAgICAkcm9v
dFN0cmluZyAgPSAiICAgIERvY3VtZW50KiByb290ID0ganMke2ludGVyZmFjZU5hbWV9LT5pbXBs
KCktPmRvY3VtZW50KCk7XG4iOwogICAgICAgICAgICAgICAgICRyb290U3RyaW5nIC49ICIgICAg
aWYgKCFyb290KVxuIjsKICAgICAgICAgICAgICAgICAkcm9vdFN0cmluZyAuPSAiICAgICAgICBy
ZXR1cm4gZmFsc2U7XG4iOwogICAgICAgICAgICAgfSBlbHNpZiAoR2V0R2VuZXJhdGVJc1JlYWNo
YWJsZSgkaW50ZXJmYWNlKSBlcSAiSW1wbEVsZW1lbnRSb290IikgewotICAgICAgICAgICAgICAg
ICRyb290U3RyaW5nICA9ICIgICAgRWxlbWVudCogZWxlbWVudCA9IGpzJHtpbXBsQ2xhc3NOYW1l
fS0+aW1wbCgpLT5lbGVtZW50KCk7XG4iOworICAgICAgICAgICAgICAgICRyb290U3RyaW5nICA9
ICIgICAgRWxlbWVudCogZWxlbWVudCA9IGpzJHtpbnRlcmZhY2VOYW1lfS0+aW1wbCgpLT5lbGVt
ZW50KCk7XG4iOwogICAgICAgICAgICAgICAgICRyb290U3RyaW5nIC49ICIgICAgaWYgKCFlbGVt
ZW50KVxuIjsKICAgICAgICAgICAgICAgICAkcm9vdFN0cmluZyAuPSAiICAgICAgICByZXR1cm4g
ZmFsc2U7XG4iOwogICAgICAgICAgICAgICAgICRyb290U3RyaW5nIC49ICIgICAgdm9pZCogcm9v
dCA9IFdlYkNvcmU6OnJvb3QoZWxlbWVudCk7XG4iOwogICAgICAgICAgICAgfSBlbHNpZiAoJGlu
dGVyZmFjZU5hbWUgZXEgIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQiKSB7Ci0gICAgICAgICAgICAg
ICAgJHJvb3RTdHJpbmcgID0gIiAgICB2b2lkKiByb290ID0gV2ViQ29yZTo6cm9vdChqcyR7aW1w
bENsYXNzTmFtZX0tPmltcGwoKS0+Y2FudmFzKCkpO1xuIjsKKyAgICAgICAgICAgICAgICAkcm9v
dFN0cmluZyAgPSAiICAgIHZvaWQqIHJvb3QgPSBXZWJDb3JlOjpyb290KGpzJHtpbnRlcmZhY2VO
YW1lfS0+aW1wbCgpLT5jYW52YXMoKSk7XG4iOwogICAgICAgICAgICAgfSBlbHNpZiAoR2V0R2Vu
ZXJhdGVJc1JlYWNoYWJsZSgkaW50ZXJmYWNlKSBlcSAiSW1wbEJhc2VSb290IikgewotICAgICAg
ICAgICAgICAgICRyb290U3RyaW5nICA9ICIgICAgdm9pZCogcm9vdCA9IFdlYkNvcmU6OnJvb3Qo
anMke2ltcGxDbGFzc05hbWV9LT5pbXBsKCktPmJhc2UoKSk7XG4iOworICAgICAgICAgICAgICAg
ICRyb290U3RyaW5nICA9ICIgICAgdm9pZCogcm9vdCA9IFdlYkNvcmU6OnJvb3QoanMke2ludGVy
ZmFjZU5hbWV9LT5pbXBsKCktPmJhc2UoKSk7XG4iOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICAkcm9vdFN0cmluZyAgPSAiICAgIHZvaWQqIHJvb3QgPSBXZWJDb3JlOjpy
b290KGpzJHtpbXBsQ2xhc3NOYW1lfS0+aW1wbCgpKTtcbiI7CisgICAgICAgICAgICAgICAgJHJv
b3RTdHJpbmcgID0gIiAgICB2b2lkKiByb290ID0gV2ViQ29yZTo6cm9vdChqcyR7aW50ZXJmYWNl
TmFtZX0tPmltcGwoKSk7XG4iOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgJHJvb3RTdHJpbmcpOwpAQCAtMjUzOCwxMiArMjUzNiwxMiBAQCBzdWIgR2Vu
ZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgR2V0R2VuZXJhdGVJc1JlYWNoYWJsZSgkaW50
ZXJmYWNlKSB8fAogICAgICAgICAgR2V0Q3VzdG9tSXNSZWFjaGFibGUoJGludGVyZmFjZSkgfHwK
ICAgICAgICAgICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJBY3RpdmVET01PYmpl
Y3QifSkpIHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkIEpTJHtpbXBsQ2xhc3NO
YW1lfU93bmVyOjpmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9p
ZCogY29udGV4dClcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQgSlMke2lu
dGVyZmFjZU5hbWV9T3duZXI6OmZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFu
ZGxlLCB2b2lkKiBjb250ZXh0KVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xu
Iik7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEpTJHtpbXBsQ2xhc3NOYW1lfSog
anMke2ltcGxDbGFzc05hbWV9ID0ganNDYXN0PEpTJHtpbXBsQ2xhc3NOYW1lfSo+KGhhbmRsZS5n
ZXQoKS5hc0NlbGwoKSk7XG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSlMk
e2ludGVyZmFjZU5hbWV9KiBqcyR7aW50ZXJmYWNlTmFtZX0gPSBqc0Nhc3Q8SlMke2ludGVyZmFj
ZU5hbWV9Kj4oaGFuZGxlLmdldCgpLmFzQ2VsbCgpKTtcbiIpOwogICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICBET01XcmFwcGVyV29ybGQqIHdvcmxkID0gc3RhdGljX2Nhc3Q8RE9NV3Jh
cHBlcldvcmxkKj4oY29udGV4dCk7XG4iKTsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgdW5jYWNoZVdyYXBwZXIod29ybGQsIGpzJHtpbXBsQ2xhc3NOYW1lfS0+aW1wbCgpLCBqcyR7
aW1wbENsYXNzTmFtZX0pO1xuIik7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGpz
JHtpbXBsQ2xhc3NOYW1lfS0+cmVsZWFzZUltcGwoKTtcbiIpOworICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICB1bmNhY2hlV3JhcHBlcih3b3JsZCwganMke2ludGVyZmFjZU5hbWV9LT5p
bXBsKCksIGpzJHtpbnRlcmZhY2VOYW1lfSk7XG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAganMke2ludGVyZmFjZU5hbWV9LT5yZWxlYXNlSW1wbCgpO1xuIik7CiAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKICAgICB9CiAKQEAgLTI2MjUsNyArMjYyMyw3
IEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjawogICAgIG15ICRmdW5jdGlvbiA9IHNoaWZ0
OwogICAgIG15ICRpbnRlcmZhY2UgPSBzaGlmdDsKICAgICBteSAkbnVtUGFyYW1ldGVycyA9IHNo
aWZ0OwotICAgIG15ICRpbXBsQ2xhc3NOYW1lID0gc2hpZnQ7CisgICAgbXkgJGludGVyZmFjZU5h
bWUgPSBzaGlmdDsKICAgICBteSAkZnVuY3Rpb25JbXBsZW1lbnRhdGlvbk5hbWUgPSBzaGlmdDsK
ICAgICBteSAkc3ZnUHJvcGVydHlUeXBlID0gc2hpZnQ7CiAgICAgbXkgJHN2Z1Byb3BlcnR5T3JM
aXN0UHJvcGVydHlUeXBlID0gc2hpZnQ7CkBAIC0yNjQyLDcgKzI2NDAsNyBAQCBzdWIgR2VuZXJh
dGVQYXJhbWV0ZXJzQ2hlY2sKICAgICAgICAgdW5zaGlmdChAYXJndW1lbnRzLCAiaW1wbCIpIGlm
ICEkZnVuY3Rpb24tPmlzU3RhdGljOwogICAgICAgICAkZnVuY3Rpb25OYW1lID0gIiR7aW1wbGVt
ZW50ZWRCeX06OiR7ZnVuY3Rpb25JbXBsZW1lbnRhdGlvbk5hbWV9IjsKICAgICB9IGVsc2lmICgk
ZnVuY3Rpb24tPmlzU3RhdGljKSB7Ci0gICAgICAgICRmdW5jdGlvbk5hbWUgPSAiJHtpbXBsQ2xh
c3NOYW1lfTo6JHtmdW5jdGlvbkltcGxlbWVudGF0aW9uTmFtZX0iOworICAgICAgICAkZnVuY3Rp
b25OYW1lID0gIiR7aW50ZXJmYWNlTmFtZX06OiR7ZnVuY3Rpb25JbXBsZW1lbnRhdGlvbk5hbWV9
IjsKICAgICB9IGVsc2lmICgkc3ZnUHJvcGVydHlPckxpc3RQcm9wZXJ0eVR5cGUgYW5kICEkc3Zn
TGlzdFByb3BlcnR5VHlwZSkgewogICAgICAgICAkZnVuY3Rpb25OYW1lID0gInBvZEltcGwuJHtm
dW5jdGlvbkltcGxlbWVudGF0aW9uTmFtZX0iOwogICAgIH0gZWxzZSB7CkBAIC0yNjc2LDcgKzI2
NzQsNyBAQCBzdWIgR2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2sKICAgICAgICAgICAgICAgICBwdXNo
IEBvcHRpb25hbENhbGxiYWNrQXJndW1lbnRzLCAiZWMiOwogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgbXkgJGZ1bmN0aW9uU3RyaW5nID0gIiRmdW5jdGlvbk5hbWUoIiAuIGpvaW4oIiwgIiwg
QG9wdGlvbmFsQ2FsbGJhY2tBcmd1bWVudHMpIC4gIikiOwotICAgICAgICAgICAgR2VuZXJhdGVJ
bXBsZW1lbnRhdGlvbkZ1bmN0aW9uQ2FsbCgkZnVuY3Rpb24sICRmdW5jdGlvblN0cmluZywgIiAg
ICAiIHggMiwgJHN2Z1Byb3BlcnR5VHlwZSwgJGltcGxDbGFzc05hbWUpOworICAgICAgICAgICAg
R2VuZXJhdGVJbXBsZW1lbnRhdGlvbkZ1bmN0aW9uQ2FsbCgkZnVuY3Rpb24sICRmdW5jdGlvblN0
cmluZywgIiAgICAiIHggMiwgJHN2Z1Byb3BlcnR5VHlwZSwgJGludGVyZmFjZU5hbWUpOwogICAg
ICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIH1cblxuIik7CiAgICAgICAgIH0KIApA
QCAtMjc3Niw3ICsyNzc0LDcgQEAgc3ViIEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrCiAgICAgICAg
ICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKVxu
Iik7CiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7XG4iKTsKIAotICAgICAgICAgICAgaWYgKCRjb2Rl
R2VuZXJhdG9yLT5Jc1NWR1R5cGVOZWVkaW5nVGVhck9mZigkYXJnVHlwZSkgYW5kIG5vdCAkaW1w
bENsYXNzTmFtZSA9fiAvTGlzdCQvKSB7CisgICAgICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3It
PklzU1ZHVHlwZU5lZWRpbmdUZWFyT2ZmKCRhcmdUeXBlKSBhbmQgbm90ICRpbnRlcmZhY2VOYW1l
ID1+IC9MaXN0JC8pIHsKICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAg
aWYgKCEkbmFtZSkge1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
ICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgVFlQRV9NSVNNQVRDSF9FUlIpO1xuIik7CiAg
ICAgICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpO1xuIik7CkBAIC0yNzg2LDcgKzI3ODQsNyBAQCBzdWIg
R2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2sKIAogICAgICAgICBpZiAoJGFyZ1R5cGUgZXEgIk5vZGVG
aWx0ZXIiKSB7CiAgICAgICAgICAgICBwdXNoIEBhcmd1bWVudHMsICIkbmFtZS5nZXQoKSI7Ci0g
ICAgICAgIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1NWR1R5cGVOZWVkaW5nVGVhck9mZigk
YXJnVHlwZSkgYW5kIG5vdCAkaW1wbENsYXNzTmFtZSA9fiAvTGlzdCQvKSB7CisgICAgICAgIH0g
ZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1NWR1R5cGVOZWVkaW5nVGVhck9mZigkYXJnVHlwZSkg
YW5kIG5vdCAkaW50ZXJmYWNlTmFtZSA9fiAvTGlzdCQvKSB7CiAgICAgICAgICAgICBwdXNoIEBh
cmd1bWVudHMsICIkbmFtZS0+cHJvcGVydHlSZWZlcmVuY2UoKSI7CiAgICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgICBwdXNoIEBhcmd1bWVudHMsICRuYW1lOwpAQCAtMjk5Myw3ICsyOTkxLDcg
QEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb25GdW5jdGlvbkNhbGwoKQogICAgIG15ICRmdW5j
dGlvblN0cmluZyA9IHNoaWZ0OwogICAgIG15ICRpbmRlbnQgPSBzaGlmdDsKICAgICBteSAkc3Zn
UHJvcGVydHlUeXBlID0gc2hpZnQ7Ci0gICAgbXkgJGltcGxDbGFzc05hbWUgPSBzaGlmdDsKKyAg
ICBteSAkaW50ZXJmYWNlTmFtZSA9IHNoaWZ0OwogCiAgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0
dXJlLT50eXBlIGVxICJ2b2lkIikgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgJGluZGVu
dCAuICIkZnVuY3Rpb25TdHJpbmc7XG4iKTsKQEAgLTMwMTEsNyArMzAwOSw3IEBAIHN1YiBHZW5l
cmF0ZUltcGxlbWVudGF0aW9uRnVuY3Rpb25DYWxsKCkKICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICRpbmRlbnQgLiAicmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTtcbiIp
OwogICAgIH0gZWxzZSB7CiAgICAgICAgIG15ICR0aGlzT2JqZWN0ID0gJGZ1bmN0aW9uLT5pc1N0
YXRpYyA/IDAgOiAiY2FzdGVkVGhpcyI7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4i
IC4gJGluZGVudCAuICJKU0M6OkpTVmFsdWUgcmVzdWx0ID0gIiAuIE5hdGl2ZVRvSlNWYWx1ZSgk
ZnVuY3Rpb24tPnNpZ25hdHVyZSwgMSwgJGltcGxDbGFzc05hbWUsICRmdW5jdGlvblN0cmluZywg
JHRoaXNPYmplY3QpIC4gIjtcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuIiAu
ICRpbmRlbnQgLiAiSlNDOjpKU1ZhbHVlIHJlc3VsdCA9ICIgLiBOYXRpdmVUb0pTVmFsdWUoJGZ1
bmN0aW9uLT5zaWduYXR1cmUsIDEsICRpbnRlcmZhY2VOYW1lLCAkZnVuY3Rpb25TdHJpbmcsICR0
aGlzT2JqZWN0KSAuICI7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICRpbmRlbnQg
LiAic2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTtcbiIpIGlmIEB7JGZ1bmN0aW9uLT5yYWlzZXNF
eGNlcHRpb25zfTsKIAogICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPkV4dGVuZGVkQXR0cmli
dXRlQ29udGFpbnMoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJD
YWxsV2l0aCJ9LCAiU2NyaXB0U3RhdGUiKSkgewpAQCAtMzIxOSw3ICszMjE3LDcgQEAgc3ViIE5h
dGl2ZVRvSlNWYWx1ZQogewogICAgIG15ICRzaWduYXR1cmUgPSBzaGlmdDsKICAgICBteSAkaW5G
dW5jdGlvbkNhbGwgPSBzaGlmdDsKLSAgICBteSAkaW1wbENsYXNzTmFtZSA9IHNoaWZ0OworICAg
IG15ICRpbnRlcmZhY2VOYW1lID0gc2hpZnQ7CiAgICAgbXkgJHZhbHVlID0gc2hpZnQ7CiAgICAg
bXkgJHRoaXNWYWx1ZSA9IHNoaWZ0OwogCkBAIC0zMjkyLDcgKzMyOTAsNyBAQCBzdWIgTmF0aXZl
VG9KU1ZhbHVlCiAgICAgfQogCiAgICAgaWYgKCR0eXBlIGVxICJET01PYmplY3QiIG9yICR0eXBl
IGVxICJhbnkiKSB7Ci0gICAgICAgIGlmICgkaW1wbENsYXNzTmFtZSBlcSAiRG9jdW1lbnQiKSB7
CisgICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRG9jdW1lbnQiKSB7CiAgICAgICAgICAg
ICBBZGRUb0ltcGxJbmNsdWRlcygiSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCIsICRjb25k
aXRpb25hbCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICByZXR1cm4gIigkdmFsdWUu
aGFzTm9WYWx1ZSgpID8ganNOdWxsKCkgOiAkdmFsdWUuanNWYWx1ZSgpKSI7CkBAIC0zMzI2LDI0
ICszMzI0LDI0IEBAIHN1YiBOYXRpdmVUb0pTVmFsdWUKICAgICAgICAgcmV0dXJuICJ0b0pTTmV3
bHlDcmVhdGVkKGV4ZWMsICRnbG9iYWxPYmplY3QsIFdURjo6Z2V0UHRyKCR2YWx1ZSkpIjsKICAg
ICB9CiAKLSAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzU1ZHQW5pbWF0ZWRUeXBlKCRpbXBsQ2xh
c3NOYW1lKSBvciAkaW1wbENsYXNzTmFtZSBlcSAiU1ZHVmlld1NwZWMiKSB7CisgICAgaWYgKCRj
b2RlR2VuZXJhdG9yLT5Jc1NWR0FuaW1hdGVkVHlwZSgkaW50ZXJmYWNlTmFtZSkgb3IgJGludGVy
ZmFjZU5hbWUgZXEgIlNWR1ZpZXdTcGVjIikgewogICAgICAgICAjIENvbnZlcnQgZnJvbSBhYnN0
cmFjdCBTVkdQcm9wZXJ0eSB0byByZWFsIHR5cGUsIHNvIHRoZSByaWdodCB0b0pTKCkgbWV0aG9k
IGNhbiBiZSBpbnZva2VkLgogICAgICAgICAkdmFsdWUgPSAic3RhdGljX2Nhc3Q8IiAuIEdldE5h
dGl2ZVR5cGUoJHR5cGUpIC4gIj4oJHZhbHVlKSI7Ci0gICAgfSBlbHNpZiAoJGNvZGVHZW5lcmF0
b3ItPklzU1ZHVHlwZU5lZWRpbmdUZWFyT2ZmKCR0eXBlKSBhbmQgbm90ICRpbXBsQ2xhc3NOYW1l
ID1+IC9MaXN0JC8pIHsKKyAgICB9IGVsc2lmICgkY29kZUdlbmVyYXRvci0+SXNTVkdUeXBlTmVl
ZGluZ1RlYXJPZmYoJHR5cGUpIGFuZCBub3QgJGludGVyZmFjZU5hbWUgPX4gL0xpc3QkLykgewog
ICAgICAgICBteSAkdGVhck9mZlR5cGUgPSAkY29kZUdlbmVyYXRvci0+R2V0U1ZHVHlwZU5lZWRp
bmdUZWFyT2ZmKCR0eXBlKTsKICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1NWR1R5cGVX
aXRoV3JpdGFibGVQcm9wZXJ0aWVzTmVlZGluZ1RlYXJPZmYoJHR5cGUpIGFuZCAkaW5GdW5jdGlv
bkNhbGwgZXEgMCBhbmQgbm90IGRlZmluZWQgJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkltbXV0YWJsZSJ9KSB7CiAgICAgICAgICAgICBteSAkZ2V0dGVyID0gJHZhbHVlOwogICAg
ICAgICAgICAgJGdldHRlciA9fiBzL2ltcGxcLi8vOwogICAgICAgICAgICAgJGdldHRlciA9fiBz
L2ltcGwtPi8vOwogICAgICAgICAgICAgJGdldHRlciA9fiBzL1woXCkvLzsKLSAgICAgICAgICAg
IG15ICR1cGRhdGVNZXRob2QgPSAiJiR7aW1wbENsYXNzTmFtZX06OnVwZGF0ZSIgLiAkY29kZUdl
bmVyYXRvci0+V0tfdWNmaXJzdCgkZ2V0dGVyKTsKKyAgICAgICAgICAgIG15ICR1cGRhdGVNZXRo
b2QgPSAiJiR7aW50ZXJmYWNlTmFtZX06OnVwZGF0ZSIgLiAkY29kZUdlbmVyYXRvci0+V0tfdWNm
aXJzdCgkZ2V0dGVyKTsKIAotICAgICAgICAgICAgbXkgJHNlbGZJc1RlYXJPZmZUeXBlID0gJGNv
ZGVHZW5lcmF0b3ItPklzU1ZHVHlwZU5lZWRpbmdUZWFyT2ZmKCRpbXBsQ2xhc3NOYW1lKTsKKyAg
ICAgICAgICAgIG15ICRzZWxmSXNUZWFyT2ZmVHlwZSA9ICRjb2RlR2VuZXJhdG9yLT5Jc1NWR1R5
cGVOZWVkaW5nVGVhck9mZigkaW50ZXJmYWNlTmFtZSk7CiAgICAgICAgICAgICBpZiAoJHNlbGZJ
c1RlYXJPZmZUeXBlKSB7CiAgICAgICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlNWR1N0
YXRpY1Byb3BlcnR5V2l0aFBhcmVudFRlYXJPZmYuaCIsICRjb25kaXRpb25hbCk7Ci0gICAgICAg
ICAgICAgICAgJHRlYXJPZmZUeXBlID1+IHMvU1ZHUHJvcGVydHlUZWFyT2ZmPC9TVkdTdGF0aWNQ
cm9wZXJ0eVdpdGhQYXJlbnRUZWFyT2ZmPCRpbXBsQ2xhc3NOYW1lLCAvOworICAgICAgICAgICAg
ICAgICR0ZWFyT2ZmVHlwZSA9fiBzL1NWR1Byb3BlcnR5VGVhck9mZjwvU1ZHU3RhdGljUHJvcGVy
dHlXaXRoUGFyZW50VGVhck9mZjwkaW50ZXJmYWNlTmFtZSwgLzsKIAotICAgICAgICAgICAgICAg
IGlmICgkdmFsdWUgPX4gL21hdHJpeC8gYW5kICRpbXBsQ2xhc3NOYW1lIGVxICJTVkdUcmFuc2Zv
cm0iKSB7CisgICAgICAgICAgICAgICAgaWYgKCR2YWx1ZSA9fiAvbWF0cml4LyBhbmQgJGludGVy
ZmFjZU5hbWUgZXEgIlNWR1RyYW5zZm9ybSIpIHsKICAgICAgICAgICAgICAgICAgICAgIyBTVkdU
cmFuc2Zvcm0gb2ZmZXJzIGEgbWF0cml4KCkgbWV0aG9kIGZvciBpbnRlcm5hbCB1c2FnZSB0aGF0
IHJldHVybnMgYW4gQWZmaW5lVHJhbnNmb3JtCiAgICAgICAgICAgICAgICAgICAgICMgYW5kIGEg
c3ZnTWF0cml4KCkgbWV0aG9kIHJldHVybmluZyBhIFNWR01hdHJpeCwgdXNlZCBmb3IgdGhlIGJp
bmRpbmdzLgogICAgICAgICAgICAgICAgICAgICAkdmFsdWUgPX4gcy9tYXRyaXgvc3ZnTWF0cml4
LzsKQEAgLTMzNTIsNyArMzM1MCw3IEBAIHN1YiBOYXRpdmVUb0pTVmFsdWUKICAgICAgICAgICAg
ICAgICAkdmFsdWUgPSAiJHt0ZWFyT2ZmVHlwZX06OmNyZWF0ZShjYXN0ZWRUaGlzLT5pbXBsKCks
ICR2YWx1ZSwgJHVwZGF0ZU1ldGhvZCkiOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmLmgiLCAk
Y29uZGl0aW9uYWwpOwotICAgICAgICAgICAgICAgICR0ZWFyT2ZmVHlwZSA9fiBzL1NWR1Byb3Bl
cnR5VGVhck9mZjwvU1ZHU3RhdGljUHJvcGVydHlUZWFyT2ZmPCRpbXBsQ2xhc3NOYW1lLCAvOwor
ICAgICAgICAgICAgICAgICR0ZWFyT2ZmVHlwZSA9fiBzL1NWR1Byb3BlcnR5VGVhck9mZjwvU1ZH
U3RhdGljUHJvcGVydHlUZWFyT2ZmPCRpbnRlcmZhY2VOYW1lLCAvOwogICAgICAgICAgICAgICAg
ICR2YWx1ZSA9ICIke3RlYXJPZmZUeXBlfTo6Y3JlYXRlKGltcGwsICR2YWx1ZSwgJHVwZGF0ZU1l
dGhvZCkiOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2lmICgkdGVhck9mZlR5cGUgPX4g
L1NWR1N0YXRpY0xpc3RQcm9wZXJ0eVRlYXJPZmYvKSB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>