<?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>56204</bug_id>
          
          <creation_ts>2011-03-11 10:20:16 -0800</creation_ts>
          <short_desc>Web Inspector: move profiler related methods from inspector agent to profiler agent</short_desc>
          <delta_ts>2011-03-11 23:22:50 -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>
          
          <blocked>54112</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yury Semikhatsky">yurys</reporter>
          <assigned_to name="Yury Semikhatsky">yurys</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>366077</commentid>
    <comment_count>0</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-03-11 10:20:16 -0800</bug_when>
    <thetext>Web Inspector: move profiler related methods from inspector agent to profiler agent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366123</commentid>
    <comment_count>1</comment_count>
      <attachid>85495</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-03-11 11:03:35 -0800</bug_when>
    <thetext>Created attachment 85495
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366129</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-11 11:08:25 -0800</bug_when>
    <thetext>Attachment 85495 did not build on chromium:
Build output: http://queues.webkit.org/results/8141347</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366500</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-03-11 20:52:32 -0800</bug_when>
    <thetext>Attachment 85495 did not build on chromium:
Build output: http://queues.webkit.org/results/8132528</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366521</commentid>
    <comment_count>4</comment_count>
      <attachid>85570</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-03-11 22:42:37 -0800</bug_when>
    <thetext>Created attachment 85570
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366528</commentid>
    <comment_count>5</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-03-11 23:22:50 -0800</bug_when>
    <thetext>Committed r80928: &lt;http://trac.webkit.org/changeset/80928&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85495</attachid>
            <date>2011-03-11 11:03:35 -0800</date>
            <delta_ts>2011-03-11 22:42:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56204-20110311220332.patch</filename>
            <type>text/plain</type>
            <size>24606</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODA4NTMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2NDhkYzcyNjk4ZjcyNjA4
N2Y3NmU1MWViOTBhOWEwNDllNGMwZjQ5Li42YTI0YTVlODBhNDk5NDBjNzMzYmJhMjY4YzE4Nzhm
MDY4NjY4Y2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTEtMDMtMTEgIFl1cnkg
U2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogbW92ZSBwcm9maWxlciBy
ZWxhdGVkIG1ldGhvZHMgZnJvbSBpbnNwZWN0b3IgYWdlbnQgdG8gcHJvZmlsZXIgYWdlbnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MjA0CisKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmlkbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQWdlbnQ6Okluc3Bl
Y3RvckFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFnZW50OjpyZXN0b3JlSW5z
cGVjdG9yU3RhdGVGcm9tQ29va2llKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFnZW50
OjpzZXRGcm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBZ2VudDo6ZGlzY29u
bmVjdEZyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFnZW50Ojpwb3B1bGF0
ZVNjcmlwdE9iamVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQWdlbnQ6OnNob3dQ
cm9maWxlc1BhbmVsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuaDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjplbmFibGVQcm9maWxlcik6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNhYmxlUHJvZmlsZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6cHJvZmlsZXJFbmFibGVkKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OnN0YXJ0VXNlckluaXRpYXRlZFByb2ZpbGluZyk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpzdG9wVXNlckluaXRpYXRl
ZFByb2ZpbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjppc1Jl
Y29yZGluZ1VzZXJJbml0aWF0ZWRQcm9maWxlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6cHJvZmlsZXJFbmFibGVkSW1wbCk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUHJv
ZmlsZXJBZ2VudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclByb2ZpbGVy
QWdlbnQ6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yUHJvZmlsZXJBZ2VudDo6ZW5hYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBy
b2ZpbGVyQWdlbnQ6OmRpc2FibGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUHJvZmls
ZXJBZ2VudDo6c2V0RnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUHJvZmls
ZXJBZ2VudDo6Y2xlYXJGcm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQcm9m
aWxlckFnZW50OjpyZXN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclByb2ZpbGVy
QWdlbnQ6OnJlc3RvcmVFbmFibGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBy
b2ZpbGVyQWdlbnQ6OnN0YXJ0VXNlckluaXRpYXRlZFByb2ZpbGluZyk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JQcm9maWxlckFnZW50OjpzdG9wVXNlckluaXRpYXRlZFByb2ZpbGluZyk6
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuaDoKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OnN0b3ApOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvUHJvZmlsZVZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1BVUHJvZmls
ZVR5cGUucHJvdG90eXBlLmJ1dHRvbkNsaWNrZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvUHJvZmlsZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1Bh
bmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZS5fcmVn
aXN0ZXJQcm9maWxlVHlwZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5w
cm90b3R5cGUuX3RvZ2dsZVByb2ZpbGluZyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9pbnNwZWN0b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuX2NyZWF0ZVBhbmVscyk6CisK
IDIwMTEtMDMtMTEgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsCmluZGV4IGE5ZTkx
YWRjZDkxMTc2Yzg4NDEyOGZjYTExYTI3MzhhYmNlYTAyMDIuLmIwY2E5MDFjODBkYzE5OTQ2ZWUx
OWQ5OTcxNTRhMWU5YzFmZWYxZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3IuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3Iu
aWRsCkBAIC02MSwxNCArNjEsNiBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIHZvaWQgZGVsZXRl
Q29va2llKGluIFN0cmluZyBjb29raWVOYW1lLCBpbiBTdHJpbmcgZG9tYWluKTsKIAogICAgICAg
ICBbZXZlbnRdIHZvaWQgaW5zcGVjdChvdXQgT2JqZWN0IG9iamVjdElkLCBvdXQgT2JqZWN0IGhp
bnRzKTsKLQotICAgICAgICAvLyBGSVhNRTogZGlzcGF0Y2ggb24gYWdlbnRzLgotI2lmIGRlZmlu
ZWQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICYmIEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVH
R0VSCi0gICAgICAgIHZvaWQgZW5hYmxlUHJvZmlsZXIoKTsKLSAgICAgICAgdm9pZCBkaXNhYmxl
UHJvZmlsZXIoKTsKLSAgICAgICAgdm9pZCBzdGFydFByb2ZpbGluZygpOwotICAgICAgICB2b2lk
IHN0b3BQcm9maWxpbmcoKTsKLSNlbmRpZiAvLyBFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUgog
ICAgIH07CiAKICAgICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPUlOU1BFQ1RPUl0gUnVudGltZSB7
CkBAIC0yNTksNiArMjUxLDEwIEBAIG1vZHVsZSBjb3JlIHsKIAogI2lmIGRlZmluZWQoRU5BQkxF
X0pBVkFTQ1JJUFRfREVCVUdHRVIpICYmIEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSCiAgICAg
aW50ZXJmYWNlIFtDb25kaXRpb25hbD1JTlNQRUNUT1JdIFByb2ZpbGVyIHsKKyAgICAgICAgdm9p
ZCBlbmFibGUoKTsKKyAgICAgICAgdm9pZCBkaXNhYmxlKCk7CisgICAgICAgIHZvaWQgc3RhcnQo
KTsKKyAgICAgICAgdm9pZCBzdG9wKCk7CiAgICAgICAgIFtldmVudF0gdm9pZCBwcm9maWxlcldh
c0VuYWJsZWQoKTsKICAgICAgICAgW2V2ZW50XSB2b2lkIHByb2ZpbGVyV2FzRGlzYWJsZWQoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5jcHAKaW5kZXggNzNl
ZTQzY2I0YmY1OWEzYmJjN2Q3NmJkOTc2NmJiMzU4YjEzOWUzYS4uMmU5ZjM4NGVjYWI5MjAzNWQ0
Y2Q2YzhhMzJiM2FjNjhkYjQ5OTMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQWdlbnQuY3BwCkBAIC0xMjQsOSArMTI0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
bmFtZXNwYWNlIEluc3BlY3RvckFnZW50U3RhdGUgewogc3RhdGljIGNvbnN0IGNoYXIgc2VhcmNo
aW5nRm9yTm9kZVtdID0gInNlYXJjaGluZ0Zvck5vZGUiOwogc3RhdGljIGNvbnN0IGNoYXIgdGlt
ZWxpbmVQcm9maWxlckVuYWJsZWRbXSA9ICJ0aW1lbGluZVByb2ZpbGVyRW5hYmxlZCI7Ci1zdGF0
aWMgY29uc3QgY2hhciB1c2VySW5pdGlhdGVkUHJvZmlsaW5nW10gPSAidXNlckluaXRpYXRlZFBy
b2ZpbGluZyI7CiBzdGF0aWMgY29uc3QgY2hhciBkZWJ1Z2dlckVuYWJsZWRbXSA9ICJkZWJ1Z2dl
ckVuYWJsZWQiOwotc3RhdGljIGNvbnN0IGNoYXIgcHJvZmlsZXJFbmFibGVkW10gPSAicHJvZmls
ZXJFbmFibGVkIjsKIH0KIAogc3RhdGljIGNvbnN0IGNoYXIgc2NyaXB0c1BhbmVsTmFtZVtdID0g
InNjcmlwdHMiOwpAQCAtMTU3LDcgKzE1NSw3IEBAIEluc3BlY3RvckFnZW50OjpJbnNwZWN0b3JB
Z2VudChQYWdlKiBwYWdlLCBJbnNwZWN0b3JDbGllbnQqIGNsaWVudCwgSW5qZWN0ZWRTY3JpCiAj
aWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCiAgICAgLCBtX2RlYnVnZ2VyQWdlbnQoSW5z
cGVjdG9yRGVidWdnZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwg
bV9zdGF0ZS5nZXQoKSwgcGFnZSwgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKSkKICAgICAsIG1fYnJv
d3NlckRlYnVnZ2VyQWdlbnQoSW5zcGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQ6OmNyZWF0ZSht
X2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCksIG1fZG9tQWdlbnQuZ2V0
KCksIG1fZGVidWdnZXJBZ2VudC5nZXQoKSwgdGhpcykpCi0gICAgLCBtX3Byb2ZpbGVyQWdlbnQo
SW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQo
KSwgbV9jb25zb2xlQWdlbnQuZ2V0KCksIHBhZ2UpKQorICAgICwgbV9wcm9maWxlckFnZW50KElu
c3BlY3RvclByb2ZpbGVyQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCks
IG1fY29uc29sZUFnZW50LmdldCgpLCBwYWdlLCBtX3N0YXRlLmdldCgpKSkKICNlbmRpZgogICAg
ICwgbV9jYW5Jc3N1ZUV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQoZmFsc2UpCiB7CkBAIC0yMjgs
OSArMjI2LDcgQEAgdm9pZCBJbnNwZWN0b3JBZ2VudDo6cmVzdG9yZUluc3BlY3RvclN0YXRlRnJv
bUNvb2tpZShjb25zdCBTdHJpbmcmIGluc3BlY3RvclN0YXQKIAogI2lmIEVOQUJMRShKQVZBU0NS
SVBUX0RFQlVHR0VSKQogICAgIG1fZGVidWdnZXJBZ2VudC0+cmVzdG9yZSgpOwotICAgIHJlc3Rv
cmVQcm9maWxlcihQcm9maWxlclJlc3RvcmVSZXNldEFnZW50KTsKLSAgICBpZiAobV9zdGF0ZS0+
Z2V0Qm9vbGVhbihJbnNwZWN0b3JBZ2VudFN0YXRlOjp1c2VySW5pdGlhdGVkUHJvZmlsaW5nKSkK
LSAgICAgICAgc3RhcnRVc2VySW5pdGlhdGVkUHJvZmlsaW5nKCk7CisgICAgbV9wcm9maWxlckFn
ZW50LT5yZXN0b3JlKCk7CiAjZW5kaWYKIH0KIApAQCAtMzkwLDYgKzM4Niw3IEBAIHZvaWQgSW5z
cGVjdG9yQWdlbnQ6OnNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKiBpbnNwZWN0b3JGcm9u
dGVuZCkKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKICAgICBtX2RlYnVnZ2VyQWdl
bnQtPnNldEZyb250ZW5kKG1fZnJvbnRlbmQpOwogICAgIG1fYnJvd3NlckRlYnVnZ2VyQWdlbnQt
PnNldEZyb250ZW5kKG1fZnJvbnRlbmQpOworICAgIG1fcHJvZmlsZXJBZ2VudC0+c2V0RnJvbnRl
bmQobV9mcm9udGVuZCk7CiAjZW5kaWYKICNpZiBFTkFCTEUoREFUQUJBU0UpCiAgICAgbV9kYXRh
YmFzZUFnZW50LT5zZXRGcm9udGVuZChtX2Zyb250ZW5kKTsKQEAgLTQxOSwxNSArNDE2LDExIEBA
IHZvaWQgSW5zcGVjdG9yQWdlbnQ6OmRpc2Nvbm5lY3RGcm9udGVuZCgpCiAjaWYgRU5BQkxFKEpB
VkFTQ1JJUFRfREVCVUdHRVIpCiAgICAgbV9kZWJ1Z2dlckFnZW50LT5jbGVhckZyb250ZW5kKCk7
CiAgICAgbV9icm93c2VyRGVidWdnZXJBZ2VudC0+Y2xlYXJGcm9udGVuZCgpOworICAgIG1fcHJv
ZmlsZXJBZ2VudC0+Y2xlYXJGcm9udGVuZCgpOwogI2VuZGlmCiAgICAgc2V0U2VhcmNoaW5nRm9y
Tm9kZShmYWxzZSk7CiAKICAgICBoaWRlSGlnaGxpZ2h0KCZlcnJvcik7Ci0KLSNpZiBFTkFCTEUo
SkFWQVNDUklQVF9ERUJVR0dFUikKLSAgICBtX3Byb2ZpbGVyQWdlbnQtPmNsZWFyRnJvbnRlbmQo
KTsKLSAgICBtX3Byb2ZpbGVyQWdlbnQtPnN0b3BVc2VySW5pdGlhdGVkUHJvZmlsaW5nKHRydWUp
OwotI2VuZGlmCiAjaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICBtX2Fw
cGxpY2F0aW9uQ2FjaGVBZ2VudC0+Y2xlYXJGcm9udGVuZCgpOwogI2VuZGlmCkBAIC00ODEsNyAr
NDc0LDYgQEAgdm9pZCBJbnNwZWN0b3JBZ2VudDo6cG9wdWxhdGVTY3JpcHRPYmplY3RzKEVycm9y
U3RyaW5nKikKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKICAgICBtX2RlYnVnZ2Vy
QWdlbnQtPmVuYWJsZURlYnVnZ2VyQWZ0ZXJTaG93bigpOwogI2VuZGlmCi0gICAgcmVzdG9yZVBy
b2ZpbGVyKFByb2ZpbGVyUmVzdG9yZU5vQWN0aW9uKTsKIAogICAgIC8vIERpc3BhdGNoIHBlbmRp
bmcgZnJvbnRlbmQgY29tbWFuZHMKICAgICBpc3N1ZUV2YWx1YXRlRm9yVGVzdENvbW1hbmRzKCk7
CkBAIC01MDAsMjAgKzQ5Miw2IEBAIHZvaWQgSW5zcGVjdG9yQWdlbnQ6OnB1c2hEYXRhQ29sbGVj
dGVkT2ZmbGluZSgpCiAjZW5kaWYKIH0KIAotdm9pZCBJbnNwZWN0b3JBZ2VudDo6cmVzdG9yZVBy
b2ZpbGVyKFByb2ZpbGVyUmVzdG9yZUFjdGlvbiBhY3Rpb24pCi17Ci0gICAgQVNTRVJUKG1fZnJv
bnRlbmQpOwotI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQotICAgIG1fcHJvZmlsZXJB
Z2VudC0+c2V0RnJvbnRlbmQobV9mcm9udGVuZCk7Ci0gICAgaWYgKG1fc3RhdGUtPmdldEJvb2xl
YW4oSW5zcGVjdG9yQWdlbnRTdGF0ZTo6cHJvZmlsZXJFbmFibGVkKSkgewotICAgICAgICBFcnJv
clN0cmluZyBlcnJvcjsKLSAgICAgICAgZW5hYmxlUHJvZmlsZXIoJmVycm9yKTsKLSAgICB9Ci0g
ICAgaWYgKGFjdGlvbiA9PSBQcm9maWxlclJlc3RvcmVSZXNldEFnZW50KQotICAgICAgICBtX3By
b2ZpbGVyQWdlbnQtPnJlc2V0RnJvbnRlbmRQcm9maWxlcygpOwotI2VuZGlmCi19Ci0KIHZvaWQg
SW5zcGVjdG9yQWdlbnQ6OmRpZENvbW1pdExvYWQoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKIHsK
ICAgICBpZiAobV9mcm9udGVuZCkgewpAQCAtNzI3LDQ3ICs3MDUsMTEgQEAgdm9pZCBJbnNwZWN0
b3JBZ2VudDo6ZGVsZXRlQ29va2llKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBjb29raWVO
YW1lLCBjb25zdAogfQogCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCi1ib29sIElu
c3BlY3RvckFnZW50Ojppc1JlY29yZGluZ1VzZXJJbml0aWF0ZWRQcm9maWxlKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gbV9wcm9maWxlckFnZW50LT5pc1JlY29yZGluZ1VzZXJJbml0aWF0ZWRQcm9m
aWxlKCk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yQWdlbnQ6OnN0YXJ0VXNlckluaXRpYXRlZFByb2Zp
bGluZygpCit2b2lkIEluc3BlY3RvckFnZW50OjpzaG93UHJvZmlsZXNQYW5lbCgpCiB7Ci0gICAg
aWYgKCFlbmFibGVkKCkpCi0gICAgICAgIHJldHVybjsKLSAgICBtX3Byb2ZpbGVyQWdlbnQtPnN0
YXJ0VXNlckluaXRpYXRlZFByb2ZpbGluZygpOwotICAgIG1fc3RhdGUtPnNldEJvb2xlYW4oSW5z
cGVjdG9yQWdlbnRTdGF0ZTo6dXNlckluaXRpYXRlZFByb2ZpbGluZywgdHJ1ZSk7Ci19Ci0KLXZv
aWQgSW5zcGVjdG9yQWdlbnQ6OnN0b3BVc2VySW5pdGlhdGVkUHJvZmlsaW5nKCkKLXsKLSAgICBt
X3Byb2ZpbGVyQWdlbnQtPnN0b3BVc2VySW5pdGlhdGVkUHJvZmlsaW5nKCk7Ci0gICAgbV9zdGF0
ZS0+c2V0Qm9vbGVhbihJbnNwZWN0b3JBZ2VudFN0YXRlOjp1c2VySW5pdGlhdGVkUHJvZmlsaW5n
LCBmYWxzZSk7CiAgICAgc2hvd1BhbmVsKHByb2ZpbGVzUGFuZWxOYW1lKTsKIH0KIAotYm9vbCBJ
bnNwZWN0b3JBZ2VudDo6cHJvZmlsZXJFbmFibGVkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gZW5h
YmxlZCgpICYmIG1fcHJvZmlsZXJBZ2VudC0+ZW5hYmxlZCgpOwotfQotCi12b2lkIEluc3BlY3Rv
ckFnZW50OjplbmFibGVQcm9maWxlcihFcnJvclN0cmluZyopCi17Ci0gICAgaWYgKHByb2ZpbGVy
RW5hYmxlZCgpKQotICAgICAgICByZXR1cm47Ci0gICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihJbnNw
ZWN0b3JBZ2VudFN0YXRlOjpwcm9maWxlckVuYWJsZWQsIHRydWUpOwotICAgIG1fcHJvZmlsZXJB
Z2VudC0+ZW5hYmxlKGZhbHNlKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JBZ2VudDo6ZGlzYWJsZVBy
b2ZpbGVyKEVycm9yU3RyaW5nKikKLXsKLSAgICBtX3N0YXRlLT5zZXRCb29sZWFuKEluc3BlY3Rv
ckFnZW50U3RhdGU6OnByb2ZpbGVyRW5hYmxlZCwgZmFsc2UpOwotICAgIG1fcHJvZmlsZXJBZ2Vu
dC0+ZGlzYWJsZSgpOwotfQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dF
UikKIHZvaWQgSW5zcGVjdG9yQWdlbnQ6OnNob3dTY3JpcHRzUGFuZWwoKQogewogICAgIHNob3dQ
YW5lbChzY3JpcHRzUGFuZWxOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckFnZW50LmgKaW5kZXggZWEzYjk5OGFkMmU2MjNjYTZlOTE2Y2RlY2MwMzA3N2MyMWE4ODE5OS4u
ZTRhNjc1MmE2YjNmOWM2ODI3OWM1NTNkMTk1ZmQ0NTkwNjEzNmEwYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmgKQEAgLTE4MywxNSArMTgzLDcgQEAgcHVibGlj
OgogICAgIHZvaWQgZHJhd0VsZW1lbnRUaXRsZShHcmFwaGljc0NvbnRleHQmLCBjb25zdCBJbnRS
ZWN0JiBib3VuZGluZ0JveCwgY29uc3QgSW50UmVjdCYgYW5jaG9yQm94LCBjb25zdCBGbG9hdFJl
Y3QmIG92ZXJsYXlSZWN0LCBXZWJDb3JlOjpTZXR0aW5ncyopIGNvbnN0OwogCiAjaWYgRU5BQkxF
KEpBVkFTQ1JJUFRfREVCVUdHRVIpCi0gICAgYm9vbCBpc1JlY29yZGluZ1VzZXJJbml0aWF0ZWRQ
cm9maWxlKCkgY29uc3Q7Ci0gICAgdm9pZCBzdGFydFByb2ZpbGluZyhFcnJvclN0cmluZyopIHsg
c3RhcnRVc2VySW5pdGlhdGVkUHJvZmlsaW5nKCk7IH0KLSAgICB2b2lkIHN0YXJ0VXNlckluaXRp
YXRlZFByb2ZpbGluZygpOwotICAgIHZvaWQgc3RvcFByb2ZpbGluZyhFcnJvclN0cmluZyopIHsg
c3RvcFVzZXJJbml0aWF0ZWRQcm9maWxpbmcoKTsgfQotICAgIHZvaWQgc3RvcFVzZXJJbml0aWF0
ZWRQcm9maWxpbmcoKTsKLSAgICB2b2lkIGVuYWJsZVByb2ZpbGVyKEVycm9yU3RyaW5nKiBlcnJv
cik7Ci0gICAgdm9pZCBkaXNhYmxlUHJvZmlsZXIoRXJyb3JTdHJpbmcqIGVycm9yKTsKLSAgICBi
b29sIHByb2ZpbGVyRW5hYmxlZCgpIGNvbnN0OwotCisgICAgdm9pZCBzaG93UHJvZmlsZXNQYW5l
bCgpOwogICAgIHZvaWQgc2hvd1NjcmlwdHNQYW5lbCgpOwogI2VuZGlmCiAKQEAgLTIxOCwxMSAr
MjEwLDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2b2lkIHNob3dQYW5lbChjb25zdCBTdHJp
bmcmIHBhbmVsKTsKICAgICB2b2lkIHB1c2hEYXRhQ29sbGVjdGVkT2ZmbGluZSgpOwotICAgIGVu
dW0gUHJvZmlsZXJSZXN0b3JlQWN0aW9uIHsKLSAgICAgICAgUHJvZmlsZXJSZXN0b3JlTm9BY3Rp
b24gPSAwLAotICAgICAgICBQcm9maWxlclJlc3RvcmVSZXNldEFnZW50ID0gMQotICAgIH07Ci0g
ICAgdm9pZCByZXN0b3JlUHJvZmlsZXIoUHJvZmlsZXJSZXN0b3JlQWN0aW9uKTsKICAgICB2b2lk
IHVuYmluZEFsbFJlc291cmNlcygpOwogICAgIHZvaWQgc2V0U2VhcmNoaW5nRm9yTm9kZShib29s
IGVuYWJsZWQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29u
dHJvbGxlci5jcHAKaW5kZXggMWJmZmQ0ZjJmMTFhN2M4OWU5MTliMTEzYWVlM2Q5N2Q3ZTcyNTBj
Mi4uNjgwZDI1NzYzZGMwNjhmNDQxNDFlOWUzNWExMWU2ZjBmZGFjYWY3YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtNDUsNiAr
NDUsNyBAQAogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCiAjaW5jbHVkZSAiSW5zcGVj
dG9yRnJvbnRlbmRDbGllbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
aCIKKyNpbmNsdWRlICJJbnNwZWN0b3JQcm9maWxlckFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVj
dG9yVGltZWxpbmVBZ2VudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJTY3JpcHRP
YmplY3QuaCIKQEAgLTI1MCwxOCArMjUxLDE4IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6
aGlkZUhpZ2hsaWdodCgpCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmVuYWJsZVByb2ZpbGVy
KCkKIHsKICAgICBFcnJvclN0cmluZyBlcnJvcjsKLSAgICBtX2luc3BlY3RvckFnZW50LT5lbmFi
bGVQcm9maWxlcigmZXJyb3IpOworICAgIG1faW5zcGVjdG9yQWdlbnQtPnByb2ZpbGVyQWdlbnQo
KS0+ZW5hYmxlKCZlcnJvcik7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzYWJs
ZVByb2ZpbGVyKCkKIHsKICAgICBFcnJvclN0cmluZyBlcnJvcjsKLSAgICBtX2luc3BlY3RvckFn
ZW50LT5kaXNhYmxlUHJvZmlsZXIoJmVycm9yKTsKKyAgICBtX2luc3BlY3RvckFnZW50LT5wcm9m
aWxlckFnZW50KCktPmRpc2FibGUoJmVycm9yKTsKIH0KIAogYm9vbCBJbnNwZWN0b3JDb250cm9s
bGVyOjpwcm9maWxlckVuYWJsZWQoKQogewotICAgIHJldHVybiBtX2luc3BlY3RvckFnZW50LT5w
cm9maWxlckVuYWJsZWQoKTsKKyAgICByZXR1cm4gbV9pbnNwZWN0b3JBZ2VudC0+cHJvZmlsZXJB
Z2VudCgpLT5lbmFibGVkKCk7CiB9CiAKIGJvb2wgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGVidWdn
ZXJFbmFibGVkKCkKQEAgLTI4NSw3ICsyODYsNyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6
OmRpc2FibGVEZWJ1Z2dlcigpCiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c3RhcnRVc2Vy
SW5pdGlhdGVkUHJvZmlsaW5nKCkKIHsKLSAgICBtX2luc3BlY3RvckFnZW50LT5zdGFydFVzZXJJ
bml0aWF0ZWRQcm9maWxpbmcoKTsKKyAgICBtX2luc3BlY3RvckFnZW50LT5wcm9maWxlckFnZW50
KCktPnN0YXJ0VXNlckluaXRpYXRlZFByb2ZpbGluZygpOwogfQogCiB2b2lkIEluc3BlY3RvckNv
bnRyb2xsZXI6OnN0b3BVc2VySW5pdGlhdGVkUHJvZmlsaW5nKCkKQEAgLTI5MywxMiArMjk0LDEz
IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c3RvcFVzZXJJbml0aWF0ZWRQcm9maWxpbmco
KQogICAgIGlmICghZW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAgICAgc2hvdygpOwotICAg
IG1faW5zcGVjdG9yQWdlbnQtPnN0b3BVc2VySW5pdGlhdGVkUHJvZmlsaW5nKCk7CisgICAgbV9p
bnNwZWN0b3JBZ2VudC0+cHJvZmlsZXJBZ2VudCgpLT5zdG9wVXNlckluaXRpYXRlZFByb2ZpbGlu
ZygpOworICAgIG1faW5zcGVjdG9yQWdlbnQtPnNob3dQcm9maWxlc1BhbmVsKCk7CiB9CiAKIGJv
b2wgSW5zcGVjdG9yQ29udHJvbGxlcjo6aXNSZWNvcmRpbmdVc2VySW5pdGlhdGVkUHJvZmlsZSgp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1faW5zcGVjdG9yQWdlbnQtPmlzUmVjb3JkaW5nVXNlcklu
aXRpYXRlZFByb2ZpbGUoKTsKKyAgICByZXR1cm4gbV9pbnNwZWN0b3JBZ2VudC0+cHJvZmlsZXJB
Z2VudCgpLT5pc1JlY29yZGluZ1VzZXJJbml0aWF0ZWRQcm9maWxlKCk7CiB9CiAKIHZvaWQgSW5z
cGVjdG9yQ29udHJvbGxlcjo6cmVzdW1lKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggM2YzNTAwODdkYWE3ZTFl
NDkwNGZjOGU2YjBkMmYzZjQ1MTZjM2IwNy4uNGEyZjIwMzg0ZTkxM2M3YzE0OTE0OTllNWJhYjhh
YmQ4NDcxNzBiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTYzMCw3ICs2MzAsNyBAQCBTdHJpbmcgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpnZXRDdXJyZW50VXNlckluaXRpYXRlZFByb2ZpbGVOYW1lSW1w
bChJbnNwZWN0bwogCiBib29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6cHJvZmlsZXJFbmFi
bGVkSW1wbChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQpCiB7Ci0gICAgcmV0dXJuIGlu
c3BlY3RvckFnZW50LT5wcm9maWxlckVuYWJsZWQoKTsKKyAgICByZXR1cm4gaW5zcGVjdG9yQWdl
bnQtPmluc3RydW1lbnRpbmdBZ2VudHMoKS0+aW5zcGVjdG9yUHJvZmlsZXJBZ2VudCgpLT5lbmFi
bGVkKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwCmluZGV4IGQzMDRjMmMzZDA0M2UxNWE5ZTJiY2Q2ZTg3
Njg2ZWU5ZTVkNmM0NjYuLjE4NjdkZjE2YWM0NTMxMWQ3YzdiOTUwYzNiMjEyMDdkMGY4OWMyZGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFn
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJB
Z2VudC5jcHAKQEAgLTMzLDkgKzMzLDkgQEAKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dF
UikgJiYgRU5BQkxFKElOU1BFQ1RPUikKIAogI2luY2x1ZGUgIkNvbnNvbGUuaCIKLSNpbmNsdWRl
ICJJbnNwZWN0b3JBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNvbnNvbGVBZ2VudC5oIgog
I2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUu
aCIKICNpbmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5n
QWdlbnRzLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgpAQCAtNTQsMTkgKzU0LDI1IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorbmFtZXNwYWNlIFByb2ZpbGVyQWdlbnRTdGF0ZSB7CitzdGF0aWMg
Y29uc3QgY2hhciB1c2VySW5pdGlhdGVkUHJvZmlsaW5nW10gPSAidXNlckluaXRpYXRlZFByb2Zp
bGluZyI7CitzdGF0aWMgY29uc3QgY2hhciBwcm9maWxlckVuYWJsZWRbXSA9ICJwcm9maWxlckVu
YWJsZWQiOworfQorCiBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgVXNlckluaXRpYXRlZFByb2Zp
bGVOYW1lID0gIm9yZy53ZWJraXQucHJvZmlsZXMudXNlci1pbml0aWF0ZWQiOwogc3RhdGljIGNv
bnN0IGNoYXIqIGNvbnN0IENQVVByb2ZpbGVUeXBlID0gIkNQVSI7CiBzdGF0aWMgY29uc3QgY2hh
ciogY29uc3QgSGVhcFByb2ZpbGVUeXBlID0gIkhFQVAiOwogCi1QYXNzT3duUHRyPEluc3BlY3Rv
clByb2ZpbGVyQWdlbnQ+IEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmNyZWF0ZShJbnN0cnVtZW50
aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb25zb2xlQWdlbnQqIGNv
bnNvbGVBZ2VudCwgUGFnZSogaW5zcGVjdGVkUGFnZSkKK1Bhc3NPd25QdHI8SW5zcGVjdG9yUHJv
ZmlsZXJBZ2VudD4gSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6Y3JlYXRlKEluc3RydW1lbnRpbmdB
Z2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbnNvbGVBZ2VudCogY29uc29s
ZUFnZW50LCBQYWdlKiBpbnNwZWN0ZWRQYWdlLCBJbnNwZWN0b3JTdGF0ZSogaW5zcGVjdG9yU3Rh
dGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JQcm9maWxlckFnZW50KGlu
c3RydW1lbnRpbmdBZ2VudHMsIGNvbnNvbGVBZ2VudCwgaW5zcGVjdGVkUGFnZSkpOworICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudChpbnN0cnVtZW50aW5nQWdl
bnRzLCBjb25zb2xlQWdlbnQsIGluc3BlY3RlZFBhZ2UsIGluc3BlY3RvclN0YXRlKSk7CiB9CiAK
LUluc3BlY3RvclByb2ZpbGVyQWdlbnQ6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQoSW5zdHJ1bWVu
dGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29uc29sZUFnZW50KiBj
b25zb2xlQWdlbnQsIFBhZ2UqIGluc3BlY3RlZFBhZ2UpCitJbnNwZWN0b3JQcm9maWxlckFnZW50
OjpJbnNwZWN0b3JQcm9maWxlckFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRp
bmdBZ2VudHMsIEluc3BlY3RvckNvbnNvbGVBZ2VudCogY29uc29sZUFnZW50LCBQYWdlKiBpbnNw
ZWN0ZWRQYWdlLCBJbnNwZWN0b3JTdGF0ZSogaW5zcGVjdG9yU3RhdGUpCiAgICAgOiBtX2luc3Ry
dW1lbnRpbmdBZ2VudHMoaW5zdHJ1bWVudGluZ0FnZW50cykKICAgICAsIG1fY29uc29sZUFnZW50
KGNvbnNvbGVBZ2VudCkKICAgICAsIG1faW5zcGVjdGVkUGFnZShpbnNwZWN0ZWRQYWdlKQorICAg
ICwgbV9pbnNwZWN0b3JTdGF0ZShpbnNwZWN0b3JTdGF0ZSkKICAgICAsIG1fZnJvbnRlbmQoMCkK
ICAgICAsIG1fZW5hYmxlZChmYWxzZSkKICAgICAsIG1fcmVjb3JkaW5nVXNlckluaXRpYXRlZFBy
b2ZpbGUoZmFsc2UpCkBAIC0xMzIsNiArMTM4LDIwIEBAIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpjcmVhdGVTbmFwc2hvdEhlYWRlcihjb25zdCBT
CiAgICAgcmV0dXJuIGhlYWRlcjsKIH0KIAordm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50Ojpl
bmFibGUoRXJyb3JTdHJpbmcqKQoreworICAgIGlmIChlbmFibGVkKCkpCisgICAgICAgIHJldHVy
bjsKKyAgICBtX2luc3BlY3RvclN0YXRlLT5zZXRCb29sZWFuKFByb2ZpbGVyQWdlbnRTdGF0ZTo6
cHJvZmlsZXJFbmFibGVkLCB0cnVlKTsKKyAgICBlbmFibGUoZmFsc2UpOworfQorCit2b2lkIElu
c3BlY3RvclByb2ZpbGVyQWdlbnQ6OmRpc2FibGUoRXJyb3JTdHJpbmcqKQoreworICAgIG1faW5z
cGVjdG9yU3RhdGUtPnNldEJvb2xlYW4oUHJvZmlsZXJBZ2VudFN0YXRlOjpwcm9maWxlckVuYWJs
ZWQsIGZhbHNlKTsKKyAgICBkaXNhYmxlKCk7Cit9CisKIHZvaWQgSW5zcGVjdG9yUHJvZmlsZXJB
Z2VudDo6ZGlzYWJsZSgpCiB7CiAgICAgaWYgKCFtX2VuYWJsZWQpCkBAIC0yNDYsNiArMjY2LDM3
IEBAIHZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6cmVzZXRGcm9udGVuZFByb2ZpbGVzKCkK
ICAgICAgICAgbV9mcm9udGVuZC0+cmVzZXRQcm9maWxlcygpOwogfQogCit2b2lkIEluc3BlY3Rv
clByb2ZpbGVyQWdlbnQ6OnNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCkK
K3sKKyAgICBtX2Zyb250ZW5kID0gZnJvbnRlbmQtPnByb2ZpbGVyKCk7CisgICAgcmVzdG9yZUVu
YWJsZW1lbnQoKTsKK30KKwordm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpjbGVhckZyb250
ZW5kKCkKK3sKKyAgICBtX2Zyb250ZW5kID0gMDsKKyAgICBzdG9wVXNlckluaXRpYXRlZFByb2Zp
bGluZygpOworfQorCit2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OnJlc3RvcmUoKQorewor
ICAgIC8vIE5lZWQgdG8gcmVzdG9yZSBlbmFibGVtZW50IHN0YXRlIGhlcmUgYXMgaW4gc2V0RnJv
bnRlbmQgbV9pbnNwZWN0b3JTdGF0ZSB3YXNuJ3QgbG9hZGVkIHlldC4KKyAgICByZXN0b3JlRW5h
YmxlbWVudCgpOworCisgICAgLy8gUmV2aXNpdCB0aGlzLgorICAgIHJlc2V0RnJvbnRlbmRQcm9m
aWxlcygpOworICAgIGlmIChtX2luc3BlY3RvclN0YXRlLT5nZXRCb29sZWFuKFByb2ZpbGVyQWdl
bnRTdGF0ZTo6dXNlckluaXRpYXRlZFByb2ZpbGluZykpCisgICAgICAgIHN0YXJ0VXNlckluaXRp
YXRlZFByb2ZpbGluZygpOworfQorCit2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OnJlc3Rv
cmVFbmFibGVtZW50KCkKK3sKKyAgICBpZiAobV9pbnNwZWN0b3JTdGF0ZS0+Z2V0Qm9vbGVhbihQ
cm9maWxlckFnZW50U3RhdGU6OnByb2ZpbGVyRW5hYmxlZCkpIHsKKyAgICAgICAgRXJyb3JTdHJp
bmcgZXJyb3I7CisgICAgICAgIGVuYWJsZSgmZXJyb3IpOworICAgIH0KK30KKwogdm9pZCBJbnNw
ZWN0b3JQcm9maWxlckFnZW50OjpzdGFydFVzZXJJbml0aWF0ZWRQcm9maWxpbmcoKQogewogICAg
IGlmIChtX3JlY29yZGluZ1VzZXJJbml0aWF0ZWRQcm9maWxlKQpAQCAtMjY0LDYgKzMxNSw3IEBA
IHZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6c3RhcnRVc2VySW5pdGlhdGVkUHJvZmlsaW5n
KCkKICAgICBTY3JpcHRQcm9maWxlcjo6c3RhcnQoc2NyaXB0U3RhdGUsIHRpdGxlKTsKICAgICBh
ZGRTdGFydFByb2ZpbGluZ01lc3NhZ2VUb0NvbnNvbGUodGl0bGUsIDAsIFN0cmluZygpKTsKICAg
ICB0b2dnbGVSZWNvcmRCdXR0b24odHJ1ZSk7CisgICAgbV9pbnNwZWN0b3JTdGF0ZS0+c2V0Qm9v
bGVhbihQcm9maWxlckFnZW50U3RhdGU6OnVzZXJJbml0aWF0ZWRQcm9maWxpbmcsIHRydWUpOwog
fQogCiB2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OnN0b3BVc2VySW5pdGlhdGVkUHJvZmls
aW5nKGJvb2wgaWdub3JlUHJvZmlsZSkKQEAgLTI4Nyw2ICszMzksNyBAQCB2b2lkIEluc3BlY3Rv
clByb2ZpbGVyQWdlbnQ6OnN0b3BVc2VySW5pdGlhdGVkUHJvZmlsaW5nKGJvb2wgaWdub3JlUHJv
ZmlsZSkKICAgICAgICAgICAgIGFkZFByb2ZpbGVGaW5pc2hlZE1lc3NhZ2VUb0NvbnNvbGUocHJv
ZmlsZSwgMCwgU3RyaW5nKCkpOwogICAgIH0KICAgICB0b2dnbGVSZWNvcmRCdXR0b24oZmFsc2Up
OworICAgIG1faW5zcGVjdG9yU3RhdGUtPnNldEJvb2xlYW4oUHJvZmlsZXJBZ2VudFN0YXRlOjp1
c2VySW5pdGlhdGVkUHJvZmlsaW5nLCBmYWxzZSk7CiB9CiAKIG5hbWVzcGFjZSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuaAppbmRleCA3
NmVjYzc5NmNjODhiN2U0YzQ1YjM0YTdhMzk2ZTUzMTcyYzQ3MDIzLi40Y2Q1NDU4MmRkN2RkMjdm
OGQxZDAzNTZiZDU4ZjJiYzZhMTY1ODQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmgKQEAgLTQ1LDYgKzQ1LDcgQEAgY2xhc3MgSW5z
cGVjdG9yQXJyYXk7CiBjbGFzcyBJbnNwZWN0b3JDb25zb2xlQWdlbnQ7CiBjbGFzcyBJbnNwZWN0
b3JGcm9udGVuZDsKIGNsYXNzIEluc3BlY3Rvck9iamVjdDsKK2NsYXNzIEluc3BlY3RvclN0YXRl
OwogY2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50czsKIGNsYXNzIFBhZ2U7CiBjbGFzcyBTY3JpcHRI
ZWFwU25hcHNob3Q7CkBAIC01NSw3ICs1Niw3IEBAIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5n
OwogY2xhc3MgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoSW5zcGVjdG9yUHJvZmlsZXJBZ2VudCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvclByb2ZpbGVyQWdlbnQ+IGNyZWF0
ZShJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ29uc29sZUFnZW50KiwgUGFnZSopOwor
ICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvclByb2ZpbGVyQWdlbnQ+IGNyZWF0ZShJbnN0
cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ29uc29sZUFnZW50KiwgUGFnZSosIEluc3BlY3Rv
clN0YXRlKik7CiAgICAgdmlydHVhbCB+SW5zcGVjdG9yUHJvZmlsZXJBZ2VudCgpOwogCiAgICAg
dm9pZCBhZGRQcm9maWxlKFBhc3NSZWZQdHI8U2NyaXB0UHJvZmlsZT4gcHJwUHJvZmlsZSwgdW5z
aWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpOwpAQCAtNjMsNiArNjQs
MTMgQEAgcHVibGljOgogICAgIHZvaWQgYWRkU3RhcnRQcm9maWxpbmdNZXNzYWdlVG9Db25zb2xl
KGNvbnN0IFN0cmluZyYgdGl0bGUsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYg
c291cmNlVVJMKTsKICAgICB2b2lkIGNvbGxlY3RHYXJiYWdlKEVycm9yU3RyaW5nKik7CiAgICAg
dm9pZCBjbGVhclByb2ZpbGVzKEVycm9yU3RyaW5nKikgeyByZXNldFN0YXRlKCk7IH0KKyAgICB2
b2lkIHJlc2V0U3RhdGUoKTsKKworICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nKik7CisgICAg
dm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nKik7CisgICAgdm9pZCBzdGFydChFcnJvclN0cmluZyop
IHsgc3RhcnRVc2VySW5pdGlhdGVkUHJvZmlsaW5nKCk7IH0KKyAgICB2b2lkIHN0b3AoRXJyb3JT
dHJpbmcqKSB7IHN0b3BVc2VySW5pdGlhdGVkUHJvZmlsaW5nKCk7IH0KKwogICAgIHZvaWQgZGlz
YWJsZSgpOwogICAgIHZvaWQgZW5hYmxlKGJvb2wgc2tpcFJlY29tcGlsZSk7CiAgICAgYm9vbCBl
bmFibGVkKCkgeyByZXR1cm4gbV9lbmFibGVkOyB9CkBAIC03MiwxMCArODAsMTEgQEAgcHVibGlj
OgogICAgIHZvaWQgZ2V0UHJvZmlsZShFcnJvclN0cmluZyogZXJyb3IsIGNvbnN0IFN0cmluZyYg
dHlwZSwgdW5zaWduZWQgdWlkLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcHJvZmlsZU9iamVj
dCk7CiAgICAgYm9vbCBpc1JlY29yZGluZ1VzZXJJbml0aWF0ZWRQcm9maWxlKCkgeyByZXR1cm4g
bV9yZWNvcmRpbmdVc2VySW5pdGlhdGVkUHJvZmlsZTsgfQogICAgIHZvaWQgcmVtb3ZlUHJvZmls
ZShFcnJvclN0cmluZyogZXJyb3IsIGNvbnN0IFN0cmluZyYgdHlwZSwgdW5zaWduZWQgdWlkKTsK
LSAgICB2b2lkIHJlc2V0U3RhdGUoKTsKLSAgICB2b2lkIHJlc2V0RnJvbnRlbmRQcm9maWxlcygp
OwotICAgIHZvaWQgc2V0RnJvbnRlbmQoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKSB7IG1f
ZnJvbnRlbmQgPSBmcm9udGVuZC0+cHJvZmlsZXIoKTsgfQotICAgIHZvaWQgY2xlYXJGcm9udGVu
ZCgpIHsgbV9mcm9udGVuZCA9IDA7IH0KKworICAgIHZvaWQgc2V0RnJvbnRlbmQoSW5zcGVjdG9y
RnJvbnRlbmQqKTsKKyAgICB2b2lkIGNsZWFyRnJvbnRlbmQoKTsKKyAgICB2b2lkIHJlc3RvcmUo
KTsKKwogICAgIHZvaWQgc3RhcnRVc2VySW5pdGlhdGVkUHJvZmlsaW5nKCk7CiAgICAgdm9pZCBz
dG9wVXNlckluaXRpYXRlZFByb2ZpbGluZyhib29sIGlnbm9yZVByb2ZpbGUgPSBmYWxzZSk7CiAg
ICAgdm9pZCB0YWtlSGVhcFNuYXBzaG90KEVycm9yU3RyaW5nKiBlcnJvciwgYm9vbCBkZXRhaWxl
ZCk7CkBAIC04NSwxMyArOTQsMTcgQEAgcHJpdmF0ZToKICAgICB0eXBlZGVmIEhhc2hNYXA8dW5z
aWduZWQgaW50LCBSZWZQdHI8U2NyaXB0UHJvZmlsZT4gPiBQcm9maWxlc01hcDsKICAgICB0eXBl
ZGVmIEhhc2hNYXA8dW5zaWduZWQgaW50LCBSZWZQdHI8U2NyaXB0SGVhcFNuYXBzaG90PiA+IEhl
YXBTbmFwc2hvdHNNYXA7CiAKLSAgICBJbnNwZWN0b3JQcm9maWxlckFnZW50KEluc3RydW1lbnRp
bmdBZ2VudHMqLCBJbnNwZWN0b3JDb25zb2xlQWdlbnQqLCBQYWdlKik7CisgICAgdm9pZCByZXNl
dEZyb250ZW5kUHJvZmlsZXMoKTsKKyAgICB2b2lkIHJlc3RvcmVFbmFibGVtZW50KCk7CisKKyAg
ICBJbnNwZWN0b3JQcm9maWxlckFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JD
b25zb2xlQWdlbnQqLCBQYWdlKiwgSW5zcGVjdG9yU3RhdGUqKTsKICAgICBQYXNzUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gY3JlYXRlUHJvZmlsZUhlYWRlcihjb25zdCBTY3JpcHRQcm9maWxlJiBw
cm9maWxlKTsKICAgICBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY3JlYXRlU25hcHNob3RI
ZWFkZXIoY29uc3QgU2NyaXB0SGVhcFNuYXBzaG90JiBzbmFwc2hvdCk7CiAKICAgICBJbnN0cnVt
ZW50aW5nQWdlbnRzKiBtX2luc3RydW1lbnRpbmdBZ2VudHM7CiAgICAgSW5zcGVjdG9yQ29uc29s
ZUFnZW50KiBtX2NvbnNvbGVBZ2VudDsKICAgICBQYWdlKiBtX2luc3BlY3RlZFBhZ2U7CisgICAg
SW5zcGVjdG9yU3RhdGUqIG1faW5zcGVjdG9yU3RhdGU7CiAgICAgSW5zcGVjdG9yRnJvbnRlbmQ6
OlByb2ZpbGVyKiBtX2Zyb250ZW5kOwogICAgIGJvb2wgbV9lbmFibGVkOwogICAgIGJvb2wgbV9y
ZWNvcmRpbmdVc2VySW5pdGlhdGVkUHJvZmlsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVWaWV3LmpzCmluZGV4IDlmNGQ4MjI5ZmUyNTNmYTUwOTcy
MzQ1YzNjYTk3NTYyNjVjZWE4YzguLmE4YzVmZjQ2OTA0Zjk3YjFiOGU1OTM5ZWMyYjI1OWJjNGVk
NjY0MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJv
ZmlsZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9m
aWxlVmlldy5qcwpAQCAtNTk1LDkgKzU5NSw5IEBAIFdlYkluc3BlY3Rvci5DUFVQcm9maWxlVHlw
ZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3JlY29yZGluZyA9ICF0aGlzLl9yZWNvcmRp
bmc7CiAKICAgICAgICAgaWYgKHRoaXMuX3JlY29yZGluZykKLSAgICAgICAgICAgIEluc3BlY3Rv
ckFnZW50LnN0YXJ0UHJvZmlsaW5nKCk7CisgICAgICAgICAgICBQcm9maWxlckFnZW50LnN0YXJ0
KCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIEluc3BlY3RvckFnZW50LnN0b3BQcm9maWxp
bmcoKTsKKyAgICAgICAgICAgIFByb2ZpbGVyQWdlbnQuc3RvcCgpOwogICAgIH0sCiAKICAgICBn
ZXQgd2VsY29tZU1lc3NhZ2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCmluZGV4IGNiOGUxMzhiNzYyZWFmOTRkZGEyZmNhYmUw
OTY3OWJmNTA2ODVjNmYuLmI4OWJiOWFhYmMyMWQxYzNmZGY5OWQ4ZTgwYjViZWQzYzM1ZThiMzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQ
YW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVz
UGFuZWwuanMKQEAgLTEyNCw2ICsxMjQsMTUgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwg
PSBmdW5jdGlvbigpCiAgICAgdGhpcy5fcHJvZmlsZXMgPSBbXTsKICAgICB0aGlzLl9wcm9maWxl
ckVuYWJsZWQgPSBQcmVmZXJlbmNlcy5wcm9maWxlckFsd2F5c0VuYWJsZWQ7CiAgICAgdGhpcy5f
cmVzZXQoKTsKKworICAgIHRoaXMuX3JlZ2lzdGVyUHJvZmlsZVR5cGUobmV3IFdlYkluc3BlY3Rv
ci5DUFVQcm9maWxlVHlwZSgpKTsKKyAgICBpZiAoUHJlZmVyZW5jZXMuaGVhcFByb2ZpbGVyUHJl
c2VudCkgeworICAgICAgICBpZiAoIVByZWZlcmVuY2VzLmRldGFpbGVkSGVhcFByb2ZpbGVzKQor
ICAgICAgICAgICAgdGhpcy5fcmVnaXN0ZXJQcm9maWxlVHlwZShuZXcgV2ViSW5zcGVjdG9yLkhl
YXBTbmFwc2hvdFByb2ZpbGVUeXBlKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlz
Ll9yZWdpc3RlclByb2ZpbGVUeXBlKG5ldyBXZWJJbnNwZWN0b3IuRGV0YWlsZWRIZWFwc2hvdFBy
b2ZpbGVUeXBlKCkpOworICAgIH0KKwogICAgIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJEb21h
aW5EaXNwYXRjaGVyKCJQcm9maWxlciIsIG5ldyBXZWJJbnNwZWN0b3IuUHJvZmlsZXJEaXNwYXRj
aGVyKHRoaXMpKTsKIH0KIApAQCAtMjMwLDcgKzIzOSw3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxl
c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fcmVzZXQoKTsKICAgICB9LAogCi0g
ICAgcmVnaXN0ZXJQcm9maWxlVHlwZTogZnVuY3Rpb24ocHJvZmlsZVR5cGUpCisgICAgX3JlZ2lz
dGVyUHJvZmlsZVR5cGU6IGZ1bmN0aW9uKHByb2ZpbGVUeXBlKQogICAgIHsKICAgICAgICAgdGhp
cy5fcHJvZmlsZVR5cGVzQnlJZE1hcFtwcm9maWxlVHlwZS5pZF0gPSBwcm9maWxlVHlwZTsKICAg
ICAgICAgcHJvZmlsZVR5cGUudHJlZUVsZW1lbnQgPSBuZXcgV2ViSW5zcGVjdG9yLlNpZGViYXJT
ZWN0aW9uVHJlZUVsZW1lbnQocHJvZmlsZVR5cGUubmFtZSwgbnVsbCwgdHJ1ZSk7CkBAIC02MTQs
MTAgKzYyMywxMCBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAg
ICAgewogICAgICAgICBpZiAodGhpcy5fcHJvZmlsZXJFbmFibGVkKSB7CiAgICAgICAgICAgICBX
ZWJJbnNwZWN0b3Iuc2V0dGluZ3MucHJvZmlsZXJFbmFibGVkID0gZmFsc2U7Ci0gICAgICAgICAg
ICBJbnNwZWN0b3JBZ2VudC5kaXNhYmxlUHJvZmlsZXIodHJ1ZSk7CisgICAgICAgICAgICBQcm9m
aWxlckFnZW50LmRpc2FibGUoKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIFdlYklu
c3BlY3Rvci5zZXR0aW5ncy5wcm9maWxlckVuYWJsZWQgPSAhIW9wdGlvbmFsQWx3YXlzOwotICAg
ICAgICAgICAgSW5zcGVjdG9yQWdlbnQuZW5hYmxlUHJvZmlsZXIoKTsKKyAgICAgICAgICAgIFBy
b2ZpbGVyQWdlbnQuZW5hYmxlKCk7CiAgICAgICAgIH0KICAgICB9LAogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCmluZGV4IGVhOWRmNWVlZGM3
ZGQyODQ1YjE2Y2Q3M2YyNjBlN2U3N2FlMDM5YWYuLjBhNDUzMjVhOWZhOGY2MWUyOGZmZDNlY2Vl
NTg1NzZkYTcwOTRmYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvaW5zcGVjdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvaW5zcGVjdG9yLmpzCkBAIC0yMTUsMTYgKzIxNSw4IEBAIHZhciBXZWJJbnNwZWN0b3IgPSB7
CiAgICAgICAgICAgICB0aGlzLnBhbmVscy5zY3JpcHRzID0gbmV3IFdlYkluc3BlY3Rvci5TY3Jp
cHRzUGFuZWwoKTsKICAgICAgICAgaWYgKGhpZGRlblBhbmVscy5pbmRleE9mKCJ0aW1lbGluZSIp
ID09PSAtMSkKICAgICAgICAgICAgIHRoaXMucGFuZWxzLnRpbWVsaW5lID0gbmV3IFdlYkluc3Bl
Y3Rvci5UaW1lbGluZVBhbmVsKCk7Ci0gICAgICAgIGlmIChoaWRkZW5QYW5lbHMuaW5kZXhPZigi
cHJvZmlsZXMiKSA9PT0gLTEpIHsKKyAgICAgICAgaWYgKGhpZGRlblBhbmVscy5pbmRleE9mKCJw
cm9maWxlcyIpID09PSAtMSkKICAgICAgICAgICAgIHRoaXMucGFuZWxzLnByb2ZpbGVzID0gbmV3
IFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsKCk7Ci0gICAgICAgICAgICB0aGlzLnBhbmVscy5w
cm9maWxlcy5yZWdpc3RlclByb2ZpbGVUeXBlKG5ldyBXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVR5
cGUoKSk7Ci0gICAgICAgICAgICBpZiAoUHJlZmVyZW5jZXMuaGVhcFByb2ZpbGVyUHJlc2VudCkg
ewotICAgICAgICAgICAgICAgIGlmICghUHJlZmVyZW5jZXMuZGV0YWlsZWRIZWFwUHJvZmlsZXMp
Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMucGFuZWxzLnByb2ZpbGVzLnJlZ2lzdGVyUHJvZmls
ZVR5cGUobmV3IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RQcm9maWxlVHlwZSgpKTsKLSAgICAg
ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHRoaXMucGFuZWxzLnByb2ZpbGVz
LnJlZ2lzdGVyUHJvZmlsZVR5cGUobmV3IFdlYkluc3BlY3Rvci5EZXRhaWxlZEhlYXBzaG90UHJv
ZmlsZVR5cGUoKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KICAgICAgICAgaWYgKGhpZGRl
blBhbmVscy5pbmRleE9mKCJhdWRpdHMiKSA9PT0gLTEpCiAgICAgICAgICAgICB0aGlzLnBhbmVs
cy5hdWRpdHMgPSBuZXcgV2ViSW5zcGVjdG9yLkF1ZGl0c1BhbmVsKCk7CiAgICAgICAgIGlmICho
aWRkZW5QYW5lbHMuaW5kZXhPZigiY29uc29sZSIpID09PSAtMSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85570</attachid>
            <date>2011-03-11 22:42:37 -0800</date>
            <delta_ts>2011-03-11 23:09:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56204-20110312094234.patch</filename>
            <type>text/plain</type>
            <size>25696</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODA4NTMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2NDhkYzcyNjk4ZjcyNjA4
N2Y3NmU1MWViOTBhOWEwNDllNGMwZjQ5Li42YTI0YTVlODBhNDk5NDBjNzMzYmJhMjY4YzE4Nzhm
MDY4NjY4Y2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTEtMDMtMTEgIFl1cnkg
U2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogbW92ZSBwcm9maWxlciBy
ZWxhdGVkIG1ldGhvZHMgZnJvbSBpbnNwZWN0b3IgYWdlbnQgdG8gcHJvZmlsZXIgYWdlbnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2MjA0CisKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmlkbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQWdlbnQ6Okluc3Bl
Y3RvckFnZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFnZW50OjpyZXN0b3JlSW5z
cGVjdG9yU3RhdGVGcm9tQ29va2llKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFnZW50
OjpzZXRGcm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBZ2VudDo6ZGlzY29u
bmVjdEZyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFnZW50Ojpwb3B1bGF0
ZVNjcmlwdE9iamVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQWdlbnQ6OnNob3dQ
cm9maWxlc1BhbmVsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuaDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjplbmFibGVQcm9maWxlcik6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNhYmxlUHJvZmlsZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6cHJvZmlsZXJFbmFibGVkKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OnN0YXJ0VXNlckluaXRpYXRlZFByb2ZpbGluZyk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpzdG9wVXNlckluaXRpYXRl
ZFByb2ZpbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjppc1Jl
Y29yZGluZ1VzZXJJbml0aWF0ZWRQcm9maWxlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6cHJvZmlsZXJFbmFibGVkSW1wbCk6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUHJv
ZmlsZXJBZ2VudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclByb2ZpbGVy
QWdlbnQ6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yUHJvZmlsZXJBZ2VudDo6ZW5hYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBy
b2ZpbGVyQWdlbnQ6OmRpc2FibGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUHJvZmls
ZXJBZ2VudDo6c2V0RnJvbnRlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUHJvZmls
ZXJBZ2VudDo6Y2xlYXJGcm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQcm9m
aWxlckFnZW50OjpyZXN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclByb2ZpbGVy
QWdlbnQ6OnJlc3RvcmVFbmFibGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBy
b2ZpbGVyQWdlbnQ6OnN0YXJ0VXNlckluaXRpYXRlZFByb2ZpbGluZyk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JQcm9maWxlckFnZW50OjpzdG9wVXNlckluaXRpYXRlZFByb2ZpbGluZyk6
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuaDoKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OnN0b3ApOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvUHJvZmlsZVZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1BVUHJvZmls
ZVR5cGUucHJvdG90eXBlLmJ1dHRvbkNsaWNrZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvUHJvZmlsZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1Bh
bmVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsLnByb3RvdHlwZS5fcmVn
aXN0ZXJQcm9maWxlVHlwZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5w
cm90b3R5cGUuX3RvZ2dsZVByb2ZpbGluZyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9pbnNwZWN0b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuX2NyZWF0ZVBhbmVscyk6CisK
IDIwMTEtMDMtMTEgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsCmluZGV4IGE5ZTkx
YWRjZDkxMTc2Yzg4NDEyOGZjYTExYTI3MzhhYmNlYTAyMDIuLmIwY2E5MDFjODBkYzE5OTQ2ZWUx
OWQ5OTcxNTRhMWU5YzFmZWYxZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3IuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3Iu
aWRsCkBAIC02MSwxNCArNjEsNiBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIHZvaWQgZGVsZXRl
Q29va2llKGluIFN0cmluZyBjb29raWVOYW1lLCBpbiBTdHJpbmcgZG9tYWluKTsKIAogICAgICAg
ICBbZXZlbnRdIHZvaWQgaW5zcGVjdChvdXQgT2JqZWN0IG9iamVjdElkLCBvdXQgT2JqZWN0IGhp
bnRzKTsKLQotICAgICAgICAvLyBGSVhNRTogZGlzcGF0Y2ggb24gYWdlbnRzLgotI2lmIGRlZmlu
ZWQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICYmIEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVH
R0VSCi0gICAgICAgIHZvaWQgZW5hYmxlUHJvZmlsZXIoKTsKLSAgICAgICAgdm9pZCBkaXNhYmxl
UHJvZmlsZXIoKTsKLSAgICAgICAgdm9pZCBzdGFydFByb2ZpbGluZygpOwotICAgICAgICB2b2lk
IHN0b3BQcm9maWxpbmcoKTsKLSNlbmRpZiAvLyBFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUgog
ICAgIH07CiAKICAgICBpbnRlcmZhY2UgW0NvbmRpdGlvbmFsPUlOU1BFQ1RPUl0gUnVudGltZSB7
CkBAIC0yNTksNiArMjUxLDEwIEBAIG1vZHVsZSBjb3JlIHsKIAogI2lmIGRlZmluZWQoRU5BQkxF
X0pBVkFTQ1JJUFRfREVCVUdHRVIpICYmIEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSCiAgICAg
aW50ZXJmYWNlIFtDb25kaXRpb25hbD1JTlNQRUNUT1JdIFByb2ZpbGVyIHsKKyAgICAgICAgdm9p
ZCBlbmFibGUoKTsKKyAgICAgICAgdm9pZCBkaXNhYmxlKCk7CisgICAgICAgIHZvaWQgc3RhcnQo
KTsKKyAgICAgICAgdm9pZCBzdG9wKCk7CiAgICAgICAgIFtldmVudF0gdm9pZCBwcm9maWxlcldh
c0VuYWJsZWQoKTsKICAgICAgICAgW2V2ZW50XSB2b2lkIHByb2ZpbGVyV2FzRGlzYWJsZWQoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5jcHAKaW5kZXggNzNl
ZTQzY2I0YmY1OWEzYmJjN2Q3NmJkOTc2NmJiMzU4YjEzOWUzYS4uMmU5ZjM4NGVjYWI5MjAzNWQ0
Y2Q2YzhhMzJiM2FjNjhkYjQ5OTMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQWdlbnQuY3BwCkBAIC0xMjQsOSArMTI0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
bmFtZXNwYWNlIEluc3BlY3RvckFnZW50U3RhdGUgewogc3RhdGljIGNvbnN0IGNoYXIgc2VhcmNo
aW5nRm9yTm9kZVtdID0gInNlYXJjaGluZ0Zvck5vZGUiOwogc3RhdGljIGNvbnN0IGNoYXIgdGlt
ZWxpbmVQcm9maWxlckVuYWJsZWRbXSA9ICJ0aW1lbGluZVByb2ZpbGVyRW5hYmxlZCI7Ci1zdGF0
aWMgY29uc3QgY2hhciB1c2VySW5pdGlhdGVkUHJvZmlsaW5nW10gPSAidXNlckluaXRpYXRlZFBy
b2ZpbGluZyI7CiBzdGF0aWMgY29uc3QgY2hhciBkZWJ1Z2dlckVuYWJsZWRbXSA9ICJkZWJ1Z2dl
ckVuYWJsZWQiOwotc3RhdGljIGNvbnN0IGNoYXIgcHJvZmlsZXJFbmFibGVkW10gPSAicHJvZmls
ZXJFbmFibGVkIjsKIH0KIAogc3RhdGljIGNvbnN0IGNoYXIgc2NyaXB0c1BhbmVsTmFtZVtdID0g
InNjcmlwdHMiOwpAQCAtMTU3LDcgKzE1NSw3IEBAIEluc3BlY3RvckFnZW50OjpJbnNwZWN0b3JB
Z2VudChQYWdlKiBwYWdlLCBJbnNwZWN0b3JDbGllbnQqIGNsaWVudCwgSW5qZWN0ZWRTY3JpCiAj
aWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCiAgICAgLCBtX2RlYnVnZ2VyQWdlbnQoSW5z
cGVjdG9yRGVidWdnZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwg
bV9zdGF0ZS5nZXQoKSwgcGFnZSwgaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKSkKICAgICAsIG1fYnJv
d3NlckRlYnVnZ2VyQWdlbnQoSW5zcGVjdG9yQnJvd3NlckRlYnVnZ2VyQWdlbnQ6OmNyZWF0ZSht
X2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCksIG1fZG9tQWdlbnQuZ2V0
KCksIG1fZGVidWdnZXJBZ2VudC5nZXQoKSwgdGhpcykpCi0gICAgLCBtX3Byb2ZpbGVyQWdlbnQo
SW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQo
KSwgbV9jb25zb2xlQWdlbnQuZ2V0KCksIHBhZ2UpKQorICAgICwgbV9wcm9maWxlckFnZW50KElu
c3BlY3RvclByb2ZpbGVyQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCks
IG1fY29uc29sZUFnZW50LmdldCgpLCBwYWdlLCBtX3N0YXRlLmdldCgpKSkKICNlbmRpZgogICAg
ICwgbV9jYW5Jc3N1ZUV2YWx1YXRlRm9yVGVzdEluRnJvbnRlbmQoZmFsc2UpCiB7CkBAIC0yMjgs
OSArMjI2LDcgQEAgdm9pZCBJbnNwZWN0b3JBZ2VudDo6cmVzdG9yZUluc3BlY3RvclN0YXRlRnJv
bUNvb2tpZShjb25zdCBTdHJpbmcmIGluc3BlY3RvclN0YXQKIAogI2lmIEVOQUJMRShKQVZBU0NS
SVBUX0RFQlVHR0VSKQogICAgIG1fZGVidWdnZXJBZ2VudC0+cmVzdG9yZSgpOwotICAgIHJlc3Rv
cmVQcm9maWxlcihQcm9maWxlclJlc3RvcmVSZXNldEFnZW50KTsKLSAgICBpZiAobV9zdGF0ZS0+
Z2V0Qm9vbGVhbihJbnNwZWN0b3JBZ2VudFN0YXRlOjp1c2VySW5pdGlhdGVkUHJvZmlsaW5nKSkK
LSAgICAgICAgc3RhcnRVc2VySW5pdGlhdGVkUHJvZmlsaW5nKCk7CisgICAgbV9wcm9maWxlckFn
ZW50LT5yZXN0b3JlKCk7CiAjZW5kaWYKIH0KIApAQCAtMzkwLDYgKzM4Niw3IEBAIHZvaWQgSW5z
cGVjdG9yQWdlbnQ6OnNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKiBpbnNwZWN0b3JGcm9u
dGVuZCkKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKICAgICBtX2RlYnVnZ2VyQWdl
bnQtPnNldEZyb250ZW5kKG1fZnJvbnRlbmQpOwogICAgIG1fYnJvd3NlckRlYnVnZ2VyQWdlbnQt
PnNldEZyb250ZW5kKG1fZnJvbnRlbmQpOworICAgIG1fcHJvZmlsZXJBZ2VudC0+c2V0RnJvbnRl
bmQobV9mcm9udGVuZCk7CiAjZW5kaWYKICNpZiBFTkFCTEUoREFUQUJBU0UpCiAgICAgbV9kYXRh
YmFzZUFnZW50LT5zZXRGcm9udGVuZChtX2Zyb250ZW5kKTsKQEAgLTQxOSwxNSArNDE2LDExIEBA
IHZvaWQgSW5zcGVjdG9yQWdlbnQ6OmRpc2Nvbm5lY3RGcm9udGVuZCgpCiAjaWYgRU5BQkxFKEpB
VkFTQ1JJUFRfREVCVUdHRVIpCiAgICAgbV9kZWJ1Z2dlckFnZW50LT5jbGVhckZyb250ZW5kKCk7
CiAgICAgbV9icm93c2VyRGVidWdnZXJBZ2VudC0+Y2xlYXJGcm9udGVuZCgpOworICAgIG1fcHJv
ZmlsZXJBZ2VudC0+Y2xlYXJGcm9udGVuZCgpOwogI2VuZGlmCiAgICAgc2V0U2VhcmNoaW5nRm9y
Tm9kZShmYWxzZSk7CiAKICAgICBoaWRlSGlnaGxpZ2h0KCZlcnJvcik7Ci0KLSNpZiBFTkFCTEUo
SkFWQVNDUklQVF9ERUJVR0dFUikKLSAgICBtX3Byb2ZpbGVyQWdlbnQtPmNsZWFyRnJvbnRlbmQo
KTsKLSAgICBtX3Byb2ZpbGVyQWdlbnQtPnN0b3BVc2VySW5pdGlhdGVkUHJvZmlsaW5nKHRydWUp
OwotI2VuZGlmCiAjaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAgICBtX2Fw
cGxpY2F0aW9uQ2FjaGVBZ2VudC0+Y2xlYXJGcm9udGVuZCgpOwogI2VuZGlmCkBAIC00ODEsNyAr
NDc0LDYgQEAgdm9pZCBJbnNwZWN0b3JBZ2VudDo6cG9wdWxhdGVTY3JpcHRPYmplY3RzKEVycm9y
U3RyaW5nKikKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKICAgICBtX2RlYnVnZ2Vy
QWdlbnQtPmVuYWJsZURlYnVnZ2VyQWZ0ZXJTaG93bigpOwogI2VuZGlmCi0gICAgcmVzdG9yZVBy
b2ZpbGVyKFByb2ZpbGVyUmVzdG9yZU5vQWN0aW9uKTsKIAogICAgIC8vIERpc3BhdGNoIHBlbmRp
bmcgZnJvbnRlbmQgY29tbWFuZHMKICAgICBpc3N1ZUV2YWx1YXRlRm9yVGVzdENvbW1hbmRzKCk7
CkBAIC01MDAsMjAgKzQ5Miw2IEBAIHZvaWQgSW5zcGVjdG9yQWdlbnQ6OnB1c2hEYXRhQ29sbGVj
dGVkT2ZmbGluZSgpCiAjZW5kaWYKIH0KIAotdm9pZCBJbnNwZWN0b3JBZ2VudDo6cmVzdG9yZVBy
b2ZpbGVyKFByb2ZpbGVyUmVzdG9yZUFjdGlvbiBhY3Rpb24pCi17Ci0gICAgQVNTRVJUKG1fZnJv
bnRlbmQpOwotI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQotICAgIG1fcHJvZmlsZXJB
Z2VudC0+c2V0RnJvbnRlbmQobV9mcm9udGVuZCk7Ci0gICAgaWYgKG1fc3RhdGUtPmdldEJvb2xl
YW4oSW5zcGVjdG9yQWdlbnRTdGF0ZTo6cHJvZmlsZXJFbmFibGVkKSkgewotICAgICAgICBFcnJv
clN0cmluZyBlcnJvcjsKLSAgICAgICAgZW5hYmxlUHJvZmlsZXIoJmVycm9yKTsKLSAgICB9Ci0g
ICAgaWYgKGFjdGlvbiA9PSBQcm9maWxlclJlc3RvcmVSZXNldEFnZW50KQotICAgICAgICBtX3By
b2ZpbGVyQWdlbnQtPnJlc2V0RnJvbnRlbmRQcm9maWxlcygpOwotI2VuZGlmCi19Ci0KIHZvaWQg
SW5zcGVjdG9yQWdlbnQ6OmRpZENvbW1pdExvYWQoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikKIHsK
ICAgICBpZiAobV9mcm9udGVuZCkgewpAQCAtNzI3LDQ3ICs3MDUsMTEgQEAgdm9pZCBJbnNwZWN0
b3JBZ2VudDo6ZGVsZXRlQ29va2llKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBjb29raWVO
YW1lLCBjb25zdAogfQogCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCi1ib29sIElu
c3BlY3RvckFnZW50Ojppc1JlY29yZGluZ1VzZXJJbml0aWF0ZWRQcm9maWxlKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gbV9wcm9maWxlckFnZW50LT5pc1JlY29yZGluZ1VzZXJJbml0aWF0ZWRQcm9m
aWxlKCk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yQWdlbnQ6OnN0YXJ0VXNlckluaXRpYXRlZFByb2Zp
bGluZygpCit2b2lkIEluc3BlY3RvckFnZW50OjpzaG93UHJvZmlsZXNQYW5lbCgpCiB7Ci0gICAg
aWYgKCFlbmFibGVkKCkpCi0gICAgICAgIHJldHVybjsKLSAgICBtX3Byb2ZpbGVyQWdlbnQtPnN0
YXJ0VXNlckluaXRpYXRlZFByb2ZpbGluZygpOwotICAgIG1fc3RhdGUtPnNldEJvb2xlYW4oSW5z
cGVjdG9yQWdlbnRTdGF0ZTo6dXNlckluaXRpYXRlZFByb2ZpbGluZywgdHJ1ZSk7Ci19Ci0KLXZv
aWQgSW5zcGVjdG9yQWdlbnQ6OnN0b3BVc2VySW5pdGlhdGVkUHJvZmlsaW5nKCkKLXsKLSAgICBt
X3Byb2ZpbGVyQWdlbnQtPnN0b3BVc2VySW5pdGlhdGVkUHJvZmlsaW5nKCk7Ci0gICAgbV9zdGF0
ZS0+c2V0Qm9vbGVhbihJbnNwZWN0b3JBZ2VudFN0YXRlOjp1c2VySW5pdGlhdGVkUHJvZmlsaW5n
LCBmYWxzZSk7CiAgICAgc2hvd1BhbmVsKHByb2ZpbGVzUGFuZWxOYW1lKTsKIH0KIAotYm9vbCBJ
bnNwZWN0b3JBZ2VudDo6cHJvZmlsZXJFbmFibGVkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gZW5h
YmxlZCgpICYmIG1fcHJvZmlsZXJBZ2VudC0+ZW5hYmxlZCgpOwotfQotCi12b2lkIEluc3BlY3Rv
ckFnZW50OjplbmFibGVQcm9maWxlcihFcnJvclN0cmluZyopCi17Ci0gICAgaWYgKHByb2ZpbGVy
RW5hYmxlZCgpKQotICAgICAgICByZXR1cm47Ci0gICAgbV9zdGF0ZS0+c2V0Qm9vbGVhbihJbnNw
ZWN0b3JBZ2VudFN0YXRlOjpwcm9maWxlckVuYWJsZWQsIHRydWUpOwotICAgIG1fcHJvZmlsZXJB
Z2VudC0+ZW5hYmxlKGZhbHNlKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JBZ2VudDo6ZGlzYWJsZVBy
b2ZpbGVyKEVycm9yU3RyaW5nKikKLXsKLSAgICBtX3N0YXRlLT5zZXRCb29sZWFuKEluc3BlY3Rv
ckFnZW50U3RhdGU6OnByb2ZpbGVyRW5hYmxlZCwgZmFsc2UpOwotICAgIG1fcHJvZmlsZXJBZ2Vu
dC0+ZGlzYWJsZSgpOwotfQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dF
UikKIHZvaWQgSW5zcGVjdG9yQWdlbnQ6OnNob3dTY3JpcHRzUGFuZWwoKQogewogICAgIHNob3dQ
YW5lbChzY3JpcHRzUGFuZWxOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckFnZW50LmgKaW5kZXggZWEzYjk5OGFkMmU2MjNjYTZlOTE2Y2RlY2MwMzA3N2MyMWE4ODE5OS4u
ZTRhNjc1MmE2YjNmOWM2ODI3OWM1NTNkMTk1ZmQ0NTkwNjEzNmEwYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmgKQEAgLTE4MywxNSArMTgzLDcgQEAgcHVibGlj
OgogICAgIHZvaWQgZHJhd0VsZW1lbnRUaXRsZShHcmFwaGljc0NvbnRleHQmLCBjb25zdCBJbnRS
ZWN0JiBib3VuZGluZ0JveCwgY29uc3QgSW50UmVjdCYgYW5jaG9yQm94LCBjb25zdCBGbG9hdFJl
Y3QmIG92ZXJsYXlSZWN0LCBXZWJDb3JlOjpTZXR0aW5ncyopIGNvbnN0OwogCiAjaWYgRU5BQkxF
KEpBVkFTQ1JJUFRfREVCVUdHRVIpCi0gICAgYm9vbCBpc1JlY29yZGluZ1VzZXJJbml0aWF0ZWRQ
cm9maWxlKCkgY29uc3Q7Ci0gICAgdm9pZCBzdGFydFByb2ZpbGluZyhFcnJvclN0cmluZyopIHsg
c3RhcnRVc2VySW5pdGlhdGVkUHJvZmlsaW5nKCk7IH0KLSAgICB2b2lkIHN0YXJ0VXNlckluaXRp
YXRlZFByb2ZpbGluZygpOwotICAgIHZvaWQgc3RvcFByb2ZpbGluZyhFcnJvclN0cmluZyopIHsg
c3RvcFVzZXJJbml0aWF0ZWRQcm9maWxpbmcoKTsgfQotICAgIHZvaWQgc3RvcFVzZXJJbml0aWF0
ZWRQcm9maWxpbmcoKTsKLSAgICB2b2lkIGVuYWJsZVByb2ZpbGVyKEVycm9yU3RyaW5nKiBlcnJv
cik7Ci0gICAgdm9pZCBkaXNhYmxlUHJvZmlsZXIoRXJyb3JTdHJpbmcqIGVycm9yKTsKLSAgICBi
b29sIHByb2ZpbGVyRW5hYmxlZCgpIGNvbnN0OwotCisgICAgdm9pZCBzaG93UHJvZmlsZXNQYW5l
bCgpOwogICAgIHZvaWQgc2hvd1NjcmlwdHNQYW5lbCgpOwogI2VuZGlmCiAKQEAgLTIxOCwxMSAr
MjEwLDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2b2lkIHNob3dQYW5lbChjb25zdCBTdHJp
bmcmIHBhbmVsKTsKICAgICB2b2lkIHB1c2hEYXRhQ29sbGVjdGVkT2ZmbGluZSgpOwotICAgIGVu
dW0gUHJvZmlsZXJSZXN0b3JlQWN0aW9uIHsKLSAgICAgICAgUHJvZmlsZXJSZXN0b3JlTm9BY3Rp
b24gPSAwLAotICAgICAgICBQcm9maWxlclJlc3RvcmVSZXNldEFnZW50ID0gMQotICAgIH07Ci0g
ICAgdm9pZCByZXN0b3JlUHJvZmlsZXIoUHJvZmlsZXJSZXN0b3JlQWN0aW9uKTsKICAgICB2b2lk
IHVuYmluZEFsbFJlc291cmNlcygpOwogICAgIHZvaWQgc2V0U2VhcmNoaW5nRm9yTm9kZShib29s
IGVuYWJsZWQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29u
dHJvbGxlci5jcHAKaW5kZXggMWJmZmQ0ZjJmMTFhN2M4OWU5MTliMTEzYWVlM2Q5N2Q3ZTcyNTBj
Mi4uNjgwZDI1NzYzZGMwNjhmNDQxNDFlOWUzNWExMWU2ZjBmZGFjYWY3YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtNDUsNiAr
NDUsNyBAQAogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCiAjaW5jbHVkZSAiSW5zcGVj
dG9yRnJvbnRlbmRDbGllbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
aCIKKyNpbmNsdWRlICJJbnNwZWN0b3JQcm9maWxlckFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVj
dG9yVGltZWxpbmVBZ2VudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJTY3JpcHRP
YmplY3QuaCIKQEAgLTI1MCwxOCArMjUxLDE4IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6
aGlkZUhpZ2hsaWdodCgpCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmVuYWJsZVByb2ZpbGVy
KCkKIHsKICAgICBFcnJvclN0cmluZyBlcnJvcjsKLSAgICBtX2luc3BlY3RvckFnZW50LT5lbmFi
bGVQcm9maWxlcigmZXJyb3IpOworICAgIG1faW5zcGVjdG9yQWdlbnQtPnByb2ZpbGVyQWdlbnQo
KS0+ZW5hYmxlKCZlcnJvcik7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzYWJs
ZVByb2ZpbGVyKCkKIHsKICAgICBFcnJvclN0cmluZyBlcnJvcjsKLSAgICBtX2luc3BlY3RvckFn
ZW50LT5kaXNhYmxlUHJvZmlsZXIoJmVycm9yKTsKKyAgICBtX2luc3BlY3RvckFnZW50LT5wcm9m
aWxlckFnZW50KCktPmRpc2FibGUoJmVycm9yKTsKIH0KIAogYm9vbCBJbnNwZWN0b3JDb250cm9s
bGVyOjpwcm9maWxlckVuYWJsZWQoKQogewotICAgIHJldHVybiBtX2luc3BlY3RvckFnZW50LT5w
cm9maWxlckVuYWJsZWQoKTsKKyAgICByZXR1cm4gbV9pbnNwZWN0b3JBZ2VudC0+cHJvZmlsZXJB
Z2VudCgpLT5lbmFibGVkKCk7CiB9CiAKIGJvb2wgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGVidWdn
ZXJFbmFibGVkKCkKQEAgLTI4NSw3ICsyODYsNyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6
OmRpc2FibGVEZWJ1Z2dlcigpCiAKIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c3RhcnRVc2Vy
SW5pdGlhdGVkUHJvZmlsaW5nKCkKIHsKLSAgICBtX2luc3BlY3RvckFnZW50LT5zdGFydFVzZXJJ
bml0aWF0ZWRQcm9maWxpbmcoKTsKKyAgICBtX2luc3BlY3RvckFnZW50LT5wcm9maWxlckFnZW50
KCktPnN0YXJ0VXNlckluaXRpYXRlZFByb2ZpbGluZygpOwogfQogCiB2b2lkIEluc3BlY3RvckNv
bnRyb2xsZXI6OnN0b3BVc2VySW5pdGlhdGVkUHJvZmlsaW5nKCkKQEAgLTI5MywxMiArMjk0LDEz
IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6c3RvcFVzZXJJbml0aWF0ZWRQcm9maWxpbmco
KQogICAgIGlmICghZW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAgICAgc2hvdygpOwotICAg
IG1faW5zcGVjdG9yQWdlbnQtPnN0b3BVc2VySW5pdGlhdGVkUHJvZmlsaW5nKCk7CisgICAgbV9p
bnNwZWN0b3JBZ2VudC0+cHJvZmlsZXJBZ2VudCgpLT5zdG9wVXNlckluaXRpYXRlZFByb2ZpbGlu
ZygpOworICAgIG1faW5zcGVjdG9yQWdlbnQtPnNob3dQcm9maWxlc1BhbmVsKCk7CiB9CiAKIGJv
b2wgSW5zcGVjdG9yQ29udHJvbGxlcjo6aXNSZWNvcmRpbmdVc2VySW5pdGlhdGVkUHJvZmlsZSgp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1faW5zcGVjdG9yQWdlbnQtPmlzUmVjb3JkaW5nVXNlcklu
aXRpYXRlZFByb2ZpbGUoKTsKKyAgICByZXR1cm4gbV9pbnNwZWN0b3JBZ2VudC0+cHJvZmlsZXJB
Z2VudCgpLT5pc1JlY29yZGluZ1VzZXJJbml0aWF0ZWRQcm9maWxlKCk7CiB9CiAKIHZvaWQgSW5z
cGVjdG9yQ29udHJvbGxlcjo6cmVzdW1lKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggM2YzNTAwODdkYWE3ZTFl
NDkwNGZjOGU2YjBkMmYzZjQ1MTZjM2IwNy4uNGEyZjIwMzg0ZTkxM2M3YzE0OTE0OTllNWJhYjhh
YmQ4NDcxNzBiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTYzMCw3ICs2MzAsNyBAQCBTdHJpbmcgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpnZXRDdXJyZW50VXNlckluaXRpYXRlZFByb2ZpbGVOYW1lSW1w
bChJbnNwZWN0bwogCiBib29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6cHJvZmlsZXJFbmFi
bGVkSW1wbChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQpCiB7Ci0gICAgcmV0dXJuIGlu
c3BlY3RvckFnZW50LT5wcm9maWxlckVuYWJsZWQoKTsKKyAgICByZXR1cm4gaW5zcGVjdG9yQWdl
bnQtPmluc3RydW1lbnRpbmdBZ2VudHMoKS0+aW5zcGVjdG9yUHJvZmlsZXJBZ2VudCgpLT5lbmFi
bGVkKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwCmluZGV4IGQzMDRjMmMzZDA0M2UxNWE5ZTJiY2Q2ZTg3
Njg2ZWU5ZTVkNmM0NjYuLjE4NjdkZjE2YWM0NTMxMWQ3YzdiOTUwYzNiMjEyMDdkMGY4OWMyZGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFn
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJB
Z2VudC5jcHAKQEAgLTMzLDkgKzMzLDkgQEAKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dF
UikgJiYgRU5BQkxFKElOU1BFQ1RPUikKIAogI2luY2x1ZGUgIkNvbnNvbGUuaCIKLSNpbmNsdWRl
ICJJbnNwZWN0b3JBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckNvbnNvbGVBZ2VudC5oIgog
I2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yU3RhdGUu
aCIKICNpbmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5n
QWdlbnRzLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgpAQCAtNTQsMTkgKzU0LDI1IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorbmFtZXNwYWNlIFByb2ZpbGVyQWdlbnRTdGF0ZSB7CitzdGF0aWMg
Y29uc3QgY2hhciB1c2VySW5pdGlhdGVkUHJvZmlsaW5nW10gPSAidXNlckluaXRpYXRlZFByb2Zp
bGluZyI7CitzdGF0aWMgY29uc3QgY2hhciBwcm9maWxlckVuYWJsZWRbXSA9ICJwcm9maWxlckVu
YWJsZWQiOworfQorCiBzdGF0aWMgY29uc3QgY2hhciogY29uc3QgVXNlckluaXRpYXRlZFByb2Zp
bGVOYW1lID0gIm9yZy53ZWJraXQucHJvZmlsZXMudXNlci1pbml0aWF0ZWQiOwogc3RhdGljIGNv
bnN0IGNoYXIqIGNvbnN0IENQVVByb2ZpbGVUeXBlID0gIkNQVSI7CiBzdGF0aWMgY29uc3QgY2hh
ciogY29uc3QgSGVhcFByb2ZpbGVUeXBlID0gIkhFQVAiOwogCi1QYXNzT3duUHRyPEluc3BlY3Rv
clByb2ZpbGVyQWdlbnQ+IEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OmNyZWF0ZShJbnN0cnVtZW50
aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbnNwZWN0b3JDb25zb2xlQWdlbnQqIGNv
bnNvbGVBZ2VudCwgUGFnZSogaW5zcGVjdGVkUGFnZSkKK1Bhc3NPd25QdHI8SW5zcGVjdG9yUHJv
ZmlsZXJBZ2VudD4gSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6Y3JlYXRlKEluc3RydW1lbnRpbmdB
Z2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsIEluc3BlY3RvckNvbnNvbGVBZ2VudCogY29uc29s
ZUFnZW50LCBQYWdlKiBpbnNwZWN0ZWRQYWdlLCBJbnNwZWN0b3JTdGF0ZSogaW5zcGVjdG9yU3Rh
dGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JQcm9maWxlckFnZW50KGlu
c3RydW1lbnRpbmdBZ2VudHMsIGNvbnNvbGVBZ2VudCwgaW5zcGVjdGVkUGFnZSkpOworICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudChpbnN0cnVtZW50aW5nQWdl
bnRzLCBjb25zb2xlQWdlbnQsIGluc3BlY3RlZFBhZ2UsIGluc3BlY3RvclN0YXRlKSk7CiB9CiAK
LUluc3BlY3RvclByb2ZpbGVyQWdlbnQ6Okluc3BlY3RvclByb2ZpbGVyQWdlbnQoSW5zdHJ1bWVu
dGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yQ29uc29sZUFnZW50KiBj
b25zb2xlQWdlbnQsIFBhZ2UqIGluc3BlY3RlZFBhZ2UpCitJbnNwZWN0b3JQcm9maWxlckFnZW50
OjpJbnNwZWN0b3JQcm9maWxlckFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRp
bmdBZ2VudHMsIEluc3BlY3RvckNvbnNvbGVBZ2VudCogY29uc29sZUFnZW50LCBQYWdlKiBpbnNw
ZWN0ZWRQYWdlLCBJbnNwZWN0b3JTdGF0ZSogaW5zcGVjdG9yU3RhdGUpCiAgICAgOiBtX2luc3Ry
dW1lbnRpbmdBZ2VudHMoaW5zdHJ1bWVudGluZ0FnZW50cykKICAgICAsIG1fY29uc29sZUFnZW50
KGNvbnNvbGVBZ2VudCkKICAgICAsIG1faW5zcGVjdGVkUGFnZShpbnNwZWN0ZWRQYWdlKQorICAg
ICwgbV9pbnNwZWN0b3JTdGF0ZShpbnNwZWN0b3JTdGF0ZSkKICAgICAsIG1fZnJvbnRlbmQoMCkK
ICAgICAsIG1fZW5hYmxlZChmYWxzZSkKICAgICAsIG1fcmVjb3JkaW5nVXNlckluaXRpYXRlZFBy
b2ZpbGUoZmFsc2UpCkBAIC0xMzIsNiArMTM4LDIwIEBAIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2Jq
ZWN0PiBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpjcmVhdGVTbmFwc2hvdEhlYWRlcihjb25zdCBT
CiAgICAgcmV0dXJuIGhlYWRlcjsKIH0KIAordm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50Ojpl
bmFibGUoRXJyb3JTdHJpbmcqKQoreworICAgIGlmIChlbmFibGVkKCkpCisgICAgICAgIHJldHVy
bjsKKyAgICBtX2luc3BlY3RvclN0YXRlLT5zZXRCb29sZWFuKFByb2ZpbGVyQWdlbnRTdGF0ZTo6
cHJvZmlsZXJFbmFibGVkLCB0cnVlKTsKKyAgICBlbmFibGUoZmFsc2UpOworfQorCit2b2lkIElu
c3BlY3RvclByb2ZpbGVyQWdlbnQ6OmRpc2FibGUoRXJyb3JTdHJpbmcqKQoreworICAgIG1faW5z
cGVjdG9yU3RhdGUtPnNldEJvb2xlYW4oUHJvZmlsZXJBZ2VudFN0YXRlOjpwcm9maWxlckVuYWJs
ZWQsIGZhbHNlKTsKKyAgICBkaXNhYmxlKCk7Cit9CisKIHZvaWQgSW5zcGVjdG9yUHJvZmlsZXJB
Z2VudDo6ZGlzYWJsZSgpCiB7CiAgICAgaWYgKCFtX2VuYWJsZWQpCkBAIC0yNDYsNiArMjY2LDM3
IEBAIHZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6cmVzZXRGcm9udGVuZFByb2ZpbGVzKCkK
ICAgICAgICAgbV9mcm9udGVuZC0+cmVzZXRQcm9maWxlcygpOwogfQogCit2b2lkIEluc3BlY3Rv
clByb2ZpbGVyQWdlbnQ6OnNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCkK
K3sKKyAgICBtX2Zyb250ZW5kID0gZnJvbnRlbmQtPnByb2ZpbGVyKCk7CisgICAgcmVzdG9yZUVu
YWJsZW1lbnQoKTsKK30KKwordm9pZCBJbnNwZWN0b3JQcm9maWxlckFnZW50OjpjbGVhckZyb250
ZW5kKCkKK3sKKyAgICBtX2Zyb250ZW5kID0gMDsKKyAgICBzdG9wVXNlckluaXRpYXRlZFByb2Zp
bGluZygpOworfQorCit2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OnJlc3RvcmUoKQorewor
ICAgIC8vIE5lZWQgdG8gcmVzdG9yZSBlbmFibGVtZW50IHN0YXRlIGhlcmUgYXMgaW4gc2V0RnJv
bnRlbmQgbV9pbnNwZWN0b3JTdGF0ZSB3YXNuJ3QgbG9hZGVkIHlldC4KKyAgICByZXN0b3JlRW5h
YmxlbWVudCgpOworCisgICAgLy8gUmV2aXNpdCB0aGlzLgorICAgIHJlc2V0RnJvbnRlbmRQcm9m
aWxlcygpOworICAgIGlmIChtX2luc3BlY3RvclN0YXRlLT5nZXRCb29sZWFuKFByb2ZpbGVyQWdl
bnRTdGF0ZTo6dXNlckluaXRpYXRlZFByb2ZpbGluZykpCisgICAgICAgIHN0YXJ0VXNlckluaXRp
YXRlZFByb2ZpbGluZygpOworfQorCit2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OnJlc3Rv
cmVFbmFibGVtZW50KCkKK3sKKyAgICBpZiAobV9pbnNwZWN0b3JTdGF0ZS0+Z2V0Qm9vbGVhbihQ
cm9maWxlckFnZW50U3RhdGU6OnByb2ZpbGVyRW5hYmxlZCkpIHsKKyAgICAgICAgRXJyb3JTdHJp
bmcgZXJyb3I7CisgICAgICAgIGVuYWJsZSgmZXJyb3IpOworICAgIH0KK30KKwogdm9pZCBJbnNw
ZWN0b3JQcm9maWxlckFnZW50OjpzdGFydFVzZXJJbml0aWF0ZWRQcm9maWxpbmcoKQogewogICAg
IGlmIChtX3JlY29yZGluZ1VzZXJJbml0aWF0ZWRQcm9maWxlKQpAQCAtMjY0LDYgKzMxNSw3IEBA
IHZvaWQgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudDo6c3RhcnRVc2VySW5pdGlhdGVkUHJvZmlsaW5n
KCkKICAgICBTY3JpcHRQcm9maWxlcjo6c3RhcnQoc2NyaXB0U3RhdGUsIHRpdGxlKTsKICAgICBh
ZGRTdGFydFByb2ZpbGluZ01lc3NhZ2VUb0NvbnNvbGUodGl0bGUsIDAsIFN0cmluZygpKTsKICAg
ICB0b2dnbGVSZWNvcmRCdXR0b24odHJ1ZSk7CisgICAgbV9pbnNwZWN0b3JTdGF0ZS0+c2V0Qm9v
bGVhbihQcm9maWxlckFnZW50U3RhdGU6OnVzZXJJbml0aWF0ZWRQcm9maWxpbmcsIHRydWUpOwog
fQogCiB2b2lkIEluc3BlY3RvclByb2ZpbGVyQWdlbnQ6OnN0b3BVc2VySW5pdGlhdGVkUHJvZmls
aW5nKGJvb2wgaWdub3JlUHJvZmlsZSkKQEAgLTI4Nyw2ICszMzksNyBAQCB2b2lkIEluc3BlY3Rv
clByb2ZpbGVyQWdlbnQ6OnN0b3BVc2VySW5pdGlhdGVkUHJvZmlsaW5nKGJvb2wgaWdub3JlUHJv
ZmlsZSkKICAgICAgICAgICAgIGFkZFByb2ZpbGVGaW5pc2hlZE1lc3NhZ2VUb0NvbnNvbGUocHJv
ZmlsZSwgMCwgU3RyaW5nKCkpOwogICAgIH0KICAgICB0b2dnbGVSZWNvcmRCdXR0b24oZmFsc2Up
OworICAgIG1faW5zcGVjdG9yU3RhdGUtPnNldEJvb2xlYW4oUHJvZmlsZXJBZ2VudFN0YXRlOjp1
c2VySW5pdGlhdGVkUHJvZmlsaW5nLCBmYWxzZSk7CiB9CiAKIG5hbWVzcGFjZSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuaAppbmRleCA3
NmVjYzc5NmNjODhiN2U0YzQ1YjM0YTdhMzk2ZTUzMTcyYzQ3MDIzLi40Y2Q1NDU4MmRkN2RkMjdm
OGQxZDAzNTZiZDU4ZjJiYzZhMTY1ODQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmgKQEAgLTQ1LDYgKzQ1LDcgQEAgY2xhc3MgSW5z
cGVjdG9yQXJyYXk7CiBjbGFzcyBJbnNwZWN0b3JDb25zb2xlQWdlbnQ7CiBjbGFzcyBJbnNwZWN0
b3JGcm9udGVuZDsKIGNsYXNzIEluc3BlY3Rvck9iamVjdDsKK2NsYXNzIEluc3BlY3RvclN0YXRl
OwogY2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50czsKIGNsYXNzIFBhZ2U7CiBjbGFzcyBTY3JpcHRI
ZWFwU25hcHNob3Q7CkBAIC01NSw3ICs1Niw3IEBAIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5n
OwogY2xhc3MgSW5zcGVjdG9yUHJvZmlsZXJBZ2VudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoSW5zcGVjdG9yUHJvZmlsZXJBZ2VudCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvclByb2ZpbGVyQWdlbnQ+IGNyZWF0
ZShJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ29uc29sZUFnZW50KiwgUGFnZSopOwor
ICAgIHN0YXRpYyBQYXNzT3duUHRyPEluc3BlY3RvclByb2ZpbGVyQWdlbnQ+IGNyZWF0ZShJbnN0
cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ29uc29sZUFnZW50KiwgUGFnZSosIEluc3BlY3Rv
clN0YXRlKik7CiAgICAgdmlydHVhbCB+SW5zcGVjdG9yUHJvZmlsZXJBZ2VudCgpOwogCiAgICAg
dm9pZCBhZGRQcm9maWxlKFBhc3NSZWZQdHI8U2NyaXB0UHJvZmlsZT4gcHJwUHJvZmlsZSwgdW5z
aWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpOwpAQCAtNjMsNiArNjQs
MTMgQEAgcHVibGljOgogICAgIHZvaWQgYWRkU3RhcnRQcm9maWxpbmdNZXNzYWdlVG9Db25zb2xl
KGNvbnN0IFN0cmluZyYgdGl0bGUsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYg
c291cmNlVVJMKTsKICAgICB2b2lkIGNvbGxlY3RHYXJiYWdlKEVycm9yU3RyaW5nKik7CiAgICAg
dm9pZCBjbGVhclByb2ZpbGVzKEVycm9yU3RyaW5nKikgeyByZXNldFN0YXRlKCk7IH0KKyAgICB2
b2lkIHJlc2V0U3RhdGUoKTsKKworICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nKik7CisgICAg
dm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nKik7CisgICAgdm9pZCBzdGFydChFcnJvclN0cmluZyop
IHsgc3RhcnRVc2VySW5pdGlhdGVkUHJvZmlsaW5nKCk7IH0KKyAgICB2b2lkIHN0b3AoRXJyb3JT
dHJpbmcqKSB7IHN0b3BVc2VySW5pdGlhdGVkUHJvZmlsaW5nKCk7IH0KKwogICAgIHZvaWQgZGlz
YWJsZSgpOwogICAgIHZvaWQgZW5hYmxlKGJvb2wgc2tpcFJlY29tcGlsZSk7CiAgICAgYm9vbCBl
bmFibGVkKCkgeyByZXR1cm4gbV9lbmFibGVkOyB9CkBAIC03MiwxMCArODAsMTEgQEAgcHVibGlj
OgogICAgIHZvaWQgZ2V0UHJvZmlsZShFcnJvclN0cmluZyogZXJyb3IsIGNvbnN0IFN0cmluZyYg
dHlwZSwgdW5zaWduZWQgdWlkLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcHJvZmlsZU9iamVj
dCk7CiAgICAgYm9vbCBpc1JlY29yZGluZ1VzZXJJbml0aWF0ZWRQcm9maWxlKCkgeyByZXR1cm4g
bV9yZWNvcmRpbmdVc2VySW5pdGlhdGVkUHJvZmlsZTsgfQogICAgIHZvaWQgcmVtb3ZlUHJvZmls
ZShFcnJvclN0cmluZyogZXJyb3IsIGNvbnN0IFN0cmluZyYgdHlwZSwgdW5zaWduZWQgdWlkKTsK
LSAgICB2b2lkIHJlc2V0U3RhdGUoKTsKLSAgICB2b2lkIHJlc2V0RnJvbnRlbmRQcm9maWxlcygp
OwotICAgIHZvaWQgc2V0RnJvbnRlbmQoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKSB7IG1f
ZnJvbnRlbmQgPSBmcm9udGVuZC0+cHJvZmlsZXIoKTsgfQotICAgIHZvaWQgY2xlYXJGcm9udGVu
ZCgpIHsgbV9mcm9udGVuZCA9IDA7IH0KKworICAgIHZvaWQgc2V0RnJvbnRlbmQoSW5zcGVjdG9y
RnJvbnRlbmQqKTsKKyAgICB2b2lkIGNsZWFyRnJvbnRlbmQoKTsKKyAgICB2b2lkIHJlc3RvcmUo
KTsKKwogICAgIHZvaWQgc3RhcnRVc2VySW5pdGlhdGVkUHJvZmlsaW5nKCk7CiAgICAgdm9pZCBz
dG9wVXNlckluaXRpYXRlZFByb2ZpbGluZyhib29sIGlnbm9yZVByb2ZpbGUgPSBmYWxzZSk7CiAg
ICAgdm9pZCB0YWtlSGVhcFNuYXBzaG90KEVycm9yU3RyaW5nKiBlcnJvciwgYm9vbCBkZXRhaWxl
ZCk7CkBAIC04NSwxMyArOTQsMTcgQEAgcHJpdmF0ZToKICAgICB0eXBlZGVmIEhhc2hNYXA8dW5z
aWduZWQgaW50LCBSZWZQdHI8U2NyaXB0UHJvZmlsZT4gPiBQcm9maWxlc01hcDsKICAgICB0eXBl
ZGVmIEhhc2hNYXA8dW5zaWduZWQgaW50LCBSZWZQdHI8U2NyaXB0SGVhcFNuYXBzaG90PiA+IEhl
YXBTbmFwc2hvdHNNYXA7CiAKLSAgICBJbnNwZWN0b3JQcm9maWxlckFnZW50KEluc3RydW1lbnRp
bmdBZ2VudHMqLCBJbnNwZWN0b3JDb25zb2xlQWdlbnQqLCBQYWdlKik7CisgICAgdm9pZCByZXNl
dEZyb250ZW5kUHJvZmlsZXMoKTsKKyAgICB2b2lkIHJlc3RvcmVFbmFibGVtZW50KCk7CisKKyAg
ICBJbnNwZWN0b3JQcm9maWxlckFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JD
b25zb2xlQWdlbnQqLCBQYWdlKiwgSW5zcGVjdG9yU3RhdGUqKTsKICAgICBQYXNzUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gY3JlYXRlUHJvZmlsZUhlYWRlcihjb25zdCBTY3JpcHRQcm9maWxlJiBw
cm9maWxlKTsKICAgICBQYXNzUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gY3JlYXRlU25hcHNob3RI
ZWFkZXIoY29uc3QgU2NyaXB0SGVhcFNuYXBzaG90JiBzbmFwc2hvdCk7CiAKICAgICBJbnN0cnVt
ZW50aW5nQWdlbnRzKiBtX2luc3RydW1lbnRpbmdBZ2VudHM7CiAgICAgSW5zcGVjdG9yQ29uc29s
ZUFnZW50KiBtX2NvbnNvbGVBZ2VudDsKICAgICBQYWdlKiBtX2luc3BlY3RlZFBhZ2U7CisgICAg
SW5zcGVjdG9yU3RhdGUqIG1faW5zcGVjdG9yU3RhdGU7CiAgICAgSW5zcGVjdG9yRnJvbnRlbmQ6
OlByb2ZpbGVyKiBtX2Zyb250ZW5kOwogICAgIGJvb2wgbV9lbmFibGVkOwogICAgIGJvb2wgbV9y
ZWNvcmRpbmdVc2VySW5pdGlhdGVkUHJvZmlsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVWaWV3LmpzCmluZGV4IDlmNGQ4MjI5ZmUyNTNmYTUwOTcy
MzQ1YzNjYTk3NTYyNjVjZWE4YzguLmE4YzVmZjQ2OTA0Zjk3YjFiOGU1OTM5ZWMyYjI1OWJjNGVk
NjY0MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJv
ZmlsZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9m
aWxlVmlldy5qcwpAQCAtNTk1LDkgKzU5NSw5IEBAIFdlYkluc3BlY3Rvci5DUFVQcm9maWxlVHlw
ZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3JlY29yZGluZyA9ICF0aGlzLl9yZWNvcmRp
bmc7CiAKICAgICAgICAgaWYgKHRoaXMuX3JlY29yZGluZykKLSAgICAgICAgICAgIEluc3BlY3Rv
ckFnZW50LnN0YXJ0UHJvZmlsaW5nKCk7CisgICAgICAgICAgICBQcm9maWxlckFnZW50LnN0YXJ0
KCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIEluc3BlY3RvckFnZW50LnN0b3BQcm9maWxp
bmcoKTsKKyAgICAgICAgICAgIFByb2ZpbGVyQWdlbnQuc3RvcCgpOwogICAgIH0sCiAKICAgICBn
ZXQgd2VsY29tZU1lc3NhZ2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Qcm9maWxlc1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Qcm9maWxlc1BhbmVsLmpzCmluZGV4IGNiOGUxMzhiNzYyZWFmOTRkZGEyZmNhYmUw
OTY3OWJmNTA2ODVjNmYuLmI4OWJiOWFhYmMyMWQxYzNmZGY5OWQ4ZTgwYjViZWQzYzM1ZThiMzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZXNQ
YW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVz
UGFuZWwuanMKQEAgLTEyNCw2ICsxMjQsMTUgQEAgV2ViSW5zcGVjdG9yLlByb2ZpbGVzUGFuZWwg
PSBmdW5jdGlvbigpCiAgICAgdGhpcy5fcHJvZmlsZXMgPSBbXTsKICAgICB0aGlzLl9wcm9maWxl
ckVuYWJsZWQgPSBQcmVmZXJlbmNlcy5wcm9maWxlckFsd2F5c0VuYWJsZWQ7CiAgICAgdGhpcy5f
cmVzZXQoKTsKKworICAgIHRoaXMuX3JlZ2lzdGVyUHJvZmlsZVR5cGUobmV3IFdlYkluc3BlY3Rv
ci5DUFVQcm9maWxlVHlwZSgpKTsKKyAgICBpZiAoUHJlZmVyZW5jZXMuaGVhcFByb2ZpbGVyUHJl
c2VudCkgeworICAgICAgICBpZiAoIVByZWZlcmVuY2VzLmRldGFpbGVkSGVhcFByb2ZpbGVzKQor
ICAgICAgICAgICAgdGhpcy5fcmVnaXN0ZXJQcm9maWxlVHlwZShuZXcgV2ViSW5zcGVjdG9yLkhl
YXBTbmFwc2hvdFByb2ZpbGVUeXBlKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aGlz
Ll9yZWdpc3RlclByb2ZpbGVUeXBlKG5ldyBXZWJJbnNwZWN0b3IuRGV0YWlsZWRIZWFwc2hvdFBy
b2ZpbGVUeXBlKCkpOworICAgIH0KKwogICAgIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJEb21h
aW5EaXNwYXRjaGVyKCJQcm9maWxlciIsIG5ldyBXZWJJbnNwZWN0b3IuUHJvZmlsZXJEaXNwYXRj
aGVyKHRoaXMpKTsKIH0KIApAQCAtMjMwLDcgKzIzOSw3IEBAIFdlYkluc3BlY3Rvci5Qcm9maWxl
c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fcmVzZXQoKTsKICAgICB9LAogCi0g
ICAgcmVnaXN0ZXJQcm9maWxlVHlwZTogZnVuY3Rpb24ocHJvZmlsZVR5cGUpCisgICAgX3JlZ2lz
dGVyUHJvZmlsZVR5cGU6IGZ1bmN0aW9uKHByb2ZpbGVUeXBlKQogICAgIHsKICAgICAgICAgdGhp
cy5fcHJvZmlsZVR5cGVzQnlJZE1hcFtwcm9maWxlVHlwZS5pZF0gPSBwcm9maWxlVHlwZTsKICAg
ICAgICAgcHJvZmlsZVR5cGUudHJlZUVsZW1lbnQgPSBuZXcgV2ViSW5zcGVjdG9yLlNpZGViYXJT
ZWN0aW9uVHJlZUVsZW1lbnQocHJvZmlsZVR5cGUubmFtZSwgbnVsbCwgdHJ1ZSk7CkBAIC02MTQs
MTAgKzYyMywxMCBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAg
ICAgewogICAgICAgICBpZiAodGhpcy5fcHJvZmlsZXJFbmFibGVkKSB7CiAgICAgICAgICAgICBX
ZWJJbnNwZWN0b3Iuc2V0dGluZ3MucHJvZmlsZXJFbmFibGVkID0gZmFsc2U7Ci0gICAgICAgICAg
ICBJbnNwZWN0b3JBZ2VudC5kaXNhYmxlUHJvZmlsZXIodHJ1ZSk7CisgICAgICAgICAgICBQcm9m
aWxlckFnZW50LmRpc2FibGUoKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIFdlYklu
c3BlY3Rvci5zZXR0aW5ncy5wcm9maWxlckVuYWJsZWQgPSAhIW9wdGlvbmFsQWx3YXlzOwotICAg
ICAgICAgICAgSW5zcGVjdG9yQWdlbnQuZW5hYmxlUHJvZmlsZXIoKTsKKyAgICAgICAgICAgIFBy
b2ZpbGVyQWdlbnQuZW5hYmxlKCk7CiAgICAgICAgIH0KICAgICB9LAogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCmluZGV4IGVhOWRmNWVlZGM3
ZGQyODQ1YjE2Y2Q3M2YyNjBlN2U3N2FlMDM5YWYuLjBhNDUzMjVhOWZhOGY2MWUyOGZmZDNlY2Vl
NTg1NzZkYTcwOTRmYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvaW5zcGVjdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvaW5zcGVjdG9yLmpzCkBAIC0yMTUsMTYgKzIxNSw4IEBAIHZhciBXZWJJbnNwZWN0b3IgPSB7
CiAgICAgICAgICAgICB0aGlzLnBhbmVscy5zY3JpcHRzID0gbmV3IFdlYkluc3BlY3Rvci5TY3Jp
cHRzUGFuZWwoKTsKICAgICAgICAgaWYgKGhpZGRlblBhbmVscy5pbmRleE9mKCJ0aW1lbGluZSIp
ID09PSAtMSkKICAgICAgICAgICAgIHRoaXMucGFuZWxzLnRpbWVsaW5lID0gbmV3IFdlYkluc3Bl
Y3Rvci5UaW1lbGluZVBhbmVsKCk7Ci0gICAgICAgIGlmIChoaWRkZW5QYW5lbHMuaW5kZXhPZigi
cHJvZmlsZXMiKSA9PT0gLTEpIHsKKyAgICAgICAgaWYgKGhpZGRlblBhbmVscy5pbmRleE9mKCJw
cm9maWxlcyIpID09PSAtMSkKICAgICAgICAgICAgIHRoaXMucGFuZWxzLnByb2ZpbGVzID0gbmV3
IFdlYkluc3BlY3Rvci5Qcm9maWxlc1BhbmVsKCk7Ci0gICAgICAgICAgICB0aGlzLnBhbmVscy5w
cm9maWxlcy5yZWdpc3RlclByb2ZpbGVUeXBlKG5ldyBXZWJJbnNwZWN0b3IuQ1BVUHJvZmlsZVR5
cGUoKSk7Ci0gICAgICAgICAgICBpZiAoUHJlZmVyZW5jZXMuaGVhcFByb2ZpbGVyUHJlc2VudCkg
ewotICAgICAgICAgICAgICAgIGlmICghUHJlZmVyZW5jZXMuZGV0YWlsZWRIZWFwUHJvZmlsZXMp
Ci0gICAgICAgICAgICAgICAgICAgIHRoaXMucGFuZWxzLnByb2ZpbGVzLnJlZ2lzdGVyUHJvZmls
ZVR5cGUobmV3IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RQcm9maWxlVHlwZSgpKTsKLSAgICAg
ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHRoaXMucGFuZWxzLnByb2ZpbGVz
LnJlZ2lzdGVyUHJvZmlsZVR5cGUobmV3IFdlYkluc3BlY3Rvci5EZXRhaWxlZEhlYXBzaG90UHJv
ZmlsZVR5cGUoKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KICAgICAgICAgaWYgKGhpZGRl
blBhbmVscy5pbmRleE9mKCJhdWRpdHMiKSA9PT0gLTEpCiAgICAgICAgICAgICB0aGlzLnBhbmVs
cy5hdWRpdHMgPSBuZXcgV2ViSW5zcGVjdG9yLkF1ZGl0c1BhbmVsKCk7CiAgICAgICAgIGlmICho
aWRkZW5QYW5lbHMuaW5kZXhPZigiY29uc29sZSIpID09PSAtMSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcAppbmRleCA2MzI5ZDc2
ZDA2MzE3NjI2ZmFiYTk3NzU5Yjg0NzUxZmI4OTgyY2NlLi42MmE5ZDk1M2ViZmJmNGJjZGVlZThi
YmU3YTM3MGJmZWJhZGVhYjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCkBAIC0zOTksOCArMzk5LDggQEAgYm9vbCBXZWJE
ZXZUb29sc0FnZW50OjpzaG91bGRJbnRlcnJ1cHRGb3JNZXNzYWdlKGNvbnN0IFdlYlN0cmluZyYg
bWVzc2FnZSkKICAgICAgICAgfHwgY29tbWFuZE5hbWUgPT0gSW5zcGVjdG9yQmFja2VuZERpc3Bh
dGNoZXI6OkRlYnVnZ2VyX3JlbW92ZUphdmFTY3JpcHRCcmVha3BvaW50Q21kCiAgICAgICAgIHx8
IGNvbW1hbmROYW1lID09IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyOjpEZWJ1Z2dlcl9hY3Rp
dmF0ZUJyZWFrcG9pbnRzQ21kCiAgICAgICAgIHx8IGNvbW1hbmROYW1lID09IEluc3BlY3RvckJh
Y2tlbmREaXNwYXRjaGVyOjpEZWJ1Z2dlcl9kZWFjdGl2YXRlQnJlYWtwb2ludHNDbWQKLSAgICAg
ICAgfHwgY29tbWFuZE5hbWUgPT0gSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI6Okluc3BlY3Rv
cl9zdGFydFByb2ZpbGluZ0NtZAotICAgICAgICB8fCBjb21tYW5kTmFtZSA9PSBJbnNwZWN0b3JC
YWNrZW5kRGlzcGF0Y2hlcjo6SW5zcGVjdG9yX3N0b3BQcm9maWxpbmdDbWQKKyAgICAgICAgfHwg
Y29tbWFuZE5hbWUgPT0gSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXI6OlByb2ZpbGVyX3N0YXJ0
Q21kCisgICAgICAgIHx8IGNvbW1hbmROYW1lID09IEluc3BlY3RvckJhY2tlbmREaXNwYXRjaGVy
OjpQcm9maWxlcl9zdG9wQ21kCiAgICAgICAgIHx8IGNvbW1hbmROYW1lID09IEluc3BlY3RvckJh
Y2tlbmREaXNwYXRjaGVyOjpQcm9maWxlcl9nZXRQcm9maWxlQ21kOwogfQogCg==
</data>
<flag name="review"
          id="77718"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>