<?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>46166</bug_id>
          
          <creation_ts>2010-09-21 00:06:46 -0700</creation_ts>
          <short_desc>Web Inspector: Elements panel does not reflect changes in the text node values.</short_desc>
          <delta_ts>2010-09-22 06:03:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>bweinstein</cc>
    
    <cc>commit-queue</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>ojan</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>282125</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-09-21 00:06:46 -0700</bug_when>
    <thetext>Should be fairly easy to fix. We now do direct calls to inspector instead of using dom listeners.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282348</commentid>
    <comment_count>1</comment_count>
      <attachid>68248</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-09-21 09:21:22 -0700</bug_when>
    <thetext>Created attachment 68248
[PATCH] Proposed change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282355</commentid>
    <comment_count>2</comment_count>
      <attachid>68248</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-09-21 09:36:49 -0700</bug_when>
    <thetext>Comment on attachment 68248
[PATCH] Proposed change.

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

&gt; WebCore/dom/CharacterData.cpp:201
&gt; +    InspectorController::characterDataModified(this);

I&apos;d rather guard this call with #if ENABLED(INSPECTOR)

&gt; WebCore/inspector/front-end/DOMAgent.js:391
&gt; +        node.textContent = textContent;

textContent doesn&apos;t seem to be defined here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282375</commentid>
    <comment_count>3</comment_count>
      <attachid>68248</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2010-09-21 09:57:39 -0700</bug_when>
    <thetext>Comment on attachment 68248
[PATCH] Proposed change.

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

&gt; WebCore/inspector/InspectorController.h:461
&gt; +#endif

This might need an #else with an UNUSED_PARAM(characterData) looking at how its defined.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282391</commentid>
    <comment_count>4</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-09-21 10:14:22 -0700</bug_when>
    <thetext>&gt; This might need an #else with an UNUSED_PARAM(characterData) looking at how its defined.

Somehow it works just like that for sibling methods...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282393</commentid>
    <comment_count>5</comment_count>
      <attachid>68257</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-09-21 10:20:27 -0700</bug_when>
    <thetext>Created attachment 68257
[PATCH] Change to land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282891</commentid>
    <comment_count>6</comment_count>
      <attachid>68257</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-22 06:03:10 -0700</bug_when>
    <thetext>Comment on attachment 68257
[PATCH] Change to land.

Clearing flags on attachment: 68257

Committed r68036: &lt;http://trac.webkit.org/changeset/68036&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282892</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-22 06:03:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68248</attachid>
            <date>2010-09-21 09:21:22 -0700</date>
            <delta_ts>2010-09-21 10:20:27 -0700</delta_ts>
            <desc>[PATCH] Proposed change.</desc>
            <filename>char_data_modified</filename>
            <type>text/plain</type>
            <size>27673</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YWNmZjY3NS4uNWEwZmViMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMC0wOS0yMSAgUGF2ZWwgRmVsZG1h
biAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBFbGVtZW50cyBwYW5lbCBkb2VzIG5v
dCByZWZsZWN0IGNoYW5nZXMgdG8gdGhlIHRleHQgbm9kZSB2YWx1ZXMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjE2NgorCisgICAgICAgICogZG9t
L0NoYXJhY3RlckRhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hhcmFjdGVyRGF0YTo6ZGlz
cGF0Y2hNb2RpZmllZEV2ZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmlkbDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpjaGFyYWN0ZXJEYXRhTW9kaWZpZWRJbXBsKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6Y2hhcmFjdGVyRGF0YU1vZGlmaWVkKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yRE9NQWdlbnQ6OmNoYXJhY3RlckRhdGFNb2RpZmllZCk6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvckRPTUFnZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpFdmVudExpc3Rl
bmVySW5mbzo6RXZlbnRMaXN0ZW5lckluZm8pOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RE9NQWdlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6
Y2FzdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6Y3NzU3RvcmUpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRE9NQWdlbnQucHJvdG90eXBlLl9jaGFyYWN0ZXJEYXRhTW9kaWZpZWQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLmNoYXJhY3RlckRhdGFNb2RpZmllZCk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLl9jaGFyYWN0ZXJEYXRhTW9kaWZpZWQpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZS5fdGV4dE5vZGVFZGl0
aW5nQ29tbWl0dGVkKToKKwogMjAxMC0wOS0xOSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3
LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjY3NzQ5
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0YS5jcHAgYi9XZWJDb3JlL2Rv
bS9DaGFyYWN0ZXJEYXRhLmNwcAppbmRleCA3YWNjYmZiLi4yYzZiZGRjIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmNwcAorKysgYi9XZWJDb3JlL2RvbS9DaGFyYWN0ZXJE
YXRhLmNwcApAQCAtMjQsNiArMjQsNyBAQAogCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2lu
Y2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgi
CiAjaW5jbHVkZSAiTXV0YXRpb25FdmVudC5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKIApA
QCAtMTk3LDYgKzE5OCw3IEBAIHZvaWQgQ2hhcmFjdGVyRGF0YTo6ZGlzcGF0Y2hNb2RpZmllZEV2
ZW50KFN0cmluZ0ltcGwqIHByZXZWYWx1ZSkKICAgICBpZiAoZG9jdW1lbnQoKS0+aGFzTGlzdGVu
ZXJUeXBlKERvY3VtZW50OjpET01DSEFSQUNURVJEQVRBTU9ESUZJRURfTElTVEVORVIpKQogICAg
ICAgICBkaXNwYXRjaEV2ZW50KE11dGF0aW9uRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuRE9N
Q2hhcmFjdGVyRGF0YU1vZGlmaWVkRXZlbnQsIHRydWUsIDAsIHByZXZWYWx1ZSwgbV9kYXRhKSk7
CiAgICAgZGlzcGF0Y2hTdWJ0cmVlTW9kaWZpZWRFdmVudCgpOworICAgIEluc3BlY3RvckNvbnRy
b2xsZXI6OmNoYXJhY3RlckRhdGFNb2RpZmllZCh0aGlzKTsKIH0KIAogdm9pZCBDaGFyYWN0ZXJE
YXRhOjpjaGVja0NoYXJEYXRhT3BlcmF0aW9uKHVuc2lnbmVkIG9mZnNldCwgRXhjZXB0aW9uQ29k
ZSYgZWMpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbAppbmRleCA3ZGFkOWFmLi45ZGM0MWIwIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuaWRsCisrKyBiL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvci5pZGwKQEAgLTM3LDkgKzM3LDExIEBAIG1vZHVsZSBjb3JlIHsKICAg
ICAgICAgW25vdGlmeV0gdm9pZCBhZGROb2Rlc1RvU2VhcmNoUmVzdWx0KG91dCBBcnJheSBub2Rl
SWRzKTsKICAgICAgICAgW25vdGlmeV0gdm9pZCBhdHRyaWJ1dGVzVXBkYXRlZChvdXQgbG9uZyBp
ZCwgb3V0IEFycmF5IGF0dHJpYnV0ZXMpOwogICAgICAgICBbbm90aWZ5XSB2b2lkIGJyaW5nVG9G
cm9udCgpOworICAgICAgICBbbm90aWZ5XSB2b2lkIGNoYXJhY3RlckRhdGFNb2RpZmllZChvdXQg
bG9uZyBpZCwgb3V0IFN0cmluZyBuZXdWYWx1ZSk7CiAgICAgICAgIFtub3RpZnldIHZvaWQgY2hp
bGROb2RlQ291bnRVcGRhdGVkKG91dCBsb25nIGlkLCBvdXQgaW50IG5ld1ZhbHVlKTsKICAgICAg
ICAgW25vdGlmeV0gdm9pZCBjaGlsZE5vZGVJbnNlcnRlZChvdXQgbG9uZyBwYXJlbnRJZCwgb3V0
IGxvbmcgcHJldklkLCBvdXQgT2JqZWN0IG5vZGUpOwogICAgICAgICBbbm90aWZ5XSB2b2lkIGNo
aWxkTm9kZVJlbW92ZWQob3V0IGxvbmcgcGFyZW50SWQsIG91dCBsb25nIGlkKTsKKyAgICAgICAg
W25vdGlmeV0gdm9pZCBjb25zb2xlTWVzc2FnZXNDbGVhcmVkKCk7CiAgICAgICAgIFtub3RpZnld
IHZvaWQgZGlkQ29tbWl0TG9hZCgpOwogICAgICAgICBbbm90aWZ5XSB2b2lkIGV2YWx1YXRlRm9y
VGVzdEluRnJvbnRlbmQob3V0IGxvbmcgdGVzdENhbGxJZCwgb3V0IFN0cmluZyBzY3JpcHQpOwog
ICAgICAgICBbbm90aWZ5XSB2b2lkIGRpc2Nvbm5lY3RGcm9tQmFja2VuZCgpOwpAQCAtNTksNyAr
NjEsNiBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIFtub3RpZnldIHZvaWQgdXBkYXRlQ29uc29s
ZU1lc3NhZ2VSZXBlYXRDb3VudChvdXQgdW5zaWduZWQgbG9uZyBjb3VudCk7CiAgICAgICAgIFtu
b3RpZnldIHZvaWQgdXBkYXRlRm9jdXNlZE5vZGUob3V0IGxvbmcgbm9kZUlkKTsKICAgICAgICAg
W25vdGlmeV0gdm9pZCB1cGRhdGVSZXNvdXJjZShvdXQgVmFsdWUgcmVzb3VyY2UpOwotICAgICAg
ICBbbm90aWZ5XSB2b2lkIGNvbnNvbGVNZXNzYWdlc0NsZWFyZWQoKTsKIAogI2lmIGRlZmluZWQo
RU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICYmIEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VS
CiAgICAgICAgIFtub3RpZnldIHZvaWQgYWRkUHJvZmlsZUhlYWRlcihvdXQgT2JqZWN0IGhlYWRl
cik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNw
cCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IDczMTI2
ZDcuLjEzZWZiMGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRy
b2xsZXIuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3Bw
CkBAIC0yMDk4LDYgKzIwOTgsMTEgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRNb2Rp
ZnlET01BdHRySW1wbChFbGVtZW50KiBlbGVtZW50KQogICAgICAgICBtX2RvbUFnZW50LT5kaWRN
b2RpZnlET01BdHRyKGVsZW1lbnQpOwogfQogCit2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmNo
YXJhY3RlckRhdGFNb2RpZmllZEltcGwoQ2hhcmFjdGVyRGF0YSogY2hhcmFjdGVyRGF0YSkKK3sK
KyAgICBpZiAobV9kb21BZ2VudCkKKyAgICAgICAgbV9kb21BZ2VudC0+Y2hhcmFjdGVyRGF0YU1v
ZGlmaWVkKGNoYXJhY3RlckRhdGEpOworfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaCBiL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAppbmRleCA2MDUyM2I2Li5lMzk3NTZl
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKKysr
IGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCkBAIC0yOSw2ICsyOSw3
IEBACiAjaWZuZGVmIEluc3BlY3RvckNvbnRyb2xsZXJfaAogI2RlZmluZSBJbnNwZWN0b3JDb250
cm9sbGVyX2gKIAorI2luY2x1ZGUgIkNoYXJhY3RlckRhdGEuaCIKICNpbmNsdWRlICJDb25zb2xl
LmgiCiAjaW5jbHVkZSAiQ29va2llLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgpAQCAtNDUsNiAr
NDYsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDYWNoZWRSZXNvdXJjZTsKK2Ns
YXNzIENoYXJhY3RlckRhdGE7CiBjbGFzcyBDb25zb2xlTWVzc2FnZTsKIGNsYXNzIERhdGFiYXNl
OwogY2xhc3MgRG9jdW1lbnQ7CkBAIC0xOTksNiArMjAxLDcgQEAgcHVibGljOgogICAgIHN0YXRp
YyB2b2lkIHdpbGxSZW1vdmVET01Ob2RlKE5vZGUqKTsKICAgICBzdGF0aWMgdm9pZCB3aWxsTW9k
aWZ5RE9NQXR0cihFbGVtZW50Kik7CiAgICAgc3RhdGljIHZvaWQgZGlkTW9kaWZ5RE9NQXR0cihF
bGVtZW50Kik7CisgICAgc3RhdGljIHZvaWQgY2hhcmFjdGVyRGF0YU1vZGlmaWVkKENoYXJhY3Rl
ckRhdGEqKTsKIAogI2lmIEVOQUJMRShXT1JLRVJTKQogICAgIGVudW0gV29ya2VyQWN0aW9uIHsg
V29ya2VyQ3JlYXRlZCwgV29ya2VyRGVzdHJveWVkIH07CkBAIC0zMzYsNiArMzM5LDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGRpZFJlbW92ZURPTU5vZGVJbXBsKE5vZGUqKTsKICAgICB2b2lkIHdp
bGxNb2RpZnlET01BdHRySW1wbChFbGVtZW50Kik7CiAgICAgdm9pZCBkaWRNb2RpZnlET01BdHRy
SW1wbChFbGVtZW50Kik7CisgICAgdm9pZCBjaGFyYWN0ZXJEYXRhTW9kaWZpZWRJbXBsKENoYXJh
Y3RlckRhdGEqKTsKIAogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAgIGZyaWVu
ZCBjbGFzcyBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OwpAQCAtNDQ5LDYgKzQ1MywxNCBAQCBpbmxp
bmUgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRNb2RpZnlET01BdHRyKEVsZW1lbnQqIGVs
ZW1lbnQpCiAjZW5kaWYKIH0KIAoraW5saW5lIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6Y2hh
cmFjdGVyRGF0YU1vZGlmaWVkKENoYXJhY3RlckRhdGEqIGNoYXJhY3RlckRhdGEpCit7CisjaWYg
RU5BQkxFKElOU1BFQ1RPUikKKyAgICBpZiAoSW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdG9y
Q29udHJvbGxlciA9IGluc3BlY3RvckNvbnRyb2xsZXJGb3JOb2RlKGNoYXJhY3RlckRhdGEpKQor
ICAgICAgICBpbnNwZWN0b3JDb250cm9sbGVyLT5jaGFyYWN0ZXJEYXRhTW9kaWZpZWRJbXBsKGNo
YXJhY3RlckRhdGEpOworI2VuZGlmCit9CisKIGlubGluZSBJbnNwZWN0b3JDb250cm9sbGVyKiBJ
bnNwZWN0b3JDb250cm9sbGVyOjppbnNwZWN0b3JDb250cm9sbGVyRm9yTm9kZShOb2RlKiBub2Rl
KQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JET01BZ2VudC5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01B
Z2VudC5jcHAKaW5kZXggZjFkZjViMC4uZjUxZGE3MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckRPTUFnZW50LmNwcApAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIkNTU1N0eWxlUnVs
ZS5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2VsZWN0b3IuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNo
ZWV0LmgiCisjaW5jbHVkZSAiQ2hhcmFjdGVyRGF0YS5oIgogI2luY2x1ZGUgIkNvbnRhaW5lck5v
ZGUuaCIKICNpbmNsdWRlICJDb29raWUuaCIKICNpbmNsdWRlICJDb29raWVKYXIuaCIKQEAgLTEx
MjAsNiArMTEyMSwxNCBAQCB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpkaWRNb2RpZnlET01BdHRy
KEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgbV9mcm9udGVuZC0+YXR0cmlidXRlc1VwZGF0ZWQoaWQs
IGJ1aWxkQXJyYXlGb3JFbGVtZW50QXR0cmlidXRlcyhlbGVtZW50KSk7CiB9CiAKK3ZvaWQgSW5z
cGVjdG9yRE9NQWdlbnQ6OmNoYXJhY3RlckRhdGFNb2RpZmllZChDaGFyYWN0ZXJEYXRhKiBjaGFy
YWN0ZXJEYXRhKQoreworICAgIGxvbmcgaWQgPSBtX2RvY3VtZW50Tm9kZVRvSWRNYXAuZ2V0KGNo
YXJhY3RlckRhdGEpOworICAgIGlmICghaWQpCisgICAgICAgIHJldHVybjsKKyAgICBtX2Zyb250
ZW5kLT5jaGFyYWN0ZXJEYXRhTW9kaWZpZWQoaWQsIGNoYXJhY3RlckRhdGEtPmRhdGEoKSk7Cit9
CisKIGJvb2wgSW5zcGVjdG9yRE9NQWdlbnQ6Omhhc0JyZWFrcG9pbnQoTm9kZSogbm9kZSwgbG9u
ZyB0eXBlKQogewogICAgIHVpbnQzMl90IHJvb3RCaXQgPSAxIDw8IHR5cGU7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oIGIvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRE9NQWdlbnQuaAppbmRleCA3ZDg2OTk3Li5jZDA1YjQ2IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCisrKyBiL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgKQEAgLTQ3LDE3OCArNDcsMTgwIEBACiAjaW5jbHVk
ZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLSAgICBj
bGFzcyBDb250YWluZXJOb2RlOwotICAgIGNsYXNzIENTU1J1bGU7Ci0gICAgY2xhc3MgQ1NTUnVs
ZUxpc3Q7Ci0gICAgY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvbjsKLSAgICBjbGFzcyBDU1NTdHls
ZVJ1bGU7Ci0gICAgY2xhc3MgQ1NTU3R5bGVTaGVldDsKLSAgICBjbGFzcyBFbGVtZW50OwotICAg
IGNsYXNzIEV2ZW50OwotICAgIGNsYXNzIEluc3BlY3RvckRPTUFnZW50OwotICAgIGNsYXNzIElu
c3BlY3RvckZyb250ZW5kOwotICAgIGNsYXNzIE1hdGNoSm9iOwotICAgIGNsYXNzIE5hbWVOb2Rl
TWFwOwotICAgIGNsYXNzIE5vZGU7Ci0gICAgY2xhc3MgUGFnZTsKK2NsYXNzIENvbnRhaW5lck5v
ZGU7CitjbGFzcyBDU1NSdWxlOworY2xhc3MgQ1NTUnVsZUxpc3Q7CitjbGFzcyBDU1NTdHlsZURl
Y2xhcmF0aW9uOworY2xhc3MgQ1NTU3R5bGVSdWxlOworY2xhc3MgQ1NTU3R5bGVTaGVldDsKK2Ns
YXNzIENoYXJhY3RlckRhdGE7CitjbGFzcyBFbGVtZW50OworY2xhc3MgRXZlbnQ7CitjbGFzcyBJ
bnNwZWN0b3JET01BZ2VudDsKK2NsYXNzIEluc3BlY3RvckZyb250ZW5kOworY2xhc3MgTWF0Y2hK
b2I7CitjbGFzcyBOYW1lTm9kZU1hcDsKK2NsYXNzIE5vZGU7CitjbGFzcyBQYWdlOwogCiAjaWYg
RU5BQkxFKElOU1BFQ1RPUikKIAotICAgIHN0cnVjdCBFdmVudExpc3RlbmVySW5mbyB7Ci0gICAg
ICAgIEV2ZW50TGlzdGVuZXJJbmZvKE5vZGUqIG5vZGUsIGNvbnN0IEF0b21pY1N0cmluZyYgZXZl
bnRUeXBlLCBjb25zdCBFdmVudExpc3RlbmVyVmVjdG9yJiBldmVudExpc3RlbmVyVmVjdG9yKQot
ICAgICAgICAgICAgOiBub2RlKG5vZGUpCi0gICAgICAgICAgICAsIGV2ZW50VHlwZShldmVudFR5
cGUpCi0gICAgICAgICAgICAsIGV2ZW50TGlzdGVuZXJWZWN0b3IoZXZlbnRMaXN0ZW5lclZlY3Rv
cikKLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICAgICAgTm9kZSogbm9kZTsKLSAgICAgICAg
Y29uc3QgQXRvbWljU3RyaW5nIGV2ZW50VHlwZTsKLSAgICAgICAgY29uc3QgRXZlbnRMaXN0ZW5l
clZlY3RvciBldmVudExpc3RlbmVyVmVjdG9yOwotICAgIH07Ci0KLSAgICBjbGFzcyBJbnNwZWN0
b3JET01BZ2VudCA6IHB1YmxpYyBFdmVudExpc3RlbmVyIHsKLSAgICBwdWJsaWM6Ci0gICAgICAg
IHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3RvckRPTUFnZW50PiBjcmVhdGUoSW5zcGVjdG9yQ1NT
U3RvcmUqIGNzc1N0b3JlLCBJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW5zcGVjdG9yRE9NQWdlbnQoY3NzU3Rv
cmUsIGZyb250ZW5kKSk7Ci0gICAgICAgIH0KLQotICAgICAgICBzdGF0aWMgY29uc3QgSW5zcGVj
dG9yRE9NQWdlbnQqIGNhc3QoY29uc3QgRXZlbnRMaXN0ZW5lciogbGlzdGVuZXIpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHJldHVybiBsaXN0ZW5lci0+dHlwZSgpID09IEluc3BlY3RvckRPTUFn
ZW50VHlwZQotICAgICAgICAgICAgICAgID8gc3RhdGljX2Nhc3Q8Y29uc3QgSW5zcGVjdG9yRE9N
QWdlbnQqPihsaXN0ZW5lcikKLSAgICAgICAgICAgICAgICA6IDA7Ci0gICAgICAgIH0KLQotICAg
ICAgICBJbnNwZWN0b3JET01BZ2VudChJbnNwZWN0b3JDU1NTdG9yZSogY3NzU3RvcmUsIEluc3Bl
Y3RvckZyb250ZW5kKiBmcm9udGVuZCk7Ci0gICAgICAgIH5JbnNwZWN0b3JET01BZ2VudCgpOwot
Ci0gICAgICAgIHZvaWQgcmVzZXQoKTsKLQotICAgICAgICB2aXJ0dWFsIGJvb2wgb3BlcmF0b3I9
PShjb25zdCBFdmVudExpc3RlbmVyJiBvdGhlcik7Ci0KLSAgICAgICAgLy8gTWV0aG9kcyBjYWxs
ZWQgZnJvbSB0aGUgZnJvbnRlbmQgZm9yIERPTSBub2RlcyBpbnNwZWN0aW9uLgotICAgICAgICB2
b2lkIGdldENoaWxkTm9kZXMobG9uZyBub2RlSWQpOwotICAgICAgICB2b2lkIHNldEF0dHJpYnV0
ZShsb25nIGVsZW1lbnRJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVl
LCBib29sKiBzdWNjZXNzKTsKLSAgICAgICAgdm9pZCByZW1vdmVBdHRyaWJ1dGUobG9uZyBlbGVt
ZW50SWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCogc3VjY2Vzcyk7Ci0gICAgICAgIHZvaWQg
cmVtb3ZlTm9kZShsb25nIG5vZGVJZCwgbG9uZyogb3V0Tm9kZUlkKTsKLSAgICAgICAgdm9pZCBj
aGFuZ2VUYWdOYW1lKGxvbmcgbm9kZUlkLCBjb25zdCBTdHJpbmcmIHRhZ05hbWUsIGxvbmcqIG5l
d0lkKTsKLSAgICAgICAgdm9pZCBnZXRPdXRlckhUTUwobG9uZyBub2RlSWQsIFdURjo6U3RyaW5n
KiBvdXRlckhUTUwpOwotICAgICAgICB2b2lkIHNldE91dGVySFRNTChsb25nIG5vZGVJZCwgY29u
c3QgU3RyaW5nJiBvdXRlckhUTUwsIGxvbmcqIG5ld0lkKTsKLSAgICAgICAgdm9pZCBzZXRUZXh0
Tm9kZVZhbHVlKGxvbmcgbm9kZUlkLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sKiBzdWNjZXNz
KTsKLSAgICAgICAgdm9pZCBnZXRFdmVudExpc3RlbmVyc0Zvck5vZGUobG9uZyBub2RlSWQsIGxv
bmcqIG91dE5vZGVJZCwgUmVmUHRyPEluc3BlY3RvckFycmF5PiogbGlzdGVuZXJzQXJyYXkpOwot
ICAgICAgICB2b2lkIGFkZEluc3BlY3RlZE5vZGUobG9uZyBub2RlSWQpOwotICAgICAgICB2b2lk
IHBlcmZvcm1TZWFyY2goY29uc3QgU3RyaW5nJiB3aGl0ZXNwYWNlVHJpbW1lZFF1ZXJ5LCBib29s
IHJ1blN5bmNocm9ub3VzbHkpOwotICAgICAgICB2b2lkIHNlYXJjaENhbmNlbGVkKCk7Ci0gICAg
ICAgIHZvaWQgc2V0RE9NQnJlYWtwb2ludChsb25nIG5vZGVJZCwgbG9uZyB0eXBlKTsKLSAgICAg
ICAgdm9pZCByZW1vdmVET01CcmVha3BvaW50KGxvbmcgbm9kZUlkLCBsb25nIHR5cGUpOwotICAg
ICAgICBib29sIHNob3VsZEJyZWFrT25Ob2RlSW5zZXJ0aW9uKE5vZGUqIG5vZGUsIE5vZGUqIHBh
cmVudCwgUGFzc1JlZlB0cjxJbnNwZWN0b3JWYWx1ZT4qIGRldGFpbHMpOwotICAgICAgICBib29s
IHNob3VsZEJyZWFrT25Ob2RlUmVtb3ZhbChOb2RlKiBub2RlLCBQYXNzUmVmUHRyPEluc3BlY3Rv
clZhbHVlPiogZGV0YWlscyk7Ci0gICAgICAgIGJvb2wgc2hvdWxkQnJlYWtPbkF0dHJpYnV0ZU1v
ZGlmaWNhdGlvbihFbGVtZW50KiBlbGVtZW50LCBQYXNzUmVmUHRyPEluc3BlY3RvclZhbHVlPiog
ZGV0YWlscyk7Ci0KLSAgICAgICAgLy8gTWV0aG9kcyBjYWxsZWQgZnJvbSB0aGUgZnJvbnRlbmQg
Zm9yIENTUyBzdHlsZXMgaW5zcGVjdGlvbi4KLSAgICAgICAgdm9pZCBnZXRTdHlsZXMobG9uZyBu
b2RlSWQsIGJvb2wgYXV0aG9yT25seSwgUmVmUHRyPEluc3BlY3RvclZhbHVlPiogc3R5bGVzKTsK
LSAgICAgICAgdm9pZCBnZXRBbGxTdHlsZXMoUmVmUHRyPEluc3BlY3RvckFycmF5Piogc3R5bGVz
KTsKLSAgICAgICAgdm9pZCBnZXRJbmxpbmVTdHlsZShsb25nIG5vZGVJZCwgUmVmUHRyPEluc3Bl
Y3RvclZhbHVlPiogc3R5bGVzKTsKLSAgICAgICAgdm9pZCBnZXRDb21wdXRlZFN0eWxlKGxvbmcg
bm9kZUlkLCBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+KiBzdHlsZXMpOwotICAgICAgICB2b2lkIGdl
dFN0eWxlU2hlZXQobG9uZyBzdHlsZVNoZWV0SWQsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiBz
dHlsZVNoZWV0T2JqZWN0KTsKLSAgICAgICAgdm9pZCBnZXRTdHlsZVNvdXJjZURhdGEobG9uZyBz
dHlsZUlkLCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogZGF0YU9iamVjdCk7Ci0gICAgICAgIHZv
aWQgYXBwbHlTdHlsZVRleHQobG9uZyBzdHlsZUlkLCBjb25zdCBTdHJpbmcmIHN0eWxlVGV4dCwg
Y29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIGJvb2wqIHN1Y2Nlc3MsIFJlZlB0cjxJbnNwZWN0
b3JWYWx1ZT4qIHN0eWxlT2JqZWN0LCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+KiBjaGFuZ2VkUHJv
cGVydGllcyk7Ci0gICAgICAgIHZvaWQgc2V0U3R5bGVUZXh0KGxvbmcgc3R5bGVJZCwgY29uc3Qg
U3RyaW5nJiBjc3NUZXh0LCBib29sKiBzdWNjZXNzKTsKLSAgICAgICAgdm9pZCBzZXRTdHlsZVBy
b3BlcnR5KGxvbmcgc3R5bGVJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZh
bHVlLCBib29sKiBzdWNjZXNzKTsKLSAgICAgICAgdm9pZCB0b2dnbGVTdHlsZUVuYWJsZWQobG9u
ZyBzdHlsZUlkLCBjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgYm9vbCBkaXNhYmxlZCwgUmVm
UHRyPEluc3BlY3RvclZhbHVlPiogc3R5bGVPYmplY3QpOwotICAgICAgICB2b2lkIHNldFJ1bGVT
ZWxlY3Rvcihsb25nIHJ1bGVJZCwgY29uc3QgU3RyaW5nJiBzZWxlY3RvciwgbG9uZyBzZWxlY3Rl
ZE5vZGVJZCwgUmVmUHRyPEluc3BlY3RvclZhbHVlPiogcnVsZU9iamVjdCwgYm9vbCogc2VsZWN0
b3JBZmZlY3RzTm9kZSk7Ci0gICAgICAgIHZvaWQgYWRkUnVsZShjb25zdCBTdHJpbmcmIHNlbGVj
dG9yLCBsb25nIHNlbGVjdGVkTm9kZUlkLCBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+KiBydWxlT2Jq
ZWN0LCBib29sKiBzZWxlY3RvckFmZmVjdHNOb2RlKTsKLSAgICAgICAgdm9pZCBnZXRTdXBwb3J0
ZWRDU1NQcm9wZXJ0aWVzKFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIGNzc1Byb3BlcnRpZXMpOwot
Ci0gICAgICAgIC8vIE1ldGhvZHMgY2FsbGVkIGZyb20gdGhlIEluc3BlY3RvckNvbnRyb2xsZXIu
Ci0gICAgICAgIHZvaWQgc2V0RG9jdW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KTsKLSAgICAgICAg
dm9pZCByZWxlYXNlRGFuZ2xpbmdOb2RlcygpOwotCi0gICAgICAgIHZvaWQgZGlkSW5zZXJ0RE9N
Tm9kZShOb2RlKik7Ci0gICAgICAgIHZvaWQgZGlkUmVtb3ZlRE9NTm9kZShOb2RlKik7Ci0gICAg
ICAgIHZvaWQgZGlkTW9kaWZ5RE9NQXR0cihFbGVtZW50Kik7Ci0KLSAgICAgICAgTm9kZSogbm9k
ZUZvcklkKGxvbmcgbm9kZUlkKTsKLSAgICAgICAgbG9uZyBwdXNoTm9kZVBhdGhUb0Zyb250ZW5k
KE5vZGUqIG5vZGUpOwotICAgICAgICB2b2lkIHB1c2hDaGlsZE5vZGVzVG9Gcm9udGVuZChsb25n
IG5vZGVJZCk7Ci0gICAgICAgIHZvaWQgcHVzaE5vZGVCeVBhdGhUb0Zyb250ZW5kKGNvbnN0IFN0
cmluZyYgcGF0aCwgbG9uZyogbm9kZUlkKTsKLSAgICAgICAgbG9uZyBpbnNwZWN0ZWROb2RlKHVu
c2lnbmVkIGxvbmcgbnVtKTsKLSAgICAgICAgdm9pZCBjb3B5Tm9kZShsb25nIG5vZGVJZCk7Ci0K
LSAgICBwcml2YXRlOgotICAgICAgICB2b2lkIHN0YXJ0TGlzdGVuaW5nKERvY3VtZW50KiBkb2N1
bWVudCk7Ci0gICAgICAgIHZvaWQgc3RvcExpc3RlbmluZyhEb2N1bWVudCogZG9jdW1lbnQpOwot
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiwgRXZlbnQqIGV2ZW50KTsKLQotICAgICAgICAvLyBOb2RlLXJlbGF0ZWQgbWV0aG9kcy4KLSAg
ICAgICAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxOb2RlPiwgbG9uZz4gTm9kZVRvSWRNYXA7Ci0g
ICAgICAgIGxvbmcgYmluZChOb2RlKiBub2RlLCBOb2RlVG9JZE1hcCogbm9kZXNNYXApOwotICAg
ICAgICB2b2lkIHVuYmluZChOb2RlKiBub2RlLCBOb2RlVG9JZE1hcCogbm9kZXNNYXApOwotCi0g
ICAgICAgIGJvb2wgcHVzaERvY3VtZW50VG9Gcm9udGVuZCgpOwotCi0gICAgICAgIGJvb2wgaGFz
QnJlYWtwb2ludChOb2RlKiBub2RlLCBsb25nIHR5cGUpOwotICAgICAgICB2b2lkIHVwZGF0ZVN1
YnRyZWVCcmVha3BvaW50cyhOb2RlKiByb290LCB1aW50MzJfdCByb290TWFzaywgYm9vbCB2YWx1
ZSk7Ci0gICAgICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9yVmFsdWU+IGRlc2NyaXB0aW9uRm9yRE9N
RXZlbnQoTm9kZSogdGFyZ2V0LCBsb25nIGJyZWFrcG9pbnRUeXBlLCBib29sIGluc2VydGlvbik7
Ci0KLSAgICAgICAgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9yQXR0
cmlidXRlU3R5bGVzKEVsZW1lbnQqIGVsZW1lbnQpOwotICAgICAgICBQYXNzUmVmUHRyPEluc3Bl
Y3RvckFycmF5PiBidWlsZEFycmF5Rm9yQ1NTUnVsZXMoRG9jdW1lbnQqIG93bmVyRG9jdW1lbnQs
IENTU1J1bGVMaXN0Kik7Ci0gICAgICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IGJ1aWxk
QXJyYXlGb3JQc2V1ZG9FbGVtZW50cyhFbGVtZW50KiBlbGVtZW50LCBib29sIGF1dGhvck9ubHkp
OwotCi0gICAgICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBidWlsZE9iamVjdEZvck5v
ZGUoTm9kZSogbm9kZSwgaW50IGRlcHRoLCBOb2RlVG9JZE1hcCogbm9kZXNNYXApOwotICAgICAg
ICBQYXNzUmVmUHRyPEluc3BlY3RvckFycmF5PiBidWlsZEFycmF5Rm9yRWxlbWVudEF0dHJpYnV0
ZXMoRWxlbWVudCogZWxlbWVudCk7Ci0gICAgICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9yQXJyYXk+
IGJ1aWxkQXJyYXlGb3JDb250YWluZXJDaGlsZHJlbihOb2RlKiBjb250YWluZXIsIGludCBkZXB0
aCwgTm9kZVRvSWRNYXAqIG5vZGVzTWFwKTsKLSAgICAgICAgUGFzc1JlZlB0cjxJbnNwZWN0b3JP
YmplY3Q+IGJ1aWxkT2JqZWN0Rm9yRXZlbnRMaXN0ZW5lcihjb25zdCBSZWdpc3RlcmVkRXZlbnRM
aXN0ZW5lciYgcmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIsIGNvbnN0IEF0b21pY1N0cmluZyYgZXZl
bnRUeXBlLCBOb2RlKiBub2RlKTsKLQotICAgICAgICAvLyBXZSByZXByZXNlbnQgZW1iZWRkZWQg
ZG9tcyBhcyBhIHBhcnQgb2YgdGhlIHNhbWUgaGllcmFyY2h5LiBIZW5jZSB3ZSB0cmVhdCBjaGls
ZHJlbiBvZiBmcmFtZSBvd25lcnMgZGlmZmVyZW50bHkuCi0gICAgICAgIC8vIFdlIGFsc28gc2tp
cCB3aGl0ZXNwYWNlIHRleHQgbm9kZXMgY29uZGl0aW9uYWxseS4gRm9sbG93aW5nIG1ldGhvZHMg
ZW5jYXBzdWxhdGUgdGhlc2Ugc3BlY2lmaWNzLgotICAgICAgICBOb2RlKiBpbm5lckZpcnN0Q2hp
bGQoTm9kZSogbm9kZSk7Ci0gICAgICAgIE5vZGUqIGlubmVyTmV4dFNpYmxpbmcoTm9kZSogbm9k
ZSk7Ci0gICAgICAgIE5vZGUqIGlubmVyUHJldmlvdXNTaWJsaW5nKE5vZGUqIG5vZGUpOwotICAg
ICAgICB1bnNpZ25lZCBpbm5lckNoaWxkTm9kZUNvdW50KE5vZGUqIG5vZGUpOwotICAgICAgICBO
b2RlKiBpbm5lclBhcmVudE5vZGUoTm9kZSogbm9kZSk7Ci0gICAgICAgIGJvb2wgaXNXaGl0ZXNw
YWNlKE5vZGUqIG5vZGUpOwotCi0gICAgICAgIERvY3VtZW50KiBtYWluRnJhbWVEb2N1bWVudCgp
IGNvbnN0OwotICAgICAgICBTdHJpbmcgZG9jdW1lbnRVUkxTdHJpbmcoRG9jdW1lbnQqIGRvY3Vt
ZW50KSBjb25zdDsKLSAgICAgICAgSW5zcGVjdG9yQ1NTU3RvcmUqIGNzc1N0b3JlKCkgeyByZXR1
cm4gbV9jc3NTdG9yZTsgfQotCi0gICAgICAgIHZvaWQgb25NYXRjaEpvYnNUaW1lcihUaW1lcjxJ
bnNwZWN0b3JET01BZ2VudD4qKTsKLSAgICAgICAgdm9pZCByZXBvcnROb2Rlc0FzU2VhcmNoUmVz
dWx0cyhMaXN0SGFzaFNldDxOb2RlKj4mIHJlc3VsdENvbGxlY3Rvcik7Ci0KLSAgICAgICAgUGFz
c1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9yU3R5bGUoQ1NTU3R5bGVEZWNs
YXJhdGlvbiosIGJvb2wgYmluZCk7Ci0gICAgICAgIHZvaWQgcG9wdWxhdGVPYmplY3RXaXRoU3R5
bGVQcm9wZXJ0aWVzKENTU1N0eWxlRGVjbGFyYXRpb24qLCBJbnNwZWN0b3JPYmplY3QqIHJlc3Vs
dCk7Ci0gICAgICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IGJ1aWxkQXJyYXlGb3JEaXNh
YmxlZFN0eWxlUHJvcGVydGllcyhEaXNhYmxlZFN0eWxlRGVjbGFyYXRpb24qKTsKLSAgICAgICAg
UGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9yUnVsZShEb2N1bWVudCog
b3duZXJEb2N1bWVudCwgQ1NTU3R5bGVSdWxlKik7Ci0gICAgICAgIFBhc3NSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiBidWlsZE9iamVjdEZvclN0eWxlU2hlZXQoRG9jdW1lbnQqIG93bmVyRG9jdW1l
bnQsIENTU1N0eWxlU2hlZXQqKTsKLSAgICAgICAgVmVjdG9yPFN0cmluZz4gbG9uZ2hhbmRQcm9w
ZXJ0aWVzKENTU1N0eWxlRGVjbGFyYXRpb24qLCBjb25zdCBTdHJpbmcmIHNob3J0aGFuZFByb3Bl
cnR5KTsKLSAgICAgICAgU3RyaW5nIHNob3J0aGFuZFZhbHVlKENTU1N0eWxlRGVjbGFyYXRpb24q
LCBjb25zdCBTdHJpbmcmIHNob3J0aGFuZFByb3BlcnR5KTsKLSAgICAgICAgU3RyaW5nIHNob3J0
aGFuZFByaW9yaXR5KENTU1N0eWxlRGVjbGFyYXRpb24qLCBjb25zdCBTdHJpbmcmIHNob3J0aGFu
ZFByb3BlcnR5KTsKLSAgICAgICAgYm9vbCBydWxlQWZmZWN0c05vZGUoQ1NTU3R5bGVSdWxlKiwg
Tm9kZSopOwotICAgICAgICBOb2RlKiBub2RlRm9yUGF0aChjb25zdCBTdHJpbmcmIHBhdGgpOwot
ICAgICAgICBQYXNzUmVmUHRyPEluc3BlY3RvckFycmF5PiB0b0FycmF5KGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBkYXRhKTsKLQotICAgICAgICB2b2lkIGRpc2NhcmRCaW5kaW5ncygpOwotCi0gICAg
ICAgIEluc3BlY3RvckNTU1N0b3JlKiBtX2Nzc1N0b3JlOwotICAgICAgICBJbnNwZWN0b3JGcm9u
dGVuZCogbV9mcm9udGVuZDsKLSAgICAgICAgTm9kZVRvSWRNYXAgbV9kb2N1bWVudE5vZGVUb0lk
TWFwOwotICAgICAgICAvLyBPd25zIG5vZGUgbWFwcGluZ3MgZm9yIGRhbmdsaW5nIG5vZGVzLgot
ICAgICAgICBWZWN0b3I8Tm9kZVRvSWRNYXAqPiBtX2RhbmdsaW5nTm9kZVRvSWRNYXBzOwotICAg
ICAgICBIYXNoTWFwPGxvbmcsIE5vZGUqPiBtX2lkVG9Ob2RlOwotICAgICAgICBIYXNoTWFwPGxv
bmcsIE5vZGVUb0lkTWFwKj4gbV9pZFRvTm9kZXNNYXA7Ci0gICAgICAgIEhhc2hTZXQ8bG9uZz4g
bV9jaGlsZHJlblJlcXVlc3RlZDsKLSAgICAgICAgbG9uZyBtX2xhc3ROb2RlSWQ7Ci0gICAgICAg
IExpc3RIYXNoU2V0PFJlZlB0cjxEb2N1bWVudD4gPiBtX2RvY3VtZW50czsKLSAgICAgICAgRGVx
dWU8TWF0Y2hKb2IqPiBtX3BlbmRpbmdNYXRjaEpvYnM7Ci0gICAgICAgIFRpbWVyPEluc3BlY3Rv
ckRPTUFnZW50PiBtX21hdGNoSm9ic1RpbWVyOwotICAgICAgICBIYXNoU2V0PFJlZlB0cjxOb2Rl
PiA+IG1fc2VhcmNoUmVzdWx0czsKLSAgICAgICAgVmVjdG9yPGxvbmc+IG1faW5zcGVjdGVkTm9k
ZXM7Ci0gICAgICAgIEhhc2hNYXA8Tm9kZSosIHVpbnQzMl90PiBtX2JyZWFrcG9pbnRzOwotICAg
IH07CitzdHJ1Y3QgRXZlbnRMaXN0ZW5lckluZm8geworICAgIEV2ZW50TGlzdGVuZXJJbmZvKE5v
ZGUqIG5vZGUsIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBFdmVudExpc3Rl
bmVyVmVjdG9yJiBldmVudExpc3RlbmVyVmVjdG9yKQorICAgICAgICA6IG5vZGUobm9kZSkKKyAg
ICAgICAgLCBldmVudFR5cGUoZXZlbnRUeXBlKQorICAgICAgICAsIGV2ZW50TGlzdGVuZXJWZWN0
b3IoZXZlbnRMaXN0ZW5lclZlY3RvcikKKyAgICB7CisgICAgfQorCisgICAgTm9kZSogbm9kZTsK
KyAgICBjb25zdCBBdG9taWNTdHJpbmcgZXZlbnRUeXBlOworICAgIGNvbnN0IEV2ZW50TGlzdGVu
ZXJWZWN0b3IgZXZlbnRMaXN0ZW5lclZlY3RvcjsKK307CisKK2NsYXNzIEluc3BlY3RvckRPTUFn
ZW50IDogcHVibGljIEV2ZW50TGlzdGVuZXIgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEluc3BlY3RvckRPTUFnZW50PiBjcmVhdGUoSW5zcGVjdG9yQ1NTU3RvcmUqIGNzc1N0b3Jl
LCBJbnNwZWN0b3JGcm9udGVuZCogZnJvbnRlbmQpCisgICAgeworICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEluc3BlY3RvckRPTUFnZW50KGNzc1N0b3JlLCBmcm9udGVuZCkpOworICAgIH0K
KworICAgIHN0YXRpYyBjb25zdCBJbnNwZWN0b3JET01BZ2VudCogY2FzdChjb25zdCBFdmVudExp
c3RlbmVyKiBsaXN0ZW5lcikKKyAgICB7CisgICAgICAgIHJldHVybiBsaXN0ZW5lci0+dHlwZSgp
ID09IEluc3BlY3RvckRPTUFnZW50VHlwZQorICAgICAgICAgICAgPyBzdGF0aWNfY2FzdDxjb25z
dCBJbnNwZWN0b3JET01BZ2VudCo+KGxpc3RlbmVyKQorICAgICAgICAgICAgOiAwOworICAgIH0K
KworICAgIEluc3BlY3RvckRPTUFnZW50KEluc3BlY3RvckNTU1N0b3JlKiBjc3NTdG9yZSwgSW5z
cGVjdG9yRnJvbnRlbmQqIGZyb250ZW5kKTsKKyAgICB+SW5zcGVjdG9yRE9NQWdlbnQoKTsKKwor
ICAgIHZvaWQgcmVzZXQoKTsKKworICAgIHZpcnR1YWwgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEV2
ZW50TGlzdGVuZXImIG90aGVyKTsKKworICAgIC8vIE1ldGhvZHMgY2FsbGVkIGZyb20gdGhlIGZy
b250ZW5kIGZvciBET00gbm9kZXMgaW5zcGVjdGlvbi4KKyAgICB2b2lkIGdldENoaWxkTm9kZXMo
bG9uZyBub2RlSWQpOworICAgIHZvaWQgc2V0QXR0cmlidXRlKGxvbmcgZWxlbWVudElkLCBjb25z
dCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUsIGJvb2wqIHN1Y2Nlc3MpOworICAg
IHZvaWQgcmVtb3ZlQXR0cmlidXRlKGxvbmcgZWxlbWVudElkLCBjb25zdCBTdHJpbmcmIG5hbWUs
IGJvb2wqIHN1Y2Nlc3MpOworICAgIHZvaWQgcmVtb3ZlTm9kZShsb25nIG5vZGVJZCwgbG9uZyog
b3V0Tm9kZUlkKTsKKyAgICB2b2lkIGNoYW5nZVRhZ05hbWUobG9uZyBub2RlSWQsIGNvbnN0IFN0
cmluZyYgdGFnTmFtZSwgbG9uZyogbmV3SWQpOworICAgIHZvaWQgZ2V0T3V0ZXJIVE1MKGxvbmcg
bm9kZUlkLCBXVEY6OlN0cmluZyogb3V0ZXJIVE1MKTsKKyAgICB2b2lkIHNldE91dGVySFRNTChs
b25nIG5vZGVJZCwgY29uc3QgU3RyaW5nJiBvdXRlckhUTUwsIGxvbmcqIG5ld0lkKTsKKyAgICB2
b2lkIHNldFRleHROb2RlVmFsdWUobG9uZyBub2RlSWQsIGNvbnN0IFN0cmluZyYgdmFsdWUsIGJv
b2wqIHN1Y2Nlc3MpOworICAgIHZvaWQgZ2V0RXZlbnRMaXN0ZW5lcnNGb3JOb2RlKGxvbmcgbm9k
ZUlkLCBsb25nKiBvdXROb2RlSWQsIFJlZlB0cjxJbnNwZWN0b3JBcnJheT4qIGxpc3RlbmVyc0Fy
cmF5KTsKKyAgICB2b2lkIGFkZEluc3BlY3RlZE5vZGUobG9uZyBub2RlSWQpOworICAgIHZvaWQg
cGVyZm9ybVNlYXJjaChjb25zdCBTdHJpbmcmIHdoaXRlc3BhY2VUcmltbWVkUXVlcnksIGJvb2wg
cnVuU3luY2hyb25vdXNseSk7CisgICAgdm9pZCBzZWFyY2hDYW5jZWxlZCgpOworICAgIHZvaWQg
c2V0RE9NQnJlYWtwb2ludChsb25nIG5vZGVJZCwgbG9uZyB0eXBlKTsKKyAgICB2b2lkIHJlbW92
ZURPTUJyZWFrcG9pbnQobG9uZyBub2RlSWQsIGxvbmcgdHlwZSk7CisgICAgYm9vbCBzaG91bGRC
cmVha09uTm9kZUluc2VydGlvbihOb2RlKiBub2RlLCBOb2RlKiBwYXJlbnQsIFBhc3NSZWZQdHI8
SW5zcGVjdG9yVmFsdWU+KiBkZXRhaWxzKTsKKyAgICBib29sIHNob3VsZEJyZWFrT25Ob2RlUmVt
b3ZhbChOb2RlKiBub2RlLCBQYXNzUmVmUHRyPEluc3BlY3RvclZhbHVlPiogZGV0YWlscyk7Cisg
ICAgYm9vbCBzaG91bGRCcmVha09uQXR0cmlidXRlTW9kaWZpY2F0aW9uKEVsZW1lbnQqIGVsZW1l
bnQsIFBhc3NSZWZQdHI8SW5zcGVjdG9yVmFsdWU+KiBkZXRhaWxzKTsKKworICAgIC8vIE1ldGhv
ZHMgY2FsbGVkIGZyb20gdGhlIGZyb250ZW5kIGZvciBDU1Mgc3R5bGVzIGluc3BlY3Rpb24uCisg
ICAgdm9pZCBnZXRTdHlsZXMobG9uZyBub2RlSWQsIGJvb2wgYXV0aG9yT25seSwgUmVmUHRyPElu
c3BlY3RvclZhbHVlPiogc3R5bGVzKTsKKyAgICB2b2lkIGdldEFsbFN0eWxlcyhSZWZQdHI8SW5z
cGVjdG9yQXJyYXk+KiBzdHlsZXMpOworICAgIHZvaWQgZ2V0SW5saW5lU3R5bGUobG9uZyBub2Rl
SWQsIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4qIHN0eWxlcyk7CisgICAgdm9pZCBnZXRDb21wdXRl
ZFN0eWxlKGxvbmcgbm9kZUlkLCBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+KiBzdHlsZXMpOworICAg
IHZvaWQgZ2V0U3R5bGVTaGVldChsb25nIHN0eWxlU2hlZXRJZCwgUmVmUHRyPEluc3BlY3Rvck9i
amVjdD4qIHN0eWxlU2hlZXRPYmplY3QpOworICAgIHZvaWQgZ2V0U3R5bGVTb3VyY2VEYXRhKGxv
bmcgc3R5bGVJZCwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIGRhdGFPYmplY3QpOworICAgIHZv
aWQgYXBwbHlTdHlsZVRleHQobG9uZyBzdHlsZUlkLCBjb25zdCBTdHJpbmcmIHN0eWxlVGV4dCwg
Y29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIGJvb2wqIHN1Y2Nlc3MsIFJlZlB0cjxJbnNwZWN0
b3JWYWx1ZT4qIHN0eWxlT2JqZWN0LCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+KiBjaGFuZ2VkUHJv
cGVydGllcyk7CisgICAgdm9pZCBzZXRTdHlsZVRleHQobG9uZyBzdHlsZUlkLCBjb25zdCBTdHJp
bmcmIGNzc1RleHQsIGJvb2wqIHN1Y2Nlc3MpOworICAgIHZvaWQgc2V0U3R5bGVQcm9wZXJ0eShs
b25nIHN0eWxlSWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9v
bCogc3VjY2Vzcyk7CisgICAgdm9pZCB0b2dnbGVTdHlsZUVuYWJsZWQobG9uZyBzdHlsZUlkLCBj
b25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgYm9vbCBkaXNhYmxlZCwgUmVmUHRyPEluc3BlY3Rv
clZhbHVlPiogc3R5bGVPYmplY3QpOworICAgIHZvaWQgc2V0UnVsZVNlbGVjdG9yKGxvbmcgcnVs
ZUlkLCBjb25zdCBTdHJpbmcmIHNlbGVjdG9yLCBsb25nIHNlbGVjdGVkTm9kZUlkLCBSZWZQdHI8
SW5zcGVjdG9yVmFsdWU+KiBydWxlT2JqZWN0LCBib29sKiBzZWxlY3RvckFmZmVjdHNOb2RlKTsK
KyAgICB2b2lkIGFkZFJ1bGUoY29uc3QgU3RyaW5nJiBzZWxlY3RvciwgbG9uZyBzZWxlY3RlZE5v
ZGVJZCwgUmVmUHRyPEluc3BlY3RvclZhbHVlPiogcnVsZU9iamVjdCwgYm9vbCogc2VsZWN0b3JB
ZmZlY3RzTm9kZSk7CisgICAgdm9pZCBnZXRTdXBwb3J0ZWRDU1NQcm9wZXJ0aWVzKFJlZlB0cjxJ
bnNwZWN0b3JBcnJheT4qIGNzc1Byb3BlcnRpZXMpOworCisgICAgLy8gTWV0aG9kcyBjYWxsZWQg
ZnJvbSB0aGUgSW5zcGVjdG9yQ29udHJvbGxlci4KKyAgICB2b2lkIHNldERvY3VtZW50KERvY3Vt
ZW50KiBkb2N1bWVudCk7CisgICAgdm9pZCByZWxlYXNlRGFuZ2xpbmdOb2RlcygpOworCisgICAg
dm9pZCBkaWRJbnNlcnRET01Ob2RlKE5vZGUqKTsKKyAgICB2b2lkIGRpZFJlbW92ZURPTU5vZGUo
Tm9kZSopOworICAgIHZvaWQgZGlkTW9kaWZ5RE9NQXR0cihFbGVtZW50Kik7CisgICAgdm9pZCBj
aGFyYWN0ZXJEYXRhTW9kaWZpZWQoQ2hhcmFjdGVyRGF0YSopOworCisgICAgTm9kZSogbm9kZUZv
cklkKGxvbmcgbm9kZUlkKTsKKyAgICBsb25nIHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoTm9kZSog
bm9kZSk7CisgICAgdm9pZCBwdXNoQ2hpbGROb2Rlc1RvRnJvbnRlbmQobG9uZyBub2RlSWQpOwor
ICAgIHZvaWQgcHVzaE5vZGVCeVBhdGhUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgcGF0aCwgbG9u
Zyogbm9kZUlkKTsKKyAgICBsb25nIGluc3BlY3RlZE5vZGUodW5zaWduZWQgbG9uZyBudW0pOwor
ICAgIHZvaWQgY29weU5vZGUobG9uZyBub2RlSWQpOworCitwcml2YXRlOgorICAgIHZvaWQgc3Rh
cnRMaXN0ZW5pbmcoRG9jdW1lbnQqIGRvY3VtZW50KTsKKyAgICB2b2lkIHN0b3BMaXN0ZW5pbmco
RG9jdW1lbnQqIGRvY3VtZW50KTsKKworICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVFdmVudChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgRXZlbnQqIGV2ZW50KTsKKworICAgIC8vIE5vZGUtcmVsYXRl
ZCBtZXRob2RzLgorICAgIHR5cGVkZWYgSGFzaE1hcDxSZWZQdHI8Tm9kZT4sIGxvbmc+IE5vZGVU
b0lkTWFwOworICAgIGxvbmcgYmluZChOb2RlKiBub2RlLCBOb2RlVG9JZE1hcCogbm9kZXNNYXAp
OworICAgIHZvaWQgdW5iaW5kKE5vZGUqIG5vZGUsIE5vZGVUb0lkTWFwKiBub2Rlc01hcCk7CisK
KyAgICBib29sIHB1c2hEb2N1bWVudFRvRnJvbnRlbmQoKTsKKworICAgIGJvb2wgaGFzQnJlYWtw
b2ludChOb2RlKiBub2RlLCBsb25nIHR5cGUpOworICAgIHZvaWQgdXBkYXRlU3VidHJlZUJyZWFr
cG9pbnRzKE5vZGUqIHJvb3QsIHVpbnQzMl90IHJvb3RNYXNrLCBib29sIHZhbHVlKTsKKyAgICBQ
YXNzUmVmUHRyPEluc3BlY3RvclZhbHVlPiBkZXNjcmlwdGlvbkZvckRPTUV2ZW50KE5vZGUqIHRh
cmdldCwgbG9uZyBicmVha3BvaW50VHlwZSwgYm9vbCBpbnNlcnRpb24pOworCisgICAgUGFzc1Jl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9yQXR0cmlidXRlU3R5bGVzKEVsZW1l
bnQqIGVsZW1lbnQpOworICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IGJ1aWxkQXJyYXlG
b3JDU1NSdWxlcyhEb2N1bWVudCogb3duZXJEb2N1bWVudCwgQ1NTUnVsZUxpc3QqKTsKKyAgICBQ
YXNzUmVmUHRyPEluc3BlY3RvckFycmF5PiBidWlsZEFycmF5Rm9yUHNldWRvRWxlbWVudHMoRWxl
bWVudCogZWxlbWVudCwgYm9vbCBhdXRob3JPbmx5KTsKKworICAgIFBhc3NSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiBidWlsZE9iamVjdEZvck5vZGUoTm9kZSogbm9kZSwgaW50IGRlcHRoLCBOb2Rl
VG9JZE1hcCogbm9kZXNNYXApOworICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9yQXJyYXk+IGJ1aWxk
QXJyYXlGb3JFbGVtZW50QXR0cmlidXRlcyhFbGVtZW50KiBlbGVtZW50KTsKKyAgICBQYXNzUmVm
UHRyPEluc3BlY3RvckFycmF5PiBidWlsZEFycmF5Rm9yQ29udGFpbmVyQ2hpbGRyZW4oTm9kZSog
Y29udGFpbmVyLCBpbnQgZGVwdGgsIE5vZGVUb0lkTWFwKiBub2Rlc01hcCk7CisgICAgUGFzc1Jl
ZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9yRXZlbnRMaXN0ZW5lcihjb25zdCBS
ZWdpc3RlcmVkRXZlbnRMaXN0ZW5lciYgcmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIsIGNvbnN0IEF0
b21pY1N0cmluZyYgZXZlbnRUeXBlLCBOb2RlKiBub2RlKTsKKworICAgIC8vIFdlIHJlcHJlc2Vu
dCBlbWJlZGRlZCBkb21zIGFzIGEgcGFydCBvZiB0aGUgc2FtZSBoaWVyYXJjaHkuIEhlbmNlIHdl
IHRyZWF0IGNoaWxkcmVuIG9mIGZyYW1lIG93bmVycyBkaWZmZXJlbnRseS4KKyAgICAvLyBXZSBh
bHNvIHNraXAgd2hpdGVzcGFjZSB0ZXh0IG5vZGVzIGNvbmRpdGlvbmFsbHkuIEZvbGxvd2luZyBt
ZXRob2RzIGVuY2Fwc3VsYXRlIHRoZXNlIHNwZWNpZmljcy4KKyAgICBOb2RlKiBpbm5lckZpcnN0
Q2hpbGQoTm9kZSogbm9kZSk7CisgICAgTm9kZSogaW5uZXJOZXh0U2libGluZyhOb2RlKiBub2Rl
KTsKKyAgICBOb2RlKiBpbm5lclByZXZpb3VzU2libGluZyhOb2RlKiBub2RlKTsKKyAgICB1bnNp
Z25lZCBpbm5lckNoaWxkTm9kZUNvdW50KE5vZGUqIG5vZGUpOworICAgIE5vZGUqIGlubmVyUGFy
ZW50Tm9kZShOb2RlKiBub2RlKTsKKyAgICBib29sIGlzV2hpdGVzcGFjZShOb2RlKiBub2RlKTsK
KworICAgIERvY3VtZW50KiBtYWluRnJhbWVEb2N1bWVudCgpIGNvbnN0OworICAgIFN0cmluZyBk
b2N1bWVudFVSTFN0cmluZyhEb2N1bWVudCogZG9jdW1lbnQpIGNvbnN0OworICAgIEluc3BlY3Rv
ckNTU1N0b3JlKiBjc3NTdG9yZSgpIHsgcmV0dXJuIG1fY3NzU3RvcmU7IH0KKworICAgIHZvaWQg
b25NYXRjaEpvYnNUaW1lcihUaW1lcjxJbnNwZWN0b3JET01BZ2VudD4qKTsKKyAgICB2b2lkIHJl
cG9ydE5vZGVzQXNTZWFyY2hSZXN1bHRzKExpc3RIYXNoU2V0PE5vZGUqPiYgcmVzdWx0Q29sbGVj
dG9yKTsKKworICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBidWlsZE9iamVjdEZvclN0
eWxlKENTU1N0eWxlRGVjbGFyYXRpb24qLCBib29sIGJpbmQpOworICAgIHZvaWQgcG9wdWxhdGVP
YmplY3RXaXRoU3R5bGVQcm9wZXJ0aWVzKENTU1N0eWxlRGVjbGFyYXRpb24qLCBJbnNwZWN0b3JP
YmplY3QqIHJlc3VsdCk7CisgICAgUGFzc1JlZlB0cjxJbnNwZWN0b3JBcnJheT4gYnVpbGRBcnJh
eUZvckRpc2FibGVkU3R5bGVQcm9wZXJ0aWVzKERpc2FibGVkU3R5bGVEZWNsYXJhdGlvbiopOwor
ICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBidWlsZE9iamVjdEZvclJ1bGUoRG9jdW1l
bnQqIG93bmVyRG9jdW1lbnQsIENTU1N0eWxlUnVsZSopOworICAgIFBhc3NSZWZQdHI8SW5zcGVj
dG9yT2JqZWN0PiBidWlsZE9iamVjdEZvclN0eWxlU2hlZXQoRG9jdW1lbnQqIG93bmVyRG9jdW1l
bnQsIENTU1N0eWxlU2hlZXQqKTsKKyAgICBWZWN0b3I8U3RyaW5nPiBsb25naGFuZFByb3BlcnRp
ZXMoQ1NTU3R5bGVEZWNsYXJhdGlvbiosIGNvbnN0IFN0cmluZyYgc2hvcnRoYW5kUHJvcGVydHkp
OworICAgIFN0cmluZyBzaG9ydGhhbmRWYWx1ZShDU1NTdHlsZURlY2xhcmF0aW9uKiwgY29uc3Qg
U3RyaW5nJiBzaG9ydGhhbmRQcm9wZXJ0eSk7CisgICAgU3RyaW5nIHNob3J0aGFuZFByaW9yaXR5
KENTU1N0eWxlRGVjbGFyYXRpb24qLCBjb25zdCBTdHJpbmcmIHNob3J0aGFuZFByb3BlcnR5KTsK
KyAgICBib29sIHJ1bGVBZmZlY3RzTm9kZShDU1NTdHlsZVJ1bGUqLCBOb2RlKik7CisgICAgTm9k
ZSogbm9kZUZvclBhdGgoY29uc3QgU3RyaW5nJiBwYXRoKTsKKyAgICBQYXNzUmVmUHRyPEluc3Bl
Y3RvckFycmF5PiB0b0FycmF5KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkYXRhKTsKKworICAgIHZv
aWQgZGlzY2FyZEJpbmRpbmdzKCk7CisKKyAgICBJbnNwZWN0b3JDU1NTdG9yZSogbV9jc3NTdG9y
ZTsKKyAgICBJbnNwZWN0b3JGcm9udGVuZCogbV9mcm9udGVuZDsKKyAgICBOb2RlVG9JZE1hcCBt
X2RvY3VtZW50Tm9kZVRvSWRNYXA7CisgICAgLy8gT3ducyBub2RlIG1hcHBpbmdzIGZvciBkYW5n
bGluZyBub2Rlcy4KKyAgICBWZWN0b3I8Tm9kZVRvSWRNYXAqPiBtX2RhbmdsaW5nTm9kZVRvSWRN
YXBzOworICAgIEhhc2hNYXA8bG9uZywgTm9kZSo+IG1faWRUb05vZGU7CisgICAgSGFzaE1hcDxs
b25nLCBOb2RlVG9JZE1hcCo+IG1faWRUb05vZGVzTWFwOworICAgIEhhc2hTZXQ8bG9uZz4gbV9j
aGlsZHJlblJlcXVlc3RlZDsKKyAgICBsb25nIG1fbGFzdE5vZGVJZDsKKyAgICBMaXN0SGFzaFNl
dDxSZWZQdHI8RG9jdW1lbnQ+ID4gbV9kb2N1bWVudHM7CisgICAgRGVxdWU8TWF0Y2hKb2IqPiBt
X3BlbmRpbmdNYXRjaEpvYnM7CisgICAgVGltZXI8SW5zcGVjdG9yRE9NQWdlbnQ+IG1fbWF0Y2hK
b2JzVGltZXI7CisgICAgSGFzaFNldDxSZWZQdHI8Tm9kZT4gPiBtX3NlYXJjaFJlc3VsdHM7Cisg
ICAgVmVjdG9yPGxvbmc+IG1faW5zcGVjdGVkTm9kZXM7CisgICAgSGFzaE1hcDxOb2RlKiwgdWlu
dDMyX3Q+IG1fYnJlYWtwb2ludHM7Cit9OwogCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0RPTUFnZW50LmpzCmluZGV4IDliMzg2YzMuLjYxZGRjMDQgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcworKysgYi9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMKQEAgLTM4NCw2ICszODQsMTUgQEAgV2ViSW5zcGVj
dG9yLkRPTUFnZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5kb2N1bWVudC5fZmlyZURv
bUV2ZW50KCJET01BdHRyTW9kaWZpZWQiLCBldmVudCk7CiAgICAgfSwKIAorICAgIF9jaGFyYWN0
ZXJEYXRhTW9kaWZpZWQ6IGZ1bmN0aW9uKG5vZGVJZCwgbmV3VmFsdWUpCisgICAgeworICAgICAg
ICB2YXIgbm9kZSA9IHRoaXMuX2lkVG9ET01Ob2RlW25vZGVJZF07CisgICAgICAgIG5vZGUuX25v
ZGVWYWx1ZSA9IG5ld1ZhbHVlOworICAgICAgICBub2RlLnRleHRDb250ZW50ID0gdGV4dENvbnRl
bnQ7CisgICAgICAgIHZhciBldmVudCA9IHsgdGFyZ2V0IDogbm9kZSB9OworICAgICAgICB0aGlz
LmRvY3VtZW50Ll9maXJlRG9tRXZlbnQoIkRPTUNoYXJhY3RlckRhdGFNb2RpZmllZCIsIGV2ZW50
KTsKKyAgICB9LAorCiAgICAgbm9kZUZvcklkOiBmdW5jdGlvbihub2RlSWQpCiAgICAgewogICAg
ICAgICByZXR1cm4gdGhpcy5faWRUb0RPTU5vZGVbbm9kZUlkXTsKQEAgLTY5MSw2ICs3MDAsMTEg
QEAgV2ViSW5zcGVjdG9yLmF0dHJpYnV0ZXNVcGRhdGVkID0gZnVuY3Rpb24oKQogICAgIHRoaXMu
ZG9tQWdlbnQuX2F0dHJpYnV0ZXNVcGRhdGVkLmFwcGx5KHRoaXMuZG9tQWdlbnQsIGFyZ3VtZW50
cyk7CiB9CiAKK1dlYkluc3BlY3Rvci5jaGFyYWN0ZXJEYXRhTW9kaWZpZWQgPSBmdW5jdGlvbigp
Cit7CisgICAgdGhpcy5kb21BZ2VudC5fY2hhcmFjdGVyRGF0YU1vZGlmaWVkLmFwcGx5KHRoaXMu
ZG9tQWdlbnQsIGFyZ3VtZW50cyk7Cit9CisKIFdlYkluc3BlY3Rvci5zZXREb2N1bWVudCA9IGZ1
bmN0aW9uKCkKIHsKICAgICB0aGlzLmRvbUFnZW50Ll9zZXREb2N1bWVudC5hcHBseSh0aGlzLmRv
bUFnZW50LCBhcmd1bWVudHMpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0VsZW1lbnRzUGFuZWwuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVu
dHNQYW5lbC5qcwppbmRleCA5Y2ZmM2E3Li43MDc4N2I0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcwpAQCAtMTg2LDYgKzE4Niw3IEBAIFdlYkluc3Bl
Y3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgaW5zcGVjdGVkUm9vdERv
Y3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTU5vZGVJbnNlcnRlZCIsIHRoaXMuX25vZGVJbnNl
cnRlZC5iaW5kKHRoaXMpKTsKICAgICAgICAgaW5zcGVjdGVkUm9vdERvY3VtZW50LmFkZEV2ZW50
TGlzdGVuZXIoIkRPTU5vZGVSZW1vdmVkIiwgdGhpcy5fbm9kZVJlbW92ZWQuYmluZCh0aGlzKSk7
CiAgICAgICAgIGluc3BlY3RlZFJvb3REb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01BdHRy
TW9kaWZpZWQiLCB0aGlzLl9hdHRyaWJ1dGVzVXBkYXRlZC5iaW5kKHRoaXMpKTsKKyAgICAgICAg
aW5zcGVjdGVkUm9vdERvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNoYXJhY3RlckRhdGFN
b2RpZmllZCIsIHRoaXMuX2NoYXJhY3RlckRhdGFNb2RpZmllZC5iaW5kKHRoaXMpKTsKIAogICAg
ICAgICB0aGlzLnRyZWVPdXRsaW5lLnN1cHByZXNzU2VsZWN0SGlnaGxpZ2h0ID0gdHJ1ZTsKICAg
ICAgICAgdGhpcy5yb290RE9NTm9kZSA9IGluc3BlY3RlZFJvb3REb2N1bWVudDsKQEAgLTQ5NSw2
ICs0OTYsMTMgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlID0gewogICAg
ICAgICAgICAgdGhpcy5fdXBkYXRlTW9kaWZpZWROb2Rlc1Nvb24oKTsKICAgICB9LAogCisgICAg
X2NoYXJhY3RlckRhdGFNb2RpZmllZDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB0
aGlzLnJlY2VudGx5TW9kaWZpZWROb2Rlcy5wdXNoKHtub2RlOiBldmVudC50YXJnZXQsIHVwZGF0
ZWQ6IHRydWV9KTsKKyAgICAgICAgaWYgKHRoaXMudmlzaWJsZSkKKyAgICAgICAgICAgIHRoaXMu
X3VwZGF0ZU1vZGlmaWVkTm9kZXNTb29uKCk7CisgICAgfSwKKwogICAgIF9ub2RlSW5zZXJ0ZWQ6
IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKICAgICAgICAgdGhpcy5yZWNlbnRseU1vZGlmaWVkTm9k
ZXMucHVzaCh7bm9kZTogZXZlbnQudGFyZ2V0LCBwYXJlbnQ6IGV2ZW50LnJlbGF0ZWROb2RlLCBp
bnNlcnRlZDogdHJ1ZX0pOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0VsZW1lbnRzVHJlZU91dGxpbmUuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxl
bWVudHNUcmVlT3V0bGluZS5qcwppbmRleCAxODg4YTE3Li5mNzRhNjg4IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcworKysgYi9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcwpAQCAtMTE0
NCw3ICsxMTQ0LDcgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBl
ID0gewogICAgICAgICBkZWxldGUgdGhpcy5fZWRpdGluZzsKIAogICAgICAgICB2YXIgdGV4dE5v
ZGU7Ci0gICAgICAgIGlmICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm5vZGVUeXBlID09IE5vZGUu
RUxFTUVOVF9OT0RFKSB7CisgICAgICAgIGlmICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm5vZGVU
eXBlID09PSBOb2RlLkVMRU1FTlRfTk9ERSkgewogICAgICAgICAgICAgLy8gV2Ugb25seSBzaG93
IHRleHQgbm9kZXMgaW5saW5lIGluIGVsZW1lbnRzIGlmIHRoZSBlbGVtZW50IG9ubHkKICAgICAg
ICAgICAgIC8vIGhhcyBhIHNpbmdsZSBjaGlsZCwgYW5kIHRoYXQgY2hpbGQgaXMgYSB0ZXh0IG5v
ZGUuCiAgICAgICAgICAgICB0ZXh0Tm9kZSA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3QuZmlyc3RD
aGlsZDsKQEAgLTExNTIsOSArMTE1Miw2IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVt
ZW50LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRleHROb2RlID0gdGhpcy5yZXByZXNlbnRl
ZE9iamVjdDsKIAogICAgICAgICB0ZXh0Tm9kZS5ub2RlVmFsdWUgPSBuZXdUZXh0OwotCi0gICAg
ICAgIC8vIE5lZWQgdG8gcmVzdG9yZSBhdHRyaWJ1dGVzIC8gbm9kZSBzdHJ1Y3R1cmUuCi0gICAg
ICAgIHRoaXMudXBkYXRlVGl0bGUoKTsKICAgICB9LAogCiAgICAgX2VkaXRpbmdDYW5jZWxsZWQ6
IGZ1bmN0aW9uKGVsZW1lbnQsIGNvbnRleHQpCg==
</data>
<flag name="review"
          id="57739"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68257</attachid>
            <date>2010-09-21 10:20:27 -0700</date>
            <delta_ts>2010-09-22 06:03:10 -0700</delta_ts>
            <desc>[PATCH] Change to land.</desc>
            <filename>content_edit</filename>
            <type>text/plain</type>
            <size>14032</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
Njk5YTEzNS4uOTQwNzRhNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMC0wOS0yMSAgUGF2ZWwgRmVsZG1h
biAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBFbGVtZW50cyBwYW5lbCBkb2VzIG5v
dCByZWZsZWN0IGNoYW5nZXMgdG8gdGhlIHRleHQgbm9kZSB2YWx1ZXMuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjE2NgorCisgICAgICAgICogZG9t
L0NoYXJhY3RlckRhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hhcmFjdGVyRGF0YTo6ZGlz
cGF0Y2hNb2RpZmllZEV2ZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmlkbDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpjaGFyYWN0ZXJEYXRhTW9kaWZpZWRJbXBsKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6Y2hhcmFjdGVyRGF0YU1vZGlmaWVkKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yRE9NQWdlbnQ6OmNoYXJhY3RlckRhdGFNb2RpZmllZCk6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvckRPTUFnZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpFdmVudExpc3Rl
bmVySW5mbzo6RXZlbnRMaXN0ZW5lckluZm8pOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
RE9NQWdlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6
Y2FzdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6Y3NzU3RvcmUpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRE9NQWdlbnQucHJvdG90eXBlLl9jaGFyYWN0ZXJEYXRhTW9kaWZpZWQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLmNoYXJhY3RlckRhdGFNb2RpZmllZCk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLl9jaGFyYWN0ZXJEYXRhTW9kaWZpZWQpOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZS5fdGV4dE5vZGVFZGl0
aW5nQ29tbWl0dGVkKToKKwogMjAxMC0wOS0yMSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29u
QGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0YS5jcHAgYi9XZWJDb3JlL2RvbS9DaGFyYWN0ZXJE
YXRhLmNwcAppbmRleCA3YWNjYmZiLi5iYzllYzU2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9D
aGFyYWN0ZXJEYXRhLmNwcAorKysgYi9XZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmNwcApAQCAt
MjQsNiArMjQsNyBAQAogCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkV4Y2Vw
dGlvbkNvZGUuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
TXV0YXRpb25FdmVudC5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKIApAQCAtMTk3LDYgKzE5
OCw5IEBAIHZvaWQgQ2hhcmFjdGVyRGF0YTo6ZGlzcGF0Y2hNb2RpZmllZEV2ZW50KFN0cmluZ0lt
cGwqIHByZXZWYWx1ZSkKICAgICBpZiAoZG9jdW1lbnQoKS0+aGFzTGlzdGVuZXJUeXBlKERvY3Vt
ZW50OjpET01DSEFSQUNURVJEQVRBTU9ESUZJRURfTElTVEVORVIpKQogICAgICAgICBkaXNwYXRj
aEV2ZW50KE11dGF0aW9uRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuRE9NQ2hhcmFjdGVyRGF0
YU1vZGlmaWVkRXZlbnQsIHRydWUsIDAsIHByZXZWYWx1ZSwgbV9kYXRhKSk7CiAgICAgZGlzcGF0
Y2hTdWJ0cmVlTW9kaWZpZWRFdmVudCgpOworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgSW5z
cGVjdG9yQ29udHJvbGxlcjo6Y2hhcmFjdGVyRGF0YU1vZGlmaWVkKHRoaXMpOworI2VuZGlmCiB9
CiAKIHZvaWQgQ2hhcmFjdGVyRGF0YTo6Y2hlY2tDaGFyRGF0YU9wZXJhdGlvbih1bnNpZ25lZCBv
ZmZzZXQsIEV4Y2VwdGlvbkNvZGUmIGVjKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vQ29udGFp
bmVyTm9kZS5jcHAgYi9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAppbmRleCAyZGQ1MGJi
Li5lMThmNmZlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAorKysg
Yi9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcApAQCAtMTU0LDcgKzE1NCw5IEBAIGJvb2wg
Q29udGFpbmVyTm9kZTo6aW5zZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5v
ZGUqIHJlZkNoaWxkLCBFeGNlCiAgICAgICAgIGlmIChjaGlsZC0+cGFyZW50Tm9kZSgpKQogICAg
ICAgICAgICAgYnJlYWs7CiAKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgICAgICBJbnNwZWN0
b3JDb250cm9sbGVyOjp3aWxsSW5zZXJ0RE9NTm9kZShjaGlsZCwgdGhpcyk7CisjZW5kaWYKIAog
ICAgICAgICBpbnNlcnRCZWZvcmVDb21tb24obmV4dC5nZXQoKSwgY2hpbGQpOwogCkBAIC0yMjMs
NyArMjI1LDkgQEAgdm9pZCBDb250YWluZXJOb2RlOjpwYXJzZXJJbnNlcnRCZWZvcmUoUGFzc1Jl
ZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogbmV4dENoaWwKICAgICBmb3IgKE5vZGVWZWN0b3I6
OmNvbnN0X2l0ZXJhdG9yIGl0ID0gdGFyZ2V0cy5iZWdpbigpOyBpdCAhPSB0YXJnZXRzLmVuZCgp
OyArK2l0KSB7CiAgICAgICAgIE5vZGUqIGNoaWxkID0gaXQtPmdldCgpOwogCisjaWYgRU5BQkxF
KElOU1BFQ1RPUikKICAgICAgICAgSW5zcGVjdG9yQ29udHJvbGxlcjo6d2lsbEluc2VydERPTU5v
ZGUoY2hpbGQsIHRoaXMpOworI2VuZGlmCiAKICAgICAgICAgaW5zZXJ0QmVmb3JlQ29tbW9uKG5l
eHQuZ2V0KCksIGNoaWxkKTsKIApAQCAtMjk4LDcgKzMwMiw5IEBAIGJvb2wgQ29udGFpbmVyTm9k
ZTo6cmVwbGFjZUNoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIE5vZGUqIG9sZENoaWxk
LCBFeGNlCiAgICAgICAgIEFTU0VSVCghY2hpbGQtPm5leHRTaWJsaW5nKCkpOwogICAgICAgICBB
U1NFUlQoIWNoaWxkLT5wcmV2aW91c1NpYmxpbmcoKSk7CiAKKyNpZiBFTkFCTEUoSU5TUEVDVE9S
KQogICAgICAgICBJbnNwZWN0b3JDb250cm9sbGVyOjp3aWxsSW5zZXJ0RE9NTm9kZShjaGlsZC5n
ZXQoKSwgdGhpcyk7CisjZW5kaWYKIAogICAgICAgICAvLyBBZGQgY2hpbGQgYWZ0ZXIgInByZXYi
LgogICAgICAgICBmb3JiaWRFdmVudERpc3BhdGNoKCk7CkBAIC01NzcsNyArNTgzLDkgQEAgYm9v
bCBDb250YWluZXJOb2RlOjphcHBlbmRDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBF
eGNlcHRpb25Db2RlJiBlYywgYm8KICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICAgICAgSW5zcGVjdG9yQ29udHJvbGxlcjo6d2ls
bEluc2VydERPTU5vZGUoY2hpbGQsIHRoaXMpOworI2VuZGlmCiAKICAgICAgICAgLy8gQXBwZW5k
IGNoaWxkIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QKICAgICAgICAgZm9yYmlkRXZlbnREaXNwYXRj
aCgpOwpAQCAtNjE3LDcgKzYyNSw5IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6cGFyc2VyQWRkQ2hp
bGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCkKICAgICBBU1NFUlQobmV3Q2hpbGQpOwogICAg
IEFTU0VSVCghbmV3Q2hpbGQtPnBhcmVudCgpKTsgLy8gVXNlIGFwcGVuZENoaWxkIGlmIHlvdSBu
ZWVkIHRvIGhhbmRsZSByZXBhcmVudGluZyAoYW5kIHdhbnQgRE9NIG11dGF0aW9uIGV2ZW50cyku
CiAKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIEluc3BlY3RvckNvbnRyb2xsZXI6OndpbGxJ
bnNlcnRET01Ob2RlKG5ld0NoaWxkLmdldCgpLCB0aGlzKTsKKyNlbmRpZgogCiAgICAgZm9yYmlk
RXZlbnREaXNwYXRjaCgpOwogICAgIE5vZGUqIGxhc3QgPSBtX2xhc3RDaGlsZDsKQEAgLTk5MCw3
ICsxMDAwLDkgQEAgc3RhdGljIHZvaWQgbm90aWZ5Q2hpbGRJbnNlcnRlZChOb2RlKiBjaGlsZCkK
IHsKICAgICBBU1NFUlQoIWV2ZW50RGlzcGF0Y2hGb3JiaWRkZW4oKSk7CiAKKyNpZiBFTkFCTEUo
SU5TUEVDVE9SKQogICAgIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZEluc2VydERPTU5vZGUoY2hp
bGQpOworI2VuZGlmCiAKICAgICBSZWZQdHI8Tm9kZT4gYyA9IGNoaWxkOwogICAgIFJlZlB0cjxE
b2N1bWVudD4gZG9jdW1lbnQgPSBjaGlsZC0+ZG9jdW1lbnQoKTsKQEAgLTEwMjQsNyArMTAzNiw5
IEBAIHN0YXRpYyB2b2lkIGRpc3BhdGNoQ2hpbGRSZW1vdmFsRXZlbnRzKE5vZGUqIGNoaWxkKQog
ewogICAgIEFTU0VSVCghZXZlbnREaXNwYXRjaEZvcmJpZGRlbigpKTsKIAorI2lmIEVOQUJMRShJ
TlNQRUNUT1IpCiAgICAgSW5zcGVjdG9yQ29udHJvbGxlcjo6d2lsbFJlbW92ZURPTU5vZGUoY2hp
bGQpOworI2VuZGlmCiAKICAgICBSZWZQdHI8Tm9kZT4gYyA9IGNoaWxkOwogICAgIFJlZlB0cjxE
b2N1bWVudD4gZG9jdW1lbnQgPSBjaGlsZC0+ZG9jdW1lbnQoKTsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvci5pZGwgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3Iu
aWRsCmluZGV4IGFlMTM2YjIuLjFmZTFkZDIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvci5pZGwKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmlkbApAQCAt
MzcsOSArMzcsMTEgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBbbm90aWZ5XSB2b2lkIGFkZE5v
ZGVzVG9TZWFyY2hSZXN1bHQob3V0IEFycmF5IG5vZGVJZHMpOwogICAgICAgICBbbm90aWZ5XSB2
b2lkIGF0dHJpYnV0ZXNVcGRhdGVkKG91dCBsb25nIGlkLCBvdXQgQXJyYXkgYXR0cmlidXRlcyk7
CiAgICAgICAgIFtub3RpZnldIHZvaWQgYnJpbmdUb0Zyb250KCk7CisgICAgICAgIFtub3RpZnld
IHZvaWQgY2hhcmFjdGVyRGF0YU1vZGlmaWVkKG91dCBsb25nIGlkLCBvdXQgU3RyaW5nIG5ld1Zh
bHVlKTsKICAgICAgICAgW25vdGlmeV0gdm9pZCBjaGlsZE5vZGVDb3VudFVwZGF0ZWQob3V0IGxv
bmcgaWQsIG91dCBpbnQgbmV3VmFsdWUpOwogICAgICAgICBbbm90aWZ5XSB2b2lkIGNoaWxkTm9k
ZUluc2VydGVkKG91dCBsb25nIHBhcmVudElkLCBvdXQgbG9uZyBwcmV2SWQsIG91dCBPYmplY3Qg
bm9kZSk7CiAgICAgICAgIFtub3RpZnldIHZvaWQgY2hpbGROb2RlUmVtb3ZlZChvdXQgbG9uZyBw
YXJlbnRJZCwgb3V0IGxvbmcgaWQpOworICAgICAgICBbbm90aWZ5XSB2b2lkIGNvbnNvbGVNZXNz
YWdlc0NsZWFyZWQoKTsKICAgICAgICAgW25vdGlmeV0gdm9pZCBkaWRDb21taXRMb2FkKCk7CiAg
ICAgICAgIFtub3RpZnldIHZvaWQgZXZhbHVhdGVGb3JUZXN0SW5Gcm9udGVuZChvdXQgbG9uZyB0
ZXN0Q2FsbElkLCBvdXQgU3RyaW5nIHNjcmlwdCk7CiAgICAgICAgIFtub3RpZnldIHZvaWQgZGlz
Y29ubmVjdEZyb21CYWNrZW5kKCk7CkBAIC01OSw3ICs2MSw2IEBAIG1vZHVsZSBjb3JlIHsKICAg
ICAgICAgW25vdGlmeV0gdm9pZCB1cGRhdGVDb25zb2xlTWVzc2FnZVJlcGVhdENvdW50KG91dCB1
bnNpZ25lZCBsb25nIGNvdW50KTsKICAgICAgICAgW25vdGlmeV0gdm9pZCB1cGRhdGVGb2N1c2Vk
Tm9kZShvdXQgbG9uZyBub2RlSWQpOwogICAgICAgICBbbm90aWZ5XSB2b2lkIHVwZGF0ZVJlc291
cmNlKG91dCBWYWx1ZSByZXNvdXJjZSk7Ci0gICAgICAgIFtub3RpZnldIHZvaWQgY29uc29sZU1l
c3NhZ2VzQ2xlYXJlZCgpOwogCiAjaWYgZGVmaW5lZChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dF
UikgJiYgRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIKICAgICAgICAgW25vdGlmeV0gdm9pZCBh
ZGRQcm9maWxlSGVhZGVyKG91dCBPYmplY3QgaGVhZGVyKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggNWY4ZjE5MC4uNjRlYTRiYyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTIxMzEsNiArMjEzMSwxMSBAQCB2
b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZE1vZGlmeURPTUF0dHJJbXBsKEVsZW1lbnQqIGVs
ZW1lbnQpCiAgICAgICAgIG1fZG9tQWdlbnQtPmRpZE1vZGlmeURPTUF0dHIoZWxlbWVudCk7CiB9
CiAKK3ZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6Y2hhcmFjdGVyRGF0YU1vZGlmaWVkSW1wbChD
aGFyYWN0ZXJEYXRhKiBjaGFyYWN0ZXJEYXRhKQoreworICAgIGlmIChtX2RvbUFnZW50KQorICAg
ICAgICBtX2RvbUFnZW50LT5jaGFyYWN0ZXJEYXRhTW9kaWZpZWQoY2hhcmFjdGVyRGF0YSk7Cit9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29u
dHJvbGxlci5oCmluZGV4IDY3NTIwNDQuLmYxN2YxZDMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDb250cm9sbGVyLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpZm5kZWYgSW5zcGVjdG9yQ29u
dHJvbGxlcl9oCiAjZGVmaW5lIEluc3BlY3RvckNvbnRyb2xsZXJfaAogCisjaW5jbHVkZSAiQ2hh
cmFjdGVyRGF0YS5oIgogI2luY2x1ZGUgIkNvbnNvbGUuaCIKICNpbmNsdWRlICJDb29raWUuaCIK
ICNpbmNsdWRlICJFbGVtZW50LmgiCkBAIC00NSw2ICs0Niw3IEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIENhY2hlZFJlc291cmNlOworY2xhc3MgQ2hhcmFjdGVyRGF0YTsKIGNsYXNz
IENvbnNvbGVNZXNzYWdlOwogY2xhc3MgRGF0YWJhc2U7CiBjbGFzcyBEb2N1bWVudDsKQEAgLTIw
MSw2ICsyMDMsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgd2lsbFJlbW92ZURPTU5vZGUo
Tm9kZSopOwogICAgIHN0YXRpYyB2b2lkIHdpbGxNb2RpZnlET01BdHRyKEVsZW1lbnQqKTsKICAg
ICBzdGF0aWMgdm9pZCBkaWRNb2RpZnlET01BdHRyKEVsZW1lbnQqKTsKKyAgICBzdGF0aWMgdm9p
ZCBjaGFyYWN0ZXJEYXRhTW9kaWZpZWQoQ2hhcmFjdGVyRGF0YSopOwogCiAjaWYgRU5BQkxFKFdP
UktFUlMpCiAgICAgZW51bSBXb3JrZXJBY3Rpb24geyBXb3JrZXJDcmVhdGVkLCBXb3JrZXJEZXN0
cm95ZWQgfTsKQEAgLTMzOCw2ICszNDEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVtb3Zl
RE9NTm9kZUltcGwoTm9kZSopOwogICAgIHZvaWQgd2lsbE1vZGlmeURPTUF0dHJJbXBsKEVsZW1l
bnQqKTsKICAgICB2b2lkIGRpZE1vZGlmeURPTUF0dHJJbXBsKEVsZW1lbnQqKTsKKyAgICB2b2lk
IGNoYXJhY3RlckRhdGFNb2RpZmllZEltcGwoQ2hhcmFjdGVyRGF0YSopOwogCiAjaWYgRU5BQkxF
KEpBVkFTQ1JJUFRfREVCVUdHRVIpCiAgICAgZnJpZW5kIGNsYXNzIEluc3BlY3RvckRlYnVnZ2Vy
QWdlbnQ7CkBAIC00NTEsNiArNDU1LDE0IEBAIGlubGluZSB2b2lkIEluc3BlY3RvckNvbnRyb2xs
ZXI6OmRpZE1vZGlmeURPTUF0dHIoRWxlbWVudCogZWxlbWVudCkKICNlbmRpZgogfQogCitpbmxp
bmUgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpjaGFyYWN0ZXJEYXRhTW9kaWZpZWQoQ2hhcmFj
dGVyRGF0YSogY2hhcmFjdGVyRGF0YSkKK3sKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIGlm
IChJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0b3JDb250cm9sbGVyID0gaW5zcGVjdG9yQ29u
dHJvbGxlckZvck5vZGUoY2hhcmFjdGVyRGF0YSkpCisgICAgICAgIGluc3BlY3RvckNvbnRyb2xs
ZXItPmNoYXJhY3RlckRhdGFNb2RpZmllZEltcGwoY2hhcmFjdGVyRGF0YSk7CisjZW5kaWYKK30K
KwogaW5saW5lIEluc3BlY3RvckNvbnRyb2xsZXIqIEluc3BlY3RvckNvbnRyb2xsZXI6Omluc3Bl
Y3RvckNvbnRyb2xsZXJGb3JOb2RlKE5vZGUqIG5vZGUpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RP
UikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCBi
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcAppbmRleCBmMWRmNWIwLi5m
NTFkYTczIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5j
cHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC00Myw2
ICs0Myw3IEBACiAjaW5jbHVkZSAiQ1NTU3R5bGVSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVT
ZWxlY3Rvci5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKKyNpbmNsdWRlICJDaGFyYWN0
ZXJEYXRhLmgiCiAjaW5jbHVkZSAiQ29udGFpbmVyTm9kZS5oIgogI2luY2x1ZGUgIkNvb2tpZS5o
IgogI2luY2x1ZGUgIkNvb2tpZUphci5oIgpAQCAtMTEyMCw2ICsxMTIxLDE0IEBAIHZvaWQgSW5z
cGVjdG9yRE9NQWdlbnQ6OmRpZE1vZGlmeURPTUF0dHIoRWxlbWVudCogZWxlbWVudCkKICAgICBt
X2Zyb250ZW5kLT5hdHRyaWJ1dGVzVXBkYXRlZChpZCwgYnVpbGRBcnJheUZvckVsZW1lbnRBdHRy
aWJ1dGVzKGVsZW1lbnQpKTsKIH0KIAordm9pZCBJbnNwZWN0b3JET01BZ2VudDo6Y2hhcmFjdGVy
RGF0YU1vZGlmaWVkKENoYXJhY3RlckRhdGEqIGNoYXJhY3RlckRhdGEpCit7CisgICAgbG9uZyBp
ZCA9IG1fZG9jdW1lbnROb2RlVG9JZE1hcC5nZXQoY2hhcmFjdGVyRGF0YSk7CisgICAgaWYgKCFp
ZCkKKyAgICAgICAgcmV0dXJuOworICAgIG1fZnJvbnRlbmQtPmNoYXJhY3RlckRhdGFNb2RpZmll
ZChpZCwgY2hhcmFjdGVyRGF0YS0+ZGF0YSgpKTsKK30KKwogYm9vbCBJbnNwZWN0b3JET01BZ2Vu
dDo6aGFzQnJlYWtwb2ludChOb2RlKiBub2RlLCBsb25nIHR5cGUpCiB7CiAgICAgdWludDMyX3Qg
cm9vdEJpdCA9IDEgPDwgdHlwZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckRPTUFnZW50LmggYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCmlu
ZGV4IDdkODY5OTcuLjg5YzZmZDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckRPTUFnZW50LmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQu
aApAQCAtNTMsNiArNTMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgQ1NTU3R5
bGVEZWNsYXJhdGlvbjsKICAgICBjbGFzcyBDU1NTdHlsZVJ1bGU7CiAgICAgY2xhc3MgQ1NTU3R5
bGVTaGVldDsKKyAgICBjbGFzcyBDaGFyYWN0ZXJEYXRhOwogICAgIGNsYXNzIEVsZW1lbnQ7CiAg
ICAgY2xhc3MgRXZlbnQ7CiAgICAgY2xhc3MgSW5zcGVjdG9yRE9NQWdlbnQ7CkBAIC0xMzksNiAr
MTQwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIGRpZEluc2VydERPTU5v
ZGUoTm9kZSopOwogICAgICAgICB2b2lkIGRpZFJlbW92ZURPTU5vZGUoTm9kZSopOwogICAgICAg
ICB2b2lkIGRpZE1vZGlmeURPTUF0dHIoRWxlbWVudCopOworICAgICAgICB2b2lkIGNoYXJhY3Rl
ckRhdGFNb2RpZmllZChDaGFyYWN0ZXJEYXRhKik7CiAKICAgICAgICAgTm9kZSogbm9kZUZvcklk
KGxvbmcgbm9kZUlkKTsKICAgICAgICAgbG9uZyBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKE5vZGUq
IG5vZGUpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50
LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzCmluZGV4IDliMzg2
YzMuLmNlYWE3MDggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01B
Z2VudC5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMKQEAg
LTk4LDEzICs5OCw3IEBAIFdlYkluc3BlY3Rvci5ET01Ob2RlLnByb3RvdHlwZSA9IHsKICAgICBz
ZXQgbm9kZVZhbHVlKHZhbHVlKSB7CiAgICAgICAgIGlmICh0aGlzLm5vZGVUeXBlICE9IE5vZGUu
VEVYVF9OT0RFKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB2YXIgc2VsZiA9IHRoaXM7
Ci0gICAgICAgIHZhciBjYWxsYmFjayA9IGZ1bmN0aW9uKCkKLSAgICAgICAgewotICAgICAgICAg
ICAgc2VsZi5fbm9kZVZhbHVlID0gdmFsdWU7Ci0gICAgICAgICAgICBzZWxmLnRleHRDb250ZW50
ID0gdmFsdWU7Ci0gICAgICAgIH07Ci0gICAgICAgIHRoaXMub3duZXJEb2N1bWVudC5fZG9tQWdl
bnQuc2V0VGV4dE5vZGVWYWx1ZUFzeW5jKHRoaXMsIHZhbHVlLCBjYWxsYmFjayk7CisgICAgICAg
IHRoaXMub3duZXJEb2N1bWVudC5fZG9tQWdlbnQuc2V0VGV4dE5vZGVWYWx1ZUFzeW5jKHRoaXMs
IHZhbHVlLCBmdW5jdGlvbigpIHt9KTsKICAgICB9LAogCiAgICAgZ2V0QXR0cmlidXRlOiBmdW5j
dGlvbihuYW1lKQpAQCAtMzg0LDYgKzM3OCwxNSBAQCBXZWJJbnNwZWN0b3IuRE9NQWdlbnQucHJv
dG90eXBlID0gewogICAgICAgICB0aGlzLmRvY3VtZW50Ll9maXJlRG9tRXZlbnQoIkRPTUF0dHJN
b2RpZmllZCIsIGV2ZW50KTsKICAgICB9LAogCisgICAgX2NoYXJhY3RlckRhdGFNb2RpZmllZDog
ZnVuY3Rpb24obm9kZUlkLCBuZXdWYWx1ZSkKKyAgICB7CisgICAgICAgIHZhciBub2RlID0gdGhp
cy5faWRUb0RPTU5vZGVbbm9kZUlkXTsKKyAgICAgICAgbm9kZS5fbm9kZVZhbHVlID0gbmV3VmFs
dWU7CisgICAgICAgIG5vZGUudGV4dENvbnRlbnQgPSBuZXdWYWx1ZTsKKyAgICAgICAgdmFyIGV2
ZW50ID0geyB0YXJnZXQgOiBub2RlIH07CisgICAgICAgIHRoaXMuZG9jdW1lbnQuX2ZpcmVEb21F
dmVudCgiRE9NQ2hhcmFjdGVyRGF0YU1vZGlmaWVkIiwgZXZlbnQpOworICAgIH0sCisKICAgICBu
b2RlRm9ySWQ6IGZ1bmN0aW9uKG5vZGVJZCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLl9p
ZFRvRE9NTm9kZVtub2RlSWRdOwpAQCAtNjkxLDYgKzY5NCwxMSBAQCBXZWJJbnNwZWN0b3IuYXR0
cmlidXRlc1VwZGF0ZWQgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5kb21BZ2VudC5fYXR0cmlidXRl
c1VwZGF0ZWQuYXBwbHkodGhpcy5kb21BZ2VudCwgYXJndW1lbnRzKTsKIH0KIAorV2ViSW5zcGVj
dG9yLmNoYXJhY3RlckRhdGFNb2RpZmllZCA9IGZ1bmN0aW9uKCkKK3sKKyAgICB0aGlzLmRvbUFn
ZW50Ll9jaGFyYWN0ZXJEYXRhTW9kaWZpZWQuYXBwbHkodGhpcy5kb21BZ2VudCwgYXJndW1lbnRz
KTsKK30KKwogV2ViSW5zcGVjdG9yLnNldERvY3VtZW50ID0gZnVuY3Rpb24oKQogewogICAgIHRo
aXMuZG9tQWdlbnQuX3NldERvY3VtZW50LmFwcGx5KHRoaXMuZG9tQWdlbnQsIGFyZ3VtZW50cyk7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5q
cyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzCmluZGV4IDcy
YjIzZTEuLjlmNGRiZjIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9F
bGVtZW50c1BhbmVsLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50
c1BhbmVsLmpzCkBAIC0xODYsNiArMTg2LDcgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwu
cHJvdG90eXBlID0gewogICAgICAgICBpbnNwZWN0ZWRSb290RG9jdW1lbnQuYWRkRXZlbnRMaXN0
ZW5lcigiRE9NTm9kZUluc2VydGVkIiwgdGhpcy5fbm9kZUluc2VydGVkLmJpbmQodGhpcykpOwog
ICAgICAgICBpbnNwZWN0ZWRSb290RG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NTm9kZVJl
bW92ZWQiLCB0aGlzLl9ub2RlUmVtb3ZlZC5iaW5kKHRoaXMpKTsKICAgICAgICAgaW5zcGVjdGVk
Um9vdERvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUF0dHJNb2RpZmllZCIsIHRoaXMuX2F0
dHJpYnV0ZXNVcGRhdGVkLmJpbmQodGhpcykpOworICAgICAgICBpbnNwZWN0ZWRSb290RG9jdW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ2hhcmFjdGVyRGF0YU1vZGlmaWVkIiwgdGhpcy5fY2hh
cmFjdGVyRGF0YU1vZGlmaWVkLmJpbmQodGhpcykpOwogCiAgICAgICAgIHRoaXMucm9vdERPTU5v
ZGUgPSBpbnNwZWN0ZWRSb290RG9jdW1lbnQ7CiAKQEAgLTQ5MSw2ICs0OTIsMTMgQEAgV2ViSW5z
cGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5fdXBk
YXRlTW9kaWZpZWROb2Rlc1Nvb24oKTsKICAgICB9LAogCisgICAgX2NoYXJhY3RlckRhdGFNb2Rp
ZmllZDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB0aGlzLnJlY2VudGx5TW9kaWZp
ZWROb2Rlcy5wdXNoKHtub2RlOiBldmVudC50YXJnZXQsIHVwZGF0ZWQ6IHRydWV9KTsKKyAgICAg
ICAgaWYgKHRoaXMudmlzaWJsZSkKKyAgICAgICAgICAgIHRoaXMuX3VwZGF0ZU1vZGlmaWVkTm9k
ZXNTb29uKCk7CisgICAgfSwKKwogICAgIF9ub2RlSW5zZXJ0ZWQ6IGZ1bmN0aW9uKGV2ZW50KQog
ICAgIHsKICAgICAgICAgdGhpcy5yZWNlbnRseU1vZGlmaWVkTm9kZXMucHVzaCh7bm9kZTogZXZl
bnQudGFyZ2V0LCBwYXJlbnQ6IGV2ZW50LnJlbGF0ZWROb2RlLCBpbnNlcnRlZDogdHJ1ZX0pOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzVHJlZU91dGxp
bmUuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5q
cwppbmRleCBlMjYxMjM0Li4yNTcxYTE1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcwpAQCAtMTEyNSw3ICsxMTI1LDcgQEAgV2Vi
SW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICBkZWxl
dGUgdGhpcy5fZWRpdGluZzsKIAogICAgICAgICB2YXIgdGV4dE5vZGU7Ci0gICAgICAgIGlmICh0
aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm5vZGVUeXBlID09IE5vZGUuRUxFTUVOVF9OT0RFKSB7Cisg
ICAgICAgIGlmICh0aGlzLnJlcHJlc2VudGVkT2JqZWN0Lm5vZGVUeXBlID09PSBOb2RlLkVMRU1F
TlRfTk9ERSkgewogICAgICAgICAgICAgLy8gV2Ugb25seSBzaG93IHRleHQgbm9kZXMgaW5saW5l
IGluIGVsZW1lbnRzIGlmIHRoZSBlbGVtZW50IG9ubHkKICAgICAgICAgICAgIC8vIGhhcyBhIHNp
bmdsZSBjaGlsZCwgYW5kIHRoYXQgY2hpbGQgaXMgYSB0ZXh0IG5vZGUuCiAgICAgICAgICAgICB0
ZXh0Tm9kZSA9IHRoaXMucmVwcmVzZW50ZWRPYmplY3QuZmlyc3RDaGlsZDsKQEAgLTExMzMsOSAr
MTEzMyw2IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsK
ICAgICAgICAgICAgIHRleHROb2RlID0gdGhpcy5yZXByZXNlbnRlZE9iamVjdDsKIAogICAgICAg
ICB0ZXh0Tm9kZS5ub2RlVmFsdWUgPSBuZXdUZXh0OwotCi0gICAgICAgIC8vIE5lZWQgdG8gcmVz
dG9yZSBhdHRyaWJ1dGVzIC8gbm9kZSBzdHJ1Y3R1cmUuCi0gICAgICAgIHRoaXMudXBkYXRlVGl0
bGUoKTsKICAgICB9LAogCiAgICAgX2VkaXRpbmdDYW5jZWxsZWQ6IGZ1bmN0aW9uKGVsZW1lbnQs
IGNvbnRleHQpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>