<?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>54891</bug_id>
          
          <creation_ts>2011-02-21 10:43:59 -0800</creation_ts>
          <short_desc>Web Inspector: make DOM storage and Database agents have the same lifetime as InspectorAgent</short_desc>
          <delta_ts>2011-02-22 01:34:58 -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>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>354680</commentid>
    <comment_count>0</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-02-21 10:43:59 -0800</bug_when>
    <thetext>Web Inspector: make DOM storage and Database agents have the same lifetime as InspectorAgent. InspectorInstrumentation should use ActiveAgents structure to access them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354686</commentid>
    <comment_count>1</comment_count>
      <attachid>83189</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-02-21 10:46:38 -0800</bug_when>
    <thetext>Created attachment 83189
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354692</commentid>
    <comment_count>2</comment_count>
      <attachid>83189</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-02-21 10:55:09 -0800</bug_when>
    <thetext>Comment on attachment 83189
Patch

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

&gt; Source/WebCore/inspector/InspectorAgent.cpp:65
&gt;  #include &quot;InspectorDatabaseResource.h&quot;

nuke this too?

&gt; Source/WebCore/inspector/InspectorAgent.cpp:343
&gt; +#if ENABLE(DOM_STORAGE)

Move them below the base agents?

&gt; Source/WebCore/inspector/InspectorAgent.cpp:346
&gt; +#if ENABLE(DATABASE)

This goes first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355123</commentid>
    <comment_count>3</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-02-22 01:34:58 -0800</bug_when>
    <thetext>Committed r79303: &lt;http://trac.webkit.org/changeset/79303&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83189</attachid>
            <date>2011-02-21 10:46:38 -0800</date>
            <delta_ts>2011-02-21 10:55:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54891-20110221214635.patch</filename>
            <type>text/plain</type>
            <size>25396</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzkyMTcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4ZDEwZjg3NWExMzMxZWM5
NTBhODNlMTJhODdkZDgxMjRjNGM3NmQ2Li4zNDk1ZGY0NmMwZTYzNWU2MzBiMWQ2N2RkNzAxY2I1
ODcyMTYxNjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDcgQEAKIDIwMTEtMDItMjEgIFl1cnkg
U2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogbWFrZSBET00gc3RvcmFn
ZSBhbmQgRGF0YWJhc2UgYWdlbnRzIGhhdmUgdGhlIHNhbWUgbGlmZXRpbWUgYXMgSW5zcGVjdG9y
QWdlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0
ODkxCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yQWdlbnQ6Okluc3BlY3RvckFnZW50KToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckFnZW50OjpzZXRGcm9udGVuZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JBZ2VudDo6ZGlzY29ubmVjdEZyb250ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckFnZW50OjpjcmVhdGVGcm9udGVuZExpZmV0aW1lQWdlbnRzKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckFnZW50OjpyZWxlYXNlRnJvbnRlbmRMaWZldGltZUFnZW50cyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JBZ2VudDo6ZGlkQ29tbWl0TG9hZCk6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckFnZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JB
Z2VudDo6aW5zdHJ1bWVudGluZ0FnZW50cyk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTVN0b3JhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01TdG9y
YWdlQWdlbnQ6Okluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6On5JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpzZXRGcm9udGVuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OmNsZWFyRnJvbnRlbmQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpzZWxlY3RET01T
dG9yYWdlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6Z2V0
RE9NU3RvcmFnZVJlc291cmNlRm9ySWQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9N
U3RvcmFnZUFnZW50OjpkaWRVc2VET01TdG9yYWdlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckRPTVN0b3JhZ2VBZ2VudDo6Y2xlYXJSZXNvdXJjZXMpOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckRPTVN0b3JhZ2VBZ2VudDo6Y3JlYXRlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
RGF0YWJhc2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JEYXRhYmFzZUFn
ZW50OjpkaWRPcGVuRGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRGF0YWJh
c2VBZ2VudDo6Y2xlYXJSZXNvdXJjZXMpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRGF0
YWJhc2VBZ2VudDo6SW5zcGVjdG9yRGF0YWJhc2VBZ2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JEYXRhYmFzZUFnZW50Ojp+SW5zcGVjdG9yRGF0YWJhc2VBZ2VudCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JEYXRhYmFzZUFnZW50OjpzZXRGcm9udGVuZCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JEYXRhYmFzZUFnZW50OjpjbGVhckZyb250ZW5kKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckRhdGFiYXNlQWdlbnQ6OmRhdGFiYXNlRm9ySWQpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRGF0YWJhc2VBZ2VudDo6c2VsZWN0RGF0YWJhc2UpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JEYXRhYmFzZUFnZW50OjpjcmVhdGUpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRPcGVuRGF0YWJhc2VJbXBsKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkVXNlRE9NU3RvcmFnZUltcGwpOgor
CisyMDExLTAyLTIxICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCiAg
ICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogY3JlYXRlIGFuZCBkZXN0cm95IERPTSBhZ2VudCBhbG9uZyB3aXRoIEluc3BlY3RvckFnZW50
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmNwcAppbmRleCA5YjBh
NGZiMTg4ZDcwMzIxYTJiMWI5MzBmNjFiN2VkY2E5OGQ1OWRhLi5jYTlmNGYzMDYzZjcyZjk4YTJm
NWJiODFjOWVhOGNkOTlmZDkxNzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JBZ2VudC5jcHAKQEAgLTYyLDcgKzYyLDYgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JDb25z
b2xlQWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
SW5zcGVjdG9yRE9NQWdlbnQuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JET01TdG9yYWdlUmVzb3Vy
Y2UuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JEYXRhYmFzZVJlc291cmNlLmgiCiAjaW5jbHVkZSAi
SW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kLmgi
CkBAIC0xNDMsMTAgKzE0MiwxMCBAQCBJbnNwZWN0b3JBZ2VudDo6SW5zcGVjdG9yQWdlbnQoUGFn
ZSogcGFnZSwgSW5zcGVjdG9yQ2xpZW50KiBjbGllbnQpCiAgICAgLCBtX2RvbUFnZW50KEluc3Bl
Y3RvckRPTUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX2luamVj
dGVkU2NyaXB0SG9zdC5nZXQoKSkpCiAgICAgLCBtX2Nzc0FnZW50KG5ldyBJbnNwZWN0b3JDU1NB
Z2VudChtX2RvbUFnZW50LmdldCgpKSkKICNpZiBFTkFCTEUoREFUQUJBU0UpCi0gICAgLCBtX2Rh
dGFiYXNlQWdlbnRSZXNvdXJjZXMoSW5zcGVjdG9yRGF0YWJhc2VBZ2VudDo6Y3JlYXRlU3RvcmFn
ZSgpKQorICAgICwgbV9kYXRhYmFzZUFnZW50KEluc3BlY3RvckRhdGFiYXNlQWdlbnQ6OmNyZWF0
ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCkpKQogI2VuZGlmCiAjaWYgRU5BQkxFKERPTV9T
VE9SQUdFKQotICAgICwgbV9kb21TdG9yYWdlQWdlbnRSZXNvdXJjZXMoSW5zcGVjdG9yRE9NU3Rv
cmFnZUFnZW50OjpjcmVhdGVTdG9yYWdlKCkpCisgICAgLCBtX2RvbVN0b3JhZ2VBZ2VudChJbnNw
ZWN0b3JET01TdG9yYWdlQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCkp
KQogI2VuZGlmCiAgICAgLCBtX3N0YXRlKG5ldyBJbnNwZWN0b3JTdGF0ZShjbGllbnQpKQogICAg
ICwgbV9jb25zb2xlQWdlbnQobmV3IEluc3BlY3RvckNvbnNvbGVBZ2VudChtX2luc3RydW1lbnRp
bmdBZ2VudHMuZ2V0KCksIHRoaXMsIG1fc3RhdGUuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRIb3N0
LmdldCgpLCBtX2RvbUFnZW50LmdldCgpKSkKQEAgLTM0MSw2ICszNDAsMTMgQEAgdm9pZCBJbnNw
ZWN0b3JBZ2VudDo6c2V0RnJvbnRlbmQoSW5zcGVjdG9yRnJvbnRlbmQqIGluc3BlY3RvckZyb250
ZW5kKQogICAgIG1fZnJvbnRlbmQgPSBpbnNwZWN0b3JGcm9udGVuZDsKICAgICBjcmVhdGVGcm9u
dGVuZExpZmV0aW1lQWdlbnRzKCk7CiAKKyNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpCisgICAgbV9k
b21TdG9yYWdlQWdlbnQtPnNldEZyb250ZW5kKG1fZnJvbnRlbmQpOworI2VuZGlmCisjaWYgRU5B
QkxFKERBVEFCQVNFKQorICAgIG1fZGF0YWJhc2VBZ2VudC0+c2V0RnJvbnRlbmQobV9mcm9udGVu
ZCk7CisjZW5kaWYKKwogICAgIG1fZG9tQWdlbnQtPnNldEZyb250ZW5kKG1fZnJvbnRlbmQpOwog
ICAgIG1fY29uc29sZUFnZW50LT5zZXRGcm9udGVuZChtX2Zyb250ZW5kKTsKIApAQCAtMzc2LDYg
KzM4MiwxMiBAQCB2b2lkIEluc3BlY3RvckFnZW50OjpkaXNjb25uZWN0RnJvbnRlbmQoKQogCiAg
ICAgbV9jb25zb2xlQWdlbnQtPmNsZWFyRnJvbnRlbmQoKTsKICAgICBtX2RvbUFnZW50LT5jbGVh
ckZyb250ZW5kKCk7CisjaWYgRU5BQkxFKERBVEFCQVNFKQorICAgIG1fZGF0YWJhc2VBZ2VudC0+
Y2xlYXJGcm9udGVuZCgpOworI2VuZGlmCisjaWYgRU5BQkxFKERPTV9TVE9SQUdFKQorICAgIG1f
ZG9tU3RvcmFnZUFnZW50LT5jbGVhckZyb250ZW5kKCk7CisjZW5kaWYKIAogICAgIHJlbGVhc2VG
cm9udGVuZExpZmV0aW1lQWdlbnRzKCk7CiAgICAgbV91c2VyQWdlbnRPdmVycmlkZSA9ICIiOwpA
QCAtMzkyLDE0ICs0MDQsNiBAQCB2b2lkIEluc3BlY3RvckFnZW50OjpjcmVhdGVGcm9udGVuZExp
ZmV0aW1lQWdlbnRzKCkKIHsKICAgICBtX3J1bnRpbWVBZ2VudCA9IEluc3BlY3RvclJ1bnRpbWVB
Z2VudDo6Y3JlYXRlKG1faW5qZWN0ZWRTY3JpcHRIb3N0LmdldCgpKTsKIAotI2lmIEVOQUJMRShE
QVRBQkFTRSkKLSAgICBtX2RhdGFiYXNlQWdlbnQgPSBJbnNwZWN0b3JEYXRhYmFzZUFnZW50Ojpj
cmVhdGUoZGF0YWJhc2VBZ2VudFJlc291cmNlcygpLCBtX2Zyb250ZW5kKTsKLSNlbmRpZgotCi0j
aWYgRU5BQkxFKERPTV9TVE9SQUdFKQotICAgIG1fZG9tU3RvcmFnZUFnZW50ID0gSW5zcGVjdG9y
RE9NU3RvcmFnZUFnZW50OjpjcmVhdGUoZG9tU3RvcmFnZUFnZW50UmVzb3VyY2VzKCksIG1fZnJv
bnRlbmQpOwotI2VuZGlmCi0KICNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQog
ICAgIG1fYXBwbGljYXRpb25DYWNoZUFnZW50ID0gbmV3IEluc3BlY3RvckFwcGxpY2F0aW9uQ2Fj
aGVBZ2VudChtX2luc3BlY3RlZFBhZ2UtPm1haW5GcmFtZSgpLT5sb2FkZXIoKS0+ZG9jdW1lbnRM
b2FkZXIoKSwgbV9mcm9udGVuZCk7CiAjZW5kaWYKQEAgLTQxMSwxNCArNDE1LDYgQEAgdm9pZCBJ
bnNwZWN0b3JBZ2VudDo6cmVsZWFzZUZyb250ZW5kTGlmZXRpbWVBZ2VudHMoKQogICAgIG1fcnVu
dGltZUFnZW50LmNsZWFyKCk7CiAgICAgbV90aW1lbGluZUFnZW50LmNsZWFyKCk7CiAKLSNpZiBF
TkFCTEUoREFUQUJBU0UpCi0gICAgbV9kYXRhYmFzZUFnZW50LmNsZWFyKCk7Ci0jZW5kaWYKLQot
I2lmIEVOQUJMRShET01fU1RPUkFHRSkKLSAgICBtX2RvbVN0b3JhZ2VBZ2VudC5jbGVhcigpOwot
I2VuZGlmCi0KICNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIG1fYXBw
bGljYXRpb25DYWNoZUFnZW50LmNsZWFyKCk7CiAjZW5kaWYKQEAgLTUzNiwxMiArNTMyLDExIEBA
IHZvaWQgSW5zcGVjdG9yQWdlbnQ6OmRpZENvbW1pdExvYWQoRG9jdW1lbnRMb2FkZXIqIGxvYWRl
cikKICAgICAgICAgbV93b3JrZXJzLmNsZWFyKCk7CiAjZW5kaWYKICNpZiBFTkFCTEUoREFUQUJB
U0UpCi0gICAgICAgIEluc3BlY3RvckRhdGFiYXNlQWdlbnQ6OmNsZWFyKHRoaXMpOworICAgICAg
ICBtX2RhdGFiYXNlQWdlbnQtPmNsZWFyUmVzb3VyY2VzKCk7CiAjZW5kaWYKICNpZiBFTkFCTEUo
RE9NX1NUT1JBR0UpCi0gICAgICAgIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6Y2xlYXIodGhp
cyk7CisgICAgICAgIG1fZG9tU3RvcmFnZUFnZW50LT5jbGVhclJlc291cmNlcygpOwogI2VuZGlm
Ci0KICAgICAgICAgaWYgKEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCA9IG1faW5zdHJ1bWVu
dGluZ0FnZW50cy0+aW5zcGVjdG9yRE9NQWdlbnQoKSkKICAgICAgICAgICAgIGRvbUFnZW50LT5z
ZXREb2N1bWVudChtX2luc3BlY3RlZFBhZ2UtPm1haW5GcmFtZSgpLT5kb2N1bWVudCgpKTsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5oCmluZGV4IDhmOTRm
MDBjMjI4YWM5MTI5Njk1Zjg5ZTkwNjhiYTFjYmUyMWQ5MjUuLjc1ZDAzNzU5YmJhMTkxZDFiZGE0
YzdiYmI0ODJkZGQwM2FlNDg1NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JBZ2VudC5oCkBAIC02Miw3ICs2Miw2IEBAIGNsYXNzIEluc3BlY3RvckNvbnNvbGVBZ2VudDsK
IGNsYXNzIEluc3BlY3RvckNTU0FnZW50OwogY2xhc3MgSW5zcGVjdG9yRE9NQWdlbnQ7CiBjbGFz
cyBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ7Ci1jbGFzcyBJbnNwZWN0b3JET01TdG9yYWdlUmVz
b3VyY2U7CiBjbGFzcyBJbnNwZWN0b3JEYXRhYmFzZUFnZW50OwogY2xhc3MgSW5zcGVjdG9yRGF0
YWJhc2VSZXNvdXJjZTsKIGNsYXNzIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ7CkBAIC0xMDAsMTUg
Kzk5LDYgQEAgY2xhc3MgV2ViU29ja2V0SGFuZHNoYWtlUmVxdWVzdDsKIGNsYXNzIFdlYlNvY2tl
dEhhbmRzaGFrZVJlc3BvbnNlOwogI2VuZGlmCiAKLWNsYXNzIEluc3BlY3Rvck9mZmxpbmVSZXNv
dXJjZXNCYXNlIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JPZmZsaW5lUmVz
b3VyY2VzQmFzZSk7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+SW5zcGVjdG9yT2ZmbGluZVJlc291
cmNlc0Jhc2UoKSB7fQotCi1wcm90ZWN0ZWQ6Ci0gICAgSW5zcGVjdG9yT2ZmbGluZVJlc291cmNl
c0Jhc2UoKSB7fQotfTsKLQogY2xhc3MgSW5zcGVjdG9yQWdlbnQgewogICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKEluc3BlY3RvckFnZW50KTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
QEAgLTE0Niw2ICsxMzYsOCBAQCBwdWJsaWM6CiAKICAgICBJbnNwZWN0b3JSZXNvdXJjZUFnZW50
KiByZXNvdXJjZUFnZW50KCk7CiAKKyAgICBJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50
aW5nQWdlbnRzKCkgY29uc3QgeyByZXR1cm4gbV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpOyB9
CisKICAgICBJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQoKSB7IHJldHVybiB0aGlzOyB9
CiAgICAgSW5zcGVjdG9yQ29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQoKSB7IHJldHVybiBtX2Nv
bnNvbGVBZ2VudC5nZXQoKTsgfQogICAgIEluc3BlY3RvckNTU0FnZW50KiBjc3NBZ2VudCgpIHsg
cmV0dXJuIG1fY3NzQWdlbnQuZ2V0KCk7IH0KQEAgLTE1NSwxMSArMTQ3LDkgQEAgcHVibGljOgog
ICAgIEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQoKSB7IHJldHVybiBtX3Rp
bWVsaW5lQWdlbnQuZ2V0KCk7IH0KICNpZiBFTkFCTEUoREFUQUJBU0UpCiAgICAgSW5zcGVjdG9y
RGF0YWJhc2VBZ2VudCogZGF0YWJhc2VBZ2VudCgpIHsgcmV0dXJuIG1fZGF0YWJhc2VBZ2VudC5n
ZXQoKTsgfQotICAgIEluc3BlY3Rvck9mZmxpbmVSZXNvdXJjZXNCYXNlKiBkYXRhYmFzZUFnZW50
UmVzb3VyY2VzKCkgeyByZXR1cm4gbV9kYXRhYmFzZUFnZW50UmVzb3VyY2VzLmdldCgpOyB9CiAj
ZW5kaWYKICNpZiBFTkFCTEUoRE9NX1NUT1JBR0UpCiAgICAgSW5zcGVjdG9yRE9NU3RvcmFnZUFn
ZW50KiBkb21TdG9yYWdlQWdlbnQoKSB7IHJldHVybiBtX2RvbVN0b3JhZ2VBZ2VudC5nZXQoKTsg
fQotICAgIEluc3BlY3Rvck9mZmxpbmVSZXNvdXJjZXNCYXNlKiBkb21TdG9yYWdlQWdlbnRSZXNv
dXJjZXMoKSB7IHJldHVybiBtX2RvbVN0b3JhZ2VBZ2VudFJlc291cmNlcy5nZXQoKTsgfQogI2Vu
ZGlmCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCiAgICAgSW5zcGVjdG9yQnJvd3Nl
ckRlYnVnZ2VyQWdlbnQqIGJyb3dzZXJEZWJ1Z2dlckFnZW50KCkgY29uc3QgeyByZXR1cm4gbV9i
cm93c2VyRGVidWdnZXJBZ2VudC5nZXQoKTsgfQpAQCAtMjgxLDEyICsyNzEsMTAgQEAgcHJpdmF0
ZToKIAogI2lmIEVOQUJMRShEQVRBQkFTRSkKICAgICBPd25QdHI8SW5zcGVjdG9yRGF0YWJhc2VB
Z2VudD4gbV9kYXRhYmFzZUFnZW50OwotICAgIE93blB0cjxJbnNwZWN0b3JPZmZsaW5lUmVzb3Vy
Y2VzQmFzZT4gbV9kYXRhYmFzZUFnZW50UmVzb3VyY2VzOwogI2VuZGlmCiAKICNpZiBFTkFCTEUo
RE9NX1NUT1JBR0UpCiAgICAgT3duUHRyPEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudD4gbV9kb21T
dG9yYWdlQWdlbnQ7Ci0gICAgT3duUHRyPEluc3BlY3Rvck9mZmxpbmVSZXNvdXJjZXNCYXNlPiBt
X2RvbVN0b3JhZ2VBZ2VudFJlc291cmNlczsKICNlbmRpZgogCiAgICAgT3duUHRyPEluc3BlY3Rv
clRpbWVsaW5lQWdlbnQ+IG1fdGltZWxpbmVBZ2VudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5jcHAKaW5kZXggZTAxNjQzYTJl
ZTA0Zjc4NGE1OTk0MWU2YjkyMzc3YTg1NDhiOTYyYi4uNWMxODZiODdjNjY0Yjg2OTUyMTQ5Y2Iy
YmExYTcxY2E5YzJiMzllOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5jcHAKQEAgLTM2LDEwICszNiwxMCBAQAogI2luY2x1
ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJG
cmFtZS5oIgotI2luY2x1ZGUgIkluc3BlY3RvckFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9y
RE9NU3RvcmFnZVJlc291cmNlLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKICNp
bmNsdWRlICJJbnNwZWN0b3JWYWx1ZXMuaCIKKyNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRz
LmgiCiAjaW5jbHVkZSAiU3RvcmFnZS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVhLmgiCiAjaW5j
bHVkZSAiVm9pZENhbGxiYWNrLmgiCkBAIC01MCwzMSArNTAsMzMgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiB0eXBlZGVmIEhhc2hNYXA8aW50LCBSZWZQdHI8SW5zcGVjdG9yRE9NU3RvcmFnZVJl
c291cmNlPiA+IERPTVN0b3JhZ2VSZXNvdXJjZXNNYXA7CiAKLWNsYXNzIEluc3BlY3RvckRPTVN0
b3JhZ2VBZ2VudDo6UmVzb3VyY2VzIDogcHVibGljIEluc3BlY3Rvck9mZmxpbmVSZXNvdXJjZXNC
YXNlIHsKLXB1YmxpYzoKLSAgICBET01TdG9yYWdlUmVzb3VyY2VzTWFwIG1fbWFwOwotfTsKLQot
SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQoSW5zcGVj
dG9yT2ZmbGluZVJlc291cmNlc0Jhc2UqIGRvbVN0b3JhZ2VBZ2VudFJlc291cmNlcywgSW5zcGVj
dG9yRnJvbnRlbmQqIGZyb250ZW5kKQotICAgIDogbV9yZXNvdXJjZXMoc3RhdGljX2Nhc3Q8SW5z
cGVjdG9yRE9NU3RvcmFnZUFnZW50OjpSZXNvdXJjZXMqPihkb21TdG9yYWdlQWdlbnRSZXNvdXJj
ZXMpKQotICAgICwgbV9mcm9udGVuZChmcm9udGVuZCkKK0luc3BlY3RvckRPTVN0b3JhZ2VBZ2Vu
dDo6SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1l
bnRpbmdBZ2VudHMpCisgICAgOiBtX2luc3RydW1lbnRpbmdBZ2VudHMoaW5zdHJ1bWVudGluZ0Fn
ZW50cykKKyAgICAsIG1fZnJvbnRlbmQoMCkKIHsKLSAgICBBU1NFUlQoZG9tU3RvcmFnZUFnZW50
UmVzb3VyY2VzKTsKLSAgICBET01TdG9yYWdlUmVzb3VyY2VzTWFwOjppdGVyYXRvciByZXNvdXJj
ZXNFbmQgPSBtX3Jlc291cmNlcy0+bV9tYXAuZW5kKCk7Ci0gICAgZm9yIChET01TdG9yYWdlUmVz
b3VyY2VzTWFwOjppdGVyYXRvciBpdCA9IG1fcmVzb3VyY2VzLT5tX21hcC5iZWdpbigpOyBpdCAh
PSByZXNvdXJjZXNFbmQ7ICsraXQpCi0gICAgICAgIGl0LT5zZWNvbmQtPmJpbmQobV9mcm9udGVu
ZCk7CisgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JET01TdG9yYWdlQWdl
bnQodGhpcyk7CiB9CiAKIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6fkluc3BlY3RvckRPTVN0
b3JhZ2VBZ2VudCgpCiB7Ci0gICAgRE9NU3RvcmFnZVJlc291cmNlc01hcDo6aXRlcmF0b3IgZG9t
U3RvcmFnZUVuZCA9IG1fcmVzb3VyY2VzLT5tX21hcC5lbmQoKTsKLSAgICBmb3IgKERPTVN0b3Jh
Z2VSZXNvdXJjZXNNYXA6Oml0ZXJhdG9yIGl0ID0gbV9yZXNvdXJjZXMtPm1fbWFwLmJlZ2luKCk7
IGl0ICE9IGRvbVN0b3JhZ2VFbmQ7ICsraXQpCi0gICAgICAgIGl0LT5zZWNvbmQtPnVuYmluZCgp
OworICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50
KDApOworICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cyA9IDA7Cit9CisKK3ZvaWQgSW5zcGVjdG9y
RE9NU3RvcmFnZUFnZW50OjpzZXRGcm9udGVuZChJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQp
Cit7CisgICAgbV9mcm9udGVuZCA9IGZyb250ZW5kOworICAgIERPTVN0b3JhZ2VSZXNvdXJjZXNN
YXA6Oml0ZXJhdG9yIHJlc291cmNlc0VuZCA9IG1fcmVzb3VyY2VzLmVuZCgpOworICAgIGZvciAo
RE9NU3RvcmFnZVJlc291cmNlc01hcDo6aXRlcmF0b3IgaXQgPSBtX3Jlc291cmNlcy5iZWdpbigp
OyBpdCAhPSByZXNvdXJjZXNFbmQ7ICsraXQpCisgICAgICAgIGl0LT5zZWNvbmQtPmJpbmQobV9m
cm9udGVuZCk7CiB9CiAKLVBhc3NPd25QdHI8SW5zcGVjdG9yT2ZmbGluZVJlc291cmNlc0Jhc2U+
IEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6Y3JlYXRlU3RvcmFnZSgpCit2b2lkIEluc3BlY3Rv
ckRPTVN0b3JhZ2VBZ2VudDo6Y2xlYXJGcm9udGVuZCgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRy
KG5ldyBSZXNvdXJjZXMoKSk7CisgICAgRE9NU3RvcmFnZVJlc291cmNlc01hcDo6aXRlcmF0b3Ig
ZG9tU3RvcmFnZUVuZCA9IG1fcmVzb3VyY2VzLmVuZCgpOworICAgIGZvciAoRE9NU3RvcmFnZVJl
c291cmNlc01hcDo6aXRlcmF0b3IgaXQgPSBtX3Jlc291cmNlcy5iZWdpbigpOyBpdCAhPSBkb21T
dG9yYWdlRW5kOyArK2l0KQorICAgICAgICBpdC0+c2Vjb25kLT51bmJpbmQoKTsKKyAgICBtX2Zy
b250ZW5kID0gMDsKIH0KIAogdm9pZCBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OmdldERPTVN0
b3JhZ2VFbnRyaWVzKGxvbmcgc3RvcmFnZUlkLCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+KiBlbnRy
aWVzKQpAQCAtMTIzLDggKzEyNSw4IEBAIHZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50Ojpz
ZWxlY3RET01TdG9yYWdlKFN0b3JhZ2UqIHN0b3JhZ2UpCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9
IDA7CiAgICAgYm9vbCBpc0xvY2FsU3RvcmFnZSA9IChmcmFtZS0+ZG9tV2luZG93KCktPmxvY2Fs
U3RvcmFnZShlYykgPT0gc3RvcmFnZSAmJiAhZWMpOwogICAgIGxvbmcgc3RvcmFnZVJlc291cmNl
SWQgPSAwOwotICAgIERPTVN0b3JhZ2VSZXNvdXJjZXNNYXA6Oml0ZXJhdG9yIGRvbVN0b3JhZ2VF
bmQgPSBtX3Jlc291cmNlcy0+bV9tYXAuZW5kKCk7Ci0gICAgZm9yIChET01TdG9yYWdlUmVzb3Vy
Y2VzTWFwOjppdGVyYXRvciBpdCA9IG1fcmVzb3VyY2VzLT5tX21hcC5iZWdpbigpOyBpdCAhPSBk
b21TdG9yYWdlRW5kOyArK2l0KSB7CisgICAgRE9NU3RvcmFnZVJlc291cmNlc01hcDo6aXRlcmF0
b3IgZG9tU3RvcmFnZUVuZCA9IG1fcmVzb3VyY2VzLmVuZCgpOworICAgIGZvciAoRE9NU3RvcmFn
ZVJlc291cmNlc01hcDo6aXRlcmF0b3IgaXQgPSBtX3Jlc291cmNlcy5iZWdpbigpOyBpdCAhPSBk
b21TdG9yYWdlRW5kOyArK2l0KSB7CiAgICAgICAgIGlmIChpdC0+c2Vjb25kLT5pc1NhbWVIb3N0
QW5kVHlwZShmcmFtZSwgaXNMb2NhbFN0b3JhZ2UpKSB7CiAgICAgICAgICAgICBzdG9yYWdlUmVz
b3VyY2VJZCA9IGl0LT5maXJzdDsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTM2LDM2ICsxMzgs
MzIgQEAgdm9pZCBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OnNlbGVjdERPTVN0b3JhZ2UoU3Rv
cmFnZSogc3RvcmFnZSkKIAogSW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlKiBJbnNwZWN0b3JE
T01TdG9yYWdlQWdlbnQ6OmdldERPTVN0b3JhZ2VSZXNvdXJjZUZvcklkKGxvbmcgc3RvcmFnZUlk
KQogewotICAgIERPTVN0b3JhZ2VSZXNvdXJjZXNNYXA6Oml0ZXJhdG9yIGl0ID0gbV9yZXNvdXJj
ZXMtPm1fbWFwLmZpbmQoc3RvcmFnZUlkKTsKLSAgICBpZiAoaXQgPT0gbV9yZXNvdXJjZXMtPm1f
bWFwLmVuZCgpKQorICAgIERPTVN0b3JhZ2VSZXNvdXJjZXNNYXA6Oml0ZXJhdG9yIGl0ID0gbV9y
ZXNvdXJjZXMuZmluZChzdG9yYWdlSWQpOworICAgIGlmIChpdCA9PSBtX3Jlc291cmNlcy5lbmQo
KSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIGl0LT5zZWNvbmQuZ2V0KCk7CiB9CiAK
LXZvaWQgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50OjpkaWRVc2VET01TdG9yYWdlKEluc3BlY3Rv
ckFnZW50KiBpbnNwZWN0b3JBZ2VudCwgU3RvcmFnZUFyZWEqIHN0b3JhZ2VBcmVhLCBib29sIGlz
TG9jYWxTdG9yYWdlLCBGcmFtZSogZnJhbWUpCit2b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2Vu
dDo6ZGlkVXNlRE9NU3RvcmFnZShTdG9yYWdlQXJlYSogc3RvcmFnZUFyZWEsIGJvb2wgaXNMb2Nh
bFN0b3JhZ2UsIEZyYW1lKiBmcmFtZSkKIHsKLSAgICBpZiAoIWluc3BlY3RvckFnZW50LT5lbmFi
bGVkKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFJlc291cmNlcyogcmVzb3VyY2VzID0gc3Rh
dGljX2Nhc3Q8UmVzb3VyY2VzKj4oaW5zcGVjdG9yQWdlbnQtPmRvbVN0b3JhZ2VBZ2VudFJlc291
cmNlcygpKTsKLSAgICBET01TdG9yYWdlUmVzb3VyY2VzTWFwOjppdGVyYXRvciBkb21TdG9yYWdl
RW5kID0gcmVzb3VyY2VzLT5tX21hcC5lbmQoKTsKLSAgICBmb3IgKERPTVN0b3JhZ2VSZXNvdXJj
ZXNNYXA6Oml0ZXJhdG9yIGl0ID0gcmVzb3VyY2VzLT5tX21hcC5iZWdpbigpOyBpdCAhPSBkb21T
dG9yYWdlRW5kOyArK2l0KQorICAgIERPTVN0b3JhZ2VSZXNvdXJjZXNNYXA6Oml0ZXJhdG9yIGRv
bVN0b3JhZ2VFbmQgPSBtX3Jlc291cmNlcy5lbmQoKTsKKyAgICBmb3IgKERPTVN0b3JhZ2VSZXNv
dXJjZXNNYXA6Oml0ZXJhdG9yIGl0ID0gbV9yZXNvdXJjZXMuYmVnaW4oKTsgaXQgIT0gZG9tU3Rv
cmFnZUVuZDsgKytpdCkKICAgICAgICAgaWYgKGl0LT5zZWNvbmQtPmlzU2FtZUhvc3RBbmRUeXBl
KGZyYW1lLCBpc0xvY2FsU3RvcmFnZSkpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICBSZWZQ
dHI8U3RvcmFnZT4gZG9tU3RvcmFnZSA9IFN0b3JhZ2U6OmNyZWF0ZShmcmFtZSwgc3RvcmFnZUFy
ZWEpOwogICAgIFJlZlB0cjxJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2U+IHJlc291cmNlID0g
SW5zcGVjdG9yRE9NU3RvcmFnZVJlc291cmNlOjpjcmVhdGUoZG9tU3RvcmFnZS5nZXQoKSwgaXNM
b2NhbFN0b3JhZ2UsIGZyYW1lKTsKIAotICAgIHJlc291cmNlcy0+bV9tYXAuc2V0KHJlc291cmNl
LT5pZCgpLCByZXNvdXJjZSk7CisgICAgbV9yZXNvdXJjZXMuc2V0KHJlc291cmNlLT5pZCgpLCBy
ZXNvdXJjZSk7CiAKICAgICAvLyBSZXNvdXJjZXMgYXJlIG9ubHkgYm91bmQgd2hpbGUgdmlzaWJs
ZS4KLSAgICBpZiAoaW5zcGVjdG9yQWdlbnQtPmZyb250ZW5kKCkpCi0gICAgICAgIHJlc291cmNl
LT5iaW5kKGluc3BlY3RvckFnZW50LT5mcm9udGVuZCgpKTsKKyAgICBpZiAobV9mcm9udGVuZCkK
KyAgICAgICAgcmVzb3VyY2UtPmJpbmQobV9mcm9udGVuZCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9y
RE9NU3RvcmFnZUFnZW50OjpjbGVhcihJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQpCit2
b2lkIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6Y2xlYXJSZXNvdXJjZXMoKQogewotICAgIHN0
YXRpY19jYXN0PFJlc291cmNlcyo+KGluc3BlY3RvckFnZW50LT5kb21TdG9yYWdlQWdlbnRSZXNv
dXJjZXMoKSktPm1fbWFwLmNsZWFyKCk7CisgICAgbV9yZXNvdXJjZXMuY2xlYXIoKTsKIH0KIAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFn
ZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NU3RvcmFnZUFn
ZW50LmgKaW5kZXggMTQ3NzlmMjUyZGEwNmYwZTgzZjIzYjYyNzhjNDQ1YWMxZDZmOGZmYy4uODVm
Yjk1ZGU3ZmUwNmNlM2E5YWJjZmYzNmQ4N2M4NTFhM2Y3NzllZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQuaApAQCAtMzYsMjcg
KzM2LDI1IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZyYW1lOwotY2xhc3MgSW5z
cGVjdG9yQWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JBcnJheTsKIGNsYXNzIEluc3BlY3RvckRPTVN0
b3JhZ2VSZXNvdXJjZTsKIGNsYXNzIEluc3BlY3RvckZyb250ZW5kOwotY2xhc3MgSW5zcGVjdG9y
T2ZmbGluZVJlc291cmNlc0Jhc2U7CitjbGFzcyBJbnN0cnVtZW50aW5nQWdlbnRzOwogY2xhc3Mg
U3RvcmFnZTsKIGNsYXNzIFN0b3JhZ2VBcmVhOwogCiBjbGFzcyBJbnNwZWN0b3JET01TdG9yYWdl
QWdlbnQgewogcHVibGljOgotICAgIGNsYXNzIFJlc291cmNlczsKLQotICAgIHN0YXRpYyBQYXNz
T3duUHRyPEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudD4gY3JlYXRlKEluc3BlY3Rvck9mZmxpbmVS
ZXNvdXJjZXNCYXNlKiBkb21TdG9yYWdlUmVzb3VyY2VzLCBJbnNwZWN0b3JGcm9udGVuZCogZnJv
bnRlbmQpCisgICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50PiBj
cmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cykKICAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50KGRvbVN0
b3JhZ2VSZXNvdXJjZXMsIGZyb250ZW5kKSk7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcg
SW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMpKTsKICAgICB9Cisg
ICAgfkluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudCgpOwogCi0gICAgc3RhdGljIFBhc3NPd25QdHI8
SW5zcGVjdG9yT2ZmbGluZVJlc291cmNlc0Jhc2U+IGNyZWF0ZVN0b3JhZ2UoKTsKLSAgICBzdGF0
aWMgdm9pZCBjbGVhcihJbnNwZWN0b3JBZ2VudCopOworICAgIHZvaWQgc2V0RnJvbnRlbmQoSW5z
cGVjdG9yRnJvbnRlbmQqKTsKKyAgICB2b2lkIGNsZWFyRnJvbnRlbmQoKTsKIAotICAgIHZpcnR1
YWwgfkluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudCgpOworICAgIHZvaWQgY2xlYXJSZXNvdXJjZXMo
KTsKIAogICAgIC8vIENhbGxlZCBmcm9tIHRoZSBmcm9udC1lbmQuCiAgICAgdm9pZCBnZXRET01T
dG9yYWdlRW50cmllcyhsb25nIHN0b3JhZ2VJZCwgUmVmUHRyPEluc3BlY3RvckFycmF5PiogZW50
cmllcyk7CkBAIC02NywxNCArNjUsMTYgQEAgcHVibGljOgogICAgIHZvaWQgc2VsZWN0RE9NU3Rv
cmFnZShTdG9yYWdlKiBzdG9yYWdlKTsKIAogICAgIC8vIENhbGxlZCBmcm9tIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbgotICAgIHN0YXRpYyB2b2lkIGRpZFVzZURPTVN0b3JhZ2UoSW5zcGVjdG9y
QWdlbnQqLCBTdG9yYWdlQXJlYSosIGJvb2wgaXNMb2NhbFN0b3JhZ2UsIEZyYW1lKik7CisgICAg
dm9pZCBkaWRVc2VET01TdG9yYWdlKFN0b3JhZ2VBcmVhKiwgYm9vbCBpc0xvY2FsU3RvcmFnZSwg
RnJhbWUqKTsKIAogcHJpdmF0ZToKLSAgICBJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQoSW5zcGVj
dG9yT2ZmbGluZVJlc291cmNlc0Jhc2UqLCBJbnNwZWN0b3JGcm9udGVuZCopOworICAgIGV4cGxp
Y2l0IEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKik7CiAKICAg
ICBJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2UqIGdldERPTVN0b3JhZ2VSZXNvdXJjZUZvcklk
KGxvbmcgc3RvcmFnZUlkKTsKIAotICAgIFJlc291cmNlcyogbV9yZXNvdXJjZXM7CisgICAgSW5z
dHJ1bWVudGluZ0FnZW50cyogbV9pbnN0cnVtZW50aW5nQWdlbnRzOworICAgIHR5cGVkZWYgSGFz
aE1hcDxpbnQsIFJlZlB0cjxJbnNwZWN0b3JET01TdG9yYWdlUmVzb3VyY2U+ID4gRE9NU3RvcmFn
ZVJlc291cmNlc01hcDsKKyAgICBET01TdG9yYWdlUmVzb3VyY2VzTWFwIG1fcmVzb3VyY2VzOwog
ICAgIEluc3BlY3RvckZyb250ZW5kKiBtX2Zyb250ZW5kOwogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQuY3BwCmluZGV4IGY5MDll
NzVjOGNhODE0ZTMyZDI0OTU1NzVkZmRkNDFmNGEyZDVlZDAuLjM3ZmYwYWVkZjQ1ODk1YTliMjcx
ODhkNmQ2Yzk5YzkzMTY5NTk2MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRGF0YWJhc2VBZ2VudC5jcHAKQEAgLTM0LDEwICszNCwxMCBAQAogCiAjaW5j
bHVkZSAiRGF0YWJhc2UuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCi0jaW5jbHVkZSAi
SW5zcGVjdG9yQWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JEYXRhYmFzZVJlc291cmNlLmgi
CiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRlbmQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JWYWx1
ZXMuaCIKKyNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCiAjaW5jbHVkZSAiU1FMRXJy
b3IuaCIKICNpbmNsdWRlICJTUUxTdGF0ZW1lbnRDYWxsYmFjay5oIgogI2luY2x1ZGUgIlNRTFN0
YXRlbWVudEVycm9yQ2FsbGJhY2suaCIKQEAgLTIxOCw1MyArMjE4LDQ1IEBAIHByaXZhdGU6CiAK
IH0gLy8gbmFtZXNwYWNlCiAKLXR5cGVkZWYgSGFzaE1hcDxpbnQsIFJlZlB0cjxJbnNwZWN0b3JE
YXRhYmFzZVJlc291cmNlPiA+IERhdGFiYXNlUmVzb3VyY2VzTWFwOwotCi1jbGFzcyBJbnNwZWN0
b3JEYXRhYmFzZUFnZW50OjpSZXNvdXJjZXMgOiBwdWJsaWMgSW5zcGVjdG9yT2ZmbGluZVJlc291
cmNlc0Jhc2UgewotcHVibGljOgotICAgIERhdGFiYXNlUmVzb3VyY2VzTWFwIG1fbWFwOwotfTsK
LQotdm9pZCBJbnNwZWN0b3JEYXRhYmFzZUFnZW50OjpkaWRPcGVuRGF0YWJhc2UoSW5zcGVjdG9y
QWdlbnQqIGluc3BlY3RvckFnZW50LCBQYXNzUmVmUHRyPERhdGFiYXNlPiBkYXRhYmFzZSwgY29u
c3QgU3RyaW5nJiBkb21haW4sIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2ZXJz
aW9uKQordm9pZCBJbnNwZWN0b3JEYXRhYmFzZUFnZW50OjpkaWRPcGVuRGF0YWJhc2UoUGFzc1Jl
ZlB0cjxEYXRhYmFzZT4gZGF0YWJhc2UsIGNvbnN0IFN0cmluZyYgZG9tYWluLCBjb25zdCBTdHJp
bmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmVyc2lvbikKIHsKLSAgICBpZiAoIWluc3BlY3RvckFn
ZW50LT5lbmFibGVkKCkpCi0gICAgICAgIHJldHVybjsKLQogICAgIFJlZlB0cjxJbnNwZWN0b3JE
YXRhYmFzZVJlc291cmNlPiByZXNvdXJjZSA9IEluc3BlY3RvckRhdGFiYXNlUmVzb3VyY2U6OmNy
ZWF0ZShkYXRhYmFzZSwgZG9tYWluLCBuYW1lLCB2ZXJzaW9uKTsKLQotICAgIFJlc291cmNlcyog
cmVzb3VyY2VzID0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VzKj4oaW5zcGVjdG9yQWdlbnQtPmRhdGFi
YXNlQWdlbnRSZXNvdXJjZXMoKSk7Ci0gICAgQVNTRVJUKHJlc291cmNlcyk7Ci0gICAgcmVzb3Vy
Y2VzLT5tX21hcC5zZXQocmVzb3VyY2UtPmlkKCksIHJlc291cmNlKTsKLQorICAgIG1fcmVzb3Vy
Y2VzLnNldChyZXNvdXJjZS0+aWQoKSwgcmVzb3VyY2UpOwogICAgIC8vIFJlc291cmNlcyBhcmUg
b25seSBib3VuZCB3aGlsZSB2aXNpYmxlLgotICAgIGlmIChJbnNwZWN0b3JGcm9udGVuZCogZnJv
bnRlbmQgPSBpbnNwZWN0b3JBZ2VudC0+ZnJvbnRlbmQoKSkKLSAgICAgICAgcmVzb3VyY2UtPmJp
bmQoZnJvbnRlbmQpOworICAgIGlmIChtX2Zyb250ZW5kUHJvdmlkZXIpCisgICAgICAgIHJlc291
cmNlLT5iaW5kKG1fZnJvbnRlbmRQcm92aWRlci0+ZnJvbnRlbmQoKSk7CiB9CiAKLXZvaWQgSW5z
cGVjdG9yRGF0YWJhc2VBZ2VudDo6Y2xlYXIoSW5zcGVjdG9yQWdlbnQqIGluc3BlY3RvckFnZW50
KQordm9pZCBJbnNwZWN0b3JEYXRhYmFzZUFnZW50OjpjbGVhclJlc291cmNlcygpCiB7Ci0gICAg
c3RhdGljX2Nhc3Q8UmVzb3VyY2VzKj4oaW5zcGVjdG9yQWdlbnQtPmRhdGFiYXNlQWdlbnRSZXNv
dXJjZXMoKSktPm1fbWFwLmNsZWFyKCk7CisgICAgbV9yZXNvdXJjZXMuY2xlYXIoKTsKIH0KIAot
Ci1JbnNwZWN0b3JEYXRhYmFzZUFnZW50OjpJbnNwZWN0b3JEYXRhYmFzZUFnZW50KEluc3BlY3Rv
ck9mZmxpbmVSZXNvdXJjZXNCYXNlKiByZXNvdXJjZXMsIEluc3BlY3RvckZyb250ZW5kKiBmcm9u
dGVuZCkKLSAgICA6IG1fcmVzb3VyY2VzKHN0YXRpY19jYXN0PFJlc291cmNlcyo+KHJlc291cmNl
cykpCi0gICAgLCBtX2Zyb250ZW5kUHJvdmlkZXIoRnJvbnRlbmRQcm92aWRlcjo6Y3JlYXRlKGZy
b250ZW5kKSkKK0luc3BlY3RvckRhdGFiYXNlQWdlbnQ6Okluc3BlY3RvckRhdGFiYXNlQWdlbnQo
SW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cykKKyAgICA6IG1faW5zdHJ1
bWVudGluZ0FnZW50cyhpbnN0cnVtZW50aW5nQWdlbnRzKQogewotICAgIEFTU0VSVChyZXNvdXJj
ZXMpOwotICAgIERhdGFiYXNlUmVzb3VyY2VzTWFwOjppdGVyYXRvciBkYXRhYmFzZXNFbmQgPSBt
X3Jlc291cmNlcy0+bV9tYXAuZW5kKCk7Ci0gICAgZm9yIChEYXRhYmFzZVJlc291cmNlc01hcDo6
aXRlcmF0b3IgaXQgPSBtX3Jlc291cmNlcy0+bV9tYXAuYmVnaW4oKTsgaXQgIT0gZGF0YWJhc2Vz
RW5kOyArK2l0KQotICAgICAgICBpdC0+c2Vjb25kLT5iaW5kKG1fZnJvbnRlbmRQcm92aWRlci0+
ZnJvbnRlbmQoKSk7CisgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JEYXRh
YmFzZUFnZW50KHRoaXMpOwogfQogCiBJbnNwZWN0b3JEYXRhYmFzZUFnZW50Ojp+SW5zcGVjdG9y
RGF0YWJhc2VBZ2VudCgpCiB7Ci0gICAgbV9mcm9udGVuZFByb3ZpZGVyLT5jbGVhckZyb250ZW5k
KCk7CisgICAgaWYgKG1fZnJvbnRlbmRQcm92aWRlcikKKyAgICAgICAgY2xlYXJGcm9udGVuZCgp
OworICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVjdG9yRGF0YWJhc2VBZ2VudCgw
KTsKIH0KIAotUGFzc093blB0cjxJbnNwZWN0b3JPZmZsaW5lUmVzb3VyY2VzQmFzZT4gSW5zcGVj
dG9yRGF0YWJhc2VBZ2VudDo6Y3JlYXRlU3RvcmFnZSgpCit2b2lkIEluc3BlY3RvckRhdGFiYXNl
QWdlbnQ6OnNldEZyb250ZW5kKEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCkKIHsKLSAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IFJlc291cmNlcygpKTsKKyAgICBtX2Zyb250ZW5kUHJvdmlkZXIg
PSBGcm9udGVuZFByb3ZpZGVyOjpjcmVhdGUoZnJvbnRlbmQpOworICAgIERhdGFiYXNlUmVzb3Vy
Y2VzTWFwOjppdGVyYXRvciBkYXRhYmFzZXNFbmQgPSBtX3Jlc291cmNlcy5lbmQoKTsKKyAgICBm
b3IgKERhdGFiYXNlUmVzb3VyY2VzTWFwOjppdGVyYXRvciBpdCA9IG1fcmVzb3VyY2VzLmJlZ2lu
KCk7IGl0ICE9IGRhdGFiYXNlc0VuZDsgKytpdCkKKyAgICAgICAgaXQtPnNlY29uZC0+YmluZChm
cm9udGVuZCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yRGF0YWJhc2VBZ2VudDo6Y2xlYXJGcm9udGVu
ZCgpCit7CisgICAgbV9mcm9udGVuZFByb3ZpZGVyLT5jbGVhckZyb250ZW5kKCk7CisgICAgbV9m
cm9udGVuZFByb3ZpZGVyLmNsZWFyKCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRGF0YWJhc2VBZ2Vu
dDo6Z2V0RGF0YWJhc2VUYWJsZU5hbWVzKGxvbmcgZGF0YWJhc2VJZCwgUmVmUHRyPEluc3BlY3Rv
ckFycmF5PiogbmFtZXMpCkBAIC0yOTYsMTggKzI4OCwxOCBAQCB2b2lkIEluc3BlY3RvckRhdGFi
YXNlQWdlbnQ6OmV4ZWN1dGVTUUwobG9uZyBkYXRhYmFzZUlkLCBjb25zdCBTdHJpbmcmIHF1ZXJ5
LCBibwogCiBEYXRhYmFzZSogSW5zcGVjdG9yRGF0YWJhc2VBZ2VudDo6ZGF0YWJhc2VGb3JJZChs
b25nIGRhdGFiYXNlSWQpCiB7Ci0gICAgRGF0YWJhc2VSZXNvdXJjZXNNYXA6Oml0ZXJhdG9yIGl0
ID0gbV9yZXNvdXJjZXMtPm1fbWFwLmZpbmQoZGF0YWJhc2VJZCk7Ci0gICAgaWYgKGl0ID09IG1f
cmVzb3VyY2VzLT5tX21hcC5lbmQoKSkKKyAgICBEYXRhYmFzZVJlc291cmNlc01hcDo6aXRlcmF0
b3IgaXQgPSBtX3Jlc291cmNlcy5maW5kKGRhdGFiYXNlSWQpOworICAgIGlmIChpdCA9PSBtX3Jl
c291cmNlcy5lbmQoKSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIGl0LT5zZWNvbmQt
PmRhdGFiYXNlKCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yRGF0YWJhc2VBZ2VudDo6c2VsZWN0RGF0
YWJhc2UoRGF0YWJhc2UqIGRhdGFiYXNlKQogewotICAgIGlmICghbV9mcm9udGVuZFByb3ZpZGVy
LT5mcm9udGVuZCgpKQorICAgIGlmICghbV9mcm9udGVuZFByb3ZpZGVyKQogICAgICAgICByZXR1
cm47CiAKLSAgICBmb3IgKERhdGFiYXNlUmVzb3VyY2VzTWFwOjppdGVyYXRvciBpdCA9IG1fcmVz
b3VyY2VzLT5tX21hcC5iZWdpbigpOyBpdCAhPSBtX3Jlc291cmNlcy0+bV9tYXAuZW5kKCk7ICsr
aXQpIHsKKyAgICBmb3IgKERhdGFiYXNlUmVzb3VyY2VzTWFwOjppdGVyYXRvciBpdCA9IG1fcmVz
b3VyY2VzLmJlZ2luKCk7IGl0ICE9IG1fcmVzb3VyY2VzLmVuZCgpOyArK2l0KSB7CiAgICAgICAg
IGlmIChpdC0+c2Vjb25kLT5kYXRhYmFzZSgpID09IGRhdGFiYXNlKSB7CiAgICAgICAgICAgICBt
X2Zyb250ZW5kUHJvdmlkZXItPmZyb250ZW5kKCktPnNlbGVjdERhdGFiYXNlKGl0LT5maXJzdCk7
CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRGF0YWJhc2VBZ2VudC5oCmluZGV4IDQwNzFjYTczZmYzNzFkNTAzZTk1NTNjZDZiMjk5
NjQ0OTBkZjc2YmEuLmRmYjA1MTAyZWM5YWNiOTBmZWU5NWI5YTM0Mjg0MDBlZmFiMzkwZWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEYXRhYmFzZUFnZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRhdGFiYXNlQWdlbnQu
aApAQCAtMzYsMjUgKzM2LDI1IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERhdGFi
YXNlOwotY2xhc3MgSW5zcGVjdG9yQWdlbnQ7CiBjbGFzcyBJbnNwZWN0b3JBcnJheTsKK2NsYXNz
IEluc3BlY3RvckRhdGFiYXNlUmVzb3VyY2U7CiBjbGFzcyBJbnNwZWN0b3JGcm9udGVuZDsKLWNs
YXNzIEluc3BlY3Rvck9mZmxpbmVSZXNvdXJjZXNCYXNlOworY2xhc3MgSW5zdHJ1bWVudGluZ0Fn
ZW50czsKIAogY2xhc3MgSW5zcGVjdG9yRGF0YWJhc2VBZ2VudCB7CiBwdWJsaWM6CiAgICAgY2xh
c3MgRnJvbnRlbmRQcm92aWRlcjsKLSAgICBjbGFzcyBSZXNvdXJjZXM7CiAKLSAgICBzdGF0aWMg
UGFzc093blB0cjxJbnNwZWN0b3JEYXRhYmFzZUFnZW50PiBjcmVhdGUoSW5zcGVjdG9yT2ZmbGlu
ZVJlc291cmNlc0Jhc2UqIHN0b3JhZ2UsIEluc3BlY3RvckZyb250ZW5kKiBmcm9udGVuZCkKKyAg
ICBzdGF0aWMgUGFzc093blB0cjxJbnNwZWN0b3JEYXRhYmFzZUFnZW50PiBjcmVhdGUoSW5zdHJ1
bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cykKICAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFB0cihuZXcgSW5zcGVjdG9yRGF0YWJhc2VBZ2VudChzdG9yYWdlLCBmcm9udGVuZCkp
OworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEluc3BlY3RvckRhdGFiYXNlQWdlbnQoaW5z
dHJ1bWVudGluZ0FnZW50cykpOwogICAgIH0KKyAgICB+SW5zcGVjdG9yRGF0YWJhc2VBZ2VudCgp
OwogCi0gICAgc3RhdGljIFBhc3NPd25QdHI8SW5zcGVjdG9yT2ZmbGluZVJlc291cmNlc0Jhc2U+
IGNyZWF0ZVN0b3JhZ2UoKTsKLSAgICBzdGF0aWMgdm9pZCBjbGVhcihJbnNwZWN0b3JBZ2VudCop
OworICAgIHZvaWQgc2V0RnJvbnRlbmQoSW5zcGVjdG9yRnJvbnRlbmQqKTsKKyAgICB2b2lkIGNs
ZWFyRnJvbnRlbmQoKTsKIAotICAgIHZpcnR1YWwgfkluc3BlY3RvckRhdGFiYXNlQWdlbnQoKTsK
KyAgICB2b2lkIGNsZWFyUmVzb3VyY2VzKCk7CiAKICAgICAvLyBDYWxsZWQgZnJvbSB0aGUgZnJv
bnQtZW5kLgogICAgIHZvaWQgZ2V0RGF0YWJhc2VUYWJsZU5hbWVzKGxvbmcgZGF0YWJhc2VJZCwg
UmVmUHRyPEluc3BlY3RvckFycmF5PiogbmFtZXMpOwpAQCAtNjQsMTEgKzY0LDEzIEBAIHB1Ymxp
YzoKICAgICBEYXRhYmFzZSogZGF0YWJhc2VGb3JJZChsb25nIGRhdGFiYXNlSWQpOwogICAgIHZv
aWQgc2VsZWN0RGF0YWJhc2UoRGF0YWJhc2UqIGRhdGFiYXNlKTsKIAotICAgIHN0YXRpYyB2b2lk
IGRpZE9wZW5EYXRhYmFzZShJbnNwZWN0b3JBZ2VudCosIFBhc3NSZWZQdHI8RGF0YWJhc2U+LCBj
b25zdCBTdHJpbmcmIGRvbWFpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZl
cnNpb24pOworICAgIHZvaWQgZGlkT3BlbkRhdGFiYXNlKFBhc3NSZWZQdHI8RGF0YWJhc2U+LCBj
b25zdCBTdHJpbmcmIGRvbWFpbiwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZl
cnNpb24pOwogcHJpdmF0ZToKLSAgICBJbnNwZWN0b3JEYXRhYmFzZUFnZW50KEluc3BlY3Rvck9m
ZmxpbmVSZXNvdXJjZXNCYXNlKiwgSW5zcGVjdG9yRnJvbnRlbmQqKTsKKyAgICBleHBsaWNpdCBJ
bnNwZWN0b3JEYXRhYmFzZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqKTsKIAotICAgIFJlc291
cmNlcyogbV9yZXNvdXJjZXM7CisgICAgSW5zdHJ1bWVudGluZ0FnZW50cyogbV9pbnN0cnVtZW50
aW5nQWdlbnRzOworICAgIHR5cGVkZWYgSGFzaE1hcDxpbnQsIFJlZlB0cjxJbnNwZWN0b3JEYXRh
YmFzZVJlc291cmNlPiA+IERhdGFiYXNlUmVzb3VyY2VzTWFwOworICAgIERhdGFiYXNlUmVzb3Vy
Y2VzTWFwIG1fcmVzb3VyY2VzOwogICAgIFJlZlB0cjxGcm9udGVuZFByb3ZpZGVyPiBtX2Zyb250
ZW5kUHJvdmlkZXI7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IDVhZjUwYmM0NTk3MTcyMjI0MTdhODU3
MGU3NDk4ODRkNDk0NzAzZWIuLmVmMzExMDBlZTA0MTBjYjdlMDczNWMzMTU2YzM4MjljYTcyNzg3
NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uY3BwCkBAIC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yUHJv
ZmlsZXJBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvclJlc291cmNlQWdlbnQuaCIKICNpbmNs
dWRlICJJbnNwZWN0b3JUaW1lbGluZUFnZW50LmgiCisjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0Fn
ZW50cy5oIgogI2luY2x1ZGUgIlNjcmlwdEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIlNjcmlwdENh
bGxTdGFjay5oIgogI2luY2x1ZGUgIlhNTEh0dHBSZXF1ZXN0LmgiCkBAIC01OTMsMTQgKzU5NCwy
MCBAQCBib29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6cHJvZmlsZXJFbmFibGVkSW1wbChJ
bnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbgogI2lmIEVOQUJMRShEQVRBQkFTRSkKIHZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRPcGVuRGF0YWJhc2VJbXBsKEluc3BlY3RvckFn
ZW50KiBpbnNwZWN0b3JBZ2VudCwgUGFzc1JlZlB0cjxEYXRhYmFzZT4gZGF0YWJhc2UsIGNvbnN0
IFN0cmluZyYgZG9tYWluLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmVyc2lv
bikKIHsKLSAgICBJbnNwZWN0b3JEYXRhYmFzZUFnZW50OjpkaWRPcGVuRGF0YWJhc2UoaW5zcGVj
dG9yQWdlbnQsIGRhdGFiYXNlLCBkb21haW4sIG5hbWUsIHZlcnNpb24pOworICAgIGlmICghaW5z
cGVjdG9yQWdlbnQtPmVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChJbnNwZWN0
b3JEYXRhYmFzZUFnZW50KiBkYkFnZW50ID0gaW5zcGVjdG9yQWdlbnQtPmluc3RydW1lbnRpbmdB
Z2VudHMoKS0+aW5zcGVjdG9yRGF0YWJhc2VBZ2VudCgpKQorICAgICAgICBkYkFnZW50LT5kaWRP
cGVuRGF0YWJhc2UoZGF0YWJhc2UsIGRvbWFpbiwgbmFtZSwgdmVyc2lvbik7CiB9CiAjZW5kaWYK
IAogI2lmIEVOQUJMRShET01fU1RPUkFHRSkKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRVc2VET01TdG9yYWdlSW1wbChJbnNwZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQsIFN0
b3JhZ2VBcmVhKiBzdG9yYWdlQXJlYSwgYm9vbCBpc0xvY2FsU3RvcmFnZSwgRnJhbWUqIGZyYW1l
KQogewotICAgIEluc3BlY3RvckRPTVN0b3JhZ2VBZ2VudDo6ZGlkVXNlRE9NU3RvcmFnZShpbnNw
ZWN0b3JBZ2VudCwgc3RvcmFnZUFyZWEsIGlzTG9jYWxTdG9yYWdlLCBmcmFtZSk7CisgICAgaWYg
KCFpbnNwZWN0b3JBZ2VudC0+ZW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisgICAgaWYgKElu
c3BlY3RvckRPTVN0b3JhZ2VBZ2VudCogZG9tU3RvcmFnZUFnZW50ID0gaW5zcGVjdG9yQWdlbnQt
Pmluc3RydW1lbnRpbmdBZ2VudHMoKS0+aW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50KCkpCisgICAg
ICAgIGRvbVN0b3JhZ2VBZ2VudC0+ZGlkVXNlRE9NU3RvcmFnZShzdG9yYWdlQXJlYSwgaXNMb2Nh
bFN0b3JhZ2UsIGZyYW1lKTsKIH0KICNlbmRpZgogCg==
</data>
<flag name="review"
          id="74953"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>