<?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>54954</bug_id>
          
          <creation_ts>2011-02-22 06:35:13 -0800</creation_ts>
          <short_desc>Web Inspector: refactor InjectedScript : InspectorDOMAgent interaction.</short_desc>
          <delta_ts>2011-02-22 12:18:36 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>0</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>apavlov</cc>
    
    <cc>buildbot</cc>
    
    <cc>bweinstein</cc>
    
    <cc>gustavo.noronha</cc>
    
    <cc>gustavo</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>355227</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-02-22 06:35:13 -0800</bug_when>
    <thetext>Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355230</commentid>
    <comment_count>1</comment_count>
      <attachid>83306</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-02-22 06:44:23 -0800</bug_when>
    <thetext>Created attachment 83306
[PATCH] Proposed change, yet to compile JSC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355231</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-22 06:47:04 -0800</bug_when>
    <thetext>Attachment 83306 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/inspector/InspectorDOMAgent.h:137:  The parameter name &quot;node&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/inspector/InjectedScriptHost.h:61:  The parameter name &quot;value&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/inspector/InjectedScriptHost.h:65:  The parameter name &quot;node&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 3 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355235</commentid>
    <comment_count>3</comment_count>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2011-02-22 06:54:49 -0800</bug_when>
    <thetext>Attachment 83306 did not build on gtk:
Build output: http://queues.webkit.org/results/7949059</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355236</commentid>
    <comment_count>4</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-02-22 06:55:38 -0800</bug_when>
    <thetext>Attachment 83306 did not build on qt:
Build output: http://queues.webkit.org/results/7943288</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355237</commentid>
    <comment_count>5</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-02-22 06:59:32 -0800</bug_when>
    <thetext>Attachment 83306 did not build on win:
Build output: http://queues.webkit.org/results/7948139</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355247</commentid>
    <comment_count>6</comment_count>
      <attachid>83306</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-02-22 07:20:45 -0800</bug_when>
    <thetext>Comment on attachment 83306
[PATCH] Proposed change, yet to compile JSC.

View in context: https://bugs.webkit.org/attachment.cgi?id=83306&amp;action=review

&gt; Source/WebCore/inspector/CodeGeneratorInspector.pm:-58
&gt; -$typeTransform{&quot;InjectedScript&quot;} = {

Nice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355265</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-22 07:47:20 -0800</bug_when>
    <thetext>Attachment 83306 did not build on mac:
Build output: http://queues.webkit.org/results/7940964</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355486</commentid>
    <comment_count>8</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-02-22 12:18:36 -0800</bug_when>
    <thetext>Committed r79345: &lt;http://trac.webkit.org/changeset/79345&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83306</attachid>
            <date>2011-02-22 06:44:23 -0800</date>
            <delta_ts>2011-02-22 07:20:45 -0800</delta_ts>
            <desc>[PATCH] Proposed change, yet to compile JSC.</desc>
            <filename>dom_script</filename>
            <type>text/plain</type>
            <size>29317</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkMzE4NGNlLi42ZjU2MTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDgg
QEAKKzIwMTEtMDItMjIgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogcmVmYWN0b3IgSW5qZWN0ZWRTY3JpcHQgOiBJbnNwZWN0b3JET01BZ2VudCBpbnRlcmFj
dGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0
OTU0CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0luamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbmplY3RlZFNjcmlwdEhvc3Q6OnRvTm9kZSk6CisgICAg
ICAgIChXZWJDb3JlOjpKU0luamVjdGVkU2NyaXB0SG9zdDo6aW5zcGVjdCk6CisgICAgICAgICog
YmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkluamVjdGVkU2NyaXB0SG9zdDo6dG9Ob2RlKToKKyAgICAgICAgKFdlYkNv
cmU6OlY4SW5qZWN0ZWRTY3JpcHRIb3N0OjppbnNwZWN0Q2FsbGJhY2spOgorICAgICAgICAqIGlu
c3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBtOgorICAgICAgICAqIGluc3BlY3Rvci9J
bmplY3RlZFNjcmlwdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmplY3RlZFNjcmlwdDo6bm9k
ZUZvck9iamVjdElkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkluamVjdGVkU2NyaXB0SG9zdDo6aW5zcGVjdCk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
amVjdGVkU2NyaXB0SG9zdC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhv
c3QuaWRsOgorICAgICAgICAqIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qczoKKyAg
ICAgICAgKC4pOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3IuaWRsOgorICAgICAgICAq
IGluc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JBZ2VudDo6Zm9jdXNOb2RlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQu
aDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6Omluc3BlY3QpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2RlVG9Gcm9udGVuZCk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckRPTUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9B
dWRpdFJ1bGVzLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuZXZhbHVhdGVJ
blRhcmdldFdpbmRvdyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5JbWFnZURp
bWVuc2lvbnNSdWxlLnByb3RvdHlwZS5kb1J1bik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXVk
aXRSdWxlcy5JbWFnZURpbWVuc2lvbnNSdWxlLnByb3RvdHlwZS5kb1J1bi5nZXRTdHlsZXMpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuSW1hZ2VEaW1lbnNpb25zUnVsZS5wcm90
b3R5cGUuZG9SdW4ucmVjZWl2ZWRJbWFnZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkF1ZGl0
UnVsZXMuSW1hZ2VEaW1lbnNpb25zUnVsZS5wcm90b3R5cGUuZG9SdW4ucHVzaEltYWdlTm9kZXMp
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanM6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuQ29uc29sZVZpZXcucHJvdG90eXBlLmNvbXBsZXRpb25zKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkRPTURpc3BhdGNoZXIucHJvdG90eXBlLmNoaWxkTm9kZVJlbW92ZWQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkRPTURpc3BhdGNoZXIucHJvdG90eXBlLmluc3BlY3RFbGVtZW50UmVxdWVz
dGVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1JlbW90ZU9iamVjdC5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlLnB1c2hOb2RlVG9Gcm9u
dGVuZCk6CisKIDIwMTEtMDItMjIgIFN0ZXZlIExhY2V5ICA8c2psQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0luamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAKaW5kZXgg
ZGQzNmMyZS4uYzkxY2ExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTSW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcApAQCAtNzAsMTIgKzcwLDIwIEBA
CiAjaW5jbHVkZSAiSmF2YVNjcmlwdENhbGxGcmFtZS5oIgogI2luY2x1ZGUgIkpTSmF2YVNjcmlw
dENhbGxGcmFtZS5oIgogI2luY2x1ZGUgIlNjcmlwdERlYnVnU2VydmVyLmgiCisjaW5jbHVkZSAi
U2NyaXB0VmFsdWUuaCIKICNlbmRpZgogCiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKK05vZGUqIEluamVjdGVkU2NyaXB0SG9zdDo6dG9Ob2RlKFNjcmlwdFZh
bHVlIHZhbHVlKQoreworICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSB8fCB2YWx1ZS5pc051bGwo
KSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIHRvTm9kZSh2YWx1ZS5qc1ZhbHVlKCkp
OworfQorCiBTY3JpcHRPYmplY3QgSW5qZWN0ZWRTY3JpcHRIb3N0OjpjcmVhdGVJbmplY3RlZFNj
cmlwdChjb25zdCBTdHJpbmcmIHNvdXJjZSwgU2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRlLCBsb25n
IGlkKQogewogICAgIFNvdXJjZUNvZGUgc291cmNlQ29kZSA9IG1ha2VTb3VyY2Uoc3RyaW5nVG9V
U3RyaW5nKHNvdXJjZSkpOwpAQCAtMTQ0LDE4ICsxNTIsMTQgQEAgSlNWYWx1ZSBKU0luamVjdGVk
U2NyaXB0SG9zdDo6aW50ZXJuYWxDb25zdHJ1Y3Rvck5hbWUoRXhlY1N0YXRlKiBleGVjKQogICAg
IHJldHVybiBqc1N0cmluZyhleGVjLCByZXN1bHQpOwogfQogCi1KU1ZhbHVlIEpTSW5qZWN0ZWRT
Y3JpcHRIb3N0OjpwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKEV4ZWNTdGF0ZSogZXhlYykKK0pTVmFs
dWUgSlNJbmplY3RlZFNjcmlwdEhvc3Q6Omluc3BlY3QoRXhlY1N0YXRlKiBleGVjKQogewotICAg
IGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAzKQotICAgICAgICByZXR1cm4ganNVbmRlZmlu
ZWQoKTsKLQotICAgIE5vZGUqIG5vZGUgPSB0b05vZGUoZXhlYy0+YXJndW1lbnQoMCkpOwotICAg
IGlmICghbm9kZSkKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0KLSAgICBib29sIHdp
dGhDaGlsZHJlbiA9IGV4ZWMtPmFyZ3VtZW50KDEpLnRvQm9vbGVhbihleGVjKTsKLSAgICBib29s
IHNlbGVjdEluVUkgPSBleGVjLT5hcmd1bWVudCgyKS50b0Jvb2xlYW4oZXhlYyk7Ci0gICAgcmV0
dXJuIGpzTnVtYmVyKGltcGwoKS0+cHVzaE5vZGVQYXRoVG9Gcm9udGVuZChub2RlLCB3aXRoQ2hp
bGRyZW4sIHNlbGVjdEluVUkpKTsKKyAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpID49IDEp
IHsKKyAgICAgICAgTm9kZSogbm9kZSA9IHRvTm9kZShleGVjLT5hcmd1bWVudCgwKSk7CisgICAg
ICAgIGlmIChub2RlKQorICAgICAgICAgICAgaW1wbCgpLT5pbnNwZWN0KG5vZGUpOworICAgIH0K
KyAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIH0KIAogI2lmIEVOQUJMRShEQVRBQkFTRSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEluamVjdGVkU2Ny
aXB0SG9zdEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJ
bmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwCmluZGV4IGNlMTczMmIuLjIyNzU2OTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEluamVjdGVkU2NyaXB0
SG9zdEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
SW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcApAQCAtNTQsNiArNTQsMTMgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCitOb2RlKiBJbmplY3RlZFNjcmlwdEhvc3Q6OnRvTm9kZShTY3JpcHRW
YWx1ZSB2YWx1ZSkKK3sKKyAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkgfHwgdmFsdWUuaXNOdWxs
KCkpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBWOE5vZGU6OnRvTmF0aXZlKHY4OjpI
YW5kbGU8djg6Ok9iamVjdD46OkNhc3QodmFsdWUudjhWYWx1ZSgpKSk7Cit9CisKIHN0YXRpYyB2
b2lkIFdlYWtSZWZlcmVuY2VDYWxsYmFjayh2ODo6UGVyc2lzdGVudDx2ODo6VmFsdWU+IG9iamVj
dCwgdm9pZCogcGFyYW1ldGVyKQogewogICAgIEluamVjdGVkU2NyaXB0SG9zdCogbmF0aXZlT2Jq
ZWN0ID0gc3RhdGljX2Nhc3Q8SW5qZWN0ZWRTY3JpcHRIb3N0Kj4ocGFyYW1ldGVyKTsKQEAgLTE2
NCwxOCArMTcxLDE2IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEluamVjdGVkU2NyaXB0SG9z
dDo6aW50ZXJuYWxDb25zdHJ1Y3Rvck5hbWVDYWxsYmFjayhjb25zCiAgICAgcmV0dXJuIGFyZ3Nb
MF0tPlRvT2JqZWN0KCktPkdldENvbnN0cnVjdG9yTmFtZSgpOwogfQogCi12ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gVjhJbmplY3RlZFNjcmlwdEhvc3Q6OnB1c2hOb2RlUGF0aFRvRnJvbnRlbmRDYWxs
YmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQordjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4
SW5qZWN0ZWRTY3JpcHRIb3N0OjppbnNwZWN0Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYg
YXJncykKIHsKLSAgICBJTkNfU1RBVFMoIkluamVjdGVkU2NyaXB0SG9zdC5wdXNoTm9kZVBhdGhU
b0Zyb250ZW5kKCkiKTsKLSAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDMpCisgICAgSU5DX1NUQVRT
KCJJbmplY3RlZFNjcmlwdEhvc3QuaW5zcGVjdCgpIik7CisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkg
PCAxKQogICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogCiAgICAgSW5qZWN0ZWRTY3Jp
cHRIb3N0KiBob3N0ID0gVjhJbmplY3RlZFNjcmlwdEhvc3Q6OnRvTmF0aXZlKGFyZ3MuSG9sZGVy
KCkpOwogICAgIE5vZGUqIG5vZGUgPSBWOE5vZGU6OnRvTmF0aXZlKHY4OjpIYW5kbGU8djg6Ok9i
amVjdD46OkNhc3QoYXJnc1swXSkpOwotICAgIGJvb2wgd2l0aENoaWxkcmVuID0gYXJnc1sxXS0+
VG9Cb29sZWFuKCktPlZhbHVlKCk7Ci0gICAgYm9vbCBzZWxlY3RJblVJID0gYXJnc1syXS0+VG9C
b29sZWFuKCktPlZhbHVlKCk7CiAgICAgaWYgKG5vZGUpCi0gICAgICAgIHJldHVybiB2ODo6TnVt
YmVyOjpOZXcoaG9zdC0+cHVzaE5vZGVQYXRoVG9Gcm9udGVuZChub2RlLCB3aXRoQ2hpbGRyZW4s
IHNlbGVjdEluVUkpKTsKKyAgICAgICAgaG9zdC0+aW5zcGVjdChub2RlKTsKIAogICAgIHJldHVy
biB2ODo6VW5kZWZpbmVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvQ29kZUdlbmVyYXRvckluc3BlY3Rvci5wbSBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9D
b2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBtCmluZGV4IDY5ZGMwNmQuLmUyN2ViYzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBtCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnBtCkBA
IC01NSwxMCArNTUsNiBAQCAkdHlwZVRyYW5zZm9ybXsiRmlsZVN5c3RlbSJ9ID0gewogICAgICJo
ZWFkZXIiID0+ICJJbnNwZWN0b3JGaWxlU3lzdGVtQWdlbnQuaCIsCiAgICAgImRvbWFpbkFjY2Vz
c29yIiA9PiAibV9pbnNwZWN0b3JBZ2VudC0+ZmlsZVN5c3RlbUFnZW50KCkiLAogfTsKLSR0eXBl
VHJhbnNmb3JteyJJbmplY3RlZFNjcmlwdCJ9ID0gewotICAgICJmb3J3YXJkSGVhZGVyIiA9PiAi
SW5qZWN0ZWRTY3JpcHRIb3N0LmgiLAotICAgICJkb21haW5BY2Nlc3NvciIgPT4gIm1faW5zcGVj
dG9yQWdlbnQtPmluamVjdGVkU2NyaXB0QWdlbnQoKSIsCi19OwogJHR5cGVUcmFuc2Zvcm17Iklu
c3BlY3RvciJ9ID0gewogICAgICJmb3J3YXJkSGVhZGVyIiA9PiAiSW5zcGVjdG9yQWdlbnQuaCIs
CiAgICAgImRvbWFpbkFjY2Vzc29yIiA9PiAibV9pbnNwZWN0b3JBZ2VudCIsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcAppbmRleCA5ZmQ2MDZiLi5kYjkwYmQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHAKQEAgLTMz
LDcgKzMzLDkgQEAKIAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAKKyNpbmNsdWRlICJJbmplY3Rl
ZFNjcmlwdEhvc3QuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKKyNpbmNsdWRlICJO
b2RlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJTY3JpcHRGdW5j
dGlvbkNhbGwuaCIKIApAQCAtNjMsMTQgKzY1LDYgQEAgdm9pZCBJbmplY3RlZFNjcmlwdDo6ZXZh
bHVhdGVPbkNhbGxGcmFtZShQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY2FsbEZyYW1lSWQK
ICAgICBtYWtlQ2FsbChmdW5jdGlvbiwgcmVzdWx0KTsKIH0KIAotdm9pZCBJbmplY3RlZFNjcmlw
dDo6ZXZhbHVhdGVPblNlbGYoY29uc3QgU3RyaW5nJiBmdW5jdGlvbkJvZHksIFBhc3NSZWZQdHI8
SW5zcGVjdG9yQXJyYXk+IGFyZ3VtZW50c0FycmF5LCBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+KiBy
ZXN1bHQpCi17Ci0gICAgU2NyaXB0RnVuY3Rpb25DYWxsIGZ1bmN0aW9uKG1faW5qZWN0ZWRTY3Jp
cHRPYmplY3QsICJldmFsdWF0ZU9uU2VsZiIpOwotICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50
KGZ1bmN0aW9uQm9keSk7Ci0gICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoYXJndW1lbnRzQXJy
YXktPnRvSlNPTlN0cmluZygpKTsKLSAgICBtYWtlQ2FsbChmdW5jdGlvbiwgcmVzdWx0KTsKLX0K
LQogdm9pZCBJbmplY3RlZFNjcmlwdDo6Z2V0Q29tcGxldGlvbnMoY29uc3QgU3RyaW5nJiBleHBy
ZXNzaW9uLCBib29sIGluY2x1ZGVDb21tYW5kTGluZUFQSSwgUmVmUHRyPEluc3BlY3RvclZhbHVl
PiogcmVzdWx0KQogewogICAgIFNjcmlwdEZ1bmN0aW9uQ2FsbCBmdW5jdGlvbihtX2luamVjdGVk
U2NyaXB0T2JqZWN0LCAiZ2V0Q29tcGxldGlvbnMiKTsKQEAgLTk4LDExICs5MiwxOSBAQCB2b2lk
IEluamVjdGVkU2NyaXB0OjpnZXRQcm9wZXJ0aWVzKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0
PiBvYmplY3RJZCwgYm9vbCBpZwogICAgIG1ha2VDYWxsKGZ1bmN0aW9uLCByZXN1bHQpOwogfQog
Ci12b2lkIEluamVjdGVkU2NyaXB0OjpwdXNoTm9kZVRvRnJvbnRlbmQoUGFzc1JlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+IG9iamVjdElkLCBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+KiByZXN1bHQpCitO
b2RlKiBJbmplY3RlZFNjcmlwdDo6bm9kZUZvck9iamVjdElkKFBhc3NSZWZQdHI8SW5zcGVjdG9y
T2JqZWN0PiBvYmplY3RJZCkKIHsKLSAgICBTY3JpcHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24obV9p
bmplY3RlZFNjcmlwdE9iamVjdCwgInB1c2hOb2RlVG9Gcm9udGVuZCIpOworICAgIGlmIChoYXNO
b1ZhbHVlKCkgfHwgIWNhbkFjY2Vzc0luc3BlY3RlZFdpbmRvdygpKQorICAgICAgICByZXR1cm4g
MDsKKworICAgIFNjcmlwdEZ1bmN0aW9uQ2FsbCBmdW5jdGlvbihtX2luamVjdGVkU2NyaXB0T2Jq
ZWN0LCAibm9kZUZvck9iamVjdElkIik7CiAgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQob2Jq
ZWN0SWQtPnRvSlNPTlN0cmluZygpKTsKLSAgICBtYWtlQ2FsbChmdW5jdGlvbiwgcmVzdWx0KTsK
KworICAgIGJvb2wgaGFkRXhjZXB0aW9uID0gZmFsc2U7CisgICAgU2NyaXB0VmFsdWUgcmVzdWx0
VmFsdWUgPSBmdW5jdGlvbi5jYWxsKGhhZEV4Y2VwdGlvbik7CisgICAgQVNTRVJUKCFoYWRFeGNl
cHRpb24pOworCisgICAgcmV0dXJuIEluamVjdGVkU2NyaXB0SG9zdDo6dG9Ob2RlKHJlc3VsdFZh
bHVlKTsKIH0KIAogdm9pZCBJbmplY3RlZFNjcmlwdDo6cmVzb2x2ZU5vZGUobG9uZyBub2RlSWQs
IFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4qIHJlc3VsdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luamVjdGVkU2NyaXB0LmgKaW5kZXggMGRkNDFhZS4uMWM0YzIzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmgKQEAgLTQxLDYgKzQxLDcgQEAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgSW5zcGVjdG9yVmFsdWU7CitjbGFzcyBOb2RlOwogY2xhc3Mg
U2NyaXB0RnVuY3Rpb25DYWxsOwogCiBjbGFzcyBJbmplY3RlZFNjcmlwdCB7CkBAIC01MiwxMSAr
NTMsMTAgQEAgcHVibGljOgogCiAgICAgdm9pZCBldmFsdWF0ZShjb25zdCBTdHJpbmcmIGV4cHJl
c3Npb24sIGNvbnN0IFN0cmluZyYgb2JqZWN0R3JvdXAsIGJvb2wgaW5jbHVkZUNvbW1hbmRMaW5l
QVBJLCBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+KiByZXN1bHQpOwogICAgIHZvaWQgZXZhbHVhdGVP
bkNhbGxGcmFtZShQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY2FsbEZyYW1lSWQsIGNvbnN0
IFN0cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nJiBvYmplY3RHcm91cCwgYm9vbCBpbmNs
dWRlQ29tbWFuZExpbmVBUEksIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4qIHJlc3VsdCk7Ci0gICAg
dm9pZCBldmFsdWF0ZU9uU2VsZihjb25zdCBTdHJpbmcmIGZ1bmN0aW9uQm9keSwgUGFzc1JlZlB0
cjxJbnNwZWN0b3JBcnJheT4gYXJndW1lbnRzQXJyYXksIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4q
IHJlc3VsdCk7CiAgICAgdm9pZCBnZXRDb21wbGV0aW9ucyhjb25zdCBTdHJpbmcmIGV4cHJlc3Np
b24sIGJvb2wgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+KiBy
ZXN1bHQpOwogICAgIHZvaWQgZ2V0Q29tcGxldGlvbnNPbkNhbGxGcmFtZShQYXNzUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gY2FsbEZyYW1lSWQsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgYm9v
bCBpbmNsdWRlQ29tbWFuZExpbmVBUEksIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4qIHJlc3VsdCk7
CiAgICAgdm9pZCBnZXRQcm9wZXJ0aWVzKFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBvYmpl
Y3RJZCwgYm9vbCBpZ25vcmVIYXNPd25Qcm9wZXJ0eSwgYm9vbCBhYmJyZXZpYXRlLCBSZWZQdHI8
SW5zcGVjdG9yVmFsdWU+KiByZXN1bHQpOwotICAgIHZvaWQgcHVzaE5vZGVUb0Zyb250ZW5kKFBh
c3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBvYmplY3RJZCwgUmVmUHRyPEluc3BlY3RvclZhbHVl
PiogcmVzdWx0KTsKKyAgICBOb2RlKiBub2RlRm9yT2JqZWN0SWQoUGFzc1JlZlB0cjxJbnNwZWN0
b3JPYmplY3Q+IG9iamVjdElkKTsKICAgICB2b2lkIHJlc29sdmVOb2RlKGxvbmcgbm9kZUlkLCBS
ZWZQdHI8SW5zcGVjdG9yVmFsdWU+KiByZXN1bHQpOwogICAgIHZvaWQgZ2V0Tm9kZVByb3BlcnRp
ZXMobG9uZyBub2RlSWQsIFBhc3NSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IHByb3BlcnRpZXNBcnJh
eSwgUmVmUHRyPEluc3BlY3RvclZhbHVlPiogcmVzdWx0KTsKICAgICB2b2lkIGdldE5vZGVQcm90
b3R5cGVzKGxvbmcgbm9kZUlkLCBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+KiByZXN1bHQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAppbmRleCBm
YmI0ZGJmLi41YjEzNzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5q
ZWN0ZWRTY3JpcHRIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0
ZWRTY3JpcHRIb3N0LmNwcApAQCAtODAsMTEgKzgwLDExIEBAIEluamVjdGVkU2NyaXB0SG9zdDo6
fkluamVjdGVkU2NyaXB0SG9zdCgpCiB7CiB9CiAKLXZvaWQgSW5qZWN0ZWRTY3JpcHRIb3N0Ojpl
dmFsdWF0ZU9uU2VsZihjb25zdCBTdHJpbmcmIGZ1bmN0aW9uQm9keSwgUGFzc1JlZlB0cjxJbnNw
ZWN0b3JBcnJheT4gYXJndW1lbnRzQXJyYXksIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4qIHJlc3Vs
dCkKK3ZvaWQgSW5qZWN0ZWRTY3JpcHRIb3N0OjppbnNwZWN0KE5vZGUqIG5vZGUpCiB7Ci0gICAg
SW5qZWN0ZWRTY3JpcHQgaW5qZWN0ZWRTY3JpcHQgPSBpbmplY3RlZFNjcmlwdEZvck1haW5GcmFt
ZSgpOwotICAgIGlmICghaW5qZWN0ZWRTY3JpcHQuaGFzTm9WYWx1ZSgpKQotICAgICAgICBpbmpl
Y3RlZFNjcmlwdC5ldmFsdWF0ZU9uU2VsZihmdW5jdGlvbkJvZHksIGFyZ3VtZW50c0FycmF5LCBy
ZXN1bHQpOworICAgIEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCA9IGluc3BlY3RvckRPTUFn
ZW50KCk7CisgICAgaWYgKGRvbUFnZW50KQorICAgICAgICBkb21BZ2VudC0+aW5zcGVjdChub2Rl
KTsKIH0KIAogdm9pZCBJbmplY3RlZFNjcmlwdEhvc3Q6OmNsZWFyQ29uc29sZU1lc3NhZ2VzKCkK
QEAgLTEwNSwxOSArMTA1LDYgQEAgTm9kZSogSW5qZWN0ZWRTY3JpcHRIb3N0Ojpub2RlRm9ySWQo
bG9uZyBub2RlSWQpCiAgICAgcmV0dXJuIDA7CiB9CiAKLWxvbmcgSW5qZWN0ZWRTY3JpcHRIb3N0
OjpwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKE5vZGUqIG5vZGUsIGJvb2wgd2l0aENoaWxkcmVuLCBi
b29sIHNlbGVjdEluVUkpCi17Ci0gICAgSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50ID0gaW5z
cGVjdG9yRE9NQWdlbnQoKTsKLSAgICBpZiAoIWRvbUFnZW50IHx8ICFmcm9udGVuZCgpKQotICAg
ICAgICByZXR1cm4gMDsKLSAgICBsb25nIGlkID0gZG9tQWdlbnQtPnB1c2hOb2RlUGF0aFRvRnJv
bnRlbmQobm9kZSk7Ci0gICAgaWYgKHdpdGhDaGlsZHJlbikKLSAgICAgICAgZG9tQWdlbnQtPnB1
c2hDaGlsZE5vZGVzVG9Gcm9udGVuZChpZCk7Ci0gICAgaWYgKHNlbGVjdEluVUkpCi0gICAgICAg
IGZyb250ZW5kKCktPnVwZGF0ZUZvY3VzZWROb2RlKGlkKTsKLSAgICByZXR1cm4gaWQ7Ci19Ci0K
IGxvbmcgSW5qZWN0ZWRTY3JpcHRIb3N0OjppbnNwZWN0ZWROb2RlKHVuc2lnbmVkIGxvbmcgbnVt
KQogewogICAgIEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCA9IGluc3BlY3RvckRPTUFnZW50
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRI
b3N0LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmgKaW5k
ZXggZjUxZjhkYS4uMDQ1YTg0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luamVjdGVkU2NyaXB0SG9zdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Jbmpl
Y3RlZFNjcmlwdEhvc3QuaApAQCAtNDcsNiArNDcsNyBAQCBjbGFzcyBJbnNwZWN0b3JGcm9udGVu
ZDsKIGNsYXNzIEluc3BlY3Rvck9iamVjdDsKIGNsYXNzIE5vZGU7CiBjbGFzcyBTY3JpcHRPYmpl
Y3Q7CitjbGFzcyBTY3JpcHRWYWx1ZTsKIGNsYXNzIFN0b3JhZ2U7CiAKIGNsYXNzIEluamVjdGVk
U2NyaXB0SG9zdCA6IHB1YmxpYyBSZWZDb3VudGVkPEluamVjdGVkU2NyaXB0SG9zdD4KQEAgLTU3
LDEwICs1OCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW5qZWN0
ZWRTY3JpcHRIb3N0KGluc3BlY3RvckFnZW50KSk7CiAgICAgfQogCisgICAgc3RhdGljIE5vZGUq
IHRvTm9kZShTY3JpcHRWYWx1ZSB2YWx1ZSk7CisKICAgICB+SW5qZWN0ZWRTY3JpcHRIb3N0KCk7
CiAKLSAgICAvLyBQYXJ0IG9mIHRoZSBwcm90b2NvbC4KLSAgICB2b2lkIGV2YWx1YXRlT25TZWxm
KGNvbnN0IFN0cmluZyYgZnVuY3Rpb25Cb2R5LCBQYXNzUmVmUHRyPEluc3BlY3RvckFycmF5PiBh
cmd1bWVudHNBcnJheSwgUmVmUHRyPEluc3BlY3RvclZhbHVlPiogcmVzdWx0KTsKKyAgICB2b2lk
IGluc3BlY3QoTm9kZSogbm9kZSk7CiAKICAgICBJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdl
bnQoKSB7IHJldHVybiBtX2luc3BlY3RvckFnZW50OyB9CiAgICAgdm9pZCBkaXNjb25uZWN0Q29u
dHJvbGxlcigpIHsgbV9pbnNwZWN0b3JBZ2VudCA9IDA7IH0KQEAgLTY5LDcgKzcxLDYgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBjb3B5VGV4dChjb25zdCBTdHJpbmcmIHRleHQpOwogICAgIE5vZGUq
IG5vZGVGb3JJZChsb25nIG5vZGVJZCk7Ci0gICAgbG9uZyBwdXNoTm9kZVBhdGhUb0Zyb250ZW5k
KE5vZGUqIG5vZGUsIGJvb2wgd2l0aENoaWxkcmVuLCBib29sIHNlbGVjdEluVUkpOwogICAgIGxv
bmcgaW5zcGVjdGVkTm9kZSh1bnNpZ25lZCBsb25nIG51bSk7CiAKICNpZiBFTkFCTEUoREFUQUJB
U0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRI
b3N0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhvc3QuaWRs
CmluZGV4IDVmYjU3YjQuLjlmMWMyZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbmplY3RlZFNjcmlwdEhvc3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbmplY3RlZFNjcmlwdEhvc3QuaWRsCkBAIC0zNiw3ICszNiw3IEBAIG1vZHVsZSBjb3JlIHsK
IAogICAgICAgICB2b2lkIGNvcHlUZXh0KGluIERPTVN0cmluZyB0ZXh0KTsKICAgICAgICAgW0N1
c3RvbV0gRE9NT2JqZWN0IG5vZGVGb3JJZChpbiBsb25nIG5vZGVJZCk7Ci0gICAgICAgIFtDdXN0
b21dIGludCBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKGluIERPTU9iamVjdCBub2RlLCBpbiBib29s
ZWFuIHdpdGhDaGlsZHJlbiwgaW4gYm9vbGVhbiBzZWxlY3RJblVJKTsKKyAgICAgICAgW0N1c3Rv
bV0gaW50IGluc3BlY3QoaW4gRE9NT2JqZWN0IG5vZGUpOwogICAgICAgICBsb25nIGluc3BlY3Rl
ZE5vZGUoaW4gdW5zaWduZWQgbG9uZyBudW0pOwogICAgICAgICBbQ3VzdG9tXSBET01PYmplY3Qg
aW50ZXJuYWxDb25zdHJ1Y3Rvck5hbWUoaW4gRE9NT2JqZWN0IG9iamVjdCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcwppbmRleCBjODhl
OGU0Li4wYzdhNTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0
ZWRTY3JpcHRTb3VyY2UuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVk
U2NyaXB0U291cmNlLmpzCkBAIC0yODcsMTEgKzI4Nyw2IEBAIEluamVjdGVkU2NyaXB0LnByb3Rv
dHlwZSA9IHsKICAgICAgICAgfQogICAgIH0sCiAKLSAgICBnZXROb2RlSWQ6IGZ1bmN0aW9uKG5v
ZGUpCi0gICAgewotICAgICAgICByZXR1cm4gSW5qZWN0ZWRTY3JpcHRIb3N0LnB1c2hOb2RlUGF0
aFRvRnJvbnRlbmQobm9kZSwgZmFsc2UsIGZhbHNlKTsKLSAgICB9LAotCiAgICAgY2FsbEZyYW1l
czogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdmFyIGNhbGxGcmFtZSA9IEluamVjdGVkU2Ny
aXB0SG9zdC5jdXJyZW50Q2FsbEZyYW1lKCk7CkBAIC0zMzgsNiArMzMzLDE1IEBAIEluamVjdGVk
U2NyaXB0LnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHRoaXMuX2lkVG9XcmFwcGVkT2Jq
ZWN0W29iamVjdElkLmlkXTsKICAgICB9LAogCisgICAgbm9kZUZvck9iamVjdElkOiBmdW5jdGlv
bihvYmplY3RJZCkKKyAgICB7CisgICAgICAgIHZhciBwYXJzZWRPYmplY3RJZCA9IHRoaXMuX3Bh
cnNlT2JqZWN0SWQob2JqZWN0SWQpOworICAgICAgICB2YXIgb2JqZWN0ID0gdGhpcy5fb2JqZWN0
Rm9ySWQocGFyc2VkT2JqZWN0SWQpOworICAgICAgICBpZiAoIW9iamVjdCB8fCB0aGlzLl90eXBl
KG9iamVjdCkgIT09ICJub2RlIikKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICBy
ZXR1cm4gb2JqZWN0OworICAgIH0sCisKICAgICByZXNvbHZlTm9kZTogZnVuY3Rpb24obm9kZUlk
KQogICAgIHsKICAgICAgICAgdmFyIG5vZGUgPSB0aGlzLl9ub2RlRm9ySWQobm9kZUlkKTsKQEAg
LTM3NSwyMSArMzc5LDYgQEAgSW5qZWN0ZWRTY3JpcHQucHJvdG90eXBlID0gewogICAgICAgICBy
ZXR1cm4gcmVzdWx0OwogICAgIH0sCiAKLSAgICBwdXNoTm9kZVRvRnJvbnRlbmQ6IGZ1bmN0aW9u
KG9iamVjdElkKQotICAgIHsKLSAgICAgICAgdmFyIHBhcnNlZE9iamVjdElkID0gdGhpcy5fcGFy
c2VPYmplY3RJZChvYmplY3RJZCk7Ci0gICAgICAgIHZhciBvYmplY3QgPSB0aGlzLl9vYmplY3RG
b3JJZChwYXJzZWRPYmplY3RJZCk7Ci0gICAgICAgIGlmICghb2JqZWN0IHx8IHRoaXMuX3R5cGUo
b2JqZWN0KSAhPT0gIm5vZGUiKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBy
ZXR1cm4gSW5qZWN0ZWRTY3JpcHRIb3N0LnB1c2hOb2RlUGF0aFRvRnJvbnRlbmQob2JqZWN0LCBm
YWxzZSwgZmFsc2UpOwotICAgIH0sCi0KLSAgICBldmFsdWF0ZU9uU2VsZjogZnVuY3Rpb24oZnVu
Y0JvZHksIGFyZ3MpCi0gICAgewotICAgICAgICB2YXIgZnVuYyA9IGV2YWwoIigiICsgZnVuY0Jv
ZHkgKyAiKSIpOwotICAgICAgICByZXR1cm4gZnVuYy5hcHBseSh0aGlzLCBldmFsKCIoIiArIGFy
Z3MgKyAiKSIpIHx8IFtdKTsKLSAgICB9LAotCiAgICAgX2lzRGVmaW5lZDogZnVuY3Rpb24ob2Jq
ZWN0KQogICAgIHsKICAgICAgICAgcmV0dXJuIG9iamVjdCB8fCB0aGlzLl9pc0hUTUxBbGxDb2xs
ZWN0aW9uKG9iamVjdCk7CkBAIC03MDIsNyArNjkxLDcgQEAgQ29tbWFuZExpbmVBUElJbXBsLnBy
b3RvdHlwZSA9IHsKIAogICAgICAgICBpbnNwZWN0ZWRXaW5kb3cuY29uc29sZS5sb2cob2JqZWN0
KTsKICAgICAgICAgaWYgKGluamVjdGVkU2NyaXB0Ll90eXBlKG9iamVjdCkgPT09ICJub2RlIikK
LSAgICAgICAgICAgIEluamVjdGVkU2NyaXB0SG9zdC5wdXNoTm9kZVBhdGhUb0Zyb250ZW5kKG9i
amVjdCwgZmFsc2UsIHRydWUpOworICAgICAgICAgICAgSW5qZWN0ZWRTY3JpcHRIb3N0Lmluc3Bl
Y3Qob2JqZWN0KTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBzd2l0Y2ggKGluamVjdGVk
U2NyaXB0Ll9kZXNjcmliZShvYmplY3QpKSB7CiAgICAgICAgICAgICAgICAgY2FzZSAiRGF0YWJh
c2UiOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbAppbmRleCA4MGMyNGRiLi40
ZTZhYjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbApAQCAtNTUsNyAr
NTUsNiBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIHZvaWQgaGlkZURPTU5vZGVIaWdobGlnaHQo
KTsKICAgICAgICAgdm9pZCBoaWdobGlnaHRGcmFtZShpbiB1bnNpZ25lZCBsb25nIGZyYW1lSWQp
OwogICAgICAgICB2b2lkIGhpZGVGcmFtZUhpZ2hsaWdodCgpOwotICAgICAgICBbbm90aWZ5XSB2
b2lkIHVwZGF0ZUZvY3VzZWROb2RlKG91dCBsb25nIG5vZGVJZCk7CiAKICAgICAgICAgdm9pZCBz
ZXRVc2VyQWdlbnRPdmVycmlkZShpbiBTdHJpbmcgdXNlckFnZW50KTsKIApAQCAtODQsMTAgKzgz
LDYgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICB2b2lkIHJlbGVhc2VXcmFwcGVyT2JqZWN0R3Jv
dXAoaW4gbG9uZyBpbmplY3RlZFNjcmlwdElkLCBpbiBTdHJpbmcgb2JqZWN0R3JvdXApOwogICAg
IH07CiAKLSAgICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPUlOU1BFQ1RPUl0gSW5qZWN0ZWRTY3Jp
cHQgewotICAgICAgICB2b2lkIGV2YWx1YXRlT25TZWxmKGluIFN0cmluZyBmdW5jdGlvbkJvZHks
IGluIEFycmF5IGFyZ3VtZW50c0FycmF5LCBvdXQgVmFsdWUgcmVzdWx0KTsKLSAgICB9OwotCiAg
ICAgaW50ZXJmYWNlIFtDb25kaXRpb25hbD1JTlNQRUNUT1JdIENvbnNvbGUgewogICAgICAgICB2
b2lkIHNldENvbnNvbGVNZXNzYWdlc0VuYWJsZWQoaW4gYm9vbGVhbiBlbmFibGVkLCBvdXQgYm9v
bGVhbiBuZXdTdGF0ZSk7CiAgICAgICAgIFtub3RpZnldIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2Uo
b3V0IE9iamVjdCBtZXNzYWdlT2JqKTsKQEAgLTE2OSw3ICsxNjQsNyBAQCBtb2R1bGUgY29yZSB7
CiAgICAgICAgIHZvaWQgcmVzb2x2ZU5vZGUoaW4gbG9uZyBub2RlSWQsIG91dCBWYWx1ZSByZXN1
bHQpOwogICAgICAgICB2b2lkIGdldE5vZGVQcm9wZXJ0aWVzKGluIGxvbmcgbm9kZUlkLCBpbiBB
cnJheSBwcm9wZXJ0aWVzQXJyYXksIG91dCBWYWx1ZSByZXN1bHQpOwogICAgICAgICB2b2lkIGdl
dE5vZGVQcm90b3R5cGVzKGluIGxvbmcgbm9kZUlkLCBvdXQgVmFsdWUgcmVzdWx0KTsKLSAgICAg
ICAgdm9pZCBwdXNoTm9kZVRvRnJvbnRlbmQoaW4gT2JqZWN0IG9iamVjdElkLCBvdXQgVmFsdWUg
cmVzdWx0KTsKKyAgICAgICAgdm9pZCBwdXNoTm9kZVRvRnJvbnRlbmQoaW4gT2JqZWN0IG9iamVj
dElkLCBvdXQgbG9uZyBub2RlSWQpOwogCiAgICAgICAgIFtub3RpZnldIHZvaWQgc2V0RG9jdW1l
bnQob3V0IFZhbHVlIHJvb3QpOyAvLyBGSVhNRTogc2hvdWxkIGJlIHJlcXVlc3RlZCBmcm9tIHRo
ZSBmcm9udC1lbmQgYXMgZ2V0RG9jdW1lbnQuCiAgICAgICAgIFtub3RpZnldIHZvaWQgYXR0cmli
dXRlc1VwZGF0ZWQob3V0IGxvbmcgaWQsIG91dCBBcnJheSBhdHRyaWJ1dGVzKTsKQEAgLTE3OSw2
ICsxNzQsNyBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIFtub3RpZnldIHZvaWQgY2hpbGROb2Rl
Q291bnRVcGRhdGVkKG91dCBsb25nIGlkLCBvdXQgaW50IG5ld1ZhbHVlKTsKICAgICAgICAgW25v
dGlmeV0gdm9pZCBjaGlsZE5vZGVJbnNlcnRlZChvdXQgbG9uZyBwYXJlbnRJZCwgb3V0IGxvbmcg
cHJldklkLCBvdXQgT2JqZWN0IG5vZGUpOwogICAgICAgICBbbm90aWZ5XSB2b2lkIGNoaWxkTm9k
ZVJlbW92ZWQob3V0IGxvbmcgcGFyZW50SWQsIG91dCBsb25nIGlkKTsKKyAgICAgICAgW25vdGlm
eV0gdm9pZCBpbnNwZWN0RWxlbWVudFJlcXVlc3RlZChvdXQgbG9uZyBub2RlSWQpOwogICAgIH07
CiAKICAgICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPUlOU1BFQ1RPUl0gQ1NTIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuY3BwCmluZGV4IDM2OTM4NDQuLmE1ZDMw
NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmNwcApAQCAt
MjM0LDggKzIzNCw3IEBAIHZvaWQgSW5zcGVjdG9yQWdlbnQ6OmZvY3VzTm9kZSgpCiAgICAgQVNT
RVJUKG1fZnJvbnRlbmQpOwogICAgIEFTU0VSVChtX25vZGVUb0ZvY3VzKTsKIAotICAgIGxvbmcg
aWQgPSBtX2RvbUFnZW50LT5wdXNoTm9kZVBhdGhUb0Zyb250ZW5kKG1fbm9kZVRvRm9jdXMuZ2V0
KCkpOwotICAgIG1fZnJvbnRlbmQtPnVwZGF0ZUZvY3VzZWROb2RlKGlkKTsKKyAgICBtX2RvbUFn
ZW50LT5pbnNwZWN0KG1fbm9kZVRvRm9jdXMuZ2V0KCkpOwogICAgIG1fbm9kZVRvRm9jdXMgPSAw
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5oCmluZGV4IDhm
OTRmMDAuLjA0NGU4MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2Vu
dC5oCkBAIC0xNTAsNyArMTUwLDYgQEAgcHVibGljOgogICAgIEluc3BlY3RvckNvbnNvbGVBZ2Vu
dCogY29uc29sZUFnZW50KCkgeyByZXR1cm4gbV9jb25zb2xlQWdlbnQuZ2V0KCk7IH0KICAgICBJ
bnNwZWN0b3JDU1NBZ2VudCogY3NzQWdlbnQoKSB7IHJldHVybiBtX2Nzc0FnZW50LmdldCgpOyB9
CiAgICAgSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50KCkgeyByZXR1cm4gbV9kb21BZ2VudC5n
ZXQoKTsgfQotICAgIEluamVjdGVkU2NyaXB0SG9zdCogaW5qZWN0ZWRTY3JpcHRBZ2VudCgpIHsg
cmV0dXJuIG1faW5qZWN0ZWRTY3JpcHRIb3N0LmdldCgpOyB9CiAgICAgSW5zcGVjdG9yUnVudGlt
ZUFnZW50KiBydW50aW1lQWdlbnQoKSB7IHJldHVybiBtX3J1bnRpbWVBZ2VudC5nZXQoKTsgfQog
ICAgIEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQoKSB7IHJldHVybiBtX3Rp
bWVsaW5lQWdlbnQuZ2V0KCk7IH0KICNpZiBFTkFCTEUoREFUQUJBU0UpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAppbmRleCAxZjUyNGFhLi5jZjZm
YzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5j
cHAKQEAgLTM4MCw2ICszODAsMTYgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cHVzaENoaWxk
Tm9kZXNUb0Zyb250ZW5kKGxvbmcgbm9kZUlkKQogICAgIG1fZnJvbnRlbmQtPnNldENoaWxkTm9k
ZXMobm9kZUlkLCBjaGlsZHJlbi5yZWxlYXNlKCkpOwogfQogCit2b2lkIEluc3BlY3RvckRPTUFn
ZW50OjppbnNwZWN0KE5vZGUqIG5vZGUpCit7CisgICAgaWYgKCFtX2Zyb250ZW5kKQorICAgICAg
ICByZXR1cm47CisKKyAgICBsb25nIGlkID0gcHVzaE5vZGVQYXRoVG9Gcm9udGVuZChub2RlKTsK
KyAgICBpZiAoaWQpCisgICAgICAgIG1fZnJvbnRlbmQtPmluc3BlY3RFbGVtZW50UmVxdWVzdGVk
KGlkKTsKK30KKwogbG9uZyBJbnNwZWN0b3JET01BZ2VudDo6aW5zcGVjdGVkTm9kZSh1bnNpZ25l
ZCBsb25nIG51bSkKIHsKICAgICBpZiAobnVtIDwgbV9pbnNwZWN0ZWROb2Rlcy5zaXplKCkpCkBA
IC03NzgsMTEgKzc4OCwxNCBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpnZXROb2RlUHJvdG90
eXBlcyhsb25nIG5vZGVJZCwgUmVmUHRyPEluc3BlY3RvclZhbHVlPiogcgogICAgICAgICBpbmpl
Y3RlZFNjcmlwdC5nZXROb2RlUHJvdG90eXBlcyhub2RlSWQsIHJlc3VsdCk7CiB9CiAKLXZvaWQg
SW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2RlVG9Gcm9udGVuZChQYXNzUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4gb2JqZWN0SWQsIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4qIHJlc3VsdCkKK3ZvaWQg
SW5zcGVjdG9yRE9NQWdlbnQ6OnB1c2hOb2RlVG9Gcm9udGVuZChQYXNzUmVmUHRyPEluc3BlY3Rv
ck9iamVjdD4gb2JqZWN0SWQsIGxvbmcqIG5vZGVJZCkKIHsKICAgICBJbmplY3RlZFNjcmlwdCBp
bmplY3RlZFNjcmlwdCA9IG1faW5qZWN0ZWRTY3JpcHRIb3N0LT5pbmplY3RlZFNjcmlwdEZvck9i
amVjdElkKG9iamVjdElkLmdldCgpKTsKLSAgICBpZiAoIWluamVjdGVkU2NyaXB0Lmhhc05vVmFs
dWUoKSkKLSAgICAgICAgaW5qZWN0ZWRTY3JpcHQucHVzaE5vZGVUb0Zyb250ZW5kKG9iamVjdElk
LCByZXN1bHQpOworICAgIE5vZGUqIG5vZGUgPSBpbmplY3RlZFNjcmlwdC5ub2RlRm9yT2JqZWN0
SWQob2JqZWN0SWQpOworICAgIGlmIChub2RlKQorICAgICAgICAqbm9kZUlkID0gcHVzaE5vZGVQ
YXRoVG9Gcm9udGVuZChub2RlKTsKKyAgICBlbHNlCisgICAgICAgICpub2RlSWQgPSAwOwogfQog
CiBTdHJpbmcgSW5zcGVjdG9yRE9NQWdlbnQ6OmRvY3VtZW50VVJMU3RyaW5nKERvY3VtZW50KiBk
b2N1bWVudCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JET01BZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFn
ZW50LmgKaW5kZXggNTA2ZDhhNy4uODNiZmUxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckRPTUFnZW50LmgKQEAgLTExNSw3ICsxMTUsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCByZXNvbHZlTm9kZShsb25nIG5vZGVJZCwgUmVmUHRyPEluc3BlY3RvclZhbHVlPiogcmVz
dWx0KTsKICAgICB2b2lkIGdldE5vZGVQcm9wZXJ0aWVzKGxvbmcgbm9kZUlkLCBQYXNzUmVmUHRy
PEluc3BlY3RvckFycmF5PiBwcm9wZXJ0aWVzQXJyYXksIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4q
IHJlc3VsdCk7CiAgICAgdm9pZCBnZXROb2RlUHJvdG90eXBlcyhsb25nIG5vZGVJZCwgUmVmUHRy
PEluc3BlY3RvclZhbHVlPiogcmVzdWx0KTsKLSAgICB2b2lkIHB1c2hOb2RlVG9Gcm9udGVuZChQ
YXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gb2JqZWN0SWQsIFJlZlB0cjxJbnNwZWN0b3JWYWx1
ZT4qIHJlc3VsdCk7CisgICAgdm9pZCBwdXNoTm9kZVRvRnJvbnRlbmQoUGFzc1JlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+IG9iamVjdElkLCBsb25nKiBub2RlSWQpOwogCiAgICAgLy8gTWV0aG9kcyBj
YWxsZWQgZnJvbSB0aGUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLgogICAgIHZvaWQgc2V0RG9j
dW1lbnQoRG9jdW1lbnQqKTsKQEAgLTEzNCw2ICsxMzQsNyBAQCBwdWJsaWM6CiAgICAgbG9uZyBw
dXNoTm9kZVBhdGhUb0Zyb250ZW5kKE5vZGUqKTsKICAgICB2b2lkIHB1c2hDaGlsZE5vZGVzVG9G
cm9udGVuZChsb25nIG5vZGVJZCk7CiAgICAgdm9pZCBwdXNoTm9kZUJ5UGF0aFRvRnJvbnRlbmQo
Y29uc3QgU3RyaW5nJiBwYXRoLCBsb25nKiBub2RlSWQpOworICAgIHZvaWQgaW5zcGVjdChOb2Rl
KiBub2RlKTsKICAgICBsb25nIGluc3BlY3RlZE5vZGUodW5zaWduZWQgbG9uZyBudW0pOwogICAg
IHZvaWQgY29weU5vZGUobG9uZyBub2RlSWQpOwogICAgIHZvaWQgc2V0RE9NTGlzdGVuZXIoRE9N
TGlzdGVuZXIqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvQXVkaXRSdWxlcy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXVk
aXRSdWxlcy5qcwppbmRleCAyMjg5OWFlLi4wN2RmZDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0F1ZGl0UnVsZXMuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BdWRpdFJ1bGVzLmpzCkBAIC02NSwxMCArNjUsMTYgQEAg
V2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuZ2V0RG9tYWluVG9SZXNvdXJjZXNNYXAgPSBmdW5jdGlv
bihyZXNvdXJjZXMsIHR5cGVzLCBuZWUKIAogV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuZXZhbHVh
dGVJblRhcmdldFdpbmRvdyA9IGZ1bmN0aW9uKGZ1bmMsIGFyZ3MsIGNhbGxiYWNrKQogewotICAg
IEluamVjdGVkU2NyaXB0QWdlbnQuZXZhbHVhdGVPblNlbGYoZnVuYy50b1N0cmluZygpLCBhcmdz
LCBjYWxsYmFjayk7CisgICAgZnVuY3Rpb24gbXljYWxsYmFjayhyZXN1bHQpCisgICAgeworICAg
ICAgICBpZiAocmVzdWx0KQorICAgICAgICAgICAgY2FsbGJhY2soSlNPTi5wYXJzZShyZXN1bHQu
ZGVzY3JpcHRpb24pKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY2FsbGJhY2sobnVsbCk7
CisgICAgfQorICAgIFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZSgiSlNPTi5zdHJpbmdpZnkoKCIgKyBm
dW5jICsgIikoIiArIEpTT04uc3RyaW5naWZ5KGFyZ3MpICsgIikpIiwgIm5vbmUiLCBmYWxzZSwg
bXljYWxsYmFjayk7CiB9CiAKLQogV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuR3ppcFJ1bGUgPSBm
dW5jdGlvbigpCiB7CiAgICAgV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZS5jYWxsKHRoaXMsICJuZXR3
b3JrLWd6aXAiLCAiRW5hYmxlIGd6aXAgY29tcHJlc3Npb24iKTsKQEAgLTY0NCwyNCArNjUwLDIz
IEBAIFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVzLkltYWdlRGltZW5zaW9uc1J1bGUgPSBmdW5jdGlv
bigpCiBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5JbWFnZURpbWVuc2lvbnNSdWxlLnByb3RvdHlw
ZSA9IHsKICAgICBkb1J1bjogZnVuY3Rpb24ocmVzb3VyY2VzLCByZXN1bHQsIGNhbGxiYWNrKQog
ICAgIHsKLSAgICAgICAgZnVuY3Rpb24gZG9uZUNhbGxiYWNrKGNvbnRleHQpCisgICAgICAgIHZh
ciB1cmxUb05vRGltZW5zaW9uQ291bnQgPSB7fTsKKworICAgICAgICBmdW5jdGlvbiBkb25lQ2Fs
bGJhY2soKQogICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgbWFwID0gY29udGV4dC51cmxUb05v
RGltZW5zaW9uQ291bnQ7Ci0gICAgICAgICAgICBmb3IgKHZhciB1cmwgaW4gbWFwKSB7CisgICAg
ICAgICAgICBmb3IgKHZhciB1cmwgaW4gdXJsVG9Ob0RpbWVuc2lvbkNvdW50KSB7CiAgICAgICAg
ICAgICAgICAgdmFyIGVudHJ5ID0gZW50cnkgfHwgcmVzdWx0LmFkZENoaWxkKCJBIHdpZHRoIGFu
ZCBoZWlnaHQgc2hvdWxkIGJlIHNwZWNpZmllZCBmb3IgYWxsIGltYWdlcyBpbiBvcmRlciB0byBz
cGVlZCB1cCBwYWdlIGRpc3BsYXkuIFRoZSBmb2xsb3dpbmcgaW1hZ2UocykgYXJlIG1pc3Npbmcg
YSB3aWR0aCBhbmQvb3IgaGVpZ2h0OiIsIHRydWUpOwogICAgICAgICAgICAgICAgIHZhciB2YWx1
ZSA9IFdlYkluc3BlY3Rvci5BdWRpdFJ1bGVSZXN1bHQubGlua2lmeURpc3BsYXlOYW1lKHVybCk7
Ci0gICAgICAgICAgICAgICAgaWYgKG1hcFt1cmxdID4gMSkKLSAgICAgICAgICAgICAgICAgICAg
dmFsdWUgKz0gU3RyaW5nLnNwcmludGYoIiAoJWQgdXNlcykiLCBtYXBbdXJsXSk7CisgICAgICAg
ICAgICAgICAgaWYgKHVybFRvTm9EaW1lbnNpb25Db3VudFt1cmxdID4gMSkKKyAgICAgICAgICAg
ICAgICAgICAgdmFsdWUgKz0gU3RyaW5nLnNwcmludGYoIiAoJWQgdXNlcykiLCB1cmxUb05vRGlt
ZW5zaW9uQ291bnRbdXJsXSk7CiAgICAgICAgICAgICAgICAgZW50cnkuYWRkQ2hpbGQodmFsdWUp
OwogICAgICAgICAgICAgICAgIHJlc3VsdC52aW9sYXRpb25Db3VudCsrOwogICAgICAgICAgICAg
fQogICAgICAgICAgICAgY2FsbGJhY2soZW50cnkgPyByZXN1bHQgOiBudWxsKTsKICAgICAgICAg
fQogCi0gICAgICAgIGZ1bmN0aW9uIGltYWdlU3R5bGVzUmVhZHkoaW1hZ2VJZCwgY29udGV4dCwg
c3R5bGVzKQorICAgICAgICBmdW5jdGlvbiBpbWFnZVN0eWxlc1JlYWR5KGltYWdlSWQsIGxhc3RD
YWxsLCBzdHlsZXMpCiAgICAgICAgIHsKLSAgICAgICAgICAgIC0tY29udGV4dC5pbWFnZXNMZWZ0
OwotCiAgICAgICAgICAgICBjb25zdCBub2RlID0gV2ViSW5zcGVjdG9yLmRvbUFnZW50Lm5vZGVG
b3JJZChpbWFnZUlkKTsKICAgICAgICAgICAgIHZhciBzcmMgPSBub2RlLmdldEF0dHJpYnV0ZSgi
c3JjIik7CiAgICAgICAgICAgICBpZiAoIXNyYy5hc1BhcnNlZFVSTCgpKSB7CkBAIC02NzcsOCAr
NjgyLDggQEAgV2ViSW5zcGVjdG9yLkF1ZGl0UnVsZXMuSW1hZ2VEaW1lbnNpb25zUnVsZS5wcm90
b3R5cGUgPSB7CiAKICAgICAgICAgICAgIGNvbnN0IGNvbXB1dGVkU3R5bGUgPSBzdHlsZXMuY29t
cHV0ZWRTdHlsZTsKICAgICAgICAgICAgIGlmIChjb21wdXRlZFN0eWxlLmdldFByb3BlcnR5VmFs
dWUoInBvc2l0aW9uIikgPT09ICJhYnNvbHV0ZSIpIHsKLSAgICAgICAgICAgICAgICBpZiAoIWNv
bnRleHQuaW1hZ2VzTGVmdCkKLSAgICAgICAgICAgICAgICAgICAgZG9uZUNhbGxiYWNrKGNvbnRl
eHQpOworICAgICAgICAgICAgICAgIGlmIChsYXN0Q2FsbCkKKyAgICAgICAgICAgICAgICAgICAg
ZG9uZUNhbGxiYWNrKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQog
CkBAIC03MDIsMzkgKzcwNyw2NiBAQCBXZWJJbnNwZWN0b3IuQXVkaXRSdWxlcy5JbWFnZURpbWVu
c2lvbnNSdWxlLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYg
KCF3aWR0aEZvdW5kIHx8ICFoZWlnaHRGb3VuZCkgewotICAgICAgICAgICAgICAgIGlmIChzcmMg
aW4gY29udGV4dC51cmxUb05vRGltZW5zaW9uQ291bnQpCi0gICAgICAgICAgICAgICAgICAgICsr
Y29udGV4dC51cmxUb05vRGltZW5zaW9uQ291bnRbc3JjXTsKKyAgICAgICAgICAgICAgICBpZiAo
c3JjIGluIHVybFRvTm9EaW1lbnNpb25Db3VudCkKKyAgICAgICAgICAgICAgICAgICAgKyt1cmxU
b05vRGltZW5zaW9uQ291bnRbc3JjXTsKICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAg
ICAgICAgICAgIGNvbnRleHQudXJsVG9Ob0RpbWVuc2lvbkNvdW50W3NyY10gPSAxOworICAgICAg
ICAgICAgICAgICAgICB1cmxUb05vRGltZW5zaW9uQ291bnRbc3JjXSA9IDE7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGlmIChsYXN0Q2FsbCkKKyAgICAgICAgICAgICAgICBkb25lQ2Fs
bGJhY2soKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGdldFN0eWxlcyhub2RlSWRz
KQorICAgICAgICB7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVJZHMubGVu
Z3RoOyArK2kpCisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLmdldFN0eWxl
c0FzeW5jKG5vZGVJZHNbaV0sIGltYWdlU3R5bGVzUmVhZHkuYmluZCh0aGlzLCBub2RlSWRzW2ld
LCBpID09PSBub2RlSWRzLmxlbmd0aCAtIDEpKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0
aW9uIHJlY2VpdmVkSW1hZ2VzKGFycmF5RWxlbWVudHMpCisgICAgICAgIHsKKyAgICAgICAgICAg
IGlmICghYXJyYXlFbGVtZW50cykKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2sobnVs
bCk7CisKKyAgICAgICAgICAgIHZhciBub2RlSWRzID0gW107CisKKyAgICAgICAgICAgIGZ1bmN0
aW9uIGFwcGVuZElkKGxhc3RDYWxsLCBub2RlSWQpCisgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgaWYgKG5vZGVJZCkKKyAgICAgICAgICAgICAgICAgICAgbm9kZUlkcy5wdXNoKG5vZGVJ
ZCk7CisKKyAgICAgICAgICAgICAgICBpZiAobGFzdENhbGwpCisgICAgICAgICAgICAgICAgICAg
IGdldFN0eWxlcyhub2RlSWRzKTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgaWYgKCFj
b250ZXh0LmltYWdlc0xlZnQpCi0gICAgICAgICAgICAgICAgZG9uZUNhbGxiYWNrKGNvbnRleHQp
OworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGFycmF5RWxlbWVudHMgJiYgaSA8IGFycmF5
RWxlbWVudHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBhcnJh
eUVsZW1lbnRzW2ldLnZhbHVlOworICAgICAgICAgICAgICAgIHZhbHVlLnB1c2hOb2RlVG9Gcm9u
dGVuZChhcHBlbmRJZC5iaW5kKHRoaXMsIGkgPT09IGFycmF5RWxlbWVudHMubGVuZ3RoIC0gMSkp
OworICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgZnVuY3Rpb24gcmVjZWl2ZWRJ
bWFnZXMoaW1hZ2VJZHMpCisgICAgICAgIGZ1bmN0aW9uIHJlY2VpdmVkSW1hZ2VzQXJyYXkocGF5
bG9hZCkKICAgICAgICAgewotICAgICAgICAgICAgaWYgKCFpbWFnZUlkcyB8fCAhaW1hZ2VJZHMu
bGVuZ3RoKQorICAgICAgICAgICAgaWYgKCFwYXlsb2FkKQogICAgICAgICAgICAgICAgIHJldHVy
biBjYWxsYmFjayhudWxsKTsKLSAgICAgICAgICAgIHZhciBjb250ZXh0ID0ge2ltYWdlc0xlZnQ6
IGltYWdlSWRzLmxlbmd0aCwgdXJsVG9Ob0RpbWVuc2lvbkNvdW50OiB7fX07Ci0gICAgICAgICAg
ICBmb3IgKHZhciBpID0gaW1hZ2VJZHMubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpCi0gICAgICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01vZGVsLmdldFN0eWxlc0FzeW5jKGltYWdlSWRzW2ld
LCBpbWFnZVN0eWxlc1JlYWR5LmJpbmQodGhpcywgaW1hZ2VJZHNbaV0sIGNvbnRleHQpKTsKKwor
ICAgICAgICAgICAgdmFyIG5vZGVJZHNBcnJheSA9IFdlYkluc3BlY3Rvci5SZW1vdGVPYmplY3Qu
ZnJvbVBheWxvYWQocGF5bG9hZCkKKyAgICAgICAgICAgIG5vZGVJZHNBcnJheS5nZXRPd25Qcm9w
ZXJ0aWVzKGZhbHNlLCByZWNlaXZlZEltYWdlcyk7CiAgICAgICAgIH0KIAogICAgICAgICBmdW5j
dGlvbiBwdXNoSW1hZ2VOb2RlcygpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGNvbnN0IG5vZGVJ
ZHMgPSBbXTsKKyAgICAgICAgICAgIHZhciByZXN1bHQgPSBbXTsKICAgICAgICAgICAgIHZhciBu
b2RlcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbWciKTsKKwogICAgICAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAg
ICAgIGlmICghbm9kZXNbaV0uc3JjKQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAg
ICAgICAgICAgICAgICB2YXIgbm9kZUlkID0gdGhpcy5nZXROb2RlSWQobm9kZXNbaV0pOwotICAg
ICAgICAgICAgICAgIG5vZGVJZHMucHVzaChub2RlSWQpOworICAgICAgICAgICAgICAgIGlmIChu
b2Rlc1tpXS5zcmMpCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKG5vZGVzW2ldKTsK
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBub2RlSWRzOworICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQogCi0gICAgICAgIFdlYkluc3BlY3Rvci5BdWRpdFJ1
bGVzLmV2YWx1YXRlSW5UYXJnZXRXaW5kb3cocHVzaEltYWdlTm9kZXMsIFtdLCByZWNlaXZlZElt
YWdlcyk7CisgICAgICAgIFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZSgiKCIgKyBwdXNoSW1hZ2VOb2Rl
cyArICIpKCkiLCAibm9uZSIsIGZhbHNlLCByZWNlaXZlZEltYWdlc0FycmF5KTsKICAgICB9CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29s
ZVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3
LmpzCmluZGV4IDQ2MzI5ZWIuLjBlYmE4YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Db25zb2xlVmlldy5qcwpAQCAtMzU3LDcgKzM1Nyw2IEBAIFdlYklu
c3BlY3Rvci5Db25zb2xlVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIC8vIENvbGxlY3QgY29t
bWEgc2VwYXJhdGVkIG9iamVjdCBwcm9wZXJ0aWVzIGZvciB0aGUgY29tcGxldGlvbi4KIAogICAg
ICAgICB2YXIgaW5jbHVkZUNvbW1hbmRMaW5lQVBJID0gKCFkb3ROb3RhdGlvbiAmJiAhYnJhY2tl
dE5vdGF0aW9uKTsKLSAgICAgICAgdmFyIGluamVjdGVkU2NyaXB0QWNjZXNzOwogICAgICAgICBp
ZiAoV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzICYmIFdlYkluc3BlY3Rvci5wYW5lbHMuc2Ny
aXB0cy5wYXVzZWQpCiAgICAgICAgICAgICBEZWJ1Z2dlckFnZW50LmdldENvbXBsZXRpb25zT25D
YWxsRnJhbWUoV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLnNlbGVjdGVkQ2FsbEZyYW1lSWQo
KSwgZXhwcmVzc2lvblN0cmluZywgaW5jbHVkZUNvbW1hbmRMaW5lQVBJLCByZXBvcnRDb21wbGV0
aW9ucyk7CiAgICAgICAgIGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRE9NQWdlbnQuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0RPTUFnZW50LmpzCmluZGV4IDA3Zjg0MjQuLjQ2NzBkYTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcwpAQCAtNDk1LDYgKzQ5NSwxMSBA
QCBXZWJJbnNwZWN0b3IuRE9NRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CiAgICAgY2hpbGROb2Rl
UmVtb3ZlZDogZnVuY3Rpb24ocGFyZW50SWQsIG5vZGVJZCkKICAgICB7CiAgICAgICAgIHRoaXMu
X2RvbUFnZW50Ll9jaGlsZE5vZGVSZW1vdmVkKHBhcmVudElkLCBub2RlSWQpOworICAgIH0sCisK
KyAgICBpbnNwZWN0RWxlbWVudFJlcXVlc3RlZDogZnVuY3Rpb24obm9kZUlkKQorICAgIHsKKyAg
ICAgICAgV2ViSW5zcGVjdG9yLnVwZGF0ZUZvY3VzZWROb2RlKG5vZGVJZCk7CiAgICAgfQogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1JlbW90ZU9i
amVjdC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0
LmpzCmluZGV4IGViNzBkNjAuLjhlNzdjMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvUmVtb3RlT2JqZWN0LmpzCkBAIC0xMzIsNyArMTMyLDEwIEBAIFdl
Ykluc3BlY3Rvci5SZW1vdGVPYmplY3QucHJvdG90eXBlID0gewogCiAgICAgcHVzaE5vZGVUb0Zy
b250ZW5kOiBmdW5jdGlvbihjYWxsYmFjaykKICAgICB7Ci0gICAgICAgIERPTUFnZW50LnB1c2hO
b2RlVG9Gcm9udGVuZCh0aGlzLl9vYmplY3RJZCwgY2FsbGJhY2spOworICAgICAgICBpZiAodGhp
cy5fb2JqZWN0SWQpCisgICAgICAgICAgICBET01BZ2VudC5wdXNoTm9kZVRvRnJvbnRlbmQodGhp
cy5fb2JqZWN0SWQsIGNhbGxiYWNrKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY2FsbGJh
Y2soMCk7CiAgICAgfQogfQogCg==
</data>
<flag name="review"
          id="75088"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>