<?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>108943</bug_id>
          
          <creation_ts>2013-02-05 07:39:41 -0800</creation_ts>
          <short_desc>Web Inspector: Navigator should show tree element for each folder in the source path.</short_desc>
          <delta_ts>2014-12-13 13:46:45 -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>1</everconfirmed>
          <reporter name="Vsevolod Vlasov">vsevik</reporter>
          <assigned_to name="Vsevolod Vlasov">vsevik</assigned_to>
          <cc>abarth</cc>
    
    <cc>apavlov</cc>
    
    <cc>bajones</cc>
    
    <cc>buildbot</cc>
    
    <cc>burg</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>825478</commentid>
    <comment_count>0</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-02-05 07:39:41 -0800</bug_when>
    <thetext>NavigatorView now renders tree element for each folder in uiSourceCode uri.
ScriptsNavigator has horizontal scroll now.
File system projects now have displayName property that allows us to show several root file system folders
with the same name in the navigator (e.g. &apos;Source/WebCore/inspector&apos; and &apos;LayoutTests/inspector&apos;).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825488</commentid>
    <comment_count>1</comment_count>
      <attachid>186626</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-02-05 07:49:47 -0800</bug_when>
    <thetext>Created attachment 186626
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837371</commentid>
    <comment_count>2</comment_count>
      <attachid>189290</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-02-20 05:24:00 -0800</bug_when>
    <thetext>Created attachment 189290
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837372</commentid>
    <comment_count>3</comment_count>
      <attachid>189291</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-02-20 05:27:20 -0800</bug_when>
    <thetext>Created attachment 189291
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837373</commentid>
    <comment_count>4</comment_count>
      <attachid>189292</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-02-20 05:28:08 -0800</bug_when>
    <thetext>Created attachment 189292
screenshot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837396</commentid>
    <comment_count>5</comment_count>
      <attachid>189291</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-20 06:04:16 -0800</bug_when>
    <thetext>Comment on attachment 189291
Patch

Attachment 189291 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16648294

New failing tests:
inspector/debugger/scripts-file-selector.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837554</commentid>
    <comment_count>6</comment_count>
      <attachid>189291</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-20 10:28:40 -0800</bug_when>
    <thetext>Comment on attachment 189291
Patch

Attachment 189291 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16648419

New failing tests:
inspector/debugger/scripts-file-selector.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838268</commentid>
    <comment_count>7</comment_count>
      <attachid>189291</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-21 02:50:04 -0800</bug_when>
    <thetext>Comment on attachment 189291
Patch

Attachment 189291 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16651920

New failing tests:
inspector/debugger/scripts-file-selector.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845115</commentid>
    <comment_count>8</comment_count>
      <attachid>190953</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-03-01 06:02:59 -0800</bug_when>
    <thetext>Created attachment 190953
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845257</commentid>
    <comment_count>9</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-03-01 09:59:56 -0800</bug_when>
    <thetext>Committed r144467: &lt;http://trac.webkit.org/changeset/144467&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845356</commentid>
    <comment_count>10</comment_count>
    <who name="Brandon Jones">bajones</who>
    <bug_when>2013-03-01 11:33:15 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845357</commentid>
    <comment_count>11</comment_count>
      <attachid>190997</attachid>
    <who name="Brandon Jones">bajones</who>
    <bug_when>2013-03-01 11:33:17 -0800</bug_when>
    <thetext>Created attachment 190997
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845360</commentid>
    <comment_count>12</comment_count>
      <attachid>190997</attachid>
    <who name="Brandon Jones">bajones</who>
    <bug_when>2013-03-01 11:36:07 -0800</bug_when>
    <thetext>Comment on attachment 190997
Patch

Apologies, patch accidentally applied to wrong issue.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186626</attachid>
            <date>2013-02-05 07:49:47 -0800</date>
            <delta_ts>2013-02-20 05:23:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108943-20130205194624.patch</filename>
            <type>text/plain</type>
            <size>30395</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxODg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTU0OTg2MmVhNTIyZDQ2
NDVhMmQ3MzQ4OTJjMzE2ZDE3ZmVlMDI3MC4uY2IzNmFjM2U3YzZiMjY1YzY1MzYxNjViN2U2OTc1
ZjU3ZjllMDFiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU3IEBACiAyMDEzLTAyLTA1ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IE5hdmlnYXRvciBzaG91bGQgc2hvdyB0cmVlIGVsZW1lbnQgZm9yIGVhY2ggZm9sZGVyIGlu
IHRoZSBzb3VyY2UgcGF0aC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwODk0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE5hdmlnYXRvclZpZXcgbm93IHJlbmRlcnMgdHJlZSBlbGVtZW50IGZvciBlYWNo
IGZvbGRlciBpbiB1aVNvdXJjZUNvZGUgdXJpLgorICAgICAgICBTY3JpcHRzTmF2aWdhdG9yIGhh
cyBob3Jpem9udGFsIHNjcm9sbCBub3cuCisgICAgICAgIEZpbGUgc3lzdGVtIHByb2plY3RzIG5v
dyBoYXZlIGRpc3BsYXlOYW1lIHByb3BlcnR5IHRoYXQgYWxsb3dzIHVzIHRvIHNob3cgc2V2ZXJh
bCByb290IGZpbGUgc3lzdGVtIGZvbGRlcnMKKyAgICAgICAgd2l0aCB0aGUgc2FtZSBuYW1lIGlu
IHRoZSBuYXZpZ2F0b3IgKGUuZy4gJ1NvdXJjZS9XZWJDb3JlL2luc3BlY3RvcicgYW5kICdMYXlv
dXRUZXN0cy9pbnNwZWN0b3InKS4KKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvSXNv
bGF0ZWRGaWxlU3lzdGVtTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSXNvbGF0ZWRG
aWxlU3lzdGVtTW9kZWwucHJvdG90eXBlLl9pbm5lckFkZEZpbGVTeXN0ZW0pOgorICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvTmF2aWdhdG9yVmlldy5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5OYXZpZ2F0b3JWaWV3KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JWaWV3
LnByb3RvdHlwZS5hZGRVSVNvdXJjZUNvZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdmln
YXRvclZpZXcucHJvdG90eXBlLl9nZXRPckNyZWF0ZURvbWFpbk5vZGUpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLk5hdmlnYXRvclZpZXcucHJvdG90eXBlLl9nZXRPckNyZWF0ZUZpbGVTeXN0ZW1O
b2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JWaWV3LnByb3RvdHlwZS5fZ2V0
T3JDcmVhdGVGb2xkZXJOb2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JWaWV3
LnByb3RvdHlwZS5fZ2V0T3JDcmVhdGVVSVNvdXJjZUNvZGVQYXJlbnROb2RlKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JWaWV3LnByb3RvdHlwZS5yZXZlYWxVSVNvdXJjZUNvZGUp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdmlnYXRvclZpZXcucHJvdG90eXBlLnJlbW92ZVVJ
U291cmNlQ29kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVmlldy5wcm90b3R5
cGUucmVzZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdmlnYXRvclZpZXcucHJvdG90eXBl
Ll9hZGRGb2xkZXJUcmVlRWxlbWVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdG9y
Vmlldy5wcm90b3R5cGUuX2FkZFNjcmlwdFRyZWVFbGVtZW50KToKKyAgICAgICAgKC50eXBlV2Vp
Z2h0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JUcmVlT3V0bGluZS5fdHJlZUVs
ZW1lbnRzQ29tcGFyZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQmFzZU5hdmlnYXRvclRyZWVF
bGVtZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5CYXNlTmF2aWdhdG9yVHJlZUVsZW1lbnQu
cHJvdG90eXBlLnR5cGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdmlnYXRvclRyZWVOb2Rl
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JUcmVlTm9kZS5wcm90b3R5cGUucG9w
dWxhdGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdmlnYXRvclRyZWVOb2RlLnByb3RvdHlw
ZS5pc1BvcHVsYXRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVHJlZU5vZGUu
cHJvdG90eXBlLmlzRW1wdHkpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdmlnYXRvclRyZWVO
b2RlLnByb3RvdHlwZS5jaGlsZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVHJl
ZU5vZGUucHJvdG90eXBlLmFwcGVuZENoaWxkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZp
Z2F0b3JUcmVlTm9kZS5wcm90b3R5cGUucmVtb3ZlQ2hpbGQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLk5hdmlnYXRvclRyZWVOb2RlLnByb3RvdHlwZS5hcHBlbmRVSVNvdXJjZUNvZGUpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLk5hdmlnYXRvclRyZWVOb2RlLnByb3RvdHlwZS5yZW1vdmVVSVNv
dXJjZUNvZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdmlnYXRvckZvbGRlclRyZWVFbGVt
ZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JGb2xkZXJUcmVlRWxlbWVudC5w
cm90b3R5cGUub25wb3B1bGF0ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdG9yRm9s
ZGVyVHJlZUVsZW1lbnQucHJvdG90eXBlLm9uYXR0YWNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5OYXZpZ2F0b3JTb3VyY2VUcmVlRWxlbWVudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9Xb3Jrc3BhY2UuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvamVjdC5wcm90b3R5
cGUuZGlzcGxheU5hbWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByb2plY3QucHJvdG90eXBl
LnNldERpc3BsYXlOYW1lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9qZWN0LnByb3RvdHlw
ZS5pc0ZpbGVTeXN0ZW1Qcm9qZWN0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL25h
dmlnYXRvclZpZXcuY3NzOgorICAgICAgICAoLm5hdmlnYXRvciA+IG9sKToKKyAgICAgICAgKC5u
YXZpZ2F0b3IgLmJhc2UtbmF2aWdhdG9yLXRyZWUtZWxlbWVudC10aXRsZSk6CisgICAgICAgICgu
bmF2aWdhdG9yLXRhYmJlZC1wYW5lIC5uYXZpZ2F0b3ItY29udGFpbmVyKToKKworMjAxMy0wMi0w
NSAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KKwogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBSZW1vdmUgc2hvdyBzY3JpcHQgZm9sZGVycyBzZXR0aW5nCiAgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg5NDAKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Jc29sYXRlZEZpbGVTeXN0ZW1N
b2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSXNvbGF0ZWRGaWxl
U3lzdGVtTW9kZWwuanMKaW5kZXggY2IyNzgyOThhNzUxYzhhOWI0MThlZjk4YmJmM2FjNjRlNWFm
MDI2ZC4uMDkxNzgwMTM4MTI3MjVkMjkzZWNlODFjYWM1OTZjZGU1OTcyOTExNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Jc29sYXRlZEZpbGVTeXN0ZW1N
b2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0lzb2xhdGVk
RmlsZVN5c3RlbU1vZGVsLmpzCkBAIC0xMDksNyArMTA5LDggQEAgV2ViSW5zcGVjdG9yLklzb2xh
dGVkRmlsZVN5c3RlbU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fZmlsZVN5c3Rl
bXNbZmlsZVN5c3RlbVBhdGhdID0gZmlsZVN5c3RlbTsKICAgICAgICAgdmFyIGZpbGVTeXN0ZW1J
ZCA9IHRoaXMuX2ZpbGVTeXN0ZW1NYXBwaW5nLmFkZEZpbGVTeXN0ZW1NYXBwaW5nKGZpbGVTeXN0
ZW1QYXRoKTsKICAgICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX3dvcmtzcGFjZS5wcm9qZWN0
KGZpbGVTeXN0ZW1JZCkpOwotICAgICAgICB0aGlzLl93b3Jrc3BhY2UuYWRkUHJvamVjdChmaWxl
U3lzdGVtSWQsIG5ldyBXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbVdvcmtzcGFjZVByb3ZpZGVyKHRo
aXMsIGZpbGVTeXN0ZW1QYXRoKSk7CisgICAgICAgIHZhciBwcm9qZWN0ID0gdGhpcy5fd29ya3Nw
YWNlLmFkZFByb2plY3QoZmlsZVN5c3RlbUlkLCBuZXcgV2ViSW5zcGVjdG9yLkZpbGVTeXN0ZW1X
b3Jrc3BhY2VQcm92aWRlcih0aGlzLCBmaWxlU3lzdGVtUGF0aCkpOworICAgICAgICBwcm9qZWN0
LnNldERpc3BsYXlOYW1lKGZpbGVTeXN0ZW1QYXRoLnN1YnN0cihmaWxlU3lzdGVtUGF0aC5sYXN0
SW5kZXhPZigiLyIpICsgMSkgfHwgIi8iKTsKICAgICB9LAogCiAgICAgLyoqCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05hdmlnYXRvclZpZXcuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05hdmlnYXRvclZpZXcuanMKaW5kZXgg
NTliNWNmODcxMmIyOTZjMzU5Yzc1Mjk1ZjJkNjZhODRlMjRhZjk4Yy4uZjY4NWFhNmJlZTEzNTkx
OWRiNmQ1NGM3NDljZDkyNTk3NGRjODRlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9OYXZpZ2F0b3JWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvTmF2aWdhdG9yVmlldy5qcwpAQCAtNTIsMTQgKzUyLDEyIEBAIFdl
Ykluc3BlY3Rvci5OYXZpZ2F0b3JWaWV3ID0gZnVuY3Rpb24oKQogICAgIHRoaXMuZWxlbWVudC5h
cHBlbmRDaGlsZChzY3JpcHRzT3V0bGluZUVsZW1lbnQpOwogICAgIHRoaXMuc2V0RGVmYXVsdEZv
Y3VzZWRFbGVtZW50KHRoaXMuX3NjcmlwdHNUcmVlLmVsZW1lbnQpOwogCi0gICAgLyoqIEB0eXBl
IHtPYmplY3QuPHN0cmluZywgV2ViSW5zcGVjdG9yLk5hdmlnYXRvckZvbGRlclRyZWVFbGVtZW50
Pn0gKi8KLSAgICB0aGlzLl9mb2xkZXJUcmVlRWxlbWVudHMgPSB7fTsKLSAgICAvKiogQHR5cGUg
e09iamVjdC48c3RyaW5nLCBBcnJheS48V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZT4+fSAqLwot
ICAgIHRoaXMuX2ZvbGRlclRyZWVFbGVtZW50c1VJU291cmNlQ29kZXMgPSB7fTsKLSAgICAvKiog
QHR5cGUge09iamVjdC48c3RyaW5nLCBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlPn0gKi8KLSAg
ICB0aGlzLl91aVNvdXJjZUNvZGVzID0ge307CiAgICAgLyoqIEB0eXBlIHtPYmplY3QuPHN0cmlu
ZywgV2ViSW5zcGVjdG9yLk5hdmlnYXRvclNvdXJjZVRyZWVFbGVtZW50Pn0gKi8KICAgICB0aGlz
Ll9zY3JpcHRUcmVlRWxlbWVudHMgPSB7fTsKKworICAgIHRoaXMucm9vdE5vZGUgPSBuZXcgV2Vi
SW5zcGVjdG9yLk5hdmlnYXRvclRyZWVOb2RlKHRoaXMsIFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JU
cmVlT3V0bGluZS5UeXBlcy5Sb290LCBudWxsLCAiIiwgIiIsICIiKQorICAgIHRoaXMucm9vdE5v
ZGUudHJlZUVsZW1lbnQgPSB0aGlzLl9zY3JpcHRzVHJlZTsKKyAgICB0aGlzLnJvb3ROb2RlLnBv
cHVsYXRlKCk7CiB9CiAKIFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JWaWV3LkV2ZW50cyA9IHsKQEAg
LTczLDEyICs3MSw2NCBAQCBXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVmlldy5wcm90b3R5cGUgPSB7
CiAgICAgICovCiAgICAgYWRkVUlTb3VyY2VDb2RlOiBmdW5jdGlvbih1aVNvdXJjZUNvZGUpCiAg
ICAgewotICAgICAgICBpZiAodGhpcy5fdWlTb3VyY2VDb2Rlc1t1aVNvdXJjZUNvZGUudXJpKCld
KQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGVzW3VpU291
cmNlQ29kZS51cmkoKV0gPSB1aVNvdXJjZUNvZGU7CisgICAgICAgIHZhciBub2RlID0gdGhpcy5f
Z2V0T3JDcmVhdGVVSVNvdXJjZUNvZGVQYXJlbnROb2RlKHVpU291cmNlQ29kZSk7CisgICAgICAg
IG5vZGUuYXBwZW5kVUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZSk7CisKKyAgICB9LAorCisgICAg
X2dldE9yQ3JlYXRlRG9tYWluTm9kZTogZnVuY3Rpb24odWlTb3VyY2VDb2RlKQorICAgIHsKKyAg
ICAgICAgaWYgKCF1aVNvdXJjZUNvZGUucGFyc2VkVVJMLmhvc3QpCisgICAgICAgICAgICByZXR1
cm4gdGhpcy5yb290Tm9kZTsKKyAgICAgICAgdmFyIGRvbWFpbk5vZGUgPSB0aGlzLnJvb3ROb2Rl
LmNoaWxkKHVpU291cmNlQ29kZS5wYXJzZWRVUkwuaG9zdCk7CisgICAgICAgIGlmIChkb21haW5O
b2RlKQorICAgICAgICAgICAgcmV0dXJuIGRvbWFpbk5vZGU7CisgICAgICAgIGRvbWFpbk5vZGUg
PSBuZXcgV2ViSW5zcGVjdG9yLk5hdmlnYXRvclRyZWVOb2RlKHRoaXMsIFdlYkluc3BlY3Rvci5O
YXZpZ2F0b3JUcmVlT3V0bGluZS5UeXBlcy5Eb21haW4sIHRoaXMucm9vdE5vZGUsIHVpU291cmNl
Q29kZS5wYXJzZWRVUkwuaG9zdCwgdWlTb3VyY2VDb2RlLnBhcnNlZFVSTC5ob3N0KTsKKyAgICAg
ICAgdGhpcy5yb290Tm9kZS5hcHBlbmRDaGlsZChkb21haW5Ob2RlKTsKKyAgICAgICAgcmV0dXJu
IGRvbWFpbk5vZGU7CisgICAgfSwKKworICAgIF9nZXRPckNyZWF0ZUZpbGVTeXN0ZW1Ob2RlOiBm
dW5jdGlvbih1aVNvdXJjZUNvZGUpCisgICAgeworICAgICAgICB2YXIgZmlsZVN5c3RlbU5vZGUg
PSB0aGlzLnJvb3ROb2RlLmNoaWxkKHVpU291cmNlQ29kZS5wcm9qZWN0KCkubmFtZSgpKTsKKyAg
ICAgICAgaWYgKGZpbGVTeXN0ZW1Ob2RlKQorICAgICAgICAgICAgcmV0dXJuIGZpbGVTeXN0ZW1O
b2RlOworICAgICAgICBmaWxlU3lzdGVtTm9kZSA9IG5ldyBXZWJJbnNwZWN0b3IuTmF2aWdhdG9y
VHJlZU5vZGUodGhpcywgV2ViSW5zcGVjdG9yLk5hdmlnYXRvclRyZWVPdXRsaW5lLlR5cGVzLkZp
bGVTeXN0ZW0sIHRoaXMucm9vdE5vZGUsIHVpU291cmNlQ29kZS5wcm9qZWN0KCkubmFtZSgpLCB1
aVNvdXJjZUNvZGUucHJvamVjdCgpLmRpc3BsYXlOYW1lKCkpOworICAgICAgICB0aGlzLnJvb3RO
b2RlLmFwcGVuZENoaWxkKGZpbGVTeXN0ZW1Ob2RlKTsKKyAgICAgICAgcmV0dXJuIGZpbGVTeXN0
ZW1Ob2RlOworICAgIH0sCisKKyAgICBfZ2V0T3JDcmVhdGVGb2xkZXJOb2RlOiBmdW5jdGlvbihw
YXJlbnROb2RlLCBuYW1lKQorICAgIHsKKyAgICAgICAgdmFyIGZvbGRlck5vZGUgPSBwYXJlbnRO
b2RlLmNoaWxkKG5hbWUpOworICAgICAgICBpZiAoZm9sZGVyTm9kZSkKKyAgICAgICAgICAgIHJl
dHVybiBmb2xkZXJOb2RlOworICAgICAgICBmb2xkZXJOb2RlID0gbmV3IFdlYkluc3BlY3Rvci5O
YXZpZ2F0b3JUcmVlTm9kZSh0aGlzLCBXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVHJlZU91dGxpbmUu
VHlwZXMuRm9sZGVyLCBwYXJlbnROb2RlLCBuYW1lLCBuYW1lKTsKKyAgICAgICAgcGFyZW50Tm9k
ZS5hcHBlbmRDaGlsZChmb2xkZXJOb2RlKTsKKyAgICAgICAgcmV0dXJuIGZvbGRlck5vZGU7Cisg
ICAgfSwKIAotICAgICAgICB2YXIgZm9sZGVyVHJlZUVsZW1lbnQgPSB0aGlzLmdldE9yQ3JlYXRl
Rm9sZGVyVHJlZUVsZW1lbnQodWlTb3VyY2VDb2RlKTsKLSAgICAgICAgdGhpcy5fYWRvcHRVSVNv
dXJjZUNvZGUoZm9sZGVyVHJlZUVsZW1lbnQsIHVpU291cmNlQ29kZSk7CisgICAgX2dldE9yQ3Jl
YXRlVUlTb3VyY2VDb2RlUGFyZW50Tm9kZTogZnVuY3Rpb24odWlTb3VyY2VDb2RlKQorICAgIHsK
KyAgICAgICAgdmFyIGZvbGRlcnNSb290Tm9kZSA9IHRoaXMucm9vdE5vZGU7CisgICAgICAgIHZh
ciBwYXRoID0gIiI7CisgICAgICAgIGlmICh1aVNvdXJjZUNvZGUucHJvamVjdCgpLmlzRmlsZVN5
c3RlbVByb2plY3QoKSkgeworICAgICAgICAgICAgZm9sZGVyc1Jvb3ROb2RlID0gdGhpcy5fZ2V0
T3JDcmVhdGVGaWxlU3lzdGVtTm9kZSh1aVNvdXJjZUNvZGUpOworICAgICAgICAgICAgdmFyIHVy
aSA9IHVpU291cmNlQ29kZS51cmkoKTsKKyAgICAgICAgICAgIHBhdGggPSB1cmkuc3Vic3RyKHVy
aS5pbmRleE9mKCIvIikpOworICAgICAgICAgICAgdmFyIGxhc3RJbmRleE9mU2xhc2ggPSBwYXRo
Lmxhc3RJbmRleE9mKCIvIik7CisgICAgICAgICAgICBwYXRoID0gcGF0aC5zdWJzdHIoMCwgbGFz
dEluZGV4T2ZTbGFzaCk7CisgICAgICAgIH0gZWxzZSBpZiAodWlTb3VyY2VDb2RlLnBhcnNlZFVS
TC5ob3N0KSB7CisgICAgICAgICAgICBmb2xkZXJzUm9vdE5vZGUgPSB0aGlzLl9nZXRPckNyZWF0
ZURvbWFpbk5vZGUodWlTb3VyY2VDb2RlKTsKKyAgICAgICAgICAgIHBhdGggPSB1aVNvdXJjZUNv
ZGUucGFyc2VkVVJMLmZvbGRlclBhdGhDb21wb25lbnRzOworICAgICAgICB9CisgICAgICAgIGlm
ICghcGF0aCkKKyAgICAgICAgICAgIHJldHVybiBmb2xkZXJzUm9vdE5vZGU7CisgICAgICAgIHZh
ciBmb2xkZXJzID0gcGF0aC5zcGxpdCgiLyIpOworICAgICAgICB2YXIgcGFyZW50Tm9kZSA9IGZv
bGRlcnNSb290Tm9kZTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCBmb2xkZXJzLmxlbmd0
aDsgKytpKQorICAgICAgICAgICAgcGFyZW50Tm9kZSA9IHRoaXMuX2dldE9yQ3JlYXRlRm9sZGVy
Tm9kZShwYXJlbnROb2RlLCBmb2xkZXJzW2ldKTsKKyAgICAgICAgcmV0dXJuIHBhcmVudE5vZGU7
CiAgICAgfSwKIAogICAgIF9nZXRPckNyZWF0ZVNjcmlwdFRyZWVFbGVtZW50OiBmdW5jdGlvbih1
aVNvdXJjZUNvZGUpCkBAIC0xNjEsMTUgKzIxMSw2IEBAIFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JW
aWV3LnByb3RvdHlwZSA9IHsKIAogICAgIC8qKgogICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9y
LlVJU291cmNlQ29kZX0gdWlTb3VyY2VDb2RlCi0gICAgICogQHJldHVybiB7Ym9vbGVhbn0KLSAg
ICAgKi8KLSAgICBpc1NjcmlwdFNvdXJjZUFkZGVkOiBmdW5jdGlvbih1aVNvdXJjZUNvZGUpCi0g
ICAgewotICAgICAgICByZXR1cm4gISF0aGlzLl91aVNvdXJjZUNvZGVzW3VpU291cmNlQ29kZS51
cmkoKV07Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlVJ
U291cmNlQ29kZX0gdWlTb3VyY2VDb2RlCiAgICAgICovCiAgICAgcmV2ZWFsVUlTb3VyY2VDb2Rl
OiBmdW5jdGlvbih1aVNvdXJjZUNvZGUpCiAgICAgewpAQCAtMTc4LDkgKzIxOSw5IEBAIFdlYklu
c3BlY3Rvci5OYXZpZ2F0b3JWaWV3LnByb3RvdHlwZSA9IHsKIAogICAgICAgICB0aGlzLl9sYXN0
U2VsZWN0ZWRVSVNvdXJjZUNvZGUgPSB1aVNvdXJjZUNvZGU7CiAKLSAgICAgICAgdmFyIGZvbGRl
clRyZWVFbGVtZW50ID0gdGhpcy5nZXRPckNyZWF0ZUZvbGRlclRyZWVFbGVtZW50KHVpU291cmNl
Q29kZSk7Ci0gICAgICAgIGlmICghZm9sZGVyVHJlZUVsZW1lbnQuX3BvcHVsYXRlZCAmJiBmb2xk
ZXJUcmVlRWxlbWVudC5wYXJlbnQpCi0gICAgICAgICAgICBmb2xkZXJUcmVlRWxlbWVudC5vbnBv
cHVsYXRlKCk7CisgICAgICAgIHZhciBwYXJlbnROb2RlID0gdGhpcy5fZ2V0T3JDcmVhdGVVSVNv
dXJjZUNvZGVQYXJlbnROb2RlKHVpU291cmNlQ29kZSk7CisgICAgICAgIHBhcmVudE5vZGUucG9w
dWxhdGUoKTsKKyAgICAgICAgcGFyZW50Tm9kZS50cmVlRWxlbWVudC5leHBhbmQoKTsKICAgICAg
ICAgdmFyIHNjcmlwdFRyZWVFbGVtZW50ID0gdGhpcy5fZ2V0T3JDcmVhdGVTY3JpcHRUcmVlRWxl
bWVudCh1aVNvdXJjZUNvZGUpOwogICAgICAgICBzY3JpcHRUcmVlRWxlbWVudC5yZXZlYWxBbmRT
ZWxlY3QodHJ1ZSk7CiAgICAgfSwKQEAgLTIwMiwxOSArMjQzLDE3IEBAIFdlYkluc3BlY3Rvci5O
YXZpZ2F0b3JWaWV3LnByb3RvdHlwZSA9IHsKICAgICByZW1vdmVVSVNvdXJjZUNvZGU6IGZ1bmN0
aW9uKHVpU291cmNlQ29kZSkKICAgICB7CiAgICAgICAgIHRoaXMuX3JlbW92ZVNjcmlwdFRyZWVF
bGVtZW50KHVpU291cmNlQ29kZSk7Ci0gICAgICAgIHZhciB0cmVlRWxlbWVudCA9IHRoaXMuZ2V0
T3JDcmVhdGVGb2xkZXJUcmVlRWxlbWVudCh1aVNvdXJjZUNvZGUpOwotICAgICAgICB3aGlsZSAo
dHJlZUVsZW1lbnQpIHsKLSAgICAgICAgICAgIHZhciBwYXJlbnQgPSB0cmVlRWxlbWVudC5wYXJl
bnQ7Ci0gICAgICAgICAgICBpZiAocGFyZW50KSB7Ci0gICAgICAgICAgICAgICAgZGVsZXRlIHRo
aXMuX2ZvbGRlclRyZWVFbGVtZW50c1t0cmVlRWxlbWVudC5mb2xkZXJJZGVudGlmaWVyXTsKLSAg
ICAgICAgICAgICAgICBkZWxldGUgdGhpcy5fZm9sZGVyVHJlZUVsZW1lbnRzVUlTb3VyY2VDb2Rl
c1t0cmVlRWxlbWVudC5mb2xkZXJJZGVudGlmaWVyXTsKLSAgICAgICAgICAgICAgICBwYXJlbnQu
cmVtb3ZlQ2hpbGQodHJlZUVsZW1lbnQpOwotICAgICAgICAgICAgICAgIGlmIChwYXJlbnQuY2hp
bGRyZW4ubGVuZ3RoKQotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIHRyZWVFbGVtZW50ID0gcGFyZW50OworICAgICAgICB2YXIgbm9kZSA9IHRo
aXMuX2dldE9yQ3JlYXRlVUlTb3VyY2VDb2RlUGFyZW50Tm9kZSh1aVNvdXJjZUNvZGUpOworICAg
ICAgICBub2RlLnJlbW92ZVVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGUpOworICAgICAgICB3aGls
ZSAobm9kZSkgeworICAgICAgICAgICAgdmFyIHBhcmVudCA9IG5vZGUucGFyZW50OworICAgICAg
ICAgICAgaWYgKCFwYXJlbnQgfHwgIW5vZGUuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgaWYgKG5vZGUudHJlZUVsZW1lbnQgJiYgcGFyZW50LnRyZWVFbGVt
ZW50KQorICAgICAgICAgICAgICAgIHBhcmVudC50cmVlRWxlbWVudC5yZW1vdmVDaGlsZChub2Rl
LnRyZWVFbGVtZW50KTsKKyAgICAgICAgICAgIHBhcmVudC5yZW1vdmVDaGlsZChub2RlKTsKKyAg
ICAgICAgICAgIG5vZGUgPSBwYXJlbnQ7CiAgICAgICAgIH0KLSAgICAgICAgZGVsZXRlIHRoaXMu
X3VpU291cmNlQ29kZXNbdWlTb3VyY2VDb2RlLnVyaSgpXTsKICAgICB9LAogCiAgICAgLyoqCkBA
IC0yOTYsOSArMzM1LDYgQEAgV2ViSW5zcGVjdG9yLk5hdmlnYXRvclZpZXcucHJvdG90eXBlID0g
ewogCiAgICAgICAgIHRoaXMuX3NjcmlwdHNUcmVlLnN0b3BTZWFyY2goKTsKICAgICAgICAgdGhp
cy5fc2NyaXB0c1RyZWUucmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICAgICAgdGhpcy5fZm9sZGVyVHJl
ZUVsZW1lbnRzID0ge307Ci0gICAgICAgIHRoaXMuX2ZvbGRlclRyZWVFbGVtZW50c1VJU291cmNl
Q29kZXMgPSB7fTsKLSAgICAgICAgdGhpcy5fdWlTb3VyY2VDb2RlcyA9IHt9OwogICAgICAgICB0
aGlzLl9zY3JpcHRUcmVlRWxlbWVudHMgPSB7fTsKICAgICB9LAogCkBAIC0zMDcsNzMgKzM0Mywx
OCBAQCBXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICogQHBh
cmFtIHtzdHJpbmd9IGRvbWFpbgogICAgICAqIEBwYXJhbSB7c3RyaW5nfSBmb2xkZXJOYW1lCiAg
ICAgICovCi0gICAgY3JlYXRlRm9sZGVyVHJlZUVsZW1lbnQ6IGZ1bmN0aW9uKHBhcmVudEZvbGRl
ckVsZW1lbnQsIGZvbGRlcklkZW50aWZpZXIsIGRvbWFpbiwgZm9sZGVyTmFtZSkKKyAgICBfYWRk
Rm9sZGVyVHJlZUVsZW1lbnQ6IGZ1bmN0aW9uKHBhcmVudFRyZWVFbGVtZW50LCBub2RlKQogICAg
IHsKLSAgICAgICAgdmFyIGZvbGRlclRyZWVFbGVtZW50ID0gbmV3IFdlYkluc3BlY3Rvci5OYXZp
Z2F0b3JGb2xkZXJUcmVlRWxlbWVudCh0aGlzLCBmb2xkZXJJZGVudGlmaWVyLCBkb21haW4sIGZv
bGRlck5hbWUpOwotICAgICAgICB0aGlzLl9mb2xkZXJUcmVlRWxlbWVudHNbZm9sZGVySWRlbnRp
Zmllcl0gPSBmb2xkZXJUcmVlRWxlbWVudDsKLSAgICAgICAgdGhpcy5fZm9sZGVyVHJlZUVsZW1l
bnRzVUlTb3VyY2VDb2Rlc1tmb2xkZXJJZGVudGlmaWVyXSA9IFtdOwotICAgICAgICBwYXJlbnRG
b2xkZXJFbGVtZW50LmFwcGVuZENoaWxkKGZvbGRlclRyZWVFbGVtZW50KTsKLSAgICAgICAgcmV0
dXJuIGZvbGRlclRyZWVFbGVtZW50OworICAgICAgICB2YXIgdHJlZUVsZW1lbnQgPSBuZXcgV2Vi
SW5zcGVjdG9yLk5hdmlnYXRvckZvbGRlclRyZWVFbGVtZW50KG5vZGUudHlwZSwgbm9kZS50aXRs
ZSk7CisgICAgICAgIHRyZWVFbGVtZW50Ll9ub2RlID0gbm9kZTsKKyAgICAgICAgbm9kZS50cmVl
RWxlbWVudCA9IHRyZWVFbGVtZW50OworICAgICAgICBwYXJlbnRUcmVlRWxlbWVudC5hcHBlbmRD
aGlsZCh0cmVlRWxlbWVudCk7CiAgICAgfSwKIAotICAgIC8qKgotICAgICAqIEBwYXJhbSB7V2Vi
SW5zcGVjdG9yLk5hdmlnYXRvckZvbGRlclRyZWVFbGVtZW50fSBmb2xkZXJUcmVlRWxlbWVudAot
ICAgICAqLwotICAgIF9wb3B1bGF0ZUZvbGRlclRyZWVFbGVtZW50OiBmdW5jdGlvbihmb2xkZXJU
cmVlRWxlbWVudCkKLSAgICB7Ci0gICAgICAgIGlmIChmb2xkZXJUcmVlRWxlbWVudC5fcG9wdWxh
dGVkKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBmb2xkZXJUcmVlRWxlbWVudC5fcG9w
dWxhdGVkID0gdHJ1ZTsKLSAgICAgICAgdmFyIHVpU291cmNlQ29kZXMgPSB0aGlzLl9mb2xkZXJU
cmVlRWxlbWVudHNVSVNvdXJjZUNvZGVzW2ZvbGRlclRyZWVFbGVtZW50LmZvbGRlcklkZW50aWZp
ZXJdOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHVpU291cmNlQ29kZXMubGVuZ3RoOyAr
K2kpCi0gICAgICAgICAgICB0aGlzLl9hZGRTY3JpcHRUcmVlRWxlbWVudChmb2xkZXJUcmVlRWxl
bWVudCwgdWlTb3VyY2VDb2Rlc1tpXSk7Ci0gICAgICAgIGRlbGV0ZSB0aGlzLl9mb2xkZXJUcmVl
RWxlbWVudHNVSVNvdXJjZUNvZGVzW2ZvbGRlclRyZWVFbGVtZW50LmZvbGRlcklkZW50aWZpZXJd
OwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5VSVNvdXJj
ZUNvZGV9IHVpU291cmNlQ29kZQotICAgICAqLwotICAgIGdldE9yQ3JlYXRlRm9sZGVyVHJlZUVs
ZW1lbnQ6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlz
Ll9nZXRPckNyZWF0ZUZvbGRlclRyZWVFbGVtZW50KHVpU291cmNlQ29kZS5wYXJzZWRVUkwuaG9z
dCwgdWlTb3VyY2VDb2RlLnBhcnNlZFVSTC5mb2xkZXJQYXRoQ29tcG9uZW50cyk7Ci0gICAgfSwK
LQotICAgIC8qKgotICAgICAqIEBwYXJhbSB7c3RyaW5nfSBkb21haW4KLSAgICAgKiBAcGFyYW0g
e3N0cmluZ30gZm9sZGVyTmFtZQotICAgICAqLwotICAgIF9nZXRPckNyZWF0ZUZvbGRlclRyZWVF
bGVtZW50OiBmdW5jdGlvbihkb21haW4sIGZvbGRlck5hbWUpCi0gICAgewotICAgICAgICB2YXIg
Zm9sZGVySWRlbnRpZmllciA9IGRvbWFpbiArICIvIiArIGZvbGRlck5hbWU7Ci0gICAgICAgIAot
ICAgICAgICBpZiAodGhpcy5fZm9sZGVyVHJlZUVsZW1lbnRzW2ZvbGRlcklkZW50aWZpZXJdKQot
ICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2ZvbGRlclRyZWVFbGVtZW50c1tmb2xkZXJJZGVudGlm
aWVyXTsKLQotICAgICAgICBpZiAoIWRvbWFpbiAmJiAhZm9sZGVyTmFtZSkKLSAgICAgICAgICAg
IHJldHVybiB0aGlzLl9zY3JpcHRzVHJlZTsKLQotICAgICAgICB2YXIgcGFyZW50Rm9sZGVyRWxl
bWVudDsKLSAgICAgICAgaWYgKCFmb2xkZXJOYW1lKQotICAgICAgICAgICAgcGFyZW50Rm9sZGVy
RWxlbWVudCA9IHRoaXMuX3NjcmlwdHNUcmVlOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBw
YXJlbnRGb2xkZXJFbGVtZW50ID0gdGhpcy5fZ2V0T3JDcmVhdGVGb2xkZXJUcmVlRWxlbWVudChk
b21haW4sICIiKTsKLSAgICAgICAgCi0gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUZvbGRlclRy
ZWVFbGVtZW50KHBhcmVudEZvbGRlckVsZW1lbnQsIGZvbGRlcklkZW50aWZpZXIsIGRvbWFpbiwg
Zm9sZGVyTmFtZSk7Ci0gICAgfSwKLQotICAgIF9hZGRTY3JpcHRUcmVlRWxlbWVudDogZnVuY3Rp
b24oZm9sZGVyVHJlZUVsZW1lbnQsIHVpU291cmNlQ29kZSkKKyAgICBfYWRkU2NyaXB0VHJlZUVs
ZW1lbnQ6IGZ1bmN0aW9uKHRyZWVFbGVtZW50LCB1aVNvdXJjZUNvZGUpCiAgICAgewogICAgICAg
ICB2YXIgc2NyaXB0VHJlZUVsZW1lbnQgPSB0aGlzLl9nZXRPckNyZWF0ZVNjcmlwdFRyZWVFbGVt
ZW50KHVpU291cmNlQ29kZSk7Ci0gICAgICAgIGZvbGRlclRyZWVFbGVtZW50LmFwcGVuZENoaWxk
KHNjcmlwdFRyZWVFbGVtZW50KTsKLSAgICB9LAotCi0gICAgX2Fkb3B0VUlTb3VyY2VDb2RlOiBm
dW5jdGlvbihmb2xkZXJUcmVlRWxlbWVudCwgdWlTb3VyY2VDb2RlKQotICAgIHsKLSAgICAgICAg
aWYgKGZvbGRlclRyZWVFbGVtZW50Ll9wb3B1bGF0ZWQgfHwgIWZvbGRlclRyZWVFbGVtZW50LnBh
cmVudCkgewotICAgICAgICAgICAgdGhpcy5fYWRkU2NyaXB0VHJlZUVsZW1lbnQoZm9sZGVyVHJl
ZUVsZW1lbnQsIHVpU291cmNlQ29kZSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0K
LSAgICAgICAgdGhpcy5fZm9sZGVyVHJlZUVsZW1lbnRzVUlTb3VyY2VDb2Rlc1tmb2xkZXJUcmVl
RWxlbWVudC5mb2xkZXJJZGVudGlmaWVyXS5wdXNoKHVpU291cmNlQ29kZSk7CisgICAgICAgIHRy
ZWVFbGVtZW50LmFwcGVuZENoaWxkKHNjcmlwdFRyZWVFbGVtZW50KTsKICAgICB9LAogCiAgICAg
aGFuZGxlQ29udGV4dE1lbnU6IGZ1bmN0aW9uKGV2ZW50LCB1aVNvdXJjZUNvZGUpCkBAIC00MDUs
MjAgKzM4NiwzMCBAQCBXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVHJlZU91dGxpbmUgPSBmdW5jdGlv
bih0cmVlU2VhcmNoQm94RWxlbWVudCwgZWxlbWVudCkKICAgICB0aGlzLnNlYXJjaElucHV0RWxl
bWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7CiB9CiAKK1dlYkluc3BlY3Rv
ci5OYXZpZ2F0b3JUcmVlT3V0bGluZS5UeXBlcyA9IHsKKyAgICBSb290OiAiUm9vdCIsCisgICAg
RG9tYWluOiAiRG9tYWluIiwKKyAgICBGb2xkZXI6ICJGb2xkZXIiLAorICAgIFVJU291cmNlQ29k
ZTogIlVJU291cmNlQ29kZSIsCisgICAgRmlsZVN5c3RlbTogIkZpbGVTeXN0ZW0iCit9CisKIFdl
Ykluc3BlY3Rvci5OYXZpZ2F0b3JUcmVlT3V0bGluZS5fdHJlZUVsZW1lbnRzQ29tcGFyZSA9IGZ1
bmN0aW9uIGNvbXBhcmUodHJlZUVsZW1lbnQxLCB0cmVlRWxlbWVudDIpCiB7CiAgICAgLy8gSW5z
ZXJ0IGluIHRoZSBhbHBoYWJldGljYWwgb3JkZXIsIGZpcnN0IGRvbWFpbnMsIHRoZW4gZm9sZGVy
cywgdGhlbiBzY3JpcHRzLgogICAgIGZ1bmN0aW9uIHR5cGVXZWlnaHQodHJlZUVsZW1lbnQpCiAg
ICAgewotICAgICAgICBpZiAodHJlZUVsZW1lbnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuTmF2
aWdhdG9yRm9sZGVyVHJlZUVsZW1lbnQpIHsKLSAgICAgICAgICAgIGlmICh0cmVlRWxlbWVudC5p
c0RvbWFpbikgewotICAgICAgICAgICAgICAgIGlmICh0cmVlRWxlbWVudC50aXRsZVRleHQgPT09
IFdlYkluc3BlY3Rvci5pbnNwZWN0ZWRQYWdlRG9tYWluKQotICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gMTsKLSAgICAgICAgICAgICAgICByZXR1cm4gMjsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIHJldHVybiAzOworICAgICAgICB2YXIgdHlwZSA9IHRyZWVFbGVtZW50LnR5cGUoKTsK
KyAgICAgICAgaWYgKHR5cGUgPT09IFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JUcmVlT3V0bGluZS5U
eXBlcy5Eb21haW4pIHsKKyAgICAgICAgICAgIGlmICh0cmVlRWxlbWVudC50aXRsZVRleHQgPT09
IFdlYkluc3BlY3Rvci5pbnNwZWN0ZWRQYWdlRG9tYWluKQorICAgICAgICAgICAgICAgIHJldHVy
biAxOworICAgICAgICAgICAgcmV0dXJuIDI7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIDQ7
CisgICAgICAgIGlmICh0eXBlID09PSBXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVHJlZU91dGxpbmUu
VHlwZXMuRmlsZVN5c3RlbSkKKyAgICAgICAgICAgIHJldHVybiAzOworICAgICAgICBpZiAodHlw
ZSA9PT0gV2ViSW5zcGVjdG9yLk5hdmlnYXRvclRyZWVPdXRsaW5lLlR5cGVzLkZvbGRlcikKKyAg
ICAgICAgICAgIHJldHVybiA0OworICAgICAgICByZXR1cm4gNTsKICAgICB9CiAKICAgICB2YXIg
dHlwZVdlaWdodDEgPSB0eXBlV2VpZ2h0KHRyZWVFbGVtZW50MSk7CkBAIC00NzEsMTMgKzQ2Miwx
NSBAQCBXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVHJlZU91dGxpbmUucHJvdG90eXBlID0gewogLyoq
CiAgKiBAY29uc3RydWN0b3IKICAqIEBleHRlbmRzIHtUcmVlRWxlbWVudH0KKyAqIEBwYXJhbSB7
c3RyaW5nfSB0eXBlCiAgKiBAcGFyYW0ge3N0cmluZ30gdGl0bGUKICAqIEBwYXJhbSB7QXJyYXku
PHN0cmluZz59IGljb25DbGFzc2VzCiAgKiBAcGFyYW0ge2Jvb2xlYW59IGhhc0NoaWxkcmVuCiAg
KiBAcGFyYW0ge2Jvb2xlYW49fSBub0ljb24KICAqLwotV2ViSW5zcGVjdG9yLkJhc2VOYXZpZ2F0
b3JUcmVlRWxlbWVudCA9IGZ1bmN0aW9uKHRpdGxlLCBpY29uQ2xhc3NlcywgaGFzQ2hpbGRyZW4s
IG5vSWNvbikKK1dlYkluc3BlY3Rvci5CYXNlTmF2aWdhdG9yVHJlZUVsZW1lbnQgPSBmdW5jdGlv
bih0eXBlLCB0aXRsZSwgaWNvbkNsYXNzZXMsIGhhc0NoaWxkcmVuLCBub0ljb24pCiB7CisgICAg
dGhpcy5fdHlwZSA9IHR5cGU7CiAgICAgVHJlZUVsZW1lbnQuY2FsbCh0aGlzLCAiIiwgbnVsbCwg
aGFzQ2hpbGRyZW4pOwogICAgIHRoaXMuX3RpdGxlVGV4dCA9IHRpdGxlOwogICAgIHRoaXMuX2lj
b25DbGFzc2VzID0gaWNvbkNsYXNzZXM7CkBAIC01NDIsNTYgKzUzNSwxMTkgQEAgV2ViSW5zcGVj
dG9yLkJhc2VOYXZpZ2F0b3JUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVy
biB0aGlzLnRpdGxlVGV4dC5tYXRjaChuZXcgUmVnRXhwKCJeIiArIHNlYXJjaFRleHQuZXNjYXBl
Rm9yUmVnRXhwKCksICJpIikpOwogICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtz
dHJpbmd9CisgICAgICovCisgICAgdHlwZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIHRoaXMuX3R5cGU7CisgICAgfSwKKwogICAgIF9fcHJvdG9fXzogVHJlZUVsZW1lbnQucHJv
dG90eXBlCiB9CiAKIC8qKgogICogQGNvbnN0cnVjdG9yCi0gKiBAZXh0ZW5kcyB7V2ViSW5zcGVj
dG9yLkJhc2VOYXZpZ2F0b3JUcmVlRWxlbWVudH0KICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLk5h
dmlnYXRvclZpZXd9IG5hdmlnYXRvclZpZXcKLSAqIEBwYXJhbSB7c3RyaW5nfSBmb2xkZXJJZGVu
dGlmaWVyCi0gKiBAcGFyYW0ge3N0cmluZ30gZG9tYWluCi0gKiBAcGFyYW0ge3N0cmluZ30gZm9s
ZGVyTmFtZQorICogQHBhcmFtIHtzdHJpbmd9IHR5cGUKKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9y
Lk5hdmlnYXRvclRyZWVOb2RlfSBwYXJlbnQKKyAqIEBwYXJhbSB7c3RyaW5nfSBpZAorICogQHBh
cmFtIHtzdHJpbmd9IHRpdGxlCiAgKi8KLVdlYkluc3BlY3Rvci5OYXZpZ2F0b3JGb2xkZXJUcmVl
RWxlbWVudCA9IGZ1bmN0aW9uKG5hdmlnYXRvclZpZXcsIGZvbGRlcklkZW50aWZpZXIsIGRvbWFp
biwgZm9sZGVyTmFtZSkKK1dlYkluc3BlY3Rvci5OYXZpZ2F0b3JUcmVlTm9kZSA9IGZ1bmN0aW9u
KG5hdmlnYXRvclZpZXcsIHR5cGUsIHBhcmVudCwgaWQsIHRpdGxlKQogewotICAgIHRoaXMuX25h
dmlnYXRvclZpZXcgPSBuYXZpZ2F0b3JWaWV3OwotICAgIHRoaXMuX2ZvbGRlcklkZW50aWZpZXIg
PSBmb2xkZXJJZGVudGlmaWVyOwotICAgIHRoaXMuX2ZvbGRlck5hbWUgPSBmb2xkZXJOYW1lOwot
ICAgIAotICAgIHZhciBpY29uQ2xhc3MgPSB0aGlzLmlzRG9tYWluID8gIm5hdmlnYXRvci1kb21h
aW4tdHJlZS1pdGVtIiA6ICJuYXZpZ2F0b3ItZm9sZGVyLXRyZWUtaXRlbSI7Ci0gICAgdmFyIHRp
dGxlID0gdGhpcy5pc0RvbWFpbiA/IGRvbWFpbiA6IGZvbGRlck5hbWUuc3Vic3RyaW5nKDEpOwot
Ci0gICAgV2ViSW5zcGVjdG9yLkJhc2VOYXZpZ2F0b3JUcmVlRWxlbWVudC5jYWxsKHRoaXMsIHRp
dGxlLCBbaWNvbkNsYXNzXSwgdHJ1ZSk7Ci0gICAgdGhpcy50b29sdGlwID0gZm9sZGVyTmFtZTsK
KyAgICB0aGlzLm5hdmlnYXRvclZpZXcgPSBuYXZpZ2F0b3JWaWV3OworICAgIHRoaXMudHlwZSA9
IHR5cGU7CisgICAgdGhpcy5wYXJlbnQgPSBwYXJlbnQ7CisgICAgdGhpcy5pZCA9IGlkOworICAg
IHRoaXMudGl0bGUgPSB0aXRsZTsKKyAgICB0aGlzLl91aVNvdXJjZUNvZGVzID0ge307CisgICAg
dGhpcy5fY2hpbGRyZW4gPSB7fTsKIH0KIAotV2ViSW5zcGVjdG9yLk5hdmlnYXRvckZvbGRlclRy
ZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKLSAgICAvKioKLSAgICAgKiBAcmV0dXJuIHtzdHJpbmd9
Ci0gICAgICovCi0gICAgZ2V0IGZvbGRlcklkZW50aWZpZXIoKQorV2ViSW5zcGVjdG9yLk5hdmln
YXRvclRyZWVOb2RlLnByb3RvdHlwZSA9IHsKKyAgICBwb3B1bGF0ZTogZnVuY3Rpb24oKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2ZvbGRlcklkZW50aWZpZXI7CisgICAgICAgIGlmICh0
aGlzLmlzUG9wdWxhdGVkKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGlmICghdGhp
cy50cmVlRWxlbWVudCkKKyAgICAgICAgICAgIHRoaXMucGFyZW50LnBvcHVsYXRlKCk7CisgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KHRoaXMudHJlZUVsZW1lbnQpOworICAgICAgICB0aGlzLl9wb3B1
bGF0ZWQgPSB0cnVlOworICAgICAgICBmb3IgKHZhciBpZCBpbiB0aGlzLl9jaGlsZHJlbikKKyAg
ICAgICAgICAgIHRoaXMubmF2aWdhdG9yVmlldy5fYWRkRm9sZGVyVHJlZUVsZW1lbnQodGhpcy50
cmVlRWxlbWVudCwgdGhpcy5fY2hpbGRyZW5baWRdKTsKKyAgICAgICAgZm9yICh2YXIgdXJpIGlu
IHRoaXMuX3VpU291cmNlQ29kZXMpCisgICAgICAgICAgICB0aGlzLm5hdmlnYXRvclZpZXcuX2Fk
ZFNjcmlwdFRyZWVFbGVtZW50KHRoaXMudHJlZUVsZW1lbnQsIHRoaXMuX3VpU291cmNlQ29kZXNb
dXJpXSk7CiAgICAgfSwKIAotICAgIC8qKgotICAgICAqIEByZXR1cm4ge2Jvb2xlYW59Ci0gICAg
ICovCi0gICAgZ2V0IGlzRG9tYWluKCkKKyAgICBpc1BvcHVsYXRlZDogZnVuY3Rpb24oKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2ZvbGRlck5hbWUgPT09ICIiOworICAgICAgICByZXR1
cm4gdGhpcy5fcG9wdWxhdGVkOwogICAgIH0sCi0gICAgCisKKyAgICBpc0VtcHR5OiBmdW5jdGlv
bigpCisgICAgeworICAgICAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5fY2hpbGRyZW4pICsg
T2JqZWN0LmtleXModGhpcy5fdWlTb3VyY2VDb2RlcykgPT09IDA7CisgICAgfSwKKworICAgIGNo
aWxkOiBmdW5jdGlvbihpZCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9jaGlsZHJlbltp
ZF07CisgICAgfSwKKworICAgIGFwcGVuZENoaWxkOiBmdW5jdGlvbihub2RlKQorICAgIHsKKyAg
ICAgICAgdGhpcy5fY2hpbGRyZW5bbm9kZS5pZF0gPSBub2RlOworICAgICAgICBpZiAodGhpcy50
cmVlRWxlbWVudCAmJiB0aGlzLmlzUG9wdWxhdGVkKCkpCisgICAgICAgICAgICB0aGlzLm5hdmln
YXRvclZpZXcuX2FkZEZvbGRlclRyZWVFbGVtZW50KHRoaXMudHJlZUVsZW1lbnQsIG5vZGUpOwor
ICAgIH0sCisKKyAgICByZW1vdmVDaGlsZDogZnVuY3Rpb24oaWQpCisgICAgeworICAgICAgICBk
ZWxldGUgdGhpcy5fY2hpbGRyZW5baWRdOworICAgIH0sCisKKyAgICBhcHBlbmRVSVNvdXJjZUNv
ZGU6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSkKKyAgICB7CisgICAgICAgIHRoaXMuX3VpU291cmNl
Q29kZXNbdWlTb3VyY2VDb2RlLnVyaSgpXSA9IHVpU291cmNlQ29kZTsKKyAgICAgICAgaWYgKHRo
aXMudHJlZUVsZW1lbnQgJiYgdGhpcy5pc1BvcHVsYXRlZCgpKQorICAgICAgICAgICAgdGhpcy5u
YXZpZ2F0b3JWaWV3Ll9hZGRTY3JpcHRUcmVlRWxlbWVudCh0aGlzLnRyZWVFbGVtZW50LCB1aVNv
dXJjZUNvZGUpOworICAgIH0sCisKKyAgICByZW1vdmVVSVNvdXJjZUNvZGU6IGZ1bmN0aW9uKHVp
U291cmNlQ29kZSkKKyAgICB7CisgICAgICAgIGRlbGV0ZSB0aGlzLl91aVNvdXJjZUNvZGVzW3Vp
U291cmNlQ29kZS51cmkoKV07CisgICAgfQorfQorCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICog
QGV4dGVuZHMge1dlYkluc3BlY3Rvci5CYXNlTmF2aWdhdG9yVHJlZUVsZW1lbnR9CisgKiBAcGFy
YW0ge3N0cmluZ30gdHlwZQorICogQHBhcmFtIHtzdHJpbmd9IHRpdGxlCisgKi8KK1dlYkluc3Bl
Y3Rvci5OYXZpZ2F0b3JGb2xkZXJUcmVlRWxlbWVudCA9IGZ1bmN0aW9uKHR5cGUsIHRpdGxlKQor
eworICAgIHZhciBpY29uQ2xhc3M7CisgICAgaWYgKHR5cGUgPT09IFdlYkluc3BlY3Rvci5OYXZp
Z2F0b3JUcmVlT3V0bGluZS5UeXBlcy5Eb21haW4pCisgICAgICAgIGljb25DbGFzcyA9ICJuYXZp
Z2F0b3ItZG9tYWluLXRyZWUtaXRlbSI7CisgICAgZWxzZSBpZiAodHlwZSA9PT0gV2ViSW5zcGVj
dG9yLk5hdmlnYXRvclRyZWVPdXRsaW5lLlR5cGVzLkZpbGVTeXN0ZW0pCisgICAgICAgIGljb25D
bGFzcyA9ICJuYXZpZ2F0b3ItZm9sZGVyLXRyZWUtaXRlbSI7CisgICAgZWxzZQorICAgICAgICBp
Y29uQ2xhc3MgPSAibmF2aWdhdG9yLWZvbGRlci10cmVlLWl0ZW0iOworICAgIFdlYkluc3BlY3Rv
ci5CYXNlTmF2aWdhdG9yVHJlZUVsZW1lbnQuY2FsbCh0aGlzLCB0eXBlLCB0aXRsZSwgW2ljb25D
bGFzc10sIHRydWUpOworfQorCitXZWJJbnNwZWN0b3IuTmF2aWdhdG9yRm9sZGVyVHJlZUVsZW1l
bnQucHJvdG90eXBlID0gewogICAgIG9ucG9wdWxhdGU6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAg
ICAgIHRoaXMuX25hdmlnYXRvclZpZXcuX3BvcHVsYXRlRm9sZGVyVHJlZUVsZW1lbnQodGhpcyk7
CisgICAgICAgIHRoaXMuX25vZGUucG9wdWxhdGUoKTsKICAgICB9LAogCiAgICAgb25hdHRhY2g6
IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5CYXNlTmF2aWdhdG9yVHJl
ZUVsZW1lbnQucHJvdG90eXBlLm9uYXR0YWNoLmNhbGwodGhpcyk7Ci0gICAgICAgIGlmICh0aGlz
LmlzRG9tYWluICYmIHRoaXMudGl0bGVUZXh0ID09PSBXZWJJbnNwZWN0b3IuaW5zcGVjdGVkUGFn
ZURvbWFpbikKKyAgICAgICAgaWYgKHRoaXMudHlwZSgpID09PSBXZWJJbnNwZWN0b3IuTmF2aWdh
dG9yVHJlZU91dGxpbmUuVHlwZXMuRG9tYWluICYmIHRoaXMudGl0bGVUZXh0ID09PSBXZWJJbnNw
ZWN0b3IuaW5zcGVjdGVkUGFnZURvbWFpbikKICAgICAgICAgICAgIHRoaXMuZXhwYW5kKCk7CiAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgIHRoaXMuY29sbGFwc2UoKTsKQEAgLTYwOSw3ICs2NjUs
NyBAQCBXZWJJbnNwZWN0b3IuTmF2aWdhdG9yRm9sZGVyVHJlZUVsZW1lbnQucHJvdG90eXBlID0g
ewogICovCiBXZWJJbnNwZWN0b3IuTmF2aWdhdG9yU291cmNlVHJlZUVsZW1lbnQgPSBmdW5jdGlv
bihuYXZpZ2F0b3JWaWV3LCB1aVNvdXJjZUNvZGUsIHRpdGxlKQogewotICAgIFdlYkluc3BlY3Rv
ci5CYXNlTmF2aWdhdG9yVHJlZUVsZW1lbnQuY2FsbCh0aGlzLCB0aXRsZSwgWyJuYXZpZ2F0b3It
IiArIHVpU291cmNlQ29kZS5jb250ZW50VHlwZSgpLm5hbWUoKSArICItdHJlZS1pdGVtIl0sIGZh
bHNlKTsKKyAgICBXZWJJbnNwZWN0b3IuQmFzZU5hdmlnYXRvclRyZWVFbGVtZW50LmNhbGwodGhp
cywgV2ViSW5zcGVjdG9yLk5hdmlnYXRvclRyZWVPdXRsaW5lLlR5cGVzLlVJU291cmNlQ29kZSwg
dGl0bGUsIFsibmF2aWdhdG9yLSIgKyB1aVNvdXJjZUNvZGUuY29udGVudFR5cGUoKS5uYW1lKCkg
KyAiLXRyZWUtaXRlbSJdLCBmYWxzZSk7CiAgICAgdGhpcy5fbmF2aWdhdG9yVmlldyA9IG5hdmln
YXRvclZpZXc7CiAgICAgdGhpcy5fdWlTb3VyY2VDb2RlID0gdWlTb3VyY2VDb2RlOwogICAgIHRo
aXMudG9vbHRpcCA9IHVpU291cmNlQ29kZS5vcmlnaW5VUkwoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV29ya3NwYWNlLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3Jrc3BhY2UuanMKaW5kZXggZGMzNTg1NGJiODkxYzMy
NTM0OTc2MTFmMzhiZjg4NmNmMWYzYWE5OS4uNmNhZTFlODM1NzU4Y2ExOTkzNzUyNmRmNjFjNDli
ZjAwZjZhMTY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Xb3Jrc3BhY2UuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9X
b3Jrc3BhY2UuanMKQEAgLTE0OCw2ICsxNDgsMjIgQEAgV2ViSW5zcGVjdG9yLlByb2plY3QucHJv
dG90eXBlID0gewogICAgIH0sCiAKICAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtzdHJpbmd9Cisg
ICAgICovCisgICAgZGlzcGxheU5hbWU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVy
biB0aGlzLl9kaXNwbGF5TmFtZTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtz
dHJpbmd9CisgICAgICovCisgICAgc2V0RGlzcGxheU5hbWU6IGZ1bmN0aW9uKGRpc3BsYXlOYW1l
KQorICAgIHsKKyAgICAgICAgdGhpcy5fZGlzcGxheU5hbWUgPSBkaXNwbGF5TmFtZTsKKyAgICB9
LAorCisgICAgLyoqCiAgICAgICogQHJldHVybiB7Ym9vbGVhbn0KICAgICAgKi8KICAgICBpc1Nl
cnZpY2VQcm9qZWN0OiBmdW5jdGlvbigpCkBAIC0xNjMsNiArMTc5LDE0IEBAIFdlYkluc3BlY3Rv
ci5Qcm9qZWN0LnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHRoaXMuX25hbWUgPT09IFdl
Ykluc3BlY3Rvci5wcm9qZWN0TmFtZXMuU25pcHBldHM7CiAgICAgfSwKIAorICAgIC8qKgorICAg
ICAqIEByZXR1cm4ge2Jvb2xlYW59CisgICAgICovCisgICAgaXNGaWxlU3lzdGVtUHJvamVjdDog
ZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE9iamVjdC52YWx1ZXMoV2ViSW5zcGVj
dG9yLnByb2plY3ROYW1lcykuaW5kZXhPZih0aGlzLl9uYW1lKSA9PT0gLTE7CisgICAgfSwKKwog
ICAgIF9maWxlQWRkZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKICAgICAgICAgdmFyIGZpbGVE
ZXNjcmlwdG9yID0gLyoqIEB0eXBlIHtXZWJJbnNwZWN0b3IuRmlsZURlc2NyaXB0b3J9ICovIChl
dmVudC5kYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvbmF2aWdhdG9yVmlldy5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L25hdmlnYXRvclZpZXcuY3NzCmluZGV4IDc5Mzk2ODk5MDFmODUwNzliYTVjZmI1YmQ5MWFiMmU0
NWIyZmExNTEuLmMwZmRiNDE0ZTkyNzkxZjgwMzVlMzY1ODg4ZmMxNThhZjE4ZWIxYzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvbmF2aWdhdG9yVmlldy5j
c3MKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9uYXZpZ2F0b3JWaWV3
LmNzcwpAQCAtNTIsNiArNTIsMTEgQEAKICAgICBjb250ZW50OiB1cmwoSW1hZ2VzL3Jlc291cmNl
UGxhaW5JY29uLnBuZyk7CiB9CiAKKy5uYXZpZ2F0b3IgPiBvbCB7CisgICAgbWluLWhlaWdodDog
MTAwJTsKKyAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cit9CisKIC5uYXZpZ2F0b3IgbGkgewog
ICAgIGhlaWdodDogMTdweDsKICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwpAQCAtOTAsOCArOTUs
NyBAQAogfQogCiAubmF2aWdhdG9yIC5iYXNlLW5hdmlnYXRvci10cmVlLWVsZW1lbnQtdGl0bGUg
ewotICAgIG92ZXJmbG93OiBoaWRkZW47Ci0gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7Cisg
ICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICBw
YWRkaW5nLWxlZnQ6IDJweDsKICAgICB0b3A6IDFweDsKQEAgLTEyOCw4ICsxMzIsNyBAQAogfQog
CiAubmF2aWdhdG9yLXRhYmJlZC1wYW5lIC5uYXZpZ2F0b3ItY29udGFpbmVyIHsKLSAgICBvdmVy
Zmxvdy15OiBhdXRvOwotICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKKyAgICBvdmVyZmxvdzogYXV0
bzsKIH0KIAogLm5hdmlnYXRvci10YWJiZWQtcGFuZSAubmF2aWdhdG9yIHsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlODkx
NWE4MWUyMjRlNjE5YWVlZDEyNDJiYjlhOWI4NTNlNTNiNzY2Li4yMjhjOWMzOGViZmZlNjBiOGRl
M2IyMThhMzRkZjk2NDI2NzE1OTg2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTcgQEAKIDIwMTMtMDItMDUg
IFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogTmF2aWdhdG9yIHNob3VsZCBzaG93IHRyZWUgZWxlbWVudCBmb3IgZWFjaCBmb2xk
ZXIgaW4gdGhlIHNvdXJjZSBwYXRoLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA4OTQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1maWxlLXNlbGVjdG9y
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1maWxl
LXNlbGVjdG9yLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtc29y
dGluZy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMt
c29ydGluZy5odG1sOgorCisyMDEzLTAyLTA1ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hy
b21pdW0ub3JnPgorCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlbW92ZSBzaG93IHNjcmlwdCBm
b2xkZXJzIHNldHRpbmcKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwODk0MAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvc2NyaXB0cy1maWxlLXNlbGVjdG9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9zY3JpcHRzLWZpbGUtc2VsZWN0b3ItZXhwZWN0ZWQudHh0CmluZGV4IDcw
MDRkMWQ3OTM5ZWFiZmU0YWZiZWIwOWU0YzZmNDkxODVmOGNhOWIuLmMwODQzZGNjMTNkMjJhY2Nh
ZjU5OThiYzk2MTk1NmY2ZjlhZTdhNjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9zY3JpcHRzLWZpbGUtc2VsZWN0b3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLWZpbGUtc2VsZWN0b3ItZXhwZWN0ZWQu
dHh0CkBAIC0zLDI5ICszLDUwIEBAIFRlc3RzIHNjcmlwdHMgcGFuZWwgZmlsZSBzZWxlY3RvcnMu
CiBEdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ1NjcmlwdHMnIHRhYjoKICAgZXhhbXBsZS5jb20K
ICAgbG9jYWxob3N0Ci0gICAgTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Zvby9iYXIK
LSAgICBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZm9vL2JhegogICA/YT1iCiAgIHZl
cnlfbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nX3VybAogRHVtcGluZyBT
Y3JpcHRzTmF2aWdhdG9yICdDb250ZW50IHNjcmlwdHMnIHRhYjoKICAgbG9jYWxob3N0Ci0gICAg
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Zvby9iYXIKK0R1bXBpbmcgU2NyaXB0c05h
dmlnYXRvciAnU2NyaXB0cycgdGFiOgorICBleGFtcGxlLmNvbQorICBsb2NhbGhvc3QKKyAgICBM
YXlvdXRUZXN0cworICAgICAgaW5zcGVjdG9yCisgICAgICAgIGRlYnVnZ2VyCisgICAgICAgICAg
Zm9vCisgICAgICAgICAgICBiYXIKKyAgICAgICAgICAgICAgc2NyaXB0LmpzCisgICAgICAgICAg
ICAgIHNjcmlwdC5qcz9hPTEKKyAgICAgICAgICAgICAgc2NyaXB0LmpzP2E9MgorICAgICAgICAg
ICAgYmF6CisgID9hPWIKKyAgdmVyeV9sb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vbmdfdXJsCitEdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ0NvbnRlbnQgc2NyaXB0cycgdGFi
OgorICBsb2NhbGhvc3QKIER1bXBpbmcgU2NyaXB0c05hdmlnYXRvciAnU2NyaXB0cycgdGFiOgog
ICBleGFtcGxlLmNvbQogICAgID9hPWIKICAgbG9jYWxob3N0Ci0gICAgTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL2Zvby9iYXIKLSAgICAgIHNjcmlwdC5qcwotICAgICAgc2NyaXB0Lmpz
P2E9MQotICAgICAgc2NyaXB0LmpzP2E9MgotICAgIExheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9mb28vYmF6Ci0gICAgICBzY3JpcHQuanMKKyAgICBMYXlvdXRUZXN0cworICAgICAgaW5z
cGVjdG9yCisgICAgICAgIGRlYnVnZ2VyCisgICAgICAgICAgZm9vCisgICAgICAgICAgICBiYXIK
KyAgICAgICAgICAgICAgc2NyaXB0LmpzCisgICAgICAgICAgICAgIHNjcmlwdC5qcz9hPTEKKyAg
ICAgICAgICAgICAgc2NyaXB0LmpzP2E9MgorICAgICAgICAgICAgYmF6CisgICAgICAgICAgICAg
IHNjcmlwdC5qcwogICA/YT1iCiAgIHZlcnlfbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb25nX3VybAogRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdDb250ZW50IHNjcmlwdHMn
IHRhYjoKICAgbG9jYWxob3N0Ci0gICAgTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Zv
by9iYXIKLSAgICAgIGNvbnRlbnRTY3JpcHQuanM/YT0xCi0gICAgICBjb250ZW50U2NyaXB0Lmpz
P2E9MgotICAgICAgY29udGVudFNjcmlwdDIuanM/YT0xCisgICAgTGF5b3V0VGVzdHMKKyAgICAg
IGluc3BlY3RvcgorICAgICAgICBkZWJ1Z2dlcgorICAgICAgICAgIGZvbworICAgICAgICAgICAg
YmFyCisgICAgICAgICAgICAgIGNvbnRlbnRTY3JpcHQuanM/YT0xCisgICAgICAgICAgICAgIGNv
bnRlbnRTY3JpcHQuanM/YT0yCisgICAgICAgICAgICAgIGNvbnRlbnRTY3JpcHQyLmpzP2E9MQog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1maWxl
LXNlbGVjdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1m
aWxlLXNlbGVjdG9yLmh0bWwKaW5kZXggY2ZjZWZiY2Q5YWYwZjNhM2IyNjA1ZDRlNjNiNjUyMmYw
NzhkNWZiZC4uY2MyY2E2NDEyMGU0ZGRmYjQ5YWJkMTUwZjVmYzA0ZTdjMmVkZTFiOSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtZmlsZS1zZWxlY3Rv
ci5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLWZpbGUt
c2VsZWN0b3IuaHRtbApAQCAtMzUsNiArMzUsOCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBhZGRV
SVNvdXJjZUNvZGUoInZlcnlfbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25n
X3VybCIsIGZhbHNlKTsKIAogICAgIEluc3BlY3RvclRlc3QuZHVtcFNjcmlwdHNOYXZpZ2F0b3Io
bmF2aWdhdG9yKTsKKyAgICBuYXZpZ2F0b3IucmV2ZWFsVUlTb3VyY2VDb2RlKHVpU291cmNlQ29k
ZXNbMF0pOworICAgIEluc3BlY3RvclRlc3QuZHVtcFNjcmlwdHNOYXZpZ2F0b3IobmF2aWdhdG9y
KTsKICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHVpU291cmNlQ29kZXMubGVuZ3RoOyArK2kpCiAg
ICAgICAgIG5hdmlnYXRvci5yZXZlYWxVSVNvdXJjZUNvZGUodWlTb3VyY2VDb2Rlc1tpXSk7CiAg
ICAgSW5zcGVjdG9yVGVzdC5kdW1wU2NyaXB0c05hdmlnYXRvcihuYXZpZ2F0b3IpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtc29ydGluZy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1zb3J0aW5n
LWV4cGVjdGVkLnR4dAppbmRleCBjMjRhY2NkMDNjODg1OWUwNDMwZTQyZThiZDU5NmY4Zjk3N2Iy
NGQzLi45Mjc2ZjYyNDA4NWRkYmVlYjdlMTBlZmVlYTM4MmRlNWY4MDMwMDIzIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1zb3J0aW5nLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1zb3J0aW5n
LWV4cGVjdGVkLnR4dApAQCAtMywzMyArMyw0NSBAQCBUZXN0cyBzY3JpcHRzIHNvcnRpbmcgaW4g
dGhlIHNjcmlwdHMgcGFuZWwuCiAKIER1bXBpbmcgU2NyaXB0c05hdmlnYXRvciAnU2NyaXB0cycg
dGFiOgogICBiYXIuY29tCi0gICAgZm9vL3BhdGgKICAgZm9vLmNvbQotICAgIF9qcy9wcm9kdWN0
aW9uCi0gICAgZm9vL3BhdGgKKyAgKk5vbipVUkwqcGF0aAorRHVtcGluZyBTY3JpcHRzTmF2aWdh
dG9yICdDb250ZW50IHNjcmlwdHMnIHRhYjoKKyAgZXh0ZW5zaW9uLW5hbWUKKyAgKk5vbipVUkwq
cGF0aAorRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdTY3JpcHRzJyB0YWI6CisgIGJhci5jb20K
KyAgZm9vLmNvbQorICAgIF9qcworICAgIGZvbwogICAgIGkKLSAgICBpL2pzCisgICAgYmxvY2su
anM/YmxvY2s9Zm9vCisgICAgZ2EuanMKKyAgICBsZW50YS5iYW4/cGc9NDg4MyZpZnI9MQorICAg
IGxlbnRhLmJhbj9wZz01MzA5Jmlmcj0xCisgICAgdG9wMTAwLmpjbj84MDY3NAogICAqTm9uKlVS
TCpwYXRoCiBEdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ0NvbnRlbnQgc2NyaXB0cycgdGFiOgog
ICBleHRlbnNpb24tbmFtZQotICAgIGZvbGRlcgogICAqTm9uKlVSTCpwYXRoCiBEdW1waW5nIFNj
cmlwdHNOYXZpZ2F0b3IgJ1NjcmlwdHMnIHRhYjoKICAgYmFyLmNvbQotICAgIGZvby9wYXRoCi0g
ICAgICBiYXIuanM/ZmlsZT1iYXIvenp6LmpzCi0gICAgICBmb28uanM/ZmlsZT1iYXIvYWFhLmpz
CisgICAgZm9vCisgICAgICBwYXRoCisgICAgICAgIGJhci5qcz9maWxlPWJhci96enouanMKKyAg
ICAgICAgZm9vLmpzP2ZpbGU9YmFyL2FhYS5qcwogICBmb28uY29tCi0gICAgX2pzL3Byb2R1Y3Rp
b24KLSAgICAgIG1vdG9yLmpzPzEzMDg5Mjc0MzIKLSAgICBmb28vcGF0aAotICAgICAgYmFyLmpz
P2ZpbGU9YmFyL3p6ei5qcwotICAgICAgZm9vLmpzP2ZpbGU9YmFyL2FhYS5qcworICAgIF9qcwor
ICAgICAgcHJvZHVjdGlvbgorICAgICAgICBtb3Rvci5qcz8xMzA4OTI3NDMyCisgICAgZm9vCisg
ICAgICBwYXRoCisgICAgICAgIGJhci5qcz9maWxlPWJhci96enouanMKKyAgICAgICAgZm9vLmpz
P2ZpbGU9YmFyL2FhYS5qcwogICAgIGkKKyAgICAgIGpzCisgICAgICAgIGpxdWVyeS0xLjUuMS5t
aW4uanMKKyAgICAgICAganF1ZXJ5LmNvb2tpZS5qcwogICAgICAgeGdlbWl1cy5qcwotICAgIGkv
anMKLSAgICAgIGpxdWVyeS0xLjUuMS5taW4uanMKLSAgICAgIGpxdWVyeS5jb29raWUuanMKICAg
ICBibG9jay5qcz9ibG9jaz1mb28KICAgICBnYS5qcwogICAgIGxlbnRhLmJhbj9wZz00ODgzJmlm
cj0xCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1z
b3J0aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1zb3J0
aW5nLmh0bWwKaW5kZXggODUxODVmYzdmZDZhZmQ4MzUyNzBiZjFlNjIyOGViYWMwMmY1ZWM5NS4u
OWY4Yzk2Mjg2OThmNDAzYzczZTg3MmJlMDdkZjZmNDQwODBmMmFjYSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtc29ydGluZy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXNvcnRpbmcuaHRtbApAQCAtMjIs
MTIgKzIyLDEyIEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICB1aVNvdXJjZUNvZGVzLnB1c2go
dWlTb3VyY2VDb2RlKTsKICAgICB9CiAKLSAgICBmdW5jdGlvbiBkdW1wU2NyaXB0c0xpc3Qobm9S
ZXZlYWwpCisgICAgZnVuY3Rpb24gZHVtcFNjcmlwdHNMaXN0KCkKICAgICB7CiAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCIiKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2Ny
aXB0c05hdmlnYXRvcihuYXZpZ2F0b3IpOwotICAgICAgICBpZiAobm9SZXZlYWwpCi0gICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIG5hdmlnYXRvci5yZXZlYWxVSVNvdXJjZUNvZGUodWlTb3Vy
Y2VDb2Rlc1swXSk7CisgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNjcmlwdHNOYXZpZ2F0b3Io
bmF2aWdhdG9yKTsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB1aVNvdXJjZUNvZGVzLmxl
bmd0aDsgKytpKQogICAgICAgICAgICAgbmF2aWdhdG9yLnJldmVhbFVJU291cmNlQ29kZSh1aVNv
dXJjZUNvZGVzW2ldKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2NyaXB0c05hdmlnYXRv
cihuYXZpZ2F0b3IpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189290</attachid>
            <date>2013-02-20 05:24:00 -0800</date>
            <delta_ts>2013-02-20 05:27:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108943-20130220172021.patch</filename>
            <type>text/plain</type>
            <size>36044</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNDUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmNiZmFjZGE2NTY0NDg1
MjFmMGY5ZjczMDk1YmY0MDEzZTE0M2Y1NC4uMDFmMjgwZTgzZTVkMjY5ZmI2YjdiZjJkNTJmOGZm
NGU1MzRiYmM4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDEzLTAyLTIwICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IE5hdmlnYXRvciBzaG91bGQgc2hvdyB0cmVlIGVsZW1lbnQgZm9yIGVhY2ggZm9sZGVyIGlu
IHRoZSBzb3VyY2UgcGF0aC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwODk0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE5hdmlnYXRvclZpZXcgbm93IHJlbmRlcnMgdHJlZSBlbGVtZW50IGZvciBlYWNo
IGZvbGRlciBpbiB1aVNvdXJjZUNvZGUgdXJpLgorICAgICAgICBTY3JpcHRzTmF2aWdhdG9yIGhh
cyBob3Jpem9udGFsIHNjcm9sbCBub3cuCisgICAgICAgIFByb2plY3RzIGFyZSBzaG93biBpbiBT
Y3JpcHRzTmF2aWdhdG9yIGJ5IHRoZWlyIGRpc3BsYXlOYW1lLiBUaGlzIGFsbG93cyB1cyB0byBz
aG93IHNldmVyYWwgcm9vdCBmaWxlIHN5c3RlbSBmb2xkZXJzCisgICAgICAgIHdpdGggdGhlIHNh
bWUgbmFtZSBpbiB0aGUgbmF2aWdhdG9yIChlLmcuICdTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3In
IGFuZCAnTGF5b3V0VGVzdHMvaW5zcGVjdG9yJykuCisKKyAgICAgICAgKiBFbmdsaXNoLmxwcm9q
L2xvY2FsaXplZFN0cmluZ3MuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9OYXZp
Z2F0b3JWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdmlnYXRvclZpZXcpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLk5hdmlnYXRvclZpZXcuaWNvbkNsYXNzRm9yVHlwZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVmlldy5wcm90b3R5cGUuYWRkVUlTb3VyY2VDb2Rl
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JWaWV3LnByb3RvdHlwZS5fZ2V0UHJv
amVjdE5vZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdmlnYXRvclZpZXcucHJvdG90eXBl
Ll9jcmVhdGVQcm9qZWN0Tm9kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVmll
dy5wcm90b3R5cGUuX2dldE9yQ3JlYXRlUHJvamVjdE5vZGUpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLk5hdmlnYXRvclZpZXcucHJvdG90eXBlLl9nZXRGb2xkZXJOb2RlKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5OYXZpZ2F0b3JWaWV3LnByb3RvdHlwZS5fY3JlYXRlRm9sZGVyTm9kZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVmlldy5wcm90b3R5cGUuX2dldE9yQ3JlYXRl
Rm9sZGVyTm9kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVmlldy5wcm90b3R5
cGUuX2dldFVJU291cmNlQ29kZVBhcmVudE5vZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5h
dmlnYXRvclZpZXcucHJvdG90eXBlLl9nZXRPckNyZWF0ZVVJU291cmNlQ29kZVBhcmVudE5vZGUp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdmlnYXRvclZpZXcucHJvdG90eXBlLl91cGRhdGVT
Y3JpcHRUaXRsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVmlldy5wcm90b3R5
cGUucmV2ZWFsVUlTb3VyY2VDb2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JW
aWV3LnByb3RvdHlwZS5yZW1vdmVVSVNvdXJjZUNvZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
Lk5hdmlnYXRvclZpZXcucHJvdG90eXBlLnJlc2V0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5O
YXZpZ2F0b3JWaWV3LnByb3RvdHlwZS5fYWRkRm9sZGVyVHJlZUVsZW1lbnQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLk5hdmlnYXRvclZpZXcucHJvdG90eXBlLl9hZGRTY3JpcHRUcmVlRWxlbWVu
dCk6CisgICAgICAgICgudHlwZVdlaWdodCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF2aWdh
dG9yVHJlZU91dGxpbmUuX3RyZWVFbGVtZW50c0NvbXBhcmUpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkJhc2VOYXZpZ2F0b3JUcmVlRWxlbWVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQmFz
ZU5hdmlnYXRvclRyZWVFbGVtZW50LnByb3RvdHlwZS50eXBlKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5OYXZpZ2F0b3JUcmVlTm9kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdG9y
VHJlZU5vZGUucHJvdG90eXBlLnBvcHVsYXRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZp
Z2F0b3JUcmVlTm9kZS5wcm90b3R5cGUuaXNQb3B1bGF0ZWQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLk5hdmlnYXRvclRyZWVOb2RlLnByb3RvdHlwZS5pc0VtcHR5KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5OYXZpZ2F0b3JUcmVlTm9kZS5wcm90b3R5cGUuY2hpbGQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLk5hdmlnYXRvclRyZWVOb2RlLnByb3RvdHlwZS5hcHBlbmRDaGlsZCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVHJlZU5vZGUucHJvdG90eXBlLnJlbW92ZUNoaWxk
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JUcmVlTm9kZS5wcm90b3R5cGUuYXBw
ZW5kVUlTb3VyY2VDb2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JUcmVlTm9k
ZS5wcm90b3R5cGUucmVtb3ZlVUlTb3VyY2VDb2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5O
YXZpZ2F0b3JUcmVlTm9kZS5wcm90b3R5cGUucmVzZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
Lk5hdmlnYXRvckZvbGRlclRyZWVFbGVtZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZp
Z2F0b3JGb2xkZXJUcmVlRWxlbWVudC5wcm90b3R5cGUub25wb3B1bGF0ZSk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuTmF2aWdhdG9yRm9sZGVyVHJlZUVsZW1lbnQucHJvdG90eXBlLm9uYXR0YWNo
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JTb3VyY2VUcmVlRWxlbWVudCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzTmF2aWdhdG9yLmpzOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2ltcGxlV29ya3NwYWNlUHJvdmlkZXIuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuU2ltcGxlUHJvamVjdERlbGVnYXRlLnByb3RvdHlwZS5kaXNwbGF5
TmFtZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9uYXZpZ2F0b3JWaWV3LmNzczoK
KyAgICAgICAgKC5uYXZpZ2F0b3IgPiBvbCk6CisgICAgICAgICgubmF2aWdhdG9yIC5iYXNlLW5h
dmlnYXRvci10cmVlLWVsZW1lbnQtdGl0bGUpOgorICAgICAgICAoLm5hdmlnYXRvci10YWJiZWQt
cGFuZSAubmF2aWdhdG9yLWNvbnRhaW5lcik6CisKIDIwMTMtMDItMTkgIFZzZXZvbG9kIFZsYXNv
diAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogTWFrZSBV
SVNvdXJjZUNvZGUucGF0aCgpIGFuIGFycmF5IG9mIHBhdGggc2VnbWVudHMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXggZjNiOTYy
YTQyOTA2ZTZjMjM1ZDMxOGM2YzVkZWIwZDU2NzgyZDY1NS4uZWM2YjIxZWU5ODRmZTM4OTEyNWU4
YWY2MTFiZDA4ODZmNTk1YWJmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5s
cHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHBy
b2ovbG9jYWxpemVkU3RyaW5ncy5qcwpAQCAtODY0LDMgKzg2NCw0IEBAIGxvY2FsaXplZFN0cmlu
Z3NbIk1hcHBpbmdzIl0gPSAiTWFwcGluZ3MiOwogbG9jYWxpemVkU3RyaW5nc1siQWRkIl0gPSAi
QWRkIjsKIGxvY2FsaXplZFN0cmluZ3NbIk9iamVjdCBzdGF0ZSBiZWxvdyBpcyBjYXB0dXJlZCB1
cG9uIGZpcnN0IGV4cGFuc2lvbiJdID0gIk9iamVjdCBzdGF0ZSBiZWxvdyBpcyBjYXB0dXJlZCB1
cG9uIGZpcnN0IGV4cGFuc2lvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyIoaW5kZXgpIl0gPSAiKGlu
ZGV4KSI7Citsb2NhbGl6ZWRTdHJpbmdzWyIobm8gZG9tYWluKSJdID0gIihubyBkb21haW4pIjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmF2aWdhdG9y
Vmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmF2aWdhdG9yVmll
dy5qcwppbmRleCBhOWIzYjcwNDJmYzg4ZjBiYTM2N2MzMjA2ODI2MTNiMzFhYzUwMGYyLi5iMTlj
OWZiZWUxZjdjM2E3OGM4N2M4ZmIyMjk3MDk5MDRlNjIxZTFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05hdmlnYXRvclZpZXcuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OYXZpZ2F0b3JWaWV3LmpzCkBAIC01MiwxNCAr
NTIsMTIgQEAgV2ViSW5zcGVjdG9yLk5hdmlnYXRvclZpZXcgPSBmdW5jdGlvbigpCiAgICAgdGhp
cy5lbGVtZW50LmFwcGVuZENoaWxkKHNjcmlwdHNPdXRsaW5lRWxlbWVudCk7CiAgICAgdGhpcy5z
ZXREZWZhdWx0Rm9jdXNlZEVsZW1lbnQodGhpcy5fc2NyaXB0c1RyZWUuZWxlbWVudCk7CiAKLSAg
ICAvKiogQHR5cGUge09iamVjdC48c3RyaW5nLCBXZWJJbnNwZWN0b3IuTmF2aWdhdG9yRm9sZGVy
VHJlZUVsZW1lbnQ+fSAqLwotICAgIHRoaXMuX2ZvbGRlclRyZWVFbGVtZW50cyA9IHt9OwotICAg
IC8qKiBAdHlwZSB7T2JqZWN0LjxzdHJpbmcsIEFycmF5LjxXZWJJbnNwZWN0b3IuVUlTb3VyY2VD
b2RlPj59ICovCi0gICAgdGhpcy5fZm9sZGVyVHJlZUVsZW1lbnRzVUlTb3VyY2VDb2RlcyA9IHt9
OwotICAgIC8qKiBAdHlwZSB7T2JqZWN0LjxzdHJpbmcsIFdlYkluc3BlY3Rvci5VSVNvdXJjZUNv
ZGU+fSAqLwotICAgIHRoaXMuX3VpU291cmNlQ29kZXMgPSB7fTsKICAgICAvKiogQHR5cGUge09i
amVjdC48c3RyaW5nLCBXZWJJbnNwZWN0b3IuTmF2aWdhdG9yU291cmNlVHJlZUVsZW1lbnQ+fSAq
LwogICAgIHRoaXMuX3NjcmlwdFRyZWVFbGVtZW50cyA9IHt9OworCisgICAgdGhpcy5fcm9vdE5v
ZGUgPSBuZXcgV2ViSW5zcGVjdG9yLk5hdmlnYXRvclRyZWVOb2RlKHRoaXMsIFdlYkluc3BlY3Rv
ci5OYXZpZ2F0b3JUcmVlT3V0bGluZS5UeXBlcy5Sb290LCBudWxsLCAiIiwgIiIsICIiKQorICAg
IHRoaXMuX3Jvb3ROb2RlLnRyZWVFbGVtZW50ID0gdGhpcy5fc2NyaXB0c1RyZWU7CisgICAgdGhp
cy5fcm9vdE5vZGUucG9wdWxhdGUoKTsKIH0KIAogV2ViSW5zcGVjdG9yLk5hdmlnYXRvclZpZXcu
RXZlbnRzID0gewpAQCAtNjcsMTggKzY1LDkwIEBAIFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JWaWV3
LkV2ZW50cyA9IHsKICAgICBGaWxlUmVuYW1lZDogIkZpbGVSZW5hbWVkIgogfQogCitXZWJJbnNw
ZWN0b3IuTmF2aWdhdG9yVmlldy5pY29uQ2xhc3NGb3JUeXBlID0gZnVuY3Rpb24odHlwZSkKK3sK
KyAgICBpZiAodHlwZSA9PT0gV2ViSW5zcGVjdG9yLk5hdmlnYXRvclRyZWVPdXRsaW5lLlR5cGVz
LkRvbWFpbikKKyAgICAgICAgcmV0dXJuICJuYXZpZ2F0b3ItZG9tYWluLXRyZWUtaXRlbSI7Cisg
ICAgaWYgKHR5cGUgPT09IFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JUcmVlT3V0bGluZS5UeXBlcy5G
aWxlU3lzdGVtKQorICAgICAgICByZXR1cm4gIm5hdmlnYXRvci1mb2xkZXItdHJlZS1pdGVtIjsK
KyAgICByZXR1cm4gIm5hdmlnYXRvci1mb2xkZXItdHJlZS1pdGVtIjsKK30KKwogV2ViSW5zcGVj
dG9yLk5hdmlnYXRvclZpZXcucHJvdG90eXBlID0gewogICAgIC8qKgogICAgICAqIEBwYXJhbSB7
V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0gdWlTb3VyY2VDb2RlCiAgICAgICovCiAgICAgYWRk
VUlTb3VyY2VDb2RlOiBmdW5jdGlvbih1aVNvdXJjZUNvZGUpCiAgICAgewotICAgICAgICBpZiAo
dGhpcy5fdWlTb3VyY2VDb2Rlc1t1aVNvdXJjZUNvZGUudXJpKCldKQotICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGVzW3VpU291cmNlQ29kZS51cmkoKV0gPSB1
aVNvdXJjZUNvZGU7CisgICAgICAgIHZhciBub2RlID0gdGhpcy5fZ2V0T3JDcmVhdGVVSVNvdXJj
ZUNvZGVQYXJlbnROb2RlKHVpU291cmNlQ29kZSk7CisgICAgICAgIG5vZGUuYXBwZW5kVUlTb3Vy
Y2VDb2RlKHVpU291cmNlQ29kZSk7CisgICAgfSwKKworICAgIF9nZXRQcm9qZWN0Tm9kZTogZnVu
Y3Rpb24ocHJvamVjdCkKKyAgICB7CisgICAgICAgIGlmICghcHJvamVjdC5kaXNwbGF5TmFtZSgp
KQorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Jvb3ROb2RlOworICAgICAgICByZXR1cm4gdGhp
cy5fcm9vdE5vZGUuY2hpbGQocHJvamVjdC5pZCgpKTsKKyAgICB9LAorCisgICAgX2NyZWF0ZVBy
b2plY3ROb2RlOiBmdW5jdGlvbihwcm9qZWN0KQorICAgIHsKKyAgICAgICAgdmFyIHR5cGUgPSBw
cm9qZWN0LnR5cGUoKSA9PT0gV2ViSW5zcGVjdG9yLnByb2plY3RUeXBlcy5GaWxlU3lzdGVtID8g
V2ViSW5zcGVjdG9yLk5hdmlnYXRvclRyZWVPdXRsaW5lLlR5cGVzLkZpbGVTeXN0ZW0gOiBXZWJJ
bnNwZWN0b3IuTmF2aWdhdG9yVHJlZU91dGxpbmUuVHlwZXMuRG9tYWluOworICAgICAgICB2YXIg
cHJvamVjdE5vZGUgPSBuZXcgV2ViSW5zcGVjdG9yLk5hdmlnYXRvclRyZWVOb2RlKHRoaXMsIHR5
cGUsIHRoaXMuX3Jvb3ROb2RlLCBwcm9qZWN0LmlkKCksIHByb2plY3QuZGlzcGxheU5hbWUoKSk7
CisgICAgICAgIHRoaXMuX3Jvb3ROb2RlLmFwcGVuZENoaWxkKHByb2plY3ROb2RlKTsKKyAgICAg
ICAgcmV0dXJuIHByb2plY3ROb2RlOworICAgIH0sCisKKyAgICBfZ2V0T3JDcmVhdGVQcm9qZWN0
Tm9kZTogZnVuY3Rpb24ocHJvamVjdCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9nZXRQ
cm9qZWN0Tm9kZShwcm9qZWN0KSB8fCB0aGlzLl9jcmVhdGVQcm9qZWN0Tm9kZShwcm9qZWN0KTsK
KyAgICB9LAorCisgICAgX2dldEZvbGRlck5vZGU6IGZ1bmN0aW9uKHBhcmVudE5vZGUsIG5hbWUp
CisgICAgeworICAgICAgICByZXR1cm4gcGFyZW50Tm9kZS5jaGlsZChuYW1lKTsKKyAgICB9LAor
CisgICAgX2NyZWF0ZUZvbGRlck5vZGU6IGZ1bmN0aW9uKHBhcmVudE5vZGUsIG5hbWUpCisgICAg
eworICAgICAgICB2YXIgZm9sZGVyTm9kZSA9IG5ldyBXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVHJl
ZU5vZGUodGhpcywgV2ViSW5zcGVjdG9yLk5hdmlnYXRvclRyZWVPdXRsaW5lLlR5cGVzLkZvbGRl
ciwgcGFyZW50Tm9kZSwgbmFtZSwgbmFtZSwgIm5hdmlnYXRvci1mb2xkZXItdHJlZS1pdGVtIik7
CisgICAgICAgIHBhcmVudE5vZGUuYXBwZW5kQ2hpbGQoZm9sZGVyTm9kZSk7CisgICAgICAgIHJl
dHVybiBmb2xkZXJOb2RlOworICAgIH0sCisKKyAgICBfZ2V0T3JDcmVhdGVGb2xkZXJOb2RlOiBm
dW5jdGlvbihwYXJlbnROb2RlLCBuYW1lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2dl
dEZvbGRlck5vZGUocGFyZW50Tm9kZSwgbmFtZSkgfHwgdGhpcy5fY3JlYXRlRm9sZGVyTm9kZShw
YXJlbnROb2RlLCBuYW1lKTsKKyAgICB9LAorCisgICAgX2dldFVJU291cmNlQ29kZVBhcmVudE5v
ZGU6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSkKKyAgICB7CisgICAgICAgIHZhciBwcm9qZWN0Tm9k
ZSA9IHRoaXMuX2dldFByb2plY3ROb2RlKHVpU291cmNlQ29kZS5wcm9qZWN0KCkpOworICAgICAg
ICBpZiAoIXByb2plY3ROb2RlKQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIHZh
ciBwYXRoID0gdWlTb3VyY2VDb2RlLnBhdGgoKTsKKyAgICAgICAgdmFyIHBhcmVudE5vZGUgPSBw
cm9qZWN0Tm9kZTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXRoLmxlbmd0aCAtIDE7
ICsraSkgeworICAgICAgICAgICAgcGFyZW50Tm9kZSA9IHRoaXMuX2dldEZvbGRlck5vZGUocGFy
ZW50Tm9kZSwgcGF0aFtpXSk7CisgICAgICAgICAgICBpZiAoIXBhcmVudE5vZGUpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHBhcmVudE5v
ZGU7CisgICAgfSwKIAotICAgICAgICB2YXIgZm9sZGVyVHJlZUVsZW1lbnQgPSB0aGlzLmdldE9y
Q3JlYXRlRm9sZGVyVHJlZUVsZW1lbnQodWlTb3VyY2VDb2RlKTsKLSAgICAgICAgdGhpcy5fYWRv
cHRVSVNvdXJjZUNvZGUoZm9sZGVyVHJlZUVsZW1lbnQsIHVpU291cmNlQ29kZSk7CisgICAgX2dl
dE9yQ3JlYXRlVUlTb3VyY2VDb2RlUGFyZW50Tm9kZTogZnVuY3Rpb24odWlTb3VyY2VDb2RlKQor
ICAgIHsKKyAgICAgICAgdmFyIHByb2plY3ROb2RlID0gdGhpcy5fZ2V0T3JDcmVhdGVQcm9qZWN0
Tm9kZSh1aVNvdXJjZUNvZGUucHJvamVjdCgpKTsKKyAgICAgICAgaWYgKCFwcm9qZWN0Tm9kZSkK
KyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB2YXIgcGF0aCA9IHVpU291cmNlQ29k
ZS5wYXRoKCk7CisgICAgICAgIHZhciBwYXJlbnROb2RlID0gcHJvamVjdE5vZGU7CisgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgcGF0aC5sZW5ndGggLSAxOyArK2kpIHsKKyAgICAgICAgICAg
IHBhcmVudE5vZGUgPSB0aGlzLl9nZXRPckNyZWF0ZUZvbGRlck5vZGUocGFyZW50Tm9kZSwgcGF0
aFtpXSk7CisgICAgICAgICAgICBpZiAoIXBhcmVudE5vZGUpCisgICAgICAgICAgICAgICAgcmV0
dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHBhcmVudE5vZGU7CiAgICAgfSwK
IAogICAgIF9nZXRPckNyZWF0ZVNjcmlwdFRyZWVFbGVtZW50OiBmdW5jdGlvbih1aVNvdXJjZUNv
ZGUpCkBAIC0xNDYsMTIgKzIxNiw4IEBAIFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JWaWV3LnByb3Rv
dHlwZSA9IHsKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICB2YXIgdGl0bGVUZXh0Owot
ICAgICAgICBpZiAodWlTb3VyY2VDb2RlLnBhcnNlZFVSTC5pc1ZhbGlkKSB7Ci0gICAgICAgICAg
ICB0aXRsZVRleHQgPSB1aVNvdXJjZUNvZGUucGFyc2VkVVJMLmxhc3RQYXRoQ29tcG9uZW50Owot
ICAgICAgICAgICAgaWYgKHVpU291cmNlQ29kZS5wYXJzZWRVUkwucXVlcnlQYXJhbXMpCi0gICAg
ICAgICAgICAgICAgdGl0bGVUZXh0ICs9ICI/IiArIHVpU291cmNlQ29kZS5wYXJzZWRVUkwucXVl
cnlQYXJhbXM7Ci0gICAgICAgIH0gZWxzZSBpZiAodWlTb3VyY2VDb2RlLnBhcnNlZFVSTCkKLSAg
ICAgICAgICAgIHRpdGxlVGV4dCA9IHVpU291cmNlQ29kZS5wYXJzZWRVUkwudXJsOworICAgICAg
ICB2YXIgcGF0aCA9IHVpU291cmNlQ29kZS5wYXRoKCk7CisgICAgICAgIHRpdGxlVGV4dCA9IHBh
dGhbcGF0aC5sZW5ndGggLSAxXTsKICAgICAgICAgaWYgKCF0aXRsZVRleHQpCiAgICAgICAgICAg
ICB0aXRsZVRleHQgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIihwcm9ncmFtKSIpOwogICAgICAg
ICBpZiAoIWlnbm9yZUlzRGlydHkgJiYgdWlTb3VyY2VDb2RlLmlzRGlydHkoKSkKQEAgLTE2OSw5
ICsyMzUsMTEgQEAgV2ViSW5zcGVjdG9yLk5hdmlnYXRvclZpZXcucHJvdG90eXBlID0gewogCiAg
ICAgICAgIHRoaXMuX2xhc3RTZWxlY3RlZFVJU291cmNlQ29kZSA9IHVpU291cmNlQ29kZTsKIAot
ICAgICAgICB2YXIgZm9sZGVyVHJlZUVsZW1lbnQgPSB0aGlzLmdldE9yQ3JlYXRlRm9sZGVyVHJl
ZUVsZW1lbnQodWlTb3VyY2VDb2RlKTsKLSAgICAgICAgaWYgKCFmb2xkZXJUcmVlRWxlbWVudC5f
cG9wdWxhdGVkICYmIGZvbGRlclRyZWVFbGVtZW50LnBhcmVudCkKLSAgICAgICAgICAgIGZvbGRl
clRyZWVFbGVtZW50Lm9ucG9wdWxhdGUoKTsKKyAgICAgICAgdmFyIHBhcmVudE5vZGUgPSB0aGlz
Ll9nZXRVSVNvdXJjZUNvZGVQYXJlbnROb2RlKHVpU291cmNlQ29kZSk7CisgICAgICAgIGlmICgh
cGFyZW50Tm9kZSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgcGFyZW50Tm9kZS5wb3B1
bGF0ZSgpOworICAgICAgICBwYXJlbnROb2RlLnRyZWVFbGVtZW50LmV4cGFuZCgpOwogICAgICAg
ICB2YXIgc2NyaXB0VHJlZUVsZW1lbnQgPSB0aGlzLl9nZXRPckNyZWF0ZVNjcmlwdFRyZWVFbGVt
ZW50KHVpU291cmNlQ29kZSk7CiAgICAgICAgIHNjcmlwdFRyZWVFbGVtZW50LnJldmVhbEFuZFNl
bGVjdCh0cnVlKTsKICAgICB9LApAQCAtMTkzLDE5ICsyNjEsMTkgQEAgV2ViSW5zcGVjdG9yLk5h
dmlnYXRvclZpZXcucHJvdG90eXBlID0gewogICAgIHJlbW92ZVVJU291cmNlQ29kZTogZnVuY3Rp
b24odWlTb3VyY2VDb2RlKQogICAgIHsKICAgICAgICAgdGhpcy5fcmVtb3ZlU2NyaXB0VHJlZUVs
ZW1lbnQodWlTb3VyY2VDb2RlKTsKLSAgICAgICAgdmFyIHRyZWVFbGVtZW50ID0gdGhpcy5nZXRP
ckNyZWF0ZUZvbGRlclRyZWVFbGVtZW50KHVpU291cmNlQ29kZSk7Ci0gICAgICAgIHdoaWxlICh0
cmVlRWxlbWVudCkgewotICAgICAgICAgICAgdmFyIHBhcmVudCA9IHRyZWVFbGVtZW50LnBhcmVu
dDsKLSAgICAgICAgICAgIGlmIChwYXJlbnQpIHsKLSAgICAgICAgICAgICAgICBkZWxldGUgdGhp
cy5fZm9sZGVyVHJlZUVsZW1lbnRzW3RyZWVFbGVtZW50LmZvbGRlcklkZW50aWZpZXJdOwotICAg
ICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9mb2xkZXJUcmVlRWxlbWVudHNVSVNvdXJjZUNvZGVz
W3RyZWVFbGVtZW50LmZvbGRlcklkZW50aWZpZXJdOwotICAgICAgICAgICAgICAgIHBhcmVudC5y
ZW1vdmVDaGlsZCh0cmVlRWxlbWVudCk7Ci0gICAgICAgICAgICAgICAgaWYgKHBhcmVudC5jaGls
ZHJlbi5sZW5ndGgpCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQot
ICAgICAgICAgICAgdHJlZUVsZW1lbnQgPSBwYXJlbnQ7CisgICAgICAgIHZhciBub2RlID0gdGhp
cy5fZ2V0VUlTb3VyY2VDb2RlUGFyZW50Tm9kZSh1aVNvdXJjZUNvZGUpOworICAgICAgICBpZiAo
IW5vZGUpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG5vZGUucmVtb3ZlVUlTb3VyY2VD
b2RlKHVpU291cmNlQ29kZSk7CisgICAgICAgIHdoaWxlIChub2RlKSB7CisgICAgICAgICAgICB2
YXIgcGFyZW50ID0gbm9kZS5wYXJlbnQ7CisgICAgICAgICAgICBpZiAoIXBhcmVudCB8fCAhbm9k
ZS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBpZiAobm9k
ZS50cmVlRWxlbWVudCAmJiBwYXJlbnQudHJlZUVsZW1lbnQpCisgICAgICAgICAgICAgICAgcGFy
ZW50LnRyZWVFbGVtZW50LnJlbW92ZUNoaWxkKG5vZGUudHJlZUVsZW1lbnQpOworICAgICAgICAg
ICAgcGFyZW50LnJlbW92ZUNoaWxkKG5vZGUpOworICAgICAgICAgICAgbm9kZSA9IHBhcmVudDsK
ICAgICAgICAgfQotICAgICAgICBkZWxldGUgdGhpcy5fdWlTb3VyY2VDb2Rlc1t1aVNvdXJjZUNv
ZGUudXJpKCldOwogICAgIH0sCiAKICAgICAvKioKQEAgLTI4NywxMCArMzU1LDggQEAgV2ViSW5z
cGVjdG9yLk5hdmlnYXRvclZpZXcucHJvdG90eXBlID0gewogCiAgICAgICAgIHRoaXMuX3Njcmlw
dHNUcmVlLnN0b3BTZWFyY2goKTsKICAgICAgICAgdGhpcy5fc2NyaXB0c1RyZWUucmVtb3ZlQ2hp
bGRyZW4oKTsKLSAgICAgICAgdGhpcy5fZm9sZGVyVHJlZUVsZW1lbnRzID0ge307Ci0gICAgICAg
IHRoaXMuX2ZvbGRlclRyZWVFbGVtZW50c1VJU291cmNlQ29kZXMgPSB7fTsKLSAgICAgICAgdGhp
cy5fdWlTb3VyY2VDb2RlcyA9IHt9OwogICAgICAgICB0aGlzLl9zY3JpcHRUcmVlRWxlbWVudHMg
PSB7fTsKKyAgICAgICAgdGhpcy5fcm9vdE5vZGUucmVzZXQoKTsKICAgICB9LAogCiAgICAgLyoq
CkBAIC0yOTgsNzMgKzM2NCwxOCBAQCBXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVmlldy5wcm90b3R5
cGUgPSB7CiAgICAgICogQHBhcmFtIHtzdHJpbmd9IGRvbWFpbgogICAgICAqIEBwYXJhbSB7c3Ry
aW5nfSBmb2xkZXJOYW1lCiAgICAgICovCi0gICAgY3JlYXRlRm9sZGVyVHJlZUVsZW1lbnQ6IGZ1
bmN0aW9uKHBhcmVudEZvbGRlckVsZW1lbnQsIGZvbGRlcklkZW50aWZpZXIsIGRvbWFpbiwgZm9s
ZGVyTmFtZSkKLSAgICB7Ci0gICAgICAgIHZhciBmb2xkZXJUcmVlRWxlbWVudCA9IG5ldyBXZWJJ
bnNwZWN0b3IuTmF2aWdhdG9yRm9sZGVyVHJlZUVsZW1lbnQodGhpcywgZm9sZGVySWRlbnRpZmll
ciwgZG9tYWluLCBmb2xkZXJOYW1lKTsKLSAgICAgICAgdGhpcy5fZm9sZGVyVHJlZUVsZW1lbnRz
W2ZvbGRlcklkZW50aWZpZXJdID0gZm9sZGVyVHJlZUVsZW1lbnQ7Ci0gICAgICAgIHRoaXMuX2Zv
bGRlclRyZWVFbGVtZW50c1VJU291cmNlQ29kZXNbZm9sZGVySWRlbnRpZmllcl0gPSBbXTsKLSAg
ICAgICAgcGFyZW50Rm9sZGVyRWxlbWVudC5hcHBlbmRDaGlsZChmb2xkZXJUcmVlRWxlbWVudCk7
Ci0gICAgICAgIHJldHVybiBmb2xkZXJUcmVlRWxlbWVudDsKLSAgICB9LAotCi0gICAgLyoqCi0g
ICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuTmF2aWdhdG9yRm9sZGVyVHJlZUVsZW1lbnR9IGZv
bGRlclRyZWVFbGVtZW50Ci0gICAgICovCi0gICAgX3BvcHVsYXRlRm9sZGVyVHJlZUVsZW1lbnQ6
IGZ1bmN0aW9uKGZvbGRlclRyZWVFbGVtZW50KQorICAgIF9hZGRGb2xkZXJUcmVlRWxlbWVudDog
ZnVuY3Rpb24ocGFyZW50VHJlZUVsZW1lbnQsIG5vZGUpCiAgICAgewotICAgICAgICBpZiAoZm9s
ZGVyVHJlZUVsZW1lbnQuX3BvcHVsYXRlZCkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
Zm9sZGVyVHJlZUVsZW1lbnQuX3BvcHVsYXRlZCA9IHRydWU7Ci0gICAgICAgIHZhciB1aVNvdXJj
ZUNvZGVzID0gdGhpcy5fZm9sZGVyVHJlZUVsZW1lbnRzVUlTb3VyY2VDb2Rlc1tmb2xkZXJUcmVl
RWxlbWVudC5mb2xkZXJJZGVudGlmaWVyXTsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB1
aVNvdXJjZUNvZGVzLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgdGhpcy5fYWRkU2NyaXB0VHJl
ZUVsZW1lbnQoZm9sZGVyVHJlZUVsZW1lbnQsIHVpU291cmNlQ29kZXNbaV0pOwotICAgICAgICBk
ZWxldGUgdGhpcy5fZm9sZGVyVHJlZUVsZW1lbnRzVUlTb3VyY2VDb2Rlc1tmb2xkZXJUcmVlRWxl
bWVudC5mb2xkZXJJZGVudGlmaWVyXTsKKyAgICAgICAgdmFyIHRyZWVFbGVtZW50ID0gbmV3IFdl
Ykluc3BlY3Rvci5OYXZpZ2F0b3JGb2xkZXJUcmVlRWxlbWVudChub2RlLnR5cGUsIG5vZGUudGl0
bGUpOworICAgICAgICB0cmVlRWxlbWVudC5fbm9kZSA9IG5vZGU7CisgICAgICAgIG5vZGUudHJl
ZUVsZW1lbnQgPSB0cmVlRWxlbWVudDsKKyAgICAgICAgcGFyZW50VHJlZUVsZW1lbnQuYXBwZW5k
Q2hpbGQodHJlZUVsZW1lbnQpOwogICAgIH0sCiAKLSAgICAvKioKLSAgICAgKiBAcGFyYW0ge1dl
Ykluc3BlY3Rvci5VSVNvdXJjZUNvZGV9IHVpU291cmNlQ29kZQotICAgICAqLwotICAgIGdldE9y
Q3JlYXRlRm9sZGVyVHJlZUVsZW1lbnQ6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiB0aGlzLl9nZXRPckNyZWF0ZUZvbGRlclRyZWVFbGVtZW50KHVpU291cmNl
Q29kZS5wYXJzZWRVUkwuaG9zdCwgdWlTb3VyY2VDb2RlLnBhcnNlZFVSTC5mb2xkZXJQYXRoQ29t
cG9uZW50cyk7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEBwYXJhbSB7c3RyaW5nfSBkb21h
aW4KLSAgICAgKiBAcGFyYW0ge3N0cmluZ30gZm9sZGVyTmFtZQotICAgICAqLwotICAgIF9nZXRP
ckNyZWF0ZUZvbGRlclRyZWVFbGVtZW50OiBmdW5jdGlvbihkb21haW4sIGZvbGRlck5hbWUpCi0g
ICAgewotICAgICAgICB2YXIgZm9sZGVySWRlbnRpZmllciA9IGRvbWFpbiArICIvIiArIGZvbGRl
ck5hbWU7Ci0gICAgICAgIAotICAgICAgICBpZiAodGhpcy5fZm9sZGVyVHJlZUVsZW1lbnRzW2Zv
bGRlcklkZW50aWZpZXJdKQotICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2ZvbGRlclRyZWVFbGVt
ZW50c1tmb2xkZXJJZGVudGlmaWVyXTsKLQotICAgICAgICBpZiAoIWRvbWFpbiAmJiAhZm9sZGVy
TmFtZSkKLSAgICAgICAgICAgIHJldHVybiB0aGlzLl9zY3JpcHRzVHJlZTsKLQotICAgICAgICB2
YXIgcGFyZW50Rm9sZGVyRWxlbWVudDsKLSAgICAgICAgaWYgKCFmb2xkZXJOYW1lKQotICAgICAg
ICAgICAgcGFyZW50Rm9sZGVyRWxlbWVudCA9IHRoaXMuX3NjcmlwdHNUcmVlOwotICAgICAgICBl
bHNlCi0gICAgICAgICAgICBwYXJlbnRGb2xkZXJFbGVtZW50ID0gdGhpcy5fZ2V0T3JDcmVhdGVG
b2xkZXJUcmVlRWxlbWVudChkb21haW4sICIiKTsKLSAgICAgICAgCi0gICAgICAgIHJldHVybiB0
aGlzLmNyZWF0ZUZvbGRlclRyZWVFbGVtZW50KHBhcmVudEZvbGRlckVsZW1lbnQsIGZvbGRlcklk
ZW50aWZpZXIsIGRvbWFpbiwgZm9sZGVyTmFtZSk7Ci0gICAgfSwKLQotICAgIF9hZGRTY3JpcHRU
cmVlRWxlbWVudDogZnVuY3Rpb24oZm9sZGVyVHJlZUVsZW1lbnQsIHVpU291cmNlQ29kZSkKKyAg
ICBfYWRkU2NyaXB0VHJlZUVsZW1lbnQ6IGZ1bmN0aW9uKHRyZWVFbGVtZW50LCB1aVNvdXJjZUNv
ZGUpCiAgICAgewogICAgICAgICB2YXIgc2NyaXB0VHJlZUVsZW1lbnQgPSB0aGlzLl9nZXRPckNy
ZWF0ZVNjcmlwdFRyZWVFbGVtZW50KHVpU291cmNlQ29kZSk7Ci0gICAgICAgIGZvbGRlclRyZWVF
bGVtZW50LmFwcGVuZENoaWxkKHNjcmlwdFRyZWVFbGVtZW50KTsKLSAgICB9LAotCi0gICAgX2Fk
b3B0VUlTb3VyY2VDb2RlOiBmdW5jdGlvbihmb2xkZXJUcmVlRWxlbWVudCwgdWlTb3VyY2VDb2Rl
KQotICAgIHsKLSAgICAgICAgaWYgKGZvbGRlclRyZWVFbGVtZW50Ll9wb3B1bGF0ZWQgfHwgIWZv
bGRlclRyZWVFbGVtZW50LnBhcmVudCkgewotICAgICAgICAgICAgdGhpcy5fYWRkU2NyaXB0VHJl
ZUVsZW1lbnQoZm9sZGVyVHJlZUVsZW1lbnQsIHVpU291cmNlQ29kZSk7Ci0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgdGhpcy5fZm9sZGVyVHJlZUVsZW1lbnRzVUlTb3Vy
Y2VDb2Rlc1tmb2xkZXJUcmVlRWxlbWVudC5mb2xkZXJJZGVudGlmaWVyXS5wdXNoKHVpU291cmNl
Q29kZSk7CisgICAgICAgIHRyZWVFbGVtZW50LmFwcGVuZENoaWxkKHNjcmlwdFRyZWVFbGVtZW50
KTsKICAgICB9LAogCiAgICAgaGFuZGxlQ29udGV4dE1lbnU6IGZ1bmN0aW9uKGV2ZW50LCB1aVNv
dXJjZUNvZGUpCkBAIC0zOTYsMjAgKzQwNywzMCBAQCBXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVHJl
ZU91dGxpbmUgPSBmdW5jdGlvbih0cmVlU2VhcmNoQm94RWxlbWVudCwgZWxlbWVudCkKICAgICB0
aGlzLnNlYXJjaElucHV0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7
CiB9CiAKK1dlYkluc3BlY3Rvci5OYXZpZ2F0b3JUcmVlT3V0bGluZS5UeXBlcyA9IHsKKyAgICBS
b290OiAiUm9vdCIsCisgICAgRG9tYWluOiAiRG9tYWluIiwKKyAgICBGb2xkZXI6ICJGb2xkZXIi
LAorICAgIFVJU291cmNlQ29kZTogIlVJU291cmNlQ29kZSIsCisgICAgRmlsZVN5c3RlbTogIkZp
bGVTeXN0ZW0iCit9CisKIFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JUcmVlT3V0bGluZS5fdHJlZUVs
ZW1lbnRzQ29tcGFyZSA9IGZ1bmN0aW9uIGNvbXBhcmUodHJlZUVsZW1lbnQxLCB0cmVlRWxlbWVu
dDIpCiB7CiAgICAgLy8gSW5zZXJ0IGluIHRoZSBhbHBoYWJldGljYWwgb3JkZXIsIGZpcnN0IGRv
bWFpbnMsIHRoZW4gZm9sZGVycywgdGhlbiBzY3JpcHRzLgogICAgIGZ1bmN0aW9uIHR5cGVXZWln
aHQodHJlZUVsZW1lbnQpCiAgICAgewotICAgICAgICBpZiAodHJlZUVsZW1lbnQgaW5zdGFuY2Vv
ZiBXZWJJbnNwZWN0b3IuTmF2aWdhdG9yRm9sZGVyVHJlZUVsZW1lbnQpIHsKLSAgICAgICAgICAg
IGlmICh0cmVlRWxlbWVudC5pc0RvbWFpbikgewotICAgICAgICAgICAgICAgIGlmICh0cmVlRWxl
bWVudC50aXRsZVRleHQgPT09IFdlYkluc3BlY3Rvci5pbnNwZWN0ZWRQYWdlRG9tYWluKQotICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgICAgICAgICByZXR1cm4gMjsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiAzOworICAgICAgICB2YXIgdHlwZSA9IHRy
ZWVFbGVtZW50LnR5cGUoKTsKKyAgICAgICAgaWYgKHR5cGUgPT09IFdlYkluc3BlY3Rvci5OYXZp
Z2F0b3JUcmVlT3V0bGluZS5UeXBlcy5Eb21haW4pIHsKKyAgICAgICAgICAgIGlmICh0cmVlRWxl
bWVudC50aXRsZVRleHQgPT09IFdlYkluc3BlY3Rvci5pbnNwZWN0ZWRQYWdlRG9tYWluKQorICAg
ICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgcmV0dXJuIDI7CiAgICAgICAgIH0K
LSAgICAgICAgcmV0dXJuIDQ7CisgICAgICAgIGlmICh0eXBlID09PSBXZWJJbnNwZWN0b3IuTmF2
aWdhdG9yVHJlZU91dGxpbmUuVHlwZXMuRmlsZVN5c3RlbSkKKyAgICAgICAgICAgIHJldHVybiAz
OworICAgICAgICBpZiAodHlwZSA9PT0gV2ViSW5zcGVjdG9yLk5hdmlnYXRvclRyZWVPdXRsaW5l
LlR5cGVzLkZvbGRlcikKKyAgICAgICAgICAgIHJldHVybiA0OworICAgICAgICByZXR1cm4gNTsK
ICAgICB9CiAKICAgICB2YXIgdHlwZVdlaWdodDEgPSB0eXBlV2VpZ2h0KHRyZWVFbGVtZW50MSk7
CkBAIC00NjIsMTMgKzQ4MywxNSBAQCBXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVHJlZU91dGxpbmUu
cHJvdG90eXBlID0gewogLyoqCiAgKiBAY29uc3RydWN0b3IKICAqIEBleHRlbmRzIHtUcmVlRWxl
bWVudH0KKyAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlCiAgKiBAcGFyYW0ge3N0cmluZ30gdGl0bGUK
ICAqIEBwYXJhbSB7QXJyYXkuPHN0cmluZz59IGljb25DbGFzc2VzCiAgKiBAcGFyYW0ge2Jvb2xl
YW59IGhhc0NoaWxkcmVuCiAgKiBAcGFyYW0ge2Jvb2xlYW49fSBub0ljb24KICAqLwotV2ViSW5z
cGVjdG9yLkJhc2VOYXZpZ2F0b3JUcmVlRWxlbWVudCA9IGZ1bmN0aW9uKHRpdGxlLCBpY29uQ2xh
c3NlcywgaGFzQ2hpbGRyZW4sIG5vSWNvbikKK1dlYkluc3BlY3Rvci5CYXNlTmF2aWdhdG9yVHJl
ZUVsZW1lbnQgPSBmdW5jdGlvbih0eXBlLCB0aXRsZSwgaWNvbkNsYXNzZXMsIGhhc0NoaWxkcmVu
LCBub0ljb24pCiB7CisgICAgdGhpcy5fdHlwZSA9IHR5cGU7CiAgICAgVHJlZUVsZW1lbnQuY2Fs
bCh0aGlzLCAiIiwgbnVsbCwgaGFzQ2hpbGRyZW4pOwogICAgIHRoaXMuX3RpdGxlVGV4dCA9IHRp
dGxlOwogICAgIHRoaXMuX2ljb25DbGFzc2VzID0gaWNvbkNsYXNzZXM7CkBAIC01MzMsNTYgKzU1
NiwxMTkgQEAgV2ViSW5zcGVjdG9yLkJhc2VOYXZpZ2F0b3JUcmVlRWxlbWVudC5wcm90b3R5cGUg
PSB7CiAgICAgICAgIHJldHVybiB0aGlzLnRpdGxlVGV4dC5tYXRjaChuZXcgUmVnRXhwKCJeIiAr
IHNlYXJjaFRleHQuZXNjYXBlRm9yUmVnRXhwKCksICJpIikpOwogICAgIH0sCiAKKyAgICAvKioK
KyAgICAgKiBAcmV0dXJuIHtzdHJpbmd9CisgICAgICovCisgICAgdHlwZTogZnVuY3Rpb24oKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3R5cGU7CisgICAgfSwKKwogICAgIF9fcHJvdG9f
XzogVHJlZUVsZW1lbnQucHJvdG90eXBlCiB9CiAKIC8qKgogICogQGNvbnN0cnVjdG9yCi0gKiBA
ZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLkJhc2VOYXZpZ2F0b3JUcmVlRWxlbWVudH0KICAqIEBwYXJh
bSB7V2ViSW5zcGVjdG9yLk5hdmlnYXRvclZpZXd9IG5hdmlnYXRvclZpZXcKLSAqIEBwYXJhbSB7
c3RyaW5nfSBmb2xkZXJJZGVudGlmaWVyCi0gKiBAcGFyYW0ge3N0cmluZ30gZG9tYWluCi0gKiBA
cGFyYW0ge3N0cmluZ30gZm9sZGVyTmFtZQorICogQHBhcmFtIHtzdHJpbmd9IHR5cGUKKyAqIEBw
YXJhbSB7V2ViSW5zcGVjdG9yLk5hdmlnYXRvclRyZWVOb2RlfSBwYXJlbnQKKyAqIEBwYXJhbSB7
c3RyaW5nfSBpZAorICogQHBhcmFtIHtzdHJpbmd9IHRpdGxlCiAgKi8KLVdlYkluc3BlY3Rvci5O
YXZpZ2F0b3JGb2xkZXJUcmVlRWxlbWVudCA9IGZ1bmN0aW9uKG5hdmlnYXRvclZpZXcsIGZvbGRl
cklkZW50aWZpZXIsIGRvbWFpbiwgZm9sZGVyTmFtZSkKK1dlYkluc3BlY3Rvci5OYXZpZ2F0b3JU
cmVlTm9kZSA9IGZ1bmN0aW9uKG5hdmlnYXRvclZpZXcsIHR5cGUsIHBhcmVudCwgaWQsIHRpdGxl
KQogewotICAgIHRoaXMuX25hdmlnYXRvclZpZXcgPSBuYXZpZ2F0b3JWaWV3OwotICAgIHRoaXMu
X2ZvbGRlcklkZW50aWZpZXIgPSBmb2xkZXJJZGVudGlmaWVyOwotICAgIHRoaXMuX2ZvbGRlck5h
bWUgPSBmb2xkZXJOYW1lOwotICAgIAotICAgIHZhciBpY29uQ2xhc3MgPSB0aGlzLmlzRG9tYWlu
ID8gIm5hdmlnYXRvci1kb21haW4tdHJlZS1pdGVtIiA6ICJuYXZpZ2F0b3ItZm9sZGVyLXRyZWUt
aXRlbSI7Ci0gICAgdmFyIHRpdGxlID0gdGhpcy5pc0RvbWFpbiA/IGRvbWFpbiA6IGZvbGRlck5h
bWUuc3Vic3RyaW5nKDEpOwotCi0gICAgV2ViSW5zcGVjdG9yLkJhc2VOYXZpZ2F0b3JUcmVlRWxl
bWVudC5jYWxsKHRoaXMsIHRpdGxlLCBbaWNvbkNsYXNzXSwgdHJ1ZSk7Ci0gICAgdGhpcy50b29s
dGlwID0gZm9sZGVyTmFtZTsKKyAgICB0aGlzLm5hdmlnYXRvclZpZXcgPSBuYXZpZ2F0b3JWaWV3
OworICAgIHRoaXMudHlwZSA9IHR5cGU7CisgICAgdGhpcy5wYXJlbnQgPSBwYXJlbnQ7CisgICAg
dGhpcy5pZCA9IGlkOworICAgIHRoaXMudGl0bGUgPSB0aXRsZTsKKyAgICB0aGlzLl91aVNvdXJj
ZUNvZGVzID0ge307CisgICAgdGhpcy5fY2hpbGRyZW4gPSB7fTsKIH0KIAotV2ViSW5zcGVjdG9y
Lk5hdmlnYXRvckZvbGRlclRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKLSAgICAvKioKLSAgICAg
KiBAcmV0dXJuIHtzdHJpbmd9Ci0gICAgICovCi0gICAgZ2V0IGZvbGRlcklkZW50aWZpZXIoKQor
V2ViSW5zcGVjdG9yLk5hdmlnYXRvclRyZWVOb2RlLnByb3RvdHlwZSA9IHsKKyAgICBwb3B1bGF0
ZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuaXNQb3B1bGF0ZWQoKSkKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKCF0aGlzLnRyZWVFbGVtZW50KQorICAgICAg
ICAgICAgdGhpcy5wYXJlbnQucG9wdWxhdGUoKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQodGhp
cy50cmVlRWxlbWVudCk7CisgICAgICAgIHRoaXMuX3BvcHVsYXRlZCA9IHRydWU7CisgICAgICAg
IGZvciAodmFyIGlkIGluIHRoaXMuX2NoaWxkcmVuKQorICAgICAgICAgICAgdGhpcy5uYXZpZ2F0
b3JWaWV3Ll9hZGRGb2xkZXJUcmVlRWxlbWVudCh0aGlzLnRyZWVFbGVtZW50LCB0aGlzLl9jaGls
ZHJlbltpZF0pOworICAgICAgICBmb3IgKHZhciB1cmkgaW4gdGhpcy5fdWlTb3VyY2VDb2RlcykK
KyAgICAgICAgICAgIHRoaXMubmF2aWdhdG9yVmlldy5fYWRkU2NyaXB0VHJlZUVsZW1lbnQodGhp
cy50cmVlRWxlbWVudCwgdGhpcy5fdWlTb3VyY2VDb2Rlc1t1cmldKTsKKyAgICB9LAorCisgICAg
aXNQb3B1bGF0ZWQ6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9mb2xk
ZXJJZGVudGlmaWVyOworICAgICAgICByZXR1cm4gdGhpcy5fcG9wdWxhdGVkOwogICAgIH0sCiAK
LSAgICAvKioKLSAgICAgKiBAcmV0dXJuIHtib29sZWFufQotICAgICAqLwotICAgIGdldCBpc0Rv
bWFpbigpCisgICAgaXNFbXB0eTogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRo
aXMuX2ZvbGRlck5hbWUgPT09ICIiOworICAgICAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5f
Y2hpbGRyZW4pLmxlbmd0aCArIE9iamVjdC5rZXlzKHRoaXMuX3VpU291cmNlQ29kZXMpLmxlbmd0
aCA9PT0gMDsKICAgICB9LAotICAgIAorCisgICAgY2hpbGQ6IGZ1bmN0aW9uKGlkKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIHRoaXMuX2NoaWxkcmVuW2lkXTsKKyAgICB9LAorCisgICAgYXBwZW5k
Q2hpbGQ6IGZ1bmN0aW9uKG5vZGUpCisgICAgeworICAgICAgICB0aGlzLl9jaGlsZHJlbltub2Rl
LmlkXSA9IG5vZGU7CisgICAgICAgIGlmICh0aGlzLnRyZWVFbGVtZW50ICYmIHRoaXMuaXNQb3B1
bGF0ZWQoKSkKKyAgICAgICAgICAgIHRoaXMubmF2aWdhdG9yVmlldy5fYWRkRm9sZGVyVHJlZUVs
ZW1lbnQodGhpcy50cmVlRWxlbWVudCwgbm9kZSk7CisgICAgfSwKKworICAgIHJlbW92ZUNoaWxk
OiBmdW5jdGlvbihub2RlKQorICAgIHsKKyAgICAgICAgZGVsZXRlIHRoaXMuX2NoaWxkcmVuW25v
ZGUuaWRdOworICAgIH0sCisKKyAgICBhcHBlbmRVSVNvdXJjZUNvZGU6IGZ1bmN0aW9uKHVpU291
cmNlQ29kZSkKKyAgICB7CisgICAgICAgIHRoaXMuX3VpU291cmNlQ29kZXNbdWlTb3VyY2VDb2Rl
LnVyaSgpXSA9IHVpU291cmNlQ29kZTsKKyAgICAgICAgaWYgKHRoaXMudHJlZUVsZW1lbnQgJiYg
dGhpcy5pc1BvcHVsYXRlZCgpKQorICAgICAgICAgICAgdGhpcy5uYXZpZ2F0b3JWaWV3Ll9hZGRT
Y3JpcHRUcmVlRWxlbWVudCh0aGlzLnRyZWVFbGVtZW50LCB1aVNvdXJjZUNvZGUpOworICAgIH0s
CisKKyAgICByZW1vdmVVSVNvdXJjZUNvZGU6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSkKKyAgICB7
CisgICAgICAgIGRlbGV0ZSB0aGlzLl91aVNvdXJjZUNvZGVzW3VpU291cmNlQ29kZS51cmkoKV07
CisgICAgfSwKKworICAgIHJlc2V0OiBmdW5jdGlvbih1aVNvdXJjZUNvZGUpCisgICAgeworICAg
ICAgICB0aGlzLl91aVNvdXJjZUNvZGVzID0ge307CisgICAgICAgIHRoaXMuX2NoaWxkcmVuID0g
e307CisgICAgfQorfQorCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1dlYklu
c3BlY3Rvci5CYXNlTmF2aWdhdG9yVHJlZUVsZW1lbnR9CisgKiBAcGFyYW0ge3N0cmluZ30gdHlw
ZQorICogQHBhcmFtIHtzdHJpbmd9IHRpdGxlCisgKi8KK1dlYkluc3BlY3Rvci5OYXZpZ2F0b3JG
b2xkZXJUcmVlRWxlbWVudCA9IGZ1bmN0aW9uKHR5cGUsIHRpdGxlKQoreworICAgIHZhciBpY29u
Q2xhc3MgPSBXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVmlldy5pY29uQ2xhc3NGb3JUeXBlKHR5cGUp
OworICAgIFdlYkluc3BlY3Rvci5CYXNlTmF2aWdhdG9yVHJlZUVsZW1lbnQuY2FsbCh0aGlzLCB0
eXBlLCB0aXRsZSwgW2ljb25DbGFzc10sIHRydWUpOworfQorCitXZWJJbnNwZWN0b3IuTmF2aWdh
dG9yRm9sZGVyVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgIG9ucG9wdWxhdGU6IGZ1bmN0
aW9uKCkKICAgICB7Ci0gICAgICAgIHRoaXMuX25hdmlnYXRvclZpZXcuX3BvcHVsYXRlRm9sZGVy
VHJlZUVsZW1lbnQodGhpcyk7CisgICAgICAgIHRoaXMuX25vZGUucG9wdWxhdGUoKTsKICAgICB9
LAogCiAgICAgb25hdHRhY2g6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIFdlYkluc3BlY3Rv
ci5CYXNlTmF2aWdhdG9yVHJlZUVsZW1lbnQucHJvdG90eXBlLm9uYXR0YWNoLmNhbGwodGhpcyk7
Ci0gICAgICAgIGlmICh0aGlzLmlzRG9tYWluICYmIHRoaXMudGl0bGVUZXh0ID09PSBXZWJJbnNw
ZWN0b3IuaW5zcGVjdGVkUGFnZURvbWFpbikKKyAgICAgICAgaWYgKHRoaXMudHlwZSgpID09PSBX
ZWJJbnNwZWN0b3IuTmF2aWdhdG9yVHJlZU91dGxpbmUuVHlwZXMuRG9tYWluICYmIHRoaXMudGl0
bGVUZXh0ID09PSBXZWJJbnNwZWN0b3IuaW5zcGVjdGVkUGFnZURvbWFpbikKICAgICAgICAgICAg
IHRoaXMuZXhwYW5kKCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHRoaXMuY29sbGFwc2Uo
KTsKQEAgLTYwMCw3ICs2ODYsNyBAQCBXZWJJbnNwZWN0b3IuTmF2aWdhdG9yRm9sZGVyVHJlZUVs
ZW1lbnQucHJvdG90eXBlID0gewogICovCiBXZWJJbnNwZWN0b3IuTmF2aWdhdG9yU291cmNlVHJl
ZUVsZW1lbnQgPSBmdW5jdGlvbihuYXZpZ2F0b3JWaWV3LCB1aVNvdXJjZUNvZGUsIHRpdGxlKQog
ewotICAgIFdlYkluc3BlY3Rvci5CYXNlTmF2aWdhdG9yVHJlZUVsZW1lbnQuY2FsbCh0aGlzLCB0
aXRsZSwgWyJuYXZpZ2F0b3ItIiArIHVpU291cmNlQ29kZS5jb250ZW50VHlwZSgpLm5hbWUoKSAr
ICItdHJlZS1pdGVtIl0sIGZhbHNlKTsKKyAgICBXZWJJbnNwZWN0b3IuQmFzZU5hdmlnYXRvclRy
ZWVFbGVtZW50LmNhbGwodGhpcywgV2ViSW5zcGVjdG9yLk5hdmlnYXRvclRyZWVPdXRsaW5lLlR5
cGVzLlVJU291cmNlQ29kZSwgdGl0bGUsIFsibmF2aWdhdG9yLSIgKyB1aVNvdXJjZUNvZGUuY29u
dGVudFR5cGUoKS5uYW1lKCkgKyAiLXRyZWUtaXRlbSJdLCBmYWxzZSk7CiAgICAgdGhpcy5fbmF2
aWdhdG9yVmlldyA9IG5hdmlnYXRvclZpZXc7CiAgICAgdGhpcy5fdWlTb3VyY2VDb2RlID0gdWlT
b3VyY2VDb2RlOwogICAgIHRoaXMudG9vbHRpcCA9IHVpU291cmNlQ29kZS5vcmlnaW5VUkwoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c05h
dmlnYXRvci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c05h
dmlnYXRvci5qcwppbmRleCA1ZGU5NTljYzgyMTkyMjg2ZTkwMWMxNTgxOWEwMDFkODVjNzJjMDE4
Li41NjMwNTM4MWUzYTRiNDBhM2VhNDEzMjVjNTkyZGZmMzViOWMyYTE5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNOYXZpZ2F0b3IuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzTmF2aWdhdG9yLmpz
CkBAIC0xODEsMTQgKzE4MSw2IEBAIFdlYkluc3BlY3Rvci5TbmlwcGV0c05hdmlnYXRvclZpZXcu
RXZlbnRzID0gewogCiBXZWJJbnNwZWN0b3IuU25pcHBldHNOYXZpZ2F0b3JWaWV3LnByb3RvdHlw
ZSA9IHsKICAgICAvKioKLSAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9
IHVpU291cmNlQ29kZQotICAgICAqLwotICAgIGdldE9yQ3JlYXRlRm9sZGVyVHJlZUVsZW1lbnQ6
IGZ1bmN0aW9uKHVpU291cmNlQ29kZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9zY3Jp
cHRzVHJlZTsKLSAgICB9LAotCi0gICAgLyoqCiAgICAgICogQHBhcmFtIHtFdmVudH0gZXZlbnQK
ICAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGU9fSB1aVNvdXJjZUNvZGUK
ICAgICAgKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U2ltcGxlV29ya3NwYWNlUHJvdmlkZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1NpbXBsZVdvcmtzcGFjZVByb3ZpZGVyLmpzCmluZGV4IDUwZWZmNjE3Njg1ZjAxYzYz
NzJmNjkyMzU4NmY2MzBmNTFjMTZlOWYuLjdmM2RkODYzNzViOGUzNTcwMzAwYmMzM2FmNzQwMTdl
ZDFlZjYxMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U2ltcGxlV29ya3NwYWNlUHJvdmlkZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9TaW1wbGVXb3Jrc3BhY2VQcm92aWRlci5qcwpAQCAtNzMsMTIgKzczLDE1IEBA
IFdlYkluc3BlY3Rvci5TaW1wbGVQcm9qZWN0RGVsZWdhdGUucHJvdG90eXBlID0gewogICAgICAg
ICBpZiAodHlwZW9mIHRoaXMuX2Rpc3BsYXlOYW1lICE9PSAidW5kZWZpbmVkIikKICAgICAgICAg
ICAgIHJldHVybiB0aGlzLl9kaXNwbGF5TmFtZTsKICAgICAgICAgaWYgKCF0aGlzLl9uYW1lKSB7
Ci0gICAgICAgICAgICB0aGlzLl9kaXNwbGF5TmFtZSA9ICIiOworICAgICAgICAgICAgdGhpcy5f
ZGlzcGxheU5hbWUgPSB0aGlzLl90eXBlICE9PSBXZWJJbnNwZWN0b3IucHJvamVjdFR5cGVzLlNu
aXBwZXRzID8gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIobm8gZG9tYWluKSIpIDogIiI7CiAgICAg
ICAgICAgICByZXR1cm4gdGhpcy5fZGlzcGxheU5hbWU7CiAgICAgICAgIH0KICAgICAgICAgdmFy
IHBhcnNlZFVSTCA9IG5ldyBXZWJJbnNwZWN0b3IuUGFyc2VkVVJMKHRoaXMuX25hbWUpOwotICAg
ICAgICBpZiAocGFyc2VkVVJMLmlzVmFsaWQpCisgICAgICAgIGlmIChwYXJzZWRVUkwuaXNWYWxp
ZCkgewogICAgICAgICAgICAgdGhpcy5fZGlzcGxheU5hbWUgPSBwYXJzZWRVUkwuaG9zdCArIChw
YXJzZWRVUkwucG9ydCA/ICgiOiIgKyBwYXJzZWRVUkwucG9ydCkgOiAiIik7CisgICAgICAgICAg
ICBpZiAoIXRoaXMuX2Rpc3BsYXlOYW1lKQorICAgICAgICAgICAgICAgIHRoaXMuX2Rpc3BsYXlO
YW1lID0gdGhpcy5fbmFtZTsKKyAgICAgICAgfQogICAgICAgICBlbHNlCiAgICAgICAgICAgICB0
aGlzLl9kaXNwbGF5TmFtZSA9IHRoaXMuX25hbWU7CiAgICAgICAgIHJldHVybiB0aGlzLl9kaXNw
bGF5TmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
bmF2aWdhdG9yVmlldy5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL25h
dmlnYXRvclZpZXcuY3NzCmluZGV4IDc5Mzk2ODk5MDFmODUwNzliYTVjZmI1YmQ5MWFiMmU0NWIy
ZmExNTEuLmMwZmRiNDE0ZTkyNzkxZjgwMzVlMzY1ODg4ZmMxNThhZjE4ZWIxYzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvbmF2aWdhdG9yVmlldy5jc3MK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9uYXZpZ2F0b3JWaWV3LmNz
cwpAQCAtNTIsNiArNTIsMTEgQEAKICAgICBjb250ZW50OiB1cmwoSW1hZ2VzL3Jlc291cmNlUGxh
aW5JY29uLnBuZyk7CiB9CiAKKy5uYXZpZ2F0b3IgPiBvbCB7CisgICAgbWluLWhlaWdodDogMTAw
JTsKKyAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cit9CisKIC5uYXZpZ2F0b3IgbGkgewogICAg
IGhlaWdodDogMTdweDsKICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwpAQCAtOTAsOCArOTUsNyBA
QAogfQogCiAubmF2aWdhdG9yIC5iYXNlLW5hdmlnYXRvci10cmVlLWVsZW1lbnQtdGl0bGUgewot
ICAgIG92ZXJmbG93OiBoaWRkZW47Ci0gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CisgICAg
ZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICBwYWRk
aW5nLWxlZnQ6IDJweDsKICAgICB0b3A6IDFweDsKQEAgLTEyOCw4ICsxMzIsNyBAQAogfQogCiAu
bmF2aWdhdG9yLXRhYmJlZC1wYW5lIC5uYXZpZ2F0b3ItY29udGFpbmVyIHsKLSAgICBvdmVyZmxv
dy15OiBhdXRvOwotICAgIG92ZXJmbG93LXg6IGhpZGRlbjsKKyAgICBvdmVyZmxvdzogYXV0bzsK
IH0KIAogLm5hdmlnYXRvci10YWJiZWQtcGFuZSAubmF2aWdhdG9yIHsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjMzEyZmUw
YmIxZjE2ZWUxY2QyZTg0ZGVlNDhiZjI2YTY5MzFmMGE3Li43ODI4NDUyNDFhMDk4OThmOGUxNjM2
MWY4M2RkOTIwODBmZDM4MjM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTMtMDItMjAgIFZz
ZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogTmF2aWdhdG9yIHNob3VsZCBzaG93IHRyZWUgZWxlbWVudCBmb3IgZWFjaCBmb2xkZXIg
aW4gdGhlIHNvdXJjZSBwYXRoLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTA4OTQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1maWxlLXNlbGVjdG9yLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1maWxlLXNl
bGVjdG9yLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVs
Lmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtc29ydGluZy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtc29ydGluZy5o
dG1sOgorCiAyMDEzLTAyLTE5ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IE1ha2UgVUlTb3VyY2VDb2RlLnBhdGgoKSBhbiBh
cnJheSBvZiBwYXRoIHNlZ21lbnRzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3NjcmlwdHMtZmlsZS1zZWxlY3Rvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1maWxlLXNlbGVjdG9yLWV4cGVjdGVkLnR4dApp
bmRleCA3MDA0ZDFkNzkzOWVhYmZlNGFmYmViMDllNGM2ZjQ5MTg1ZjhjYTliLi45ZDZlZTUzNjFh
MmY3YmYyYjZhZDZkNTFhM2VlODFlODczMzhiZjQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1maWxlLXNlbGVjdG9yLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1maWxlLXNlbGVjdG9yLWV4
cGVjdGVkLnR4dApAQCAtMSwzMSArMSw1MSBAQAogVGVzdHMgc2NyaXB0cyBwYW5lbCBmaWxlIHNl
bGVjdG9ycy4KIAogRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdTY3JpcHRzJyB0YWI6CisgIChu
byBkb21haW4pCiAgIGV4YW1wbGUuY29tCi0gIGxvY2FsaG9zdAotICAgIExheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9mb28vYmFyCi0gICAgTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL2Zvby9iYXoKLSAgP2E9YgotICB2ZXJ5X2xvb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29uZ191cmwKKyAgbG9jYWxob3N0OjgwODAKIER1bXBpbmcgU2NyaXB0c05hdmlnYXRv
ciAnQ29udGVudCBzY3JpcHRzJyB0YWI6Ci0gIGxvY2FsaG9zdAotICAgIExheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9mb28vYmFyCisgIGxvY2FsaG9zdDo4MDgwCiBEdW1waW5nIFNjcmlw
dHNOYXZpZ2F0b3IgJ1NjcmlwdHMnIHRhYjoKKyAgKG5vIGRvbWFpbikKKyAgZXhhbXBsZS5jb20K
KyAgbG9jYWxob3N0OjgwODAKKyAgICBMYXlvdXRUZXN0cworICAgICAgaW5zcGVjdG9yCisgICAg
ICAgIGRlYnVnZ2VyCisgICAgICAgICAgZm9vCisgICAgICAgICAgICBiYXIKKyAgICAgICAgICAg
ICAgc2NyaXB0LmpzCisgICAgICAgICAgICAgIHNjcmlwdC5qcz9hPTEKKyAgICAgICAgICAgICAg
c2NyaXB0LmpzP2E9MgorICAgICAgICAgICAgYmF6CitEdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3Ig
J0NvbnRlbnQgc2NyaXB0cycgdGFiOgorICBsb2NhbGhvc3Q6ODA4MAorRHVtcGluZyBTY3JpcHRz
TmF2aWdhdG9yICdTY3JpcHRzJyB0YWI6CisgIChubyBkb21haW4pCisgICAgP2E9YgorICAgIHZl
cnlfbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nX3VybAogICBleGFtcGxl
LmNvbQogICAgID9hPWIKLSAgbG9jYWxob3N0Ci0gICAgTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL2Zvby9iYXIKLSAgICAgIHNjcmlwdC5qcwotICAgICAgc2NyaXB0LmpzP2E9MQotICAg
ICAgc2NyaXB0LmpzP2E9MgotICAgIExheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9mb28v
YmF6Ci0gICAgICBzY3JpcHQuanMKLSAgP2E9YgotICB2ZXJ5X2xvb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29uZ191cmwKKyAgbG9jYWxob3N0OjgwODAKKyAgICBMYXlvdXRUZXN0
cworICAgICAgaW5zcGVjdG9yCisgICAgICAgIGRlYnVnZ2VyCisgICAgICAgICAgZm9vCisgICAg
ICAgICAgICBiYXIKKyAgICAgICAgICAgICAgc2NyaXB0LmpzCisgICAgICAgICAgICAgIHNjcmlw
dC5qcz9hPTEKKyAgICAgICAgICAgICAgc2NyaXB0LmpzP2E9MgorICAgICAgICAgICAgYmF6Cisg
ICAgICAgICAgICAgIHNjcmlwdC5qcwogRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdDb250ZW50
IHNjcmlwdHMnIHRhYjoKLSAgbG9jYWxob3N0Ci0gICAgTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL2Zvby9iYXIKLSAgICAgIGNvbnRlbnRTY3JpcHQuanM/YT0xCi0gICAgICBjb250ZW50
U2NyaXB0LmpzP2E9MgotICAgICAgY29udGVudFNjcmlwdDIuanM/YT0xCisgIGxvY2FsaG9zdDo4
MDgwCisgICAgTGF5b3V0VGVzdHMKKyAgICAgIGluc3BlY3RvcgorICAgICAgICBkZWJ1Z2dlcgor
ICAgICAgICAgIGZvbworICAgICAgICAgICAgYmFyCisgICAgICAgICAgICAgIGNvbnRlbnRTY3Jp
cHQuanM/YT0xCisgICAgICAgICAgICAgIGNvbnRlbnRTY3JpcHQuanM/YT0yCisgICAgICAgICAg
ICAgIGNvbnRlbnRTY3JpcHQyLmpzP2E9MQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1maWxlLXNlbGVjdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1maWxlLXNlbGVjdG9yLmh0bWwKaW5kZXggNTcyZTJi
ZjVjYjJkZWEwODRmZjYzNTk4MWVkYmY4M2VhNWVhZjM4MS4uYjNmZjg3MGEzMzhlY2FhMTM1NmQx
OWIwYTVkM2Q3ZTA4Yzg2NWNkZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL3NjcmlwdHMtZmlsZS1zZWxlY3Rvci5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9zY3JpcHRzLWZpbGUtc2VsZWN0b3IuaHRtbApAQCAtMzcsNiArMzcsOCBA
QCBmdW5jdGlvbiB0ZXN0KCkKICAgICBhZGRVSVNvdXJjZUNvZGUoInZlcnlfbG9vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb25nX3VybCIsIGZhbHNlKTsKIAogICAgIEluc3BlY3Rv
clRlc3QuZHVtcFNjcmlwdHNOYXZpZ2F0b3IobmF2aWdhdG9yKTsKKyAgICBuYXZpZ2F0b3IucmV2
ZWFsVUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZXNbMF0pOworICAgIEluc3BlY3RvclRlc3QuZHVt
cFNjcmlwdHNOYXZpZ2F0b3IobmF2aWdhdG9yKTsKICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHVp
U291cmNlQ29kZXMubGVuZ3RoOyArK2kpCiAgICAgICAgIG5hdmlnYXRvci5yZXZlYWxVSVNvdXJj
ZUNvZGUodWlTb3VyY2VDb2Rlc1tpXSk7CiAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2NyaXB0c05h
dmlnYXRvcihuYXZpZ2F0b3IpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL3NjcmlwdHMtcGFuZWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwtZXhwZWN0ZWQudHh0CmluZGV4IDVhYzIxY2JhNWQ0ZjUz
MmQ2NTBjYWM2NGYzZjI2ZjhjZDEzNmNjMGEuLjYwMTgyY2MwZjZjNTdkMTUyYTNkMDkzNmQ3NTI3
MmU2MDBkMTc0YjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9z
Y3JpcHRzLXBhbmVsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvc2NyaXB0cy1wYW5lbC1leHBlY3RlZC50eHQKQEAgLTMsMzAgKzMsMzcgQEAgVGVzdHMg
dGhhdCBzY3JpcHRzIHBhbmVsIFVJIGVsZW1lbnRzIHdvcmsgYXMgaW50ZW5kZWQuCiAKIFJ1bm5p
bmc6IHRlc3RJbml0aWFsTG9hZAogRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdTY3JpcHRzJyB0
YWI6Ci0gIGJhci5qcwotICBiYXouanMKLSAgZm9vLmpzCi0gIGZvb2Jhci5qcworICAobm8gZG9t
YWluKQorICAgIGJhci5qcworICAgIGJhei5qcworICAgIGZvby5qcworICAgIGZvb2Jhci5qcwog
RHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdDb250ZW50IHNjcmlwdHMnIHRhYjoKIFNvdXJjZSBy
ZXF1ZXN0ZWQgZm9yIGJhei5qcwogCiBSdW5uaW5nOiB0ZXN0UmVzZXQKIFNvdXJjZSByZXF1ZXN0
ZWQgZm9yIGJhei5qcwogRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdTY3JpcHRzJyB0YWI6Ci0g
IGJhci5qcwotICBiYXouanMKLSAgZm9vLmpzCisgIChubyBkb21haW4pCisgICAgYmFyLmpzCisg
ICAgYmF6LmpzCisgICAgZm9vLmpzCiBEdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ0NvbnRlbnQg
c2NyaXB0cycgdGFiOgogRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdTY3JpcHRzJyB0YWI6Ci0g
IGJhci5qcworRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdDb250ZW50IHNjcmlwdHMnIHRhYjoK
K0R1bXBpbmcgU2NyaXB0c05hdmlnYXRvciAnU2NyaXB0cycgdGFiOgorICAobm8gZG9tYWluKQor
ICAgIGJhci5qcwogRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdDb250ZW50IHNjcmlwdHMnIHRh
YjoKIAogUnVubmluZzogdGVzdERlYnVnZ2VyVUlTb3VyY2VDb2RlQWRkZWRBbmRSZW1vdmVkCiBE
dW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ1NjcmlwdHMnIHRhYjoKLSAgZm9vLmpzCisgIChubyBk
b21haW4pCisgICAgZm9vLmpzCiBEdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ0NvbnRlbnQgc2Ny
aXB0cycgdGFiOgogRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdTY3JpcHRzJyB0YWI6Ci0gIGZv
by5qcwotICBzb3VyY2UuanMKKyAgKG5vIGRvbWFpbikKKyAgICBmb28uanMKKyAgICBzb3VyY2Uu
anMKIER1bXBpbmcgU2NyaXB0c05hdmlnYXRvciAnQ29udGVudCBzY3JpcHRzJyB0YWI6CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1wYW5lbC5odG1sCmlu
ZGV4IGNjYzkwYjAzMGRmMWI1MTI3Y2M3YmMwMzZlZWIyYTZkNjE2NmI2OWMuLmY3OWRlYTcwZjUx
Y2ZmM2NhM2RlYzcxMjU4MTA4Zjc5ZTgyNzQzZDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwuaHRtbApAQCAtMzYsMTIgKzM2LDEyIEBAIGZ1
bmN0aW9uIHRlc3QoKQogCiAgICAgZnVuY3Rpb24gYWRkTmV0d29ya0ZpbGUod29ya3NwYWNlLCB1
cmwpCiAgICAgewotICAgICAgICB3b3Jrc3BhY2UubmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyLmFk
ZEZpbGVGb3JVUkwodXJsLCBjcmVhdGVDb250ZW50UHJvdmlkZXIodXJsKSwgZmFsc2UpOworICAg
ICAgICByZXR1cm4gd29ya3NwYWNlLm5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlci5hZGRGaWxlRm9y
VVJMKHVybCwgY3JlYXRlQ29udGVudFByb3ZpZGVyKHVybCksIGZhbHNlKTsKICAgICB9CiAKICAg
ICBmdW5jdGlvbiBhZGREZWJ1Z2dlckZpbGUod29ya3NwYWNlLCB1cmwpCiAgICAgewotICAgICAg
ICB3b3Jrc3BhY2UuZGVidWdnZXJXb3Jrc3BhY2VQcm92aWRlci5hZGRVbmlxdWVGaWxlRm9yVVJM
KHVybCwgY3JlYXRlQ29udGVudFByb3ZpZGVyKHVybCksIGZhbHNlKTsKKyAgICAgICAgcmV0dXJu
IHdvcmtzcGFjZS5kZWJ1Z2dlcldvcmtzcGFjZVByb3ZpZGVyLmFkZFVuaXF1ZUZpbGVGb3JVUkwo
dXJsLCBjcmVhdGVDb250ZW50UHJvdmlkZXIodXJsKSwgZmFsc2UpOwogICAgIH0KIAogICAgIElu
c3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKFsKQEAgLTU2LDcgKzU2LDggQEAgZnVuY3Rpb24gdGVz
dCgpCiAKICAgICAgICAgICAgIGFkZE5ldHdvcmtGaWxlKHdvcmtzcGFjZSwgImZvby5qcyIpOwog
ICAgICAgICAgICAgYWRkTmV0d29ya0ZpbGUod29ya3NwYWNlLCAiYmFyLmpzIik7Ci0gICAgICAg
ICAgICBhZGROZXR3b3JrRmlsZSh3b3Jrc3BhY2UsICJiYXouanMiKTsKKyAgICAgICAgICAgIHZh
ciB1aVNvdXJjZUNvZGUgPSBhZGROZXR3b3JrRmlsZSh3b3Jrc3BhY2UsICJiYXouanMiKTsKKyAg
ICAgICAgICAgIHBhbmVsLl9uYXZpZ2F0b3IucmV2ZWFsVUlTb3VyY2VDb2RlKHVpU291cmNlQ29k
ZSk7CiAKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNjcmlwdHNOYXZpZ2F0b3IocGFu
ZWwuX25hdmlnYXRvcik7CiAKQEAgLTgxLDcgKzgyLDkgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTY3JpcHRzTmF2aWdhdG9yKHBhbmVsLl9uYXZpZ2F0
b3IpOwogCiAgICAgICAgICAgICB3b3Jrc3BhY2UubmV0d29ya1dvcmtzcGFjZVByb3ZpZGVyLnJl
c2V0KCk7Ci0gICAgICAgICAgICBhZGROZXR3b3JrRmlsZSh3b3Jrc3BhY2UsICJiYXIuanMiKTsK
KyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNjcmlwdHNOYXZpZ2F0b3IocGFuZWwuX25h
dmlnYXRvcik7CisgICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gYWRkTmV0d29ya0ZpbGUo
d29ya3NwYWNlLCAiYmFyLmpzIik7CisgICAgICAgICAgICBwYW5lbC5fbmF2aWdhdG9yLnJldmVh
bFVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGUpOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5k
dW1wU2NyaXB0c05hdmlnYXRvcihwYW5lbC5fbmF2aWdhdG9yKTsKIAogICAgICAgICAgICAgcGFu
ZWwuZGV0YWNoKCk7CkBAIC05NCw5ICs5NywxMCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAg
ICAgIHZhciBwYW5lbCA9IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsKHdvcmtzcGFjZSk7
CiAgICAgICAgICAgICBwYW5lbC5zaG93KCk7CiAKLSAgICAgICAgICAgIGFkZE5ldHdvcmtGaWxl
KHdvcmtzcGFjZSwgImZvby5qcyIpOwotICAgICAgICAgICAgYWRkRGVidWdnZXJGaWxlKHdvcmtz
cGFjZSwgImNvbXBpbGVkLmpzIik7Ci0KKyAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBh
ZGROZXR3b3JrRmlsZSh3b3Jrc3BhY2UsICJmb28uanMiKTsKKyAgICAgICAgICAgIHZhciBkZWJ1
Z2dlclVJU291cmNlQ29kZSA9IGFkZERlYnVnZ2VyRmlsZSh3b3Jrc3BhY2UsICJjb21waWxlZC5q
cyIpOworICAgICAgICAgICAgcGFuZWwuX25hdmlnYXRvci5yZXZlYWxVSVNvdXJjZUNvZGUodWlT
b3VyY2VDb2RlKTsKKyAgICAgICAgICAgIHBhbmVsLl9uYXZpZ2F0b3IucmV2ZWFsVUlTb3VyY2VD
b2RlKGRlYnVnZ2VyVUlTb3VyY2VDb2RlKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVt
cFNjcmlwdHNOYXZpZ2F0b3IocGFuZWwuX25hdmlnYXRvcik7CiAKICAgICAgICAgICAgIC8vIFBs
dWcgY29tcGlsZXIgc291cmNlIG1hcHBpbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1zb3J0aW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXNvcnRpbmctZXhwZWN0ZWQudHh0CmluZGV4IGJj
YTNjMzhiZjlhY2YzMjc3ZTc5NWE1MWE3NzM0OWMxM2MyNjZhMTYuLmExOTA2ZWRlMTdjZTcwNGU2
NTBhYzNhMzFjYmYxZjRhZTdlNGFhMmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9zY3JpcHRzLXNvcnRpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXNvcnRpbmctZXhwZWN0ZWQudHh0CkBAIC0yLDQ0
ICsyLDU4IEBAIFRlc3RzIHNjcmlwdHMgc29ydGluZyBpbiB0aGUgc2NyaXB0cyBwYW5lbC4KIAog
CiBEdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ1NjcmlwdHMnIHRhYjoKKyAgKG5vIGRvbWFpbikK
ICAgYmFyLmNvbQotICAgIGZvby9wYXRoCiAgIGZvby5jb20KLSAgICBfanMvcHJvZHVjdGlvbgot
ICAgIGZvby9wYXRoCitEdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ0NvbnRlbnQgc2NyaXB0cycg
dGFiOgorICAobm8gZG9tYWluKQorICBleHRlbnNpb24tbmFtZQorRHVtcGluZyBTY3JpcHRzTmF2
aWdhdG9yICdTY3JpcHRzJyB0YWI6CisgIChubyBkb21haW4pCisgIGJhci5jb20KKyAgZm9vLmNv
bQorICAgIF9qcworICAgIGZvbwogICAgIGkKLSAgICBpL2pzCi0gICpOb24qVVJMKnBhdGgKKyAg
ICBibG9jay5qcz9ibG9jaz1mb28KKyAgICBnYS5qcworICAgIGxlbnRhLmJhbj9wZz00ODgzJmlm
cj0xCisgICAgbGVudGEuYmFuP3BnPTUzMDkmaWZyPTEKKyAgICB0b3AxMDAuamNuPzgwNjc0CiBE
dW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ0NvbnRlbnQgc2NyaXB0cycgdGFiOgorICAobm8gZG9t
YWluKQogICBleHRlbnNpb24tbmFtZQotICAgIGZvbGRlcgotICAqQW5vdGhlcipOb24qVVJMKnBh
dGgKIER1bXBpbmcgU2NyaXB0c05hdmlnYXRvciAnU2NyaXB0cycgdGFiOgorICAobm8gZG9tYWlu
KQorICAgICpOb24qVVJMKnBhdGgKICAgYmFyLmNvbQotICAgIGZvby9wYXRoCi0gICAgICBiYXIu
anM/ZmlsZT1iYXIvenp6LmpzCi0gICAgICBmb28uanM/ZmlsZT1iYXIvYWFhLmpzCisgICAgZm9v
CisgICAgICBwYXRoCisgICAgICAgIGJhci5qcz9maWxlPWJhci96enouanMKKyAgICAgICAgZm9v
LmpzP2ZpbGU9YmFyL2FhYS5qcwogICBmb28uY29tCi0gICAgX2pzL3Byb2R1Y3Rpb24KLSAgICAg
IG1vdG9yLmpzPzEzMDg5Mjc0MzIKLSAgICBmb28vcGF0aAotICAgICAgYmFyLmpzP2ZpbGU9YmFy
L3p6ei5qcwotICAgICAgZm9vLmpzP2ZpbGU9YmFyL2FhYS5qcworICAgIF9qcworICAgICAgcHJv
ZHVjdGlvbgorICAgICAgICBtb3Rvci5qcz8xMzA4OTI3NDMyCisgICAgZm9vCisgICAgICBwYXRo
CisgICAgICAgIGJhci5qcz9maWxlPWJhci96enouanMKKyAgICAgICAgZm9vLmpzP2ZpbGU9YmFy
L2FhYS5qcwogICAgIGkKKyAgICAgIGpzCisgICAgICAgIGpxdWVyeS0xLjUuMS5taW4uanMKKyAg
ICAgICAganF1ZXJ5LmNvb2tpZS5qcwogICAgICAgeGdlbWl1cy5qcwotICAgIGkvanMKLSAgICAg
IGpxdWVyeS0xLjUuMS5taW4uanMKLSAgICAgIGpxdWVyeS5jb29raWUuanMKICAgICBibG9jay5q
cz9ibG9jaz1mb28KICAgICBnYS5qcwogICAgIGxlbnRhLmJhbj9wZz00ODgzJmlmcj0xCiAgICAg
bGVudGEuYmFuP3BnPTUzMDkmaWZyPTEKICAgICB0b3AxMDAuamNuPzgwNjc0Ci0gICpOb24qVVJM
KnBhdGgKIER1bXBpbmcgU2NyaXB0c05hdmlnYXRvciAnQ29udGVudCBzY3JpcHRzJyB0YWI6Cisg
IChubyBkb21haW4pCisgICAgKkFub3RoZXIqTm9uKlVSTCpwYXRoCiAgIGV4dGVuc2lvbi1uYW1l
CiAgICAgZm9sZGVyCiAgICAgICBiYXouanMKICAgICBiYXIuanMKLSAgKkFub3RoZXIqTm9uKlVS
TCpwYXRoCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3Jp
cHRzLXNvcnRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRz
LXNvcnRpbmcuaHRtbAppbmRleCA4YTM0YjgzZjhhNGQ1NzI2NmM0Y2M4MmQ3ZDBhZjM3NTYxN2Qy
ZGY5Li42NjcxNTY3MDk3NWI4NzJhZDYxOTg5NjRmNjU0NDVhYmFlOGZhMWY3IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1zb3J0aW5nLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtc29ydGluZy5odG1sCkBA
IC0yNyw2ICsyNyw4IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHsKICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIiIpOwogICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTY3JpcHRzTmF2
aWdhdG9yKG5hdmlnYXRvcik7CisgICAgICAgIG5hdmlnYXRvci5yZXZlYWxVSVNvdXJjZUNvZGUo
dWlTb3VyY2VDb2Rlc1swXSk7CisgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNjcmlwdHNOYXZp
Z2F0b3IobmF2aWdhdG9yKTsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB1aVNvdXJjZUNv
ZGVzLmxlbmd0aDsgKytpKQogICAgICAgICAgICAgbmF2aWdhdG9yLnJldmVhbFVJU291cmNlQ29k
ZSh1aVNvdXJjZUNvZGVzW2ldKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2NyaXB0c05h
dmlnYXRvcihuYXZpZ2F0b3IpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189291</attachid>
            <date>2013-02-20 05:27:20 -0800</date>
            <delta_ts>2013-03-01 06:02:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108943-20130220172341.patch</filename>
            <type>text/plain</type>
            <size>36182</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNDUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmNiZmFjZGE2NTY0NDg1
MjFmMGY5ZjczMDk1YmY0MDEzZTE0M2Y1NC4uMDFmMjgwZTgzZTVkMjY5ZmI2YjdiZjJkNTJmOGZm
NGU1MzRiYmM4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDEzLTAyLTIwICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IE5hdmlnYXRvciBzaG91bGQgc2hvdyB0cmVlIGVsZW1lbnQgZm9yIGVhY2ggZm9sZGVyIGlu
IHRoZSBzb3VyY2UgcGF0aC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwODk0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE5hdmlnYXRvclZpZXcgbm93IHJlbmRlcnMgdHJlZSBlbGVtZW50IGZvciBlYWNo
IGZvbGRlciBpbiB1aVNvdXJjZUNvZGUgdXJpLgorICAgICAgICBTY3JpcHRzTmF2aWdhdG9yIGhh
cyBob3Jpem9udGFsIHNjcm9sbCBub3cuCisgICAgICAgIFByb2plY3RzIGFyZSBzaG93biBpbiBT
Y3JpcHRzTmF2aWdhdG9yIGJ5IHRoZWlyIGRpc3BsYXlOYW1lLiBUaGlzIGFsbG93cyB1cyB0byBz
aG93IHNldmVyYWwgcm9vdCBmaWxlIHN5c3RlbSBmb2xkZXJzCisgICAgICAgIHdpdGggdGhlIHNh
bWUgbmFtZSBpbiB0aGUgbmF2aWdhdG9yIChlLmcuICdTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3In
IGFuZCAnTGF5b3V0VGVzdHMvaW5zcGVjdG9yJykuCisKKyAgICAgICAgKiBFbmdsaXNoLmxwcm9q
L2xvY2FsaXplZFN0cmluZ3MuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9OYXZp
Z2F0b3JWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdmlnYXRvclZpZXcpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLk5hdmlnYXRvclZpZXcuaWNvbkNsYXNzRm9yVHlwZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVmlldy5wcm90b3R5cGUuYWRkVUlTb3VyY2VDb2Rl
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JWaWV3LnByb3RvdHlwZS5fZ2V0UHJv
amVjdE5vZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdmlnYXRvclZpZXcucHJvdG90eXBl
Ll9jcmVhdGVQcm9qZWN0Tm9kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVmll
dy5wcm90b3R5cGUuX2dldE9yQ3JlYXRlUHJvamVjdE5vZGUpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLk5hdmlnYXRvclZpZXcucHJvdG90eXBlLl9nZXRGb2xkZXJOb2RlKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5OYXZpZ2F0b3JWaWV3LnByb3RvdHlwZS5fY3JlYXRlRm9sZGVyTm9kZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVmlldy5wcm90b3R5cGUuX2dldE9yQ3JlYXRl
Rm9sZGVyTm9kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVmlldy5wcm90b3R5
cGUuX2dldFVJU291cmNlQ29kZVBhcmVudE5vZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5h
dmlnYXRvclZpZXcucHJvdG90eXBlLl9nZXRPckNyZWF0ZVVJU291cmNlQ29kZVBhcmVudE5vZGUp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdmlnYXRvclZpZXcucHJvdG90eXBlLl91cGRhdGVT
Y3JpcHRUaXRsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVmlldy5wcm90b3R5
cGUucmV2ZWFsVUlTb3VyY2VDb2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JW
aWV3LnByb3RvdHlwZS5yZW1vdmVVSVNvdXJjZUNvZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
Lk5hdmlnYXRvclZpZXcucHJvdG90eXBlLnJlc2V0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5O
YXZpZ2F0b3JWaWV3LnByb3RvdHlwZS5fYWRkRm9sZGVyVHJlZUVsZW1lbnQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLk5hdmlnYXRvclZpZXcucHJvdG90eXBlLl9hZGRTY3JpcHRUcmVlRWxlbWVu
dCk6CisgICAgICAgICgudHlwZVdlaWdodCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF2aWdh
dG9yVHJlZU91dGxpbmUuX3RyZWVFbGVtZW50c0NvbXBhcmUpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkJhc2VOYXZpZ2F0b3JUcmVlRWxlbWVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQmFz
ZU5hdmlnYXRvclRyZWVFbGVtZW50LnByb3RvdHlwZS50eXBlKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5OYXZpZ2F0b3JUcmVlTm9kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdG9y
VHJlZU5vZGUucHJvdG90eXBlLnBvcHVsYXRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZp
Z2F0b3JUcmVlTm9kZS5wcm90b3R5cGUuaXNQb3B1bGF0ZWQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLk5hdmlnYXRvclRyZWVOb2RlLnByb3RvdHlwZS5pc0VtcHR5KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5OYXZpZ2F0b3JUcmVlTm9kZS5wcm90b3R5cGUuY2hpbGQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLk5hdmlnYXRvclRyZWVOb2RlLnByb3RvdHlwZS5hcHBlbmRDaGlsZCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVHJlZU5vZGUucHJvdG90eXBlLnJlbW92ZUNoaWxk
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JUcmVlTm9kZS5wcm90b3R5cGUuYXBw
ZW5kVUlTb3VyY2VDb2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JUcmVlTm9k
ZS5wcm90b3R5cGUucmVtb3ZlVUlTb3VyY2VDb2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5O
YXZpZ2F0b3JUcmVlTm9kZS5wcm90b3R5cGUucmVzZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
Lk5hdmlnYXRvckZvbGRlclRyZWVFbGVtZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZp
Z2F0b3JGb2xkZXJUcmVlRWxlbWVudC5wcm90b3R5cGUub25wb3B1bGF0ZSk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuTmF2aWdhdG9yRm9sZGVyVHJlZUVsZW1lbnQucHJvdG90eXBlLm9uYXR0YWNo
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JTb3VyY2VUcmVlRWxlbWVudCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzTmF2aWdhdG9yLmpzOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2ltcGxlV29ya3NwYWNlUHJvdmlkZXIuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuU2ltcGxlUHJvamVjdERlbGVnYXRlLnByb3RvdHlwZS5kaXNwbGF5
TmFtZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9uYXZpZ2F0b3JWaWV3LmNzczoK
KyAgICAgICAgKC5uYXZpZ2F0b3IgPiBvbCk6CisgICAgICAgICgubmF2aWdhdG9yIC5iYXNlLW5h
dmlnYXRvci10cmVlLWVsZW1lbnQtdGl0bGUpOgorICAgICAgICAoLm5hdmlnYXRvci10YWJiZWQt
cGFuZSAubmF2aWdhdG9yLWNvbnRhaW5lcik6CisKIDIwMTMtMDItMTkgIFZzZXZvbG9kIFZsYXNv
diAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogTWFrZSBV
SVNvdXJjZUNvZGUucGF0aCgpIGFuIGFycmF5IG9mIHBhdGggc2VnbWVudHMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKaW5kZXggZjNiOTYy
YTQyOTA2ZTZjMjM1ZDMxOGM2YzVkZWIwZDU2NzgyZDY1NS4uZWM2YjIxZWU5ODRmZTM4OTEyNWU4
YWY2MTFiZDA4ODZmNTk1YWJmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5s
cHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHBy
b2ovbG9jYWxpemVkU3RyaW5ncy5qcwpAQCAtODY0LDMgKzg2NCw0IEBAIGxvY2FsaXplZFN0cmlu
Z3NbIk1hcHBpbmdzIl0gPSAiTWFwcGluZ3MiOwogbG9jYWxpemVkU3RyaW5nc1siQWRkIl0gPSAi
QWRkIjsKIGxvY2FsaXplZFN0cmluZ3NbIk9iamVjdCBzdGF0ZSBiZWxvdyBpcyBjYXB0dXJlZCB1
cG9uIGZpcnN0IGV4cGFuc2lvbiJdID0gIk9iamVjdCBzdGF0ZSBiZWxvdyBpcyBjYXB0dXJlZCB1
cG9uIGZpcnN0IGV4cGFuc2lvbiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyIoaW5kZXgpIl0gPSAiKGlu
ZGV4KSI7Citsb2NhbGl6ZWRTdHJpbmdzWyIobm8gZG9tYWluKSJdID0gIihubyBkb21haW4pIjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmF2aWdhdG9y
Vmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmF2aWdhdG9yVmll
dy5qcwppbmRleCBhOWIzYjcwNDJmYzg4ZjBiYTM2N2MzMjA2ODI2MTNiMzFhYzUwMGYyLi40NTBh
OWM4NzliYzc5NWJhMWJhNDUxOGNkNTQ1NGUwZDhkODY3MzFiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05hdmlnYXRvclZpZXcuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OYXZpZ2F0b3JWaWV3LmpzCkBAIC01MiwxNCAr
NTIsMTIgQEAgV2ViSW5zcGVjdG9yLk5hdmlnYXRvclZpZXcgPSBmdW5jdGlvbigpCiAgICAgdGhp
cy5lbGVtZW50LmFwcGVuZENoaWxkKHNjcmlwdHNPdXRsaW5lRWxlbWVudCk7CiAgICAgdGhpcy5z
ZXREZWZhdWx0Rm9jdXNlZEVsZW1lbnQodGhpcy5fc2NyaXB0c1RyZWUuZWxlbWVudCk7CiAKLSAg
ICAvKiogQHR5cGUge09iamVjdC48c3RyaW5nLCBXZWJJbnNwZWN0b3IuTmF2aWdhdG9yRm9sZGVy
VHJlZUVsZW1lbnQ+fSAqLwotICAgIHRoaXMuX2ZvbGRlclRyZWVFbGVtZW50cyA9IHt9OwotICAg
IC8qKiBAdHlwZSB7T2JqZWN0LjxzdHJpbmcsIEFycmF5LjxXZWJJbnNwZWN0b3IuVUlTb3VyY2VD
b2RlPj59ICovCi0gICAgdGhpcy5fZm9sZGVyVHJlZUVsZW1lbnRzVUlTb3VyY2VDb2RlcyA9IHt9
OwotICAgIC8qKiBAdHlwZSB7T2JqZWN0LjxzdHJpbmcsIFdlYkluc3BlY3Rvci5VSVNvdXJjZUNv
ZGU+fSAqLwotICAgIHRoaXMuX3VpU291cmNlQ29kZXMgPSB7fTsKICAgICAvKiogQHR5cGUge09i
amVjdC48c3RyaW5nLCBXZWJJbnNwZWN0b3IuTmF2aWdhdG9yU291cmNlVHJlZUVsZW1lbnQ+fSAq
LwogICAgIHRoaXMuX3NjcmlwdFRyZWVFbGVtZW50cyA9IHt9OworCisgICAgdGhpcy5fcm9vdE5v
ZGUgPSBuZXcgV2ViSW5zcGVjdG9yLk5hdmlnYXRvclRyZWVOb2RlKHRoaXMsIFdlYkluc3BlY3Rv
ci5OYXZpZ2F0b3JUcmVlT3V0bGluZS5UeXBlcy5Sb290LCBudWxsLCAiIiwgIiIsICIiKQorICAg
IHRoaXMuX3Jvb3ROb2RlLnRyZWVFbGVtZW50ID0gdGhpcy5fc2NyaXB0c1RyZWU7CisgICAgdGhp
cy5fcm9vdE5vZGUucG9wdWxhdGUoKTsKIH0KIAogV2ViSW5zcGVjdG9yLk5hdmlnYXRvclZpZXcu
RXZlbnRzID0gewpAQCAtNjcsMTggKzY1LDkwIEBAIFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JWaWV3
LkV2ZW50cyA9IHsKICAgICBGaWxlUmVuYW1lZDogIkZpbGVSZW5hbWVkIgogfQogCitXZWJJbnNw
ZWN0b3IuTmF2aWdhdG9yVmlldy5pY29uQ2xhc3NGb3JUeXBlID0gZnVuY3Rpb24odHlwZSkKK3sK
KyAgICBpZiAodHlwZSA9PT0gV2ViSW5zcGVjdG9yLk5hdmlnYXRvclRyZWVPdXRsaW5lLlR5cGVz
LkRvbWFpbikKKyAgICAgICAgcmV0dXJuICJuYXZpZ2F0b3ItZG9tYWluLXRyZWUtaXRlbSI7Cisg
ICAgaWYgKHR5cGUgPT09IFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JUcmVlT3V0bGluZS5UeXBlcy5G
aWxlU3lzdGVtKQorICAgICAgICByZXR1cm4gIm5hdmlnYXRvci1mb2xkZXItdHJlZS1pdGVtIjsK
KyAgICByZXR1cm4gIm5hdmlnYXRvci1mb2xkZXItdHJlZS1pdGVtIjsKK30KKwogV2ViSW5zcGVj
dG9yLk5hdmlnYXRvclZpZXcucHJvdG90eXBlID0gewogICAgIC8qKgogICAgICAqIEBwYXJhbSB7
V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0gdWlTb3VyY2VDb2RlCiAgICAgICovCiAgICAgYWRk
VUlTb3VyY2VDb2RlOiBmdW5jdGlvbih1aVNvdXJjZUNvZGUpCiAgICAgewotICAgICAgICBpZiAo
dGhpcy5fdWlTb3VyY2VDb2Rlc1t1aVNvdXJjZUNvZGUudXJpKCldKQotICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGVzW3VpU291cmNlQ29kZS51cmkoKV0gPSB1
aVNvdXJjZUNvZGU7CisgICAgICAgIHZhciBub2RlID0gdGhpcy5fZ2V0T3JDcmVhdGVVSVNvdXJj
ZUNvZGVQYXJlbnROb2RlKHVpU291cmNlQ29kZSk7CisgICAgICAgIG5vZGUuYXBwZW5kVUlTb3Vy
Y2VDb2RlKHVpU291cmNlQ29kZSk7CisgICAgfSwKKworICAgIF9nZXRQcm9qZWN0Tm9kZTogZnVu
Y3Rpb24ocHJvamVjdCkKKyAgICB7CisgICAgICAgIGlmICghcHJvamVjdC5kaXNwbGF5TmFtZSgp
KQorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3Jvb3ROb2RlOworICAgICAgICByZXR1cm4gdGhp
cy5fcm9vdE5vZGUuY2hpbGQocHJvamVjdC5pZCgpKTsKKyAgICB9LAorCisgICAgX2NyZWF0ZVBy
b2plY3ROb2RlOiBmdW5jdGlvbihwcm9qZWN0KQorICAgIHsKKyAgICAgICAgdmFyIHR5cGUgPSBw
cm9qZWN0LnR5cGUoKSA9PT0gV2ViSW5zcGVjdG9yLnByb2plY3RUeXBlcy5GaWxlU3lzdGVtID8g
V2ViSW5zcGVjdG9yLk5hdmlnYXRvclRyZWVPdXRsaW5lLlR5cGVzLkZpbGVTeXN0ZW0gOiBXZWJJ
bnNwZWN0b3IuTmF2aWdhdG9yVHJlZU91dGxpbmUuVHlwZXMuRG9tYWluOworICAgICAgICB2YXIg
cHJvamVjdE5vZGUgPSBuZXcgV2ViSW5zcGVjdG9yLk5hdmlnYXRvclRyZWVOb2RlKHRoaXMsIHR5
cGUsIHRoaXMuX3Jvb3ROb2RlLCBwcm9qZWN0LmlkKCksIHByb2plY3QuZGlzcGxheU5hbWUoKSk7
CisgICAgICAgIHRoaXMuX3Jvb3ROb2RlLmFwcGVuZENoaWxkKHByb2plY3ROb2RlKTsKKyAgICAg
ICAgcmV0dXJuIHByb2plY3ROb2RlOworICAgIH0sCisKKyAgICBfZ2V0T3JDcmVhdGVQcm9qZWN0
Tm9kZTogZnVuY3Rpb24ocHJvamVjdCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9nZXRQ
cm9qZWN0Tm9kZShwcm9qZWN0KSB8fCB0aGlzLl9jcmVhdGVQcm9qZWN0Tm9kZShwcm9qZWN0KTsK
KyAgICB9LAorCisgICAgX2dldEZvbGRlck5vZGU6IGZ1bmN0aW9uKHBhcmVudE5vZGUsIG5hbWUp
CisgICAgeworICAgICAgICByZXR1cm4gcGFyZW50Tm9kZS5jaGlsZChuYW1lKTsKKyAgICB9LAor
CisgICAgX2NyZWF0ZUZvbGRlck5vZGU6IGZ1bmN0aW9uKHBhcmVudE5vZGUsIG5hbWUpCisgICAg
eworICAgICAgICB2YXIgZm9sZGVyTm9kZSA9IG5ldyBXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVHJl
ZU5vZGUodGhpcywgV2ViSW5zcGVjdG9yLk5hdmlnYXRvclRyZWVPdXRsaW5lLlR5cGVzLkZvbGRl
ciwgcGFyZW50Tm9kZSwgbmFtZSwgbmFtZSwgIm5hdmlnYXRvci1mb2xkZXItdHJlZS1pdGVtIik7
CisgICAgICAgIHBhcmVudE5vZGUuYXBwZW5kQ2hpbGQoZm9sZGVyTm9kZSk7CisgICAgICAgIHJl
dHVybiBmb2xkZXJOb2RlOworICAgIH0sCisKKyAgICBfZ2V0T3JDcmVhdGVGb2xkZXJOb2RlOiBm
dW5jdGlvbihwYXJlbnROb2RlLCBuYW1lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2dl
dEZvbGRlck5vZGUocGFyZW50Tm9kZSwgbmFtZSkgfHwgdGhpcy5fY3JlYXRlRm9sZGVyTm9kZShw
YXJlbnROb2RlLCBuYW1lKTsKKyAgICB9LAorCisgICAgX2dldFVJU291cmNlQ29kZVBhcmVudE5v
ZGU6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSkKKyAgICB7CisgICAgICAgIHZhciBwcm9qZWN0Tm9k
ZSA9IHRoaXMuX2dldFByb2plY3ROb2RlKHVpU291cmNlQ29kZS5wcm9qZWN0KCkpOworICAgICAg
ICBpZiAoIXByb2plY3ROb2RlKQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIHZh
ciBwYXRoID0gdWlTb3VyY2VDb2RlLnBhdGgoKTsKKyAgICAgICAgdmFyIHBhcmVudE5vZGUgPSBw
cm9qZWN0Tm9kZTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXRoLmxlbmd0aCAtIDE7
ICsraSkgeworICAgICAgICAgICAgcGFyZW50Tm9kZSA9IHRoaXMuX2dldEZvbGRlck5vZGUocGFy
ZW50Tm9kZSwgcGF0aFtpXSk7CisgICAgICAgICAgICBpZiAoIXBhcmVudE5vZGUpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHBhcmVudE5v
ZGU7CisgICAgfSwKIAotICAgICAgICB2YXIgZm9sZGVyVHJlZUVsZW1lbnQgPSB0aGlzLmdldE9y
Q3JlYXRlRm9sZGVyVHJlZUVsZW1lbnQodWlTb3VyY2VDb2RlKTsKLSAgICAgICAgdGhpcy5fYWRv
cHRVSVNvdXJjZUNvZGUoZm9sZGVyVHJlZUVsZW1lbnQsIHVpU291cmNlQ29kZSk7CisgICAgX2dl
dE9yQ3JlYXRlVUlTb3VyY2VDb2RlUGFyZW50Tm9kZTogZnVuY3Rpb24odWlTb3VyY2VDb2RlKQor
ICAgIHsKKyAgICAgICAgdmFyIHByb2plY3ROb2RlID0gdGhpcy5fZ2V0T3JDcmVhdGVQcm9qZWN0
Tm9kZSh1aVNvdXJjZUNvZGUucHJvamVjdCgpKTsKKyAgICAgICAgaWYgKCFwcm9qZWN0Tm9kZSkK
KyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB2YXIgcGF0aCA9IHVpU291cmNlQ29k
ZS5wYXRoKCk7CisgICAgICAgIHZhciBwYXJlbnROb2RlID0gcHJvamVjdE5vZGU7CisgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgcGF0aC5sZW5ndGggLSAxOyArK2kpIHsKKyAgICAgICAgICAg
IHBhcmVudE5vZGUgPSB0aGlzLl9nZXRPckNyZWF0ZUZvbGRlck5vZGUocGFyZW50Tm9kZSwgcGF0
aFtpXSk7CisgICAgICAgICAgICBpZiAoIXBhcmVudE5vZGUpCisgICAgICAgICAgICAgICAgcmV0
dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHBhcmVudE5vZGU7CiAgICAgfSwK
IAogICAgIF9nZXRPckNyZWF0ZVNjcmlwdFRyZWVFbGVtZW50OiBmdW5jdGlvbih1aVNvdXJjZUNv
ZGUpCkBAIC0xNDYsMTQgKzIxNiwxMSBAQCBXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVmlldy5wcm90
b3R5cGUgPSB7CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgdmFyIHRpdGxlVGV4dDsK
LSAgICAgICAgaWYgKHVpU291cmNlQ29kZS5wYXJzZWRVUkwuaXNWYWxpZCkgewotICAgICAgICAg
ICAgdGl0bGVUZXh0ID0gdWlTb3VyY2VDb2RlLnBhcnNlZFVSTC5sYXN0UGF0aENvbXBvbmVudDsK
LSAgICAgICAgICAgIGlmICh1aVNvdXJjZUNvZGUucGFyc2VkVVJMLnF1ZXJ5UGFyYW1zKQotICAg
ICAgICAgICAgICAgIHRpdGxlVGV4dCArPSAiPyIgKyB1aVNvdXJjZUNvZGUucGFyc2VkVVJMLnF1
ZXJ5UGFyYW1zOwotICAgICAgICB9IGVsc2UgaWYgKHVpU291cmNlQ29kZS5wYXJzZWRVUkwpCi0g
ICAgICAgICAgICB0aXRsZVRleHQgPSB1aVNvdXJjZUNvZGUucGFyc2VkVVJMLnVybDsKKyAgICAg
ICAgdmFyIHBhdGggPSB1aVNvdXJjZUNvZGUucGF0aCgpOworICAgICAgICB0aXRsZVRleHQgPSBw
YXRoW3BhdGgubGVuZ3RoIC0gMV07CiAgICAgICAgIGlmICghdGl0bGVUZXh0KQogICAgICAgICAg
ICAgdGl0bGVUZXh0ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIocHJvZ3JhbSkiKTsKKyAgICAg
ICAgdGl0bGVUZXh0ID0gdGl0bGVUZXh0LnRyaW1FbmQoMTAwKTsKICAgICAgICAgaWYgKCFpZ25v
cmVJc0RpcnR5ICYmIHVpU291cmNlQ29kZS5pc0RpcnR5KCkpCiAgICAgICAgICAgICB0aXRsZVRl
eHQgPSAiKiIgKyB0aXRsZVRleHQ7CiAgICAgICAgIHNjcmlwdFRyZWVFbGVtZW50LnRpdGxlVGV4
dCA9IHRpdGxlVGV4dDsKQEAgLTE2OSw5ICsyMzYsMTEgQEAgV2ViSW5zcGVjdG9yLk5hdmlnYXRv
clZpZXcucHJvdG90eXBlID0gewogCiAgICAgICAgIHRoaXMuX2xhc3RTZWxlY3RlZFVJU291cmNl
Q29kZSA9IHVpU291cmNlQ29kZTsKIAotICAgICAgICB2YXIgZm9sZGVyVHJlZUVsZW1lbnQgPSB0
aGlzLmdldE9yQ3JlYXRlRm9sZGVyVHJlZUVsZW1lbnQodWlTb3VyY2VDb2RlKTsKLSAgICAgICAg
aWYgKCFmb2xkZXJUcmVlRWxlbWVudC5fcG9wdWxhdGVkICYmIGZvbGRlclRyZWVFbGVtZW50LnBh
cmVudCkKLSAgICAgICAgICAgIGZvbGRlclRyZWVFbGVtZW50Lm9ucG9wdWxhdGUoKTsKKyAgICAg
ICAgdmFyIHBhcmVudE5vZGUgPSB0aGlzLl9nZXRVSVNvdXJjZUNvZGVQYXJlbnROb2RlKHVpU291
cmNlQ29kZSk7CisgICAgICAgIGlmICghcGFyZW50Tm9kZSkKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgcGFyZW50Tm9kZS5wb3B1bGF0ZSgpOworICAgICAgICBwYXJlbnROb2RlLnRyZWVF
bGVtZW50LmV4cGFuZCgpOwogICAgICAgICB2YXIgc2NyaXB0VHJlZUVsZW1lbnQgPSB0aGlzLl9n
ZXRPckNyZWF0ZVNjcmlwdFRyZWVFbGVtZW50KHVpU291cmNlQ29kZSk7CiAgICAgICAgIHNjcmlw
dFRyZWVFbGVtZW50LnJldmVhbEFuZFNlbGVjdCh0cnVlKTsKICAgICB9LApAQCAtMTkzLDE5ICsy
NjIsMTkgQEAgV2ViSW5zcGVjdG9yLk5hdmlnYXRvclZpZXcucHJvdG90eXBlID0gewogICAgIHJl
bW92ZVVJU291cmNlQ29kZTogZnVuY3Rpb24odWlTb3VyY2VDb2RlKQogICAgIHsKICAgICAgICAg
dGhpcy5fcmVtb3ZlU2NyaXB0VHJlZUVsZW1lbnQodWlTb3VyY2VDb2RlKTsKLSAgICAgICAgdmFy
IHRyZWVFbGVtZW50ID0gdGhpcy5nZXRPckNyZWF0ZUZvbGRlclRyZWVFbGVtZW50KHVpU291cmNl
Q29kZSk7Ci0gICAgICAgIHdoaWxlICh0cmVlRWxlbWVudCkgewotICAgICAgICAgICAgdmFyIHBh
cmVudCA9IHRyZWVFbGVtZW50LnBhcmVudDsKLSAgICAgICAgICAgIGlmIChwYXJlbnQpIHsKLSAg
ICAgICAgICAgICAgICBkZWxldGUgdGhpcy5fZm9sZGVyVHJlZUVsZW1lbnRzW3RyZWVFbGVtZW50
LmZvbGRlcklkZW50aWZpZXJdOwotICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9mb2xkZXJU
cmVlRWxlbWVudHNVSVNvdXJjZUNvZGVzW3RyZWVFbGVtZW50LmZvbGRlcklkZW50aWZpZXJdOwot
ICAgICAgICAgICAgICAgIHBhcmVudC5yZW1vdmVDaGlsZCh0cmVlRWxlbWVudCk7Ci0gICAgICAg
ICAgICAgICAgaWYgKHBhcmVudC5jaGlsZHJlbi5sZW5ndGgpCi0gICAgICAgICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgdHJlZUVsZW1lbnQgPSBwYXJlbnQ7
CisgICAgICAgIHZhciBub2RlID0gdGhpcy5fZ2V0VUlTb3VyY2VDb2RlUGFyZW50Tm9kZSh1aVNv
dXJjZUNvZGUpOworICAgICAgICBpZiAoIW5vZGUpCisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIG5vZGUucmVtb3ZlVUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZSk7CisgICAgICAgIHdoaWxl
IChub2RlKSB7CisgICAgICAgICAgICB2YXIgcGFyZW50ID0gbm9kZS5wYXJlbnQ7CisgICAgICAg
ICAgICBpZiAoIXBhcmVudCB8fCAhbm9kZS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBpZiAobm9kZS50cmVlRWxlbWVudCAmJiBwYXJlbnQudHJlZUVsZW1l
bnQpCisgICAgICAgICAgICAgICAgcGFyZW50LnRyZWVFbGVtZW50LnJlbW92ZUNoaWxkKG5vZGUu
dHJlZUVsZW1lbnQpOworICAgICAgICAgICAgcGFyZW50LnJlbW92ZUNoaWxkKG5vZGUpOworICAg
ICAgICAgICAgbm9kZSA9IHBhcmVudDsKICAgICAgICAgfQotICAgICAgICBkZWxldGUgdGhpcy5f
dWlTb3VyY2VDb2Rlc1t1aVNvdXJjZUNvZGUudXJpKCldOwogICAgIH0sCiAKICAgICAvKioKQEAg
LTI4NywxMCArMzU2LDggQEAgV2ViSW5zcGVjdG9yLk5hdmlnYXRvclZpZXcucHJvdG90eXBlID0g
ewogCiAgICAgICAgIHRoaXMuX3NjcmlwdHNUcmVlLnN0b3BTZWFyY2goKTsKICAgICAgICAgdGhp
cy5fc2NyaXB0c1RyZWUucmVtb3ZlQ2hpbGRyZW4oKTsKLSAgICAgICAgdGhpcy5fZm9sZGVyVHJl
ZUVsZW1lbnRzID0ge307Ci0gICAgICAgIHRoaXMuX2ZvbGRlclRyZWVFbGVtZW50c1VJU291cmNl
Q29kZXMgPSB7fTsKLSAgICAgICAgdGhpcy5fdWlTb3VyY2VDb2RlcyA9IHt9OwogICAgICAgICB0
aGlzLl9zY3JpcHRUcmVlRWxlbWVudHMgPSB7fTsKKyAgICAgICAgdGhpcy5fcm9vdE5vZGUucmVz
ZXQoKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC0yOTgsNzMgKzM2NSwxOCBAQCBXZWJJbnNwZWN0
b3IuTmF2aWdhdG9yVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICogQHBhcmFtIHtzdHJpbmd9IGRv
bWFpbgogICAgICAqIEBwYXJhbSB7c3RyaW5nfSBmb2xkZXJOYW1lCiAgICAgICovCi0gICAgY3Jl
YXRlRm9sZGVyVHJlZUVsZW1lbnQ6IGZ1bmN0aW9uKHBhcmVudEZvbGRlckVsZW1lbnQsIGZvbGRl
cklkZW50aWZpZXIsIGRvbWFpbiwgZm9sZGVyTmFtZSkKLSAgICB7Ci0gICAgICAgIHZhciBmb2xk
ZXJUcmVlRWxlbWVudCA9IG5ldyBXZWJJbnNwZWN0b3IuTmF2aWdhdG9yRm9sZGVyVHJlZUVsZW1l
bnQodGhpcywgZm9sZGVySWRlbnRpZmllciwgZG9tYWluLCBmb2xkZXJOYW1lKTsKLSAgICAgICAg
dGhpcy5fZm9sZGVyVHJlZUVsZW1lbnRzW2ZvbGRlcklkZW50aWZpZXJdID0gZm9sZGVyVHJlZUVs
ZW1lbnQ7Ci0gICAgICAgIHRoaXMuX2ZvbGRlclRyZWVFbGVtZW50c1VJU291cmNlQ29kZXNbZm9s
ZGVySWRlbnRpZmllcl0gPSBbXTsKLSAgICAgICAgcGFyZW50Rm9sZGVyRWxlbWVudC5hcHBlbmRD
aGlsZChmb2xkZXJUcmVlRWxlbWVudCk7Ci0gICAgICAgIHJldHVybiBmb2xkZXJUcmVlRWxlbWVu
dDsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuTmF2aWdh
dG9yRm9sZGVyVHJlZUVsZW1lbnR9IGZvbGRlclRyZWVFbGVtZW50Ci0gICAgICovCi0gICAgX3Bv
cHVsYXRlRm9sZGVyVHJlZUVsZW1lbnQ6IGZ1bmN0aW9uKGZvbGRlclRyZWVFbGVtZW50KQorICAg
IF9hZGRGb2xkZXJUcmVlRWxlbWVudDogZnVuY3Rpb24ocGFyZW50VHJlZUVsZW1lbnQsIG5vZGUp
CiAgICAgewotICAgICAgICBpZiAoZm9sZGVyVHJlZUVsZW1lbnQuX3BvcHVsYXRlZCkKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgZm9sZGVyVHJlZUVsZW1lbnQuX3BvcHVsYXRlZCA9IHRy
dWU7Ci0gICAgICAgIHZhciB1aVNvdXJjZUNvZGVzID0gdGhpcy5fZm9sZGVyVHJlZUVsZW1lbnRz
VUlTb3VyY2VDb2Rlc1tmb2xkZXJUcmVlRWxlbWVudC5mb2xkZXJJZGVudGlmaWVyXTsKLSAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCB1aVNvdXJjZUNvZGVzLmxlbmd0aDsgKytpKQotICAgICAg
ICAgICAgdGhpcy5fYWRkU2NyaXB0VHJlZUVsZW1lbnQoZm9sZGVyVHJlZUVsZW1lbnQsIHVpU291
cmNlQ29kZXNbaV0pOwotICAgICAgICBkZWxldGUgdGhpcy5fZm9sZGVyVHJlZUVsZW1lbnRzVUlT
b3VyY2VDb2Rlc1tmb2xkZXJUcmVlRWxlbWVudC5mb2xkZXJJZGVudGlmaWVyXTsKKyAgICAgICAg
dmFyIHRyZWVFbGVtZW50ID0gbmV3IFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JGb2xkZXJUcmVlRWxl
bWVudChub2RlLnR5cGUsIG5vZGUudGl0bGUpOworICAgICAgICB0cmVlRWxlbWVudC5fbm9kZSA9
IG5vZGU7CisgICAgICAgIG5vZGUudHJlZUVsZW1lbnQgPSB0cmVlRWxlbWVudDsKKyAgICAgICAg
cGFyZW50VHJlZUVsZW1lbnQuYXBwZW5kQ2hpbGQodHJlZUVsZW1lbnQpOwogICAgIH0sCiAKLSAg
ICAvKioKLSAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9IHVpU291cmNl
Q29kZQotICAgICAqLwotICAgIGdldE9yQ3JlYXRlRm9sZGVyVHJlZUVsZW1lbnQ6IGZ1bmN0aW9u
KHVpU291cmNlQ29kZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9nZXRPckNyZWF0ZUZv
bGRlclRyZWVFbGVtZW50KHVpU291cmNlQ29kZS5wYXJzZWRVUkwuaG9zdCwgdWlTb3VyY2VDb2Rl
LnBhcnNlZFVSTC5mb2xkZXJQYXRoQ29tcG9uZW50cyk7Ci0gICAgfSwKLQotICAgIC8qKgotICAg
ICAqIEBwYXJhbSB7c3RyaW5nfSBkb21haW4KLSAgICAgKiBAcGFyYW0ge3N0cmluZ30gZm9sZGVy
TmFtZQotICAgICAqLwotICAgIF9nZXRPckNyZWF0ZUZvbGRlclRyZWVFbGVtZW50OiBmdW5jdGlv
bihkb21haW4sIGZvbGRlck5hbWUpCi0gICAgewotICAgICAgICB2YXIgZm9sZGVySWRlbnRpZmll
ciA9IGRvbWFpbiArICIvIiArIGZvbGRlck5hbWU7Ci0gICAgICAgIAotICAgICAgICBpZiAodGhp
cy5fZm9sZGVyVHJlZUVsZW1lbnRzW2ZvbGRlcklkZW50aWZpZXJdKQotICAgICAgICAgICAgcmV0
dXJuIHRoaXMuX2ZvbGRlclRyZWVFbGVtZW50c1tmb2xkZXJJZGVudGlmaWVyXTsKLQotICAgICAg
ICBpZiAoIWRvbWFpbiAmJiAhZm9sZGVyTmFtZSkKLSAgICAgICAgICAgIHJldHVybiB0aGlzLl9z
Y3JpcHRzVHJlZTsKLQotICAgICAgICB2YXIgcGFyZW50Rm9sZGVyRWxlbWVudDsKLSAgICAgICAg
aWYgKCFmb2xkZXJOYW1lKQotICAgICAgICAgICAgcGFyZW50Rm9sZGVyRWxlbWVudCA9IHRoaXMu
X3NjcmlwdHNUcmVlOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBwYXJlbnRGb2xkZXJFbGVt
ZW50ID0gdGhpcy5fZ2V0T3JDcmVhdGVGb2xkZXJUcmVlRWxlbWVudChkb21haW4sICIiKTsKLSAg
ICAgICAgCi0gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUZvbGRlclRyZWVFbGVtZW50KHBhcmVu
dEZvbGRlckVsZW1lbnQsIGZvbGRlcklkZW50aWZpZXIsIGRvbWFpbiwgZm9sZGVyTmFtZSk7Ci0g
ICAgfSwKLQotICAgIF9hZGRTY3JpcHRUcmVlRWxlbWVudDogZnVuY3Rpb24oZm9sZGVyVHJlZUVs
ZW1lbnQsIHVpU291cmNlQ29kZSkKKyAgICBfYWRkU2NyaXB0VHJlZUVsZW1lbnQ6IGZ1bmN0aW9u
KHRyZWVFbGVtZW50LCB1aVNvdXJjZUNvZGUpCiAgICAgewogICAgICAgICB2YXIgc2NyaXB0VHJl
ZUVsZW1lbnQgPSB0aGlzLl9nZXRPckNyZWF0ZVNjcmlwdFRyZWVFbGVtZW50KHVpU291cmNlQ29k
ZSk7Ci0gICAgICAgIGZvbGRlclRyZWVFbGVtZW50LmFwcGVuZENoaWxkKHNjcmlwdFRyZWVFbGVt
ZW50KTsKLSAgICB9LAotCi0gICAgX2Fkb3B0VUlTb3VyY2VDb2RlOiBmdW5jdGlvbihmb2xkZXJU
cmVlRWxlbWVudCwgdWlTb3VyY2VDb2RlKQotICAgIHsKLSAgICAgICAgaWYgKGZvbGRlclRyZWVF
bGVtZW50Ll9wb3B1bGF0ZWQgfHwgIWZvbGRlclRyZWVFbGVtZW50LnBhcmVudCkgewotICAgICAg
ICAgICAgdGhpcy5fYWRkU2NyaXB0VHJlZUVsZW1lbnQoZm9sZGVyVHJlZUVsZW1lbnQsIHVpU291
cmNlQ29kZSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgdGhpcy5f
Zm9sZGVyVHJlZUVsZW1lbnRzVUlTb3VyY2VDb2Rlc1tmb2xkZXJUcmVlRWxlbWVudC5mb2xkZXJJ
ZGVudGlmaWVyXS5wdXNoKHVpU291cmNlQ29kZSk7CisgICAgICAgIHRyZWVFbGVtZW50LmFwcGVu
ZENoaWxkKHNjcmlwdFRyZWVFbGVtZW50KTsKICAgICB9LAogCiAgICAgaGFuZGxlQ29udGV4dE1l
bnU6IGZ1bmN0aW9uKGV2ZW50LCB1aVNvdXJjZUNvZGUpCkBAIC0zOTYsMjAgKzQwOCwzMCBAQCBX
ZWJJbnNwZWN0b3IuTmF2aWdhdG9yVHJlZU91dGxpbmUgPSBmdW5jdGlvbih0cmVlU2VhcmNoQm94
RWxlbWVudCwgZWxlbWVudCkKICAgICB0aGlzLnNlYXJjaElucHV0RWxlbWVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7CiB9CiAKK1dlYkluc3BlY3Rvci5OYXZpZ2F0b3JUcmVl
T3V0bGluZS5UeXBlcyA9IHsKKyAgICBSb290OiAiUm9vdCIsCisgICAgRG9tYWluOiAiRG9tYWlu
IiwKKyAgICBGb2xkZXI6ICJGb2xkZXIiLAorICAgIFVJU291cmNlQ29kZTogIlVJU291cmNlQ29k
ZSIsCisgICAgRmlsZVN5c3RlbTogIkZpbGVTeXN0ZW0iCit9CisKIFdlYkluc3BlY3Rvci5OYXZp
Z2F0b3JUcmVlT3V0bGluZS5fdHJlZUVsZW1lbnRzQ29tcGFyZSA9IGZ1bmN0aW9uIGNvbXBhcmUo
dHJlZUVsZW1lbnQxLCB0cmVlRWxlbWVudDIpCiB7CiAgICAgLy8gSW5zZXJ0IGluIHRoZSBhbHBo
YWJldGljYWwgb3JkZXIsIGZpcnN0IGRvbWFpbnMsIHRoZW4gZm9sZGVycywgdGhlbiBzY3JpcHRz
LgogICAgIGZ1bmN0aW9uIHR5cGVXZWlnaHQodHJlZUVsZW1lbnQpCiAgICAgewotICAgICAgICBp
ZiAodHJlZUVsZW1lbnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuTmF2aWdhdG9yRm9sZGVyVHJl
ZUVsZW1lbnQpIHsKLSAgICAgICAgICAgIGlmICh0cmVlRWxlbWVudC5pc0RvbWFpbikgewotICAg
ICAgICAgICAgICAgIGlmICh0cmVlRWxlbWVudC50aXRsZVRleHQgPT09IFdlYkluc3BlY3Rvci5p
bnNwZWN0ZWRQYWdlRG9tYWluKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKLSAgICAg
ICAgICAgICAgICByZXR1cm4gMjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiAz
OworICAgICAgICB2YXIgdHlwZSA9IHRyZWVFbGVtZW50LnR5cGUoKTsKKyAgICAgICAgaWYgKHR5
cGUgPT09IFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JUcmVlT3V0bGluZS5UeXBlcy5Eb21haW4pIHsK
KyAgICAgICAgICAgIGlmICh0cmVlRWxlbWVudC50aXRsZVRleHQgPT09IFdlYkluc3BlY3Rvci5p
bnNwZWN0ZWRQYWdlRG9tYWluKQorICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAg
ICAgcmV0dXJuIDI7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIDQ7CisgICAgICAgIGlmICh0
eXBlID09PSBXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVHJlZU91dGxpbmUuVHlwZXMuRmlsZVN5c3Rl
bSkKKyAgICAgICAgICAgIHJldHVybiAzOworICAgICAgICBpZiAodHlwZSA9PT0gV2ViSW5zcGVj
dG9yLk5hdmlnYXRvclRyZWVPdXRsaW5lLlR5cGVzLkZvbGRlcikKKyAgICAgICAgICAgIHJldHVy
biA0OworICAgICAgICByZXR1cm4gNTsKICAgICB9CiAKICAgICB2YXIgdHlwZVdlaWdodDEgPSB0
eXBlV2VpZ2h0KHRyZWVFbGVtZW50MSk7CkBAIC00NjIsMTMgKzQ4NCwxNSBAQCBXZWJJbnNwZWN0
b3IuTmF2aWdhdG9yVHJlZU91dGxpbmUucHJvdG90eXBlID0gewogLyoqCiAgKiBAY29uc3RydWN0
b3IKICAqIEBleHRlbmRzIHtUcmVlRWxlbWVudH0KKyAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlCiAg
KiBAcGFyYW0ge3N0cmluZ30gdGl0bGUKICAqIEBwYXJhbSB7QXJyYXkuPHN0cmluZz59IGljb25D
bGFzc2VzCiAgKiBAcGFyYW0ge2Jvb2xlYW59IGhhc0NoaWxkcmVuCiAgKiBAcGFyYW0ge2Jvb2xl
YW49fSBub0ljb24KICAqLwotV2ViSW5zcGVjdG9yLkJhc2VOYXZpZ2F0b3JUcmVlRWxlbWVudCA9
IGZ1bmN0aW9uKHRpdGxlLCBpY29uQ2xhc3NlcywgaGFzQ2hpbGRyZW4sIG5vSWNvbikKK1dlYklu
c3BlY3Rvci5CYXNlTmF2aWdhdG9yVHJlZUVsZW1lbnQgPSBmdW5jdGlvbih0eXBlLCB0aXRsZSwg
aWNvbkNsYXNzZXMsIGhhc0NoaWxkcmVuLCBub0ljb24pCiB7CisgICAgdGhpcy5fdHlwZSA9IHR5
cGU7CiAgICAgVHJlZUVsZW1lbnQuY2FsbCh0aGlzLCAiIiwgbnVsbCwgaGFzQ2hpbGRyZW4pOwog
ICAgIHRoaXMuX3RpdGxlVGV4dCA9IHRpdGxlOwogICAgIHRoaXMuX2ljb25DbGFzc2VzID0gaWNv
bkNsYXNzZXM7CkBAIC01MzMsNTYgKzU1NywxMTkgQEAgV2ViSW5zcGVjdG9yLkJhc2VOYXZpZ2F0
b3JUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiB0aGlzLnRpdGxlVGV4
dC5tYXRjaChuZXcgUmVnRXhwKCJeIiArIHNlYXJjaFRleHQuZXNjYXBlRm9yUmVnRXhwKCksICJp
IikpOwogICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtzdHJpbmd9CisgICAgICov
CisgICAgdHlwZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3R5cGU7
CisgICAgfSwKKwogICAgIF9fcHJvdG9fXzogVHJlZUVsZW1lbnQucHJvdG90eXBlCiB9CiAKIC8q
KgogICogQGNvbnN0cnVjdG9yCi0gKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLkJhc2VOYXZpZ2F0
b3JUcmVlRWxlbWVudH0KICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLk5hdmlnYXRvclZpZXd9IG5h
dmlnYXRvclZpZXcKLSAqIEBwYXJhbSB7c3RyaW5nfSBmb2xkZXJJZGVudGlmaWVyCi0gKiBAcGFy
YW0ge3N0cmluZ30gZG9tYWluCi0gKiBAcGFyYW0ge3N0cmluZ30gZm9sZGVyTmFtZQorICogQHBh
cmFtIHtzdHJpbmd9IHR5cGUKKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLk5hdmlnYXRvclRyZWVO
b2RlfSBwYXJlbnQKKyAqIEBwYXJhbSB7c3RyaW5nfSBpZAorICogQHBhcmFtIHtzdHJpbmd9IHRp
dGxlCiAgKi8KLVdlYkluc3BlY3Rvci5OYXZpZ2F0b3JGb2xkZXJUcmVlRWxlbWVudCA9IGZ1bmN0
aW9uKG5hdmlnYXRvclZpZXcsIGZvbGRlcklkZW50aWZpZXIsIGRvbWFpbiwgZm9sZGVyTmFtZSkK
K1dlYkluc3BlY3Rvci5OYXZpZ2F0b3JUcmVlTm9kZSA9IGZ1bmN0aW9uKG5hdmlnYXRvclZpZXcs
IHR5cGUsIHBhcmVudCwgaWQsIHRpdGxlKQogewotICAgIHRoaXMuX25hdmlnYXRvclZpZXcgPSBu
YXZpZ2F0b3JWaWV3OwotICAgIHRoaXMuX2ZvbGRlcklkZW50aWZpZXIgPSBmb2xkZXJJZGVudGlm
aWVyOwotICAgIHRoaXMuX2ZvbGRlck5hbWUgPSBmb2xkZXJOYW1lOwotICAgIAotICAgIHZhciBp
Y29uQ2xhc3MgPSB0aGlzLmlzRG9tYWluID8gIm5hdmlnYXRvci1kb21haW4tdHJlZS1pdGVtIiA6
ICJuYXZpZ2F0b3ItZm9sZGVyLXRyZWUtaXRlbSI7Ci0gICAgdmFyIHRpdGxlID0gdGhpcy5pc0Rv
bWFpbiA/IGRvbWFpbiA6IGZvbGRlck5hbWUuc3Vic3RyaW5nKDEpOwotCi0gICAgV2ViSW5zcGVj
dG9yLkJhc2VOYXZpZ2F0b3JUcmVlRWxlbWVudC5jYWxsKHRoaXMsIHRpdGxlLCBbaWNvbkNsYXNz
XSwgdHJ1ZSk7Ci0gICAgdGhpcy50b29sdGlwID0gZm9sZGVyTmFtZTsKKyAgICB0aGlzLm5hdmln
YXRvclZpZXcgPSBuYXZpZ2F0b3JWaWV3OworICAgIHRoaXMudHlwZSA9IHR5cGU7CisgICAgdGhp
cy5wYXJlbnQgPSBwYXJlbnQ7CisgICAgdGhpcy5pZCA9IGlkOworICAgIHRoaXMudGl0bGUgPSB0
aXRsZTsKKyAgICB0aGlzLl91aVNvdXJjZUNvZGVzID0ge307CisgICAgdGhpcy5fY2hpbGRyZW4g
PSB7fTsKIH0KIAotV2ViSW5zcGVjdG9yLk5hdmlnYXRvckZvbGRlclRyZWVFbGVtZW50LnByb3Rv
dHlwZSA9IHsKLSAgICAvKioKLSAgICAgKiBAcmV0dXJuIHtzdHJpbmd9Ci0gICAgICovCi0gICAg
Z2V0IGZvbGRlcklkZW50aWZpZXIoKQorV2ViSW5zcGVjdG9yLk5hdmlnYXRvclRyZWVOb2RlLnBy
b3RvdHlwZSA9IHsKKyAgICBwb3B1bGF0ZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYg
KHRoaXMuaXNQb3B1bGF0ZWQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKCF0
aGlzLnRyZWVFbGVtZW50KQorICAgICAgICAgICAgdGhpcy5wYXJlbnQucG9wdWxhdGUoKTsKKyAg
ICAgICAgY29uc29sZS5hc3NlcnQodGhpcy50cmVlRWxlbWVudCk7CisgICAgICAgIHRoaXMuX3Bv
cHVsYXRlZCA9IHRydWU7CisgICAgICAgIGZvciAodmFyIGlkIGluIHRoaXMuX2NoaWxkcmVuKQor
ICAgICAgICAgICAgdGhpcy5uYXZpZ2F0b3JWaWV3Ll9hZGRGb2xkZXJUcmVlRWxlbWVudCh0aGlz
LnRyZWVFbGVtZW50LCB0aGlzLl9jaGlsZHJlbltpZF0pOworICAgICAgICBmb3IgKHZhciB1cmkg
aW4gdGhpcy5fdWlTb3VyY2VDb2RlcykKKyAgICAgICAgICAgIHRoaXMubmF2aWdhdG9yVmlldy5f
YWRkU2NyaXB0VHJlZUVsZW1lbnQodGhpcy50cmVlRWxlbWVudCwgdGhpcy5fdWlTb3VyY2VDb2Rl
c1t1cmldKTsKKyAgICB9LAorCisgICAgaXNQb3B1bGF0ZWQ6IGZ1bmN0aW9uKCkKICAgICB7Ci0g
ICAgICAgIHJldHVybiB0aGlzLl9mb2xkZXJJZGVudGlmaWVyOworICAgICAgICByZXR1cm4gdGhp
cy5fcG9wdWxhdGVkOwogICAgIH0sCiAKLSAgICAvKioKLSAgICAgKiBAcmV0dXJuIHtib29sZWFu
fQotICAgICAqLwotICAgIGdldCBpc0RvbWFpbigpCisgICAgaXNFbXB0eTogZnVuY3Rpb24oKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2ZvbGRlck5hbWUgPT09ICIiOworICAgICAgICBy
ZXR1cm4gT2JqZWN0LmtleXModGhpcy5fY2hpbGRyZW4pLmxlbmd0aCArIE9iamVjdC5rZXlzKHRo
aXMuX3VpU291cmNlQ29kZXMpLmxlbmd0aCA9PT0gMDsKICAgICB9LAotICAgIAorCisgICAgY2hp
bGQ6IGZ1bmN0aW9uKGlkKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2NoaWxkcmVuW2lk
XTsKKyAgICB9LAorCisgICAgYXBwZW5kQ2hpbGQ6IGZ1bmN0aW9uKG5vZGUpCisgICAgeworICAg
ICAgICB0aGlzLl9jaGlsZHJlbltub2RlLmlkXSA9IG5vZGU7CisgICAgICAgIGlmICh0aGlzLnRy
ZWVFbGVtZW50ICYmIHRoaXMuaXNQb3B1bGF0ZWQoKSkKKyAgICAgICAgICAgIHRoaXMubmF2aWdh
dG9yVmlldy5fYWRkRm9sZGVyVHJlZUVsZW1lbnQodGhpcy50cmVlRWxlbWVudCwgbm9kZSk7Cisg
ICAgfSwKKworICAgIHJlbW92ZUNoaWxkOiBmdW5jdGlvbihub2RlKQorICAgIHsKKyAgICAgICAg
ZGVsZXRlIHRoaXMuX2NoaWxkcmVuW25vZGUuaWRdOworICAgIH0sCisKKyAgICBhcHBlbmRVSVNv
dXJjZUNvZGU6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSkKKyAgICB7CisgICAgICAgIHRoaXMuX3Vp
U291cmNlQ29kZXNbdWlTb3VyY2VDb2RlLnVyaSgpXSA9IHVpU291cmNlQ29kZTsKKyAgICAgICAg
aWYgKHRoaXMudHJlZUVsZW1lbnQgJiYgdGhpcy5pc1BvcHVsYXRlZCgpKQorICAgICAgICAgICAg
dGhpcy5uYXZpZ2F0b3JWaWV3Ll9hZGRTY3JpcHRUcmVlRWxlbWVudCh0aGlzLnRyZWVFbGVtZW50
LCB1aVNvdXJjZUNvZGUpOworICAgIH0sCisKKyAgICByZW1vdmVVSVNvdXJjZUNvZGU6IGZ1bmN0
aW9uKHVpU291cmNlQ29kZSkKKyAgICB7CisgICAgICAgIGRlbGV0ZSB0aGlzLl91aVNvdXJjZUNv
ZGVzW3VpU291cmNlQ29kZS51cmkoKV07CisgICAgfSwKKworICAgIHJlc2V0OiBmdW5jdGlvbih1
aVNvdXJjZUNvZGUpCisgICAgeworICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGVzID0ge307Cisg
ICAgICAgIHRoaXMuX2NoaWxkcmVuID0ge307CisgICAgfQorfQorCisvKioKKyAqIEBjb25zdHJ1
Y3RvcgorICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5CYXNlTmF2aWdhdG9yVHJlZUVsZW1lbnR9
CisgKiBAcGFyYW0ge3N0cmluZ30gdHlwZQorICogQHBhcmFtIHtzdHJpbmd9IHRpdGxlCisgKi8K
K1dlYkluc3BlY3Rvci5OYXZpZ2F0b3JGb2xkZXJUcmVlRWxlbWVudCA9IGZ1bmN0aW9uKHR5cGUs
IHRpdGxlKQoreworICAgIHZhciBpY29uQ2xhc3MgPSBXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVmll
dy5pY29uQ2xhc3NGb3JUeXBlKHR5cGUpOworICAgIFdlYkluc3BlY3Rvci5CYXNlTmF2aWdhdG9y
VHJlZUVsZW1lbnQuY2FsbCh0aGlzLCB0eXBlLCB0aXRsZSwgW2ljb25DbGFzc10sIHRydWUpOwor
fQorCitXZWJJbnNwZWN0b3IuTmF2aWdhdG9yRm9sZGVyVHJlZUVsZW1lbnQucHJvdG90eXBlID0g
ewogICAgIG9ucG9wdWxhdGU6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHRoaXMuX25hdmln
YXRvclZpZXcuX3BvcHVsYXRlRm9sZGVyVHJlZUVsZW1lbnQodGhpcyk7CisgICAgICAgIHRoaXMu
X25vZGUucG9wdWxhdGUoKTsKICAgICB9LAogCiAgICAgb25hdHRhY2g6IGZ1bmN0aW9uKCkKICAg
ICB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5CYXNlTmF2aWdhdG9yVHJlZUVsZW1lbnQucHJvdG90
eXBlLm9uYXR0YWNoLmNhbGwodGhpcyk7Ci0gICAgICAgIGlmICh0aGlzLmlzRG9tYWluICYmIHRo
aXMudGl0bGVUZXh0ID09PSBXZWJJbnNwZWN0b3IuaW5zcGVjdGVkUGFnZURvbWFpbikKKyAgICAg
ICAgaWYgKHRoaXMudHlwZSgpID09PSBXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVHJlZU91dGxpbmUu
VHlwZXMuRG9tYWluICYmIHRoaXMudGl0bGVUZXh0ID09PSBXZWJJbnNwZWN0b3IuaW5zcGVjdGVk
UGFnZURvbWFpbikKICAgICAgICAgICAgIHRoaXMuZXhwYW5kKCk7CiAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgIHRoaXMuY29sbGFwc2UoKTsKQEAgLTYwMCw3ICs2ODcsNyBAQCBXZWJJbnNwZWN0
b3IuTmF2aWdhdG9yRm9sZGVyVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICovCiBXZWJJbnNw
ZWN0b3IuTmF2aWdhdG9yU291cmNlVHJlZUVsZW1lbnQgPSBmdW5jdGlvbihuYXZpZ2F0b3JWaWV3
LCB1aVNvdXJjZUNvZGUsIHRpdGxlKQogewotICAgIFdlYkluc3BlY3Rvci5CYXNlTmF2aWdhdG9y
VHJlZUVsZW1lbnQuY2FsbCh0aGlzLCB0aXRsZSwgWyJuYXZpZ2F0b3ItIiArIHVpU291cmNlQ29k
ZS5jb250ZW50VHlwZSgpLm5hbWUoKSArICItdHJlZS1pdGVtIl0sIGZhbHNlKTsKKyAgICBXZWJJ
bnNwZWN0b3IuQmFzZU5hdmlnYXRvclRyZWVFbGVtZW50LmNhbGwodGhpcywgV2ViSW5zcGVjdG9y
Lk5hdmlnYXRvclRyZWVPdXRsaW5lLlR5cGVzLlVJU291cmNlQ29kZSwgdGl0bGUsIFsibmF2aWdh
dG9yLSIgKyB1aVNvdXJjZUNvZGUuY29udGVudFR5cGUoKS5uYW1lKCkgKyAiLXRyZWUtaXRlbSJd
LCBmYWxzZSk7CiAgICAgdGhpcy5fbmF2aWdhdG9yVmlldyA9IG5hdmlnYXRvclZpZXc7CiAgICAg
dGhpcy5fdWlTb3VyY2VDb2RlID0gdWlTb3VyY2VDb2RlOwogICAgIHRoaXMudG9vbHRpcCA9IHVp
U291cmNlQ29kZS5vcmlnaW5VUkwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU2NyaXB0c05hdmlnYXRvci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU2NyaXB0c05hdmlnYXRvci5qcwppbmRleCA1ZGU5NTljYzgyMTkyMjg2
ZTkwMWMxNTgxOWEwMDFkODVjNzJjMDE4Li41NjMwNTM4MWUzYTRiNDBhM2VhNDEzMjVjNTkyZGZm
MzViOWMyYTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1NjcmlwdHNOYXZpZ2F0b3IuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9TY3JpcHRzTmF2aWdhdG9yLmpzCkBAIC0xODEsMTQgKzE4MSw2IEBAIFdlYkluc3BlY3Rv
ci5TbmlwcGV0c05hdmlnYXRvclZpZXcuRXZlbnRzID0gewogCiBXZWJJbnNwZWN0b3IuU25pcHBl
dHNOYXZpZ2F0b3JWaWV3LnByb3RvdHlwZSA9IHsKICAgICAvKioKLSAgICAgKiBAcGFyYW0ge1dl
Ykluc3BlY3Rvci5VSVNvdXJjZUNvZGV9IHVpU291cmNlQ29kZQotICAgICAqLwotICAgIGdldE9y
Q3JlYXRlRm9sZGVyVHJlZUVsZW1lbnQ6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiB0aGlzLl9zY3JpcHRzVHJlZTsKLSAgICB9LAotCi0gICAgLyoqCiAgICAg
ICogQHBhcmFtIHtFdmVudH0gZXZlbnQKICAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5VSVNv
dXJjZUNvZGU9fSB1aVNvdXJjZUNvZGUKICAgICAgKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2ltcGxlV29ya3NwYWNlUHJvdmlkZXIuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NpbXBsZVdvcmtzcGFjZVByb3ZpZGVyLmpz
CmluZGV4IDUwZWZmNjE3Njg1ZjAxYzYzNzJmNjkyMzU4NmY2MzBmNTFjMTZlOWYuLjdmM2RkODYz
NzViOGUzNTcwMzAwYmMzM2FmNzQwMTdlZDFlZjYxMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2ltcGxlV29ya3NwYWNlUHJvdmlkZXIuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TaW1wbGVXb3Jrc3BhY2VQcm92aWRl
ci5qcwpAQCAtNzMsMTIgKzczLDE1IEBAIFdlYkluc3BlY3Rvci5TaW1wbGVQcm9qZWN0RGVsZWdh
dGUucHJvdG90eXBlID0gewogICAgICAgICBpZiAodHlwZW9mIHRoaXMuX2Rpc3BsYXlOYW1lICE9
PSAidW5kZWZpbmVkIikKICAgICAgICAgICAgIHJldHVybiB0aGlzLl9kaXNwbGF5TmFtZTsKICAg
ICAgICAgaWYgKCF0aGlzLl9uYW1lKSB7Ci0gICAgICAgICAgICB0aGlzLl9kaXNwbGF5TmFtZSA9
ICIiOworICAgICAgICAgICAgdGhpcy5fZGlzcGxheU5hbWUgPSB0aGlzLl90eXBlICE9PSBXZWJJ
bnNwZWN0b3IucHJvamVjdFR5cGVzLlNuaXBwZXRzID8gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIo
bm8gZG9tYWluKSIpIDogIiI7CiAgICAgICAgICAgICByZXR1cm4gdGhpcy5fZGlzcGxheU5hbWU7
CiAgICAgICAgIH0KICAgICAgICAgdmFyIHBhcnNlZFVSTCA9IG5ldyBXZWJJbnNwZWN0b3IuUGFy
c2VkVVJMKHRoaXMuX25hbWUpOwotICAgICAgICBpZiAocGFyc2VkVVJMLmlzVmFsaWQpCisgICAg
ICAgIGlmIChwYXJzZWRVUkwuaXNWYWxpZCkgewogICAgICAgICAgICAgdGhpcy5fZGlzcGxheU5h
bWUgPSBwYXJzZWRVUkwuaG9zdCArIChwYXJzZWRVUkwucG9ydCA/ICgiOiIgKyBwYXJzZWRVUkwu
cG9ydCkgOiAiIik7CisgICAgICAgICAgICBpZiAoIXRoaXMuX2Rpc3BsYXlOYW1lKQorICAgICAg
ICAgICAgICAgIHRoaXMuX2Rpc3BsYXlOYW1lID0gdGhpcy5fbmFtZTsKKyAgICAgICAgfQogICAg
ICAgICBlbHNlCiAgICAgICAgICAgICB0aGlzLl9kaXNwbGF5TmFtZSA9IHRoaXMuX25hbWU7CiAg
ICAgICAgIHJldHVybiB0aGlzLl9kaXNwbGF5TmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvbmF2aWdhdG9yVmlldy5jc3MgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL25hdmlnYXRvclZpZXcuY3NzCmluZGV4IDc5Mzk2ODk5MDFm
ODUwNzliYTVjZmI1YmQ5MWFiMmU0NWIyZmExNTEuLmMwZmRiNDE0ZTkyNzkxZjgwMzVlMzY1ODg4
ZmMxNThhZjE4ZWIxYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvbmF2aWdhdG9yVmlldy5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9uYXZpZ2F0b3JWaWV3LmNzcwpAQCAtNTIsNiArNTIsMTEgQEAKICAgICBjb250ZW50
OiB1cmwoSW1hZ2VzL3Jlc291cmNlUGxhaW5JY29uLnBuZyk7CiB9CiAKKy5uYXZpZ2F0b3IgPiBv
bCB7CisgICAgbWluLWhlaWdodDogMTAwJTsKKyAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cit9
CisKIC5uYXZpZ2F0b3IgbGkgewogICAgIGhlaWdodDogMTdweDsKICAgICB3aGl0ZS1zcGFjZTog
bm93cmFwOwpAQCAtOTAsOCArOTUsNyBAQAogfQogCiAubmF2aWdhdG9yIC5iYXNlLW5hdmlnYXRv
ci10cmVlLWVsZW1lbnQtdGl0bGUgewotICAgIG92ZXJmbG93OiBoaWRkZW47Ci0gICAgdGV4dC1v
dmVyZmxvdzogZWxsaXBzaXM7CisgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgIHBvc2l0
aW9uOiByZWxhdGl2ZTsKICAgICBwYWRkaW5nLWxlZnQ6IDJweDsKICAgICB0b3A6IDFweDsKQEAg
LTEyOCw4ICsxMzIsNyBAQAogfQogCiAubmF2aWdhdG9yLXRhYmJlZC1wYW5lIC5uYXZpZ2F0b3It
Y29udGFpbmVyIHsKLSAgICBvdmVyZmxvdy15OiBhdXRvOwotICAgIG92ZXJmbG93LXg6IGhpZGRl
bjsKKyAgICBvdmVyZmxvdzogYXV0bzsKIH0KIAogLm5hdmlnYXRvci10YWJiZWQtcGFuZSAubmF2
aWdhdG9yIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCBjMzEyZmUwYmIxZjE2ZWUxY2QyZTg0ZGVlNDhiZjI2YTY5MzFmMGE3
Li43ODI4NDUyNDFhMDk4OThmOGUxNjM2MWY4M2RkOTIwODBmZDM4MjM5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTcgQEAKKzIwMTMtMDItMjAgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogTmF2aWdhdG9yIHNob3VsZCBzaG93IHRyZWUg
ZWxlbWVudCBmb3IgZWFjaCBmb2xkZXIgaW4gdGhlIHNvdXJjZSBwYXRoLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4OTQzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIv
c2NyaXB0cy1maWxlLXNlbGVjdG9yLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZGVidWdnZXIvc2NyaXB0cy1maWxlLXNlbGVjdG9yLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9y
L2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rv
ci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVn
Z2VyL3NjcmlwdHMtc29ydGluZy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2Rl
YnVnZ2VyL3NjcmlwdHMtc29ydGluZy5odG1sOgorCiAyMDEzLTAyLTE5ICBWc2V2b2xvZCBWbGFz
b3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IE1ha2Ug
VUlTb3VyY2VDb2RlLnBhdGgoKSBhbiBhcnJheSBvZiBwYXRoIHNlZ21lbnRzLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtZmlsZS1zZWxlY3Rvci1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1maWxl
LXNlbGVjdG9yLWV4cGVjdGVkLnR4dAppbmRleCA3MDA0ZDFkNzkzOWVhYmZlNGFmYmViMDllNGM2
ZjQ5MTg1ZjhjYTliLi45ZDZlZTUzNjFhMmY3YmYyYjZhZDZkNTFhM2VlODFlODczMzhiZjQ0IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1maWxlLXNl
bGVjdG9yLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
c2NyaXB0cy1maWxlLXNlbGVjdG9yLWV4cGVjdGVkLnR4dApAQCAtMSwzMSArMSw1MSBAQAogVGVz
dHMgc2NyaXB0cyBwYW5lbCBmaWxlIHNlbGVjdG9ycy4KIAogRHVtcGluZyBTY3JpcHRzTmF2aWdh
dG9yICdTY3JpcHRzJyB0YWI6CisgIChubyBkb21haW4pCiAgIGV4YW1wbGUuY29tCi0gIGxvY2Fs
aG9zdAotICAgIExheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9mb28vYmFyCi0gICAgTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Zvby9iYXoKLSAgP2E9YgotICB2ZXJ5X2xvb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29uZ191cmwKKyAgbG9jYWxob3N0OjgwODAK
IER1bXBpbmcgU2NyaXB0c05hdmlnYXRvciAnQ29udGVudCBzY3JpcHRzJyB0YWI6Ci0gIGxvY2Fs
aG9zdAotICAgIExheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9mb28vYmFyCisgIGxvY2Fs
aG9zdDo4MDgwCiBEdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ1NjcmlwdHMnIHRhYjoKKyAgKG5v
IGRvbWFpbikKKyAgZXhhbXBsZS5jb20KKyAgbG9jYWxob3N0OjgwODAKKyAgICBMYXlvdXRUZXN0
cworICAgICAgaW5zcGVjdG9yCisgICAgICAgIGRlYnVnZ2VyCisgICAgICAgICAgZm9vCisgICAg
ICAgICAgICBiYXIKKyAgICAgICAgICAgICAgc2NyaXB0LmpzCisgICAgICAgICAgICAgIHNjcmlw
dC5qcz9hPTEKKyAgICAgICAgICAgICAgc2NyaXB0LmpzP2E9MgorICAgICAgICAgICAgYmF6CitE
dW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ0NvbnRlbnQgc2NyaXB0cycgdGFiOgorICBsb2NhbGhv
c3Q6ODA4MAorRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdTY3JpcHRzJyB0YWI6CisgIChubyBk
b21haW4pCisgICAgP2E9YgorICAgIHZlcnlfbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb25nX3VybAogICBleGFtcGxlLmNvbQogICAgID9hPWIKLSAgbG9jYWxob3N0Ci0gICAg
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Zvby9iYXIKLSAgICAgIHNjcmlwdC5qcwot
ICAgICAgc2NyaXB0LmpzP2E9MQotICAgICAgc2NyaXB0LmpzP2E9MgotICAgIExheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9mb28vYmF6Ci0gICAgICBzY3JpcHQuanMKLSAgP2E9YgotICB2
ZXJ5X2xvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29uZ191cmwKKyAgbG9jYWxo
b3N0OjgwODAKKyAgICBMYXlvdXRUZXN0cworICAgICAgaW5zcGVjdG9yCisgICAgICAgIGRlYnVn
Z2VyCisgICAgICAgICAgZm9vCisgICAgICAgICAgICBiYXIKKyAgICAgICAgICAgICAgc2NyaXB0
LmpzCisgICAgICAgICAgICAgIHNjcmlwdC5qcz9hPTEKKyAgICAgICAgICAgICAgc2NyaXB0Lmpz
P2E9MgorICAgICAgICAgICAgYmF6CisgICAgICAgICAgICAgIHNjcmlwdC5qcwogRHVtcGluZyBT
Y3JpcHRzTmF2aWdhdG9yICdDb250ZW50IHNjcmlwdHMnIHRhYjoKLSAgbG9jYWxob3N0Ci0gICAg
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Zvby9iYXIKLSAgICAgIGNvbnRlbnRTY3Jp
cHQuanM/YT0xCi0gICAgICBjb250ZW50U2NyaXB0LmpzP2E9MgotICAgICAgY29udGVudFNjcmlw
dDIuanM/YT0xCisgIGxvY2FsaG9zdDo4MDgwCisgICAgTGF5b3V0VGVzdHMKKyAgICAgIGluc3Bl
Y3RvcgorICAgICAgICBkZWJ1Z2dlcgorICAgICAgICAgIGZvbworICAgICAgICAgICAgYmFyCisg
ICAgICAgICAgICAgIGNvbnRlbnRTY3JpcHQuanM/YT0xCisgICAgICAgICAgICAgIGNvbnRlbnRT
Y3JpcHQuanM/YT0yCisgICAgICAgICAgICAgIGNvbnRlbnRTY3JpcHQyLmpzP2E9MQogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1maWxlLXNlbGVj
dG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1maWxlLXNl
bGVjdG9yLmh0bWwKaW5kZXggNTcyZTJiZjVjYjJkZWEwODRmZjYzNTk4MWVkYmY4M2VhNWVhZjM4
MS4uYjNmZjg3MGEzMzhlY2FhMTM1NmQxOWIwYTVkM2Q3ZTA4Yzg2NWNkZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtZmlsZS1zZWxlY3Rvci5odG1s
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLWZpbGUtc2VsZWN0
b3IuaHRtbApAQCAtMzcsNiArMzcsOCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBhZGRVSVNvdXJj
ZUNvZGUoInZlcnlfbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb25nX3VybCIs
IGZhbHNlKTsKIAogICAgIEluc3BlY3RvclRlc3QuZHVtcFNjcmlwdHNOYXZpZ2F0b3IobmF2aWdh
dG9yKTsKKyAgICBuYXZpZ2F0b3IucmV2ZWFsVUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZXNbMF0p
OworICAgIEluc3BlY3RvclRlc3QuZHVtcFNjcmlwdHNOYXZpZ2F0b3IobmF2aWdhdG9yKTsKICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHVpU291cmNlQ29kZXMubGVuZ3RoOyArK2kpCiAgICAgICAg
IG5hdmlnYXRvci5yZXZlYWxVSVNvdXJjZUNvZGUodWlTb3VyY2VDb2Rlc1tpXSk7CiAgICAgSW5z
cGVjdG9yVGVzdC5kdW1wU2NyaXB0c05hdmlnYXRvcihuYXZpZ2F0b3IpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwtZXhwZWN0ZWQu
dHh0CmluZGV4IDVhYzIxY2JhNWQ0ZjUzMmQ2NTBjYWM2NGYzZjI2ZjhjZDEzNmNjMGEuLjYwMTgy
Y2MwZjZjNTdkMTUyYTNkMDkzNmQ3NTI3MmU2MDBkMTc0YjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1wYW5lbC1leHBlY3RlZC50eHQK
QEAgLTMsMzAgKzMsMzcgQEAgVGVzdHMgdGhhdCBzY3JpcHRzIHBhbmVsIFVJIGVsZW1lbnRzIHdv
cmsgYXMgaW50ZW5kZWQuCiAKIFJ1bm5pbmc6IHRlc3RJbml0aWFsTG9hZAogRHVtcGluZyBTY3Jp
cHRzTmF2aWdhdG9yICdTY3JpcHRzJyB0YWI6Ci0gIGJhci5qcwotICBiYXouanMKLSAgZm9vLmpz
Ci0gIGZvb2Jhci5qcworICAobm8gZG9tYWluKQorICAgIGJhci5qcworICAgIGJhei5qcworICAg
IGZvby5qcworICAgIGZvb2Jhci5qcwogRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdDb250ZW50
IHNjcmlwdHMnIHRhYjoKIFNvdXJjZSByZXF1ZXN0ZWQgZm9yIGJhei5qcwogCiBSdW5uaW5nOiB0
ZXN0UmVzZXQKIFNvdXJjZSByZXF1ZXN0ZWQgZm9yIGJhei5qcwogRHVtcGluZyBTY3JpcHRzTmF2
aWdhdG9yICdTY3JpcHRzJyB0YWI6Ci0gIGJhci5qcwotICBiYXouanMKLSAgZm9vLmpzCisgIChu
byBkb21haW4pCisgICAgYmFyLmpzCisgICAgYmF6LmpzCisgICAgZm9vLmpzCiBEdW1waW5nIFNj
cmlwdHNOYXZpZ2F0b3IgJ0NvbnRlbnQgc2NyaXB0cycgdGFiOgogRHVtcGluZyBTY3JpcHRzTmF2
aWdhdG9yICdTY3JpcHRzJyB0YWI6Ci0gIGJhci5qcworRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9y
ICdDb250ZW50IHNjcmlwdHMnIHRhYjoKK0R1bXBpbmcgU2NyaXB0c05hdmlnYXRvciAnU2NyaXB0
cycgdGFiOgorICAobm8gZG9tYWluKQorICAgIGJhci5qcwogRHVtcGluZyBTY3JpcHRzTmF2aWdh
dG9yICdDb250ZW50IHNjcmlwdHMnIHRhYjoKIAogUnVubmluZzogdGVzdERlYnVnZ2VyVUlTb3Vy
Y2VDb2RlQWRkZWRBbmRSZW1vdmVkCiBEdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ1NjcmlwdHMn
IHRhYjoKLSAgZm9vLmpzCisgIChubyBkb21haW4pCisgICAgZm9vLmpzCiBEdW1waW5nIFNjcmlw
dHNOYXZpZ2F0b3IgJ0NvbnRlbnQgc2NyaXB0cycgdGFiOgogRHVtcGluZyBTY3JpcHRzTmF2aWdh
dG9yICdTY3JpcHRzJyB0YWI6Ci0gIGZvby5qcwotICBzb3VyY2UuanMKKyAgKG5vIGRvbWFpbikK
KyAgICBmb28uanMKKyAgICBzb3VyY2UuanMKIER1bXBpbmcgU2NyaXB0c05hdmlnYXRvciAnQ29u
dGVudCBzY3JpcHRzJyB0YWI6CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvc2NyaXB0cy1wYW5lbC5odG1sCmluZGV4IGNjYzkwYjAzMGRmMWI1MTI3Y2M3YmMwMzZlZWIy
YTZkNjE2NmI2OWMuLmY3OWRlYTcwZjUxY2ZmM2NhM2RlYzcxMjU4MTA4Zjc5ZTgyNzQzZDYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwuaHRt
bApAQCAtMzYsMTIgKzM2LDEyIEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgZnVuY3Rpb24gYWRk
TmV0d29ya0ZpbGUod29ya3NwYWNlLCB1cmwpCiAgICAgewotICAgICAgICB3b3Jrc3BhY2UubmV0
d29ya1dvcmtzcGFjZVByb3ZpZGVyLmFkZEZpbGVGb3JVUkwodXJsLCBjcmVhdGVDb250ZW50UHJv
dmlkZXIodXJsKSwgZmFsc2UpOworICAgICAgICByZXR1cm4gd29ya3NwYWNlLm5ldHdvcmtXb3Jr
c3BhY2VQcm92aWRlci5hZGRGaWxlRm9yVVJMKHVybCwgY3JlYXRlQ29udGVudFByb3ZpZGVyKHVy
bCksIGZhbHNlKTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBhZGREZWJ1Z2dlckZpbGUod29ya3Nw
YWNlLCB1cmwpCiAgICAgewotICAgICAgICB3b3Jrc3BhY2UuZGVidWdnZXJXb3Jrc3BhY2VQcm92
aWRlci5hZGRVbmlxdWVGaWxlRm9yVVJMKHVybCwgY3JlYXRlQ29udGVudFByb3ZpZGVyKHVybCks
IGZhbHNlKTsKKyAgICAgICAgcmV0dXJuIHdvcmtzcGFjZS5kZWJ1Z2dlcldvcmtzcGFjZVByb3Zp
ZGVyLmFkZFVuaXF1ZUZpbGVGb3JVUkwodXJsLCBjcmVhdGVDb250ZW50UHJvdmlkZXIodXJsKSwg
ZmFsc2UpOwogICAgIH0KIAogICAgIEluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKFsKQEAgLTU2
LDcgKzU2LDggQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICAgICAgICAgIGFkZE5ldHdvcmtGaWxl
KHdvcmtzcGFjZSwgImZvby5qcyIpOwogICAgICAgICAgICAgYWRkTmV0d29ya0ZpbGUod29ya3Nw
YWNlLCAiYmFyLmpzIik7Ci0gICAgICAgICAgICBhZGROZXR3b3JrRmlsZSh3b3Jrc3BhY2UsICJi
YXouanMiKTsKKyAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSBhZGROZXR3b3JrRmlsZSh3
b3Jrc3BhY2UsICJiYXouanMiKTsKKyAgICAgICAgICAgIHBhbmVsLl9uYXZpZ2F0b3IucmV2ZWFs
VUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZSk7CiAKICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZHVtcFNjcmlwdHNOYXZpZ2F0b3IocGFuZWwuX25hdmlnYXRvcik7CiAKQEAgLTgxLDcgKzgyLDkg
QEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTY3JpcHRz
TmF2aWdhdG9yKHBhbmVsLl9uYXZpZ2F0b3IpOwogCiAgICAgICAgICAgICB3b3Jrc3BhY2UubmV0
d29ya1dvcmtzcGFjZVByb3ZpZGVyLnJlc2V0KCk7Ci0gICAgICAgICAgICBhZGROZXR3b3JrRmls
ZSh3b3Jrc3BhY2UsICJiYXIuanMiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNj
cmlwdHNOYXZpZ2F0b3IocGFuZWwuX25hdmlnYXRvcik7CisgICAgICAgICAgICB2YXIgdWlTb3Vy
Y2VDb2RlID0gYWRkTmV0d29ya0ZpbGUod29ya3NwYWNlLCAiYmFyLmpzIik7CisgICAgICAgICAg
ICBwYW5lbC5fbmF2aWdhdG9yLnJldmVhbFVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGUpOwogICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2NyaXB0c05hdmlnYXRvcihwYW5lbC5fbmF2aWdh
dG9yKTsKIAogICAgICAgICAgICAgcGFuZWwuZGV0YWNoKCk7CkBAIC05NCw5ICs5NywxMCBAQCBm
dW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIHZhciBwYW5lbCA9IG5ldyBXZWJJbnNwZWN0b3Iu
U2NyaXB0c1BhbmVsKHdvcmtzcGFjZSk7CiAgICAgICAgICAgICBwYW5lbC5zaG93KCk7CiAKLSAg
ICAgICAgICAgIGFkZE5ldHdvcmtGaWxlKHdvcmtzcGFjZSwgImZvby5qcyIpOwotICAgICAgICAg
ICAgYWRkRGVidWdnZXJGaWxlKHdvcmtzcGFjZSwgImNvbXBpbGVkLmpzIik7Ci0KKyAgICAgICAg
ICAgIHZhciB1aVNvdXJjZUNvZGUgPSBhZGROZXR3b3JrRmlsZSh3b3Jrc3BhY2UsICJmb28uanMi
KTsKKyAgICAgICAgICAgIHZhciBkZWJ1Z2dlclVJU291cmNlQ29kZSA9IGFkZERlYnVnZ2VyRmls
ZSh3b3Jrc3BhY2UsICJjb21waWxlZC5qcyIpOworICAgICAgICAgICAgcGFuZWwuX25hdmlnYXRv
ci5yZXZlYWxVSVNvdXJjZUNvZGUodWlTb3VyY2VDb2RlKTsKKyAgICAgICAgICAgIHBhbmVsLl9u
YXZpZ2F0b3IucmV2ZWFsVUlTb3VyY2VDb2RlKGRlYnVnZ2VyVUlTb3VyY2VDb2RlKTsKICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNjcmlwdHNOYXZpZ2F0b3IocGFuZWwuX25hdmlnYXRv
cik7CiAKICAgICAgICAgICAgIC8vIFBsdWcgY29tcGlsZXIgc291cmNlIG1hcHBpbmcuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1zb3J0aW5nLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXNvcnRp
bmctZXhwZWN0ZWQudHh0CmluZGV4IGJjYTNjMzhiZjlhY2YzMjc3ZTc5NWE1MWE3NzM0OWMxM2My
NjZhMTYuLmExOTA2ZWRlMTdjZTcwNGU2NTBhYzNhMzFjYmYxZjRhZTdlNGFhMmQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXNvcnRpbmctZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXNvcnRp
bmctZXhwZWN0ZWQudHh0CkBAIC0yLDQ0ICsyLDU4IEBAIFRlc3RzIHNjcmlwdHMgc29ydGluZyBp
biB0aGUgc2NyaXB0cyBwYW5lbC4KIAogCiBEdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ1Njcmlw
dHMnIHRhYjoKKyAgKG5vIGRvbWFpbikKICAgYmFyLmNvbQotICAgIGZvby9wYXRoCiAgIGZvby5j
b20KLSAgICBfanMvcHJvZHVjdGlvbgotICAgIGZvby9wYXRoCitEdW1waW5nIFNjcmlwdHNOYXZp
Z2F0b3IgJ0NvbnRlbnQgc2NyaXB0cycgdGFiOgorICAobm8gZG9tYWluKQorICBleHRlbnNpb24t
bmFtZQorRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdTY3JpcHRzJyB0YWI6CisgIChubyBkb21h
aW4pCisgIGJhci5jb20KKyAgZm9vLmNvbQorICAgIF9qcworICAgIGZvbwogICAgIGkKLSAgICBp
L2pzCi0gICpOb24qVVJMKnBhdGgKKyAgICBibG9jay5qcz9ibG9jaz1mb28KKyAgICBnYS5qcwor
ICAgIGxlbnRhLmJhbj9wZz00ODgzJmlmcj0xCisgICAgbGVudGEuYmFuP3BnPTUzMDkmaWZyPTEK
KyAgICB0b3AxMDAuamNuPzgwNjc0CiBEdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ0NvbnRlbnQg
c2NyaXB0cycgdGFiOgorICAobm8gZG9tYWluKQogICBleHRlbnNpb24tbmFtZQotICAgIGZvbGRl
cgotICAqQW5vdGhlcipOb24qVVJMKnBhdGgKIER1bXBpbmcgU2NyaXB0c05hdmlnYXRvciAnU2Ny
aXB0cycgdGFiOgorICAobm8gZG9tYWluKQorICAgICpOb24qVVJMKnBhdGgKICAgYmFyLmNvbQot
ICAgIGZvby9wYXRoCi0gICAgICBiYXIuanM/ZmlsZT1iYXIvenp6LmpzCi0gICAgICBmb28uanM/
ZmlsZT1iYXIvYWFhLmpzCisgICAgZm9vCisgICAgICBwYXRoCisgICAgICAgIGJhci5qcz9maWxl
PWJhci96enouanMKKyAgICAgICAgZm9vLmpzP2ZpbGU9YmFyL2FhYS5qcwogICBmb28uY29tCi0g
ICAgX2pzL3Byb2R1Y3Rpb24KLSAgICAgIG1vdG9yLmpzPzEzMDg5Mjc0MzIKLSAgICBmb28vcGF0
aAotICAgICAgYmFyLmpzP2ZpbGU9YmFyL3p6ei5qcwotICAgICAgZm9vLmpzP2ZpbGU9YmFyL2Fh
YS5qcworICAgIF9qcworICAgICAgcHJvZHVjdGlvbgorICAgICAgICBtb3Rvci5qcz8xMzA4OTI3
NDMyCisgICAgZm9vCisgICAgICBwYXRoCisgICAgICAgIGJhci5qcz9maWxlPWJhci96enouanMK
KyAgICAgICAgZm9vLmpzP2ZpbGU9YmFyL2FhYS5qcwogICAgIGkKKyAgICAgIGpzCisgICAgICAg
IGpxdWVyeS0xLjUuMS5taW4uanMKKyAgICAgICAganF1ZXJ5LmNvb2tpZS5qcwogICAgICAgeGdl
bWl1cy5qcwotICAgIGkvanMKLSAgICAgIGpxdWVyeS0xLjUuMS5taW4uanMKLSAgICAgIGpxdWVy
eS5jb29raWUuanMKICAgICBibG9jay5qcz9ibG9jaz1mb28KICAgICBnYS5qcwogICAgIGxlbnRh
LmJhbj9wZz00ODgzJmlmcj0xCiAgICAgbGVudGEuYmFuP3BnPTUzMDkmaWZyPTEKICAgICB0b3Ax
MDAuamNuPzgwNjc0Ci0gICpOb24qVVJMKnBhdGgKIER1bXBpbmcgU2NyaXB0c05hdmlnYXRvciAn
Q29udGVudCBzY3JpcHRzJyB0YWI6CisgIChubyBkb21haW4pCisgICAgKkFub3RoZXIqTm9uKlVS
TCpwYXRoCiAgIGV4dGVuc2lvbi1uYW1lCiAgICAgZm9sZGVyCiAgICAgICBiYXouanMKICAgICBi
YXIuanMKLSAgKkFub3RoZXIqTm9uKlVSTCpwYXRoCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXNvcnRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXNvcnRpbmcuaHRtbAppbmRleCA4YTM0YjgzZjhhNGQ1
NzI2NmM0Y2M4MmQ3ZDBhZjM3NTYxN2QyZGY5Li42NjcxNTY3MDk3NWI4NzJhZDYxOTg5NjRmNjU0
NDVhYmFlOGZhMWY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
c2NyaXB0cy1zb3J0aW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L3NjcmlwdHMtc29ydGluZy5odG1sCkBAIC0yNyw2ICsyNyw4IEBAIGZ1bmN0aW9uIHRlc3QoKQog
ICAgIHsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiIpOwogICAgICAgICBJbnNw
ZWN0b3JUZXN0LmR1bXBTY3JpcHRzTmF2aWdhdG9yKG5hdmlnYXRvcik7CisgICAgICAgIG5hdmln
YXRvci5yZXZlYWxVSVNvdXJjZUNvZGUodWlTb3VyY2VDb2Rlc1swXSk7CisgICAgICAgIEluc3Bl
Y3RvclRlc3QuZHVtcFNjcmlwdHNOYXZpZ2F0b3IobmF2aWdhdG9yKTsKICAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCB1aVNvdXJjZUNvZGVzLmxlbmd0aDsgKytpKQogICAgICAgICAgICAgbmF2
aWdhdG9yLnJldmVhbFVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGVzW2ldKTsKICAgICAgICAgSW5z
cGVjdG9yVGVzdC5kdW1wU2NyaXB0c05hdmlnYXRvcihuYXZpZ2F0b3IpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>189292</attachid>
            <date>2013-02-20 05:28:08 -0800</date>
            <delta_ts>2013-02-20 05:28:08 -0800</delta_ts>
            <desc>screenshot</desc>
            <filename>newnavigator.png</filename>
            <type>image/png</type>
            <size>103849</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">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
fz7du3fnxRdfJCwsjA4dOpCQkMCkSZOIiorivffeIzc3l9GjR9ud1YrIz8/njTfeQKlUMmXKFHr3
7s3777/Pvn37WLBgAZs3b2bevHm8/PLLvP766yxfvpzffvuNX375hb179/L111/z+uuvk5GRwcWL
F53mYStbyc12MdCiRQsMBgNGo5GmTZvyf//3f9SqVYtTp07x3nvv0bhxY9544w3y8/N59dVXKSgo
sKd76dIlPvvsMyIiIvjf//6HJEk8++yzADz22GP06NGD7du3s2jRIl544QVeeeUVVq1axZ9//lmp
NErKvWrVKuLj45k7dy7jx48nOzub5ORkjh8/zscff0yPHj146623OHTokENH1+v1TJgwgcaNG5fR
T2pqKl999RXR0dG8//775OXllZHBVb7OdOtsa968Ob179+bbb79l4MCBjB8/nqCgIGJiYsrVhTOc
yVveOVd1UN1lFJvYqrLZZj3K+19yK23TSocpuR8SEsLw4cPLpFU6jjP++9//0qRJEz766CPeeecd
mjVrxtNPP20/n5iYyNtvv01QUBAzZsxwiGuz6yX7d0mcxR0zZgwATz31FH369LGHNZlMLFy4kJSU
FD777DM++OAD+4W5OxfC1yuv8PBwYmJisFqtmEwmIiMjndrbkpSeldyxYwfffPMNL7zwAuPHj2fV
qlWsWbPGPtNqsViYO3cuaWlpLFiwgClTptCzZ08WLVqE2Wy2h0tNTWX+/PlER0czdepU8vPzee65
54Bie2e7mEhOTubUqVNcvnyZhIQEBgwY4CDPiRMnmDFjhsO48sMPP7B69Wri4+OZN2+e3VZevnzZ
5XFnZXX16+yYs37z+OOPExUVxZw5c5g5cyZNmjThscces8c5d+4cr732GrVq1eKLL75waOe28bBF
ixZl+o6ruKXHCxsWi4XPP/+ctLQ05s+fz9tvv0337t1ZtGgRRqPRoSzO8gJcjj2V0Zs7dgZg0KBB
7Nmzh5MnTzJw4EDi4+M5fPiwU1vzb9+qYktd2ewK36Mtl8uZMWMGR44cYevWrWzbto3JkyeTkZFh
v1qdPHkyvr6+qFQqXnzxRY4fP14mnZINy8aDDz5Ir1697DMGzz77LD4+PnTr1g2tVsvUqVORJIkP
PvjAnoZtBtRkMvH000/TsWNH4uLiaNCgQUVFKSNLyc5XUik7duxAkiTGjx+Pl5cXSqWSiRMncvr0
aVQqFQD33HMPwcHBtGrVyl7eOnXqAMVG18/Pj/379yNJkt3AW61WEhMTadSokdtplCQqKgqTycQL
L7xAu3bt6N+/P/Xq1eOHH34Aio2Al5cXq1atQqlUsmvXLgD7zMyJEyfK6GLo0KEEBwczdOhQtm7d
SlJSUhkZXOVbGd555x0SEhLYsWMHO3fu5MMPPyQ9PZ127dq51IUznMlb3jlXddC2bdtqL6NAcDPh
6elJgwYNGDFiBMuWLatUXKVSyfvvv8+DDz6IJEksXboUpfKf4WLkyJF07NiRTp06lZm9s9n1I0eO
2CcW2rVrR3BwsMu4DRs2BKBevXoEBQXZ0xo8eDCNGzcmICCAli1bEh0dTbNmzVi9erXTB0VLc73y
MhgMDmu0z58/T+PGjfH393ca3tl4uG/fvnJt1YABAwgLC8Pf35/mzZsTERFBZGQka9eutT9AC8V2
sHbt2nY7mJiYSHh4OFBs73x9fenSpQs+Pj5s3rwZf39/tFotPXr0cJBr//79QNlxZffu3ZhMJkaP
Hm23lXXr1iUyMtLpcWdlvVasVitvvvkmTzzxBJIk8dFHHznkM3z4cFq2bElsbGyZ54Fs4+HRo0ft
M9atWrWyt09ncV2NywMGDCA8PNxeJ3Xr1iUqKop169a5PeHoauypTr3Z0goNDUWtVnP69Gn69OmD
Vqvl1KlTtGrVqtryuh25FlsKbrxHe9WqVSxfvpxZs2bx/PPP89xzz3H33Xezfft2OnXqBOD0KdyS
V+GA00bn4+PjsG+bNUhKSsLX1xez2YyHhwfbtm1DLpdz6dIle4P//vvvWbduHXv27GHSpEnk5OQw
cuTIMnk4K5vN0B46dIjo6GgANmzYwLJly5g0aZJ9HY7JZMJsNjvMZtjSUygUdsfcdpVjK6vtysZi
seDh4cHatWuRy+VcvnyZ4OBg+0My7qRRkg4dOjB//nw2btzIvn37mDJlCqNHj7bLW1hYiEajISEh
wUG3Wq3WaRmg+OpekiT7QCKXy8vI4CrfIUOGlNGtM/766y9Wr17Nu+++y+OPP84TTzzBiBEj2Lt3
r30QcaYLd+W1xXNVFmd1YFsKVF1lFAiqgrtrBUvHcXffYrFQv359RowY4bJPuSI9Pd1uNxITE4mM
jLSf02g0gGP/s2GzPWfOnLE7t2azmYEDB1YYtzS2iQ2ZTIZarbbHc5frkZfZbGbz5s3odDoaNWqE
h4cHx44dY/PmzfTr1w9vb2+n8axWx3cZO7NVISEhbNiwoUwcpVKJJElOx169Xo/VanVqI232TqlU
0q9fP7Zs2YK/vz89evSwl9mWR8lxRavVcvLkSXx8fOjQoQMLFixgw4YNDrZy+PDhTo8PHTq0TFld
/TrTi6u2evnyZXv7TEhIICwszGF8djWW2sbDCxcusGLFCqC4n/Tv399l3PLGZVs92OqkZF2V/O+q
L7saeyqjN3f6s0wmY/369fj6+tKvXz82bdqERqMhLi6uRi6GbgeqYkud6bJCKxIeHs7+/ft58cUX
WbJkCdOmTSMlJYUmTZrYb6FMmTKFDRs2MGfOHCIiImjRooX9Sn79+vXs2LGDzZs3l0nb1rFsDvus
WbNYuXIlzzzzDPPnz6dTp04UFhYyf/581qxZQ1xcHCtWrGD+/Pm88MILdOvWjddeew25XO6whKAi
2rdvT7Nmzfj666/58ssvWbx4MbNnzyY/P5/w8HC6dOkCwMyZM9m2bRsLFy6kTp06NGnSpNx0bYb6
6NGjnDt3jvbt29vlX7VqFSNGjODXX3+tVBolWbx4MePHj6dDhw689NJLyOVy9Hq9fVZ4/vz5rF+/
nokTJ9pnuSvihx9+YN++ffz888/4+voSGRlZRgZX+bpLeHg4hw8f5vXXX2fFihXMnDmT1NRU+0VO
ZXAmb3nnXNVBdZdRILhZkSSJ+vXrVyqOTqfj7bffpk2bNsTExPDBBx+QlZXlVlybXb/33ns5dOgQ
hw4dqvDDD7b+ePDgQYe7VJUhNTWVGTNmcObMmRrPqyQKhQIvLy/q1KlDbGwsLVu2JCoqCk9PT7Ra
rdM4JR1f229JW7Vy5UpGjBhhdwRLx7Ph7O7sDz/8wN69ex3soG19qc3eSZJEXFwcV65c4cSJE3Yn
MzU1lS+//JKzZ886jCvr1q2zjyuLFy/mlVdeKWMrXR13VlZXv67OlUav1zNjxgxat25Nq1atmD17
NtnZ2a6qyClxcXHs3LmTnTt38vLLL5cbtrxx2V3S09P58ssvOX/+vMNxV2NPZfTmDpmZmWzfvp0R
I0ZgMBjYtGkT9913n/1iVFAxVbGl4MaMdtu2bXnvvfdYuHAh06ZNw8vLiyFDhjBmzBg8PT15//33
+fLLL9m2bRutWrVi+vTpaDQaIiMjeeihh1i6dCkJCQn069ePP/74w2kerVq14o033mDBggWsXbuW
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
P9CjRw+uX7/OuXPn2LFjB4sWLUKlUpGUlMTx48eBoiU/Bw4caBzdLc7d3Z1x48Zx9OhRcb8riUql
Yvfu3fTq1cvi7wVzcm/mcOyLw2zs9zV73tqJg7sjz299yaTOsS+P0G7Sc8gUDzZx2TUtmvAFA5h5
7V3m3P3QJLnd934MqmwV4+OiSpUZaAo0TE16i9pBD6YsWaproLS3Ydr5WTTs3Zi4/9ldKsZc/PNb
X8LB3ZGYmTvZ2P9rjn1xmNybOVbfH0EQhKck0S5a3i8nO4usBuO512gamY7tuOveh3u+YykIeAVJ
nYdOrzc7/7F379589913qFQqMjMz2bt3L1D0MX5kZCSvvvoqfn5+HDp0yLjCiUqlKrMOFI3Klqwf
FhbGxo0byczMRKfTMWbMGDZv3kxubi5RUVHs2LEDR0dHvvjiCwCTWMP87OLKOv+4ceNYuHAh7u7u
1K9fv8z6n376KYsXL+aFF15g5cqVpKWloVKp6NatG9u3b6ewsBCVSsWgQYOMH0lbEhsbS0ZGBhqN
hg0bNhAeHm5yHYZ7o9frK9x+WddbnKXrsXT/S/bPHE9PT86ePYtGo+HGjRv8+uuvpX5GxW3ZssU4
h3bo0KEEBweza9cuCgsL0Wq1/PTTTwQHB1t1P8LCwti8ebNxfve6devo3r27xb6Wdf1ltWPp/hj6
WPxeW2qrT58+/Pe//0Wj0ZCZmcnOnTuRyWQ0atSIP/74o8x7XNzVq1dp2PDB9tparZYVK1bwxhtv
GJfulMlkKJVKNBoNly9fZsqUKahUKgoKCoiOjjYmvMXl5uaybds22rVrJ+53JYmPj8ff39/k52WN
FW0Wc2F7EgOWDeH5H8YR9HIwjp6OxnJVjorkHUm0ebGdSZx3q9rsnbWLnz+M5fzW39HkP/jjJXV3
Mr3m9cPJx/wnAwCdZnbDztmOvgsjrO5ryOQO2DrZEjK5A9cOX7UqxtHTkaCXgxm9dRz9lwzmfPQ5
VrSp3PnrgiA8256KqSOGB8wuX7qIja0tBYVa0KWg1cuwtXfEQ3YXmUyOo6OD2ZGfIUOGkJiYSKtW
rfD29qZ58+ZA0fJhY8eO5ddff8Xd3Z1+/fpx6dIl3N3dadCgAS1atDCOFpesA9C4cWNu3rxJrVq1
jPXPnTtHVFSUcWpIz549iYqK4vXXXyciIoL27duzfPlyOnToQP/+/alfv74x1tXV1bhkmYGlPkLR
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
jmbT2jnZAaCwUaBRm3BScqkUSgUalQaFjYLMx5kFLrel1O3Yh4MLRnBk5Ye81Pk17BzLmShnTkEV
CiXvRqRiW0b/n4O8M5w5Sa130nKbUioVqFQabGwUpKVlWW2rIDg6ZrsPNjYK1Kb6r4jQtqVCaYNG
rdLTaTCRv0KZ3TdG2t4Ypmw27zOKsztXc+/SCVwatsnOphB9+9133hw6dIfjx++xdu1F1qw5T3h4
d53dCxfe0LV3XgraD3PmnCAoqDnJyRnMm3eKzz7LWRZlzqazs+GyuLo6cf9+OjVqlLW4HKZsmqq7
qTYzhSWfFWP1KyiydEQQBKEUoH3gMfeDj4V9ANK5Zjk8gl5h6K738P+yD2l309jQ/9tClzVhRSwZ
qRkkrIildsc6uvAKdStybttvZKZlEvd1/nXPDuUcuHs2yer87B0r8ODKmXzhSls7GnUbxLmoNTTx
fyef/kz4YjKfpHImfDE1WnTWhdd28+PI6ilkpCbrxddoNAYvSwkNPc/jx1mEhp7HwyNntrVOHSd2
7LjOkycqVq48ly9duXJ2nDv30KBNYzo3tyqsXp2d36pV53Bzq2JxOQtCteaenP5xEZlPUjn140Kq
Nfe0KF09z0B+XTaBtPuJBvXOVetwx8o18uZsth34MX/7YA3Rcwbr1vAXpm9tbRV07VqDMWOaM2lS
Ky5eTNHpunatQXDwCR4+tO6HpYdHVd14WbVKf0ycPv2AY8fuERhYl0GDGrJnz00uXnxklX1DuLtX
4cKFwtvRYqruptrM1Ng191kpDsTRFgRBKOXk3tqvoNv8VaxfiU6TuvDOwVFAwR9QBFBnqVjc9Esu
RZ3Hd05PXbj3p93ZM2UnS1stoEzFMvnSdRjTibX+q6ze5q/1Gx8QPs7T4ENvtdt3p3zNhnqOdE45
M1n7ZnWuxmyn0/uLdOGdRi/k6cMk1r3VwKoH9MyRlaWmdest7Nlzk1mzcmYgp01ryyefJODuHk6F
Cvb50o0a1YyAgCiD26sZ082e7ca+fbdo3XoLBw4kMnu2W760RUnn9xdxPS6StW9W50b8Ljrnak9T
dBq1AHunCmwZ7WawrTu8G0zkv3vlCzf1IKw5mwA1Wnrxss8Qfl402tqq5kP7MF/DhhuZNi2ekJBX
dLrZs924f/8pnp5bDT60aoxZs9qze/dNWrfekm8y/7PPjhMU1AwbGwUODkqCgprx6adHC12PgIC6
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
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190953</attachid>
            <date>2013-03-01 06:02:59 -0800</date>
            <delta_ts>2013-03-01 11:33:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108943-20130301175910.patch</filename>
            <type>text/plain</type>
            <size>68762</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTIzYWM0NTU4ZTI1YzIz
MzE2NjM1ZjJmOTZlNWNmMDgyZTlkNGVjZi4uMmMxZGZhNTIxMGY4NzVmMWNjZjNhOTU1OGZiZDNk
NjZmM2UxMGNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk1IEBACisyMDEzLTAzLTAxICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IE5hdmlnYXRvciBzaG91bGQgc2hvdyB0cmVlIGVsZW1lbnQgZm9yIGVhY2ggZm9sZGVyIGlu
IHRoZSBzb3VyY2UgcGF0aC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwODk0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE5hdmlnYXRvclZpZXcgbm93IHJlbmRlcnMgdHJlZSBlbGVtZW50IGZvciBlYWNo
IGZvbGRlciBpbiB1aVNvdXJjZUNvZGUgdXJpLgorICAgICAgICBNZXJnaW5nIHNldmVyYWwgZm9s
ZGVycyBpbnRvIG9uZSB0cmVlIGVsZW1lbW50IHdoZW4gZm9sZGVyIGhhcyBvbmx5IG9uZSBmb2xk
ZXIgYXMgYSBjaGlsZCBpcyBzdXBwb3J0ZWQuCisgICAgICAgIFNjcmlwdHNOYXZpZ2F0b3IgaGFz
IGhvcml6b250YWwgc2Nyb2xsIG5vdy4KKyAgICAgICAgUHJvamVjdHMgYXJlIHNob3duIGluIFNj
cmlwdHNOYXZpZ2F0b3IgYnkgdGhlaXIgZGlzcGxheU5hbWUuIFRoaXMgYWxsb3dzIHVzIHRvIHNo
b3cgc2V2ZXJhbCByb290IGZpbGUgc3lzdGVtIGZvbGRlcnMKKyAgICAgICAgd2l0aCB0aGUgc2Ft
ZSBuYW1lIGluIHRoZSBuYXZpZ2F0b3IgKGUuZy4gJ1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvcicg
YW5kICdMYXlvdXRUZXN0cy9pbnNwZWN0b3InKS4KKworICAgICAgICBUZXN0OiBpbnNwZWN0b3Iv
ZGVidWdnZXIvbmF2aWdhdG9yLXZpZXcuaHRtbDogUmVuYW1lZCBmcm9tIHNjcmlwdHMtZmlsZS1z
ZWxlY3Rvci5odG1sCisKKyAgICAgICAgKiBFbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3Mu
anM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9OYXZpZ2F0b3JWaWV3LmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLk5hdmlnYXRvclZpZXcpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
Lk5hdmlnYXRvclZpZXcuaWNvbkNsYXNzRm9yVHlwZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
TmF2aWdhdG9yVmlldy5wcm90b3R5cGUuYWRkVUlTb3VyY2VDb2RlKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5OYXZpZ2F0b3JWaWV3LnByb3RvdHlwZS5fZ2V0UHJvamVjdE5vZGUpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLk5hdmlnYXRvclZpZXcucHJvdG90eXBlLl9jcmVhdGVQcm9qZWN0Tm9k
ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVmlldy5wcm90b3R5cGUuX2dldE9y
Q3JlYXRlUHJvamVjdE5vZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdmlnYXRvclZpZXcu
cHJvdG90eXBlLl9nZXRGb2xkZXJOb2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZpZ2F0
b3JWaWV3LnByb3RvdHlwZS5fY3JlYXRlRm9sZGVyTm9kZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuTmF2aWdhdG9yVmlldy5wcm90b3R5cGUuX2dldE9yQ3JlYXRlRm9sZGVyTm9kZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVmlldy5wcm90b3R5cGUuX2dldFVJU291cmNlQ29k
ZVBhcmVudE5vZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdmlnYXRvclZpZXcucHJvdG90
eXBlLl9nZXRPckNyZWF0ZVVJU291cmNlQ29kZVBhcmVudE5vZGUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLk5hdmlnYXRvclZpZXcucHJvdG90eXBlLnJldmVhbFVJU291cmNlQ29kZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVmlldy5wcm90b3R5cGUucmVtb3ZlVUlTb3VyY2VD
b2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JWaWV3LnByb3RvdHlwZS5yZW5h
bWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdmlnYXRvclZpZXcucHJvdG90eXBlLnJlc2V0
KToKKyAgICAgICAgKC50eXBlV2VpZ2h0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZpZ2F0
b3JUcmVlT3V0bGluZS5fdHJlZUVsZW1lbnRzQ29tcGFyZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuQmFzZU5hdmlnYXRvclRyZWVFbGVtZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5CYXNl
TmF2aWdhdG9yVHJlZUVsZW1lbnQucHJvdG90eXBlLnR5cGUpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLk5hdmlnYXRvckZvbGRlclRyZWVFbGVtZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5O
YXZpZ2F0b3JGb2xkZXJUcmVlRWxlbWVudC5wcm90b3R5cGUub25wb3B1bGF0ZSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuTmF2aWdhdG9yRm9sZGVyVHJlZUVsZW1lbnQucHJvdG90eXBlLm9uYXR0
YWNoKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JTb3VyY2VUcmVlRWxlbWVudCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVHJlZU5vZGUpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLk5hdmlnYXRvclRyZWVOb2RlLnByb3RvdHlwZS50cmVlRWxlbWVudCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVHJlZU5vZGUucHJvdG90eXBlLmRpc3Bvc2UpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdmlnYXRvclRyZWVOb2RlLnByb3RvdHlwZS5pc1Jvb3Qp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdmlnYXRvclRyZWVOb2RlLnByb3RvdHlwZS5oYXND
aGlsZHJlbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVHJlZU5vZGUucHJvdG90
eXBlLnBvcHVsYXRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JUcmVlTm9kZS5w
cm90b3R5cGUud2FzUG9wdWxhdGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JU
cmVlTm9kZS5wcm90b3R5cGUuZGlkQWRkQ2hpbGQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5h
dmlnYXRvclRyZWVOb2RlLnByb3RvdHlwZS53aWxsUmVtb3ZlQ2hpbGQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLk5hdmlnYXRvclRyZWVOb2RlLnByb3RvdHlwZS5pc1BvcHVsYXRlZCk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVHJlZU5vZGUucHJvdG90eXBlLmlzRW1wdHkpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdmlnYXRvclRyZWVOb2RlLnByb3RvdHlwZS5jaGlsZCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVHJlZU5vZGUucHJvdG90eXBlLmNoaWxk
cmVuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JUcmVlTm9kZS5wcm90b3R5cGUu
YXBwZW5kQ2hpbGQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdmlnYXRvclRyZWVOb2RlLnBy
b3RvdHlwZS5yZW1vdmVDaGlsZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVHJl
ZU5vZGUucHJvdG90eXBlLnJlc2V0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JS
b290VHJlZU5vZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdmlnYXRvclJvb3RUcmVlTm9k
ZS5wcm90b3R5cGUuaXNSb290KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JSb290
VHJlZU5vZGUucHJvdG90eXBlLnRyZWVFbGVtZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5O
YXZpZ2F0b3JSb290VHJlZU5vZGUucHJvdG90eXBlLndhc1BvcHVsYXRlZCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuTmF2aWdhdG9yUm9vdFRyZWVOb2RlLnByb3RvdHlwZS5kaWRBZGRDaGlsZCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdG9yUm9vdFRyZWVOb2RlLnByb3RvdHlwZS53
aWxsUmVtb3ZlQ2hpbGQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdmlnYXRvclVJU291cmNl
Q29kZVRyZWVOb2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JVSVNvdXJjZUNv
ZGVUcmVlTm9kZS5wcm90b3R5cGUudHJlZUVsZW1lbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
Lk5hdmlnYXRvclVJU291cmNlQ29kZVRyZWVOb2RlLnByb3RvdHlwZS51cGRhdGVUaXRsZSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVUlTb3VyY2VDb2RlVHJlZU5vZGUucHJvdG90
eXBlLmhhc0NoaWxkcmVuKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JVSVNvdXJj
ZUNvZGVUcmVlTm9kZS5wcm90b3R5cGUuZGlzcG9zZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
TmF2aWdhdG9yVUlTb3VyY2VDb2RlVHJlZU5vZGUucHJvdG90eXBlLl90aXRsZUNoYW5nZWQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdmlnYXRvclVJU291cmNlQ29kZVRyZWVOb2RlLnByb3Rv
dHlwZS5fd29ya2luZ0NvcHlDaGFuZ2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZpZ2F0
b3JVSVNvdXJjZUNvZGVUcmVlTm9kZS5wcm90b3R5cGUuX3dvcmtpbmdDb3B5Q29tbWl0dGVkKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JVSVNvdXJjZUNvZGVUcmVlTm9kZS5wcm90
b3R5cGUuX2Zvcm1hdHRlZENoYW5nZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdmlnYXRv
clVJU291cmNlQ29kZVRyZWVOb2RlLnByb3RvdHlwZS5yZXZlYWwpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLk5hdmlnYXRvclVJU291cmNlQ29kZVRyZWVOb2RlLnByb3RvdHlwZS5yZW5hbWUuY29t
bWl0SGFuZGxlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVUlTb3VyY2VDb2Rl
VHJlZU5vZGUucHJvdG90eXBlLnJlbmFtZS5jYW5jZWxIYW5kbGVyKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5OYXZpZ2F0b3JVSVNvdXJjZUNvZGVUcmVlTm9kZS5wcm90b3R5cGUucmVuYW1lLmFm
dGVyRWRpdGluZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVUlTb3VyY2VDb2Rl
VHJlZU5vZGUucHJvdG90eXBlLnJlbmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF2aWdh
dG9yRm9sZGVyVHJlZU5vZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5hdmlnYXRvckZvbGRl
clRyZWVOb2RlLnByb3RvdHlwZS50cmVlRWxlbWVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
TmF2aWdhdG9yRm9sZGVyVHJlZU5vZGUucHJvdG90eXBlLl9jcmVhdGVUcmVlRWxlbWVudCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdG9yRm9sZGVyVHJlZU5vZGUucHJvdG90eXBlLndh
c1BvcHVsYXRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdG9yRm9sZGVyVHJlZU5v
ZGUucHJvdG90eXBlLl9hZGRDaGlsZHJlblJlY3Vyc2l2ZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuTmF2aWdhdG9yRm9sZGVyVHJlZU5vZGUucHJvdG90eXBlLl9zaG91bGRNZXJnZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuTmF2aWdhdG9yRm9sZGVyVHJlZU5vZGUucHJvdG90eXBlLmRpZEFk
ZENoaWxkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JGb2xkZXJUcmVlTm9kZS5w
cm90b3R5cGUud2lsbFJlbW92ZUNoaWxkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L1NjcmlwdHNOYXZpZ2F0b3IuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TaW1w
bGVXb3Jrc3BhY2VQcm92aWRlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TaW1wbGVQcm9q
ZWN0RGVsZWdhdGUucHJvdG90eXBlLmRpc3BsYXlOYW1lKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL25hdmlnYXRvclZpZXcuY3NzOgorICAgICAgICAoLm5hdmlnYXRvciA+IG9sKToK
KyAgICAgICAgKC5uYXZpZ2F0b3IgLmJhc2UtbmF2aWdhdG9yLXRyZWUtZWxlbWVudC10aXRsZSk6
CisgICAgICAgICgubmF2aWdhdG9yLXRhYmJlZC1wYW5lIC5uYXZpZ2F0b3ItY29udGFpbmVyKToK
KwogMjAxMy0wMi0yOCAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFNlbGVjdG9yJ3MgcmF3IHN0YXJ0IHBvc2l0aW9uIGlu
IGl0cyBsaW5lIGlzIGNvbnNpZGVyZWQgdG8gYmUgMCB3aGVuIGNvbXB1dGluZyBVSUxvY2F0aW9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmlu
Z3MuanMgYi9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMK
aW5kZXggNWQ3MmE0MzVkNTc3MWE2MzZmOGVkOTA3ZjAxMmNiZjNkNmFmNjQ2Ny4uMTgxYWIwODA1
YTkyNDQ4OGNiZTA2NmRlOTk5YmY2ZTI0MTkxMDA3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwpAQCAtODczLDMgKzg3Myw0IEBAIGxv
Y2FsaXplZFN0cmluZ3NbIlNlbmQgV2ViU29ja2V0IEhhbmRzaGFrZSJdID0gIlNlbmQgV2ViU29j
a2V0IEhhbmRzaGFrZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZWNlaXZlIFdlYlNvY2tldCBIYW5k
c2hha2UiXSA9ICJSZWNlaXZlIFdlYlNvY2tldCBIYW5kc2hha2UiOwogbG9jYWxpemVkU3RyaW5n
c1siRGVzdHJveSBXZWJTb2NrZXQiXSA9ICJEZXN0cm95IFdlYlNvY2tldCI7CiBsb2NhbGl6ZWRT
dHJpbmdzWyJTcGxpdCBwYW5lbHMgdmVydGljYWxseSB3aGVuIGRvY2tlZCB0byByaWdodCJdID0g
IlNwbGl0IHBhbmVscyB2ZXJ0aWNhbGx5IHdoZW4gZG9ja2VkIHRvIHJpZ2h0IjsKK2xvY2FsaXpl
ZFN0cmluZ3NbIihubyBkb21haW4pIl0gPSAiKG5vIGRvbWFpbikiOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OYXZpZ2F0b3JWaWV3LmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OYXZpZ2F0b3JWaWV3LmpzCmluZGV4IDc0MTNk
NDBiNDkyZWUxZWRlZDg0ZjVmOWEyYTEwNDZhYjllNjAzN2IuLmU0ZDY0MzgwZDM4YTVmNzJmYjEw
NzgzZTNhZDU1Y2IwODZkMjA4NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvTmF2aWdhdG9yVmlldy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL05hdmlnYXRvclZpZXcuanMKQEAgLTUyLDE0ICs1MiwxMSBAQCBXZWJJbnNw
ZWN0b3IuTmF2aWdhdG9yVmlldyA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLmVsZW1lbnQuYXBwZW5k
Q2hpbGQoc2NyaXB0c091dGxpbmVFbGVtZW50KTsKICAgICB0aGlzLnNldERlZmF1bHRGb2N1c2Vk
RWxlbWVudCh0aGlzLl9zY3JpcHRzVHJlZS5lbGVtZW50KTsKIAotICAgIC8qKiBAdHlwZSB7T2Jq
ZWN0LjxzdHJpbmcsIFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JGb2xkZXJUcmVlRWxlbWVudD59ICov
Ci0gICAgdGhpcy5fZm9sZGVyVHJlZUVsZW1lbnRzID0ge307Ci0gICAgLyoqIEB0eXBlIHtPYmpl
Y3QuPHN0cmluZywgQXJyYXkuPFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGU+Pn0gKi8KLSAgICB0
aGlzLl9mb2xkZXJUcmVlRWxlbWVudHNVSVNvdXJjZUNvZGVzID0ge307Ci0gICAgLyoqIEB0eXBl
IHtPYmplY3QuPHN0cmluZywgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZT59ICovCi0gICAgdGhp
cy5fdWlTb3VyY2VDb2RlcyA9IHt9OwotICAgIC8qKiBAdHlwZSB7T2JqZWN0LjxzdHJpbmcsIFdl
Ykluc3BlY3Rvci5OYXZpZ2F0b3JTb3VyY2VUcmVlRWxlbWVudD59ICovCi0gICAgdGhpcy5fc2Ny
aXB0VHJlZUVsZW1lbnRzID0ge307CisgICAgLyoqIEB0eXBlIHtPYmplY3QuPHN0cmluZywgV2Vi
SW5zcGVjdG9yLk5hdmlnYXRvclVJU291cmNlQ29kZVRyZWVOb2RlPn0gKi8KKyAgICB0aGlzLl91
aVNvdXJjZUNvZGVOb2RlcyA9IHt9OworCisgICAgdGhpcy5fcm9vdE5vZGUgPSBuZXcgV2ViSW5z
cGVjdG9yLk5hdmlnYXRvclJvb3RUcmVlTm9kZSh0aGlzKTsKKyAgICB0aGlzLl9yb290Tm9kZS5w
b3B1bGF0ZSgpOwogfQogCiBXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVmlldy5FdmVudHMgPSB7CkBA
IC02Nyw5MCArNjQsOTIgQEAgV2ViSW5zcGVjdG9yLk5hdmlnYXRvclZpZXcuRXZlbnRzID0gewog
ICAgIEZpbGVSZW5hbWVkOiAiRmlsZVJlbmFtZWQiCiB9CiAKK1dlYkluc3BlY3Rvci5OYXZpZ2F0
b3JWaWV3Lmljb25DbGFzc0ZvclR5cGUgPSBmdW5jdGlvbih0eXBlKQoreworICAgIGlmICh0eXBl
ID09PSBXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVHJlZU91dGxpbmUuVHlwZXMuRG9tYWluKQorICAg
ICAgICByZXR1cm4gIm5hdmlnYXRvci1kb21haW4tdHJlZS1pdGVtIjsKKyAgICBpZiAodHlwZSA9
PT0gV2ViSW5zcGVjdG9yLk5hdmlnYXRvclRyZWVPdXRsaW5lLlR5cGVzLkZpbGVTeXN0ZW0pCisg
ICAgICAgIHJldHVybiAibmF2aWdhdG9yLWZvbGRlci10cmVlLWl0ZW0iOworICAgIHJldHVybiAi
bmF2aWdhdG9yLWZvbGRlci10cmVlLWl0ZW0iOworfQorCiBXZWJJbnNwZWN0b3IuTmF2aWdhdG9y
Vmlldy5wcm90b3R5cGUgPSB7CiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3Iu
VUlTb3VyY2VDb2RlfSB1aVNvdXJjZUNvZGUKICAgICAgKi8KICAgICBhZGRVSVNvdXJjZUNvZGU6
IGZ1bmN0aW9uKHVpU291cmNlQ29kZSkKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLl91aVNvdXJj
ZUNvZGVzW3VpU291cmNlQ29kZS51cmkoKV0pCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IHRoaXMuX3VpU291cmNlQ29kZXNbdWlTb3VyY2VDb2RlLnVyaSgpXSA9IHVpU291cmNlQ29kZTsK
LQotICAgICAgICB2YXIgZm9sZGVyVHJlZUVsZW1lbnQgPSB0aGlzLmdldE9yQ3JlYXRlRm9sZGVy
VHJlZUVsZW1lbnQodWlTb3VyY2VDb2RlKTsKLSAgICAgICAgdGhpcy5fYWRvcHRVSVNvdXJjZUNv
ZGUoZm9sZGVyVHJlZUVsZW1lbnQsIHVpU291cmNlQ29kZSk7CisgICAgICAgIHZhciBub2RlID0g
dGhpcy5fZ2V0T3JDcmVhdGVVSVNvdXJjZUNvZGVQYXJlbnROb2RlKHVpU291cmNlQ29kZSk7Cisg
ICAgICAgIHZhciB1aVNvdXJjZUNvZGVOb2RlID0gbmV3IFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JV
SVNvdXJjZUNvZGVUcmVlTm9kZSh0aGlzLCB1aVNvdXJjZUNvZGUpOworICAgICAgICB0aGlzLl91
aVNvdXJjZUNvZGVOb2Rlc1t1aVNvdXJjZUNvZGUudXJpKCldID0gdWlTb3VyY2VDb2RlTm9kZTsK
KyAgICAgICAgbm9kZS5hcHBlbmRDaGlsZCh1aVNvdXJjZUNvZGVOb2RlKTsKICAgICB9LAogCi0g
ICAgX2dldE9yQ3JlYXRlU2NyaXB0VHJlZUVsZW1lbnQ6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSkK
KyAgICBfZ2V0UHJvamVjdE5vZGU6IGZ1bmN0aW9uKHByb2plY3QpCiAgICAgewotICAgICAgICBy
ZXR1cm4gdGhpcy5fZ2V0U2NyaXB0VHJlZUVsZW1lbnQodWlTb3VyY2VDb2RlKSB8fCB0aGlzLl9j
cmVhdGVTY3JpcHRUcmVlRWxlbWVudCh1aVNvdXJjZUNvZGUpOworICAgICAgICBpZiAoIXByb2pl
Y3QuZGlzcGxheU5hbWUoKSkKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9yb290Tm9kZTsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuX3Jvb3ROb2RlLmNoaWxkKHByb2plY3QuaWQoKSk7CiAgICAgfSwK
IAotICAgIF9nZXRTY3JpcHRUcmVlRWxlbWVudDogZnVuY3Rpb24odWlTb3VyY2VDb2RlKQorICAg
IF9jcmVhdGVQcm9qZWN0Tm9kZTogZnVuY3Rpb24ocHJvamVjdCkKICAgICB7Ci0gICAgICAgIHJl
dHVybiB0aGlzLl9zY3JpcHRUcmVlRWxlbWVudHNbdWlTb3VyY2VDb2RlLnVyaSgpXTsKKyAgICAg
ICAgdmFyIHR5cGUgPSBwcm9qZWN0LnR5cGUoKSA9PT0gV2ViSW5zcGVjdG9yLnByb2plY3RUeXBl
cy5GaWxlU3lzdGVtID8gV2ViSW5zcGVjdG9yLk5hdmlnYXRvclRyZWVPdXRsaW5lLlR5cGVzLkZp
bGVTeXN0ZW0gOiBXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVHJlZU91dGxpbmUuVHlwZXMuRG9tYWlu
OworICAgICAgICB2YXIgcHJvamVjdE5vZGUgPSBuZXcgV2ViSW5zcGVjdG9yLk5hdmlnYXRvckZv
bGRlclRyZWVOb2RlKHRoaXMsIHByb2plY3QuaWQoKSwgdHlwZSwgcHJvamVjdC5kaXNwbGF5TmFt
ZSgpKTsKKyAgICAgICAgdGhpcy5fcm9vdE5vZGUuYXBwZW5kQ2hpbGQocHJvamVjdE5vZGUpOwor
ICAgICAgICByZXR1cm4gcHJvamVjdE5vZGU7CiAgICAgfSwKIAotICAgIF9jcmVhdGVTY3JpcHRU
cmVlRWxlbWVudDogZnVuY3Rpb24odWlTb3VyY2VDb2RlKQorICAgIF9nZXRPckNyZWF0ZVByb2pl
Y3ROb2RlOiBmdW5jdGlvbihwcm9qZWN0KQogICAgIHsKLSAgICAgICAgdmFyIHNjcmlwdFRyZWVF
bGVtZW50ID0gbmV3IFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JTb3VyY2VUcmVlRWxlbWVudCh0aGlz
LCB1aVNvdXJjZUNvZGUsICIiKTsKLSAgICAgICAgdGhpcy5fc2NyaXB0VHJlZUVsZW1lbnRzW3Vp
U291cmNlQ29kZS51cmkoKV0gPSBzY3JpcHRUcmVlRWxlbWVudDsKLSAgICAgICAgdGhpcy5fdXBk
YXRlU2NyaXB0VGl0bGUodWlTb3VyY2VDb2RlKTsKLSAgICAgICAgdGhpcy5fYWRkVUlTb3VyY2VD
b2RlTGlzdGVuZXJzKHVpU291cmNlQ29kZSk7Ci0gICAgICAgIHJldHVybiBzY3JpcHRUcmVlRWxl
bWVudDsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2dldFByb2plY3ROb2RlKHByb2plY3QpIHx8IHRo
aXMuX2NyZWF0ZVByb2plY3ROb2RlKHByb2plY3QpOwogICAgIH0sCiAKLSAgICBfcmVtb3ZlU2Ny
aXB0VHJlZUVsZW1lbnQ6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSkKKyAgICBfZ2V0Rm9sZGVyTm9k
ZTogZnVuY3Rpb24ocGFyZW50Tm9kZSwgbmFtZSkKICAgICB7Ci0gICAgICAgIHZhciBzY3JpcHRU
cmVlRWxlbWVudCA9IHRoaXMuX3NjcmlwdFRyZWVFbGVtZW50c1t1aVNvdXJjZUNvZGUudXJpKCld
OwotICAgICAgICBpZiAoIXNjcmlwdFRyZWVFbGVtZW50KQotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICBpZiAoc2NyaXB0VHJlZUVsZW1lbnQucGFyZW50KQotICAgICAgICAgICAgc2NyaXB0
VHJlZUVsZW1lbnQucGFyZW50LnJlbW92ZUNoaWxkKHNjcmlwdFRyZWVFbGVtZW50KTsKLSAgICAg
ICAgZGVsZXRlIHRoaXMuX3NjcmlwdFRyZWVFbGVtZW50c1t1aVNvdXJjZUNvZGUudXJpKCldOwot
ICAgICAgICB0aGlzLl9yZW1vdmVVSVNvdXJjZUNvZGVMaXN0ZW5lcnModWlTb3VyY2VDb2RlKTsK
KyAgICAgICAgcmV0dXJuIHBhcmVudE5vZGUuY2hpbGQobmFtZSk7CiAgICAgfSwKIAotICAgIF91
aVNvdXJjZUNvZGVUaXRsZUNoYW5nZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIF9jcmVhdGVGb2xk
ZXJOb2RlOiBmdW5jdGlvbihwYXJlbnROb2RlLCBuYW1lKQogICAgIHsKLSAgICAgICAgdmFyIHVp
U291cmNlQ29kZSA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0gKi8gKGV2
ZW50LnRhcmdldCk7Ci0gICAgICAgIHRoaXMuX3VwZGF0ZVNjcmlwdFRpdGxlKHVpU291cmNlQ29k
ZSkKKyAgICAgICAgdmFyIGZvbGRlck5vZGUgPSBuZXcgV2ViSW5zcGVjdG9yLk5hdmlnYXRvckZv
bGRlclRyZWVOb2RlKHRoaXMsIG5hbWUsIFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JUcmVlT3V0bGlu
ZS5UeXBlcy5Gb2xkZXIsIG5hbWUpOworICAgICAgICBwYXJlbnROb2RlLmFwcGVuZENoaWxkKGZv
bGRlck5vZGUpOworICAgICAgICByZXR1cm4gZm9sZGVyTm9kZTsKICAgICB9LAogCi0gICAgX3Vp
U291cmNlQ29kZVdvcmtpbmdDb3B5Q2hhbmdlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgX2dldE9y
Q3JlYXRlRm9sZGVyTm9kZTogZnVuY3Rpb24ocGFyZW50Tm9kZSwgbmFtZSkKICAgICB7Ci0gICAg
ICAgIHZhciB1aVNvdXJjZUNvZGUgPSAvKiogQHR5cGUge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNv
ZGV9ICovIChldmVudC50YXJnZXQpOwotICAgICAgICB0aGlzLl91cGRhdGVTY3JpcHRUaXRsZSh1
aVNvdXJjZUNvZGUpCisgICAgICAgIHJldHVybiB0aGlzLl9nZXRGb2xkZXJOb2RlKHBhcmVudE5v
ZGUsIG5hbWUpIHx8IHRoaXMuX2NyZWF0ZUZvbGRlck5vZGUocGFyZW50Tm9kZSwgbmFtZSk7CiAg
ICAgfSwKIAotICAgIF91aVNvdXJjZUNvZGVXb3JraW5nQ29weUNvbW1pdHRlZDogZnVuY3Rpb24o
ZXZlbnQpCisgICAgX2dldFVJU291cmNlQ29kZVBhcmVudE5vZGU6IGZ1bmN0aW9uKHVpU291cmNl
Q29kZSkKICAgICB7Ci0gICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSAvKiogQHR5cGUge1dlYklu
c3BlY3Rvci5VSVNvdXJjZUNvZGV9ICovIChldmVudC50YXJnZXQpOwotICAgICAgICB0aGlzLl91
cGRhdGVTY3JpcHRUaXRsZSh1aVNvdXJjZUNvZGUpCisgICAgICAgIHZhciBwcm9qZWN0Tm9kZSA9
IHRoaXMuX2dldFByb2plY3ROb2RlKHVpU291cmNlQ29kZS5wcm9qZWN0KCkpOworICAgICAgICBp
ZiAoIXByb2plY3ROb2RlKQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIHZhciBw
YXRoID0gdWlTb3VyY2VDb2RlLnBhdGgoKTsKKyAgICAgICAgdmFyIHBhcmVudE5vZGUgPSBwcm9q
ZWN0Tm9kZTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXRoLmxlbmd0aCAtIDE7ICsr
aSkgeworICAgICAgICAgICAgcGFyZW50Tm9kZSA9IHRoaXMuX2dldEZvbGRlck5vZGUocGFyZW50
Tm9kZSwgcGF0aFtpXSk7CisgICAgICAgICAgICBpZiAoIXBhcmVudE5vZGUpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHBhcmVudE5vZGU7
CiAgICAgfSwKIAotICAgIF91aVNvdXJjZUNvZGVGb3JtYXR0ZWRDaGFuZ2VkOiBmdW5jdGlvbihl
dmVudCkKKyAgICBfZ2V0T3JDcmVhdGVVSVNvdXJjZUNvZGVQYXJlbnROb2RlOiBmdW5jdGlvbih1
aVNvdXJjZUNvZGUpCiAgICAgewotICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gLyoqIEB0eXBl
IHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlfSAqLyAoZXZlbnQudGFyZ2V0KTsKLSAgICAgICAg
dGhpcy5fdXBkYXRlU2NyaXB0VGl0bGUodWlTb3VyY2VDb2RlKTsKLSAgICB9LAotCi0gICAgLyoq
Ci0gICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlfSB1aVNvdXJjZUNvZGUK
LSAgICAgKiBAcGFyYW0ge2Jvb2xlYW49fSBpZ25vcmVJc0RpcnR5Ci0gICAgICovCi0gICAgX3Vw
ZGF0ZVNjcmlwdFRpdGxlOiBmdW5jdGlvbih1aVNvdXJjZUNvZGUsIGlnbm9yZUlzRGlydHkpCi0g
ICAgewotICAgICAgICB2YXIgc2NyaXB0VHJlZUVsZW1lbnQgPSB0aGlzLl9nZXRTY3JpcHRUcmVl
RWxlbWVudCh1aVNvdXJjZUNvZGUpOwotICAgICAgICBpZiAoIXNjcmlwdFRyZWVFbGVtZW50KQot
ICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHZhciB0aXRsZVRleHQgPSB1aVNvdXJjZUNv
ZGUubmFtZSgpLnRyaW1FbmQoMTAwKTsKLSAgICAgICAgaWYgKCF0aXRsZVRleHQpCi0gICAgICAg
ICAgICB0aXRsZVRleHQgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIihwcm9ncmFtKSIpOwotICAg
ICAgICBpZiAoIWlnbm9yZUlzRGlydHkgJiYgdWlTb3VyY2VDb2RlLmlzRGlydHkoKSkKLSAgICAg
ICAgICAgIHRpdGxlVGV4dCA9ICIqIiArIHRpdGxlVGV4dDsKLSAgICAgICAgc2NyaXB0VHJlZUVs
ZW1lbnQudGl0bGVUZXh0ID0gdGl0bGVUZXh0OworICAgICAgICB2YXIgcHJvamVjdE5vZGUgPSB0
aGlzLl9nZXRPckNyZWF0ZVByb2plY3ROb2RlKHVpU291cmNlQ29kZS5wcm9qZWN0KCkpOworICAg
ICAgICBpZiAoIXByb2plY3ROb2RlKQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAg
IHZhciBwYXRoID0gdWlTb3VyY2VDb2RlLnBhdGgoKTsKKyAgICAgICAgdmFyIHBhcmVudE5vZGUg
PSBwcm9qZWN0Tm9kZTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXRoLmxlbmd0aCAt
IDE7ICsraSkgeworICAgICAgICAgICAgcGFyZW50Tm9kZSA9IHRoaXMuX2dldE9yQ3JlYXRlRm9s
ZGVyTm9kZShwYXJlbnROb2RlLCBwYXRoW2ldKTsKKyAgICAgICAgICAgIGlmICghcGFyZW50Tm9k
ZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICByZXR1
cm4gcGFyZW50Tm9kZTsKICAgICB9LAogCiAgICAgLyoqCkBAIC0xNTgsMTYgKzE1NywxMyBAQCBX
ZWJJbnNwZWN0b3IuTmF2aWdhdG9yVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgcmV2
ZWFsVUlTb3VyY2VDb2RlOiBmdW5jdGlvbih1aVNvdXJjZUNvZGUpCiAgICAgeworICAgICAgICB2
YXIgbm9kZSA9IHRoaXMuX3VpU291cmNlQ29kZU5vZGVzW3VpU291cmNlQ29kZS51cmkoKV07Cisg
ICAgICAgIGlmICghbm9kZSkKKyAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICBpZiAo
dGhpcy5fc2NyaXB0c1RyZWUuc2VsZWN0ZWRUcmVlRWxlbWVudCkKICAgICAgICAgICAgIHRoaXMu
X3NjcmlwdHNUcmVlLnNlbGVjdGVkVHJlZUVsZW1lbnQuZGVzZWxlY3QoKTsKLQogICAgICAgICB0
aGlzLl9sYXN0U2VsZWN0ZWRVSVNvdXJjZUNvZGUgPSB1aVNvdXJjZUNvZGU7Ci0KLSAgICAgICAg
dmFyIGZvbGRlclRyZWVFbGVtZW50ID0gdGhpcy5nZXRPckNyZWF0ZUZvbGRlclRyZWVFbGVtZW50
KHVpU291cmNlQ29kZSk7Ci0gICAgICAgIGlmICghZm9sZGVyVHJlZUVsZW1lbnQuX3BvcHVsYXRl
ZCAmJiBmb2xkZXJUcmVlRWxlbWVudC5wYXJlbnQpCi0gICAgICAgICAgICBmb2xkZXJUcmVlRWxl
bWVudC5vbnBvcHVsYXRlKCk7Ci0gICAgICAgIHZhciBzY3JpcHRUcmVlRWxlbWVudCA9IHRoaXMu
X2dldE9yQ3JlYXRlU2NyaXB0VHJlZUVsZW1lbnQodWlTb3VyY2VDb2RlKTsKLSAgICAgICAgc2Ny
aXB0VHJlZUVsZW1lbnQucmV2ZWFsQW5kU2VsZWN0KHRydWUpOworICAgICAgICBub2RlLnJldmVh
bCgpOwogICAgIH0sCiAKICAgICAvKioKQEAgLTE4Niw0MiArMTgyLDIxIEBAIFdlYkluc3BlY3Rv
ci5OYXZpZ2F0b3JWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICByZW1vdmVVSVNvdXJj
ZUNvZGU6IGZ1bmN0aW9uKHVpU291cmNlQ29kZSkKICAgICB7Ci0gICAgICAgIHRoaXMuX3JlbW92
ZVNjcmlwdFRyZWVFbGVtZW50KHVpU291cmNlQ29kZSk7Ci0gICAgICAgIHZhciB0cmVlRWxlbWVu
dCA9IHRoaXMuZ2V0T3JDcmVhdGVGb2xkZXJUcmVlRWxlbWVudCh1aVNvdXJjZUNvZGUpOwotICAg
ICAgICB3aGlsZSAodHJlZUVsZW1lbnQpIHsKLSAgICAgICAgICAgIHZhciBwYXJlbnQgPSB0cmVl
RWxlbWVudC5wYXJlbnQ7Ci0gICAgICAgICAgICBpZiAocGFyZW50KSB7Ci0gICAgICAgICAgICAg
ICAgZGVsZXRlIHRoaXMuX2ZvbGRlclRyZWVFbGVtZW50c1t0cmVlRWxlbWVudC5mb2xkZXJJZGVu
dGlmaWVyXTsKLSAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5fZm9sZGVyVHJlZUVsZW1lbnRz
VUlTb3VyY2VDb2Rlc1t0cmVlRWxlbWVudC5mb2xkZXJJZGVudGlmaWVyXTsKLSAgICAgICAgICAg
ICAgICBwYXJlbnQucmVtb3ZlQ2hpbGQodHJlZUVsZW1lbnQpOwotICAgICAgICAgICAgICAgIGlm
IChwYXJlbnQuY2hpbGRyZW4ubGVuZ3RoKQotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIHRyZWVFbGVtZW50ID0gcGFyZW50OworICAgICAgICB2
YXIgcGFyZW50Tm9kZSA9IHRoaXMuX2dldFVJU291cmNlQ29kZVBhcmVudE5vZGUodWlTb3VyY2VD
b2RlKTsKKyAgICAgICAgaWYgKCFwYXJlbnROb2RlKQorICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB2YXIgbm9kZSA9IHRoaXMuX3VpU291cmNlQ29kZU5vZGVzW3VpU291cmNlQ29kZS51cmko
KV07CisgICAgICAgIGlmICghbm9kZSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgcGFy
ZW50Tm9kZS5yZW1vdmVDaGlsZChub2RlKTsKKyAgICAgICAgbm9kZSA9IHBhcmVudE5vZGU7Cisg
ICAgICAgIHdoaWxlIChub2RlKSB7CisgICAgICAgICAgICB2YXIgcGFyZW50Tm9kZSA9IG5vZGUu
cGFyZW50OworICAgICAgICAgICAgaWYgKCFwYXJlbnROb2RlIHx8ICFub2RlLmlzRW1wdHkoKSkK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIHBhcmVudE5vZGUucmVtb3ZlQ2hp
bGQobm9kZSk7CisgICAgICAgICAgICBub2RlID0gcGFyZW50Tm9kZTsKICAgICAgICAgfQotICAg
ICAgICBkZWxldGUgdGhpcy5fdWlTb3VyY2VDb2Rlc1t1aVNvdXJjZUNvZGUudXJpKCldOwotICAg
IH0sCi0KLSAgICAvKioKLSAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9
IHVpU291cmNlQ29kZQotICAgICAqLwotICAgIF9hZGRVSVNvdXJjZUNvZGVMaXN0ZW5lcnM6IGZ1
bmN0aW9uKHVpU291cmNlQ29kZSkKLSAgICB7Ci0gICAgICAgIHVpU291cmNlQ29kZS5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUuRXZlbnRzLlRpdGxlQ2hhbmdlZCwg
dGhpcy5fdWlTb3VyY2VDb2RlVGl0bGVDaGFuZ2VkLCB0aGlzKTsKLSAgICAgICAgdWlTb3VyY2VD
b2RlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5FdmVudHMuV29y
a2luZ0NvcHlDaGFuZ2VkLCB0aGlzLl91aVNvdXJjZUNvZGVXb3JraW5nQ29weUNoYW5nZWQsIHRo
aXMpOwotICAgICAgICB1aVNvdXJjZUNvZGUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
VUlTb3VyY2VDb2RlLkV2ZW50cy5Xb3JraW5nQ29weUNvbW1pdHRlZCwgdGhpcy5fdWlTb3VyY2VD
b2RlV29ya2luZ0NvcHlDb21taXR0ZWQsIHRoaXMpOwotICAgICAgICB1aVNvdXJjZUNvZGUuYWRk
RXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLkV2ZW50cy5Gb3JtYXR0ZWRD
aGFuZ2VkLCB0aGlzLl91aVNvdXJjZUNvZGVGb3JtYXR0ZWRDaGFuZ2VkLCB0aGlzKTsKLSAgICB9
LAotCi0gICAgLyoqCi0gICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlfSB1
aVNvdXJjZUNvZGUKLSAgICAgKi8KLSAgICBfcmVtb3ZlVUlTb3VyY2VDb2RlTGlzdGVuZXJzOiBm
dW5jdGlvbih1aVNvdXJjZUNvZGUpCi0gICAgewotICAgICAgICB1aVNvdXJjZUNvZGUucmVtb3Zl
RXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLkV2ZW50cy5UaXRsZUNoYW5n
ZWQsIHRoaXMuX3VpU291cmNlQ29kZVRpdGxlQ2hhbmdlZCwgdGhpcyk7Ci0gICAgICAgIHVpU291
cmNlQ29kZS5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUuRXZl
bnRzLldvcmtpbmdDb3B5Q2hhbmdlZCwgdGhpcy5fdWlTb3VyY2VDb2RlV29ya2luZ0NvcHlDaGFu
Z2VkLCB0aGlzKTsKLSAgICAgICAgdWlTb3VyY2VDb2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLlVJU291cmNlQ29kZS5FdmVudHMuV29ya2luZ0NvcHlDb21taXR0ZWQsIHRoaXMu
X3VpU291cmNlQ29kZVdvcmtpbmdDb3B5Q29tbWl0dGVkLCB0aGlzKTsKLSAgICAgICAgdWlTb3Vy
Y2VDb2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5FdmVu
dHMuRm9ybWF0dGVkQ2hhbmdlZCwgdGhpcy5fdWlTb3VyY2VDb2RlRm9ybWF0dGVkQ2hhbmdlZCwg
dGhpcyk7CiAgICAgfSwKIAogICAgIF9maWxlUmVuYW1lZDogZnVuY3Rpb24odWlTb3VyY2VDb2Rl
LCBuZXdUaXRsZSkKQEAgLTIzNiwxMzEgKzIxMSwyMSBAQCBXZWJJbnNwZWN0b3IuTmF2aWdhdG9y
Vmlldy5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgcmVuYW1lOiBmdW5jdGlvbih1aVNvdXJj
ZUNvZGUsIGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgdmFyIHNjcmlwdFRyZWVFbGVtZW50ID0g
dGhpcy5fZ2V0U2NyaXB0VHJlZUVsZW1lbnRbdWlTb3VyY2VDb2RlLnVyaSgpXTsKLSAgICAgICAg
aWYgKCFzY3JpcHRUcmVlRWxlbWVudCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAv
LyBUcmVlIG91dGxpbmUgc2hvdWxkIGJlIG1hcmtlZCBhcyBlZGl0ZWQgYXMgd2VsbCBhcyB0aGUg
dHJlZSBlbGVtZW50IHRvIHByZXZlbnQgc2VhcmNoIGZyb20gc3RhcnRpbmcuCi0gICAgICAgIHZh
ciB0cmVlT3V0bGluZUVsZW1lbnQgPSBzY3JpcHRUcmVlRWxlbWVudC50cmVlT3V0bGluZS5lbGVt
ZW50OwotICAgICAgICBXZWJJbnNwZWN0b3IubWFya0JlaW5nRWRpdGVkKHRyZWVPdXRsaW5lRWxl
bWVudCwgdHJ1ZSk7Ci0KLSAgICAgICAgZnVuY3Rpb24gY29tbWl0SGFuZGxlcihlbGVtZW50LCBu
ZXdUaXRsZSwgb2xkVGl0bGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmIChuZXdUaXRsZSAm
JiBuZXdUaXRsZSAhPT0gb2xkVGl0bGUpCi0gICAgICAgICAgICAgICAgdGhpcy5fZmlsZVJlbmFt
ZWQodWlTb3VyY2VDb2RlLCBuZXdUaXRsZSk7Ci0gICAgICAgICAgICBhZnRlckVkaXRpbmcuY2Fs
bCh0aGlzLCB0cnVlKTsKLSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIGNhbmNlbEhhbmRs
ZXIoKQotICAgICAgICB7Ci0gICAgICAgICAgICBhZnRlckVkaXRpbmcuY2FsbCh0aGlzLCBmYWxz
ZSk7Ci0gICAgICAgIH0KLQotICAgICAgICAvKioKLSAgICAgICAgICogQHBhcmFtIHtib29sZWFu
fSBjb21taXR0ZWQKLSAgICAgICAgICovCi0gICAgICAgIGZ1bmN0aW9uIGFmdGVyRWRpdGluZyhj
b21taXR0ZWQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5tYXJrQmVpbmdF
ZGl0ZWQodHJlZU91dGxpbmVFbGVtZW50LCBmYWxzZSk7Ci0gICAgICAgICAgICB0aGlzLl91cGRh
dGVTY3JpcHRUaXRsZSh1aVNvdXJjZUNvZGUpOwotICAgICAgICAgICAgaWYgKGNhbGxiYWNrKQot
ICAgICAgICAgICAgICAgIGNhbGxiYWNrKGNvbW1pdHRlZCk7Ci0gICAgICAgIH0KLQotICAgICAg
ICB2YXIgZWRpdGluZ0NvbmZpZyA9IG5ldyBXZWJJbnNwZWN0b3IuRWRpdGluZ0NvbmZpZyhjb21t
aXRIYW5kbGVyLmJpbmQodGhpcyksIGNhbmNlbEhhbmRsZXIuYmluZCh0aGlzKSk7Ci0gICAgICAg
IHRoaXMuX3VwZGF0ZVNjcmlwdFRpdGxlKHVpU291cmNlQ29kZSwgdHJ1ZSk7Ci0gICAgICAgIFdl
Ykluc3BlY3Rvci5zdGFydEVkaXRpbmcoc2NyaXB0VHJlZUVsZW1lbnQudGl0bGVFbGVtZW50LCBl
ZGl0aW5nQ29uZmlnKTsKLSAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpLnNldEJhc2VBbmRF
eHRlbnQoc2NyaXB0VHJlZUVsZW1lbnQudGl0bGVFbGVtZW50LCAwLCBzY3JpcHRUcmVlRWxlbWVu
dC50aXRsZUVsZW1lbnQsIDEpOworICAgICAgICB2YXIgbm9kZSA9IHRoaXMuX3VpU291cmNlQ29k
ZU5vZGVzW3VpU291cmNlQ29kZS51cmkoKV07CisgICAgICAgIGlmICghbm9kZSkKKyAgICAgICAg
ICAgIHJldHVybiBudWxsOworICAgICAgICBub2RlLnJlbmFtZShjYWxsYmFjayk7CiAgICAgfSwK
IAogICAgIHJlc2V0OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB2YXIgdWlTb3VyY2VDb2Rl
cyA9IHRoaXMuX3NjcmlwdHNUcmVlLnNjcmlwdFRyZWVFbGVtZW50czsKLSAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCB1aVNvdXJjZUNvZGVzLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgdGhp
cy5fcmVtb3ZlVUlTb3VyY2VDb2RlTGlzdGVuZXJzKHVpU291cmNlQ29kZXNbaV0pOworICAgICAg
ICBmb3IgKHZhciB1cmkgaW4gdGhpcy5fdWlTb3VyY2VDb2RlTm9kZXMpCisgICAgICAgICAgICB0
aGlzLl91aVNvdXJjZUNvZGVOb2Rlc1t1cmldLmRpc3Bvc2UoKTsKIAogICAgICAgICB0aGlzLl9z
Y3JpcHRzVHJlZS5zdG9wU2VhcmNoKCk7CiAgICAgICAgIHRoaXMuX3NjcmlwdHNUcmVlLnJlbW92
ZUNoaWxkcmVuKCk7Ci0gICAgICAgIHRoaXMuX2ZvbGRlclRyZWVFbGVtZW50cyA9IHt9OwotICAg
ICAgICB0aGlzLl9mb2xkZXJUcmVlRWxlbWVudHNVSVNvdXJjZUNvZGVzID0ge307Ci0gICAgICAg
IHRoaXMuX3VpU291cmNlQ29kZXMgPSB7fTsKLSAgICAgICAgdGhpcy5fc2NyaXB0VHJlZUVsZW1l
bnRzID0ge307Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEBwYXJhbSB7c3RyaW5nfSBmb2xk
ZXJJZGVudGlmaWVyCi0gICAgICogQHBhcmFtIHtzdHJpbmd9IGRvbWFpbgotICAgICAqIEBwYXJh
bSB7c3RyaW5nfSBmb2xkZXJOYW1lCi0gICAgICovCi0gICAgY3JlYXRlRm9sZGVyVHJlZUVsZW1l
bnQ6IGZ1bmN0aW9uKHBhcmVudEZvbGRlckVsZW1lbnQsIGZvbGRlcklkZW50aWZpZXIsIGRvbWFp
biwgZm9sZGVyTmFtZSkKLSAgICB7Ci0gICAgICAgIHZhciBmb2xkZXJUcmVlRWxlbWVudCA9IG5l
dyBXZWJJbnNwZWN0b3IuTmF2aWdhdG9yRm9sZGVyVHJlZUVsZW1lbnQodGhpcywgZm9sZGVySWRl
bnRpZmllciwgZG9tYWluLCBmb2xkZXJOYW1lKTsKLSAgICAgICAgdGhpcy5fZm9sZGVyVHJlZUVs
ZW1lbnRzW2ZvbGRlcklkZW50aWZpZXJdID0gZm9sZGVyVHJlZUVsZW1lbnQ7Ci0gICAgICAgIHRo
aXMuX2ZvbGRlclRyZWVFbGVtZW50c1VJU291cmNlQ29kZXNbZm9sZGVySWRlbnRpZmllcl0gPSBb
XTsKLSAgICAgICAgcGFyZW50Rm9sZGVyRWxlbWVudC5hcHBlbmRDaGlsZChmb2xkZXJUcmVlRWxl
bWVudCk7Ci0gICAgICAgIHJldHVybiBmb2xkZXJUcmVlRWxlbWVudDsKLSAgICB9LAotCi0gICAg
LyoqCi0gICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuTmF2aWdhdG9yRm9sZGVyVHJlZUVsZW1l
bnR9IGZvbGRlclRyZWVFbGVtZW50Ci0gICAgICovCi0gICAgX3BvcHVsYXRlRm9sZGVyVHJlZUVs
ZW1lbnQ6IGZ1bmN0aW9uKGZvbGRlclRyZWVFbGVtZW50KQotICAgIHsKLSAgICAgICAgaWYgKGZv
bGRlclRyZWVFbGVtZW50Ll9wb3B1bGF0ZWQpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IGZvbGRlclRyZWVFbGVtZW50Ll9wb3B1bGF0ZWQgPSB0cnVlOwotICAgICAgICB2YXIgdWlTb3Vy
Y2VDb2RlcyA9IHRoaXMuX2ZvbGRlclRyZWVFbGVtZW50c1VJU291cmNlQ29kZXNbZm9sZGVyVHJl
ZUVsZW1lbnQuZm9sZGVySWRlbnRpZmllcl07Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
dWlTb3VyY2VDb2Rlcy5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgIHRoaXMuX2FkZFNjcmlwdFRy
ZWVFbGVtZW50KGZvbGRlclRyZWVFbGVtZW50LCB1aVNvdXJjZUNvZGVzW2ldKTsKLSAgICAgICAg
ZGVsZXRlIHRoaXMuX2ZvbGRlclRyZWVFbGVtZW50c1VJU291cmNlQ29kZXNbZm9sZGVyVHJlZUVs
ZW1lbnQuZm9sZGVySWRlbnRpZmllcl07Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEBwYXJh
bSB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0gdWlTb3VyY2VDb2RlCi0gICAgICovCi0gICAg
Z2V0T3JDcmVhdGVGb2xkZXJUcmVlRWxlbWVudDogZnVuY3Rpb24odWlTb3VyY2VDb2RlKQotICAg
IHsKLSAgICAgICAgdmFyIGZvbGRlcnMgPSB1aVNvdXJjZUNvZGUucGF0aCgpLnNsaWNlKCk7Ci0g
ICAgICAgIGZvbGRlcnMucG9wKCk7Ci0gICAgICAgIHJldHVybiB0aGlzLl9nZXRPckNyZWF0ZUZv
bGRlclRyZWVFbGVtZW50KHVpU291cmNlQ29kZS5wcm9qZWN0KCkuZGlzcGxheU5hbWUoKSwgZm9s
ZGVycy5qb2luKCIvIikpOwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBAcGFyYW0ge3N0cmlu
Z30gZG9tYWluCi0gICAgICogQHBhcmFtIHtzdHJpbmd9IGZvbGRlck5hbWUKLSAgICAgKi8KLSAg
ICBfZ2V0T3JDcmVhdGVGb2xkZXJUcmVlRWxlbWVudDogZnVuY3Rpb24oZG9tYWluLCBmb2xkZXJO
YW1lKQotICAgIHsKLSAgICAgICAgdmFyIGZvbGRlcklkZW50aWZpZXIgPSBkb21haW4gKyAiLyIg
KyBmb2xkZXJOYW1lOwotICAgICAgICAKLSAgICAgICAgaWYgKHRoaXMuX2ZvbGRlclRyZWVFbGVt
ZW50c1tmb2xkZXJJZGVudGlmaWVyXSkKLSAgICAgICAgICAgIHJldHVybiB0aGlzLl9mb2xkZXJU
cmVlRWxlbWVudHNbZm9sZGVySWRlbnRpZmllcl07Ci0KLSAgICAgICAgaWYgKCFkb21haW4gJiYg
IWZvbGRlck5hbWUpCi0gICAgICAgICAgICByZXR1cm4gdGhpcy5fc2NyaXB0c1RyZWU7Ci0KLSAg
ICAgICAgdmFyIHBhcmVudEZvbGRlckVsZW1lbnQ7Ci0gICAgICAgIGlmICghZm9sZGVyTmFtZSkK
LSAgICAgICAgICAgIHBhcmVudEZvbGRlckVsZW1lbnQgPSB0aGlzLl9zY3JpcHRzVHJlZTsKLSAg
ICAgICAgZWxzZQotICAgICAgICAgICAgcGFyZW50Rm9sZGVyRWxlbWVudCA9IHRoaXMuX2dldE9y
Q3JlYXRlRm9sZGVyVHJlZUVsZW1lbnQoZG9tYWluLCAiIik7Ci0gICAgICAgIAotICAgICAgICBy
ZXR1cm4gdGhpcy5jcmVhdGVGb2xkZXJUcmVlRWxlbWVudChwYXJlbnRGb2xkZXJFbGVtZW50LCBm
b2xkZXJJZGVudGlmaWVyLCBkb21haW4sIGZvbGRlck5hbWUpOwotICAgIH0sCi0KLSAgICBfYWRk
U2NyaXB0VHJlZUVsZW1lbnQ6IGZ1bmN0aW9uKGZvbGRlclRyZWVFbGVtZW50LCB1aVNvdXJjZUNv
ZGUpCi0gICAgewotICAgICAgICB2YXIgc2NyaXB0VHJlZUVsZW1lbnQgPSB0aGlzLl9nZXRPckNy
ZWF0ZVNjcmlwdFRyZWVFbGVtZW50KHVpU291cmNlQ29kZSk7Ci0gICAgICAgIGZvbGRlclRyZWVF
bGVtZW50LmFwcGVuZENoaWxkKHNjcmlwdFRyZWVFbGVtZW50KTsKLSAgICB9LAotCi0gICAgX2Fk
b3B0VUlTb3VyY2VDb2RlOiBmdW5jdGlvbihmb2xkZXJUcmVlRWxlbWVudCwgdWlTb3VyY2VDb2Rl
KQotICAgIHsKLSAgICAgICAgaWYgKGZvbGRlclRyZWVFbGVtZW50Ll9wb3B1bGF0ZWQgfHwgIWZv
bGRlclRyZWVFbGVtZW50LnBhcmVudCkgewotICAgICAgICAgICAgdGhpcy5fYWRkU2NyaXB0VHJl
ZUVsZW1lbnQoZm9sZGVyVHJlZUVsZW1lbnQsIHVpU291cmNlQ29kZSk7Ci0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgdGhpcy5fZm9sZGVyVHJlZUVsZW1lbnRzVUlTb3Vy
Y2VDb2Rlc1tmb2xkZXJUcmVlRWxlbWVudC5mb2xkZXJJZGVudGlmaWVyXS5wdXNoKHVpU291cmNl
Q29kZSk7CisgICAgICAgIHRoaXMuX3VpU291cmNlQ29kZU5vZGVzID0ge307CisgICAgICAgIHRo
aXMuX3Jvb3ROb2RlLnJlc2V0KCk7CiAgICAgfSwKIAogICAgIGhhbmRsZUNvbnRleHRNZW51OiBm
dW5jdGlvbihldmVudCwgdWlTb3VyY2VDb2RlKQpAQCAtMzkyLDIwICsyNTcsMzAgQEAgV2ViSW5z
cGVjdG9yLk5hdmlnYXRvclRyZWVPdXRsaW5lID0gZnVuY3Rpb24odHJlZVNlYXJjaEJveEVsZW1l
bnQsIGVsZW1lbnQpCiAgICAgdGhpcy5zZWFyY2hJbnB1dEVsZW1lbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJpbnB1dCIpOwogfQogCitXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVHJlZU91dGxp
bmUuVHlwZXMgPSB7CisgICAgUm9vdDogIlJvb3QiLAorICAgIERvbWFpbjogIkRvbWFpbiIsCisg
ICAgRm9sZGVyOiAiRm9sZGVyIiwKKyAgICBVSVNvdXJjZUNvZGU6ICJVSVNvdXJjZUNvZGUiLAor
ICAgIEZpbGVTeXN0ZW06ICJGaWxlU3lzdGVtIgorfQorCiBXZWJJbnNwZWN0b3IuTmF2aWdhdG9y
VHJlZU91dGxpbmUuX3RyZWVFbGVtZW50c0NvbXBhcmUgPSBmdW5jdGlvbiBjb21wYXJlKHRyZWVF
bGVtZW50MSwgdHJlZUVsZW1lbnQyKQogewogICAgIC8vIEluc2VydCBpbiB0aGUgYWxwaGFiZXRp
Y2FsIG9yZGVyLCBmaXJzdCBkb21haW5zLCB0aGVuIGZvbGRlcnMsIHRoZW4gc2NyaXB0cy4KICAg
ICBmdW5jdGlvbiB0eXBlV2VpZ2h0KHRyZWVFbGVtZW50KQogICAgIHsKLSAgICAgICAgaWYgKHRy
ZWVFbGVtZW50IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLk5hdmlnYXRvckZvbGRlclRyZWVFbGVt
ZW50KSB7Ci0gICAgICAgICAgICBpZiAodHJlZUVsZW1lbnQuaXNEb21haW4pIHsKLSAgICAgICAg
ICAgICAgICBpZiAodHJlZUVsZW1lbnQudGl0bGVUZXh0ID09PSBXZWJJbnNwZWN0b3IuaW5zcGVj
dGVkUGFnZURvbWFpbikKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuIDI7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gMzsKKyAg
ICAgICAgdmFyIHR5cGUgPSB0cmVlRWxlbWVudC50eXBlKCk7CisgICAgICAgIGlmICh0eXBlID09
PSBXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVHJlZU91dGxpbmUuVHlwZXMuRG9tYWluKSB7CisgICAg
ICAgICAgICBpZiAodHJlZUVsZW1lbnQudGl0bGVUZXh0ID09PSBXZWJJbnNwZWN0b3IuaW5zcGVj
dGVkUGFnZURvbWFpbikKKyAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgIHJl
dHVybiAyOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiA0OworICAgICAgICBpZiAodHlwZSA9
PT0gV2ViSW5zcGVjdG9yLk5hdmlnYXRvclRyZWVPdXRsaW5lLlR5cGVzLkZpbGVTeXN0ZW0pCisg
ICAgICAgICAgICByZXR1cm4gMzsKKyAgICAgICAgaWYgKHR5cGUgPT09IFdlYkluc3BlY3Rvci5O
YXZpZ2F0b3JUcmVlT3V0bGluZS5UeXBlcy5Gb2xkZXIpCisgICAgICAgICAgICByZXR1cm4gNDsK
KyAgICAgICAgcmV0dXJuIDU7CiAgICAgfQogCiAgICAgdmFyIHR5cGVXZWlnaHQxID0gdHlwZVdl
aWdodCh0cmVlRWxlbWVudDEpOwpAQCAtNDU4LDEzICszMzMsMTUgQEAgV2ViSW5zcGVjdG9yLk5h
dmlnYXRvclRyZWVPdXRsaW5lLnByb3RvdHlwZSA9IHsKIC8qKgogICogQGNvbnN0cnVjdG9yCiAg
KiBAZXh0ZW5kcyB7VHJlZUVsZW1lbnR9CisgKiBAcGFyYW0ge3N0cmluZ30gdHlwZQogICogQHBh
cmFtIHtzdHJpbmd9IHRpdGxlCiAgKiBAcGFyYW0ge0FycmF5LjxzdHJpbmc+fSBpY29uQ2xhc3Nl
cwogICogQHBhcmFtIHtib29sZWFufSBoYXNDaGlsZHJlbgogICogQHBhcmFtIHtib29sZWFuPX0g
bm9JY29uCiAgKi8KLVdlYkluc3BlY3Rvci5CYXNlTmF2aWdhdG9yVHJlZUVsZW1lbnQgPSBmdW5j
dGlvbih0aXRsZSwgaWNvbkNsYXNzZXMsIGhhc0NoaWxkcmVuLCBub0ljb24pCitXZWJJbnNwZWN0
b3IuQmFzZU5hdmlnYXRvclRyZWVFbGVtZW50ID0gZnVuY3Rpb24odHlwZSwgdGl0bGUsIGljb25D
bGFzc2VzLCBoYXNDaGlsZHJlbiwgbm9JY29uKQogeworICAgIHRoaXMuX3R5cGUgPSB0eXBlOwog
ICAgIFRyZWVFbGVtZW50LmNhbGwodGhpcywgIiIsIG51bGwsIGhhc0NoaWxkcmVuKTsKICAgICB0
aGlzLl90aXRsZVRleHQgPSB0aXRsZTsKICAgICB0aGlzLl9pY29uQ2xhc3NlcyA9IGljb25DbGFz
c2VzOwpAQCAtNTI5LDU2ICs0MDYsMzkgQEAgV2ViSW5zcGVjdG9yLkJhc2VOYXZpZ2F0b3JUcmVl
RWxlbWVudC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiB0aGlzLnRpdGxlVGV4dC5tYXRj
aChuZXcgUmVnRXhwKCJeIiArIHNlYXJjaFRleHQuZXNjYXBlRm9yUmVnRXhwKCksICJpIikpOwog
ICAgIH0sCiAKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtzdHJpbmd9CisgICAgICovCisgICAg
dHlwZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3R5cGU7CisgICAg
fSwKKwogICAgIF9fcHJvdG9fXzogVHJlZUVsZW1lbnQucHJvdG90eXBlCiB9CiAKIC8qKgogICog
QGNvbnN0cnVjdG9yCiAgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLkJhc2VOYXZpZ2F0b3JUcmVl
RWxlbWVudH0KLSAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLk5hdmlnYXRvclZpZXd9IG5hdmlnYXRv
clZpZXcKLSAqIEBwYXJhbSB7c3RyaW5nfSBmb2xkZXJJZGVudGlmaWVyCi0gKiBAcGFyYW0ge3N0
cmluZ30gZG9tYWluCi0gKiBAcGFyYW0ge3N0cmluZ30gZm9sZGVyTmFtZQorICogQHBhcmFtIHtz
dHJpbmd9IHR5cGUKKyAqIEBwYXJhbSB7c3RyaW5nfSB0aXRsZQogICovCi1XZWJJbnNwZWN0b3Iu
TmF2aWdhdG9yRm9sZGVyVHJlZUVsZW1lbnQgPSBmdW5jdGlvbihuYXZpZ2F0b3JWaWV3LCBmb2xk
ZXJJZGVudGlmaWVyLCBkb21haW4sIGZvbGRlck5hbWUpCitXZWJJbnNwZWN0b3IuTmF2aWdhdG9y
Rm9sZGVyVHJlZUVsZW1lbnQgPSBmdW5jdGlvbih0eXBlLCB0aXRsZSkKIHsKLSAgICB0aGlzLl9u
YXZpZ2F0b3JWaWV3ID0gbmF2aWdhdG9yVmlldzsKLSAgICB0aGlzLl9mb2xkZXJJZGVudGlmaWVy
ID0gZm9sZGVySWRlbnRpZmllcjsKLSAgICB0aGlzLl9mb2xkZXJOYW1lID0gZm9sZGVyTmFtZTsK
LSAgICAKLSAgICB2YXIgaWNvbkNsYXNzID0gdGhpcy5pc0RvbWFpbiA/ICJuYXZpZ2F0b3ItZG9t
YWluLXRyZWUtaXRlbSIgOiAibmF2aWdhdG9yLWZvbGRlci10cmVlLWl0ZW0iOwotICAgIHZhciB0
aXRsZSA9IHRoaXMuaXNEb21haW4gPyBkb21haW4gOiBmb2xkZXJOYW1lOwotCi0gICAgV2ViSW5z
cGVjdG9yLkJhc2VOYXZpZ2F0b3JUcmVlRWxlbWVudC5jYWxsKHRoaXMsIHRpdGxlLCBbaWNvbkNs
YXNzXSwgdHJ1ZSk7Ci0gICAgdGhpcy50b29sdGlwID0gZm9sZGVyTmFtZTsKKyAgICB2YXIgaWNv
bkNsYXNzID0gV2ViSW5zcGVjdG9yLk5hdmlnYXRvclZpZXcuaWNvbkNsYXNzRm9yVHlwZSh0eXBl
KTsKKyAgICBXZWJJbnNwZWN0b3IuQmFzZU5hdmlnYXRvclRyZWVFbGVtZW50LmNhbGwodGhpcywg
dHlwZSwgdGl0bGUsIFtpY29uQ2xhc3NdLCB0cnVlKTsKIH0KIAogV2ViSW5zcGVjdG9yLk5hdmln
YXRvckZvbGRlclRyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsKLSAgICAvKioKLSAgICAgKiBAcmV0
dXJuIHtzdHJpbmd9Ci0gICAgICovCi0gICAgZ2V0IGZvbGRlcklkZW50aWZpZXIoKQotICAgIHsK
LSAgICAgICAgcmV0dXJuIHRoaXMuX2ZvbGRlcklkZW50aWZpZXI7Ci0gICAgfSwKLQotICAgIC8q
KgotICAgICAqIEByZXR1cm4ge2Jvb2xlYW59Ci0gICAgICovCi0gICAgZ2V0IGlzRG9tYWluKCkK
LSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9mb2xkZXJOYW1lID09PSAiIjsKLSAgICB9LAot
ICAgIAogICAgIG9ucG9wdWxhdGU6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHRoaXMuX25h
dmlnYXRvclZpZXcuX3BvcHVsYXRlRm9sZGVyVHJlZUVsZW1lbnQodGhpcyk7CisgICAgICAgIHRo
aXMuX25vZGUucG9wdWxhdGUoKTsKICAgICB9LAogCiAgICAgb25hdHRhY2g6IGZ1bmN0aW9uKCkK
ICAgICB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5CYXNlTmF2aWdhdG9yVHJlZUVsZW1lbnQucHJv
dG90eXBlLm9uYXR0YWNoLmNhbGwodGhpcyk7Ci0gICAgICAgIGlmICh0aGlzLmlzRG9tYWluICYm
IHRoaXMudGl0bGVUZXh0ID09PSBXZWJJbnNwZWN0b3IuaW5zcGVjdGVkUGFnZURvbWFpbikKKyAg
ICAgICAgaWYgKHRoaXMudHlwZSgpID09PSBXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVHJlZU91dGxp
bmUuVHlwZXMuRG9tYWluICYmIHRoaXMudGl0bGVUZXh0ID09PSBXZWJJbnNwZWN0b3IuaW5zcGVj
dGVkUGFnZURvbWFpbikKICAgICAgICAgICAgIHRoaXMuZXhwYW5kKCk7CiAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgIHRoaXMuY29sbGFwc2UoKTsKQEAgLTU5Niw3ICs0NTYsNyBAQCBXZWJJbnNw
ZWN0b3IuTmF2aWdhdG9yRm9sZGVyVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICovCiBXZWJJ
bnNwZWN0b3IuTmF2aWdhdG9yU291cmNlVHJlZUVsZW1lbnQgPSBmdW5jdGlvbihuYXZpZ2F0b3JW
aWV3LCB1aVNvdXJjZUNvZGUsIHRpdGxlKQogewotICAgIFdlYkluc3BlY3Rvci5CYXNlTmF2aWdh
dG9yVHJlZUVsZW1lbnQuY2FsbCh0aGlzLCB0aXRsZSwgWyJuYXZpZ2F0b3ItIiArIHVpU291cmNl
Q29kZS5jb250ZW50VHlwZSgpLm5hbWUoKSArICItdHJlZS1pdGVtIl0sIGZhbHNlKTsKKyAgICBX
ZWJJbnNwZWN0b3IuQmFzZU5hdmlnYXRvclRyZWVFbGVtZW50LmNhbGwodGhpcywgV2ViSW5zcGVj
dG9yLk5hdmlnYXRvclRyZWVPdXRsaW5lLlR5cGVzLlVJU291cmNlQ29kZSwgdGl0bGUsIFsibmF2
aWdhdG9yLSIgKyB1aVNvdXJjZUNvZGUuY29udGVudFR5cGUoKS5uYW1lKCkgKyAiLXRyZWUtaXRl
bSJdLCBmYWxzZSk7CiAgICAgdGhpcy5fbmF2aWdhdG9yVmlldyA9IG5hdmlnYXRvclZpZXc7CiAg
ICAgdGhpcy5fdWlTb3VyY2VDb2RlID0gdWlTb3VyY2VDb2RlOwogICAgIHRoaXMudG9vbHRpcCA9
IHVpU291cmNlQ29kZS5vcmlnaW5VUkwoKTsKQEAgLTY4MiwzICs1NDIsNDM0IEBAIFdlYkluc3Bl
Y3Rvci5OYXZpZ2F0b3JTb3VyY2VUcmVlRWxlbWVudC5wcm90b3R5cGUgPSB7CiAKICAgICBfX3By
b3RvX186IFdlYkluc3BlY3Rvci5CYXNlTmF2aWdhdG9yVHJlZUVsZW1lbnQucHJvdG90eXBlCiB9
CisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBAcGFyYW0ge3N0cmluZ30gaWQKKyAqLworV2Vi
SW5zcGVjdG9yLk5hdmlnYXRvclRyZWVOb2RlID0gZnVuY3Rpb24oaWQpCit7CisgICAgdGhpcy5p
ZCA9IGlkOworICAgIHRoaXMuX2NoaWxkcmVuID0ge307Cit9CisKK1dlYkluc3BlY3Rvci5OYXZp
Z2F0b3JUcmVlTm9kZS5wcm90b3R5cGUgPSB7CisgICAgLyoqCisgICAgICogQHJldHVybiB7VHJl
ZUVsZW1lbnR9CisgICAgICovCisgICAgdHJlZUVsZW1lbnQ6IGZ1bmN0aW9uKCkgeyB9LAorCisg
ICAgZGlzcG9zZTogZnVuY3Rpb24oKSB7IH0sCisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHti
b29sZWFufQorICAgICAqLworICAgIGlzUm9vdDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtib29sZWFu
fQorICAgICAqLworICAgIGhhc0NoaWxkcmVuOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICB9LAorCisgICAgcG9wdWxhdGU6IGZ1bmN0aW9uKCkKKyAgICB7Cisg
ICAgICAgIGlmICh0aGlzLmlzUG9wdWxhdGVkKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIGlmICh0aGlzLnBhcmVudCkKKyAgICAgICAgICAgIHRoaXMucGFyZW50LnBvcHVsYXRlKCk7
CisgICAgICAgIHRoaXMuX3BvcHVsYXRlZCA9IHRydWU7CisgICAgICAgIHRoaXMud2FzUG9wdWxh
dGVkKCk7CisgICAgfSwKKworICAgIHdhc1BvcHVsYXRlZDogZnVuY3Rpb24oKQorICAgIHsKKyAg
ICAgICAgZm9yICh2YXIgaWQgaW4gdGhpcy5fY2hpbGRyZW4pCisgICAgICAgICAgICB0aGlzLnRy
ZWVFbGVtZW50KCkuYXBwZW5kQ2hpbGQodGhpcy5fY2hpbGRyZW5baWRdLnRyZWVFbGVtZW50KCkp
OworICAgIH0sCisKKyAgICBkaWRBZGRDaGlsZDogZnVuY3Rpb24obm9kZSkKKyAgICB7CisgICAg
ICAgIGlmICh0aGlzLmlzUG9wdWxhdGVkKCkpCisgICAgICAgICAgICB0aGlzLnRyZWVFbGVtZW50
KCkuYXBwZW5kQ2hpbGQobm9kZS50cmVlRWxlbWVudCgpKTsKKyAgICB9LAorCisgICAgd2lsbFJl
bW92ZUNoaWxkOiBmdW5jdGlvbihub2RlKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuaXNQb3B1
bGF0ZWQoKSkKKyAgICAgICAgICAgIHRoaXMudHJlZUVsZW1lbnQoKS5yZW1vdmVDaGlsZChub2Rl
LnRyZWVFbGVtZW50KCkpOworICAgIH0sCisKKyAgICBpc1BvcHVsYXRlZDogZnVuY3Rpb24oKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3BvcHVsYXRlZDsKKyAgICB9LAorCisgICAgaXNF
bXB0eTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuY2hpbGRyZW4oKS5s
ZW5ndGggPT09IDA7CisgICAgfSwKKworICAgIGNoaWxkOiBmdW5jdGlvbihpZCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiB0aGlzLl9jaGlsZHJlbltpZF07CisgICAgfSwKKworICAgIGNoaWxkcmVu
OiBmdW5jdGlvbihpZCkKKyAgICB7CisgICAgICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMu
X2NoaWxkcmVuKTsKKyAgICB9LAorCisgICAgYXBwZW5kQ2hpbGQ6IGZ1bmN0aW9uKG5vZGUpCisg
ICAgeworICAgICAgICB0aGlzLl9jaGlsZHJlbltub2RlLmlkXSA9IG5vZGU7CisgICAgICAgIG5v
ZGUucGFyZW50ID0gdGhpczsKKyAgICAgICAgdGhpcy5kaWRBZGRDaGlsZChub2RlKTsKKyAgICB9
LAorCisgICAgcmVtb3ZlQ2hpbGQ6IGZ1bmN0aW9uKG5vZGUpCisgICAgeworICAgICAgICB0aGlz
LndpbGxSZW1vdmVDaGlsZChub2RlKTsKKyAgICAgICAgZGVsZXRlIHRoaXMuX2NoaWxkcmVuW25v
ZGUuaWRdOworICAgICAgICBkZWxldGUgbm9kZS5wYXJlbnQ7CisgICAgICAgIG5vZGUuZGlzcG9z
ZSgpOworICAgIH0sCisKKyAgICByZXNldDogZnVuY3Rpb24odWlTb3VyY2VDb2RlKQorICAgIHsK
KyAgICAgICAgdGhpcy5fY2hpbGRyZW4gPSB7fTsKKyAgICB9Cit9CisKKy8qKgorICogQGNvbnN0
cnVjdG9yCisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLk5hdmlnYXRvclRyZWVOb2RlfQorICog
QHBhcmFtIHtXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVmlld30gbmF2aWdhdG9yVmlldworICovCitX
ZWJJbnNwZWN0b3IuTmF2aWdhdG9yUm9vdFRyZWVOb2RlID0gZnVuY3Rpb24obmF2aWdhdG9yVmll
dykKK3sKKyAgICBXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVHJlZU5vZGUuY2FsbCh0aGlzLCAiIik7
CisgICAgdGhpcy5fbmF2aWdhdG9yVmlldyA9IG5hdmlnYXRvclZpZXc7Cit9CisKK1dlYkluc3Bl
Y3Rvci5OYXZpZ2F0b3JSb290VHJlZU5vZGUucHJvdG90eXBlID0geworICAgIC8qKgorICAgICAq
IEByZXR1cm4ge2Jvb2xlYW59CisgICAgICovCisgICAgaXNSb290OiBmdW5jdGlvbigpCisgICAg
eworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHJldHVy
biB7VHJlZUVsZW1lbnR9CisgICAgICovCisgICAgdHJlZUVsZW1lbnQ6IGZ1bmN0aW9uKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiB0aGlzLl9uYXZpZ2F0b3JWaWV3Ll9zY3JpcHRzVHJlZTsKKyAg
ICB9LAorCisgICAgd2FzUG9wdWxhdGVkOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBmb3Ig
KHZhciBpZCBpbiB0aGlzLl9jaGlsZHJlbikKKyAgICAgICAgICAgIHRoaXMudHJlZUVsZW1lbnQo
KS5hcHBlbmRDaGlsZCh0aGlzLl9jaGlsZHJlbltpZF0udHJlZUVsZW1lbnQoKSk7CisgICAgfSwK
KworICAgIGRpZEFkZENoaWxkOiBmdW5jdGlvbihub2RlKQorICAgIHsKKyAgICAgICAgaWYgKHRo
aXMuaXNQb3B1bGF0ZWQoKSkKKyAgICAgICAgICAgIHRoaXMudHJlZUVsZW1lbnQoKS5hcHBlbmRD
aGlsZChub2RlLnRyZWVFbGVtZW50KCkpOworICAgIH0sCisKKyAgICB3aWxsUmVtb3ZlQ2hpbGQ6
IGZ1bmN0aW9uKG5vZGUpCisgICAgeworICAgICAgICBpZiAodGhpcy5pc1BvcHVsYXRlZCgpKQor
ICAgICAgICAgICAgdGhpcy50cmVlRWxlbWVudCgpLnJlbW92ZUNoaWxkKG5vZGUudHJlZUVsZW1l
bnQoKSk7CisgICAgfSwKKworICAgIF9fcHJvdG9fXzogV2ViSW5zcGVjdG9yLk5hdmlnYXRvclRy
ZWVOb2RlLnByb3RvdHlwZQorfQorCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGV4dGVuZHMg
e1dlYkluc3BlY3Rvci5OYXZpZ2F0b3JUcmVlTm9kZX0KKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9y
Lk5hdmlnYXRvclZpZXd9IG5hdmlnYXRvclZpZXcKKyAqIEBwYXJhbSB7c3RyaW5nfSBpZAorICog
QHBhcmFtIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlfSB1aVNvdXJjZUNvZGUKKyAqLworV2Vi
SW5zcGVjdG9yLk5hdmlnYXRvclVJU291cmNlQ29kZVRyZWVOb2RlID0gZnVuY3Rpb24obmF2aWdh
dG9yVmlldywgdWlTb3VyY2VDb2RlKQoreworICAgIFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JUcmVl
Tm9kZS5jYWxsKHRoaXMsIHVpU291cmNlQ29kZS5uYW1lKCkpOworICAgIHRoaXMuX25hdmlnYXRv
clZpZXcgPSBuYXZpZ2F0b3JWaWV3OworICAgIHRoaXMuX3VpU291cmNlQ29kZSA9IHVpU291cmNl
Q29kZTsKK30KKworV2ViSW5zcGVjdG9yLk5hdmlnYXRvclVJU291cmNlQ29kZVRyZWVOb2RlLnBy
b3RvdHlwZSA9IHsKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtUcmVlRWxlbWVudH0KKyAgICAg
Ki8KKyAgICB0cmVlRWxlbWVudDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMu
X3RyZWVFbGVtZW50KQorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3RyZWVFbGVtZW50OworCisg
ICAgICAgIHRoaXMuX3RyZWVFbGVtZW50ID0gbmV3IFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JTb3Vy
Y2VUcmVlRWxlbWVudCh0aGlzLl9uYXZpZ2F0b3JWaWV3LCB0aGlzLl91aVNvdXJjZUNvZGUsICIi
KTsKKyAgICAgICAgdGhpcy51cGRhdGVUaXRsZSgpOworCisgICAgICAgIHRoaXMuX3VpU291cmNl
Q29kZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUuRXZlbnRzLlRp
dGxlQ2hhbmdlZCwgdGhpcy5fdGl0bGVDaGFuZ2VkLCB0aGlzKTsKKyAgICAgICAgdGhpcy5fdWlT
b3VyY2VDb2RlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5FdmVu
dHMuV29ya2luZ0NvcHlDaGFuZ2VkLCB0aGlzLl93b3JraW5nQ29weUNoYW5nZWQsIHRoaXMpOwor
ICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
VUlTb3VyY2VDb2RlLkV2ZW50cy5Xb3JraW5nQ29weUNvbW1pdHRlZCwgdGhpcy5fd29ya2luZ0Nv
cHlDb21taXR0ZWQsIHRoaXMpOworICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGUuYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLkV2ZW50cy5Gb3JtYXR0ZWRDaGFuZ2Vk
LCB0aGlzLl9mb3JtYXR0ZWRDaGFuZ2VkLCB0aGlzKTsKKworICAgICAgICByZXR1cm4gdGhpcy5f
dHJlZUVsZW1lbnQ7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7Ym9vbGVhbj19
IGlnbm9yZUlzRGlydHkKKyAgICAgKi8KKyAgICB1cGRhdGVUaXRsZTogZnVuY3Rpb24oaWdub3Jl
SXNEaXJ0eSkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5fdHJlZUVsZW1lbnQpCisgICAgICAg
ICAgICByZXR1cm47CisKKyAgICAgICAgdmFyIHRpdGxlVGV4dCA9IHRoaXMuX3VpU291cmNlQ29k
ZS5uYW1lKCkudHJpbUVuZCgxMDApOworICAgICAgICBpZiAoIXRpdGxlVGV4dCkKKyAgICAgICAg
ICAgIHRpdGxlVGV4dCA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiKHByb2dyYW0pIik7CisgICAg
ICAgIGlmICghaWdub3JlSXNEaXJ0eSAmJiB0aGlzLl91aVNvdXJjZUNvZGUuaXNEaXJ0eSgpKQor
ICAgICAgICAgICAgdGl0bGVUZXh0ID0gIioiICsgdGl0bGVUZXh0OworICAgICAgICB0aGlzLl90
cmVlRWxlbWVudC50aXRsZVRleHQgPSB0aXRsZVRleHQ7CisgICAgfSwKKworICAgIC8qKgorICAg
ICAqIEByZXR1cm4ge2Jvb2xlYW59CisgICAgICovCisgICAgaGFzQ2hpbGRyZW46IGZ1bmN0aW9u
KCkKKyAgICB7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9LAorCisgICAgZGlzcG9zZTog
ZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl90cmVlRWxlbWVudCkKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgdGhpcy5fdWlTb3VyY2VDb2RlLnJlbW92ZUV2ZW50TGlz
dGVuZXIoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5FdmVudHMuVGl0bGVDaGFuZ2VkLCB0aGlz
Ll90aXRsZUNoYW5nZWQsIHRoaXMpOworICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGUucmVtb3Zl
RXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLkV2ZW50cy5Xb3JraW5nQ29w
eUNoYW5nZWQsIHRoaXMuX3dvcmtpbmdDb3B5Q2hhbmdlZCwgdGhpcyk7CisgICAgICAgIHRoaXMu
X3VpU291cmNlQ29kZS5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNv
ZGUuRXZlbnRzLldvcmtpbmdDb3B5Q29tbWl0dGVkLCB0aGlzLl93b3JraW5nQ29weUNvbW1pdHRl
ZCwgdGhpcyk7CisgICAgICAgIHRoaXMuX3VpU291cmNlQ29kZS5yZW1vdmVFdmVudExpc3RlbmVy
KFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUuRXZlbnRzLkZvcm1hdHRlZENoYW5nZWQsIHRoaXMu
X2Zvcm1hdHRlZENoYW5nZWQsIHRoaXMpOworICAgIH0sCisKKyAgICBfdGl0bGVDaGFuZ2VkOiBm
dW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMudXBkYXRlVGl0bGUoKTsKKyAgICB9
LAorCisgICAgX3dvcmtpbmdDb3B5Q2hhbmdlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAg
ICAgICB0aGlzLnVwZGF0ZVRpdGxlKCk7CisgICAgfSwKKworICAgIF93b3JraW5nQ29weUNvbW1p
dHRlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB0aGlzLnVwZGF0ZVRpdGxlKCk7
CisgICAgfSwKKworICAgIF9mb3JtYXR0ZWRDaGFuZ2VkOiBmdW5jdGlvbihldmVudCkKKyAgICB7
CisgICAgICAgIHRoaXMudXBkYXRlVGl0bGUoKTsKKyAgICB9LAorCisgICAgcmV2ZWFsOiBmdW5j
dGlvbigpCisgICAgeworICAgICAgICB0aGlzLnBhcmVudC5wb3B1bGF0ZSgpOworICAgICAgICB0
aGlzLnBhcmVudC50cmVlRWxlbWVudCgpLmV4cGFuZCgpOworICAgICAgICB0aGlzLl90cmVlRWxl
bWVudC5yZXZlYWxBbmRTZWxlY3QoKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFt
IHtmdW5jdGlvbihib29sZWFuKT19IGNhbGxiYWNrCisgICAgICovCisgICAgcmVuYW1lOiBmdW5j
dGlvbihjYWxsYmFjaykKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5fdHJlZUVsZW1lbnQpCisg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgLy8gVHJlZSBvdXRsaW5lIHNob3VsZCBiZSBt
YXJrZWQgYXMgZWRpdGVkIGFzIHdlbGwgYXMgdGhlIHRyZWUgZWxlbWVudCB0byBwcmV2ZW50IHNl
YXJjaCBmcm9tIHN0YXJ0aW5nLgorICAgICAgICB2YXIgdHJlZU91dGxpbmVFbGVtZW50ID0gdGhp
cy5fdHJlZUVsZW1lbnQudHJlZU91dGxpbmUuZWxlbWVudDsKKyAgICAgICAgV2ViSW5zcGVjdG9y
Lm1hcmtCZWluZ0VkaXRlZCh0cmVlT3V0bGluZUVsZW1lbnQsIHRydWUpOworCisgICAgICAgIGZ1
bmN0aW9uIGNvbW1pdEhhbmRsZXIoZWxlbWVudCwgbmV3VGl0bGUsIG9sZFRpdGxlKQorICAgICAg
ICB7CisgICAgICAgICAgICBpZiAobmV3VGl0bGUgJiYgbmV3VGl0bGUgIT09IG9sZFRpdGxlKQor
ICAgICAgICAgICAgICAgIHRoaXMuX25hdmlnYXRvclZpZXcuX2ZpbGVSZW5hbWVkKHRoaXMuX3Vp
U291cmNlQ29kZSwgbmV3VGl0bGUpOworICAgICAgICAgICAgYWZ0ZXJFZGl0aW5nLmNhbGwodGhp
cywgdHJ1ZSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjYW5jZWxIYW5kbGVyKCkK
KyAgICAgICAgeworICAgICAgICAgICAgYWZ0ZXJFZGl0aW5nLmNhbGwodGhpcywgZmFsc2UpOwor
ICAgICAgICB9CisKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gY29t
bWl0dGVkCisgICAgICAgICAqLworICAgICAgICBmdW5jdGlvbiBhZnRlckVkaXRpbmcoY29tbWl0
dGVkKQorICAgICAgICB7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3IubWFya0JlaW5nRWRpdGVk
KHRyZWVPdXRsaW5lRWxlbWVudCwgZmFsc2UpOworICAgICAgICAgICAgdGhpcy51cGRhdGVUaXRs
ZSgpOworICAgICAgICAgICAgaWYgKGNhbGxiYWNrKQorICAgICAgICAgICAgICAgIGNhbGxiYWNr
KGNvbW1pdHRlZCk7CisgICAgICAgIH0KKworICAgICAgICB2YXIgZWRpdGluZ0NvbmZpZyA9IG5l
dyBXZWJJbnNwZWN0b3IuRWRpdGluZ0NvbmZpZyhjb21taXRIYW5kbGVyLmJpbmQodGhpcyksIGNh
bmNlbEhhbmRsZXIuYmluZCh0aGlzKSk7CisgICAgICAgIHRoaXMudXBkYXRlVGl0bGUodHJ1ZSk7
CisgICAgICAgIFdlYkluc3BlY3Rvci5zdGFydEVkaXRpbmcodGhpcy5fdHJlZUVsZW1lbnQudGl0
bGVFbGVtZW50LCBlZGl0aW5nQ29uZmlnKTsKKyAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigp
LnNldEJhc2VBbmRFeHRlbnQodGhpcy5fdHJlZUVsZW1lbnQudGl0bGVFbGVtZW50LCAwLCB0aGlz
Ll90cmVlRWxlbWVudC50aXRsZUVsZW1lbnQsIDEpOworICAgIH0sCisKKyAgICBfX3Byb3RvX186
IFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JUcmVlTm9kZS5wcm90b3R5cGUKK30KKworLyoqCisgKiBA
Y29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVHJlZU5vZGV9
CisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5OYXZpZ2F0b3JWaWV3fSBuYXZpZ2F0b3JWaWV3Cisg
KiBAcGFyYW0ge3N0cmluZ30gaWQKKyAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlCisgKiBAcGFyYW0g
e3N0cmluZ30gdGl0bGUKKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZX0gdWlT
b3VyY2VDb2RlCisgKi8KK1dlYkluc3BlY3Rvci5OYXZpZ2F0b3JGb2xkZXJUcmVlTm9kZSA9IGZ1
bmN0aW9uKG5hdmlnYXRvclZpZXcsIGlkLCB0eXBlLCB0aXRsZSkKK3sKKyAgICBXZWJJbnNwZWN0
b3IuTmF2aWdhdG9yVHJlZU5vZGUuY2FsbCh0aGlzLCBpZCk7CisgICAgdGhpcy5fbmF2aWdhdG9y
VmlldyA9IG5hdmlnYXRvclZpZXc7CisgICAgdGhpcy5fdHlwZSA9IHR5cGU7CisgICAgdGhpcy5f
dGl0bGUgPSB0aXRsZTsKK30KKworV2ViSW5zcGVjdG9yLk5hdmlnYXRvckZvbGRlclRyZWVOb2Rl
LnByb3RvdHlwZSA9IHsKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtUcmVlRWxlbWVudH0KKyAg
ICAgKi8KKyAgICB0cmVlRWxlbWVudDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgaWYgKHRo
aXMuX3RyZWVFbGVtZW50KQorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3RyZWVFbGVtZW50Owor
ICAgICAgICB0aGlzLl90cmVlRWxlbWVudCA9IHRoaXMuX2NyZWF0ZVRyZWVFbGVtZW50KHRoaXMu
X3RpdGxlLCB0aGlzKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3RyZWVFbGVtZW50OworICAgIH0s
CisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtUcmVlRWxlbWVudH0KKyAgICAgKi8KKyAgICBf
Y3JlYXRlVHJlZUVsZW1lbnQ6IGZ1bmN0aW9uKHRpdGxlLCBub2RlKQorICAgIHsKKyAgICAgICAg
dmFyIHRyZWVFbGVtZW50ID0gbmV3IFdlYkluc3BlY3Rvci5OYXZpZ2F0b3JGb2xkZXJUcmVlRWxl
bWVudCh0aGlzLl90eXBlLCB0aXRsZSk7CisgICAgICAgIHRyZWVFbGVtZW50Ll9ub2RlID0gbm9k
ZTsKKyAgICAgICAgcmV0dXJuIHRyZWVFbGVtZW50OworICAgIH0sCisKKyAgICB3YXNQb3B1bGF0
ZWQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5fdHJlZUVsZW1lbnQgfHwg
dGhpcy5fdHJlZUVsZW1lbnQuX25vZGUgIT09IHRoaXMpCisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIHRoaXMuX2FkZENoaWxkcmVuUmVjdXJzaXZlKCk7CisgICAgfSwKKworICAgIF9hZGRD
aGlsZHJlblJlY3Vyc2l2ZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgZm9yICh2YXIgaWQg
aW4gdGhpcy5fY2hpbGRyZW4pIHsKKyAgICAgICAgICAgIHZhciBjaGlsZCA9IHRoaXMuX2NoaWxk
cmVuW2lkXTsKKyAgICAgICAgICAgIHRoaXMuZGlkQWRkQ2hpbGQoY2hpbGQpOworICAgICAgICAg
ICAgaWYgKGNoaWxkIGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLk5hdmlnYXRvckZvbGRlclRyZWVO
b2RlKQorICAgICAgICAgICAgICAgIGNoaWxkLl9hZGRDaGlsZHJlblJlY3Vyc2l2ZSgpOworICAg
ICAgICB9CisgICAgfSwKKworICAgIF9zaG91bGRNZXJnZTogZnVuY3Rpb24obm9kZSkKKyAgICB7
CisgICAgICAgIHJldHVybiB0aGlzLl90eXBlICE9PSBXZWJJbnNwZWN0b3IuTmF2aWdhdG9yVHJl
ZU91dGxpbmUuVHlwZXMuRG9tYWluICYmIG5vZGUgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuTmF2
aWdhdG9yRm9sZGVyVHJlZU5vZGU7CisgICAgfSwKKworICAgIGRpZEFkZENoaWxkOiBmdW5jdGlv
bihub2RlKQorICAgIHsKKyAgICAgICAgZnVuY3Rpb24gdGl0bGVGb3JOb2RlKG5vZGUpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIHJldHVybiBub2RlLl90aXRsZTsKKyAgICAgICAgfQorCisgICAg
ICAgIGlmICghdGhpcy5fdHJlZUVsZW1lbnQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgdmFyIGNoaWxkcmVuID0gdGhpcy5jaGlsZHJlbigpOworCisgICAgICAgIGlmIChjaGlsZHJl
bi5sZW5ndGggPT09IDEgJiYgdGhpcy5fc2hvdWxkTWVyZ2Uobm9kZSkpIHsKKyAgICAgICAgICAg
IG5vZGUuX2lzTWVyZ2VkID0gdHJ1ZTsKKyAgICAgICAgICAgIHRoaXMuX3RyZWVFbGVtZW50LnRp
dGxlVGV4dCA9IHRoaXMuX3RyZWVFbGVtZW50LnRpdGxlVGV4dCArICIvIiArIG5vZGUuX3RpdGxl
OworICAgICAgICAgICAgbm9kZS5fdHJlZUVsZW1lbnQgPSB0aGlzLl90cmVlRWxlbWVudDsKKyAg
ICAgICAgICAgIHRoaXMuX3RyZWVFbGVtZW50Ll9ub2RlID0gbm9kZTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBvbGROb2RlOworICAgICAgICBpZiAoY2hp
bGRyZW4ubGVuZ3RoID09PSAyKQorICAgICAgICAgICAgb2xkTm9kZSA9IGNoaWxkcmVuWzBdICE9
PSBub2RlID8gY2hpbGRyZW5bMF0gOiBjaGlsZHJlblsxXTsKKyAgICAgICAgaWYgKG9sZE5vZGUg
JiYgb2xkTm9kZS5faXNNZXJnZWQpIHsKKyAgICAgICAgICAgIGRlbGV0ZSBvbGROb2RlLl9pc01l
cmdlZDsKKyAgICAgICAgICAgIHZhciBtZXJnZWRUb05vZGVzID0gW107CisgICAgICAgICAgICBt
ZXJnZWRUb05vZGVzLnB1c2godGhpcyk7CisgICAgICAgICAgICB2YXIgdHJlZU5vZGUgPSB0aGlz
OworICAgICAgICAgICAgd2hpbGUgKHRyZWVOb2RlLl9pc01lcmdlZCkgeworICAgICAgICAgICAg
ICAgIHRyZWVOb2RlID0gdHJlZU5vZGUucGFyZW50OworICAgICAgICAgICAgICAgIG1lcmdlZFRv
Tm9kZXMucHVzaCh0cmVlTm9kZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtZXJnZWRU
b05vZGVzLnJldmVyc2UoKTsKKyAgICAgICAgICAgIHZhciB0aXRsZVRleHQgPSBtZXJnZWRUb05v
ZGVzLm1hcCh0aXRsZUZvck5vZGUpLmpvaW4oIi8iKTsKKworICAgICAgICAgICAgdmFyIG5vZGVz
ID0gW107CisgICAgICAgICAgICB0cmVlTm9kZSA9IG9sZE5vZGU7CisgICAgICAgICAgICBkbyB7
CisgICAgICAgICAgICAgICAgbm9kZXMucHVzaCh0cmVlTm9kZSk7CisgICAgICAgICAgICAgICAg
dmFyIGNoaWxkcmVuID0gdHJlZU5vZGUuY2hpbGRyZW4oKTsKKyAgICAgICAgICAgICAgICB0cmVl
Tm9kZSA9IGNoaWxkcmVuLmxlbmd0aCA9PT0gMSA/IGNoaWxkcmVuWzBdIDogbnVsbDsKKyAgICAg
ICAgICAgIH0gd2hpbGUgKHRyZWVOb2RlICYmIHRyZWVOb2RlLl9pc01lcmdlZCk7CisKKyAgICAg
ICAgICAgIGlmICghdGhpcy5pc1BvcHVsYXRlZCgpKSB7CisgICAgICAgICAgICAgICAgdGhpcy5f
dHJlZUVsZW1lbnQudGl0bGVUZXh0ID0gdGl0bGVUZXh0OworICAgICAgICAgICAgICAgIHRoaXMu
X3RyZWVFbGVtZW50Ll9ub2RlID0gdGhpczsKKyAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IG5vZGVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBu
b2Rlc1tpXS5fdHJlZUVsZW1lbnQ7CisgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBub2Rlc1tp
XS5faXNNZXJnZWQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHZhciBvbGRUcmVlRWxlbWVudCA9IHRoaXMuX3Ry
ZWVFbGVtZW50OworICAgICAgICAgICAgdmFyIHRyZWVFbGVtZW50ID0gdGhpcy5fY3JlYXRlVHJl
ZUVsZW1lbnQodGl0bGVUZXh0LCB0aGlzKTsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgbWVyZ2VkVG9Ob2Rlcy5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgICAgICBtZXJnZWRUb05v
ZGVzW2ldLl90cmVlRWxlbWVudCA9IHRyZWVFbGVtZW50OworICAgICAgICAgICAgb2xkVHJlZUVs
ZW1lbnQucGFyZW50LmFwcGVuZENoaWxkKHRyZWVFbGVtZW50KTsKKworICAgICAgICAgICAgb2xk
VHJlZUVsZW1lbnQuX25vZGUgPSBub2Rlc1tub2Rlcy5sZW5ndGggLSAxXTsKKyAgICAgICAgICAg
IG9sZFRyZWVFbGVtZW50LnRpdGxlVGV4dCA9IG5vZGVzLm1hcCh0aXRsZUZvck5vZGUpLmpvaW4o
Ii8iKTsKKyAgICAgICAgICAgIG9sZFRyZWVFbGVtZW50LnBhcmVudC5yZW1vdmVDaGlsZChvbGRU
cmVlRWxlbWVudCk7CisgICAgICAgICAgICB0aGlzLl90cmVlRWxlbWVudC5hcHBlbmRDaGlsZChv
bGRUcmVlRWxlbWVudCk7CisgICAgICAgICAgICBpZiAob2xkVHJlZUVsZW1lbnQuZXhwYW5kZWQp
CisgICAgICAgICAgICAgICAgdHJlZUVsZW1lbnQuZXhwYW5kKCk7CisgICAgICAgIH0KKyAgICAg
ICAgaWYgKHRoaXMuaXNQb3B1bGF0ZWQoKSkKKyAgICAgICAgICAgIHRoaXMuX3RyZWVFbGVtZW50
LmFwcGVuZENoaWxkKG5vZGUudHJlZUVsZW1lbnQoKSk7CisgICAgfSwKKworICAgIHdpbGxSZW1v
dmVDaGlsZDogZnVuY3Rpb24obm9kZSkKKyAgICB7CisgICAgICAgIGlmIChub2RlLl9pc01lcmdl
ZCB8fCAhdGhpcy5pc1BvcHVsYXRlZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB0
aGlzLl90cmVlRWxlbWVudC5yZW1vdmVDaGlsZChub2RlLl90cmVlRWxlbWVudCk7CisgICAgfSwK
KworICAgIF9fcHJvdG9fXzogV2ViSW5zcGVjdG9yLk5hdmlnYXRvclRyZWVOb2RlLnByb3RvdHlw
ZQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3Jp
cHRzTmF2aWdhdG9yLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3Jp
cHRzTmF2aWdhdG9yLmpzCmluZGV4IGQ2ZTVjMGNiNmJlYzcyM2E2MzljMzNiNGNmMTFkN2EzZjEw
OTQ1MDIuLjYyODY2Y2RhYjBkODdhNjczMDBjNTI2YjYyYjI3MGFlYTBiOGQ1N2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c05hdmlnYXRvci5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNOYXZpZ2F0
b3IuanMKQEAgLTE4MSwxNCArMTgxLDYgQEAgV2ViSW5zcGVjdG9yLlNuaXBwZXRzTmF2aWdhdG9y
Vmlldy5FdmVudHMgPSB7CiAKIFdlYkluc3BlY3Rvci5TbmlwcGV0c05hdmlnYXRvclZpZXcucHJv
dG90eXBlID0gewogICAgIC8qKgotICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlVJU291cmNl
Q29kZX0gdWlTb3VyY2VDb2RlCi0gICAgICovCi0gICAgZ2V0T3JDcmVhdGVGb2xkZXJUcmVlRWxl
bWVudDogZnVuY3Rpb24odWlTb3VyY2VDb2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMu
X3NjcmlwdHNUcmVlOwotICAgIH0sCi0KLSAgICAvKioKICAgICAgKiBAcGFyYW0ge0V2ZW50fSBl
dmVudAogICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZT19IHVpU291cmNl
Q29kZQogICAgICAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9TaW1wbGVXb3Jrc3BhY2VQcm92aWRlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU2ltcGxlV29ya3NwYWNlUHJvdmlkZXIuanMKaW5kZXggNTBlZmY2MTc2ODVm
MDFjNjM3MmY2OTIzNTg2ZjYzMGY1MWMxNmU5Zi4uN2YzZGQ4NjM3NWI4ZTM1NzAzMDBiYzMzYWY3
NDAxN2VkMWVmNjEyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9TaW1wbGVXb3Jrc3BhY2VQcm92aWRlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1NpbXBsZVdvcmtzcGFjZVByb3ZpZGVyLmpzCkBAIC03MywxMiArNzMs
MTUgQEAgV2ViSW5zcGVjdG9yLlNpbXBsZVByb2plY3REZWxlZ2F0ZS5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIGlmICh0eXBlb2YgdGhpcy5fZGlzcGxheU5hbWUgIT09ICJ1bmRlZmluZWQiKQogICAg
ICAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc3BsYXlOYW1lOwogICAgICAgICBpZiAoIXRoaXMuX25h
bWUpIHsKLSAgICAgICAgICAgIHRoaXMuX2Rpc3BsYXlOYW1lID0gIiI7CisgICAgICAgICAgICB0
aGlzLl9kaXNwbGF5TmFtZSA9IHRoaXMuX3R5cGUgIT09IFdlYkluc3BlY3Rvci5wcm9qZWN0VHlw
ZXMuU25pcHBldHMgPyBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIihubyBkb21haW4pIikgOiAiIjsK
ICAgICAgICAgICAgIHJldHVybiB0aGlzLl9kaXNwbGF5TmFtZTsKICAgICAgICAgfQogICAgICAg
ICB2YXIgcGFyc2VkVVJMID0gbmV3IFdlYkluc3BlY3Rvci5QYXJzZWRVUkwodGhpcy5fbmFtZSk7
Ci0gICAgICAgIGlmIChwYXJzZWRVUkwuaXNWYWxpZCkKKyAgICAgICAgaWYgKHBhcnNlZFVSTC5p
c1ZhbGlkKSB7CiAgICAgICAgICAgICB0aGlzLl9kaXNwbGF5TmFtZSA9IHBhcnNlZFVSTC5ob3N0
ICsgKHBhcnNlZFVSTC5wb3J0ID8gKCI6IiArIHBhcnNlZFVSTC5wb3J0KSA6ICIiKTsKKyAgICAg
ICAgICAgIGlmICghdGhpcy5fZGlzcGxheU5hbWUpCisgICAgICAgICAgICAgICAgdGhpcy5fZGlz
cGxheU5hbWUgPSB0aGlzLl9uYW1lOworICAgICAgICB9CiAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgIHRoaXMuX2Rpc3BsYXlOYW1lID0gdGhpcy5fbmFtZTsKICAgICAgICAgcmV0dXJuIHRoaXMu
X2Rpc3BsYXlOYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9uYXZpZ2F0b3JWaWV3LmNzcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvbmF2aWdhdG9yVmlldy5jc3MKaW5kZXggNzkzOTY4OTkwMWY4NTA3OWJhNWNmYjViZDkxYWIy
ZTQ1YjJmYTE1MS4uYzBmZGI0MTRlOTI3OTFmODAzNWUzNjU4ODhmYzE1OGFmMThlYjFjMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9uYXZpZ2F0b3JWaWV3
LmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL25hdmlnYXRvclZp
ZXcuY3NzCkBAIC01Miw2ICs1MiwxMSBAQAogICAgIGNvbnRlbnQ6IHVybChJbWFnZXMvcmVzb3Vy
Y2VQbGFpbkljb24ucG5nKTsKIH0KIAorLm5hdmlnYXRvciA+IG9sIHsKKyAgICBtaW4taGVpZ2h0
OiAxMDAlOworICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKK30KKwogLm5hdmlnYXRvciBsaSB7
CiAgICAgaGVpZ2h0OiAxN3B4OwogICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CkBAIC05MCw4ICs5
NSw3IEBACiB9CiAKIC5uYXZpZ2F0b3IgLmJhc2UtbmF2aWdhdG9yLXRyZWUtZWxlbWVudC10aXRs
ZSB7Ci0gICAgb3ZlcmZsb3c6IGhpZGRlbjsKLSAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsK
KyAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAg
IHBhZGRpbmctbGVmdDogMnB4OwogICAgIHRvcDogMXB4OwpAQCAtMTI4LDggKzEzMiw3IEBACiB9
CiAKIC5uYXZpZ2F0b3ItdGFiYmVkLXBhbmUgLm5hdmlnYXRvci1jb250YWluZXIgewotICAgIG92
ZXJmbG93LXk6IGF1dG87Ci0gICAgb3ZlcmZsb3cteDogaGlkZGVuOworICAgIG92ZXJmbG93OiBh
dXRvOwogfQogCiAubmF2aWdhdG9yLXRhYmJlZC1wYW5lIC5uYXZpZ2F0b3IgewpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDRi
MWQwYzc0MTc4YjM4ODc0MWU0ZWJlMDRlMDZhMzVlYTgwNzgyMjYuLjY0YTM1MTU3ZThhMTgxYjgy
MWVlYTQ2OTAyODA0NDBhOTAzZDZmNTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyNiBAQAogMjAxMy0wMy0w
MSAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAorICAgICAgICBXZWIg
SW5zcGVjdG9yOiBOYXZpZ2F0b3Igc2hvdWxkIHNob3cgdHJlZSBlbGVtZW50IGZvciBlYWNoIGZv
bGRlciBpbiB0aGUgc291cmNlIHBhdGguCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDg5NDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanM6
CisgICAgICAgIChpbml0aWFsaXplX0RlYnVnZ2VyVGVzdC4pOgorICAgICAgICAoaW5pdGlhbGl6
ZV9EZWJ1Z2dlclRlc3QpOgorICAgICAgICAqIGh0dHAvdGVzdHMvaW5zcGVjdG9yL3dvcmtzcGFj
ZS10ZXN0LmpzOgorICAgICAgICAoaW5pdGlhbGl6ZV9Xb3Jrc3BhY2VUZXN0Lkluc3BlY3RvclRl
c3QuY3JlYXRlV29ya3NwYWNlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvbmF2aWdh
dG9yLXZpZXctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdn
ZXIvbmF2aWdhdG9yLXZpZXcuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVn
Z2VyL3NjcmlwdHMtZmlsZS1zZWxlY3Rvci1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtZmlsZS1zZWxlY3Rvci5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1wYW5lbC5odG1sOgorICAg
ICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXNvcnRpbmctZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXNvcnRpbmcuaHRtbDoKKworMjAx
My0wMy0wMSAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KKwogICAgICAg
ICBGbGFreSB0ZXN0OiBodHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZS10cmVlL3Jlc291cmNl
LXJlcXVlc3QtY29udGVudC13aGlsZS1sb2FkaW5nLmh0bWwKICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMTEyMwogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcwppbmRleCBjYjE3MzM3MmVkY2Rk
OWY0MTg2MjkxZDM4NDY1ZDM0MWQ0MmRmN2UyLi44OGYyMDU1MzZhMjRkZTkxMTgwNDRlYzdkYTVi
NDJkNDVlOWQzZWYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyLXRlc3QuanMKQEAgLTE4MywxMiArMTgzLDEzIEBAIEluc3BlY3RvclRlc3Quc2hv
d1NjcmlwdFNvdXJjZSA9IGZ1bmN0aW9uKHNjcmlwdE5hbWUsIGNhbGxiYWNrKQogICAgIEluc3Bl
Y3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSwg
Il9hZGRVSVNvdXJjZUNvZGUiLCBJbnNwZWN0b3JUZXN0LnNob3dTY3JpcHRTb3VyY2UuYmluZChJ
bnNwZWN0b3JUZXN0LCBzY3JpcHROYW1lLCBjYWxsYmFjaykpOwogfTsKIAotSW5zcGVjdG9yVGVz
dC5kdW1wU2NyaXB0c05hdmlnYXRvciA9IGZ1bmN0aW9uKG5hdmlnYXRvcikKK0luc3BlY3RvclRl
c3QuZHVtcFNjcmlwdHNOYXZpZ2F0b3IgPSBmdW5jdGlvbihuYXZpZ2F0b3IsIHByZWZpeCkKIHsK
LSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdT
Y3JpcHRzJyB0YWI6Iik7Ci0gICAgZHVtcE5hdmlnYXRvclRyZWVPdXRsaW5lKG5hdmlnYXRvci5f
c2NyaXB0c1ZpZXcuX3NjcmlwdHNUcmVlKTsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
RHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdDb250ZW50IHNjcmlwdHMnIHRhYjoiKTsKLSAgICBk
dW1wTmF2aWdhdG9yVHJlZU91dGxpbmUobmF2aWdhdG9yLl9jb250ZW50U2NyaXB0c1ZpZXcuX3Nj
cmlwdHNUcmVlKTsKKyAgICBwcmVmaXggPSBwcmVmaXggfHwgIiI7CisgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQocHJlZml4ICsgIkR1bXBpbmcgU2NyaXB0c05hdmlnYXRvciAnU2NyaXB0cycg
dGFiOiIpOworICAgIGR1bXBOYXZpZ2F0b3JUcmVlT3V0bGluZShwcmVmaXgsIG5hdmlnYXRvci5f
c2NyaXB0c1ZpZXcuX3NjcmlwdHNUcmVlKTsKKyAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChw
cmVmaXggKyAiRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdDb250ZW50IHNjcmlwdHMnIHRhYjoi
KTsKKyAgICBkdW1wTmF2aWdhdG9yVHJlZU91dGxpbmUocHJlZml4LCBuYXZpZ2F0b3IuX2NvbnRl
bnRTY3JpcHRzVmlldy5fc2NyaXB0c1RyZWUpOwogCiAgICAgZnVuY3Rpb24gZHVtcE5hdmlnYXRv
clRyZWVFbGVtZW50KHByZWZpeCwgdHJlZUVsZW1lbnQpCiAgICAgewpAQCAtMTk3LDExICsxOTgs
MTIgQEAgSW5zcGVjdG9yVGVzdC5kdW1wU2NyaXB0c05hdmlnYXRvciA9IGZ1bmN0aW9uKG5hdmln
YXRvcikKICAgICAgICAgICAgIGR1bXBOYXZpZ2F0b3JUcmVlRWxlbWVudChwcmVmaXggKyAiICAi
LCB0cmVlRWxlbWVudC5jaGlsZHJlbltpXSk7CiAgICAgfQogCi0gICAgZnVuY3Rpb24gZHVtcE5h
dmlnYXRvclRyZWVPdXRsaW5lKHRyZWVPdXRsaW5lKQorICAgIGZ1bmN0aW9uIGR1bXBOYXZpZ2F0
b3JUcmVlT3V0bGluZShwcmVmaXgsIHRyZWVPdXRsaW5lKQogICAgIHsKICAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCB0cmVlT3V0bGluZS5jaGlsZHJlbi5sZW5ndGg7ICsraSkKLSAgICAgICAg
ICAgIGR1bXBOYXZpZ2F0b3JUcmVlRWxlbWVudCgiICAiLCB0cmVlT3V0bGluZS5jaGlsZHJlbltp
XSk7CisgICAgICAgICAgICBkdW1wTmF2aWdhdG9yVHJlZUVsZW1lbnQocHJlZml4ICsgIiAgIiwg
dHJlZU91dGxpbmUuY2hpbGRyZW5baV0pOwogICAgIH0KKyAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiIik7CiB9OwogCiBJbnNwZWN0b3JUZXN0LnNldEJyZWFrcG9pbnQgPSBmdW5jdGlvbihz
b3VyY2VGcmFtZSwgbGluZU51bWJlciwgY29uZGl0aW9uLCBlbmFibGVkKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Ivd29ya3NwYWNlLXRlc3QuanMgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci93b3Jrc3BhY2UtdGVzdC5qcwppbmRleCBhZjcz
YzI2MTIzYWFmOTM0NTVjYTk1NmM1N2I1MTAzNGVjZGVkZTRjLi4zNmFjZjRkZjRhZTMzYmE0M2E0
MDNkZWFmOTk2ZjVmMWRiNmI5MTE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci93b3Jrc3BhY2UtdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci93b3Jrc3BhY2UtdGVzdC5qcwpAQCAtMSw2ICsxLDYgQEAKIHZhciBpbml0aWFs
aXplX1dvcmtzcGFjZVRlc3QgPSBmdW5jdGlvbigpIHsKIAotSW5zcGVjdG9yVGVzdC5jcmVhdGVX
b3Jrc3BhY2UgPSBmdW5jdGlvbigpCitJbnNwZWN0b3JUZXN0LmNyZWF0ZVdvcmtzcGFjZSA9IGZ1
bmN0aW9uKGlnbm9yZUV2ZW50cykKIHsKICAgICBJbnNwZWN0b3JUZXN0LnRlc3RGaWxlTWFwcGlu
ZyA9IG5ldyBXZWJJbnNwZWN0b3IuRmlsZU1hcHBpbmcoKTsKICAgICBJbnNwZWN0b3JUZXN0LnRl
c3RGaWxlU3lzdGVtTWFwcGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuRmlsZVN5c3RlbU1hcHBpbmdJ
bXBsKCk7CkBAIC04LDYgKzgsOCBAQCBJbnNwZWN0b3JUZXN0LmNyZWF0ZVdvcmtzcGFjZSA9IGZ1
bmN0aW9uKCkKIAogICAgIEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZSA9IG5ldyBXZWJJbnNw
ZWN0b3IuV29ya3NwYWNlKEluc3BlY3RvclRlc3QudGVzdEZpbGVNYXBwaW5nLCBJbnNwZWN0b3JU
ZXN0LnRlc3RGaWxlU3lzdGVtTWFwcGluZyk7CiAgICAgSW5zcGVjdG9yVGVzdC50ZXN0TmV0d29y
a1dvcmtzcGFjZVByb3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5TaW1wbGVXb3Jrc3BhY2VQcm92
aWRlcihJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2UsIFdlYkluc3BlY3Rvci5wcm9qZWN0VHlw
ZXMuTmV0d29yayk7CisgICAgaWYgKGlnbm9yZUV2ZW50cykKKyAgICAgICAgcmV0dXJuOwogICAg
IEluc3BlY3RvclRlc3QudGVzdFdvcmtzcGFjZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5VSVNvdXJjZUNvZGVQcm92aWRlci5FdmVudHMuVUlTb3VyY2VDb2RlQWRkZWQsIEluc3BlY3Rv
clRlc3QuX2RlZmF1bHRVSVNvdXJjZUNvZGVQcm92aWRlckV2ZW50SGFuZGxlcik7CiAgICAgSW5z
cGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlVJ
U291cmNlQ29kZVByb3ZpZGVyLkV2ZW50cy5VSVNvdXJjZUNvZGVSZW1vdmVkLCBJbnNwZWN0b3JU
ZXN0Ll9kZWZhdWx0VUlTb3VyY2VDb2RlUHJvdmlkZXJFdmVudEhhbmRsZXIpOwogfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL25hdmlnYXRvci12aWV3LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9uYXZpZ2F0b3Itdmlldy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjRmMjFjNDY5ZDJkYTJiZTA4ZTEzNmRlNmIxNTlhNmRh
OWNkZWY0MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9uYXZpZ2F0b3Itdmlldy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMzEgQEAKK1Rlc3RzIHNj
cmlwdHMgcGFuZWwgZmlsZSBzZWxlY3RvcnMuCisKK0FkZGluZyBmaXJzdCByZXNvdXJjZToKKyAg
RHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdTY3JpcHRzJyB0YWI6CisgICAgbG9jYWxob3N0Ojgw
ODAKKyAgRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdDb250ZW50IHNjcmlwdHMnIHRhYjoKKwor
RXhwYW5kaW5nIGRvbWFpbnM6CisgIER1bXBpbmcgU2NyaXB0c05hdmlnYXRvciAnU2NyaXB0cycg
dGFiOgorICAgIGxvY2FsaG9zdDo4MDgwCisgICAgICBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvZm9vL2JhcgorICBEdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ0NvbnRlbnQgc2NyaXB0
cycgdGFiOgorCitBZGRpbmcgc2Vjb25kIHJlc291cmNlOgorICBEdW1waW5nIFNjcmlwdHNOYXZp
Z2F0b3IgJ1NjcmlwdHMnIHRhYjoKKyAgICBsb2NhbGhvc3Q6ODA4MAorICAgICAgTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Zvby9iYXIKKyAgRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9y
ICdDb250ZW50IHNjcmlwdHMnIHRhYjoKKworQWRkaW5nIG90aGVyIHJlc291cmNlczoKKyAgRHVt
cGluZyBTY3JpcHRzTmF2aWdhdG9yICdTY3JpcHRzJyB0YWI6CisgICAgbG9jYWxob3N0OjgwODAK
KyAgICAgIExheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9mb28KKyAgRHVtcGluZyBTY3Jp
cHRzTmF2aWdhdG9yICdDb250ZW50IHNjcmlwdHMnIHRhYjoKKworQWRkaW5nIGNvbnRlbnQgc2Ny
aXB0cyBhbmQgc29tZSByYW5kb20gcmVzb3VyY2VzOgorICBEdW1waW5nIFNjcmlwdHNOYXZpZ2F0
b3IgJ1NjcmlwdHMnIHRhYjoKKyAgICAobm8gZG9tYWluKQorICAgIGV4YW1wbGUuY29tCisgICAg
bG9jYWxob3N0OjgwODAKKyAgICAgIExheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9mb28K
KyAgRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdDb250ZW50IHNjcmlwdHMnIHRhYjoKKyAgICBs
b2NhbGhvc3Q6ODA4MAorCitSZXZlYWxpbmcgZmlyc3QgcmVzb3VyY2U6CisgIER1bXBpbmcgU2Ny
aXB0c05hdmlnYXRvciAnU2NyaXB0cycgdGFiOgorICAgIChubyBkb21haW4pCisgICAgZXhhbXBs
ZS5jb20KKyAgICBsb2NhbGhvc3Q6ODA4MAorICAgICAgTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL2ZvbworICAgICAgICBiYXIKKyAgICAgICAgICBzY3JpcHQuanMKKyAgICAgICAgICBz
Y3JpcHQuanM/YT0xCisgICAgICAgICAgc2NyaXB0LmpzP2E9MgorICAgICAgICBiYXoKKyAgRHVt
cGluZyBTY3JpcHRzTmF2aWdhdG9yICdDb250ZW50IHNjcmlwdHMnIHRhYjoKKyAgICBsb2NhbGhv
c3Q6ODA4MAorCitBZGRpbmcgc29tZSByZXNvdXJjZXMgdG8gY2hhbmdlIHRoZSB3YXkgZGVidWdn
ZXIgZm9sZGVyIGxvb2tzIGxpa2UsIGZpcnN0OgorICBEdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3Ig
J1NjcmlwdHMnIHRhYjoKKyAgICAobm8gZG9tYWluKQorICAgIGV4YW1wbGUuY29tCisgICAgbG9j
YWxob3N0OjgwODAKKyAgICAgIExheW91dFRlc3RzL2luc3BlY3RvcgorICAgICAgICBkZWJ1Z2dl
ci9mb28KKyAgICAgICAgICBiYXIKKyAgICAgICAgICAgIHNjcmlwdC5qcworICAgICAgICAgICAg
c2NyaXB0LmpzP2E9MQorICAgICAgICAgICAgc2NyaXB0LmpzP2E9MgorICAgICAgICAgIGJhegor
ICAgICAgICBkZWJ1Z2dlcjIvZm9vL2JhcgorICBEdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ0Nv
bnRlbnQgc2NyaXB0cycgdGFiOgorICAgIGxvY2FsaG9zdDo4MDgwCisKK1NlY29uZDoKKyAgRHVt
cGluZyBTY3JpcHRzTmF2aWdhdG9yICdTY3JpcHRzJyB0YWI6CisgICAgKG5vIGRvbWFpbikKKyAg
ICBleGFtcGxlLmNvbQorICAgIGxvY2FsaG9zdDo4MDgwCisgICAgICBMYXlvdXRUZXN0cy9pbnNw
ZWN0b3IKKyAgICAgICAgZGVidWdnZXIvZm9vCisgICAgICAgICAgYmFyCisgICAgICAgICAgICBz
Y3JpcHQuanMKKyAgICAgICAgICAgIHNjcmlwdC5qcz9hPTEKKyAgICAgICAgICAgIHNjcmlwdC5q
cz9hPTIKKyAgICAgICAgICBiYXoKKyAgICAgICAgZGVidWdnZXIyL2Zvby9iYXIKKyAgRHVtcGlu
ZyBTY3JpcHRzTmF2aWdhdG9yICdDb250ZW50IHNjcmlwdHMnIHRhYjoKKyAgICBsb2NhbGhvc3Q6
ODA4MAorCitPdGhlcnM6CisgIER1bXBpbmcgU2NyaXB0c05hdmlnYXRvciAnU2NyaXB0cycgdGFi
OgorICAgIChubyBkb21haW4pCisgICAgZXhhbXBsZS5jb20KKyAgICBsb2NhbGhvc3Q6ODA4MAor
ICAgICAgTGF5b3V0VGVzdHMvaW5zcGVjdG9yCisgICAgICAgIGRlYnVnZ2VyL2ZvbworICAgICAg
ICAgIGJhcgorICAgICAgICAgICAgc2NyaXB0LmpzCisgICAgICAgICAgICBzY3JpcHQuanM/YT0x
CisgICAgICAgICAgICBzY3JpcHQuanM/YT0yCisgICAgICAgICAgYmF6CisgICAgICAgIGRlYnVn
Z2VyMi9mb28KKyAgRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdDb250ZW50IHNjcmlwdHMnIHRh
YjoKKyAgICBsb2NhbGhvc3Q6ODA4MAorCitSZXZlYWxpbmcgYWxsIHJlc291cmNlczoKKyAgRHVt
cGluZyBTY3JpcHRzTmF2aWdhdG9yICdTY3JpcHRzJyB0YWI6CisgICAgKG5vIGRvbWFpbikKKyAg
ICAgID9hPWIKKyAgICAgIHZlcnlfbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b+KApgorICAgIGV4YW1wbGUuY29tCisgICAgICA/YT1iCisgICAgbG9jYWxob3N0OjgwODAKKyAg
ICAgIExheW91dFRlc3RzL2luc3BlY3RvcgorICAgICAgICBkZWJ1Z2dlci9mb28KKyAgICAgICAg
ICBiYXIKKyAgICAgICAgICAgIHNjcmlwdC5qcworICAgICAgICAgICAgc2NyaXB0LmpzP2E9MQor
ICAgICAgICAgICAgc2NyaXB0LmpzP2E9MgorICAgICAgICAgIGJhegorICAgICAgICAgICAgc2Ny
aXB0LmpzCisgICAgICAgIGRlYnVnZ2VyMi9mb28KKyAgICAgICAgICBiYXIKKyAgICAgICAgICAg
IHNjcmlwdC5qcworICAgICAgICAgICAgc2NyaXB0LmpzP2E9MQorICAgICAgICAgICAgc2NyaXB0
LmpzP2E9MgorICAgICAgICAgIGJhegorICAgICAgICAgICAgc2NyaXB0LmpzCisgIER1bXBpbmcg
U2NyaXB0c05hdmlnYXRvciAnQ29udGVudCBzY3JpcHRzJyB0YWI6CisgICAgbG9jYWxob3N0Ojgw
ODAKKyAgICAgIExheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9mb28vYmFyCisgICAgICAg
IGNvbnRlbnRTY3JpcHQuanM/YT0xCisgICAgICAgIGNvbnRlbnRTY3JpcHQuanM/YT0yCisgICAg
ICAgIGNvbnRlbnRTY3JpcHQyLmpzP2E9MQorCitSZW1vdmluZyBhbGwgcmVzb3VyY2VzOgorICBE
dW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ1NjcmlwdHMnIHRhYjoKKyAgRHVtcGluZyBTY3JpcHRz
TmF2aWdhdG9yICdDb250ZW50IHNjcmlwdHMnIHRhYjoKKworCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbmF2aWdhdG9yLXZpZXcuaHRtbCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9uYXZpZ2F0b3Itdmlldy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxOWE4
M2Q2NThkMGVkNDRkMTZjMTIxNGRiZjFhZTU3MjQ1ZmZjNWIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbmF2aWdhdG9yLXZpZXcuaHRtbApAQCAtMCww
ICsxLDk4IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci93b3Jrc3BhY2UtdGVzdC5qcyI+PC9z
Y3JpcHQ+CisKKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBXZWJJbnNwZWN0b3Iu
c2hvd1BhbmVsKCJzY3JpcHRzIik7CisgICAgSW5zcGVjdG9yVGVzdC5jcmVhdGVXb3Jrc3BhY2Uo
dHJ1ZSk7CisgICAgdmFyIHBhbmVsID0gbmV3IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwoSW5z
cGVjdG9yVGVzdC50ZXN0V29ya3NwYWNlKTsKKyAgICB2YXIgbmF2aWdhdG9yID0gcGFuZWwuX25h
dmlnYXRvcjsKKworICAgIHZhciB1aVNvdXJjZUNvZGVzID0gW107CisgICAgZnVuY3Rpb24gYWRk
VUlTb3VyY2VDb2RlKHVybCwgaXNDb250ZW50U2NyaXB0KQorICAgIHsKKyAgICAgICAgdmFyIGNv
bnRlbnRQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuU3RhdGljQ29udGVudFByb3ZpZGVyKFdl
Ykluc3BlY3Rvci5yZXNvdXJjZVR5cGVzLlNjcmlwdCwgIiIsICJ0ZXh0L2phdmFzY3JpcHQiKTsK
KyAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IEluc3BlY3RvclRlc3QudGVzdE5ldHdvcmtXb3Jr
c3BhY2VQcm92aWRlci5hZGRGaWxlRm9yVVJMKHVybCwgY29udGVudFByb3ZpZGVyLCBmYWxzZSwg
aXNDb250ZW50U2NyaXB0KTsKKyAgICAgICAgdWlTb3VyY2VDb2Rlcy5wdXNoKHVpU291cmNlQ29k
ZSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gZHVtcE5hdmlnYXRvcigpCisgICAgeworICAgICAg
ICBJbnNwZWN0b3JUZXN0LmR1bXBTY3JpcHRzTmF2aWdhdG9yKG5hdmlnYXRvciwgIiAgIik7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gZXhwYW5kRG9tYWlucyh0cmVlKQorICAgIHsKKyAgICAgICAg
dmFyIGNoaWxkcmVuID0gbmF2aWdhdG9yLl9zY3JpcHRzVmlldy5fc2NyaXB0c1RyZWUuY2hpbGRy
ZW47CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyArK2kpCisg
ICAgICAgICAgY2hpbGRyZW5baV0uZXhwYW5kKCk7CisgICAgfQorCisgICAgdmFyIHJvb3RVUkwg
PSAiaHR0cDovL2xvY2FsaG9zdDo4MDgwL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci8i
OworICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBZGRpbmcgZmlyc3QgcmVzb3VyY2U6Iik7
CisgICAgYWRkVUlTb3VyY2VDb2RlKHJvb3RVUkwgKyAiZm9vL2Jhci9zY3JpcHQuanMiLCBmYWxz
ZSk7CisgICAgZHVtcE5hdmlnYXRvcigpOworICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJF
eHBhbmRpbmcgZG9tYWluczoiKTsKKyAgICBleHBhbmREb21haW5zKG5hdmlnYXRvci5fc2NyaXB0
c1ZpZXcuX3NjcmlwdHNUcmVlKTsKKyAgICBkdW1wTmF2aWdhdG9yKCk7CisgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIkFkZGluZyBzZWNvbmQgcmVzb3VyY2U6Iik7CisgICAgYWRkVUlTb3Vy
Y2VDb2RlKHJvb3RVUkwgKyAiZm9vL2Jhci9zY3JpcHQuanM/YT0yIiwgZmFsc2UpOworICAgIGR1
bXBOYXZpZ2F0b3IoKTsKKyAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQWRkaW5nIG90aGVy
IHJlc291cmNlczoiKTsKKyAgICBhZGRVSVNvdXJjZUNvZGUocm9vdFVSTCArICJmb28vYmFyL3Nj
cmlwdC5qcz9hPTEiLCBmYWxzZSk7CisgICAgYWRkVUlTb3VyY2VDb2RlKHJvb3RVUkwgKyAiZm9v
L2Jhei9zY3JpcHQuanMiLCBmYWxzZSk7CisgICAgZHVtcE5hdmlnYXRvcigpOworCisgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFkZGluZyBjb250ZW50IHNjcmlwdHMgYW5kIHNvbWUgcmFu
ZG9tIHJlc291cmNlczoiKTsKKyAgICBhZGRVSVNvdXJjZUNvZGUocm9vdFVSTCArICJmb28vYmFy
L2NvbnRlbnRTY3JpcHQyLmpzP2E9MSIsIHRydWUpOworICAgIGFkZFVJU291cmNlQ29kZShyb290
VVJMICsgImZvby9iYXIvY29udGVudFNjcmlwdC5qcz9hPTIiLCB0cnVlKTsKKyAgICBhZGRVSVNv
dXJjZUNvZGUocm9vdFVSTCArICJmb28vYmFyL2NvbnRlbnRTY3JpcHQuanM/YT0xIiwgdHJ1ZSk7
CisgICAgYWRkVUlTb3VyY2VDb2RlKCJodHRwOi8vZXhhbXBsZS5jb20vP2E9YiIsIGZhbHNlKTsK
KyAgICBhZGRVSVNvdXJjZUNvZGUoIj9hPWIiLCBmYWxzZSk7CisgICAgYWRkVUlTb3VyY2VDb2Rl
KCJ2ZXJ5X2xvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29uZ191cmwiLCBmYWxz
ZSk7CisgICAgZHVtcE5hdmlnYXRvcigpOworCisgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IlJldmVhbGluZyBmaXJzdCByZXNvdXJjZToiKTsKKyAgICBuYXZpZ2F0b3IucmV2ZWFsVUlTb3Vy
Y2VDb2RlKHVpU291cmNlQ29kZXNbMF0pOworICAgIGR1bXBOYXZpZ2F0b3IoKTsKKworICAgIC8v
IEhlcmUgd2Uga2VlcCBodHRwOi8vbG9jYWxob3N0OjgwODAvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyMi8gZm9sZGVyIGNvbGxhcHNlZCB3aGlsZSBhZGRpbmcgcmVzb3VyY2VzIGludG8g
aXQuCisgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFkZGluZyBzb21lIHJlc291cmNlcyB0
byBjaGFuZ2UgdGhlIHdheSBkZWJ1Z2dlciBmb2xkZXIgbG9va3MgbGlrZSwgZmlyc3Q6Iik7Cisg
ICAgdmFyIHJvb3RVUkwyID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIyLyI7CisgICAgYWRkVUlTb3VyY2VDb2RlKHJvb3RVUkwyICsgImZvby9i
YXIvc2NyaXB0LmpzIiwgZmFsc2UpOworICAgIGR1bXBOYXZpZ2F0b3IoKTsKKworICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCJTZWNvbmQ6Iik7CisgICAgYWRkVUlTb3VyY2VDb2RlKHJvb3RV
UkwyICsgImZvby9iYXIvc2NyaXB0LmpzP2E9MiIsIGZhbHNlKTsKKyAgICBkdW1wTmF2aWdhdG9y
KCk7CisgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIk90aGVyczoiKTsKKyAgICBhZGRVSVNv
dXJjZUNvZGUocm9vdFVSTDIgKyAiZm9vL2Jhci9zY3JpcHQuanM/YT0xIiwgZmFsc2UpOworICAg
IGFkZFVJU291cmNlQ29kZShyb290VVJMMiArICJmb28vYmF6L3NjcmlwdC5qcyIsIGZhbHNlKTsK
KyAgICBkdW1wTmF2aWdhdG9yKCk7CisKKyAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUmV2
ZWFsaW5nIGFsbCByZXNvdXJjZXM6Iik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB1aVNvdXJj
ZUNvZGVzLmxlbmd0aDsgKytpKQorICAgICAgICBuYXZpZ2F0b3IucmV2ZWFsVUlTb3VyY2VDb2Rl
KHVpU291cmNlQ29kZXNbaV0pOworICAgIGR1bXBOYXZpZ2F0b3IoKTsKKworICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJSZW1vdmluZyBhbGwgcmVzb3VyY2VzOiIpOworICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgdWlTb3VyY2VDb2Rlcy5sZW5ndGg7ICsraSkKKyAgICAgICAgbmF2aWdhdG9y
LnJlbW92ZVVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGVzW2ldKTsKKyAgICBkdW1wTmF2aWdhdG9y
KCk7CisKKyAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworfQorPC9zY3JpcHQ+CisK
KzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPgorVGVzdHMgc2NyaXB0cyBw
YW5lbCBmaWxlIHNlbGVjdG9ycy4KKzwvcD4KKzwvYm9keT4KKworPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtZmlsZS1zZWxlY3Rvci1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1maWxl
LXNlbGVjdG9yLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTkz
NjQwOTdkODViN2RlZmY3YTFmZmIzY2Q0MmVlODMyZjJlYzIyOS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvc2NyaXB0cy1maWxlLXNlbGVjdG9yLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDMxICswLDAgQEAKLVRlc3RzIHNjcmlwdHMgcGFuZWwgZmlsZSBzZWxlY3RvcnMuCi0KLUR1bXBp
bmcgU2NyaXB0c05hdmlnYXRvciAnU2NyaXB0cycgdGFiOgotICBleGFtcGxlLmNvbQotICBsb2Nh
bGhvc3Q6ODA4MAotICAgIExheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9mb28vYmFyCi0g
ICAgTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Zvby9iYXoKLSAgP2E9YgotICB2ZXJ5
X2xvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb2/igKYKLUR1bXBpbmcgU2NyaXB0
c05hdmlnYXRvciAnQ29udGVudCBzY3JpcHRzJyB0YWI6Ci0gIGxvY2FsaG9zdDo4MDgwCi0gICAg
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Zvby9iYXIKLUR1bXBpbmcgU2NyaXB0c05h
dmlnYXRvciAnU2NyaXB0cycgdGFiOgotICBleGFtcGxlLmNvbQotICAgID9hPWIKLSAgbG9jYWxo
b3N0OjgwODAKLSAgICBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZm9vL2JhcgotICAg
ICAgc2NyaXB0LmpzCi0gICAgICBzY3JpcHQuanM/YT0xCi0gICAgICBzY3JpcHQuanM/YT0yCi0g
ICAgTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Zvby9iYXoKLSAgICAgIHNjcmlwdC5q
cwotICA/YT1iCi0gIHZlcnlfbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb+KA
pgotRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdDb250ZW50IHNjcmlwdHMnIHRhYjoKLSAgbG9j
YWxob3N0OjgwODAKLSAgICBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZm9vL2Jhcgot
ICAgICAgY29udGVudFNjcmlwdC5qcz9hPTEKLSAgICAgIGNvbnRlbnRTY3JpcHQuanM/YT0yCi0g
ICAgICBjb250ZW50U2NyaXB0Mi5qcz9hPTEKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtZmlsZS1zZWxlY3Rvci5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtZmlsZS1zZWxlY3Rvci5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA1NzJlMmJmNWNiMmRlYTA4NGZmNjM1OTgxZWRiZjgzZWE1ZWFm
MzgxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLWZpbGUtc2VsZWN0b3IuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDU1ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMi
Pjwvc2NyaXB0PgotCi08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgLy8gQWx3YXlz
IHVzZSBpbmRlbnRhdGlvbiBpbiBzY3JpcHRzIGRyb3AgYm94Ci0gICAgV2ViSW5zcGVjdG9yLl9p
c01hYyA9IGZhbHNlOwotCi0gICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgic2NyaXB0cyIpOwot
Ci0gICAgdmFyIG5hdmlnYXRvciA9IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0c05hdmlnYXRvcigp
OwotICAgIHZhciB3b3Jrc3BhY2UgPSBuZXcgV2ViSW5zcGVjdG9yLldvcmtzcGFjZSgpOwotICAg
IHZhciB3b3Jrc3BhY2VQcm92aWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuU2ltcGxlV29ya3NwYWNl
UHJvdmlkZXIod29ya3NwYWNlLCBXZWJJbnNwZWN0b3IucHJvamVjdFR5cGVzLk5ldHdvcmspOwot
Ci0gICAgdmFyIHVpU291cmNlQ29kZXMgPSBbXTsKLSAgICBmdW5jdGlvbiBhZGRVSVNvdXJjZUNv
ZGUodXJsLCBpc0NvbnRlbnRTY3JpcHQpCi0gICAgewotICAgICAgICB2YXIgY29udGVudFByb3Zp
ZGVyID0gbmV3IFdlYkluc3BlY3Rvci5TdGF0aWNDb250ZW50UHJvdmlkZXIoV2ViSW5zcGVjdG9y
LnJlc291cmNlVHlwZXMuU2NyaXB0LCAiIiwgInRleHQvamF2YXNjcmlwdCIpOwotICAgICAgICB2
YXIgdWlTb3VyY2VDb2RlID0gd29ya3NwYWNlUHJvdmlkZXIuYWRkRmlsZUZvclVSTCh1cmwsIGNv
bnRlbnRQcm92aWRlciwgZmFsc2UsIGlzQ29udGVudFNjcmlwdCk7Ci0gICAgICAgIG5hdmlnYXRv
ci5hZGRVSVNvdXJjZUNvZGUodWlTb3VyY2VDb2RlKTsKLSAgICAgICAgdWlTb3VyY2VDb2Rlcy5w
dXNoKHVpU291cmNlQ29kZSk7Ci0gICAgfQotCi0gICAgdmFyIHJvb3RVUkwgPSAiaHR0cDovL2xv
Y2FsaG9zdDo4MDgwL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci8iOwotICAgIGFkZFVJ
U291cmNlQ29kZShyb290VVJMICsgImZvby9iYXIvc2NyaXB0LmpzIiwgZmFsc2UpOwotICAgIGFk
ZFVJU291cmNlQ29kZShyb290VVJMICsgImZvby9iYXIvY29udGVudFNjcmlwdDIuanM/YT0xIiwg
dHJ1ZSk7Ci0gICAgYWRkVUlTb3VyY2VDb2RlKHJvb3RVUkwgKyAiZm9vL2Jhci9zY3JpcHQuanM/
YT0yIiwgZmFsc2UpOwotICAgIGFkZFVJU291cmNlQ29kZShyb290VVJMICsgImZvby9iYXIvY29u
dGVudFNjcmlwdC5qcz9hPTIiLCB0cnVlKTsKLSAgICBhZGRVSVNvdXJjZUNvZGUocm9vdFVSTCAr
ICJmb28vYmFyL3NjcmlwdC5qcz9hPTEiLCBmYWxzZSk7Ci0gICAgYWRkVUlTb3VyY2VDb2RlKHJv
b3RVUkwgKyAiZm9vL2Jhei9zY3JpcHQuanMiLCBmYWxzZSk7Ci0gICAgYWRkVUlTb3VyY2VDb2Rl
KHJvb3RVUkwgKyAiZm9vL2Jhci9jb250ZW50U2NyaXB0LmpzP2E9MSIsIHRydWUpOwotICAgIGFk
ZFVJU291cmNlQ29kZSgiaHR0cDovL2V4YW1wbGUuY29tLz9hPWIiLCBmYWxzZSk7Ci0gICAgYWRk
VUlTb3VyY2VDb2RlKCI/YT1iIiwgZmFsc2UpOwotICAgIGFkZFVJU291cmNlQ29kZSgidmVyeV9s
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vbmdfdXJsIiwgZmFsc2UpOwotCi0g
ICAgSW5zcGVjdG9yVGVzdC5kdW1wU2NyaXB0c05hdmlnYXRvcihuYXZpZ2F0b3IpOwotICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgdWlTb3VyY2VDb2Rlcy5sZW5ndGg7ICsraSkKLSAgICAgICAgbmF2
aWdhdG9yLnJldmVhbFVJU291cmNlQ29kZSh1aVNvdXJjZUNvZGVzW2ldKTsKLSAgICBJbnNwZWN0
b3JUZXN0LmR1bXBTY3JpcHRzTmF2aWdhdG9yKG5hdmlnYXRvcik7Ci0KLSAgICBJbnNwZWN0b3JU
ZXN0LmNvbXBsZXRlVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci0KLTwvaGVhZD4KLTxib2R5IG9ubG9h
ZD0icnVuVGVzdCgpIj4KLTxwPgotVGVzdHMgc2NyaXB0cyBwYW5lbCBmaWxlIHNlbGVjdG9ycy4K
LTwvcD4KLTwvYm9keT4KLQotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwtZXhwZWN0ZWQudHh0CmluZGV4IDVhYzIxY2Jh
NWQ0ZjUzMmQ2NTBjYWM2NGYzZjI2ZjhjZDEzNmNjMGEuLmViYTI5NjJiMjM0ZmU4MDU3ODRjYTAz
NGNkYzhiZjVmYzJlNjIwMDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9zY3JpcHRzLXBhbmVsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvc2NyaXB0cy1wYW5lbC1leHBlY3RlZC50eHQKQEAgLTMsMzAgKzMsNDMgQEAg
VGVzdHMgdGhhdCBzY3JpcHRzIHBhbmVsIFVJIGVsZW1lbnRzIHdvcmsgYXMgaW50ZW5kZWQuCiAK
IFJ1bm5pbmc6IHRlc3RJbml0aWFsTG9hZAogRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdTY3Jp
cHRzJyB0YWI6Ci0gIGJhci5qcwotICBiYXouanMKLSAgZm9vLmpzCi0gIGZvb2Jhci5qcworICAo
bm8gZG9tYWluKQorICAgIGJhci5qcworICAgIGJhei5qcworICAgIGZvby5qcworICAgIGZvb2Jh
ci5qcwogRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdDb250ZW50IHNjcmlwdHMnIHRhYjoKKwog
U291cmNlIHJlcXVlc3RlZCBmb3IgYmF6LmpzCiAKIFJ1bm5pbmc6IHRlc3RSZXNldAogU291cmNl
IHJlcXVlc3RlZCBmb3IgYmF6LmpzCiBEdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ1NjcmlwdHMn
IHRhYjoKLSAgYmFyLmpzCi0gIGJhei5qcwotICBmb28uanMKKyAgKG5vIGRvbWFpbikKKyAgICBi
YXIuanMKKyAgICBiYXouanMKKyAgICBmb28uanMKK0R1bXBpbmcgU2NyaXB0c05hdmlnYXRvciAn
Q29udGVudCBzY3JpcHRzJyB0YWI6CisKK0R1bXBpbmcgU2NyaXB0c05hdmlnYXRvciAnU2NyaXB0
cycgdGFiOgogRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdDb250ZW50IHNjcmlwdHMnIHRhYjoK
KwogRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdTY3JpcHRzJyB0YWI6Ci0gIGJhci5qcworICAo
bm8gZG9tYWluKQorICAgIGJhci5qcwogRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdDb250ZW50
IHNjcmlwdHMnIHRhYjoKIAorCiBSdW5uaW5nOiB0ZXN0RGVidWdnZXJVSVNvdXJjZUNvZGVBZGRl
ZEFuZFJlbW92ZWQKIER1bXBpbmcgU2NyaXB0c05hdmlnYXRvciAnU2NyaXB0cycgdGFiOgotICBm
b28uanMKKyAgKG5vIGRvbWFpbikKKyAgICBmb28uanMKIER1bXBpbmcgU2NyaXB0c05hdmlnYXRv
ciAnQ29udGVudCBzY3JpcHRzJyB0YWI6CisKIER1bXBpbmcgU2NyaXB0c05hdmlnYXRvciAnU2Ny
aXB0cycgdGFiOgotICBmb28uanMKLSAgc291cmNlLmpzCisgIChubyBkb21haW4pCisgICAgZm9v
LmpzCisgICAgc291cmNlLmpzCiBEdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ0NvbnRlbnQgc2Ny
aXB0cycgdGFiOgogCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9zY3JpcHRzLXBhbmVsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2Ny
aXB0cy1wYW5lbC5odG1sCmluZGV4IGNjYzkwYjAzMGRmMWI1MTI3Y2M3YmMwMzZlZWIyYTZkNjE2
NmI2OWMuLjgxYjIxNGQ1MTY5OTI1ZDhkYzQzNzNmM2U5NzY5ZDRiZWY1NjI1OTQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwuaHRtbApAQCAt
MiwxOCArMiwxMiBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3dvcmtzcGFjZS10ZXN0LmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQ+CiBmdW5jdGlvbiB0ZXN0KCkKIHsKLSAgICAvLyBBbHdheXMgdXNlIGluZGVu
dGF0aW9uIGluIHNjcmlwdHMgZHJvcCBib3gKLSAgICBXZWJJbnNwZWN0b3IuX2lzTWFjID0gZmFs
c2U7CiAgICAgV2ViSW5zcGVjdG9yLnNob3dQYW5lbCgic2NyaXB0cyIpOwotCi0gICAgdmFyIHBl
cnNpc3RlbnRCcmVha3BvaW50cyA9IFtdOwotICAgIHZhciBicmVha3BvaW50U3RvcmFnZSA9IHsK
LSAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIHBlcnNpc3RlbnRCcmVha3BvaW50czsg
fSwKLSAgICAgICAgc2V0OiBmdW5jdGlvbihicmVha3BvaW50cykgeyBwZXJzaXN0ZW50QnJlYWtw
b2ludHMgPSBicmVha3BvaW50czsgfQotICAgIH07CisgICAgSW5zcGVjdG9yVGVzdC5jcmVhdGVX
b3Jrc3BhY2UodHJ1ZSk7CiAKICAgICBmdW5jdGlvbiBjcmVhdGVDb250ZW50UHJvdmlkZXIodXJs
KQogICAgIHsKQEAgLTI4LDIwICsyMiwxOSBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgIGZ1bmN0
aW9uIGNyZWF0ZU1vY2tXb3Jrc3BhY2UoKQogICAgIHsKLSAgICAgICAgdmFyIHdvcmtzcGFjZSA9
IG5ldyBXZWJJbnNwZWN0b3IuV29ya3NwYWNlKCk7Ci0gICAgICAgIHdvcmtzcGFjZS5uZXR3b3Jr
V29ya3NwYWNlUHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlNpbXBsZVdvcmtzcGFjZVByb3Zp
ZGVyKHdvcmtzcGFjZSwgV2ViSW5zcGVjdG9yLnByb2plY3RUeXBlcy5OZXR3b3JrKTsKLSAgICAg
ICAgd29ya3NwYWNlLmRlYnVnZ2VyV29ya3NwYWNlUHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9y
LlNpbXBsZVdvcmtzcGFjZVByb3ZpZGVyKHdvcmtzcGFjZSwgV2ViSW5zcGVjdG9yLnByb2plY3RU
eXBlcy5EZWJ1Z2dlcik7Ci0gICAgICAgIHJldHVybiB3b3Jrc3BhY2U7CisgICAgICAgIEluc3Bl
Y3RvclRlc3QuY3JlYXRlV29ya3NwYWNlKHRydWUpOworICAgICAgICBJbnNwZWN0b3JUZXN0LnRl
c3REZWJ1Z2dlcldvcmtzcGFjZVByb3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5TaW1wbGVXb3Jr
c3BhY2VQcm92aWRlcihJbnNwZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2UsIFdlYkluc3BlY3Rvci5w
cm9qZWN0VHlwZXMuRGVidWdnZXIpOworICAgICAgICByZXR1cm4gSW5zcGVjdG9yVGVzdC50ZXN0
V29ya3NwYWNlOwogICAgIH0KIAogICAgIGZ1bmN0aW9uIGFkZE5ldHdvcmtGaWxlKHdvcmtzcGFj
ZSwgdXJsKQogICAgIHsKLSAgICAgICAgd29ya3NwYWNlLm5ldHdvcmtXb3Jrc3BhY2VQcm92aWRl
ci5hZGRGaWxlRm9yVVJMKHVybCwgY3JlYXRlQ29udGVudFByb3ZpZGVyKHVybCksIGZhbHNlKTsK
KyAgICAgICAgcmV0dXJuIEluc3BlY3RvclRlc3QudGVzdE5ldHdvcmtXb3Jrc3BhY2VQcm92aWRl
ci5hZGRGaWxlRm9yVVJMKHVybCwgY3JlYXRlQ29udGVudFByb3ZpZGVyKHVybCksIGZhbHNlKTsK
ICAgICB9CiAKICAgICBmdW5jdGlvbiBhZGREZWJ1Z2dlckZpbGUod29ya3NwYWNlLCB1cmwpCiAg
ICAgewotICAgICAgICB3b3Jrc3BhY2UuZGVidWdnZXJXb3Jrc3BhY2VQcm92aWRlci5hZGRVbmlx
dWVGaWxlRm9yVVJMKHVybCwgY3JlYXRlQ29udGVudFByb3ZpZGVyKHVybCksIGZhbHNlKTsKKyAg
ICAgICAgcmV0dXJuIEluc3BlY3RvclRlc3QudGVzdERlYnVnZ2VyV29ya3NwYWNlUHJvdmlkZXIu
YWRkRmlsZUZvclVSTCh1cmwsIGNyZWF0ZUNvbnRlbnRQcm92aWRlcih1cmwpLCBmYWxzZSk7CiAg
ICAgfQogCiAgICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0U3VpdGUoWwpAQCAtNTYsNyArNDksOCBA
QCBmdW5jdGlvbiB0ZXN0KCkKIAogICAgICAgICAgICAgYWRkTmV0d29ya0ZpbGUod29ya3NwYWNl
LCAiZm9vLmpzIik7CiAgICAgICAgICAgICBhZGROZXR3b3JrRmlsZSh3b3Jrc3BhY2UsICJiYXIu
anMiKTsKLSAgICAgICAgICAgIGFkZE5ldHdvcmtGaWxlKHdvcmtzcGFjZSwgImJhei5qcyIpOwor
ICAgICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IGFkZE5ldHdvcmtGaWxlKHdvcmtzcGFjZSwg
ImJhei5qcyIpOworICAgICAgICAgICAgcGFuZWwuX25hdmlnYXRvci5yZXZlYWxVSVNvdXJjZUNv
ZGUodWlTb3VyY2VDb2RlKTsKIAogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2NyaXB0
c05hdmlnYXRvcihwYW5lbC5fbmF2aWdhdG9yKTsKIApAQCAtODAsOCArNzQsMTAgQEAgZnVuY3Rp
b24gdGVzdCgpCiAKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNjcmlwdHNOYXZpZ2F0
b3IocGFuZWwuX25hdmlnYXRvcik7CiAKLSAgICAgICAgICAgIHdvcmtzcGFjZS5uZXR3b3JrV29y
a3NwYWNlUHJvdmlkZXIucmVzZXQoKTsKLSAgICAgICAgICAgIGFkZE5ldHdvcmtGaWxlKHdvcmtz
cGFjZSwgImJhci5qcyIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC50ZXN0TmV0d29ya1dv
cmtzcGFjZVByb3ZpZGVyLnJlc2V0KCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBT
Y3JpcHRzTmF2aWdhdG9yKHBhbmVsLl9uYXZpZ2F0b3IpOworICAgICAgICAgICAgdmFyIHVpU291
cmNlQ29kZSA9IGFkZE5ldHdvcmtGaWxlKHdvcmtzcGFjZSwgImJhci5qcyIpOworICAgICAgICAg
ICAgcGFuZWwuX25hdmlnYXRvci5yZXZlYWxVSVNvdXJjZUNvZGUodWlTb3VyY2VDb2RlKTsKICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNjcmlwdHNOYXZpZ2F0b3IocGFuZWwuX25hdmln
YXRvcik7CiAKICAgICAgICAgICAgIHBhbmVsLmRldGFjaCgpOwpAQCAtOTQsOSArOTAsMTAgQEAg
ZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAgICB2YXIgcGFuZWwgPSBuZXcgV2ViSW5zcGVjdG9y
LlNjcmlwdHNQYW5lbCh3b3Jrc3BhY2UpOwogICAgICAgICAgICAgcGFuZWwuc2hvdygpOwogCi0g
ICAgICAgICAgICBhZGROZXR3b3JrRmlsZSh3b3Jrc3BhY2UsICJmb28uanMiKTsKLSAgICAgICAg
ICAgIGFkZERlYnVnZ2VyRmlsZSh3b3Jrc3BhY2UsICJjb21waWxlZC5qcyIpOwotCisgICAgICAg
ICAgICB2YXIgdWlTb3VyY2VDb2RlID0gYWRkTmV0d29ya0ZpbGUod29ya3NwYWNlLCAiZm9vLmpz
Iik7CisgICAgICAgICAgICB2YXIgZGVidWdnZXJVSVNvdXJjZUNvZGUgPSBhZGREZWJ1Z2dlckZp
bGUod29ya3NwYWNlLCAiY29tcGlsZWQuanMiKTsKKyAgICAgICAgICAgIHBhbmVsLl9uYXZpZ2F0
b3IucmV2ZWFsVUlTb3VyY2VDb2RlKHVpU291cmNlQ29kZSk7CisgICAgICAgICAgICBwYW5lbC5f
bmF2aWdhdG9yLnJldmVhbFVJU291cmNlQ29kZShkZWJ1Z2dlclVJU291cmNlQ29kZSk7CiAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTY3JpcHRzTmF2aWdhdG9yKHBhbmVsLl9uYXZpZ2F0
b3IpOwogCiAgICAgICAgICAgICAvLyBQbHVnIGNvbXBpbGVyIHNvdXJjZSBtYXBwaW5nLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtc29ydGluZy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1zb3J0
aW5nLWV4cGVjdGVkLnR4dAppbmRleCBiY2EzYzM4YmY5YWNmMzI3N2U3OTVhNTFhNzczNDljMTNj
MjY2YTE2Li4zMDg1OWU1MGZlOTFiZTg2MmY0ZmNmM2I3YTMzOWMzZmNlNmJhOGM3IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1zb3J0aW5nLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1zb3J0
aW5nLWV4cGVjdGVkLnR4dApAQCAtMiwxOSArMiwzMiBAQCBUZXN0cyBzY3JpcHRzIHNvcnRpbmcg
aW4gdGhlIHNjcmlwdHMgcGFuZWwuCiAKIAogRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdTY3Jp
cHRzJyB0YWI6CisgIChubyBkb21haW4pCisgIGJhci5jb20KKyAgZm9vLmNvbQorRHVtcGluZyBT
Y3JpcHRzTmF2aWdhdG9yICdDb250ZW50IHNjcmlwdHMnIHRhYjoKKyAgKG5vIGRvbWFpbikKKyAg
ZXh0ZW5zaW9uLW5hbWUKKworRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdTY3JpcHRzJyB0YWI6
CisgIChubyBkb21haW4pCiAgIGJhci5jb20KLSAgICBmb28vcGF0aAogICBmb28uY29tCiAgICAg
X2pzL3Byb2R1Y3Rpb24KICAgICBmb28vcGF0aAogICAgIGkKLSAgICBpL2pzCi0gICpOb24qVVJM
KnBhdGgKKyAgICBibG9jay5qcz9ibG9jaz1mb28KKyAgICBnYS5qcworICAgIGxlbnRhLmJhbj9w
Zz00ODgzJmlmcj0xCisgICAgbGVudGEuYmFuP3BnPTUzMDkmaWZyPTEKKyAgICB0b3AxMDAuamNu
PzgwNjc0CiBEdW1waW5nIFNjcmlwdHNOYXZpZ2F0b3IgJ0NvbnRlbnQgc2NyaXB0cycgdGFiOgor
ICAobm8gZG9tYWluKQogICBleHRlbnNpb24tbmFtZQotICAgIGZvbGRlcgotICAqQW5vdGhlcipO
b24qVVJMKnBhdGgKKwogRHVtcGluZyBTY3JpcHRzTmF2aWdhdG9yICdTY3JpcHRzJyB0YWI6Cisg
IChubyBkb21haW4pCisgICAgKk5vbipVUkwqcGF0aAogICBiYXIuY29tCiAgICAgZm9vL3BhdGgK
ICAgICAgIGJhci5qcz9maWxlPWJhci96enouanMKQEAgLTI2LDIwICszOSwyMSBAQCBEdW1waW5n
IFNjcmlwdHNOYXZpZ2F0b3IgJ1NjcmlwdHMnIHRhYjoKICAgICAgIGJhci5qcz9maWxlPWJhci96
enouanMKICAgICAgIGZvby5qcz9maWxlPWJhci9hYWEuanMKICAgICBpCisgICAgICBqcworICAg
ICAgICBqcXVlcnktMS41LjEubWluLmpzCisgICAgICAgIGpxdWVyeS5jb29raWUuanMKICAgICAg
IHhnZW1pdXMuanMKLSAgICBpL2pzCi0gICAgICBqcXVlcnktMS41LjEubWluLmpzCi0gICAgICBq
cXVlcnkuY29va2llLmpzCiAgICAgYmxvY2suanM/YmxvY2s9Zm9vCiAgICAgZ2EuanMKICAgICBs
ZW50YS5iYW4/cGc9NDg4MyZpZnI9MQogICAgIGxlbnRhLmJhbj9wZz01MzA5Jmlmcj0xCiAgICAg
dG9wMTAwLmpjbj84MDY3NAotICAqTm9uKlVSTCpwYXRoCiBEdW1waW5nIFNjcmlwdHNOYXZpZ2F0
b3IgJ0NvbnRlbnQgc2NyaXB0cycgdGFiOgorICAobm8gZG9tYWluKQorICAgICpBbm90aGVyKk5v
bipVUkwqcGF0aAogICBleHRlbnNpb24tbmFtZQogICAgIGZvbGRlcgogICAgICAgYmF6LmpzCiAg
ICAgYmFyLmpzCi0gICpBbm90aGVyKk5vbipVUkwqcGF0aAorCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXNvcnRpbmcuaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXNvcnRpbmcuaHRtbAppbmRleCA4YTM0Yjgz
ZjhhNGQ1NzI2NmM0Y2M4MmQ3ZDBhZjM3NTYxN2QyZGY5Li4zZGE0ZGFjZmFmOTI2NzI0OGMyMWQz
NWI5NWQwMWMyYjUyYTA4ZGEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvc2NyaXB0cy1zb3J0aW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL3NjcmlwdHMtc29ydGluZy5odG1sCkBAIC0yLDI0ICsyLDIxIEBACiA8aGVhZD4KIDxz
Y3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3Ivd29ya3NwYWNlLXRlc3QuanMiPjwvc2NyaXB0PgogCiA8c2NyaXB0PgogZnVuY3Rpb24g
dGVzdCgpCiB7Ci0gICAgLy8gQWx3YXlzIHVzZSBpbmRlbnRhdGlvbiBpbiBzY3JpcHRzIGRyb3Ag
Ym94Ci0gICAgV2ViSW5zcGVjdG9yLl9pc01hYyA9IGZhbHNlOwogICAgIFdlYkluc3BlY3Rvci5z
aG93UGFuZWwoInNjcmlwdHMiKTsKLQotICAgIHZhciBuYXZpZ2F0b3IgPSBuZXcgV2ViSW5zcGVj
dG9yLlNjcmlwdHNOYXZpZ2F0b3IoKTsKLSAgICB2YXIgd29ya3NwYWNlID0gbmV3IFdlYkluc3Bl
Y3Rvci5Xb3Jrc3BhY2UoKTsKLSAgICB2YXIgd29ya3NwYWNlUHJvdmlkZXIgPSBuZXcgV2ViSW5z
cGVjdG9yLlNpbXBsZVdvcmtzcGFjZVByb3ZpZGVyKHdvcmtzcGFjZSwgV2ViSW5zcGVjdG9yLnBy
b2plY3RUeXBlcy5OZXR3b3JrKTsKKyAgICBJbnNwZWN0b3JUZXN0LmNyZWF0ZVdvcmtzcGFjZSh0
cnVlKTsKKyAgICB2YXIgcGFuZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbChJbnNw
ZWN0b3JUZXN0LnRlc3RXb3Jrc3BhY2UpOworICAgIHZhciBuYXZpZ2F0b3IgPSBwYW5lbC5fbmF2
aWdhdG9yOwogCiAgICAgdmFyIHVpU291cmNlQ29kZXMgPSBbXTsKICAgICBmdW5jdGlvbiBhZGRV
SVNvdXJjZUNvZGUodXJsLCBpc0NvbnRlbnRTY3JpcHQpCiAgICAgewogICAgICAgICB2YXIgY29u
dGVudFByb3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rvci5TdGF0aWNDb250ZW50UHJvdmlkZXIoV2Vi
SW5zcGVjdG9yLnJlc291cmNlVHlwZXMuU2NyaXB0LCAiIiwgInRleHQvamF2YXNjcmlwdCIpOwot
ICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gd29ya3NwYWNlUHJvdmlkZXIuYWRkRmlsZUZvclVS
TCh1cmwsIGNvbnRlbnRQcm92aWRlciwgZmFsc2UsIGlzQ29udGVudFNjcmlwdCk7Ci0gICAgICAg
IG5hdmlnYXRvci5hZGRVSVNvdXJjZUNvZGUodWlTb3VyY2VDb2RlKTsKKyAgICAgICAgdmFyIHVp
U291cmNlQ29kZSA9IEluc3BlY3RvclRlc3QudGVzdE5ldHdvcmtXb3Jrc3BhY2VQcm92aWRlci5h
ZGRGaWxlRm9yVVJMKHVybCwgY29udGVudFByb3ZpZGVyLCBmYWxzZSwgaXNDb250ZW50U2NyaXB0
KTsKICAgICAgICAgdWlTb3VyY2VDb2Rlcy5wdXNoKHVpU291cmNlQ29kZSk7CiAgICAgfQogCkBA
IC0yNyw2ICsyNCw4IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHsKICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIiIpOwogICAgICAgICBJbnNwZWN0b3JUZXN0LmR1bXBTY3JpcHRzTmF2
aWdhdG9yKG5hdmlnYXRvcik7CisgICAgICAgIG5hdmlnYXRvci5yZXZlYWxVSVNvdXJjZUNvZGUo
dWlTb3VyY2VDb2Rlc1swXSk7CisgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcFNjcmlwdHNOYXZp
Z2F0b3IobmF2aWdhdG9yKTsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB1aVNvdXJjZUNv
ZGVzLmxlbmd0aDsgKytpKQogICAgICAgICAgICAgbmF2aWdhdG9yLnJldmVhbFVJU291cmNlQ29k
ZSh1aVNvdXJjZUNvZGVzW2ldKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wU2NyaXB0c05h
dmlnYXRvcihuYXZpZ2F0b3IpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>190997</attachid>
            <date>2013-03-01 11:33:17 -0800</date>
            <delta_ts>2013-03-01 11:36:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108943-20130301112928.patch</filename>
            <type>text/plain</type>
            <size>51801</size>
            <attacher name="Brandon Jones">bajones</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NDY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWMyODhlOWVjYThhMWM5
NGI0YWY5ZjlmMjQ2ZmE5ZWE0MTdkNjkxYi4uOTYzZmI0MjA2YzRiNDg4MjJjYmZiMGZiNzVkNTdk
Nzc5NmI1YmY5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEzLTAzLTAxICBCcmFu
ZG9uIEpvbmVzICA8YmFqb25lc0Bnb29nbGUuY29tPgorCisgICAgICAgIFdFQkdMX2NvbXByZXNz
ZWRfdGV4dHVyZV9hdGMgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDQ5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IHdlYmdsL2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMv
d2ViZ2wtY29tcHJlc3NlZC10ZXh0dXJlLWF0Yy5odG1sCisKKyAgICAgICAgRXhwb3NlcyB0aGUg
V0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX2F0YyBleHRlbnNpb24sIGJ1dCBpcyB1bnZlcmlmaWVk
IHNpbmNlIG5vIGRlc2t0b3AgaGFyZHdhcmUgc3VwcG9ydHMKKyAgICAgICAgdGhlIGZvcm1hdCB0
aGF0IEkgYW0gYXdhcmUgb2YuIFNob3VsZCBlbmFibGUgbW9iaWxlIHBvcnRzIHRvIGV4cG9zZSB0
aGUgZm9ybWF0LCBob3dldmVyLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5wcmk6Cisg
ICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAg
ICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRD
dXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgICogaHRtbC9jYW52
YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmguCisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEM6OldlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVBVEMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFU
Qzo6fldlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xD
b21wcmVzc2VkVGV4dHVyZUFUQzo6Z2V0TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTENv
bXByZXNzZWRUZXh0dXJlQVRDOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xDb21w
cmVzc2VkVGV4dHVyZUFUQzo6c3VwcG9ydGVkKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJH
TENvbXByZXNzZWRUZXh0dXJlQVRDLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMRXh0ZW5zaW9uLmguCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkdMQ29tcHJlc3NlZFRleHR1cmVBVEMpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMQ29t
cHJlc3NlZFRleHR1cmVBVEMuaWRsOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTEV4dGVuc2lvbi5oLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRXh0ZW5z
aW9uLmg6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250
ZXh0OjpwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0NhbnZhcyk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEV4dGVuc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFN1cHBvcnRlZEV4dGVuc2lvbnMpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp2YWxpZGF0ZUNvbXByZXNzZWRUZXhGdW5j
RGF0YSk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0Lmg6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkdMUmVuZGVyaW5nQ29udGV4dCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5zaW9uczNELmg6CisKKwogMjAxMy0wMy0wMSAg
VnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5z
cGVjdG9yOiBOYXZpZ2F0b3Igc2hvdWxkIHNob3cgdHJlZSBlbGVtZW50IGZvciBlYWNoIGZvbGRl
ciBpbiB0aGUgc291cmNlIHBhdGguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGY2NzBjZjBlZTlk
MmM5MWNiMGY0YzUwMjJlNzE5MDU3OTc5NDk1N2YuLjliM2UyZWYwMDk2ZTAzZGU5YWEyMWRkYzM1
M2U5Y2MyMTE3OTRiY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC01MzAsNiArNTMwLDcgQEAg
c2V0KFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgaHRtbC9jYW52YXMvVWludDhDbGFtcGVkQXJyYXku
aWRsCiAgICAgaHRtbC9jYW52YXMvV2ViR0xBY3RpdmVJbmZvLmlkbAogICAgIGh0bWwvY2FudmFz
L1dlYkdMQnVmZmVyLmlkbAorICAgIGh0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVB
VEMuaWRsCiAgICAgaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaWRsCiAg
ICAgaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0QXR0cmlidXRlcy5pZGwKICAgICBodG1sL2NhbnZh
cy9XZWJHTENvbnRleHRFdmVudC5pZGwKQEAgLTE1MTQsNiArMTUxNSw3IEBAIHNldChXZWJDb3Jl
X1NPVVJDRVMKICAgICBodG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAKICAgICBo
dG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmNwcAogICAgIGh0bWwvY2FudmFzL1dlYkdM
QnVmZmVyLmNwcAorICAgIGh0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3Bw
CiAgICAgaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuY3BwCiAgICAgaHRt
bC9jYW52YXMvV2ViR0xDb250ZXh0QXR0cmlidXRlcy5jcHAKICAgICBodG1sL2NhbnZhcy9XZWJH
TENvbnRleHRFdmVudC5jcHAKQEAgLTI2MjgsNiArMjYzMCw3IEBAIGlmIChFTkFCTEVfV0VCR0wp
CiAgICAgICAgIGh0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmNwcAogICAgICAgICBo
dG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmNwcAogICAgICAgICBodG1sL2NhbnZhcy9X
ZWJHTEJ1ZmZlci5jcHAKKyAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVy
ZUFUQy5jcHAKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMu
Y3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuY3BwCiAgICAg
ICAgIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEV2ZW50LmNwcApAQCAtMjY2Niw2ICsyNjY5LDcg
QEAgaWYgKEVOQUJMRV9XRUJHTCkKICAgICAgICAgaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4
VWludC5pZGwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xBY3RpdmVJbmZvLmlkbAogICAgICAg
ICBodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5pZGwKKyAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xD
b21wcmVzc2VkVGV4dHVyZUFUQy5pZGwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xDb21wcmVz
c2VkVGV4dHVyZVMzVEMuaWRsCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEF0dHJp
YnV0ZXMuaWRsCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEV2ZW50LmlkbApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggZGVkMGU3OTA0MWEzYjUwYjRjZjBhMWM3NGM1
Njk5NjBkMDY2NGU4NS4uYTlhYzQxMmRkZmNiMjliYzFhN2E2NDJmOTA1OWQzZGYwNjNkNWQ4NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC00MDcsNiArNDA3LDcgQEAgQklORElO
R19JRExTID0gXAogICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvVWludDhDbGFtcGVkQXJyYXku
aWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1dlYkdMQWN0aXZlSW5mby5pZGwgXAog
ICAgICQoV2ViQ29yZSkvaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaWRsIFwKKyAgICAkKFdlYkNv
cmUpL2h0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuaWRsIFwKICAgICAkKFdl
YkNvcmUpL2h0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRBdHRyaWJ1dGVzLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRFdmVudC5pZGwgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpIGIvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMucHJpCmluZGV4IDBjNTkwMDJiMTU0YmJkNGIwZTcyODdkNWM4MDc4YjZkMDJj
MTYyZmIuLmZmMmY0ZDczN2Q1YmQ0OWJiZjA4OTQyZmFlODg1NDNhMjljN2U1MDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5wcmkKQEAgLTMxNyw2ICszMTcsNyBAQCBJRExfQklORElOR1MgKz0g
XAogICAgICQkUFdEL2h0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuaWRsIFwKICAgICAk
JFBXRC9odG1sL2NhbnZhcy9XZWJHTEFjdGl2ZUluZm8uaWRsIFwKICAgICAkJFBXRC9odG1sL2Nh
bnZhcy9XZWJHTEJ1ZmZlci5pZGwgXAorICAgICQkUFdEL2h0bWwvY2FudmFzL1dlYkdMQ29tcHJl
c3NlZFRleHR1cmVBVEMuaWRsIFwKICAgICAkJFBXRC9odG1sL2NhbnZhcy9XZWJHTENvbXByZXNz
ZWRUZXh0dXJlUzNUQy5pZGwgXAogICAgICQkUFdEL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEF0
dHJpYnV0ZXMuaWRsIFwKICAgICAkJFBXRC9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRFdmVudC5p
ZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMzY1YzRhZTYwZWU5NGEzOTQy
ZGNiOGE0ZjgzN2Q1Mzk1NjY4Nzc5Yy4uYmQ0MzBmYTc3NmQ0ZjdiZGUxMzk4ZjgxM2E3MDQ0YmNl
NzU3MmJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC03NzksNiArNzc5LDgg
QEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
V2ViR0xBY3RpdmVJbmZvLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTEJ1ZmZl
ci5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTEJ1ZmZlci5oIFwKKwlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5jcHAgXAorCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmggXAogCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHAgXAog
CURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5oIFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR0xDb250ZXh0QXR0cmlidXRlcy5jcHAgXApA
QCAtMTU1Miw2ICsxNTU0LDcgQEAgZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJJChXZWJDb3JlKS9o
dG1sL2NhbnZhcy9VaW50OENsYW1wZWRBcnJheS5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9jYW52
YXMvV2ViR0xBY3RpdmVJbmZvLmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL2NhbnZhcy9XZWJHTEJ1
ZmZlci5pZGwgXAorCSQoV2ViQ29yZSkvaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVy
ZUFUQy5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVy
ZVMzVEMuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEF0dHJpYnV0
ZXMuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEV2ZW50LmlkbCBc
CkBAIC0zMjkxLDYgKzMyOTQsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMQWN0aXZlSW5mby5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTEJ1ZmZlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMQnVmZmVyLmggXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVBVEMuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbXBy
ZXNzZWRUZXh0dXJlQVRDLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29t
cHJlc3NlZFRleHR1cmVTM1RDLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xDb250ZXh0QXR0cmlidXRlcy5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggOTYzNmRhOGU2NzEx
ZDhjNjRjY2Q5Nzk4OWRlOTA1Njc5YWM5MjE5Ny4uZTgxNmFiMTc2MWYyZTZjOWJiOTQ0NmVkMzU4
ZDYxNjEyMGE3NzQyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC00MDE3LDYgKzQwMTcsNyBAQCBlbmFibGU/
KFdFQkdMKSB7CiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMT2JqZWN0LmggXAogICAgICAgICBo
dG1sL2NhbnZhcy9XZWJHTEFjdGl2ZUluZm8uaCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdM
QnVmZmVyLmggXAorICAgICAgICBodG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlQVRD
LmggXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5oIFwK
ICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oIFwKICAgICAgICAg
aHRtbC9jYW52YXMvV2ViR0xDb250ZXh0RXZlbnQuaCBcCkBAIC00MDUyLDYgKzQwNTMsNyBAQCBl
bmFibGU/KFdFQkdMKSB7CiAgICAgICAgIGh0bWwvY2FudmFzL0NhbnZhc0NvbnRleHRBdHRyaWJ1
dGVzLmNwcCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMT2JqZWN0LmNwcCBcCiAgICAgICAg
IGh0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmNwcCBcCisgICAgICAgIGh0bWwvY2FudmFzL1dlYkdM
Q29tcHJlc3NlZFRleHR1cmVBVEMuY3BwIFwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xDb21w
cmVzc2VkVGV4dHVyZVMzVEMuY3BwIFwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0
QXR0cmlidXRlcy5jcHAgXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTENvbnRleHRFdmVudC5j
cHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGU4MDUwM2IwNWZlYjk0NzY1NmU1ZmNiNzZiZDhkZmZk
ZDlmNGVjYmYuLjU5YjFkYmM0NDQ2ZGJmNjE4MGE1YWI0MjdmYzUyMDA0ZWU3ODc2Y2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKQEAgLTM4Niw2ICszODYsNyBAQAogICAgICAgICAgICAgJ2h0bWwvY2FudmFz
L1VpbnQ4Q2xhbXBlZEFycmF5LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xB
Y3RpdmVJbmZvLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaWRs
JywKKyAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmlk
bCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMu
aWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTENvbnRleHRBdHRyaWJ1dGVzLmlk
bCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0RXZlbnQuaWRsJywKQEAg
LTMzNDMsNiArMzM0NCw4IEBACiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xBY3RpdmVJ
bmZvLmgnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmNwcCcsCiAgICAg
ICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaCcsCisgICAgICAgICAgICAnaHRtbC9j
YW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5jcHAnLAorICAgICAgICAgICAgJ2h0bWwv
Y2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuaCcsCiAgICAgICAgICAgICAnaHRtbC9j
YW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuY3BwJywKICAgICAgICAgICAgICdodG1s
L2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5oJywKICAgICAgICAgICAgICdodG1s
L2NhbnZhcy9XZWJHTENvbnRleHRBdHRyaWJ1dGVzLmNwcCcsCkBAIC03MTU5LDYgKzcxNjIsOCBA
QAogICAgICAgICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNX
ZWJHTEFjdGl2ZUluZm8uaCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU1dlYkdMQnVmZmVyLmNwcCcsCiAgICAgICAgICAgICAnPChQUk9EVUNU
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdMQnVmZmVyLmgnLAorICAgICAgICAg
ICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTENvbXByZXNz
ZWRUZXh0dXJlQVRDLmNwcCcsCisgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuaCcsCiAgICAgICAgICAg
ICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVTM1RDLmNwcCcsCiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmgnLAogICAgICAgICAg
ICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTENvbnRleHRB
dHRyaWJ1dGVzLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggZDY3ZDU2OTY5ZTAwZmI5OWEwZWYyZDFiZDJiYjAwMWVkODMw
YTc5YS4uYTA0MDU0NWFhYjI2OTE4MTE3YzI2NmNmYzBkM2RjZDY1NGEwMDZlZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjA2
MCw4ICsyMDYwLDEyIEBACiAJCTdFNDZGNkZCMTYyN0EyQ0EwMDA2MjIyMyAvKiBKU09FU0VsZW1l
bnRJbmRleFVpbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdFNDZGNkY5MTYyN0EyQzkwMDA2MjIyMyAvKiBKU09FU0VsZW1lbnRJbmRleFVpbnQuaCAq
LzsgfTsKIAkJN0U1RDdBNzYxNjFEM0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U1RDdB
NzMxNjFEM0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQuY3BwICovOyB9OwogCQk3
RTVEN0E3NzE2MUQzRjhGMDA4OTZDMzQgLyogT0VTRWxlbWVudEluZGV4VWludC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U1RDdBNzQxNjFEM0Y4RjAw
ODk2QzM0IC8qIE9FU0VsZW1lbnRJbmRleFVpbnQuaCAqLzsgfTsKKwkJN0U2NkUyMzMxNkQ2RUI2
QzAwRjdFN0ZGIC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U2NkUyMzExNkQ2RUI2QzAwRjdFN0ZG
IC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3BwICovOyB9OworCQk3RTY2RTIzNDE2RDZF
QjZDMDBGN0U3RkYgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U2NkUyMzIxNkQ2RUI2QzAwRjdFN0ZG
IC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuaCAqLzsgfTsKIAkJN0U5OUFGNTEwQjEzODQ2
NDY4RkIwMUE1IC8qIFdpbmRvd0ZvY3VzQWxsb3dlZEluZGljYXRvci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTk5QUY1MjBCMTM4NDY0NjhGQjAx
QTUgLyogV2luZG93Rm9jdXNBbGxvd2VkSW5kaWNhdG9yLmNwcCAqLzsgfTsKIAkJN0U5OUFGNTMw
QjEzODQ2NDY4RkIwMUE1IC8qIFdpbmRvd0ZvY3VzQWxsb3dlZEluZGljYXRvci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0U5OUFGNTQwQjEzODQ2NDY4
RkIwMUE1IC8qIFdpbmRvd0ZvY3VzQWxsb3dlZEluZGljYXRvci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTdFQTMwRjY5MTZERkZFNzUwMDI1N0Qw
QiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0VBMzBGNjcxNkRGRkU3NTAwMjU3RDBCIC8qIEpT
V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5jcHAgKi87IH07CisJCTdFQTMwRjZBMTZERkZFNzUw
MDI1N0QwQiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFQTMwRjY4MTZERkZFNzUwMDI1N0QwQiAv
KiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuaCAqLzsgfTsKIAkJN0VFNjg0NUYxMkQyNkUz
ODAwRTc5NDE1IC8qIEF1dGhlbnRpY2F0aW9uQ0YuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0VFNjg0NEMxMkQyNkUzODAwRTc5NDE1IC8qIEF1dGhl
bnRpY2F0aW9uQ0YuY3BwICovOyB9OwogCQk3RUU2ODQ2MDEyRDI2RTM4MDBFNzk0MTUgLyogQXV0
aGVudGljYXRpb25DRi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0VFNjg0NEQxMkQyNkUzODAwRTc5NDE1IC8qIEF1dGhlbnRpY2F0aW9uQ0YuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3RUU2ODQ2MTEy
RDI2RTM4MDBFNzk0MTUgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdFRTY4NDRFMTJEMjZFMzgwMEU3OTQx
NSAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CkBAIC05NTUxLDggKzk1NTUsMTMgQEAKIAkJN0U0NkY2Rjkx
NjI3QTJDOTAwMDYyMjIzIC8qIEpTT0VTRWxlbWVudEluZGV4VWludC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU09FU0VsZW1lbnRJbmRleFVpbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0U1RDdBNzMxNjFEM0Y4RjAwODk2QzM0IC8qIE9FU0VsZW1lbnRJ
bmRleFVpbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gT0VTRWxl
bWVudEluZGV4VWludC5jcHA7IHBhdGggPSBjYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdFNUQ3QTc0MTYxRDNGOEYwMDg5NkMzNCAv
KiBPRVNFbGVtZW50SW5kZXhVaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IE9FU0VsZW1lbnRJbmRleFVpbnQuaDsgcGF0aCA9IGNhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdFNjZFMjMxMTZENkVCNkMwMEY3RTdG
RiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3BwOyBwYXRoID0gY2Fu
dmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk3RTY2RTIzMjE2RDZFQjZDMDBGN0U3RkYgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVy
ZUFUQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJHTENvbXByZXNzZWRU
ZXh0dXJlQVRDLmg7IHBhdGggPSBjYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RTk5QUY1MjBCMTM4NDY0NjhGQjAxQTUgLyog
V2luZG93Rm9jdXNBbGxvd2VkSW5kaWNhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdpbmRvd0ZvY3VzQWxsb3dlZEluZGljYXRvci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTdFOTlBRjU0MEIxMzg0NjQ2OEZCMDFBNSAvKiBXaW5kb3dGb2N1
c0FsbG93ZWRJbmRpY2F0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2lu
ZG93Rm9jdXNBbGxvd2VkSW5kaWNhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTdFQTMwRjYyMTZERkQ2MjcwMDI1N0QwQiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmlkbDsg
cGF0aCA9IGNhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJN0VBMzBGNjcxNkRGRkU3NTAwMjU3RDBCIC8qIEpTV2ViR0xDb21w
cmVzc2VkVGV4dHVyZUFUQy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3BwOyBwYXRoID0gSlNXZWJHTENvbXByZXNz
ZWRUZXh0dXJlQVRDLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0VBMzBGNjgx
NkRGRkU3NTAwMjU3RDBCIC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuaDsg
cGF0aCA9IEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3RUU2ODQ0QzEyRDI2RTM4MDBFNzk0MTUgLyogQXV0aGVudGljYXRpb25DRi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdXRoZW50aWNhdGlvbkNG
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0VFNjg0NEQxMkQyNkUzODAwRTc5
NDE1IC8qIEF1dGhlbnRpY2F0aW9uQ0YuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQXV0aGVudGljYXRpb25DRi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3RUU2
ODQ0RTEyRDI2RTM4MDBFNzk0MTUgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1NzIwLDYgKzE1NzI5LDkgQEAKIAkJCQlBMDI0
NTc0RTE2Q0VBQTI3MDAwRTU2NzEgLyogRVhURHJhd0J1ZmZlcnMuY3BwICovLAogCQkJCUEwMjQ1
NzRGMTZDRUFBMjcwMDBFNTY3MSAvKiBFWFREcmF3QnVmZmVycy5oICovLAogCQkJCUEwMjQ1NzUw
MTZDRUFBMjcwMDBFNTY3MSAvKiBFWFREcmF3QnVmZmVycy5pZGwgKi8sCisJCQkJN0VBMzBGNjIx
NkRGRDYyNzAwMjU3RDBCIC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuaWRsICovLAorCQkJ
CTdFNjZFMjMxMTZENkVCNkMwMEY3RTdGRiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmNw
cCAqLywKKwkJCQk3RTY2RTIzMjE2RDZFQjZDMDBGN0U3RkYgLyogV2ViR0xDb21wcmVzc2VkVGV4
dHVyZUFUQy5oICovLAogCQkJCTQ5RUVDRENDMTA1MDNDMjMwMDA5OUZBQiAvKiBBcnJheUJ1ZmZl
ci5pZGwgKi8sCiAJCQkJNDlFRUNEQzkxMDUwM0MyMzAwMDk5RkFCIC8qIEFycmF5QnVmZmVyVmll
dy5pZGwgKi8sCiAJCQkJNkU0RTkxQTcxMEY3RkIzMTAwQTI3NzlDIC8qIENhbnZhc0NvbnRleHRB
dHRyaWJ1dGVzLmNwcCAqLywKQEAgLTE4OTY1LDYgKzE4OTc3LDggQEAKIAkJQTgzQjc5MDgwQ0NB
RkYyQjAwMEIwODI1IC8qIEhUTUwgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAorCQkJCTdFQTMwRjY3MTZERkZFNzUwMDI1N0QwQiAvKiBKU1dlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVBVEMuY3BwICovLAorCQkJCTdFQTMwRjY4MTZERkZFNzUwMDI1N0QwQiAvKiBKU1dl
YkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuaCAqLywKIAkJCQk0OUVFQ0VGMjEwNTA3MEM0MDAwOTlG
QUIgLyogSlNBcnJheUJ1ZmZlci5jcHAgKi8sCiAJCQkJNDlFRUNFRjMxMDUwNzBDNDAwMDk5RkFC
IC8qIEpTQXJyYXlCdWZmZXIuaCAqLywKIAkJCQk0OUVFQ0YxOTEwNTA3MkYzMDAwOTlGQUIgLyog
SlNBcnJheUJ1ZmZlclZpZXcuY3BwICovLApAQCAtMjY2MzUsNyArMjY2NDksOSBAQAogCQkJCUZE
NTM3MzUzMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDFCOENENDYxNkQwNDU5MTAwMEU4Q0MwIC8qIFNlbGVjdG9yQ2hlY2tlckZhc3RQYXRoLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0OTE0MDI1NzE2OEUwMkVDMDAyRDZDNkEgLyogVGltZWxpbmVUcmFj
ZUV2ZW50UHJvY2Vzc29yLmggaW4gSGVhZGVycyAqLywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQTAyNDU3NTIxNkNFQUEyNzAwMEU1NjcxIC8qIEVYVERyYXdCdWZmZXJzLmggaW4g
SGVhZGVycyAqLywKKwkJCQlBMDI0NTc1MjE2Q0VBQTI3MDAwRTU2NzEgLyogRVhURHJhd0J1ZmZl
cnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTdFNjZFMjM0MTZENkVCNkMwMEY3RTdGRiAvKiBXZWJH
TENvbXByZXNzZWRUZXh0dXJlQVRDLmggaW4gSGVhZGVycyAqLywKKwkJCQk3RUEzMEY2QTE2REZG
RTc1MDAyNTdEMEIgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmggaW4gSGVhZGVycyAq
LywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJ
fTsKQEAgLTI5ODMxLDcgKzI5ODQ3LDkgQEAKIAkJCQk0MUI4Q0Q0NTE2RDA0NTkxMDAwRThDQzAg
LyogU2VsZWN0b3JDaGVja2VyRmFzdFBhdGguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDkxNDAy
NTYxNjhFMDJFODAwMkQ2QzZBIC8qIFRpbWVsaW5lVHJhY2VFdmVudFByb2Nlc3Nvci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlFMTRBOTRENzE2REZERjk1MDA2OERFODIgLyogQmxvYlJlZ2lzdHJ5
LmNwcCBpbiBTb3VyY2VzICovLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBMDI0
NTc1MTE2Q0VBQTI3MDAwRTU2NzEgLyogRVhURHJhd0J1ZmZlcnMuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQTAyNDU3NTExNkNFQUEyNzAwMEU1NjcxIC8qIEVYVERyYXdCdWZmZXJzLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTdFNjZFMjMzMTZENkVCNkMwMEY3RTdGRiAvKiBXZWJHTENvbXByZXNz
ZWRUZXh0dXJlQVRDLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTdFQTMwRjY5MTZERkZFNzUwMDI1
N0QwQiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVy
aW5nQ29udGV4dEN1c3RvbS5jcHAKaW5kZXggOGEzNTAzYTE0MmRiYmY0MmY4YmI3ZmE4NWVlYzE2
YWE3OGRiNmQzMS4uYWIzNDk0NzE0MzI4NTAyZmMwNzk0ZmNhZTkwOWU3MzIzMDE0MjQxNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRl
eHRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5k
ZXJpbmdDb250ZXh0Q3VzdG9tLmNwcApAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgIkpTVWlu
dDMyQXJyYXkuaCIKICNpbmNsdWRlICJKU1VpbnQ4QXJyYXkuaCIKICNpbmNsdWRlICJKU1dlYkdM
QnVmZmVyLmgiCisjaW5jbHVkZSAiSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmgiCiAjaW5j
bHVkZSAiSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5oIgogI2luY2x1ZGUgIkpTV2ViR0xE
ZXB0aFRleHR1cmUuaCIKICNpbmNsdWRlICJKU1dlYkdMRnJhbWVidWZmZXIuaCIKQEAgLTY1LDYg
KzY2LDcgQEAKICNpbmNsdWRlICJPRVNUZXh0dXJlRmxvYXQuaCIKICNpbmNsdWRlICJPRVNWZXJ0
ZXhBcnJheU9iamVjdC5oIgogI2luY2x1ZGUgIldlYkdMQnVmZmVyLmgiCisjaW5jbHVkZSAiV2Vi
R0xDb21wcmVzc2VkVGV4dHVyZUFUQy5oIgogI2luY2x1ZGUgIldlYkdMQ29tcHJlc3NlZFRleHR1
cmVTM1RDLmgiCiAjaW5jbHVkZSAiV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oIgogI2luY2x1ZGUg
IldlYkdMRGVidWdTaGFkZXJzLmgiCkBAIC0yMTIsNiArMjE0LDggQEAgc3RhdGljIEpTVmFsdWUg
dG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFdl
YkdMRXh0ZW4KICAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNf
Y2FzdDxXZWJHTERlYnVnUmVuZGVyZXJJbmZvKj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJH
TEV4dGVuc2lvbjo6V2ViR0xEZWJ1Z1NoYWRlcnNOYW1lOgogICAgICAgICByZXR1cm4gdG9KUyhl
eGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMRGVidWdTaGFkZXJzKj4oZXh0ZW5z
aW9uKSk7CisgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFU
Q05hbWU6CisgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nh
c3Q8V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQyo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2Vi
R0xFeHRlbnNpb246OldlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDTmFtZToKICAgICAgICAgcmV0
dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJHTENvbXByZXNzZWRU
ZXh0dXJlUzNUQyo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdM
RGVwdGhUZXh0dXJlTmFtZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDU1ODYzNjA0ZTNm
NjAxM2IyZWIzYTk0NjlkZDcyOTdiZjgxZjE0ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3BwCkBAIC0wLDAg
KzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQor
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICog
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoV0VCR0wp
CisKKyNpbmNsdWRlICJXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmgiCisKKyNpbmNsdWRlICJF
eHRlbnNpb25zM0QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXZWJHTENvbXByZXNzZWRU
ZXh0dXJlQVRDOjpXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDKFdlYkdMUmVuZGVyaW5nQ29udGV4
dCogY29udGV4dCkKKyAgICA6IFdlYkdMRXh0ZW5zaW9uKGNvbnRleHQpCit7CisgICAgY29udGV4
dC0+YWRkQ29tcHJlc3NlZFRleHR1cmVGb3JtYXQoRXh0ZW5zaW9uczNEOjpDT01QUkVTU0VEX0FU
Q19SR0JfQU1EKTsKKyAgICBjb250ZXh0LT5hZGRDb21wcmVzc2VkVGV4dHVyZUZvcm1hdChFeHRl
bnNpb25zM0Q6OkNPTVBSRVNTRURfQVRDX1JHQkFfRVhQTElDSVRfQUxQSEFfQU1EKTsKKyAgICBj
b250ZXh0LT5hZGRDb21wcmVzc2VkVGV4dHVyZUZvcm1hdChFeHRlbnNpb25zM0Q6OkNPTVBSRVNT
RURfQVRDX1JHQkFfSU5URVJQT0xBVEVEX0FMUEhBX0FNRCk7Cit9CisKK1dlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVBVEM6On5XZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDKCkKK3sKK30KKworV2ViR0xF
eHRlbnNpb246OkV4dGVuc2lvbk5hbWUgV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQzo6Z2V0TmFt
ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVENOYW1lOwor
fQorCitQYXNzT3duUHRyPFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEM+IFdlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVBVEM6OmNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQpCit7Cisg
ICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDKGNvbnRleHQp
KTsKK30KKworYm9vbCBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDOjpzdXBwb3J0ZWQoV2ViR0xS
ZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0KQoreworICAgIEV4dGVuc2lvbnMzRCogZXh0ZW5zaW9u
cyA9IGNvbnRleHQtPmdyYXBoaWNzQ29udGV4dDNEKCktPmdldEV4dGVuc2lvbnMoKTsKKyAgICBy
ZXR1cm4gZXh0ZW5zaW9ucy0+c3VwcG9ydHMoIkdMX0FNRF9jb21wcmVzc2VkX0FUQ190ZXh0dXJl
Iik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJH
TCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVBVEMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVBVEMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMjRlMWY1ZjM0MDk0NWMxNWEwYjVkMDU5ODM0YWEx
MDQyNDg1NGYxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJ
VFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
KyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVENfaAorI2RlZmluZSBXZWJHTENvbXByZXNzZWRU
ZXh0dXJlQVRDX2gKKworI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJXZWJH
TEV4dGVuc2lvbi5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgV2ViR0xUZXh0dXJlOworCitjbGFzcyBXZWJHTENvbXByZXNzZWRU
ZXh0dXJlQVRDIDogcHVibGljIFdlYkdMRXh0ZW5zaW9uIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UGFzc093blB0cjxXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDPiBjcmVhdGUoV2ViR0xSZW5kZXJp
bmdDb250ZXh0Kik7CisKKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0ZWQoV2ViR0xSZW5kZXJpbmdD
b250ZXh0Kik7CisKKyAgICB2aXJ0dWFsIH5XZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDKCk7Cisg
ICAgdmlydHVhbCBFeHRlbnNpb25OYW1lIGdldE5hbWUoKSBjb25zdDsKKworcHJpdmF0ZToKKyAg
ICBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gV2ViR0xDb21wcmVzc2VkVGV4
dHVyZUFUQ19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENv
bXByZXNzZWRUZXh0dXJlQVRDLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
Q29tcHJlc3NlZFRleHR1cmVBVEMuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExMWIzMmIxMjI5Y2Y1ZDkwMGUx
ZDAyNDYwYTYzNGM1N2U4ZTljMDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmlkbApAQCAtMCwwICsxLDM2IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworWworICAgIENvbmRpdGlvbmFsPVdFQkdMLAorICAgIEpTR2VuZXJhdGVJc1JlYWNo
YWJsZT1JbXBsQ29udGV4dCwKKyAgICBPbWl0Q29uc3RydWN0b3IsCisgICAgRG9Ob3RDaGVja0Nv
bnN0YW50cworXSBpbnRlcmZhY2UgV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQyB7CisgICAgLyog
Q29tcHJlc3NlZCBUZXh0dXJlIEZvcm1hdHMgKi8KKyAgICBjb25zdCB1bnNpZ25lZCBpbnQgQ09N
UFJFU1NFRF9SR0JfQVRDX1dFQkdMICAgICAgICAgICAgICAgICAgICAgPSAweDhDOTI7CisgICAg
Y29uc3QgdW5zaWduZWQgaW50IENPTVBSRVNTRURfUkdCQV9BVENfRVhQTElDSVRfQUxQSEFfV0VC
R0wgICAgID0gMHg4QzkzOworICAgIGNvbnN0IHVuc2lnbmVkIGludCBDT01QUkVTU0VEX1JHQkFf
QVRDX0lOVEVSUE9MQVRFRF9BTFBIQV9XRUJHTCA9IDB4ODdFRTsKK307CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uaAppbmRleCAwM2M4MzZhYzQ2YjcxMmY1YzU1
MDI5MDY1ZGZkNjFlMDYzNTU5NWM5Li5mMWYxYmM2YWQ3ZDgwZjVlNGVlZDViMGY4NGRhYWVkMDBk
OWEwZjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEV4dGVu
c2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmgK
QEAgLTQ2LDYgKzQ2LDcgQEAgcHVibGljOgogICAgICAgICBXZWJHTENvbXByZXNzZWRUZXh0dXJl
UzNUQ05hbWUsCiAgICAgICAgIFdlYkdMRGVwdGhUZXh0dXJlTmFtZSwKICAgICAgICAgT0VTRWxl
bWVudEluZGV4VWludE5hbWUsCisgICAgICAgIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVENOYW1l
LAogICAgIH07CiAKICAgICB2b2lkIHJlZigpIHsgbV9jb250ZXh0LT5yZWYoKTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAK
aW5kZXggZGViNjRiMTAyNDFhMTRlODdmN2VlMmI0M2ExMzBhNmY2MGExMWQ1NS4uZjQxNjA1NTMz
NzQ2ODMwZTgwNzBjNTFmOWZlYmJjODllN2NhMTIyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC01NSw2ICs1NSw3
IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJXZWJHTEFjdGl2ZUluZm8uaCIK
ICNpbmNsdWRlICJXZWJHTEJ1ZmZlci5oIgorI2luY2x1ZGUgIldlYkdMQ29tcHJlc3NlZFRleHR1
cmVBVEMuaCIKICNpbmNsdWRlICJXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5oIgogI2luY2x1
ZGUgIldlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCIKICNpbmNsdWRlICJXZWJHTENvbnRleHRFdmVu
dC5oIgpAQCAtNzU2LDEwICs3NTcsMTAgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnBh
aW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKCkKICAgICAgICAgaWYgKG1fZHJhd2luZ0J1ZmZl
cikKICAgICAgICAgICAgIG1fZHJhd2luZ0J1ZmZlci0+cGFpbnRDb21wb3NpdGVkUmVzdWx0c1Rv
Q2FudmFzKGNhbnZhcygpLT5idWZmZXIoKSk7CiAjZW5kaWYKLQogICAgICAgICBjYW52YXMoKS0+
bWFrZVByZXNlbnRhdGlvbkNvcHkoKTsKICAgICB9IGVsc2UKICAgICAgICAgY2FudmFzKCktPmNs
ZWFyUHJlc2VudGF0aW9uQ29weSgpOworCiAgICAgY2xlYXJJZkNvbXBvc2l0ZWQoKTsKIAogICAg
IGlmICghbV9tYXJrZWRDYW52YXNEaXJ0eSAmJiAhbV9sYXllckNsZWFyZWQpCkBAIC0yNDA3LDYg
KzI0MDgsMTIgQEAgV2ViR0xFeHRlbnNpb24qIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0RXh0
ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICAgICAgICAgIG1fd2ViZ2xMb3NlQ29udGV4
dCA9IFdlYkdMTG9zZUNvbnRleHQ6OmNyZWF0ZSh0aGlzKTsKICAgICAgICAgcmV0dXJuIG1fd2Vi
Z2xMb3NlQ29udGV4dC5nZXQoKTsKICAgICB9CisgICAgaWYgKChlcXVhbElnbm9yaW5nQ2FzZShu
YW1lLCAiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9hdGMiKSkKKyAgICAgICAgJiYg
V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQzo6c3VwcG9ydGVkKHRoaXMpKSB7CisgICAgICAgIGlm
ICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlQVRDKQorICAgICAgICAgICAgbV93ZWJnbENvbXBy
ZXNzZWRUZXh0dXJlQVRDID0gV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQzo6Y3JlYXRlKHRoaXMp
OworICAgICAgICByZXR1cm4gbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlQVRDLmdldCgpOworICAg
IH0KICAgICBpZiAoKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsICJXRUJHTF9jb21wcmVzc2VkX3Rl
eHR1cmVfczN0YyIpCiAgICAgICAgICAvLyBGSVhNRTogcmVtb3ZlIHRoaXMgYWZ0ZXIgYSBjZXJ0
YWluIGdyYWNlIHBlcmlvZC4KICAgICAgICAgIHx8IGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsICJX
RUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMiKSkKQEAgLTI5NTksNiArMjk2Niw4
IEBAIFZlY3RvcjxTdHJpbmc+IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0U3VwcG9ydGVkRXh0
ZW5zaW9ucygpCiAgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLT5zdXBwb3J0cygi
R0xfT0VTX2VsZW1lbnRfaW5kZXhfdWludCIpKQogICAgICAgICByZXN1bHQuYXBwZW5kKCJPRVNf
ZWxlbWVudF9pbmRleF91aW50Iik7CiAgICAgcmVzdWx0LmFwcGVuZCgiV0VCR0xfbG9zZV9jb250
ZXh0Iik7CisgICAgaWYgKFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEM6OnN1cHBvcnRlZCh0aGlz
KSkKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4dHVy
ZV9hdGMiKTsKICAgICBpZiAoV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEM6OnN1cHBvcnRlZCh0
aGlzKSkKICAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRfdGV4
dHVyZV9zM3RjIik7CiAgICAgaWYgKFdlYkdMRGVwdGhUZXh0dXJlOjpzdXBwb3J0ZWQoZ3JhcGhp
Y3NDb250ZXh0M0QoKSkpCkBAIC01MjU0LDYgKzUyNjMsMTcgQEAgYm9vbCBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OnZhbGlkYXRlQ29tcHJlc3NlZFRleEZ1bmNEYXRhKGNvbnN0IGNoYXIqIGZ1bmN0
aW9uTmEKICAgICAgICAgICAgIGJ5dGVzUmVxdWlyZWQgPSBudW1CbG9ja3MgKiBrQmxvY2tTaXpl
OwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT01Q
UkVTU0VEX0FUQ19SR0JfQU1EOgorICAgICAgICB7CisgICAgICAgICAgICBieXRlc1JlcXVpcmVk
ID0gZmxvb3IoKHdpZHRoICsgMykgLyA0KSAqIGZsb29yKChoZWlnaHQgKyAzKSAvIDQpICogODsK
KyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09NUFJF
U1NFRF9BVENfUkdCQV9FWFBMSUNJVF9BTFBIQV9BTUQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6
OkNPTVBSRVNTRURfQVRDX1JHQkFfSU5URVJQT0xBVEVEX0FMUEhBX0FNRDoKKyAgICAgICAgewor
ICAgICAgICAgICAgYnl0ZXNSZXF1aXJlZCA9IGZsb29yKCh3aWR0aCArIDMpIC8gNCkgKiBmbG9v
cigoaGVpZ2h0ICsgMykgLyA0KSAqIDE2OworICAgICAgICB9CisgICAgICAgIGJyZWFrOwogICAg
IGRlZmF1bHQ6CiAgICAgICAgIHN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJ
TlZBTElEX0VOVU0sIGZ1bmN0aW9uTmFtZSwgImludmFsaWQgZm9ybWF0Iik7CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJpbmdDb250ZXh0LmgKaW5kZXggM2JjZTUzNDRkNGUwMGIwMmM4MTNhMzg0MDQ4MWVjZmU4NmEy
ZWQwZC4uZmQxMmU0NWNmOTg4N2U4ZTg1MDlhNzg2Yzg0NDBmM2Q0OTNhZDlmMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKQEAg
LTU3LDYgKzU3LDcgQEAgY2xhc3MgV2ViR0xBY3RpdmVJbmZvOwogY2xhc3MgV2ViR0xCdWZmZXI7
CiBjbGFzcyBXZWJHTENvbnRleHRHcm91cDsKIGNsYXNzIFdlYkdMQ29udGV4dE9iamVjdDsKK2Ns
YXNzIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEM7CiBjbGFzcyBXZWJHTENvbXByZXNzZWRUZXh0
dXJlUzNUQzsKIGNsYXNzIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXM7CiBjbGFzcyBXZWJHTERlYnVn
UmVuZGVyZXJJbmZvOwpAQCAtMzI5LDYgKzMzMCw3IEBAIHB1YmxpYzoKICAgICBmcmllbmQgY2xh
c3MgV2ViR0xPYmplY3Q7CiAgICAgZnJpZW5kIGNsYXNzIE9FU1ZlcnRleEFycmF5T2JqZWN0Owog
ICAgIGZyaWVuZCBjbGFzcyBXZWJHTERlYnVnU2hhZGVyczsKKyAgICBmcmllbmQgY2xhc3MgV2Vi
R0xDb21wcmVzc2VkVGV4dHVyZUFUQzsKICAgICBmcmllbmQgY2xhc3MgV2ViR0xDb21wcmVzc2Vk
VGV4dHVyZVMzVEM7CiAgICAgZnJpZW5kIGNsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dEVycm9y
TWVzc2FnZUNhbGxiYWNrOwogICAgIGZyaWVuZCBjbGFzcyBXZWJHTFZlcnRleEFycmF5T2JqZWN0
T0VTOwpAQCAtNTIzLDYgKzUyNSw3IEBAIHB1YmxpYzoKICAgICBPd25QdHI8V2ViR0xMb3NlQ29u
dGV4dD4gbV93ZWJnbExvc2VDb250ZXh0OwogICAgIE93blB0cjxXZWJHTERlYnVnUmVuZGVyZXJJ
bmZvPiBtX3dlYmdsRGVidWdSZW5kZXJlckluZm87CiAgICAgT3duUHRyPFdlYkdMRGVidWdTaGFk
ZXJzPiBtX3dlYmdsRGVidWdTaGFkZXJzOworICAgIE93blB0cjxXZWJHTENvbXByZXNzZWRUZXh0
dXJlQVRDPiBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVBVEM7CiAgICAgT3duUHRyPFdlYkdMQ29t
cHJlc3NlZFRleHR1cmVTM1RDPiBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVTM1RDOwogICAgIE93
blB0cjxXZWJHTERlcHRoVGV4dHVyZT4gbV93ZWJnbERlcHRoVGV4dHVyZTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5zaW9uczNELmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zM0QuaAppbmRleCBiMDMzYmNk
NzM5NTZlMjczODNhNWY3NDVlYmM4MmNhOGE1ZDZhZjIzLi4xZmJkZWIxNWZlYzRlNjQ1YjBjYWU2
NzY1N2VmYzA4ZWJjMjIwOGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9FeHRlbnNpb25zM0QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9FeHRlbnNpb25zM0QuaApAQCAtMTQyLDYgKzE0MiwxMSBAQCBwdWJsaWM6CiAgICAgICAg
IENPTVBSRVNTRURfUkdCQV9QVlJUQ180QlBQVjFfSU1HID0gMHg4QzAyLAogICAgICAgICBDT01Q
UkVTU0VEX1JHQkFfUFZSVENfMkJQUFYxX0lNRyA9IDB4OEMwMywKIAorICAgICAgICAvLyBHTF9B
TURfY29tcHJlc3NlZF9BVENfdGV4dHVyZQorICAgICAgICBDT01QUkVTU0VEX0FUQ19SR0JfQU1E
ID0gMHg4QzkyLAorICAgICAgICBDT01QUkVTU0VEX0FUQ19SR0JBX0VYUExJQ0lUX0FMUEhBX0FN
RCA9IDB4OEM5MywKKyAgICAgICAgQ09NUFJFU1NFRF9BVENfUkdCQV9JTlRFUlBPTEFURURfQUxQ
SEFfQU1EID0gMHg4N0VFLAorCiAgICAgICAgIC8vIEdMX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlz
b3Ryb3BpYwogICAgICAgICBURVhUVVJFX01BWF9BTklTT1RST1BZX0VYVCA9IDB4ODRGRSwKICAg
ICAgICAgTUFYX1RFWFRVUkVfTUFYX0FOSVNPVFJPUFlfRVhUID0gMHg4NEZGLApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQ4
ZDIxOTUzZmEwY2I4ZWVkYzQwY2I1YzdlMDFjMjE4OTg4YTNmODguLjU5MTM4Mzc2ZTQwMzE5NjJm
MjgwYzZjZDJhNjY3ZTZkYWRmMzM5Y2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMy0wMy0w
MSAgQnJhbmRvbiBKb25lcyAgPGJham9uZXNAZ29vZ2xlLmNvbT4KKworICAgICAgICBXRUJHTF9j
b21wcmVzc2VkX3RleHR1cmVfYXRjIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA0OTYKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL2V4dGVuc2lv
bnMvd2ViZ2wtY29tcHJlc3NlZC10ZXh0dXJlLWF0Yy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHdlYmdsL2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMvd2ViZ2wtY29tcHJlc3NlZC10ZXh0
dXJlLWF0Yy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJnbC9yZXNvdXJjZXMvd2ViZ2xfdGVz
dF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25zL3dlYmdsLWNvbXByZXNzZWQtdGV4dHVyZS1h
dGMuaHRtbDogQWRkZWQuCisKIDIwMTMtMDMtMDEgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0Bj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogTmF2aWdhdG9yIHNob3VsZCBz
aG93IHRyZWUgZWxlbWVudCBmb3IgZWFjaCBmb2xkZXIgaW4gdGhlIHNvdXJjZSBwYXRoLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC1j
b21wcmVzc2VkLXRleHR1cmUtYXRjLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsL2Nv
bmZvcm1hbmNlL2V4dGVuc2lvbnMvd2ViZ2wtY29tcHJlc3NlZC10ZXh0dXJlLWF0Yy1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNDhjNzk2N2JiNDY5MTUyYzdjMzA0MGVhZjVhYzc3YWRhMGE2ZDcw
NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmdsL2NvbmZvcm1hbmNlL2V4dGVu
c2lvbnMvd2ViZ2wtY29tcHJlc3NlZC10ZXh0dXJlLWF0Yy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw1IEBACitUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4g
aWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KKworVGVzdDogLi4vLi4vcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC1jb21wcmVzc2Vk
LXRleHR1cmUtYXRjLmh0bWwKK1BBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wv
Y29uZm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC1jb21wcmVzc2VkLXRleHR1cmUtYXRjLmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJnbC9jb25mb3JtYW5jZS9leHRlbnNpb25zL3dlYmdsLWNvbXByZXNz
ZWQtdGV4dHVyZS1hdGMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMjdiZDI1NjkxMTkzNjZhNGVkMWQxNjMw
YTVmNDA4MmVjOTU1MjNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvY29u
Zm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC1jb21wcmVzc2VkLXRleHR1cmUtYXRjLmh0bWwKQEAg
LTAsMCArMSwxOCBAQAorPCEtLSBUaGlzIGZpbGUgaXMgYXV0by1nZW5lcmF0ZWQgYnkgZ2VuZXJh
dGUtd2ViZ2wtdGVzdHMucHkuIERPIE5PVCBFRElUIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPldlYkdMIENvbmZvcm1h
bmNlIFRlc3QgV3JhcHBlciBmb3Igd2ViZ2wtY29tcHJlc3NlZC10ZXh0dXJlLWF0Yy5odG1sPC90
aXRsZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL3Jlc291cmNlcy93ZWJraXQtd2ViZ2wtdGVzdC1oYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IHJ1bnMgdGhl
IFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9y
IEZBSUwuPC9wPgorVGVzdDogPGEgaHJlZj0iLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmls
ZXMvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC1jb21wcmVzc2VkLXRleHR1cmUtYXRjLmh0
bWwiPi4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlL2V4dGVuc2lv
bnMvd2ViZ2wtY29tcHJlc3NlZC10ZXh0dXJlLWF0Yy5odG1sPC9hPgorPGRpdiBpZD0icmVzdWx0
Ij48L2Rpdj4KKzxkaXYgaWQ9ImlmcmFtZSI+Cis8aWZyYW1lIHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC1jb21wcmVzc2Vk
LXRleHR1cmUtYXRjLmh0bWwiIHdpZHRoPSI4MDAiIGhlaWdodD0iNjAwIj48L2lmcmFtZT4KKzwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvcmVz
b3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC1jb21w
cmVzc2VkLXRleHR1cmUtYXRjLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJnbC9yZXNvdXJjZXMvd2Vi
Z2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZS9leHRlbnNpb25zL3dlYmdsLWNvbXByZXNzZWQtdGV4
dHVyZS1hdGMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYTRjNzBiYjJkYWJkYzM5MTM4ODI5ZjNiZGM4MDY0
MjNiODMyZDE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViZ2wvcmVzb3VyY2Vz
L3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC1jb21wcmVzc2Vk
LXRleHR1cmUtYXRjLmh0bWwKQEAgLTAsMCArMSw0MjMgQEAKK++7vzwhLS0KKworLyoKKyoqIENv
cHlyaWdodCAoYykgMjAxMyBUaGUgS2hyb25vcyBHcm91cCBJbmMuCisqKgorKiogUGVybWlzc2lv
biBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWlu
aW5nIGEKKyoqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQvb3IgYXNzb2NpYXRlZCBkb2N1bWVu
dGF0aW9uIGZpbGVzICh0aGUKKyoqICJNYXRlcmlhbHMiKSwgdG8gZGVhbCBpbiB0aGUgTWF0ZXJp
YWxzIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZworKiogd2l0aG91dCBsaW1pdGF0aW9u
IHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAorKiogZGlz
dHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBNYXRlcmlhbHMs
IGFuZCB0bworKiogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgTWF0ZXJpYWxzIGFyZSBmdXJu
aXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8KKyoqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoK
KyoqCisqKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5v
dGljZSBzaGFsbCBiZSBpbmNsdWRlZAorKiogaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBw
b3J0aW9ucyBvZiB0aGUgTWF0ZXJpYWxzLgorKioKKyoqIFRIRSBNQVRFUklBTFMgQVJFIFBST1ZJ
REVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisqKiBFWFBSRVNTIE9S
IElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YK
KyoqIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5E
IE5PTklORlJJTkdFTUVOVC4KKyoqIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENP
UFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZCisqKiBDTEFJTSwgREFNQUdFUyBPUiBP
VEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULAorKiogVE9S
VCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lU
SCBUSEUKKyoqIE1BVEVSSUFMUyBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRSBN
QVRFUklBTFMuCisqLworCistLT4KKworPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PG1ldGEgY2hhcnNldD0idXRmLTgiPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiLz4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvd2Vi
Z2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Cis8dGl0bGU+V2ViR0wgV0VCR0xfY29tcHJlc3Nl
ZF90ZXh0dXJlX2F0YyBDb25mb3JtYW5jZSBUZXN0czwvdGl0bGU+Cis8c3R5bGU+CitpbWcgewor
IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworIG1hcmdpbi1yaWdodDogMWVtOworfQorLnRlc3Rp
bWFnZXMgeworfQorCisudGVzdGltYWdlcyBiciB7CisgIGNsZWFyOiBib3RoOworfQorCisudGVz
dGltYWdlcyA+IGRpdiB7CisgIGZsb2F0OiBsZWZ0OworICBtYXJnaW46IDFlbTsKK30KKzwvc3R5
bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxjYW52
YXMgaWQ9ImNhbnZhcyIgd2lkdGg9IjgiIGhlaWdodD0iOCIgc3R5bGU9IndpZHRoOiA4cHg7IGhl
aWdodDogOHB4OyI+PC9jYW52YXM+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+
CisidXNlIHN0cmljdCI7CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IHZlcmlmaWVzIHRoZSBmdW5j
dGlvbmFsaXR5IG9mIHRoZSBXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfYXRjIGV4dGVuc2lvbiwg
aWYgaXQgaXMgYXZhaWxhYmxlLiIpOworCitkZWJ1ZygiIik7CisKKy8vIENvbXByZXNzZWQgdGV4
dHVyZXMgZ2VuZXJhdGVkIHdpdGggQU1EJ3MgQ29tcHJlc3NvbmF0b3IgdG9vbAorLy8gaHR0cDov
L2RldmVsb3Blci5hbWQuY29tL3Jlc291cmNlcy9hcmNoaXZlL2FyY2hpdmVkLXRvb2xzL2dwdS10
b29scy1hcmNoaXZlL3RoZS1jb21wcmVzc29uYXRvci8KK3ZhciBpbWdfNHg0X3JnYmFfcmF3ID0g
bmV3IFVpbnQ4QXJyYXkoWworICAgIDB4ZmYsMHgwMCwweDAwLDB4NjksMHgwMCwweGZmLDB4MDAs
MHhmZiwweGZmLDB4MDAsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsCisgICAgMHgwMCww
eGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHgwMCwweDAwLDB4ZmYsMHgw
MCwweGZmLDB4MDAsMHhmZiwKKyAgICAweGZmLDB4MDAsMHgwMCwweGZmLDB4ZmYsMHgwMCwweDAw
LDB4ZmYsMHhmZiwweDAwLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLAorICAgIDB4MDAs
MHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4
MDAsMHhmZiwweDAwLDB4ZmYsCitdKTsKK3ZhciBpbWdfNHg0X3JnYl9hdGMgPSBuZXcgVWludDhB
cnJheShbCisgICAgMHgwMCwweDdjLDB4ZTAsMHgwNywweGNjLDB4Y2YsMHhjMCwweGZmLAorXSk7
Cit2YXIgaW1nXzR4NF9yZ2JhX2F0Y19leHBsaWNpdCA9IG5ldyBVaW50OEFycmF5KFsKKyAgICAw
eGY2LDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHgwMCwweDdjLDB4ZTAsMHgw
NywweGNjLDB4Y2YsMHhjMCwweGZmLAorXSk7Cit2YXIgaW1nXzR4NF9yZ2JhX2F0Y19pbXBsaWNp
dCA9IG5ldyBVaW50OEFycmF5KFsKKyAgICAweGZmLDB4NmEsMHgwMSwweDAwLDB4MDAsMHgwMCww
eDAwLDB4MDAsMHgwMCwweDdjLDB4ZTAsMHgwNywweGNjLDB4Y2YsMHhjMCwweGZmLAorXSk7Cit2
YXIgaW1nXzh4OF9yZ2JhX3JhdyA9IG5ldyBVaW50OEFycmF5KFsKKyAgICAweGZmLDB4MDAsMHgw
MCwweDY5LDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiwweDAwLDB4MDAsMHhmZiwweDAwLDB4ZmYs
MHgwMCwweGZmLAorICAgIDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweDAwLDB4ZmYsMHhmZiww
eGZmLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHgwMCwweGZmLDB4ZmYsCisgICAgMHgwMCwweGZmLDB4
MDAsMHg2OSwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHgwMCwweDAwLDB4ZmYsMHgwMCwweGZm
LDB4MDAsMHhmZiwKKyAgICAweDAwLDB4MDAsMHhmZiwweGZmLDB4MDAsMHgwMCwweGZmLDB4ZmYs
MHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4MDAsMHhmZiwweGZmLAorICAgIDB4ZmYsMHgwMCww
eDAwLDB4ZmYsMHhmZiwweDAwLDB4MDAsMHhmZiwweGZmLDB4MDAsMHgwMCwweGZmLDB4MDAsMHhm
ZiwweDAwLDB4ZmYsCisgICAgMHhmZiwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZm
LDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweDAwLDB4ZmYsMHhmZiwKKyAgICAweDAwLDB4ZmYs
MHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweDAwLDB4
ZmYsMHgwMCwweGZmLAorICAgIDB4MDAsMHgwMCwweGZmLDB4ZmYsMHgwMCwweDAwLDB4ZmYsMHhm
ZiwweDAwLDB4MDAsMHhmZiwweGZmLDB4MDAsMHgwMCwweGZmLDB4ZmYsCisgICAgMHgwMCwweGZm
LDB4MDAsMHhmZiwweGZmLDB4MDAsMHhmZiwweGZmLDB4MDAsMHhmZiwweDAwLDB4ZmYsMHhmZiww
eDAwLDB4ZmYsMHhmZiwKKyAgICAweDAwLDB4MDAsMHhmZiwweGZmLDB4MDAsMHhmZiwweGZmLDB4
ZmYsMHgwMCwweDAwLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLAorICAgIDB4ZmYsMHgw
MCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4ZmYs
MHgwMCwweGZmLDB4ZmYsCisgICAgMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHhmZiww
eGZmLDB4MDAsMHgwMCwweGZmLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwKKyAgICAweDAwLDB4
ZmYsMHgwMCwweDY5LDB4MDAsMHhmZiwweDAwLDB4ZmYsMHgwMCwweGZmLDB4MDAsMHhmZiwweGZm
LDB4MDAsMHhmZiwweGZmLAorICAgIDB4MDAsMHgwMCwweGZmLDB4ZmYsMHgwMCwweDAwLDB4ZmYs
MHhmZiwweDAwLDB4MDAsMHhmZiwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsCisgICAgMHhmZiww
eDAwLDB4ZmYsMHg2OSwweGZmLDB4MDAsMHhmZiwweGZmLDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhm
ZiwweDAwLDB4ZmYsMHhmZiwKKyAgICAweDAwLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHhmZiwweGZm
LDB4ZmYsMHgwMCwweGZmLDB4ZmYsMHhmZiwweDAwLDB4ZmYsMHhmZiwweGZmLAorXSk7Cit2YXIg
aW1nXzh4OF9yZ2JfYXRjID0gbmV3IFVpbnQ4QXJyYXkoWworICAgIDB4MDAsMHg3YywweGUwLDB4
MDcsMHhjYywweGNmLDB4YzAsMHhmZiwweDFmLDB4MDAsMHhlMCwweGZmLDB4MzMsMHgzMCwweDNm
LDB4MDAsCisgICAgMHgxZiwweDdjLDB4ZTAsMHgwNywweDMzLDB4MzAsMHgzZiwweDAwLDB4MWYs
MHgwMCwweGZmLDB4MDcsMHhjYywweGNmLDB4YzAsMHhmZiwKK10pOwordmFyIGltZ184eDhfcmdi
YV9hdGNfZXhwbGljaXQgPSBuZXcgVWludDhBcnJheShbCisgICAgMHhmNiwweGZmLDB4ZjYsMHhm
ZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4MDAsMHg3YywweGUwLDB4MDcsMHhjYywweGNmLDB4YzAs
MHhmZiwKKyAgICAweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHgxZiww
eDAwLDB4ZTAsMHhmZiwweDMzLDB4MzAsMHgzZiwweDAwLAorICAgIDB4ZmYsMHhmZiwweGZmLDB4
ZmYsMHhmNiwweGZmLDB4ZjYsMHhmZiwweDFmLDB4N2MsMHhlMCwweDA3LDB4MzMsMHgzMCwweDNm
LDB4MDAsCisgICAgMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4ZmYsMHhmZiwweGZmLDB4MWYs
MHgwMCwweGZmLDB4MDcsMHhjYywweGNmLDB4YzAsMHhmZiwKK10pOwordmFyIGltZ184eDhfcmdi
YV9hdGNfaW1wbGljaXQgPSBuZXcgVWludDhBcnJheShbCisgICAgMHhmZiwweDZhLDB4MDEsMHgx
MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHg3YywweGUwLDB4MDcsMHhjYywweGNmLDB4YzAs
MHhmZiwKKyAgICAweDAwLDB4ZmYsMHg0OSwweDkyLDB4MjQsMHg0OSwweDkyLDB4MjQsMHgxZiww
eDAwLDB4ZTAsMHhmZiwweDMzLDB4MzAsMHgzZiwweDAwLAorICAgIDB4ZmYsMHg2OSwweDAwLDB4
MDAsMHgwMCwweDAxLDB4MTAsMHgwMCwweDFmLDB4N2MsMHhlMCwweDA3LDB4MzMsMHgzMCwweDNm
LDB4MDAsCisgICAgMHgwMCwweGZmLDB4NDksMHg5MiwweDI0LDB4NDksMHg5MiwweDI0LDB4MWYs
MHgwMCwweGZmLDB4MDcsMHhjYywweGNmLDB4YzAsMHhmZiwKK10pOworCit2YXIgd3R1ID0gV2Vi
R0xUZXN0VXRpbHM7Cit2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZh
cyIpOwordmFyIGdsID0gd3R1LmNyZWF0ZTNEQ29udGV4dChjYW52YXMsIHthbnRpYWxpYXM6IGZh
bHNlfSk7Cit2YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cFRleHR1cmVkUXVhZChnbCk7Cit2YXIgZXh0
ID0gbnVsbDsKK3ZhciB2YW8gPSBudWxsOwordmFyIHZhbGlkRm9ybWF0cyA9IHsKKyAgICBDT01Q
UkVTU0VEX1JHQl9BVENfV0VCR0wgICAgICAgICAgICAgICAgICAgICAgICA6IDB4OEM5MiwKKyAg
ICBDT01QUkVTU0VEX1JHQkFfQVRDX0VYUExJQ0lUX0FMUEhBX1dFQkdMICAgICAgICA6IDB4OEM5
MywKKyAgICBDT01QUkVTU0VEX1JHQkFfQVRDX0lOVEVSUE9MQVRFRF9BTFBIQV9XRUJHTCAgICA6
IDB4ODdFRSwKK307Cit2YXIgbmFtZTsKK3ZhciBzdXBwb3J0ZWRGb3JtYXRzOworCitpZiAoIWds
KSB7CisgICAgdGVzdEZhaWxlZCgiV2ViR0wgY29udGV4dCBkb2VzIG5vdCBleGlzdCIpOworfSBl
bHNlIHsKKyAgICB0ZXN0UGFzc2VkKCJXZWJHTCBjb250ZXh0IGV4aXN0cyIpOworCisgICAgLy8g
UnVuIHRlc3RzIHdpdGggZXh0ZW5zaW9uIGRpc2FibGVkCisgICAgcnVuVGVzdERpc2FibGVkKCk7
CisKKyAgICAvLyBRdWVyeSB0aGUgZXh0ZW5zaW9uIGFuZCBzdG9yZSBnbG9iYWxseSBzbyBzaG91
bGRCZSBjYW4gYWNjZXNzIGl0CisgICAgZXh0ID0gd3R1LmdldEV4dGVuc2lvbldpdGhLbm93blBy
ZWZpeGVzKGdsLCAiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX2F0YyIpOworICAgIGlmICghZXh0
KSB7CisgICAgICAgIHRlc3RQYXNzZWQoIk5vIFdFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9hdGMg
c3VwcG9ydCAtLSB0aGlzIGlzIGxlZ2FsIik7CisgICAgICAgIHJ1blN1cHBvcnRlZFRlc3QoZmFs
c2UpOworICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RQYXNzZWQoIlN1Y2Nlc3NmdWxseSBlbmFi
bGVkIFdFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9hdGMgZXh0ZW5zaW9uIik7CisKKyAgICAgICAg
cnVuU3VwcG9ydGVkVGVzdCh0cnVlKTsKKyAgICAgICAgcnVuVGVzdEV4dGVuc2lvbigpOworICAg
IH0KK30KKworZnVuY3Rpb24gcnVuU3VwcG9ydGVkVGVzdChleHRlbnNpb25FbmFibGVkKSB7Cisg
ICAgdmFyIG5hbWUgPSB3dHUuZ2V0U3VwcG9ydGVkRXh0ZW5zaW9uV2l0aEtub3duUHJlZml4ZXMo
Z2wsICJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfYXRjIik7CisgICAgaWYgKG5hbWUgIT09IHVu
ZGVmaW5lZCkgeworICAgICAgICBpZiAoZXh0ZW5zaW9uRW5hYmxlZCkgeworICAgICAgICAgICAg
dGVzdFBhc3NlZCgiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX2F0YyBsaXN0ZWQgYXMgc3VwcG9y
dGVkIGFuZCBnZXRFeHRlbnNpb24gc3VjY2VlZGVkIik7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICB0ZXN0RmFpbGVkKCJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfYXRjIGxpc3RlZCBh
cyBzdXBwb3J0ZWQgYnV0IGdldEV4dGVuc2lvbiBmYWlsZWQiKTsKKyAgICAgICAgfQorICAgIH0g
ZWxzZSB7CisgICAgICAgIGlmIChleHRlbnNpb25FbmFibGVkKSB7CisgICAgICAgICAgICB0ZXN0
RmFpbGVkKCJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfYXRjIG5vdCBsaXN0ZWQgYXMgc3VwcG9y
dGVkIGJ1dCBnZXRFeHRlbnNpb24gc3VjY2VlZGVkIik7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICB0ZXN0UGFzc2VkKCJXRUJHTF9jb21wcmVzc2VkX3RleHR1cmVfYXRjIG5vdCBsaXN0
ZWQgYXMgc3VwcG9ydGVkIGFuZCBnZXRFeHRlbnNpb24gZmFpbGVkIC0tIHRoaXMgaXMgbGVnYWwi
KTsKKyAgICAgICAgfQorICAgIH0KK30KKworCitmdW5jdGlvbiBydW5UZXN0RGlzYWJsZWQoKSB7
CisgICAgZGVidWcoIlRlc3RpbmcgYmluZGluZyBlbnVtIHdpdGggZXh0ZW5zaW9uIGRpc2FibGVk
Iik7CisKKyAgICBzaG91bGRCZSgnZ2wuZ2V0UGFyYW1ldGVyKGdsLkNPTVBSRVNTRURfVEVYVFVS
RV9GT1JNQVRTKScsICdbXScpOworfQorCitmdW5jdGlvbiBmb3JtYXRFeGlzdHMoZm9ybWF0LCBz
dXBwb3J0ZWRGb3JtYXRzKSB7CisgICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IHN1cHBvcnRlZEZv
cm1hdHMubGVuZ3RoOyArK2lpKSB7CisgICAgICAgIGlmIChmb3JtYXQgPT0gc3VwcG9ydGVkRm9y
bWF0c1tpaV0pIHsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoInN1cHBvcnRlZCBmb3JtYXQgIiAr
IGZvcm1hdFRvU3RyaW5nKGZvcm1hdCkgKyAiIGlzIGV4aXN0cyIpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisgICAgfQorICAgIHRlc3RGYWlsZWQoInN1cHBvcnRlZCBmb3JtYXQg
IiArIGZvcm1hdFRvU3RyaW5nKGZvcm1hdCkgKyAiIGRvZXMgbm90IGV4aXN0Iik7Cit9CisKK2Z1
bmN0aW9uIGZvcm1hdFRvU3RyaW5nKGZvcm1hdCkgeworICAgIGZvciAodmFyIHAgaW4gZXh0KSB7
CisgICAgICAgIGlmIChleHRbcF0gPT0gZm9ybWF0KSB7CisgICAgICAgICAgICByZXR1cm4gcDsK
KyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gIjB4IiArIGZvcm1hdC50b1N0cmluZygxNik7
Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3RFeHRlbnNpb24oKSB7CisgICAgZGVidWcoIlRlc3Rpbmcg
V0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX2F0YyIpOworCisgICAgLy8gY2hlY2sgdGhhdCBhbGwg
Zm9ybWF0IGVudW1zIGV4aXN0LgorICAgIGZvciAobmFtZSBpbiB2YWxpZEZvcm1hdHMpIHsKKyAg
ICAgICAgdmFyIGV4cGVjdGVkID0gIjB4IiArIHZhbGlkRm9ybWF0c1tuYW1lXS50b1N0cmluZygx
Nik7CisgICAgICAgIHZhciBhY3R1YWwgPSAiZXh0WyciICsgbmFtZSArICInXSI7CisgICAgICAg
IHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpOworICAgIH0KKworICAgIHN1cHBvcnRlZEZvcm1h
dHMgPSBnbC5nZXRQYXJhbWV0ZXIoZ2wuQ09NUFJFU1NFRF9URVhUVVJFX0ZPUk1BVFMpOworICAg
IC8vIFRoZXJlIHNob3VsZCBiZSBleGFjdGx5IDMgZm9ybWF0cworICAgIHNob3VsZEJlKCJzdXBw
b3J0ZWRGb3JtYXRzLmxlbmd0aCIsICIzIik7CisKKyAgICAvLyBjaGVjayB0aGF0IGFsbCAzIGZv
cm1hdHMgZXhpc3QKKyAgICBmb3IgKHZhciBuYW1lIGluIHZhbGlkRm9ybWF0cy5sZW5ndGgpIHsK
KyAgICAgICAgZm9ybWF0RXhpc3RzKHZhbGlkRm9ybWF0c1tuYW1lXSwgc3VwcG9ydGVkRm9ybWF0
cyk7CisgICAgfQorCisgICAgLy8gVGVzdCBlYWNoIGZvcm1hdAorICAgIHRlc3RBVENfUkdCKCk7
CisgICAgdGVzdEFUQ19SR0JBX0V4cGxpY2l0KCk7CisgICAgdGVzdEFUQ19SR0JBX0ludGVycG9s
YXRlZCgpOworfQorCitmdW5jdGlvbiB0ZXN0QVRDX1JHQigpIHsKKyAgICB2YXIgdGVzdHMgPSBb
CisgICAgICAgIHsgICB3aWR0aDogNCwKKyAgICAgICAgICAgIGhlaWdodDogNCwKKyAgICAgICAg
ICAgIGNoYW5uZWxzOiAzLAorICAgICAgICAgICAgZGF0YTogaW1nXzR4NF9yZ2JfYXRjLAorICAg
ICAgICAgICAgcmF3OiBpbWdfNHg0X3JnYmFfcmF3LAorICAgICAgICAgICAgZm9ybWF0OiBleHQu
Q09NUFJFU1NFRF9SR0JfQVRDX1dFQkdMCisgICAgICAgIH0sCisgICAgICAgIHsgICB3aWR0aDog
OCwKKyAgICAgICAgICAgIGhlaWdodDogOCwKKyAgICAgICAgICAgIGNoYW5uZWxzOiAzLAorICAg
ICAgICAgICAgZGF0YTogaW1nXzh4OF9yZ2JfYXRjLAorICAgICAgICAgICAgcmF3OiBpbWdfOHg4
X3JnYmFfcmF3LAorICAgICAgICAgICAgZm9ybWF0OiBleHQuQ09NUFJFU1NFRF9SR0JfQVRDX1dF
QkdMCisgICAgICAgIH0KKyAgICBdOworICAgIHRlc3RBQ1RUZXh0dXJlcyh0ZXN0cyk7Cit9CisK
K2Z1bmN0aW9uIHRlc3RBVENfUkdCQV9FeHBsaWNpdCgpIHsKKyAgICB2YXIgdGVzdHMgPSBbCisg
ICAgICAgIHsgICB3aWR0aDogNCwKKyAgICAgICAgICAgIGhlaWdodDogNCwKKyAgICAgICAgICAg
IGNoYW5uZWxzOiA0LAorICAgICAgICAgICAgZGF0YTogaW1nXzR4NF9yZ2JhX2F0Y19leHBsaWNp
dCwKKyAgICAgICAgICAgIHJhdzogaW1nXzR4NF9yZ2JhX3JhdywKKyAgICAgICAgICAgIGZvcm1h
dDogZXh0LkNPTVBSRVNTRURfUkdCQV9BVENfRVhQTElDSVRfQUxQSEFfV0VCR0wKKyAgICAgICAg
fSwKKyAgICAgICAgeyAgIHdpZHRoOiA4LAorICAgICAgICAgICAgaGVpZ2h0OiA4LAorICAgICAg
ICAgICAgY2hhbm5lbHM6IDQsCisgICAgICAgICAgICBkYXRhOiBpbWdfOHg4X3JnYmFfYXRjX2V4
cGxpY2l0LAorICAgICAgICAgICAgcmF3OiBpbWdfOHg4X3JnYmFfcmF3LAorICAgICAgICAgICAg
Zm9ybWF0OiBleHQuQ09NUFJFU1NFRF9SR0JBX0FUQ19FWFBMSUNJVF9BTFBIQV9XRUJHTAorICAg
ICAgICB9CisgICAgXTsKKyAgICB0ZXN0QUNUVGV4dHVyZXModGVzdHMpOworfQorCitmdW5jdGlv
biB0ZXN0QVRDX1JHQkFfSW50ZXJwb2xhdGVkKCkgeworICAgIHZhciB0ZXN0cyA9IFsKKyAgICAg
ICAgeyAgIHdpZHRoOiA0LAorICAgICAgICAgICAgaGVpZ2h0OiA0LAorICAgICAgICAgICAgY2hh
bm5lbHM6IDQsCisgICAgICAgICAgICBkYXRhOiBpbWdfNHg0X3JnYmFfYXRjX2ludGVycG9sYXRl
ZCwKKyAgICAgICAgICAgIHJhdzogaW1nXzR4NF9yZ2JhX3JhdywKKyAgICAgICAgICAgIGZvcm1h
dDogZXh0LkNPTVBSRVNTRURfUkdCQV9BVENfSU5URVJQT0xBVEVEX0FMUEhBX1dFQkdMCisgICAg
ICAgIH0sCisgICAgICAgIHsgICB3aWR0aDogOCwKKyAgICAgICAgICAgIGhlaWdodDogOCwKKyAg
ICAgICAgICAgIGNoYW5uZWxzOiA0LAorICAgICAgICAgICAgZGF0YTogaW1nXzh4OF9yZ2JhX2F0
Y19pbnRlcnBvbGF0ZWQsCisgICAgICAgICAgICByYXc6IGltZ184eDhfcmdiYV9yYXcsCisgICAg
ICAgICAgICBmb3JtYXQ6IGV4dC5DT01QUkVTU0VEX1JHQkFfQVRDX0lOVEVSUE9MQVRFRF9BTFBI
QV9XRUJHTAorICAgICAgICB9CisgICAgXTsKKyAgICB0ZXN0QUNUVGV4dHVyZXModGVzdHMpOwor
fQorCitmdW5jdGlvbiB0ZXN0QUNUVGV4dHVyZXModGVzdHMpIHsKKyAgICBkZWJ1ZygiPGhyLz4i
KTsKKyAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgdGVzdHMubGVuZ3RoOyArK2lpKSB7CisgICAg
ICAgIHRlc3RBQ1RUZXh0dXJlKHRlc3RzW2lpXSk7CisgICAgfQorfQorCitmdW5jdGlvbiB0ZXN0
QUNUVGV4dHVyZSh0ZXN0KSB7CisgICAgdmFyIGRhdGEgPSBuZXcgVWludDhBcnJheSh0ZXN0LmRh
dGEpOworICAgIHZhciB3aWR0aCA9IHRlc3Qud2lkdGg7CisgICAgdmFyIGhlaWdodCA9IHRlc3Qu
aGVpZ2h0OworICAgIHZhciBmb3JtYXQgPSB0ZXN0LmZvcm1hdDsKKyAgICB2YXIgdW5jb21wcmVz
c2VkRGF0YSA9IHRlc3QucmF3OworCisgICAgY2FudmFzLndpZHRoID0gd2lkdGg7CisgICAgY2Fu
dmFzLmhlaWdodCA9IGhlaWdodDsKKyAgICBnbC52aWV3cG9ydCgwLCAwLCB3aWR0aCwgaGVpZ2h0
KTsKKyAgICBkZWJ1ZygidGVzdGluZyAiICsgZm9ybWF0VG9TdHJpbmcoZm9ybWF0KSArICIgIiAr
IHdpZHRoICsgIngiICsgaGVpZ2h0KTsKKworICAgIHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJl
KCk7CisgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKKyAgICBnbC50ZXhQ
YXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9TLCBnbC5DTEFNUF9UT19F
REdFKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JB
UF9ULCBnbC5DTEFNUF9UT19FREdFKTsKKyAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVf
MkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTkVBUkVTVCk7CisgICAgZ2wudGV4UGFyYW1l
dGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX01BR19GSUxURVIsIGdsLk5FQVJFU1QpOwor
ICAgIGdsLmNvbXByZXNzZWRUZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGZvcm1hdCwgd2lk
dGgsIGhlaWdodCwgMCwgZGF0YSk7CisgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJP
UiwgInVwbG9hZGluZyBjb21wcmVzc2VkIHRleHR1cmUiKTsKKyAgICBnbC5nZW5lcmF0ZU1pcG1h
cChnbC5URVhUVVJFXzJEKTsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BF
UkFUSU9OLCAidHJ5aW5nIHRvIGdlbmVyYXRlIG1pcG1hcHMgZnJvbSBjb21wcmVzc2VkIHRleHR1
cmUiKTsKKyAgICB3dHUuY2xlYXJBbmREcmF3VW5pdFF1YWQoZ2wpOworICAgIGNvbXBhcmVSZWN0
KHdpZHRoLCBoZWlnaHQsIHRlc3QuY2hhbm5lbHMsIHdpZHRoLCBoZWlnaHQsIHVuY29tcHJlc3Nl
ZERhdGEsIGRhdGEsIGZvcm1hdCk7CisKKyAgICBnbC5jb21wcmVzc2VkVGV4SW1hZ2UyRChnbC5U
RVhUVVJFXzJELCAwLCBmb3JtYXQsIHdpZHRoICsgNCwgaGVpZ2h0LCAwLCBkYXRhKTsKKyAgICBn
bEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfVkFMVUUsICJkYXRhIHNpemUgZG9lcyBub3Qg
bWF0Y2ggZGltZW5zaW9ucyIpOworICAgIGdsLmNvbXByZXNzZWRUZXhJbWFnZTJEKGdsLlRFWFRV
UkVfMkQsIDAsIGZvcm1hdCwgd2lkdGgsIGhlaWdodCArIDQsIDAsIGRhdGEpOworICAgIGdsRXJy
b3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9WQUxVRSwgImRhdGEgc2l6ZSBkb2VzIG5vdCBtYXRj
aCBkaW1lbnNpb25zIik7CisgICAgZ2wuY29tcHJlc3NlZFRleEltYWdlMkQoZ2wuVEVYVFVSRV8y
RCwgMCwgZm9ybWF0LCB3aWR0aCAtIDQsIGhlaWdodCwgMCwgZGF0YSk7CisgICAgZ2xFcnJvclNo
b3VsZEJlKGdsLCBnbC5JTlZBTElEX1ZBTFVFLCAiZGF0YSBzaXplIGRvZXMgbm90IG1hdGNoIGRp
bWVuc2lvbnMiKTsKKyAgICBnbC5jb21wcmVzc2VkVGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAw
LCBmb3JtYXQsIHdpZHRoLCBoZWlnaHQgLSA0LCAwLCBkYXRhKTsKKyAgICBnbEVycm9yU2hvdWxk
QmUoZ2wsIGdsLklOVkFMSURfVkFMVUUsICJkYXRhIHNpemUgZG9lcyBub3QgbWF0Y2ggZGltZW5z
aW9ucyIpOworCisgICAgZ2wuY29tcHJlc3NlZFRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwg
Zm9ybWF0LCB3aWR0aCAtIDEsIGhlaWdodCwgMCwgZGF0YSk7CisgICAgZ2xFcnJvclNob3VsZEJl
KGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgImludmFsaWQgZGltZW5zaW9ucyIpOworICAgIGds
LmNvbXByZXNzZWRUZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGZvcm1hdCwgd2lkdGggLSAy
LCBoZWlnaHQsIDAsIGRhdGEpOworICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9P
UEVSQVRJT04sICJpbnZhbGlkIGRpbWVuc2lvbnMiKTsKKyAgICBnbC5jb21wcmVzc2VkVGV4SW1h
Z2UyRChnbC5URVhUVVJFXzJELCAwLCBmb3JtYXQsIHdpZHRoLCBoZWlnaHQgLSAxLCAwLCBkYXRh
KTsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfT1BFUkFUSU9OLCAiaW52YWxp
ZCBkaW1lbnNpb25zIik7CisgICAgZ2wuY29tcHJlc3NlZFRleEltYWdlMkQoZ2wuVEVYVFVSRV8y
RCwgMCwgZm9ybWF0LCB3aWR0aCwgaGVpZ2h0IC0gMiwgMCwgZGF0YSk7CisgICAgZ2xFcnJvclNo
b3VsZEJlKGdsLCBnbC5JTlZBTElEX09QRVJBVElPTiwgImludmFsaWQgZGltZW5zaW9ucyIpOwor
CisgICAgZ2wuY29tcHJlc3NlZFRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgLTEsIGZvcm1hdCwg
MSwgaGVpZ2h0LCAwLCBkYXRhKTsKKyAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9S
LCAiY2Fubm90IHNwZWNpZnkgbmVnYXRpdmUgbWlwIGxldmVsIik7CisKKyAgICAvLyBBVEMgRG9l
cyBub3QgYWxsb3cgdXNlIG9mIENvbXByZXNzZWRUZXhTdWJJbWFnZQorICAgIGdsLmNvbXByZXNz
ZWRUZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIHdpZHRoLCBoZWlnaHQsIGZv
cm1hdCwgZGF0YSk7CisgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX09QRVJBVElP
TiwgImNvbXByZXNzZWRUZXhTdWJJbWFnZTJEIG5vdCBhbGxvd2VkIik7Cit9CisKK2Z1bmN0aW9u
IGluc2VydEltZyhlbGVtZW50LCBjYXB0aW9uLCBpbWcpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZGl2LmFwcGVuZENoaWxkKGltZyk7CisgICAg
dmFyIGxhYmVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgbGFiZWwuYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY2FwdGlvbikpOworICAgIGRpdi5hcHBl
bmRDaGlsZChsYWJlbCk7CisgICAgZWxlbWVudC5hcHBlbmRDaGlsZChkaXYpOworfQorCitmdW5j
dGlvbiBtYWtlSW1hZ2UoaW1hZ2VXaWR0aCwgaW1hZ2VIZWlnaHQsIGRhdGFXaWR0aCwgZGF0YSwg
YWxwaGEpIHsKKyAgICB2YXIgc2NhbGUgPSA4OworICAgIHZhciBjID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiY2FudmFzIik7CisgICAgYy53aWR0aCA9IGltYWdlV2lkdGggKiBzY2FsZTsKKyAg
ICBjLmhlaWdodCA9IGltYWdlSGVpZ2h0ICogc2NhbGU7CisgICAgdmFyIGN0eCA9IGMuZ2V0Q29u
dGV4dCgiMmQiKTsKKyAgICBmb3IgKHZhciB5eSA9IDA7IHl5IDwgaW1hZ2VIZWlnaHQ7ICsreXkp
IHsKKyAgICAgICAgZm9yICh2YXIgeHggPSAwOyB4eCA8IGltYWdlV2lkdGg7ICsreHgpIHsKKyAg
ICAgICAgICAgIHZhciBvZmZzZXQgPSAoeXkgKiBkYXRhV2lkdGggKyB4eCkgKiA0OworICAgICAg
ICAgICAgY3R4LmZpbGxTdHlsZSA9ICJyZ2JhKCIgKworICAgICAgICAgICAgICAgICAgICBkYXRh
W29mZnNldCArIDBdICsgIiwiICsKKyAgICAgICAgICAgICAgICAgICAgZGF0YVtvZmZzZXQgKyAx
XSArICIsIiArCisgICAgICAgICAgICAgICAgICAgIGRhdGFbb2Zmc2V0ICsgMl0gKyAiLCIgKwor
ICAgICAgICAgICAgICAgICAgICAoYWxwaGEgPyBkYXRhW29mZnNldCArIDNdIC8gMjU1IDogMSkg
KyAiKSI7CisgICAgICAgICAgICBjdHguZmlsbFJlY3QoeHggKiBzY2FsZSwgeXkgKiBzY2FsZSwg
c2NhbGUsIHNjYWxlKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB2YXIgaW1nID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaW1nIik7CisgICAgaW1nLnNyYyA9IGMudG9EYXRhVVJMKCk7CisgICAg
cmV0dXJuIGltZzsKK30KK2Z1bmN0aW9uIGNvbXBhcmVSZWN0KAorICAgICAgICBhY3R1YWxXaWR0
aCwgYWN0dWFsSGVpZ2h0LCBhY3R1YWxDaGFubmVscywKKyAgICAgICAgZGF0YVdpZHRoLCBkYXRh
SGVpZ2h0LCBleHBlY3RlZERhdGEsCisgICAgICAgIHRlc3REYXRhLCB0ZXN0Rm9ybWF0LCB0b2xl
cmFuY2UpIHsKKyAgICBpZih0eXBlb2YodG9sZXJhbmNlKSA9PSAndW5kZWZpbmVkJykgeyB0b2xl
cmFuY2UgPSA1OyB9CisgICAgdmFyIGFjdHVhbCA9IG5ldyBVaW50OEFycmF5KGFjdHVhbFdpZHRo
ICogYWN0dWFsSGVpZ2h0ICogNCk7CisgICAgZ2wucmVhZFBpeGVscygKKyAgICAgICAgICAgIDAs
IDAsIGFjdHVhbFdpZHRoLCBhY3R1YWxIZWlnaHQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUs
IGFjdHVhbCk7CisKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7
CisgICAgZGl2LmNsYXNzTmFtZSA9ICJ0ZXN0aW1hZ2VzIjsKKyAgICBpbnNlcnRJbWcoZGl2LCAi
ZXhwZWN0ZWQiLCBtYWtlSW1hZ2UoCisgICAgICAgICAgICBhY3R1YWxXaWR0aCwgYWN0dWFsSGVp
Z2h0LCBkYXRhV2lkdGgsIGV4cGVjdGVkRGF0YSwKKyAgICAgICAgICAgIGFjdHVhbENoYW5uZWxz
ID09IDQpKTsKKyAgICBpbnNlcnRJbWcoZGl2LCAiYWN0dWFsIiwgbWFrZUltYWdlKAorICAgICAg
ICAgICAgYWN0dWFsV2lkdGgsIGFjdHVhbEhlaWdodCwgYWN0dWFsV2lkdGgsIGFjdHVhbCwKKyAg
ICAgICAgICAgIGFjdHVhbENoYW5uZWxzID09IDQpKTsKKyAgICBkaXYuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnYnInKSk7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNvbnNvbGUiKS5hcHBlbmRDaGlsZChkaXYpOworCisgICAgdmFyIGZhaWxlZCA9IGZhbHNlOwor
ICAgIGZvciAodmFyIHl5ID0gMDsgeXkgPCBhY3R1YWxIZWlnaHQ7ICsreXkpIHsKKyAgICAgICAg
Zm9yICh2YXIgeHggPSAwOyB4eCA8IGFjdHVhbFdpZHRoOyArK3h4KSB7CisgICAgICAgICAgICB2
YXIgYWN0dWFsT2Zmc2V0ID0gKHl5ICogYWN0dWFsV2lkdGggKyB4eCkgKiA0OworICAgICAgICAg
ICAgdmFyIGV4cGVjdGVkT2Zmc2V0ID0gKHl5ICogZGF0YVdpZHRoICsgeHgpICogNDsKKyAgICAg
ICAgICAgIHZhciBleHBlY3RlZCA9IFsKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWREYXRh
W2V4cGVjdGVkT2Zmc2V0ICsgMF0sCisgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkRGF0YVtl
eHBlY3RlZE9mZnNldCArIDFdLAorICAgICAgICAgICAgICAgICAgICBleHBlY3RlZERhdGFbZXhw
ZWN0ZWRPZmZzZXQgKyAyXSwKKyAgICAgICAgICAgICAgICAgICAgKGFjdHVhbENoYW5uZWxzID09
IDMgPyAyNTUgOiBleHBlY3RlZERhdGFbZXhwZWN0ZWRPZmZzZXQgKyAzXSkKKyAgICAgICAgICAg
IF07CisgICAgICAgICAgICBmb3IgKHZhciBqaiA9IDA7IGpqIDwgNDsgKytqaikgeworICAgICAg
ICAgICAgICAgIGlmIChNYXRoLmFicyhhY3R1YWxbYWN0dWFsT2Zmc2V0ICsgampdIC0gZXhwZWN0
ZWRbampdKSA+IHRvbGVyYW5jZSkgeworICAgICAgICAgICAgICAgICAgICBmYWlsZWQgPSB0cnVl
OworICAgICAgICAgICAgICAgICAgICB2YXIgd2FzID0gYWN0dWFsW2FjdHVhbE9mZnNldCArIDBd
LnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaiA9IDE7IGogPCA0OyArK2op
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdhcyArPSAiLCIgKyBhY3R1YWxbYWN0dWFsT2Zm
c2V0ICsgal07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgdGVz
dEZhaWxlZCgnYXQgKCcgKyB4eCArICcsICcgKyB5eSArCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICcpIGV4cGVjdGVkOiAnICsgZXhwZWN0ZWQgKyAnIHdhcyAnICsg
d2FzKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9
CisgICAgaWYgKCFmYWlsZWQpIHsKKyAgICAgICAgdGVzdFBhc3NlZCgidGV4dHVyZSByZW5kZXJl
ZCBjb3JyZWN0bHkiKTsKKyAgICB9Cit9CisKK2RlYnVnKCIiKTsKK3ZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>