<?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>10163</bug_id>
          
          <creation_ts>2006-07-30 17:45:50 -0700</creation_ts>
          <short_desc>some improvements for the inspector</short_desc>
          <delta_ts>2006-07-30 23:48:40 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</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="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>51159</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-07-30 17:45:50 -0700</bug_when>
    <thetext>I have an assortment of small enhancements and improvements for the inspector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>51160</commentid>
    <comment_count>1</comment_count>
      <attachid>9766</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-07-30 17:46:36 -0700</bug_when>
    <thetext>Created attachment 9766
bug fixes and features for the inspector</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>51170</commentid>
    <comment_count>2</comment_count>
      <attachid>9766</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2006-07-30 21:22:05 -0700</bug_when>
    <thetext>Comment on attachment 9766
bug fixes and features for the inspector

The patch looks good! Great clean up. Like you said on IRC we should have layout tests for the computed style changes in WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>51178</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-07-30 23:48:40 -0700</bug_when>
    <thetext>Committed revision 15702.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>9766</attachid>
            <date>2006-07-30 17:46:36 -0700</date>
            <delta_ts>2006-07-30 21:22:05 -0700</delta_ts>
            <desc>bug fixes and features for the inspector</desc>
            <filename>InspectorPatch.txt</filename>
            <type>text/plain</type>
            <size>44351</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxNTcwMCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzggQEAKKzIwMDYtMDctMzAgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gc29t
ZSBpbXByb3ZlbWVudHMgZm9yIHRoZSBiZW5lZml0IG9mIHRoZSBzdHlsZSBwYW5lIG9mIHRoZSBp
bnNwZWN0b3IKKworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
OiBSZW1vdmVkIGJhY2tncm91bmQtcG9zaXRpb24KKyAgICAgICAgYW5kIGJvcmRlci1zcGFjaW5n
IGZyb20gdGhlIGxpc3Qgb2YgcHJvcGVydGllcyB0aGF0IHNob3cgdXAgaW4KKyAgICAgICAgY29t
cHV0ZWQgc3R5bGUsIGJlY2F1c2Ugb2YgYmFja2dyb3VuZC1wb3NpdGlvbi14LCBiYWNrZ3JvdW5k
LXBvc2l0aW9uLXksCisgICAgICAgIC13ZWJraXQtYm9yZGVyLWhvcml6b250YWwtc3BhY2luZyBh
bmQgLXdlYmtpdC1ib3JkZXItdmVydGljYWwtc3BhY2luZy4KKyAgICAgICAgKFdlYkNvcmU6OnZh
bHVlRm9yTGVuZ3RoKTogQWRkZWQgaGFuZGxpbmcgZm9yIHVuZGVmaW5lZExlbmd0aCwgaW50cmlu
c2ljLAorICAgICAgICBhbmQgbWluLWludHJpbnNpYy4KKyAgICAgICAgKFdlYkNvcmU6OnByaW1p
dGl2ZVZhbHVlRnJvbUxlbmd0aCk6IFJlbW92ZWQgY29kZSB0aGF0IHdvdWxkIGFkZCBhCisgICAg
ICAgIHNwYWNlIHRvIHRoZSBzdHJpbmcgZm9yIG5vIGdvb2QgcmVhc29uLgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKTog
QWRkZWQgYQorICAgICAgICBzcGVjaWFsIGNhc2UgZm9yIGEgbGluZSBjbGFtcCBvZiAtMSwgd2hp
Y2ggc2hvdWxkIGNvbWUgYmFjayBhcyAibm9uZSIKKyAgICAgICAgcmF0aGVyIHRoYW4gYW4gYWN0
dWFsICItMSIuCisgICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246
Omxlbmd0aCk6IFJldHVybiAwIGlmIHRoZQorICAgICAgICBkZWNsYXJhdGlvbiBoYXMgbm8gY29y
cmVzcG9uZGluZyBub2RlIG9yIG5vIHJlbmRlcmVyLgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uOjppdGVtKTogQ2hlY2sgYWdhaW5zdCBsZW5ndGgoKQorICAg
ICAgICBzbyB0aGF0IHRoZSB0d28gc3RheSBjb25zaXN0ZW50IHJhdGhlciB0aGFuIHVzaW5nIGEg
Y29uc3RhbnQuCisKKyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6aXNDU1NUb2tlbml6ZXJJZGVudGlmaWVyKTogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjppc0NTU1Rva2VuaXplclVSTCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6cXVv
dGVTdHJpbmcpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnF1b3RlU3RyaW5nSWZOZWVkZWQp
OiBDaGFuZ2VkIHRvIHF1b3RlIHN0cmluZ3MgaW4gbWFueSBtb3JlCisgICAgICAgIGNhc2VzIC0t
IGFueSBjYXNlcyB3aGVyZSB0aGV5IHdvdWxkIG5vdCBwYXJzZSBpbiB0aGUgQ1NTIHBhcnNlciBv
dGhlcndpc2UuCisgICAgICAgIFRoZSBtYWluIGNhc2UgdGhpcyBhZmZlY3RzIGlzIGZvbnQgbmFt
ZXMgd2l0aCBzcGFjZXMgaW4gdGhlbS4KKyAgICAgICAgKFdlYkNvcmU6OnF1b3RlVVJMSWZOZWVk
ZWQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpjc3NUZXh0
KTogVXNlIHF1b3RlVVJMSWZOZWVkZWQgaW4gdGhlIGNhc2UKKyAgICAgICAgd2hlcmUgd2UncmUg
bWFraW5nIHRoZSB0ZXh0IGZvcm0gb2YgYSBVUkkuCisKKyAgICAgICAgKiBjc3MvdG9rZW5pemVy
LmZsZXg6IFdoaXRlc3BhY2UgdHdlYWtzIHRvIGxpbmUgdGhpbmdzIHVwIGJldHRlci4KKwogMjAw
Ni0wNy0zMCAgRXJpYyBTZWlkZWwgIDxlcmljQGVzZWlkZWwuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IGdyYW1wcyEKSW5kZXg6IFdlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJh
dGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xh
cmF0aW9uLmNwcAkocmV2aXNpb24gMTU2OTcpCisrKyBXZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MCwxMSArNTAsOSBAQCBzdGF0
aWMgY29uc3QgaW50IGNvbXB1dGVkUHJvcGVydGllc1tdID0gCiAgICAgQ1NTX1BST1BfQkFDS0dS
T1VORF9BVFRBQ0hNRU5ULAogICAgIENTU19QUk9QX19XRUJLSVRfQkFDS0dST1VORF9DTElQLAog
ICAgIENTU19QUk9QX19XRUJLSVRfQkFDS0dST1VORF9PUklHSU4sCi0gICAgQ1NTX1BST1BfQkFD
S0dST1VORF9QT1NJVElPTiwKICAgICBDU1NfUFJPUF9CQUNLR1JPVU5EX1BPU0lUSU9OX1gsCiAg
ICAgQ1NTX1BST1BfQkFDS0dST1VORF9QT1NJVElPTl9ZLAogICAgIENTU19QUk9QX0JPUkRFUl9D
T0xMQVBTRSwKLSAgICBDU1NfUFJPUF9CT1JERVJfU1BBQ0lORywKICAgICBDU1NfUFJPUF9fV0VC
S0lUX0JPUkRFUl9IT1JJWk9OVEFMX1NQQUNJTkcsCiAgICAgQ1NTX1BST1BfX1dFQktJVF9CT1JE
RVJfVkVSVElDQUxfU1BBQ0lORywKICAgICBDU1NfUFJPUF9CT1JERVJfVE9QX0NPTE9SLApAQCAt
MTU0LDE2ICsxNTIsMjggQEAgc3RhdGljIGNvbnN0IGludCBjb21wdXRlZFByb3BlcnRpZXNbXSA9
IAogCiBjb25zdCB1bnNpZ25lZCBudW1Db21wdXRlZFByb3BlcnRpZXMgPSBzaXplb2YoY29tcHV0
ZWRQcm9wZXJ0aWVzKSAvIHNpemVvZihjb21wdXRlZFByb3BlcnRpZXNbMF0pOwogCi1zdGF0aWMg
Q1NTVmFsdWUqIHZhbHVlRm9yTGVuZ3RoKGNvbnN0IExlbmd0aCAmbGVuZ3RoKQorc3RhdGljIENT
U1ZhbHVlKiB2YWx1ZUZvckxlbmd0aChjb25zdCBMZW5ndGgmIGxlbmd0aCkKIHsKICAgICBzd2l0
Y2ggKGxlbmd0aC50eXBlKCkpIHsKLSAgICAgICAgY2FzZSBQZXJjZW50OgotICAgICAgICAgICAg
cmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShsZW5ndGgudmFsdWUoKSwgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU19QRVJDRU5UQUdFKTsKKyAgICAgICAgY2FzZSBBdXRvOgorICAgICAgICAgICAg
cmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX0FVVE8pOwogICAgICAgICBjYXNl
IFdlYkNvcmU6OkZpeGVkOgorICAgICAgICAgICAgaWYgKGxlbmd0aC52YWx1ZSgpID09IHVuZGVm
aW5lZExlbmd0aCkKKyAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVl
KENTU19WQUxfTk9ORSk7CiAgICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVl
KGxlbmd0aC52YWx1ZSgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BYKTsKLSAgICAgICAgZGVm
YXVsdDogLy8gRklYTUU6IEludHJpbnNpYyBhbmQgTWluSW50cmluc2ljIHNob3VsZCBwcm9iYWJs
eSByZXR1cm4ga2V5d29yZHMuCi0gICAgICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZh
bHVlKENTU19WQUxfQVVUTyk7CisgICAgICAgIGNhc2UgSW50cmluc2ljOgorICAgICAgICAgICAg
cmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX0lOVFJJTlNJQyk7CisgICAgICAg
IGNhc2UgTWluSW50cmluc2ljOgorICAgICAgICAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVW
YWx1ZShDU1NfVkFMX01JTl9JTlRSSU5TSUMpOworICAgICAgICBjYXNlIFBlcmNlbnQ6CisgICAg
ICAgICAgICByZXR1cm4gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKGxlbmd0aC52YWx1ZSgpLCBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRBR0UpOworICAgICAgICBjYXNlIFJlbGF0aXZlOgor
ICAgICAgICBjYXNlIFN0YXRpYzoKKyAgICAgICAgICAgIC8vIFNob3VsZCBuZXZlciBiZSByZWFj
aGVkLgorICAgICAgICAgICAgYnJlYWs7CiAgICAgfQorICAgIC8vIFNob3VsZCBuZXZlciBiZSBy
ZWFjaGVkLCBidXQgaWYgd2UgZG8sIGp1c3QgcmV0dXJuICJhdXRvIi4KKyAgICByZXR1cm4gbmV3
IENTU1ByaW1pdGl2ZVZhbHVlKENTU19WQUxfQVVUTyk7CiB9CiAKIHN0YXRpYyBDU1NWYWx1ZSAq
dmFsdWVGb3JCb3JkZXJTdHlsZShFQm9yZGVyU3R5bGUgc3R5bGUpCkBAIC0zMjIsOCArMzMyLDcg
QEAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlRnJvbUxlbgogICAgIGVsc2UgaWYg
KGxlbmd0aC5pc0ZpeGVkKCkpCiAgICAgICAgIHN0cmluZyA9IG51bWJlckFzU3RyaW5nKGxlbmd0
aC5jYWxjTWluVmFsdWUoMCkpOwogICAgIGVsc2UgaWYgKGxlbmd0aC5pc0F1dG8oKSkKLSAgICAg
ICAgc3RyaW5nICs9ICJhdXRvIjsKLSAgICBzdHJpbmcgKz0gIiAiOworICAgICAgICBzdHJpbmcg
PSAiYXV0byI7CiAgICAgcmV0dXJuIG5ldyBDU1NQcmltaXRpdmVWYWx1ZShzdHJpbmcsIENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NfU1RSSU5HKTsKIH0KIApAQCAtNzcwLDYgKzc3OSw4IEBAIFBhc3NS
ZWZQdHI8Q1NTVmFsdWU+IENTU0NvbXB1dGVkU3R5bGVEZWMKICAgICAgICAgICAgIHJldHVybiBu
ZXcgQ1NTUHJpbWl0aXZlVmFsdWUoQ1NTX1ZBTF9OT1JNQUwpOwogICAgICAgICByZXR1cm4gbmV3
IENTU1ByaW1pdGl2ZVZhbHVlKHN0eWxlLT5sZXR0ZXJTcGFjaW5nKCksIENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NfUFgpOwogICAgIGNhc2UgQ1NTX1BST1BfX1dFQktJVF9MSU5FX0NMQU1QOgorICAg
ICAgICBpZiAoc3R5bGUtPmxpbmVDbGFtcCgpID09IC0xKQorICAgICAgICAgICAgcmV0dXJuIG5l
dyBDU1NQcmltaXRpdmVWYWx1ZShDU1NfVkFMX05PTkUpOwogICAgICAgICByZXR1cm4gbmV3IENT
U1ByaW1pdGl2ZVZhbHVlKHN0eWxlLT5saW5lQ2xhbXAoKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U19QRVJDRU5UQUdFKTsKICAgICBjYXNlIENTU19QUk9QX0xJTkVfSEVJR0hUOiB7CiAgICAgICAg
IExlbmd0aCBsZW5ndGgoc3R5bGUtPmxpbmVIZWlnaHQoKSk7CkBAIC0xMzQzLDEyICsxMzU0LDIx
IEBAIHZvaWQgQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpzZXRQcm8KIAogdW5zaWduZWQg
Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpsZW5ndGgoKSBjb25zdAogeworICAgIE5vZGUq
IG5vZGUgPSBtX25vZGUuZ2V0KCk7CisgICAgaWYgKCFub2RlKQorICAgICAgICByZXR1cm4gMDsK
KyAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gbm9kZS0+cmVuZGVyZXIoKTsKKyAgICBpZiAo
IXJlbmRlcmVyKQorICAgICAgICByZXR1cm4gMDsKKyAgICBSZW5kZXJTdHlsZSogc3R5bGUgPSBy
ZW5kZXJlci0+c3R5bGUoKTsKKyAgICBpZiAoIXN0eWxlKQorICAgICAgICByZXR1cm4gMDsKICAg
ICByZXR1cm4gbnVtQ29tcHV0ZWRQcm9wZXJ0aWVzOwogfQogCiBTdHJpbmcgQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uOjppdGVtKHVuc2lnbmVkIGkpIGNvbnN0CiB7Ci0gICAgaWYgKGkgPj0g
bnVtQ29tcHV0ZWRQcm9wZXJ0aWVzKQorICAgIGlmIChpID49IGxlbmd0aCgpKQogICAgICAgICBy
ZXR1cm4gU3RyaW5nKCk7CiAgICAgCiAgICAgcmV0dXJuIGdldFByb3BlcnR5TmFtZShjb21wdXRl
ZFByb3BlcnRpZXNbaV0pOwpAQCAtMTM1OSw3ICsxMzc5LDggQEAgU3RyaW5nIENTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbjo6aXRlbQogLy8gcHJvcGVydGllcyBmb3Igd2hpY2ggd2UgaGF2ZSBh
IGNvbXB1dGVkIGltcGxlbWVudGF0aW9uIGluIHRoaXMgZmlsZS4KIGNvbnN0IGludCBpbmhlcml0
YWJsZVByb3BlcnRpZXNbXSA9IHsKICAgICBDU1NfUFJPUF9CT1JERVJfQ09MTEFQU0UsCi0gICAg
Q1NTX1BST1BfQk9SREVSX1NQQUNJTkcsCisgICAgQ1NTX1BST1BfX1dFQktJVF9CT1JERVJfSE9S
SVpPTlRBTF9TUEFDSU5HLAorICAgIENTU19QUk9QX19XRUJLSVRfQk9SREVSX1ZFUlRJQ0FMX1NQ
QUNJTkcsCiAgICAgQ1NTX1BST1BfQ09MT1IsCiAgICAgQ1NTX1BST1BfRk9OVF9GQU1JTFksCiAg
ICAgQ1NTX1BST1BfRk9OVF9TSVpFLApJbmRleDogV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFs
dWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAko
cmV2aXNpb24gMTU2OTcpCisrKyBXZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMyLDIyICszMiw3NCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LS8vIFF1b3RlcyB0aGUgc3RyaW5nIGlmIGl0IG5lZWRzIHF1b3RpbmcuCi0vLyBXZSB1c2Ugc2lu
Z2xlIHF1b3RlcyBmb3Igbm93IGJlYXVzZSBtYXJrdXAuY3BwIHVzZXMgZG91YmxlIHF1b3Rlcy4K
LXN0YXRpYyBTdHJpbmcgcXVvdGVTdHJpbmdJZk5lZWRlZChjb25zdCBTdHJpbmcgJnN0cmluZykK
LXsKLSAgICAvLyBGb3Igbm93LCBqdXN0IGRvIHRoaXMgZm9yIHN0cmluZ3MgdGhhdCBzdGFydCB3
aXRoICIjIiB0byBmaXggS29yZWFuIGZvbnQgbmFtZXMgdGhhdCBzdGFydCB3aXRoICIjIi4KLSAg
ICAvLyBQb3N0LVRpZ2VyLCB3ZSBzaG91bGQgaXNMZWdhbElkZW50aWZpZXIgaW5zdGVhZCBhZnRl
ciB3b3JraW5nIG91dCBhbGwgdGhlIGFuY2lsbGFyeSBpc3N1ZXMuCi0gICAgaWYgKHN0cmluZ1sw
XSAhPSAnIycpCi0gICAgICAgIHJldHVybiBzdHJpbmc7CisvLyAiaWRlbnQiIGZyb20gdGhlIENT
UyB0b2tlbml6ZXIsIG1pbnVzIGJhY2tzbGFzaC1lc2NhcGUgc2VxdWVuY2VzCitzdGF0aWMgYm9v
bCBpc0NTU1Rva2VuaXplcklkZW50aWZpZXIoY29uc3QgU3RyaW5nJiBzdHJpbmcpCit7CisgICAg
Y29uc3QgVUNoYXIqIHAgPSBzdHJpbmcuY2hhcmFjdGVycygpOworICAgIGNvbnN0IFVDaGFyKiBl
bmQgPSBwICsgc3RyaW5nLmxlbmd0aCgpOworCisgICAgLy8gLT8KKyAgICBpZiAocCAhPSBlbmQg
JiYgcFswXSA9PSAnLScpCisgICAgICAgICsrcDsKKworICAgIC8vIHtubXN0YXJ0fQorICAgIGlm
IChwID09IGVuZCB8fCAhKHBbMF0gPT0gJ18nIHx8IGlzYWxwaGEocFswXSkgfHwgcFswXSA+PSAx
MjgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgKytwOworCisgICAgLy8ge25tY2hhcn0q
CisgICAgZm9yICg7IHAgIT0gZW5kOyArK3ApCisgICAgICAgIGlmICghKHBbMF0gPT0gJ18nIHx8
IHBbMF0gPT0gJy0nIHx8IGlzYWxudW0ocFswXSkgfHwgcFswXSA+PSAxMjgpKQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKKy8vICJ1cmwiIGZyb20g
dGhlIENTUyB0b2tlbml6ZXIsIG1pbnVzIGJhY2tzbGFzaC1lc2NhcGUgc2VxdWVuY2VzCitzdGF0
aWMgYm9vbCBpc0NTU1Rva2VuaXplclVSTChjb25zdCBTdHJpbmcmIHN0cmluZykKK3sKKyAgICBj
b25zdCBVQ2hhciogcCA9IHN0cmluZy5jaGFyYWN0ZXJzKCk7CisgICAgY29uc3QgVUNoYXIqIGVu
ZCA9IHAgKyBzdHJpbmcubGVuZ3RoKCk7CisKKyAgICBmb3IgKDsgcCAhPSBlbmQ7ICsrcCkKKyAg
ICAgICAgc3dpdGNoIChwWzBdKSB7CisgICAgICAgICAgICBjYXNlICchJzoKKyAgICAgICAgICAg
IGNhc2UgJyMnOgorICAgICAgICAgICAgY2FzZSAnJCc6CisgICAgICAgICAgICBjYXNlICclJzoK
KyAgICAgICAgICAgIGNhc2UgJyYnOgorICAgICAgICAgICAgY2FzZSAnKic6CisgICAgICAgICAg
ICBjYXNlICctJzoKKyAgICAgICAgICAgIGNhc2UgJ34nOgorICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBpZiAocFswXSA8IDEyOCkK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CiAKLSAgICAvLyBG
SVhNRTogQWxzbyBuZWVkIHRvIHRyYW5zZm9ybSBjb250cm9sIGNoYXJhY3RlcnMgaW50byBcIHNl
cXVlbmNlcy4KKyAgICByZXR1cm4gdHJ1ZTsKK30KKworLy8gV2UgdXNlIHNpbmdsZSBxdW90ZXMg
Zm9yIG5vdyBiZWNhdXNlIG1hcmt1cC5jcHAgdXNlcyBkb3VibGUgcXVvdGVzLgorc3RhdGljIFN0
cmluZyBxdW90ZVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKK3sKKyAgICAvLyBGSVhNRTog
QWxzbyBuZWVkIHRvIGVzY2FwZSBjaGFyYWN0ZXJzIGxpa2UgJ1xuJy4KICAgICBTdHJpbmcgcyA9
IHN0cmluZzsKICAgICBzLnJlcGxhY2UoJ1xcJywgIlxcXFwiKTsKICAgICBzLnJlcGxhY2UoJ1wn
JywgIlxcJyIpOwogICAgIHJldHVybiAiJyIgKyBzICsgIiciOwogfQogCitzdGF0aWMgU3RyaW5n
IHF1b3RlU3RyaW5nSWZOZWVkZWQoY29uc3QgU3RyaW5nJiBzdHJpbmcpCit7CisgICAgcmV0dXJu
IGlzQ1NTVG9rZW5pemVySWRlbnRpZmllcihzdHJpbmcpID8gc3RyaW5nIDogcXVvdGVTdHJpbmco
c3RyaW5nKTsKK30KKworc3RhdGljIFN0cmluZyBxdW90ZVVSTElmTmVlZGVkKGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKQoreworICAgIHJldHVybiBpc0NTU1Rva2VuaXplclVSTChzdHJpbmcpID8gc3Ry
aW5nIDogcXVvdGVTdHJpbmcoc3RyaW5nKTsKK30KKwogQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1By
aW1pdGl2ZVZhbHVlKCkKIHsKICAgICBtX3R5cGUgPSAwOwpAQCAtNDU4LDcgKzUxMCw3IEBAIFN0
cmluZyBDU1NQcmltaXRpdmVWYWx1ZTo6Y3NzVGV4dCgpIGNvbnMKICAgICAgICAgICAgIHRleHQg
PSBxdW90ZVN0cmluZ0lmTmVlZGVkKG1fdmFsdWUuc3RyaW5nKTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBjYXNlIENTU19VUkk6Ci0gICAgICAgICAgICB0ZXh0ID0gInVybCgiICsgU3Ry
aW5nKG1fdmFsdWUuc3RyaW5nKSArICIpIjsKKyAgICAgICAgICAgIHRleHQgPSAidXJsKCIgKyBx
dW90ZVVSTElmTmVlZGVkKG1fdmFsdWUuc3RyaW5nKSArICIpIjsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBjYXNlIENTU19JREVOVDoKICAgICAgICAgICAgIHRleHQgPSBnZXRWYWx1ZU5h
bWUobV92YWx1ZS5pZGVudCk7CkluZGV4OiBXZWJDb3JlL2Nzcy90b2tlbml6ZXIuZmxleAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy90b2tlbml6ZXIuZmxleAkocmV2aXNpb24gMTU2OTcpCisr
KyBXZWJDb3JlL2Nzcy90b2tlbml6ZXIuZmxleAkod29ya2luZyBjb3B5KQpAQCAtNTIsMTIgKzUy
LDEyIEBAIHJhbmdlICAgICAgICAgICBcP3sxLDZ9fHtofShcP3swLDV9fHtofSgKICJAZm9udC1m
YWNlIiAgICAgICAgICAgIHt5eVRvayA9IEZPTlRfRkFDRV9TWU07IHJldHVybiB5eVRvazt9CiAi
QGNoYXJzZXQiICAgICAgICAgICAgICB7eXlUb2sgPSBDSEFSU0VUX1NZTTsgcmV0dXJuIHl5VG9r
O30KICJAbmFtZXNwYWNlIiAgICAgICAgICAgIHt5eVRvayA9IE5BTUVTUEFDRV9TWU07IHJldHVy
biB5eVRvazsgfQotIkAtd2Via2l0LXJ1bGUiICAgIHt5eVRvayA9IFdFQktJVF9SVUxFX1NZTTsg
cmV0dXJuIHl5VG9rOyB9Ci0iQC13ZWJraXQtZGVjbHMiICAge3l5VG9rID0gV0VCS0lUX0RFQ0xT
X1NZTTsgcmV0dXJuIHl5VG9rOyB9Ci0iQC13ZWJraXQtdmFsdWUiICAge3l5VG9rID0gV0VCS0lU
X1ZBTFVFX1NZTTsgcmV0dXJuIHl5VG9rOyB9CisiQC13ZWJraXQtcnVsZSIgICAgICAgICB7eXlU
b2sgPSBXRUJLSVRfUlVMRV9TWU07IHJldHVybiB5eVRvazsgfQorIkAtd2Via2l0LWRlY2xzIiAg
ICAgICAge3l5VG9rID0gV0VCS0lUX0RFQ0xTX1NZTTsgcmV0dXJuIHl5VG9rOyB9CisiQC13ZWJr
aXQtdmFsdWUiICAgICAgICB7eXlUb2sgPSBXRUJLSVRfVkFMVUVfU1lNOyByZXR1cm4geXlUb2s7
IH0KICJALXdlYmtpdC1tZWRpYXF1ZXJ5IiAgIHtCRUdJTihtZWRpYXF1ZXJ5KTsgeXlUb2sgPSBX
RUJLSVRfTUVESUFRVUVSWV9TWU07IHJldHVybiB5eVRvazsgfQogCi0iISJ7d30iaW1wb3J0YW50
IiAgICAgICAgIHt5eVRvayA9IElNUE9SVEFOVF9TWU07IHJldHVybiB5eVRvazt9CisiISJ7d30i
aW1wb3J0YW50IiAgICAgICB7eXlUb2sgPSBJTVBPUlRBTlRfU1lNOyByZXR1cm4geXlUb2s7fQog
CiB7bnVtfWVtICAgICAgICAgICAgICAgICB7eXlUb2sgPSBFTVM7IHJldHVybiB5eVRvazt9CiB7
bnVtfV9fcWVtICAgICAgICAgICAgICB7eXlUb2sgPSBRRU1TOyByZXR1cm4geXlUb2s7fSAvKiBx
dWlya3kgZW1zICovCkBAIC05Myw0ICs5MywzIEBAIFVcK3tofXsxLDZ9LXtofXsxLDZ9ICAgIHt5
eVRvayA9IFVOSUNPREUKIC4gICAgICAgICAgICAgICAgICAgICAgIHt5eVRvayA9ICp5eXRleHQ7
IHJldHVybiB5eVRvazt9CiAKICUlCi0KSW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMTU3MDApCisrKyBXZWJLaXQvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTEgQEAKKzIwMDYtMDctMzAgIERhcmluIEFk
bGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIC0gc29tZSBpbXByb3ZlbWVudHMgZm9yIHRoZSBpbnNwZWN0b3IKKwor
ICAgICAgICAqIFdlYkluc3BlY3Rvci9XZWJJbnNwZWN0b3IubToKKyAgICAgICAgKCtbV2ViSW5z
cGVjdG9yIHNoYXJlZFdlYkluc3BlY3RvcjpdKTogRml4ZWQgYnVnIHRoYXQgY291bGQgY2F1c2Ug
dGhlIGluc3BlY3RvcgorICAgICAgICB0byBiZSBnYXJiYWdlIGNvbGxlY3RlZCBpZiB1c2VkIGlu
IGFuIGFwcGxpY2F0aW9uIHdpdGggR0MgZW5hYmxlZC4KKyAgICAgICAgKC1bV2ViSW5zcGVjdG9y
IGRlYWxsb2NdKTogUmVtb3ZlZCBhIGNhbGwgdG8gYSBub24tZXhpc3RlbnQgY2xvc2UgbWV0aG9k
LgorICAgICAgICAoLVtXZWJJbnNwZWN0b3Igd2luZG93XSk6IEFkZGVkIGEgY3VzdG9tIFdlYlBy
ZWZlcmVuY2VzIG9iamVjdCBhbmQgY2FsbGVkCisgICAgICAgIHNldFByaXZhdGVCcm93c2luZ0Vu
YWJsZWQ6WUVTIHNvIHRoZSBpbnNwZWN0b3Igd29uJ3QgYXBwZWFyIGluIHRoZSBoaXN0b3J5IG1l
bnUuCisgICAgICAgIEFsc28gY2FsbCBzZXRQcm9oaWJpdHNNYWluRnJhbWVTY3JvbGxpbmc6WUVT
IHRvIHRyeSB0byBnZXQgcmlkIG9mIHRyb3VibGUgd2hlcmUKKyAgICAgICAgdGhlIGluc3BlY3Rv
ciBzY3JvbGxzIHdoZW4gZHJhZ2dpbmcuCisKKyAgICAgICAgKiBXZWJJbnNwZWN0b3Ivd2ViSW5z
cGVjdG9yL2luc3BlY3Rvci5jc3M6IEFkZGVkIHN0eWxlIGZvciB0aGUgbmV3IGNvbG9yIHN3YXRj
aCwKKyAgICAgICAgYW5kIEphdmFTY3JpcHQgcHJvcGVydGllcy4gTW9yZSBvZiB0aGUgc3R5bGUg
c2hvdWxkIGJlIHNoYXJlZCBiZXR3ZWVuIHRoZSBwYW5lcywKKyAgICAgICAgYnV0IHRoaXMgc2hv
dWxkIGJlIE9LIGZvciBub3cuCisKKyAgICAgICAgKiBXZWJJbnNwZWN0b3Ivd2ViSW5zcGVjdG9y
L2luc3BlY3Rvci5odG1sOiBBZGRlZCBhIGZpcnN0IGN1dCBhdCBhIEphdmFTY3JpcHQKKyAgICAg
ICAgcHJvcGVydGllcyBwYW5lLiBOZWVkcyB3b3JrLCBidXQgYmV0dGVyIHRoYW4gbm90aGluZy4K
KworICAgICAgICAqIFdlYkluc3BlY3Rvci93ZWJJbnNwZWN0b3IvaW5zcGVjdG9yLmpzOiBMb3Rz
IG9mIGltcHJvdmVtZW50czoKKyAgICAgICAgLSBPbWl0ICJ0eXBpY2FsIiBwcm9wZXJ0eSB2YWx1
ZXMgZnJvbSBjb21wdXRlZCBzdHlsZSBkaXNwbGF5LCBtYWtpbmcgaXQgbXVjaCBzaG9ydGVyLgor
ICAgICAgICAtIFVzZSB0aGUgd29yZHMgImJsYWNrIiwgIndoaXRlIiwgYW5kICJ0cmFuc3BhcmVu
dCIgd2hlbiBhcHByb3ByaWF0ZSBmb3IgY29sb3IgdmFsdWVzLgorICAgICAgICAtIFJlZmFjdG9y
ZWQgdGhlIGxvYWRlZCgpIGZ1bmN0aW9uIHRvIGdldCByaWQgb2YgcmVwZXRpdGl2ZSBzY3JvbGxi
YXIgc2V0dXAuCisgICAgICAgIC0gQWRkZWQgYSBuZXcgc2Nyb2xsYXJlYSBmb3IgdGhlIEphdmFT
Y3JpcHQgcHJvcGVydGllcyBwYW5lLgorICAgICAgICAtIFNpbXBsaWZpZWQgcmVmcmVzaFNjcm9s
bGJhcnMoKSAtLSB3ZSBub3cgcmVmcmVzaCBhbGwgc2Nyb2xsYmFycyBldmVyeSB0aW1lLCB3aGlj
aCBkb2VzIG5vIGhhcm0uCisgICAgICAgIC0gUmVtb3ZlZCB1bnVzZWQgcmVzdWx0c1dpdGhYcGF0
aFF1ZXJ5KCkuCisgICAgICAgIC0gVXNlIFtdIGluc3RlYWQgb2YgIm5ldyBBcnJheSgpIiBhbmQg
e30gaW5zdGVhZCBvZiAibmV3IE9iamVjdCgpIi4KKyAgICAgICAgLSBSZW1vdmVkIHVudXNlZCB4
cGF0aEZvck5vZGUoKS4KKyAgICAgICAgLSBDaGFuZ2VkIHN0eWxlIHBhbmUgdG8gZGlzcGxheSB0
aGUgc3R5bGUgZm9yIGEgdGV4dCBub2RlJ3MgcGFyZW50IGluc3RlYWQgb2Ygc2F5aW5nCisgICAg
ICAgICAgaXQgY2FuJ3QgZGlzcGxheSB0aGUgc3R5bGUgZm9yIHRleHQuCisgICAgICAgIC0gRml4
ZWQgcmVncmVzc2lvbiBJIGNhdXNlZCBhIHdoaWxlIGJhY2sgYnkgY2hlY2tpbmcgdGhlIGxlbmd0
aCBvZiBhIGNvbXB1dGVkIHN0eWxlCisgICAgICAgICAgYW5kIG5vdCB0cnlpbmcgdG8gZGlzcGxh
eSBhbnl0aGluZyBpZiBpdHMgbGVuZ3RoIGlzIDAuIEJlZm9yZSB0aGlzIGNoYW5nZSBhbmQgdGhl
CisgICAgICAgICAgY29ycmVzcG9uZGluZyBjaGFuZ2UgaW4gV2ViQ29yZSwgd2UnZCBzZWUgYSBj
b21wbGV0ZSBsaXN0IG9mIGFsbCBzdHlsZXMgd2l0aCB0aGUKKyAgICAgICAgICBlbXB0eSBzdHJp
bmcgYXMgdGhlIHZhbHVlIGZvciBlYWNoIG9uZS4KKyAgICAgICAgLSBDaGFuZ2VkIHRoZSBuYW1l
IG9mIHRoZSBjb21wdXRlZFN0eWxlIGZsYWcgb24gdGhlIHN0eWxlIHJ1bGVzIGFycmF5IHRvIGlz
Q29tcHV0ZWRTdHlsZQorICAgICAgICAgIHRvIG1ha2UgaXQgZWFzaWVyIHRvIHVuZGVyc3RhbmQg
aXQncyBhIGJvb2xlYW4uCisgICAgICAgIC0gRml4ZWQgYW4gZXJyb3IgaW4gdGhlIGNvZGUgdGhh
dCBkb2VzICFpbXBvcnRhbnQgc2Nhbm5pbmcgd2hlcmUgaXQgd2FzIHRyeWluZyB0bworICAgICAg
ICAgIGRvIGEgc3BlY2lhbCBjYXNlIGZvciBjb21wdXRlZCBzdHlsZSwgYnV0IHdhcyBjaGVja2lu
ZyB0aGUgY29tcHV0ZWQgc3R5bGUgZmxhZyBvbgorICAgICAgICAgIHRoZSB3cm9uZyBvYmplY3Qu
CisgICAgICAgIC0gQWRkZWQgcG9wdWxhdGVTdHlsZUxpc3RJdGVtKCkgZnVuY3Rpb24gdG8gZmFj
dG9yIG91dCB0aGluZ3MgaW4gY29tbW9uIGJldHdlZW4gdGhlCisgICAgICAgICAgaXRlbXMgaW4g
dGhlIHRvcCBsZXZlbCBsaXN0IGFuZCB0aGUgZXhwYW5kZWQgdHJlZSBmb3Igc2hvcnRoYW5kIHBy
b3BlcnRpZXMuCisgICAgICAgIC0gQWRkZWQgY29kZSB0byBtYWtlIGEgY29sb3Igc3dhdGNoIG5l
eHQgdG8gdGhlIHRleHR1YWwgcmVwcmVzZW50YXRpb24gZm9yIGFueQorICAgICAgICAgIHByb3Bl
cnR5IHRoYXQgY29udGFpbnMgYSBjb2xvci4KKyAgICAgICAgLSBJbXBsZW1lbnRlZCBhIGZpcnN0
IGN1dCBhdCBhIHNpbXBsZSBKYXZhU2NyaXB0IHByb3BlcnRpZXMgcGFuZS4KKwogMjAwNi0wNy0y
OSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgLSBSZW1vdmVkIHRh
YnMgZnJvbSB0aGVzZSBzb3VyY2UgZmlsZXMgdGhhdCBzdGlsbCBoYWQgdGhlbS4KSW5kZXg6IFdl
YktpdC9XZWJJbnNwZWN0b3IvV2ViSW5zcGVjdG9yLm0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L1dl
Ykluc3BlY3Rvci9XZWJJbnNwZWN0b3IubQkocmV2aXNpb24gMTU2OTcpCisrKyBXZWJLaXQvV2Vi
SW5zcGVjdG9yL1dlYkluc3BlY3Rvci5tCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxNyArMjksMTgg
QEAKICNpbXBvcnQgIldlYkluc3BlY3Rvci5oIgogI2ltcG9ydCAiV2ViSW5zcGVjdG9ySW50ZXJu
YWwuaCIKIAotI2ltcG9ydCAiV2ViSW5zcGVjdG9yUGFuZWwuaCIKLSNpbXBvcnQgIldlYkluc3Bl
Y3Rvck91dGxpbmVWaWV3LmgiCi0jaW1wb3J0ICJXZWJOb2RlSGlnaGxpZ2h0LmgiCi0jaW1wb3J0
ICJXZWJWaWV3LmgiCi0jaW1wb3J0ICJXZWJWaWV3UHJpdmF0ZS5oIgotI2ltcG9ydCAiV2ViSFRN
TFZpZXcuaCIKICNpbXBvcnQgIldlYkZyYW1lLmgiCiAjaW1wb3J0ICJXZWJGcmFtZUludGVybmFs
LmgiCi0jaW1wb3J0ICJXZWJMb2NhbGl6YWJsZVN0cmluZ3MuaCIKKyNpbXBvcnQgIldlYkhUTUxW
aWV3LmgiCisjaW1wb3J0ICJXZWJJbnNwZWN0b3JPdXRsaW5lVmlldy5oIgorI2ltcG9ydCAiV2Vi
SW5zcGVjdG9yUGFuZWwuaCIKICNpbXBvcnQgIldlYktpdE5TU3RyaW5nRXh0cmFzLmgiCisjaW1w
b3J0ICJXZWJMb2NhbGl6YWJsZVN0cmluZ3MuaCIKKyNpbXBvcnQgIldlYk5vZGVIaWdobGlnaHQu
aCIKKyNpbXBvcnQgIldlYlByZWZlcmVuY2VzLmgiCiAjaW1wb3J0ICJXZWJUeXBlc0ludGVybmFs
LmgiCisjaW1wb3J0ICJXZWJWaWV3LmgiCisjaW1wb3J0ICJXZWJWaWV3UHJpdmF0ZS5oIgogCiAj
aW1wb3J0IDxXZWJLaXQvRE9NQ29yZS5oPgogI2ltcG9ydCA8V2ViS2l0L0RPTUhUTUwuaD4KQEAg
LTU4LDExICs1OSwxMyBAQCBzdGF0aWMgTlNNYXBUYWJsZSAqbGFzdENoaWxkSWdub3JpbmdXaGl0
CiAjcHJhZ21hIG1hcmsgLQogCiBAaW1wbGVtZW50YXRpb24gV2ViSW5zcGVjdG9yCisKICsgKFdl
Ykluc3BlY3RvciAqKXNoYXJlZFdlYkluc3BlY3RvcgogewogICAgIHN0YXRpYyBXZWJJbnNwZWN0
b3IgKl9zaGFyZWRXZWJJbnNwZWN0b3IgPSBuaWw7CiAgICAgaWYgKCFfc2hhcmVkV2ViSW5zcGVj
dG9yKSB7Ci0gICAgICAgIF9zaGFyZWRXZWJJbnNwZWN0b3IgPSBbW3NlbGYgYWxsb2NdIGluaXRX
aXRoV2ViRnJhbWU6bmlsXTsKKyAgICAgICAgX3NoYXJlZFdlYkluc3BlY3RvciA9IFtbW3NlbGYg
YWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXTsKKyAgICAgICAgQ0ZSZXRhaW4oX3NoYXJlZFdlYklu
c3BlY3Rvcik7CiAgICAgICAgIF9zaGFyZWRXZWJJbnNwZWN0b3ItPl9wcml2YXRlLT5pc1NoYXJl
ZEluc3BlY3RvciA9IFlFUzsKICAgICB9CiAgICAgcmV0dXJuIF9zaGFyZWRXZWJJbnNwZWN0b3I7
CkBAIC05Myw3ICs5Niw2IEBAIHN0YXRpYyBOU01hcFRhYmxlICpsYXN0Q2hpbGRJZ25vcmluZ1do
aXQKIAogLSAodm9pZClkZWFsbG9jCiB7Ci0gICAgW3NlbGYgY2xvc2VdOwogICAgIFtfcHJpdmF0
ZSByZWxlYXNlXTsKICAgICBbc3VwZXIgZGVhbGxvY107CiB9CkBAIC0xMDQsNyArMTA2LDggQEAg
c3RhdGljIE5TTWFwVGFibGUgKmxhc3RDaGlsZElnbm9yaW5nV2hpdAogewogICAgIE5TV2luZG93
ICp3aW5kb3cgPSBbc3VwZXIgd2luZG93XTsKICAgICBpZiAoIXdpbmRvdykgewotICAgICAgICBO
U1BhbmVsICp3aW5kb3cgPSBbW1dlYkluc3BlY3RvclBhbmVsIGFsbG9jXSBpbml0V2l0aENvbnRl
bnRSZWN0Ok5TTWFrZVJlY3QoNjAuMCwgMjAwLjAsIDM1MC4wLCA1NTAuMCkgc3R5bGVNYXNrOihO
U0JvcmRlcmxlc3NXaW5kb3dNYXNrIHwgTlNVdGlsaXR5V2luZG93TWFzaykgYmFja2luZzpOU0Jh
Y2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU107CisgICAgICAgIE5TUGFuZWwgKndpbmRvdyA9
IFtbV2ViSW5zcGVjdG9yUGFuZWwgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNNYWtlUmVj
dCg2MC4wLCAyMDAuMCwgMzUwLjAsIDU1MC4wKVwKKyAgICAgICAgICAgIHN0eWxlTWFzazooTlNC
b3JkZXJsZXNzV2luZG93TWFzayB8IE5TVXRpbGl0eVdpbmRvd01hc2spIGJhY2tpbmc6TlNCYWNr
aW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdOwogICAgICAgICBbd2luZG93IHNldEJhY2tncm91
bmRDb2xvcjpbTlNDb2xvciBjbGVhckNvbG9yXV07CiAgICAgICAgIFt3aW5kb3cgc2V0T3BhcXVl
Ok5PXTsKICAgICAgICAgW3dpbmRvdyBzZXRIYXNTaGFkb3c6WUVTXTsKQEAgLTExOSwxNCArMTIy
LDIzIEBAIHN0YXRpYyBOU01hcFRhYmxlICpsYXN0Q2hpbGRJZ25vcmluZ1doaXQKICAgICAgICAg
W3dpbmRvdyBzZXREZWxlZ2F0ZTpzZWxmXTsKICAgICAgICAgW3dpbmRvdyBzZXRNaW5TaXplOk5T
TWFrZVNpemUoMjgwLjAsIDQ1MC4wKV07CiAKKyAgICAgICAgLy8gS2VlcCBwcmVmZXJlbmNlcyBz
ZXBhcmF0ZSBmcm9tIHRoZSByZXN0IG9mIHRoZSBjbGllbnQuCisgICAgICAgIC8vIE9uZSByZWFz
b24gdGhpcyBpcyBnb29kIGlzIHRoYXQgaXQga2VlcHMgdGhlIGluc3BlY3RvciBvdXQgb2YgaGlz
dG9yeSB2aWEgInByaXZhdGUgYnJvd3NpbmciLgorICAgICAgICBXZWJQcmVmZXJlbmNlcyAqcHJl
ZmVyZW5jZXMgPSBbW1dlYlByZWZlcmVuY2VzIGFsbG9jXSBpbml0XTsKKyAgICAgICAgW3ByZWZl
cmVuY2VzIHNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQ6WUVTXTsKKwogICAgICAgICBfcHJpdmF0
ZS0+d2ViVmlldyA9IFtbV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpbW3dpbmRvdyBjb250
ZW50Vmlld10gZnJhbWVdIGZyYW1lTmFtZTpuaWwgZ3JvdXBOYW1lOm5pbF07CisgICAgICAgIFtf
cHJpdmF0ZS0+d2ViVmlldyBzZXRQcmVmZXJlbmNlczpwcmVmZXJlbmNlc107CiAgICAgICAgIFtf
cHJpdmF0ZS0+d2ViVmlldyBzZXRGcmFtZUxvYWREZWxlZ2F0ZTpzZWxmXTsKICAgICAgICAgW19w
cml2YXRlLT53ZWJWaWV3IHNldFVJRGVsZWdhdGU6c2VsZl07CiAgICAgICAgIFtfcHJpdmF0ZS0+
d2ViVmlldyBzZXREcmF3c0JhY2tncm91bmQ6Tk9dOworICAgICAgICBbX3ByaXZhdGUtPndlYlZp
ZXcgc2V0UHJvaGliaXRzTWFpbkZyYW1lU2Nyb2xsaW5nOllFU107CiAgICAgICAgIFtfcHJpdmF0
ZS0+d2ViVmlldyBfc2V0RGFzaGJvYXJkQmVoYXZpb3I6V2ViRGFzaGJvYXJkQmVoYXZpb3JBbHdh
eXNTZW5kTW91c2VFdmVudHNUb0FsbFdpbmRvd3MgdG86WUVTXTsKICAgICAgICAgW19wcml2YXRl
LT53ZWJWaWV3IF9zZXREYXNoYm9hcmRCZWhhdmlvcjpXZWJEYXNoYm9hcmRCZWhhdmlvckFsd2F5
c0FjY2VwdHNGaXJzdE1vdXNlIHRvOllFU107CiAgICAgICAgIFtbX3ByaXZhdGUtPndlYlZpZXcg
d2luZG93U2NyaXB0T2JqZWN0XSBzZXRWYWx1ZTpzZWxmIGZvcktleTpAIkluc3BlY3RvciJdOwog
CisgICAgICAgIFtwcmVmZXJlbmNlcyByZWxlYXNlXTsKKwogICAgICAgICBbd2luZG93IHNldENv
bnRlbnRWaWV3Ol9wcml2YXRlLT53ZWJWaWV3XTsKIAogICAgICAgICBOU1N0cmluZyAqcGF0aCA9
IFtbTlNCdW5kbGUgYnVuZGxlRm9yQ2xhc3M6W3NlbGYgY2xhc3NdXSBwYXRoRm9yUmVzb3VyY2U6
QCJpbnNwZWN0b3IiIG9mVHlwZTpAImh0bWwiIGluRGlyZWN0b3J5OkAid2ViSW5zcGVjdG9yIl07
CkBAIC0yNDcsNyArMjU5LDcgQEAgc3RhdGljIE5TTWFwVGFibGUgKmxhc3RDaGlsZElnbm9yaW5n
V2hpdAogCiAgICAgICAgICAgICAvLyBvbmx5IHNjcm9sbCBpZiB0aGUgYm91bmRzIGlzbid0IGlu
IHRoZSB2aXNpYmxlIHJlY3QgYW5kIGRvc2VuJ3QgY29udGFpbiB0aGUgdmlzaWJsZSByZWN0CiAg
ICAgICAgICAgICBpZiAobmVlZHNTY3JvbGwpIHsKLSAgICAgICAgICAgICAgICAvLyBzY3JvbGwg
dG8gdGhlIHBhcmVudCBlbGVtZW50IGlmIHdlIGFybid0IGZvY3VlZCBvbiBhbiBlbGVtZW50Cisg
ICAgICAgICAgICAgICAgLy8gc2Nyb2xsIHRvIHRoZSBwYXJlbnQgZWxlbWVudCBpZiB3ZSBhcmVu
J3QgZm9jdXNlZCBvbiBhbiBlbGVtZW50CiAgICAgICAgICAgICAgICAgRE9NRWxlbWVudCAqZWxl
bWVudCA9IChET01FbGVtZW50ICopX3ByaXZhdGUtPmZvY3VzZWROb2RlOwogICAgICAgICAgICAg
ICAgIGlmICghW2VsZW1lbnQgaXNLaW5kT2ZDbGFzczpbRE9NRWxlbWVudCBjbGFzc11dKQogICAg
ICAgICAgICAgICAgICAgICBlbGVtZW50ID0gKERPTUVsZW1lbnQgKilbZWxlbWVudCBwYXJlbnRO
b2RlXTsKSW5kZXg6IFdlYktpdC9XZWJJbnNwZWN0b3Ivd2ViSW5zcGVjdG9yL2luc3BlY3Rvci5j
c3MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0L1dlYkluc3BlY3Rvci93ZWJJbnNwZWN0b3IvaW5zcGVj
dG9yLmNzcwkocmV2aXNpb24gMTU2OTcpCisrKyBXZWJLaXQvV2ViSW5zcGVjdG9yL3dlYkluc3Bl
Y3Rvci9pbnNwZWN0b3IuY3NzCSh3b3JraW5nIGNvcHkpCkBAIC04MjYsMyArODI2LDUyIEBAIGJ1
dHRvbi50b2dnbGUucmlnaHQgewogLnRyZWVMaXN0IGxpLm92ZXJsb2FkZWQgewogICAgIHRleHQt
ZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOwogfQorCisuY29sb3JTd2F0Y2ggeworICAgIGRpc3Bs
YXk6IGlubGluZS1ibG9jazsKKyAgICBtYXJnaW4tbGVmdDogNHB4OworICAgIHdpZHRoOiA3cHg7
CisgICAgaGVpZ2h0OiA3cHg7CisgICAgYm9yZGVyOiAxcHggc29saWQgcmdiKDE4MCwxODAsMTEy
KTsKK30KKworI3Byb3BlcnRpZXNQYW5lIHsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAg
ICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsOworfQorCisjanNQcm9wZXJ0aWVzIHsKKyAg
ICAtd2Via2l0LWJveC1mbGV4OiAxOworICAgIC13ZWJraXQtZGFzaGJvYXJkLXJlZ2lvbjogZGFz
aGJvYXJkLXJlZ2lvbihjb250cm9sIHJlY3RhbmdsZSk7Cit9CisKKy5wcm9wZXJ0eUxpc3Qgewor
ICAgIHBhZGRpbmc6IDA7CisgICAgbWFyZ2luOiAwOworICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9u
ZTsKKyAgICB3aGl0ZS1zcGFjZTogbm93cmFwOworfQorCisucHJvcGVydHlMaXN0IHVsIHsKKyAg
ICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7CisgICAgLXdlYmtpdC1wYWRkaW5nLXN0YXJ0OiAxMHB4
OworfQorCisucHJvcGVydHlMaXN0IGxpIHsKKyAgICBsaW5lLWhlaWdodDogMTRweDsKKyAgICBo
ZWlnaHQ6IDE2cHg7CisgICAgb3ZlcmZsb3c6IGhpZGRlbjsKKyAgICB0ZXh0LW92ZXJmbG93OiBl
bGxpcHNpczsKK30KKworLnByb3BlcnR5TGlzdCBsaSBzcGFuIHsKKyAgICAtd2Via2l0LXVzZXIt
c2VsZWN0OiB0ZXh0OworfQorCisucHJvcGVydHlMaXN0IGxpIC5wcm9wZXJ0eTo6YWZ0ZXIgewor
ICAgIGNvbnRlbnQ6ICI6ICI7Cit9CisKKy5wcm9wZXJ0eUxpc3QgbGkgLnZhbHVlIHsKKyAgICBj
b2xvcjogcmdiKDI1NSwyNTUsMTgwKTsKK30KSW5kZXg6IFdlYktpdC9XZWJJbnNwZWN0b3Ivd2Vi
SW5zcGVjdG9yL2luc3BlY3Rvci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9XZWJJbnNwZWN0
b3Ivd2ViSW5zcGVjdG9yL2luc3BlY3Rvci5odG1sCShyZXZpc2lvbiAxNTY5NykKKysrIFdlYktp
dC9XZWJJbnNwZWN0b3Ivd2ViSW5zcGVjdG9yL2luc3BlY3Rvci5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC05Niw3ICs5Niw2IEBAIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE8KICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICA8L2Rpdj4KICAgICA8L2Rpdj4KLSAgICA8
ZGl2IGlkPSJtZXRyaWNzUGFuZSIgY2xhc3M9InBhbmUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyB0
ZXh0LWFsaWduOiBjZW50ZXIiPjxiciAvPjxiciAvPjxiciAvPihub3QgZmluaXNoZWQpPC9kaXY+
CiAgICAgPGRpdiBpZD0ic3R5bGVQYW5lIiBjbGFzcz0icGFuZSIgc3R5bGU9ImRpc3BsYXk6IG5v
bmUiPgogICAgICAgICA8ZGl2IGlkPSJub1N0eWxlIiBzdHlsZT0iZGlzcGxheTogbm9uZSI+PC9k
aXY+CiAgICAgICAgIDxkaXYgaWQ9InN0eWxlUnVsZXMiIGNsYXNzPSJzY3JvbGxBcmVhIj4KQEAg
LTEwOCw3ICsxMDcsMTMgQEAgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
TwogICAgICAgICAgICAgPGRpdiBpZD0ic3R5bGVQcm9wZXJ0aWVzU2Nyb2xsYmFyIiBjbGFzcz0i
c2Nyb2xsYmFyIj48L2Rpdj4KICAgICAgICAgPC9kaXY+CiAgICAgPC9kaXY+Ci0gICAgPGRpdiBp
ZD0icHJvcGVydGllc1BhbmUiIGNsYXNzPSJwYW5lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsgdGV4
dC1hbGlnbjogY2VudGVyIj48YnIgLz48YnIgLz48YnIgLz4obm90IGZpbmlzaGVkKTwvZGl2Pgor
ICAgIDxkaXYgaWQ9Im1ldHJpY3NQYW5lIiBjbGFzcz0icGFuZSIgc3R5bGU9ImRpc3BsYXk6IG5v
bmU7IHRleHQtYWxpZ246IGNlbnRlciI+PGJyIC8+PGJyIC8+PGJyIC8+KG5vdCBmaW5pc2hlZCk8
L2Rpdj4KKyAgICA8ZGl2IGlkPSJwcm9wZXJ0aWVzUGFuZSIgY2xhc3M9InBhbmUiIHN0eWxlPSJk
aXNwbGF5OiBub25lIj4KKyAgICAgICAgPGRpdiBpZD0ianNQcm9wZXJ0aWVzIiBjbGFzcz0ic2Ny
b2xsQXJlYSI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ2aWV3Ij48ZGl2IGlkPSJqc1Byb3Bl
cnRpZXNTY3JvbGx2aWV3Ij48dWwgY2xhc3M9InByb3BlcnR5TGlzdCIgaWQ9ImpzUHJvcGVydGll
c0xpc3QiPjwvdWw+PC9kaXY+PC9kaXY+CisgICAgICAgICAgICA8ZGl2IGlkPSJqc1Byb3BlcnRp
ZXNTY3JvbGxiYXIiIGNsYXNzPSJzY3JvbGxiYXIiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAg
ICA8L2Rpdj4KIDwvZGl2PgogPGRpdiBpZD0icmVzaXplIj48L2Rpdj4KIDwvZGl2PgpJbmRleDog
V2ViS2l0L1dlYkluc3BlY3Rvci93ZWJJbnNwZWN0b3IvaW5zcGVjdG9yLmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdC9XZWJJbnNwZWN0b3Ivd2ViSW5zcGVjdG9yL2luc3BlY3Rvci5qcwkocmV2aXNp
b24gMTU2OTcpCisrKyBXZWJLaXQvV2ViSW5zcGVjdG9yL3dlYkluc3BlY3Rvci9pbnNwZWN0b3Iu
anMJKHdvcmtpbmcgY29weSkKQEAgLTI4LDU2ICsyOCwxNDggQEAKIAogdmFyIEluc3BlY3RvciA9
IG51bGw7CiAKKy8vIFByb3BlcnR5IHZhbHVlcyB0byBvbWl0IGluIHRoZSBjb21wdXRlZCBzdHls
ZSBsaXN0LgorLy8gSWYgYSBwcm9wZXJ0eSBoYXMgdGhpcyB2YWx1ZSwgaXQgd2lsbCBiZSBvbWl0
dGVkLgorLy8gTm90ZSB3ZSBkbyBub3QgcHJvdmlkZSBhIHZhbHVlIGZvciAiZGlzcGxheSIsICJo
ZWlnaHQiLCBvciAid2lkdGgiLCBmb3IgZXhhbXBsZSwKKy8vIHNpbmNlIHdlIGFsd2F5cyB3YW50
IHRvIGRpc3BsYXkgdGhvc2UuCit2YXIgdHlwaWNhbFN0eWxlUHJvcGVydHlWYWx1ZSA9IHsKKyAg
ICAiLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXAiOiAiYm9yZGVyIiwKKyAgICAiLXdlYmtpdC1iYWNr
Z3JvdW5kLWNvbXBvc2l0ZSI6ICJzb3VyY2Utb3ZlciIsCisgICAgIi13ZWJraXQtYmFja2dyb3Vu
ZC1vcmlnaW4iOiAicGFkZGluZyIsCisgICAgIi13ZWJraXQtYmFja2dyb3VuZC1zaXplIjogImF1
dG8gYXV0byIsCisgICAgIi13ZWJraXQtYm9yZGVyLWhvcml6b250YWwtc3BhY2luZyI6ICIwcHgi
LAorICAgICItd2Via2l0LWJvcmRlci12ZXJ0aWNhbC1zcGFjaW5nIjogIjBweCIsCisgICAgIi13
ZWJraXQtYm94LWFsaWduIjogInN0cmV0Y2giLAorICAgICItd2Via2l0LWJveC1kaXJlY3Rpb24i
OiAibm9ybWFsIiwKKyAgICAiLXdlYmtpdC1ib3gtZmxleCI6ICIwIiwKKyAgICAiLXdlYmtpdC1i
b3gtZmxleC1ncm91cCI6ICIxIiwKKyAgICAiLXdlYmtpdC1ib3gtbGluZXMiOiAic2luZ2xlIiwK
KyAgICAiLXdlYmtpdC1ib3gtb3JkaW5hbC1ncm91cCI6ICIxIiwKKyAgICAiLXdlYmtpdC1ib3gt
b3JpZW50IjogImhvcml6b250YWwiLAorICAgICItd2Via2l0LWJveC1wYWNrIjogInN0YXJ0IiwK
KyAgICAiLXdlYmtpdC1oaWdobGlnaHQiOiAibm9uZSIsCisgICAgIi13ZWJraXQtbGluZS1icmVh
ayI6ICJub3JtYWwiLAorICAgICItd2Via2l0LWxpbmUtY2xhbXAiOiAibm9uZSIsCisgICAgIi13
ZWJraXQtbWFycXVlZS1kaXJlY3Rpb24iOiAiYXV0byIsCisgICAgIi13ZWJraXQtbWFycXVlZS1p
bmNyZW1lbnQiOiAiNnB4IiwKKyAgICAiLXdlYmtpdC1tYXJxdWVlLXJlcGV0aXRpb24iOiAiaW5m
aW5pdGUiLAorICAgICItd2Via2l0LW1hcnF1ZWUtc3R5bGUiOiAic2Nyb2xsIiwKKyAgICAiLXdl
YmtpdC1uYnNwLW1vZGUiOiAibm9ybWFsIiwKKyAgICAiLXdlYmtpdC10ZXh0LWRlY29yYXRpb25z
LWluLWVmZmVjdCI6ICJub25lIiwKKyAgICAiLXdlYmtpdC11c2VyLW1vZGlmeSI6ICJyZWFkLW9u
bHkiLAorICAgICJiYWNrZ3JvdW5kLWF0dGFjaG1lbnQiOiAic2Nyb2xsIiwKKyAgICAiYmFja2dy
b3VuZC1jb2xvciI6ICJyZ2JhKDAsIDAsIDAsIDApIiwKKyAgICAiYmFja2dyb3VuZC1pbWFnZSI6
ICJub25lIiwKKyAgICAiYmFja2dyb3VuZC1wb3NpdGlvbi14IjogImF1dG8iLAorICAgICJiYWNr
Z3JvdW5kLXBvc2l0aW9uLXkiOiAiYXV0byIsCisgICAgImJhY2tncm91bmQtcmVwZWF0IjogInJl
cGVhdCIsCisgICAgImJvcmRlci1ib3R0b20tY29sb3IiOiAicmdiYSgwLCAwLCAwLCAwKSIsCisg
ICAgImJvcmRlci1ib3R0b20tc3R5bGUiOiAibm9uZSIsCisgICAgImJvcmRlci1ib3R0b20td2lk
dGgiOiAiMHB4IiwKKyAgICAiYm9yZGVyLWNvbGxhcHNlIjogInNlcGFyYXRlIiwKKyAgICAiYm9y
ZGVyLWxlZnQtY29sb3IiOiAicmdiYSgwLCAwLCAwLCAwKSIsCisgICAgImJvcmRlci1sZWZ0LXN0
eWxlIjogIm5vbmUiLAorICAgICJib3JkZXItbGVmdC13aWR0aCI6ICIwcHgiLAorICAgICJib3Jk
ZXItcmlnaHQtY29sb3IiOiAicmdiYSgwLCAwLCAwLCAwKSIsCisgICAgImJvcmRlci1yaWdodC1z
dHlsZSI6ICJub25lIiwKKyAgICAiYm9yZGVyLXJpZ2h0LXdpZHRoIjogIjBweCIsCisgICAgImJv
cmRlci10b3AtY29sb3IiOiAicmdiYSgwLCAwLCAwLCAwKSIsCisgICAgImJvcmRlci10b3Atc3R5
bGUiOiAibm9uZSIsCisgICAgImJvcmRlci10b3Atd2lkdGgiOiAiMHB4IiwKKyAgICAiYm90dG9t
IjogImF1dG8iLAorICAgICJjYXB0aW9uLXNpZGUiOiAidG9wIiwKKyAgICAiY2xlYXIiOiAibm9u
ZSIsCisgICAgImNvbG9yIjogInJnYigwLCAwLCAwKSIsCisgICAgImN1cnNvciI6ICJhdXRvIiwK
KyAgICAiZGlyZWN0aW9uIjogImx0ciIsCisgICAgImVtcHR5LWNlbGxzIjogInNob3ciLAorICAg
ICJmbG9hdCI6ICJub25lIiwKKyAgICAiZm9udC1zdHlsZSI6ICJub3JtYWwiLAorICAgICJmb250
LXZhcmlhbnQiOiAibm9ybWFsIiwKKyAgICAiZm9udC13ZWlnaHQiOiAibm9ybWFsIiwKKyAgICAi
bGVmdCI6ICJhdXRvIiwKKyAgICAibGV0dGVyLXNwYWNpbmciOiAibm9ybWFsIiwKKyAgICAibGlu
ZS1oZWlnaHQiOiAibm9ybWFsIiwKKyAgICAibGlzdC1zdHlsZS1pbWFnZSI6ICJub25lIiwKKyAg
ICAibGlzdC1zdHlsZS1wb3NpdGlvbiI6ICJvdXRzaWRlIiwKKyAgICAibGlzdC1zdHlsZS10eXBl
IjogImRpc2MiLAorICAgICJtYXJnaW4tYm90dG9tIjogIjBweCIsCisgICAgIm1hcmdpbi1sZWZ0
IjogIjBweCIsCisgICAgIm1hcmdpbi1yaWdodCI6ICIwcHgiLAorICAgICJtYXJnaW4tdG9wIjog
IjBweCIsCisgICAgIm1heC1oZWlnaHQiOiAibm9uZSIsCisgICAgIm1heC13aWR0aCI6ICJub25l
IiwKKyAgICAibWluLWhlaWdodCI6ICIwcHgiLAorICAgICJtaW4td2lkdGgiOiAiMHB4IiwKKyAg
ICAib3BhY2l0eSI6ICIxIiwKKyAgICAib3JwaGFucyI6ICIyIiwKKyAgICAib3V0bGluZS1zdHls
ZSI6ICJub25lIiwKKyAgICAib3ZlcmZsb3ciOiAidmlzaWJsZSIsCisgICAgIm92ZXJmbG93LXgi
OiAidmlzaWJsZSIsCisgICAgIm92ZXJmbG93LXkiOiAidmlzaWJsZSIsCisgICAgInBhZGRpbmct
Ym90dG9tIjogIjBweCIsCisgICAgInBhZGRpbmctbGVmdCI6ICIwcHgiLAorICAgICJwYWRkaW5n
LXJpZ2h0IjogIjBweCIsCisgICAgInBhZGRpbmctdG9wIjogIjBweCIsCisgICAgInBhZ2UtYnJl
YWstYWZ0ZXIiOiAiYXV0byIsCisgICAgInBhZ2UtYnJlYWstYmVmb3JlIjogImF1dG8iLAorICAg
ICJwYWdlLWJyZWFrLWluc2lkZSI6ICJhdXRvIiwKKyAgICAicG9zaXRpb24iOiAic3RhdGljIiwK
KyAgICAicmlnaHQiOiAiYXV0byIsCisgICAgInRhYmxlLWxheW91dCI6ICJhdXRvIiwKKyAgICAi
dGV4dC1hbGlnbiI6ICJhdXRvIiwKKyAgICAidGV4dC1kZWNvcmF0aW9uIjogIm5vbmUiLAorICAg
ICJ0ZXh0LWluZGVudCI6ICIwcHgiLAorICAgICJ0ZXh0LXNoYWRvdyI6ICJub25lIiwKKyAgICAi
dGV4dC10cmFuc2Zvcm0iOiAibm9uZSIsCisgICAgInRvcCI6ICJhdXRvIiwKKyAgICAidW5pY29k
ZS1iaWRpIjogIm5vcm1hbCIsCisgICAgInZlcnRpY2FsLWFsaWduIjogImJhc2VsaW5lIiwKKyAg
ICAidmlzaWJpbGl0eSI6ICJ2aXNpYmxlIiwKKyAgICAid2hpdGUtc3BhY2UiOiAibm9ybWFsIiwK
KyAgICAid2lkb3dzIjogIjIiLAorICAgICJ3b3JkLXNwYWNpbmciOiAiMHB4IiwKKyAgICAid29y
ZC13cmFwIjogIm5vcm1hbCIsCisgICAgInotaW5kZXgiOiAibm9ybWFsIiwKK307CisKKy8vICJO
aWNrbmFtZXMiIGZvciBzb21lIGNvbW1vbiB2YWx1ZXMgdGhhdCBhcmUgZWFzaWVyIHRvIHJlYWQu
Cit2YXIgdmFsdWVOaWNrbmFtZSA9IHsKKyAgICAicmdiKDAsIDAsIDApIjogImJsYWNrIiwKKyAg
ICAicmdiKDI1NSwgMjU1LCAyNTUpIjogIndoaXRlIiwKKyAgICAicmdiYSgwLCAwLCAwLCAwKSI6
ICJ0cmFuc3BhcmVudCIsCit9OworCitmdW5jdGlvbiBzZXRVcFNjcm9sbGJhcihpZCkKK3sKKyAg
ICB2YXIgYmFyID0gbmV3IEFwcGxlVmVydGljYWxTY3JvbGxiYXIoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoaWQpKTsKKworICAgIGJhci5zZXRUcmFja1N0YXJ0KCJJbWFnZXMvc2Nyb2xsVHJhY2tU
b3AucG5nIiwgMTgpOworICAgIGJhci5zZXRUcmFja01pZGRsZSgiSW1hZ2VzL3Njcm9sbFRyYWNr
TWlkZGxlLnBuZyIpOworICAgIGJhci5zZXRUcmFja0VuZCgiSW1hZ2VzL3Njcm9sbFRyYWNrQm90
dG9tLnBuZyIsIDE4KTsKKyAgICBiYXIuc2V0VGh1bWJTdGFydCgiSW1hZ2VzL3Njcm9sbFRodW1i
VG9wLnBuZyIsIDkpOworICAgIGJhci5zZXRUaHVtYk1pZGRsZSgiSW1hZ2VzL3Njcm9sbFRodW1i
TWlkZGxlLnBuZyIpOworICAgIGJhci5zZXRUaHVtYkVuZCgiSW1hZ2VzL3Njcm9sbFRodW1iQm90
dG9tLnBuZyIsIDkpOworCisgICAgcmV0dXJuIGJhcjsKK30KKwogZnVuY3Rpb24gbG9hZGVkKCkK
IHsKLSAgICB0cmVlU2Nyb2xsYmFyID0gbmV3IEFwcGxlVmVydGljYWxTY3JvbGxiYXIoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRyZWVTY3JvbGxiYXIiKSk7Ci0KLSAgICB0cmVlU2Nyb2xsYmFy
LnNldFRyYWNrU3RhcnQoIkltYWdlcy9zY3JvbGxUcmFja1RvcC5wbmciLCAxOCk7Ci0gICAgdHJl
ZVNjcm9sbGJhci5zZXRUcmFja01pZGRsZSgiSW1hZ2VzL3Njcm9sbFRyYWNrTWlkZGxlLnBuZyIp
OwotICAgIHRyZWVTY3JvbGxiYXIuc2V0VHJhY2tFbmQoIkltYWdlcy9zY3JvbGxUcmFja0JvdHRv
bS5wbmciLCAxOCk7Ci0gICAgdHJlZVNjcm9sbGJhci5zZXRUaHVtYlN0YXJ0KCJJbWFnZXMvc2Ny
b2xsVGh1bWJUb3AucG5nIiwgOSk7Ci0gICAgdHJlZVNjcm9sbGJhci5zZXRUaHVtYk1pZGRsZSgi
SW1hZ2VzL3Njcm9sbFRodW1iTWlkZGxlLnBuZyIpOwotICAgIHRyZWVTY3JvbGxiYXIuc2V0VGh1
bWJFbmQoIkltYWdlcy9zY3JvbGxUaHVtYkJvdHRvbS5wbmciLCA5KTsKLQotICAgIG5vZGVDb250
ZW50c1Njcm9sbGJhciA9IG5ldyBBcHBsZVZlcnRpY2FsU2Nyb2xsYmFyKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJub2RlQ29udGVudHNTY3JvbGxiYXIiKSk7Ci0gICAgbm9kZUNvbnRlbnRzU2Ny
b2xsQXJlYSA9IG5ldyBBcHBsZVNjcm9sbEFyZWEoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5v
ZGVDb250ZW50c1Njcm9sbHZpZXciKSwgbm9kZUNvbnRlbnRzU2Nyb2xsYmFyKTsKLQotICAgIG5v
ZGVDb250ZW50c1Njcm9sbGJhci5zZXRUcmFja1N0YXJ0KCJJbWFnZXMvc2Nyb2xsVHJhY2tUb3Au
cG5nIiwgMTgpOwotICAgIG5vZGVDb250ZW50c1Njcm9sbGJhci5zZXRUcmFja01pZGRsZSgiSW1h
Z2VzL3Njcm9sbFRyYWNrTWlkZGxlLnBuZyIpOwotICAgIG5vZGVDb250ZW50c1Njcm9sbGJhci5z
ZXRUcmFja0VuZCgiSW1hZ2VzL3Njcm9sbFRyYWNrQm90dG9tLnBuZyIsIDE4KTsKLSAgICBub2Rl
Q29udGVudHNTY3JvbGxiYXIuc2V0VGh1bWJTdGFydCgiSW1hZ2VzL3Njcm9sbFRodW1iVG9wLnBu
ZyIsIDkpOwotICAgIG5vZGVDb250ZW50c1Njcm9sbGJhci5zZXRUaHVtYk1pZGRsZSgiSW1hZ2Vz
L3Njcm9sbFRodW1iTWlkZGxlLnBuZyIpOwotICAgIG5vZGVDb250ZW50c1Njcm9sbGJhci5zZXRU
aHVtYkVuZCgiSW1hZ2VzL3Njcm9sbFRodW1iQm90dG9tLnBuZyIsIDkpOworICAgIHRyZWVTY3Jv
bGxiYXIgPSBzZXRVcFNjcm9sbGJhcigidHJlZVNjcm9sbGJhciIpOwogCi0gICAgZWxlbWVudEF0
dHJpYnV0ZXNTY3JvbGxiYXIgPSBuZXcgQXBwbGVWZXJ0aWNhbFNjcm9sbGJhcihkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiZWxlbWVudEF0dHJpYnV0ZXNTY3JvbGxiYXIiKSk7Ci0gICAgZWxlbWVu
dEF0dHJpYnV0ZXNTY3JvbGxBcmVhID0gbmV3IEFwcGxlU2Nyb2xsQXJlYShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiZWxlbWVudEF0dHJpYnV0ZXNTY3JvbGx2aWV3IiksIGVsZW1lbnRBdHRyaWJ1
dGVzU2Nyb2xsYmFyKTsKKyAgICBub2RlQ29udGVudHNTY3JvbGxBcmVhID0gbmV3IEFwcGxlU2Ny
b2xsQXJlYShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm9kZUNvbnRlbnRzU2Nyb2xsdmlldyIp
LAorICAgICAgICBzZXRVcFNjcm9sbGJhcigibm9kZUNvbnRlbnRzU2Nyb2xsYmFyIikpOworICAg
IGVsZW1lbnRBdHRyaWJ1dGVzU2Nyb2xsQXJlYSA9IG5ldyBBcHBsZVNjcm9sbEFyZWEoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImVsZW1lbnRBdHRyaWJ1dGVzU2Nyb2xsdmlldyIpLAorICAgICAg
ICBzZXRVcFNjcm9sbGJhcigiZWxlbWVudEF0dHJpYnV0ZXNTY3JvbGxiYXIiKSk7CiAgICAgCi0g
ICAgZWxlbWVudEF0dHJpYnV0ZXNTY3JvbGxiYXIuc2V0VHJhY2tTdGFydCgiSW1hZ2VzL3Njcm9s
bFRyYWNrVG9wLnBuZyIsIDE4KTsKLSAgICBlbGVtZW50QXR0cmlidXRlc1Njcm9sbGJhci5zZXRU
cmFja01pZGRsZSgiSW1hZ2VzL3Njcm9sbFRyYWNrTWlkZGxlLnBuZyIpOwotICAgIGVsZW1lbnRB
dHRyaWJ1dGVzU2Nyb2xsYmFyLnNldFRyYWNrRW5kKCJJbWFnZXMvc2Nyb2xsVHJhY2tCb3R0b20u
cG5nIiwgMTgpOwotICAgIGVsZW1lbnRBdHRyaWJ1dGVzU2Nyb2xsYmFyLnNldFRodW1iU3RhcnQo
IkltYWdlcy9zY3JvbGxUaHVtYlRvcC5wbmciLCA5KTsKLSAgICBlbGVtZW50QXR0cmlidXRlc1Nj
cm9sbGJhci5zZXRUaHVtYk1pZGRsZSgiSW1hZ2VzL3Njcm9sbFRodW1iTWlkZGxlLnBuZyIpOwot
ICAgIGVsZW1lbnRBdHRyaWJ1dGVzU2Nyb2xsYmFyLnNldFRodW1iRW5kKCJJbWFnZXMvc2Nyb2xs
VGh1bWJCb3R0b20ucG5nIiwgOSk7Ci0gICAgCi0gICAgc3R5bGVSdWxlc1Njcm9sbGJhciA9IG5l
dyBBcHBsZVZlcnRpY2FsU2Nyb2xsYmFyKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdHlsZVJ1
bGVzU2Nyb2xsYmFyIikpOwotICAgIHN0eWxlUnVsZXNTY3JvbGxBcmVhID0gbmV3IEFwcGxlU2Ny
b2xsQXJlYShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3R5bGVSdWxlc1Njcm9sbHZpZXciKSwg
c3R5bGVSdWxlc1Njcm9sbGJhcik7CisgICAgc3R5bGVSdWxlc1Njcm9sbEFyZWEgPSBuZXcgQXBw
bGVTY3JvbGxBcmVhKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdHlsZVJ1bGVzU2Nyb2xsdmll
dyIpLAorICAgICAgICBzZXRVcFNjcm9sbGJhcigic3R5bGVSdWxlc1Njcm9sbGJhciIpKTsKKyAg
ICBzdHlsZVByb3BlcnRpZXNTY3JvbGxBcmVhID0gbmV3IEFwcGxlU2Nyb2xsQXJlYShkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgic3R5bGVQcm9wZXJ0aWVzU2Nyb2xsdmlldyIpLAorICAgICAgICBz
ZXRVcFNjcm9sbGJhcigic3R5bGVQcm9wZXJ0aWVzU2Nyb2xsYmFyIikpOwogCi0gICAgc3R5bGVS
dWxlc1Njcm9sbGJhci5zZXRUcmFja1N0YXJ0KCJJbWFnZXMvc2Nyb2xsVHJhY2tUb3AucG5nIiwg
MTgpOwotICAgIHN0eWxlUnVsZXNTY3JvbGxiYXIuc2V0VHJhY2tNaWRkbGUoIkltYWdlcy9zY3Jv
bGxUcmFja01pZGRsZS5wbmciKTsKLSAgICBzdHlsZVJ1bGVzU2Nyb2xsYmFyLnNldFRyYWNrRW5k
KCJJbWFnZXMvc2Nyb2xsVHJhY2tCb3R0b20ucG5nIiwgMTgpOwotICAgIHN0eWxlUnVsZXNTY3Jv
bGxiYXIuc2V0VGh1bWJTdGFydCgiSW1hZ2VzL3Njcm9sbFRodW1iVG9wLnBuZyIsIDkpOwotICAg
IHN0eWxlUnVsZXNTY3JvbGxiYXIuc2V0VGh1bWJNaWRkbGUoIkltYWdlcy9zY3JvbGxUaHVtYk1p
ZGRsZS5wbmciKTsKLSAgICBzdHlsZVJ1bGVzU2Nyb2xsYmFyLnNldFRodW1iRW5kKCJJbWFnZXMv
c2Nyb2xsVGh1bWJCb3R0b20ucG5nIiwgOSk7Ci0KLSAgICBzdHlsZVByb3BlcnRpZXNTY3JvbGxi
YXIgPSBuZXcgQXBwbGVWZXJ0aWNhbFNjcm9sbGJhcihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
c3R5bGVQcm9wZXJ0aWVzU2Nyb2xsYmFyIikpOwotICAgIHN0eWxlUHJvcGVydGllc1Njcm9sbEFy
ZWEgPSBuZXcgQXBwbGVTY3JvbGxBcmVhKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdHlsZVBy
b3BlcnRpZXNTY3JvbGx2aWV3IiksIHN0eWxlUHJvcGVydGllc1Njcm9sbGJhcik7Ci0KLSAgICBz
dHlsZVByb3BlcnRpZXNTY3JvbGxiYXIuc2V0VHJhY2tTdGFydCgiSW1hZ2VzL3Njcm9sbFRyYWNr
VG9wLnBuZyIsIDE4KTsKLSAgICBzdHlsZVByb3BlcnRpZXNTY3JvbGxiYXIuc2V0VHJhY2tNaWRk
bGUoIkltYWdlcy9zY3JvbGxUcmFja01pZGRsZS5wbmciKTsKLSAgICBzdHlsZVByb3BlcnRpZXNT
Y3JvbGxiYXIuc2V0VHJhY2tFbmQoIkltYWdlcy9zY3JvbGxUcmFja0JvdHRvbS5wbmciLCAxOCk7
Ci0gICAgc3R5bGVQcm9wZXJ0aWVzU2Nyb2xsYmFyLnNldFRodW1iU3RhcnQoIkltYWdlcy9zY3Jv
bGxUaHVtYlRvcC5wbmciLCA5KTsKLSAgICBzdHlsZVByb3BlcnRpZXNTY3JvbGxiYXIuc2V0VGh1
bWJNaWRkbGUoIkltYWdlcy9zY3JvbGxUaHVtYk1pZGRsZS5wbmciKTsKLSAgICBzdHlsZVByb3Bl
cnRpZXNTY3JvbGxiYXIuc2V0VGh1bWJFbmQoIkltYWdlcy9zY3JvbGxUaHVtYkJvdHRvbS5wbmci
LCA5KTsKKyAgICBqc1Byb3BlcnRpZXNTY3JvbGxBcmVhID0gbmV3IEFwcGxlU2Nyb2xsQXJlYShk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgianNQcm9wZXJ0aWVzU2Nyb2xsdmlldyIpLAorICAgICAg
ICBzZXRVcFNjcm9sbGJhcigianNQcm9wZXJ0aWVzU2Nyb2xsYmFyIikpOwogCiAgICAgdHJlZVNj
cm9sbGJhci5fZ2V0Vmlld1RvQ29udGVudFJhdGlvID0gZnVuY3Rpb24oKSB7CiAgICAgICAgIHZh
ciBjb250ZW50SGVpZ2h0ID0gSW5zcGVjdG9yLnRyZWVWaWV3U2Nyb2xsSGVpZ2h0KCk7CkBAIC0x
MzQsMTQgKzIyNiwxMyBAQCBmdW5jdGlvbiBsb2FkZWQoKQogICAgICAgICAgICAgdGhpcy5ob3Jp
em9udGFsU2Nyb2xsVG8ob2Zmc2V0WCk7CiAgICAgfQogCi0gICAgLy8gQ2hhbmdlIHRoZSBzdGFu
ZGFyZCBzaG93L2hpZGUgdG8gaW5jbHVkZSB0aGUgcGFyZW50Tm9kZS4KLSAgICAvLyBUaGlzIGxl
dHMgb3V0IGNvbnRlbnQgcmVmbG93IHdoZW4gaGlkZGVuLgorICAgIC8vIENoYW5nZSB0aGUgc3Rh
bmRhcmQgc2hvdy9oaWRlIHRvIGluY2x1ZGUgdGhlIHRyYWNrLgorICAgIC8vIFRoaXMgbGV0cyB0
aGUgY29udGVudCByZWZsb3cgdG8gdXNlIHRoZSBhZGRpdGlvbmFsIHNwYWNlIHdoZW4gdGhlIHNj
cm9sbGJhciBpcyBoaWRkZW4uCiAgICAgQXBwbGVTY3JvbGxiYXIucHJvdG90eXBlLmhpZGUgPSBm
dW5jdGlvbigpIHsKICAgICAgICAgdGhpcy5fdHJhY2suc3R5bGUuZGlzcGxheSA9ICJub25lIjsK
ICAgICAgICAgdGhpcy5zY3JvbGxiYXIuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKICAgICAgICAg
dGhpcy5oaWRkZW4gPSB0cnVlOwogICAgIH0KLQogICAgIEFwcGxlU2Nyb2xsYmFyLnByb3RvdHlw
ZS5zaG93ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgIHRoaXMuX3RyYWNrLnN0eWxlLmRpc3BsYXkg
PSAiYmxvY2siOwogICAgICAgICB0aGlzLnNjcm9sbGJhci5zdHlsZS5kaXNwbGF5ID0gbnVsbDsK
QEAgLTE1NiwxMyArMjQ3LDExIEBAIGZ1bmN0aW9uIGxvYWRlZCgpCiAKIGZ1bmN0aW9uIHJlZnJl
c2hTY3JvbGxiYXJzKCkKIHsKLSAgICBpZiAoY3VycmVudFBhbmUgPT0gIm5vZGUiKSB7Ci0gICAg
ICAgIG5vZGVDb250ZW50c1Njcm9sbEFyZWEucmVmcmVzaCgpOwotICAgICAgICBlbGVtZW50QXR0
cmlidXRlc1Njcm9sbEFyZWEucmVmcmVzaCgpOwotICAgIH0gZWxzZSBpZiAoY3VycmVudFBhbmUg
PT0gInN0eWxlIikgewotICAgICAgICBzdHlsZVJ1bGVzU2Nyb2xsQXJlYS5yZWZyZXNoKCk7Ci0g
ICAgICAgIHN0eWxlUHJvcGVydGllc1Njcm9sbEFyZWEucmVmcmVzaCgpOwotICAgIH0KKyAgICBl
bGVtZW50QXR0cmlidXRlc1Njcm9sbEFyZWEucmVmcmVzaCgpOworICAgIGpzUHJvcGVydGllc1Nj
cm9sbEFyZWEucmVmcmVzaCgpOworICAgIG5vZGVDb250ZW50c1Njcm9sbEFyZWEucmVmcmVzaCgp
OworICAgIHN0eWxlUHJvcGVydGllc1Njcm9sbEFyZWEucmVmcmVzaCgpOworICAgIHN0eWxlUnVs
ZXNTY3JvbGxBcmVhLnJlZnJlc2goKTsKIH0KIAogdmFyIHNlYXJjaEFjdGl2ZSA9IGZhbHNlOwpA
QCAtMTg4LDIxICsyNzcsOSBAQCBmdW5jdGlvbiBwZXJmb3JtU2VhcmNoKHF1ZXJ5KQogICAgIElu
c3BlY3Rvci5zZWFyY2hQZXJmb3JtZWQocXVlcnkpOwogfQogCi1mdW5jdGlvbiByZXN1bHRzV2l0
aFhwYXRoUXVlcnkocXVlcnkpCi17Ci0gICAgdmFyIG5vZGVMaXN0ID0gbnVsbDsKLSAgICB0cnkg
ewotICAgICAgICB2YXIgZm9jdXNlZE5vZGUgPSBJbnNwZWN0b3IuZm9jdXNlZERPTU5vZGUoKTsK
LSAgICAgICAgbm9kZUxpc3QgPSBmb2N1c2VkTm9kZS5kb2N1bWVudC5ldmFsdWF0ZShxdWVyeSwg
Zm9jdXNlZE5vZGUuZG9jdW1lbnQsIG51bGwsIFhQYXRoUmVzdWx0Lk9SREVSRURfTk9ERV9TTkFQ
U0hPVF9UWVBFKTsKLSAgICB9IGNhdGNoKGVycikgewotICAgICAgICAvLyBpZ25vcmUgYW55IGV4
Y2VwdGlvbnMuIHRoZSBxdWVyeSBtaWdodCBiZSBtYWxmb3JtZWQsIGJ1dCB3ZSBhbGxvdyB0aGF0
Ci0gICAgfQotICAgIHJldHVybiBub2RlTGlzdDsKLX0KLQogdmFyIHRhYk5hbWVzID0gWyJub2Rl
IiwibWV0cmljcyIsInN0eWxlIiwicHJvcGVydGllcyJdOwogdmFyIGN1cnJlbnRQYW5lID0gIm5v
ZGUiOwotdmFyIHBhbmVVcGRhdGVTdGF0ZSA9IG5ldyBBcnJheSgpOwordmFyIHBhbmVVcGRhdGVT
dGF0ZSA9IFtdOwogdmFyIG5vU2VsZWN0aW9uID0gZmFsc2U7CiAKIGZ1bmN0aW9uIHRvZ2dsZU5v
U2VsZWN0aW9uKHN0YXRlKQpAQCAtMjYyLDQwICszMzksNiBAQCBmdW5jdGlvbiBub2RlVHlwZU5h
bWUobm9kZSkKICAgICByZXR1cm4gIih1bmtub3duKSI7CiB9CiAKLWZ1bmN0aW9uIHhwYXRoRm9y
Tm9kZShub2RlKQotewotICAgIHZhciBwYXRoID0gIiI7Ci0gICAgd2hpbGUgKG5vZGUpIHsKLSAg
ICAgICAgaWYgKG5vZGUubm9kZVR5cGUgPT0gTm9kZS5ET0NVTUVOVF9OT0RFKSB7Ci0gICAgICAg
ICAgICBwYXRoID0gIi8iICsgcGF0aDsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlm
IChub2RlLm5vZGVOYW1lID09ICJIVE1MIiB8fCBub2RlLm5vZGVOYW1lID09ICJCT0RZIikgewot
ICAgICAgICAgICAgICAgIHBhdGggPSBub2RlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgKyAocGF0
aC5sZW5ndGggPyAiLyIgKyBwYXRoIDogIiIpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgICAgICB2YXIgaW5kZXggPSAxOwotICAgICAgICAgICAgICAgIHZhciBjaGlsZCA9IChu
b2RlLnBhcmVudE5vZGUgPyBub2RlLnBhcmVudE5vZGUuZmlyc3RDaGlsZCA6IG51bGwpOwotICAg
ICAgICAgICAgICAgIHdoaWxlIChjaGlsZCkgewotICAgICAgICAgICAgICAgICAgICBpZiAobm9k
ZSA9PSBjaGlsZCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
ICAgICAgICBpZiAoY2hpbGQubm9kZU5hbWUgPT0gbm9kZS5ub2RlTmFtZSkKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGluZGV4Kys7Ci0gICAgICAgICAgICAgICAgICAgIGNoaWxkID0gY2hpbGQu
bmV4dFNpYmxpbmc7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgICAgIHZhciBuYW1lID0gbm9kZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpOwotICAgICAg
ICAgICAgICAgIGlmIChub2RlLm5vZGVUeXBlID09IE5vZGUuVEVYVF9OT0RFKQotICAgICAgICAg
ICAgICAgICAgICBuYW1lID0gInRleHQoKSI7Ci0KLSAgICAgICAgICAgICAgICBwYXRoID0gbmFt
ZSArICJbIiArIGluZGV4ICsgIl0iICsgKHBhdGgubGVuZ3RoID8gIi8iICsgcGF0aCA6ICIiKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIG5vZGUgPSBub2RlLnBhcmVudE5v
ZGU7Ci0gICAgfQotCi0gICAgcmV0dXJuIHBhdGg7Ci19Ci0KIGZ1bmN0aW9uIHVwZGF0ZVBhbmVz
KCkKIHsKICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRhYk5hbWVzLmxlbmd0aDsgaSsrKQpAQCAt
MzQ2LDcgKzM4OSw4IEBAIGZ1bmN0aW9uIHVwZGF0ZUVsZW1lbnRBdHRyaWJ1dGVzKCkKICAgICBl
bGVtZW50QXR0cmlidXRlc1Njcm9sbEFyZWEucmVmcmVzaCgpOwogfQogCi1mdW5jdGlvbiB1cGRh
dGVOb2RlUGFuZSgpIHsKK2Z1bmN0aW9uIHVwZGF0ZU5vZGVQYW5lKCkKK3sKICAgICB2YXIgZm9j
dXNlZE5vZGUgPSBJbnNwZWN0b3IuZm9jdXNlZERPTU5vZGUoKTsKIAogICAgIGlmIChmb2N1c2Vk
Tm9kZS5ub2RlVHlwZSA9PSBOb2RlLlRFWFRfTk9ERSB8fCBmb2N1c2VkTm9kZS5ub2RlVHlwZSA9
PSBOb2RlLkNPTU1FTlRfTk9ERSkgewpAQCAtMzg0LDMwICs0MjgsMzIgQEAgZnVuY3Rpb24gdXBk
YXRlTm9kZVBhbmUoKSB7CiB2YXIgc3R5bGVSdWxlcyA9IG51bGw7CiB2YXIgc2VsZWN0ZWRTdHls
ZVJ1bGVJbmRleCA9IDA7CiB2YXIgc3R5bGVQcm9wZXJ0aWVzID0gbnVsbDsKLXZhciBleHBhbmRl
ZFN0eWxlU2hvcnRoYW5kcyA9IG5ldyBBcnJheSgpOwordmFyIGV4cGFuZGVkU3R5bGVTaG9ydGhh
bmRzID0gW107CiAKIGZ1bmN0aW9uIHVwZGF0ZVN0eWxlUGFuZSgpCiB7CiAgICAgdmFyIGZvY3Vz
ZWROb2RlID0gSW5zcGVjdG9yLmZvY3VzZWRET01Ob2RlKCk7CisgICAgaWYgKGZvY3VzZWROb2Rl
Lm5vZGVUeXBlID09IE5vZGUuVEVYVF9OT0RFICYmIGZvY3VzZWROb2RlLnBhcmVudE5vZGUgJiYg
Zm9jdXNlZE5vZGUucGFyZW50Tm9kZS5ub2RlVHlwZSA9PSBOb2RlLkVMRU1FTlRfTk9ERSkKKyAg
ICAgICAgZm9jdXNlZE5vZGUgPSBmb2N1c2VkTm9kZS5wYXJlbnROb2RlOwogICAgIHZhciBydWxl
c0FyZWEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3R5bGVSdWxlc1Njcm9sbHZpZXciKTsK
ICAgICB2YXIgcHJvcGVydGllc0FyZWEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3R5bGVQ
cm9wZXJ0aWVzVHJlZSIpOwogCiAgICAgcnVsZXNBcmVhLmlubmVySFRNTCA9ICIiOwogICAgIHBy
b3BlcnRpZXNBcmVhLmlubmVySFRNTCA9ICIiOwotICAgIHN0eWxlUnVsZXMgPSBuZXcgQXJyYXko
KTsKLSAgICBzdHlsZVByb3BlcnRpZXMgPSBuZXcgQXJyYXkoKTsKKyAgICBzdHlsZVJ1bGVzID0g
W107CisgICAgc3R5bGVQcm9wZXJ0aWVzID0gW107CiAKICAgICBpZiAoZm9jdXNlZE5vZGUubm9k
ZVR5cGUgPT0gTm9kZS5FTEVNRU5UX05PREUpIHsKICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInN0eWxlUnVsZXMiKS5zdHlsZS5kaXNwbGF5ID0gbnVsbDsKICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInN0eWxlUHJvcGVydGllcyIpLnN0eWxlLmRpc3BsYXkgPSBudWxs
OwogICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm9TdHlsZSIpLnN0eWxlLmRpc3Bs
YXkgPSAibm9uZSI7CiAKLSAgICAgICAgdmFyIHByb3BlcnR5Q291bnQgPSBuZXcgQXJyYXkoKTsK
KyAgICAgICAgdmFyIHByb3BlcnR5Q291bnQgPSBbXTsKIAogICAgICAgICB2YXIgY29tcHV0ZWRT
dHlsZSA9IGZvY3VzZWROb2RlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRT
dHlsZShmb2N1c2VkTm9kZSwgIiIpOwotICAgICAgICBpZiAoY29tcHV0ZWRTdHlsZSkgewotICAg
ICAgICAgICAgdmFyIGNvbXB1dGVkT2JqID0gbmV3IE9iamVjdCgpOwotICAgICAgICAgICAgY29t
cHV0ZWRPYmouY29tcHV0ZWRTdHlsZSA9IHRydWU7CisgICAgICAgIGlmIChjb21wdXRlZFN0eWxl
ICYmIGNvbXB1dGVkU3R5bGUubGVuZ3RoKSB7CisgICAgICAgICAgICB2YXIgY29tcHV0ZWRPYmog
PSB7fTsKKyAgICAgICAgICAgIGNvbXB1dGVkT2JqLmlzQ29tcHV0ZWRTdHlsZSA9IHRydWU7CiAg
ICAgICAgICAgICBjb21wdXRlZE9iai5zZWxlY3RvclRleHQgPSAiQ29tcHV0ZWQgU3R5bGUiOwog
ICAgICAgICAgICAgY29tcHV0ZWRPYmouc3R5bGUgPSBjb21wdXRlZFN0eWxlOwogICAgICAgICAg
ICAgY29tcHV0ZWRPYmouc3VidGl0bGUgPSAiIjsKQEAgLTQxOCw3ICs0NjQsNyBAQCBmdW5jdGlv
biB1cGRhdGVTdHlsZVBhbmUoKQogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZvY3VzZWRO
b2RlLmF0dHJpYnV0ZXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgIHZhciBhdHRyID0gZm9j
dXNlZE5vZGUuYXR0cmlidXRlc1tpXTsKICAgICAgICAgICAgIGlmIChhdHRyLnN0eWxlKSB7Ci0g
ICAgICAgICAgICAgICAgdmFyIGF0dHJTdHlsZSA9IG5ldyBPYmplY3QoKTsKKyAgICAgICAgICAg
ICAgICB2YXIgYXR0clN0eWxlID0ge307CiAgICAgICAgICAgICAgICAgYXR0clN0eWxlLmF0dHIg
PSBhdHRyLm5hbWU7CiAgICAgICAgICAgICAgICAgYXR0clN0eWxlLnNlbGVjdG9yVGV4dCA9IGZv
Y3VzZWROb2RlTmFtZSArICJbIiArIGF0dHIubmFtZTsKICAgICAgICAgICAgICAgICBpZiAoYXR0
ci52YWx1ZS5sZW5ndGgpCkBAIC00MzgsNyArNDg0LDcgQEAgZnVuY3Rpb24gdXBkYXRlU3R5bGVQ
YW5lKCkKICAgICAgICAgfQogCiAgICAgICAgIGlmIChmb2N1c2VkTm9kZS5zdHlsZS5sZW5ndGgp
IHsKLSAgICAgICAgICAgIHZhciBpbmxpbmVTdHlsZSA9IG5ldyBPYmplY3QoKTsKKyAgICAgICAg
ICAgIHZhciBpbmxpbmVTdHlsZSA9IHt9OwogICAgICAgICAgICAgaW5saW5lU3R5bGUuc2VsZWN0
b3JUZXh0ID0gIklubGluZSBTdHlsZSBBdHRyaWJ1dGUiOwogICAgICAgICAgICAgaW5saW5lU3R5
bGUuc3R5bGUgPSBmb2N1c2VkTm9kZS5zdHlsZTsKICAgICAgICAgICAgIGlubGluZVN0eWxlLnN1
YnRpdGxlID0gImVsZW1lbnQncyBcInN0eWxlXCIgYXR0cmlidXRlIjsKQEAgLTQ1MCwxMyArNDk2
LDEzIEBAIGZ1bmN0aW9uIHVwZGF0ZVN0eWxlUGFuZSgpCiAKICAgICAgICAgdmFyIHByaW9yaXR5
VXNlZCA9IGZhbHNlOwogICAgICAgICBmb3IgKHZhciBpID0gKHN0eWxlUnVsZXMubGVuZ3RoIC0g
MSk7IGkgPj0gMDsgLS1pKSB7Ci0gICAgICAgICAgICBzdHlsZVByb3BlcnRpZXNbaV0gPSBuZXcg
QXJyYXkoKTsKKyAgICAgICAgICAgIHN0eWxlUHJvcGVydGllc1tpXSA9IFtdOwogCiAgICAgICAg
ICAgICB2YXIgcm93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgICAgICAg
ICByb3cuY2xhc3NOYW1lID0gInJvdyI7CiAgICAgICAgICAgICBpZiAoaSA9PSBzZWxlY3RlZFN0
eWxlUnVsZUluZGV4KQogICAgICAgICAgICAgICAgIHJvdy5jbGFzc05hbWUgKz0gIiBmb2N1c2Vk
IjsKLSAgICAgICAgICAgIGlmIChzdHlsZVJ1bGVzW2ldLmNvbXB1dGVkU3R5bGUpCisgICAgICAg
ICAgICBpZiAoc3R5bGVSdWxlc1tpXS5pc0NvbXB1dGVkU3R5bGUpCiAgICAgICAgICAgICAgICAg
cm93LmNsYXNzTmFtZSArPSAiIGNvbXB1dGVkU3R5bGUiOwogCiAgICAgICAgICAgICB2YXIgY2Vs
bCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwpAQCAtNDgwLDcgKzUyNiw3IEBAIGZ1
bmN0aW9uIHVwZGF0ZVN0eWxlUGFuZSgpCiAgICAgICAgICAgICByb3cuYWRkRXZlbnRMaXN0ZW5l
cigiY2xpY2siLCBzdHlsZVJ1bGVTZWxlY3QsIHRydWUpOwogCiAgICAgICAgICAgICB2YXIgc3R5
bGUgPSBzdHlsZVJ1bGVzW2ldLnN0eWxlOwotICAgICAgICAgICAgdmFyIHN0eWxlU2hvcnRoYW5k
TG9va3VwID0gbmV3IEFycmF5KCk7CisgICAgICAgICAgICB2YXIgc3R5bGVTaG9ydGhhbmRMb29r
dXAgPSBbXTsKICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgc3R5bGUubGVuZ3RoOyBq
KyspIHsKICAgICAgICAgICAgICAgICB2YXIgcHJvcCA9IG51bGw7CiAgICAgICAgICAgICAgICAg
dmFyIG5hbWUgPSBzdHlsZVtqXTsKQEAgLTQ5NCwxMSArNTQwLDEyIEBAIGZ1bmN0aW9uIHVwZGF0
ZVN0eWxlUGFuZSgpCiAgICAgICAgICAgICAgICAgaWYgKHByb3ApIHsKICAgICAgICAgICAgICAg
ICAgICAgcHJvcC5zdWJQcm9wZXJ0aWVzLnB1c2gobmFtZSk7CiAgICAgICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICAgICAgcHJvcCA9IG5ldyBPYmplY3QoKTsKLSAgICAgICAg
ICAgICAgICAgICAgcHJvcC5zdHlsZSA9IHN0eWxlOwotICAgICAgICAgICAgICAgICAgICBwcm9w
LnN1YlByb3BlcnRpZXMgPSBuZXcgQXJyYXkobmFtZSk7Ci0gICAgICAgICAgICAgICAgICAgIHBy
b3AudW51c2VkUHJvcGVydGllcyA9IG5ldyBBcnJheSgpOwotICAgICAgICAgICAgICAgICAgICBw
cm9wLm5hbWUgPSAoc2hvcnRoYW5kID8gc2hvcnRoYW5kIDogbmFtZSk7CisgICAgICAgICAgICAg
ICAgICAgIHByb3AgPSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogc3R5bGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICBzdWJQcm9wZXJ0aWVzOiBbbmFtZV0sCisgICAgICAgICAg
ICAgICAgICAgICAgICB1bnVzZWRQcm9wZXJ0aWVzOiBbXSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIG5hbWU6IChzaG9ydGhhbmQgPyBzaG9ydGhhbmQgOiBuYW1lKQorICAgICAgICAgICAgICAg
ICAgICB9OwogICAgICAgICAgICAgICAgICAgICBzdHlsZVByb3BlcnRpZXNbaV0ucHVzaChwcm9w
KTsKICAgICAgICAgICAgICAgICAgICAgaWYgKHNob3J0aGFuZCkgewogICAgICAgICAgICAgICAg
ICAgICAgICAgc3R5bGVTaG9ydGhhbmRMb29rdXBbc2hvcnRoYW5kXSA9IHByb3A7CkBAIC01MTEs
NyArNTU4LDcgQEAgZnVuY3Rpb24gdXBkYXRlU3R5bGVQYW5lKCkKICAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIGlmIChzdHlsZVJ1bGVz
W2ldLmNvbXB1dGVkU3R5bGUpCisgICAgICAgICAgICAgICAgaWYgKHN0eWxlUnVsZXNbaV0uaXND
b21wdXRlZFN0eWxlKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICAg
ICAgICAgIGlmICghcHJvcGVydHlDb3VudFtuYW1lXSkgewpAQCAtNTIyLDcgKzU2OSw3IEBAIGZ1
bmN0aW9uIHVwZGF0ZVN0eWxlUGFuZSgpCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
fQogCi0gICAgICAgICAgICBpZiAoc3R5bGVSdWxlc1tpXS5jb21wdXRlZFN0eWxlICYmIHN0eWxl
UnVsZXMubGVuZ3RoID4gMSkgeworICAgICAgICAgICAgaWYgKHN0eWxlUnVsZXNbaV0uaXNDb21w
dXRlZFN0eWxlICYmIHN0eWxlUnVsZXMubGVuZ3RoID4gMSkgewogICAgICAgICAgICAgICAgIHZh
ciBkaXZpZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaHIiKTsKICAgICAgICAgICAgICAg
ICBkaXZpZGVyLmNsYXNzTmFtZSA9ICJkaXZpZGVyIjsKICAgICAgICAgICAgICAgICBydWxlc0Fy
ZWEuaW5zZXJ0QmVmb3JlKGRpdmlkZXIsIHJ1bGVzQXJlYS5maXJzdENoaWxkKTsKQEAgLTUzNiwx
MSArNTgzLDExIEBAIGZ1bmN0aW9uIHVwZGF0ZVN0eWxlUGFuZSgpCiAKICAgICAgICAgaWYgKHBy
aW9yaXR5VXNlZCkgewogICAgICAgICAgICAgLy8gd2FsayB0aGUgcHJvcGVydGllcyBhZ2FpbiBh
bmQgYWNjb3VudCBmb3IgIWltcG9ydGFudAotICAgICAgICAgICAgdmFyIHByaW9yaXR5Q291bnQg
PSBuZXcgQXJyYXkoKTsKKyAgICAgICAgICAgIHZhciBwcmlvcml0eUNvdW50ID0gW107CiAgICAg
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHN0eWxlUnVsZXMubGVuZ3RoOyBpKyspIHsKLSAg
ICAgICAgICAgICAgICB2YXIgc3R5bGUgPSBzdHlsZVJ1bGVzW2ldLnN0eWxlOwotICAgICAgICAg
ICAgICAgIGlmIChzdHlsZS5jb21wdXRlZFN0eWxlKQorICAgICAgICAgICAgICAgIGlmIChzdHls
ZVJ1bGVzW2ldLmlzQ29tcHV0ZWRTdHlsZSkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7
CisgICAgICAgICAgICAgICAgdmFyIHN0eWxlID0gc3R5bGVSdWxlc1tpXS5zdHlsZTsKICAgICAg
ICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHN0eWxlUHJvcGVydGllc1tpXS5sZW5ndGg7
IGorKykgewogICAgICAgICAgICAgICAgICAgICB2YXIgcHJvcCA9IHN0eWxlUHJvcGVydGllc1tp
XVtqXTsKICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCBwcm9wLnN1YlBy
b3BlcnRpZXMubGVuZ3RoOyBrKyspIHsKQEAgLTU4OSw2ICs2MzYsMzUgQEAgZnVuY3Rpb24gc3R5
bGVSdWxlU2VsZWN0KGV2ZW50KQogICAgIHVwZGF0ZVN0eWxlUHJvcGVydGllcygpOwogfQogCitm
dW5jdGlvbiBwb3B1bGF0ZVN0eWxlTGlzdEl0ZW0obGksIHByb3AsIG5hbWUpCit7CisgICAgdmFy
IHZhbHVlID0gcHJvcC5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKG5hbWUpOworCisgICAgdmFyIHNw
YW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgc3Bhbi5jbGFzc05hbWUg
PSAicHJvcGVydHkiOworICAgIHNwYW4udGV4dENvbnRlbnQgPSBuYW1lOworICAgIGxpLmFwcGVu
ZENoaWxkKHNwYW4pOworCisgICAgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4i
KTsKKyAgICBzcGFuLmNsYXNzTmFtZSA9ICJ2YWx1ZSI7CisgICAgdmFyIHRleHRWYWx1ZSA9IHZh
bHVlTmlja25hbWVbdmFsdWVdID8gdmFsdWVOaWNrbmFtZVt2YWx1ZV0gOiB2YWx1ZTsKKyAgICB2
YXIgcHJpb3JpdHkgPSBwcm9wLnN0eWxlLmdldFByb3BlcnR5UHJpb3JpdHkobmFtZSk7CisgICAg
aWYgKHByaW9yaXR5Lmxlbmd0aCkKKyAgICAgICAgdGV4dFZhbHVlICs9ICIgISIgKyBwcmlvcml0
eTsKKyAgICBzcGFuLnRleHRDb250ZW50ID0gdGV4dFZhbHVlOworICAgIGxpLmFwcGVuZENoaWxk
KHNwYW4pOworCisgICAgdmFyIGNvbG9ycyA9IHZhbHVlLm1hdGNoKC8ocmdiXChbMC05XSssIFsw
LTldKywgWzAtOV0rXCkpfChyZ2JhXChbMC05XSssIFswLTldKywgWzAtOV0rLCBbMC05XStcKSkv
Zyk7CisgICAgaWYgKGNvbG9ycykgeworICAgICAgICBmb3IgKHZhciBrID0gMDsgayA8IGNvbG9y
cy5sZW5ndGg7IGsrKykgeworICAgICAgICAgICAgdmFyIHN3YXRjaCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoInNwYW4iKTsKKyAgICAgICAgICAgIHN3YXRjaC5jbGFzc05hbWUgPSAiY29sb3JT
d2F0Y2giOworICAgICAgICAgICAgc3dhdGNoLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IGNvbG9y
c1trXTsKKyAgICAgICAgICAgIGxpLmFwcGVuZENoaWxkKHN3YXRjaCk7CisgICAgICAgIH0KKyAg
ICB9Cit9CisKIGZ1bmN0aW9uIHVwZGF0ZVN0eWxlUHJvcGVydGllcygpCiB7CiAgICAgdmFyIGZv
Y3VzZWROb2RlID0gSW5zcGVjdG9yLmZvY3VzZWRET01Ob2RlKCk7CkBAIC02MDEsMzggKzY3Nywz
MSBAQCBmdW5jdGlvbiB1cGRhdGVTdHlsZVByb3BlcnRpZXMoKQogICAgIH0KIAogICAgIHZhciBw
cm9wZXJ0aWVzID0gc3R5bGVQcm9wZXJ0aWVzW3NlbGVjdGVkU3R5bGVSdWxlSW5kZXhdOworICAg
IHZhciBvbWl0VHlwaWNhbFZhbHVlcyA9IHN0eWxlUnVsZXNbc2VsZWN0ZWRTdHlsZVJ1bGVJbmRl
eF0uaXNDb21wdXRlZFN0eWxlOwogICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcGVydGllcy5s
ZW5ndGg7IGkrKykgewogICAgICAgICB2YXIgcHJvcCA9IHByb3BlcnRpZXNbaV07CisgICAgICAg
IHZhciBuYW1lID0gcHJvcC5uYW1lOworICAgICAgICBpZiAob21pdFR5cGljYWxWYWx1ZXMgJiYg
dHlwaWNhbFN0eWxlUHJvcGVydHlWYWx1ZVtuYW1lXSA9PSBwcm9wLnN0eWxlLmdldFByb3BlcnR5
VmFsdWUobmFtZSkpCisgICAgICAgICAgICBjb250aW51ZTsKKwogICAgICAgICB2YXIgbWFpbmxp
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGkiKTsKICAgICAgICAgaWYgKHByb3Auc3ViUHJv
cGVydGllcy5sZW5ndGggPiAxKSB7CiAgICAgICAgICAgICBtYWlubGkuY2xhc3NOYW1lID0gImhh
c0NoaWxkcmVuIjsKLSAgICAgICAgICAgIGlmIChleHBhbmRlZFN0eWxlU2hvcnRoYW5kc1twcm9w
Lm5hbWVdKQorICAgICAgICAgICAgaWYgKGV4cGFuZGVkU3R5bGVTaG9ydGhhbmRzW25hbWVdKQog
ICAgICAgICAgICAgICAgIG1haW5saS5jbGFzc05hbWUgKz0gIiBleHBhbmRlZCI7Ci0gICAgICAg
ICAgICBtYWlubGkuc2hvcnRoYW5kID0gcHJvcC5uYW1lOworICAgICAgICAgICAgbWFpbmxpLnNo
b3J0aGFuZCA9IG5hbWU7CiAgICAgICAgICAgICB2YXIgYnV0dG9uID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiYnV0dG9uIik7CiAgICAgICAgICAgICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcigi
Y2xpY2siLCB0b2dnbGVTdHlsZVNob3J0aGFuZCwgZmFsc2UpOwogICAgICAgICAgICAgbWFpbmxp
LmFwcGVuZENoaWxkKGJ1dHRvbik7CiAgICAgICAgIH0KIAotICAgICAgICB2YXIgc3BhbiA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKLSAgICAgICAgc3Bhbi5jbGFzc05hbWUgPSAi
cHJvcGVydHkiOwotICAgICAgICBzcGFuLnRleHRDb250ZW50ID0gcHJvcC5uYW1lOwotICAgICAg
ICBtYWlubGkuYXBwZW5kQ2hpbGQoc3Bhbik7Ci0KLSAgICAgICAgc3BhbiA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoInNwYW4iKTsKLSAgICAgICAgc3Bhbi5jbGFzc05hbWUgPSAidmFsdWUiOwot
ICAgICAgICBzcGFuLnRpdGxlID0gcHJvcC5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHByb3AubmFt
ZSk7Ci0gICAgICAgIGlmIChwcm9wLnN0eWxlLmdldFByb3BlcnR5UHJpb3JpdHkocHJvcC5uYW1l
KS5sZW5ndGgpCi0gICAgICAgICAgICBzcGFuLnRpdGxlICs9ICIgISIgKyBwcm9wLnN0eWxlLmdl
dFByb3BlcnR5UHJpb3JpdHkocHJvcC5uYW1lKTsKLSAgICAgICAgc3Bhbi50ZXh0Q29udGVudCA9
IHNwYW4udGl0bGU7Ci0gICAgICAgIG1haW5saS5hcHBlbmRDaGlsZChzcGFuKTsKLQorICAgICAg
ICBwb3B1bGF0ZVN0eWxlTGlzdEl0ZW0obWFpbmxpLCBwcm9wLCBuYW1lKTsKICAgICAgICAgcHJv
cGVydGllc1RyZWUuYXBwZW5kQ2hpbGQobWFpbmxpKTsKIAogICAgICAgICB2YXIgb3ZlcmxvYWRD
b3VudCA9IDA7CiAgICAgICAgIGlmIChwcm9wLnN1YlByb3BlcnRpZXMgJiYgcHJvcC5zdWJQcm9w
ZXJ0aWVzLmxlbmd0aCA+IDEpIHsKICAgICAgICAgICAgIHZhciBzdWJUcmVlID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgidWwiKTsKLSAgICAgICAgICAgIGlmICghZXhwYW5kZWRTdHlsZVNob3J0
aGFuZHNbcHJvcC5uYW1lXSkKKyAgICAgICAgICAgIGlmICghZXhwYW5kZWRTdHlsZVNob3J0aGFu
ZHNbbmFtZV0pCiAgICAgICAgICAgICAgICAgc3ViVHJlZS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUi
OwogCiAgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHByb3Auc3ViUHJvcGVydGllcy5s
ZW5ndGg7IGorKykgewpAQCAtNjQxLDMxICs3MTAsMTkgQEAgZnVuY3Rpb24gdXBkYXRlU3R5bGVQ
cm9wZXJ0aWVzKCkKICAgICAgICAgICAgICAgICBpZiAocHJvcC5zdHlsZS5pc1Byb3BlcnR5SW1w
bGljaXQobmFtZSkgfHwgcHJvcC5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKG5hbWUpID09ICJpbml0
aWFsIikKICAgICAgICAgICAgICAgICAgICAgbGkuY2xhc3NOYW1lID0gImltcGxpY2l0IjsKIAot
ICAgICAgICAgICAgICAgIGlmIChwcm9wLnVudXNlZFByb3BlcnRpZXNbbmFtZV0gfHwgcHJvcC51
bnVzZWRQcm9wZXJ0aWVzW3Byb3AubmFtZV0pIHsKKyAgICAgICAgICAgICAgICBpZiAocHJvcC51
bnVzZWRQcm9wZXJ0aWVzW25hbWVdIHx8IHByb3AudW51c2VkUHJvcGVydGllc1tuYW1lXSkgewog
ICAgICAgICAgICAgICAgICAgICBsaS5jbGFzc05hbWUgKz0gIiBvdmVybG9hZGVkIjsKICAgICAg
ICAgICAgICAgICAgICAgb3ZlcmxvYWRDb3VudCsrOwogICAgICAgICAgICAgICAgIH0KIAotICAg
ICAgICAgICAgICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwot
ICAgICAgICAgICAgICAgIHNwYW4uY2xhc3NOYW1lID0gInByb3BlcnR5IjsKLSAgICAgICAgICAg
ICAgICBzcGFuLnRleHRDb250ZW50ID0gbmFtZTsKLSAgICAgICAgICAgICAgICBsaS5hcHBlbmRD
aGlsZChzcGFuKTsKLQotICAgICAgICAgICAgICAgIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJzcGFuIik7Ci0gICAgICAgICAgICAgICAgc3Bhbi5jbGFzc05hbWUgPSAidmFsdWUiOwot
ICAgICAgICAgICAgICAgIHNwYW4udGl0bGUgPSBwcm9wLnN0eWxlLmdldFByb3BlcnR5VmFsdWUo
bmFtZSk7Ci0gICAgICAgICAgICAgICAgaWYgKHByb3Auc3R5bGUuZ2V0UHJvcGVydHlQcmlvcml0
eShuYW1lKS5sZW5ndGgpCi0gICAgICAgICAgICAgICAgICAgIHNwYW4udGl0bGUgKz0gIiAhIiAr
IHByb3Auc3R5bGUuZ2V0UHJvcGVydHlQcmlvcml0eShuYW1lKTsKLSAgICAgICAgICAgICAgICBz
cGFuLnRleHRDb250ZW50ID0gc3Bhbi50aXRsZTsKLSAgICAgICAgICAgICAgICBsaS5hcHBlbmRD
aGlsZChzcGFuKTsKLQorICAgICAgICAgICAgICAgIHBvcHVsYXRlU3R5bGVMaXN0SXRlbShsaSwg
cHJvcCwgbmFtZSk7CiAgICAgICAgICAgICAgICAgc3ViVHJlZS5hcHBlbmRDaGlsZChsaSk7CiAg
ICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHByb3BlcnRpZXNUcmVlLmFwcGVuZENoaWxkKHN1
YlRyZWUpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKHByb3AudW51c2VkUHJvcGVydGllc1tw
cm9wLm5hbWVdIHx8IG92ZXJsb2FkQ291bnQgPT0gcHJvcC5zdWJQcm9wZXJ0aWVzLmxlbmd0aCkK
KyAgICAgICAgaWYgKHByb3AudW51c2VkUHJvcGVydGllc1tuYW1lXSB8fCBvdmVybG9hZENvdW50
ID09IHByb3Auc3ViUHJvcGVydGllcy5sZW5ndGgpCiAgICAgICAgICAgICBtYWlubGkuY2xhc3NO
YW1lICs9ICIgb3ZlcmxvYWRlZCI7CiAgICAgfQogCkBAIC03MjIsNCArNzc5LDMxIEBAIGZ1bmN0
aW9uIHVwZGF0ZU1ldHJpY3NQYW5lKCkKIAogZnVuY3Rpb24gdXBkYXRlUHJvcGVydGllc1BhbmUo
KQogeworICAgIC8vIEZJWE1FOiBMaWtlIHRoZSBzdHlsZSBwYW5lLCB0aGlzIHNob3VsZCBoYXZl
IGEgdG9wIGl0ZW0gdGhhdCdzICJhbGwgcHJvcGVydGllcyIKKyAgICAvLyBhbmQgc2VwYXJhdGUg
aXRlbXMgZm9yIGVhY2ggaXRlbSBpbiB0aGUgcHJvdG90eXBlIGNoYWluLiBGb3Igbm93LCB3ZSBp
bXBsZW1lbnQKKyAgICAvLyBvbmx5IHRoZSAiYWxsIHByb3BlcnRpZXMiIHBhcnQsIGFuZCBvbmx5
IGZvciBlbnVtZXJhYmxlIHByb3BlcnRpZXMuCisKKyAgICB2YXIgZm9jdXNlZE5vZGUgPSBJbnNw
ZWN0b3IuZm9jdXNlZERPTU5vZGUoKTsKKyAgICB2YXIgbGlzdCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJqc1Byb3BlcnRpZXNMaXN0Iik7CisgICAgbGlzdC5pbm5lckhUTUwgPSAiIjsKKwor
ICAgIGZvciAodmFyIG5hbWUgaW4gZm9jdXNlZE5vZGUpIHsKKyAgICAgICAgdmFyIGxpID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgibGkiKTsKKworICAgICAgICB2YXIgc3BhbiA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAgICAgICAgc3Bhbi5jbGFzc05hbWUgPSAicHJvcGVy
dHkiOworICAgICAgICBzcGFuLnRleHRDb250ZW50ID0gbmFtZTsKKyAgICAgICAgbGkuYXBwZW5k
Q2hpbGQoc3Bhbik7CisKKyAgICAgICAgdmFyIHZhbHVlID0gZm9jdXNlZE5vZGVbbmFtZV07CisK
KyAgICAgICAgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAgICAgICAg
c3Bhbi5jbGFzc05hbWUgPSAidmFsdWUiOworICAgICAgICBzcGFuLnRleHRDb250ZW50ID0gdmFs
dWU7CisgICAgICAgIGxpLmFwcGVuZENoaWxkKHNwYW4pOworCisgICAgICAgIGxpc3QuYXBwZW5k
Q2hpbGQobGkpOworICAgIH0KKworICAgIGpzUHJvcGVydGllc1Njcm9sbEFyZWEucmVmcmVzaCgp
OwogfQo=
</data>
<flag name="review"
          id="2995"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>