<?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>39821</bug_id>
          
          <creation_ts>2010-05-27 02:02:17 -0700</creation_ts>
          <short_desc>[EFL] Add Context Menu support</short_desc>
          <delta_ts>2010-05-31 15:59:02 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</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>
          <dependson>39629</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Lucas De Marchi">lucas.de.marchi</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>barbieri</cc>
    
    <cc>commit-queue</cc>
    
    <cc>kenneth</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>231188</commentid>
    <comment_count>0</comment_count>
    <who name="Lucas De Marchi">lucas.de.marchi</who>
    <bug_when>2010-05-27 02:02:17 -0700</bug_when>
    <thetext>Add context menu support in EFL port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231190</commentid>
    <comment_count>1</comment_count>
      <attachid>57211</attachid>
    <who name="Lucas De Marchi">lucas.de.marchi</who>
    <bug_when>2010-05-27 02:08:37 -0700</bug_when>
    <thetext>Created attachment 57211
implement context menu

This is the patch that must be applied after its dependency lands. Please, review #39629.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231633</commentid>
    <comment_count>2</comment_count>
      <attachid>57314</attachid>
    <who name="Lucas De Marchi">lucas.de.marchi</who>
    <bug_when>2010-05-28 03:53:27 -0700</bug_when>
    <thetext>Created attachment 57314
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231634</commentid>
    <comment_count>3</comment_count>
    <who name="Lucas De Marchi">lucas.de.marchi</who>
    <bug_when>2010-05-28 03:55:16 -0700</bug_when>
    <thetext>Updated to latest changes and include files in build system.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231774</commentid>
    <comment_count>4</comment_count>
      <attachid>57314</attachid>
    <who name="Lucas De Marchi">lucas.de.marchi</who>
    <bug_when>2010-05-28 10:29:52 -0700</bug_when>
    <thetext>Comment on attachment 57314
Patch

Clearing flags to update new version and force style check</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232046</commentid>
    <comment_count>5</comment_count>
      <attachid>57401</attachid>
    <who name="Lucas De Marchi">lucas.de.marchi</who>
    <bug_when>2010-05-28 18:42:23 -0700</bug_when>
    <thetext>Created attachment 57401
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232395</commentid>
    <comment_count>6</comment_count>
      <attachid>57401</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-05-31 08:39:38 -0700</bug_when>
    <thetext>Comment on attachment 57401
Patch

Please take these comments into account

WebCore/platform/efl/ContextMenuEfl.cpp:36
 +          static_cast&lt;ContextMenuClientEfl*&gt;(controller()-&gt;client());
Put this on one line please

WebCore/platform/efl/ContextMenuEfl.cpp:45
 +          static_cast&lt;ContextMenuClientEfl*&gt;(controller()-&gt;client());
here as well

WebCore/platform/efl/ContextMenuEfl.cpp:75
 +      // Ref counting remains the same, just pass it and remove our ref, so it
ref count remainds the same, that is what you want to say right?

WebCore/platform/efl/ContextMenuItemEfl.cpp:40
 +      // it&apos;s inside WebKit that this initialization is done, as WebCore doesn&apos;t
Comments start with capital letter and ends with a dot/punctuation mark.

WebKit/efl/WebCoreSupport/ContextMenuClientEfl.h:53
 +      PlatformMenuDescription newPlatformDescription(ContextMenu*);
what about createPlatformDescription ?

WebKit/efl/ewk/ewk_contextmenu.cpp:114
 +      // don&apos;t care about title and submenu as they&apos;re not used after this point
Capital + dot please

WebKit/efl/ewk/ewk_contextmenu.h:68
 +      // these are new tags! not a part of api!!!!
How so? You should probably make a better comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232520</commentid>
    <comment_count>7</comment_count>
      <attachid>57496</attachid>
    <who name="Lucas De Marchi">lucas.de.marchi</who>
    <bug_when>2010-05-31 14:53:35 -0700</bug_when>
    <thetext>Created attachment 57496
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232536</commentid>
    <comment_count>8</comment_count>
      <attachid>57496</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-31 15:58:56 -0700</bug_when>
    <thetext>Comment on attachment 57496
Patch

Clearing flags on attachment: 57496

Committed r60454: &lt;http://trac.webkit.org/changeset/60454&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232537</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-31 15:59:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57211</attachid>
            <date>2010-05-27 02:08:37 -0700</date>
            <delta_ts>2010-05-28 03:53:17 -0700</delta_ts>
            <desc>implement context menu</desc>
            <filename>007-implement-context-menu.patch</filename>
            <type>text/plain</type>
            <size>18017</size>
            <attacher name="Lucas De Marchi">lucas.de.marchi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YjU5MzI4Ny4uMzE4NzFiNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAxMC0wNS0yNyAgTHVjYXMgRGUgTWFy
Y2hpICA8bHVjYXMuZGVtYXJjaGlAcHJvZnVzaW9uLm1vYmk+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0VGTF0gQWRkIENvbnRleHQgTWVudSBpbXBs
ZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Mzk4MjEKKworICAgICAgICAqIHBsYXRmb3JtL0NvbnRleHRNZW51Lmg6IGFkZCBwb3J0LXNw
ZWNpZmljIGF0dHJpYnV0ZXMuCisgICAgICAgICogcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmg6
IGNyZWF0ZSBQbGF0Zm9ybU1lbnVJdGVtRGVzY3JpcHRpb24gYXMgaW4KKyAgICAgICAgb3RoZXIg
cG9ydHMKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVudUl0ZW1EZXNjcmlwdGlvbjo6UGxh
dGZvcm1NZW51SXRlbURlc2NyaXB0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvQ29udGV4
dE1lbnVFZmwuY3BwOiBpbXBsZW1lbnQgbmVlZGVkIG1ldGhvZHMgZm9yIHRoaXMKKyAgICAgICAg
cG9ydC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51OjpDb250ZXh0TWVudSk6CisgICAg
ICAgIChXZWJDb3JlOjpDb250ZXh0TWVudTo6fkNvbnRleHRNZW51KToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRleHRNZW51OjphcHBlbmRJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRN
ZW51OjpzZXRQbGF0Zm9ybURlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRN
ZW51OjpyZWxlYXNlUGxhdGZvcm1EZXNjcmlwdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZWZs
L0NvbnRleHRNZW51SXRlbUVmbC5jcHA6IGltcGxlbWVudCBuZWVkZWQgbWV0aG9kcyBmb3IKKyAg
ICAgICAgdGhpcyBwb3J0LgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtOjpDb250
ZXh0TWVudUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtOjp+Q29udGV4
dE1lbnVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbTo6cmVsZWFzZVBs
YXRmb3JtRGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtOjp0
eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbTo6c2V0VHlwZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW06OmFjdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpDb250ZXh0TWVudUl0ZW06OnNldEFjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0
TWVudUl0ZW06OnRpdGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbTo6c2V0
VGl0bGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtOjpwbGF0Zm9ybVN1Yk1l
bnUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtOjpzZXRTdWJNZW51KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbTo6Y2hlY2tlZCk6CisgICAgICAgIChXZWJD
b3JlOjpDb250ZXh0TWVudUl0ZW06OnNldENoZWNrZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q29u
dGV4dE1lbnVJdGVtOjplbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRl
bTo6c2V0RW5hYmxlZCk6CisKIDIwMTAtMDUtMjYgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBs
ZS5jb20+CiAKICAgICAgICAgUGF0Y2ggZWRpdGVkIGJ5IEFkZWxlIFBldGVyc29uIGFuZCBNYXJr
IFJvd2UuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmggYi9XZWJD
b3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmgKaW5kZXggNzc4NDNkYy4uY2EyMWYyOSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudS5oCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vQ29udGV4dE1lbnUuaApAQCAtNDEsNiArNDEsOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAgICAgY2xhc3MgQ29udGV4dE1lbnVDb250cm9sbGVyOworI2lmIFBMQVRGT1JNKEVGTCkKKyAg
ICBjbGFzcyBDb250ZXh0TWVudUNsaWVudEVmbDsKKyNlbmRpZgogCiAgICAgY2xhc3MgQ29udGV4
dE1lbnUgOiBwdWJsaWMgTm9uY29weWFibGUKICAgICB7CkBAIC04MCw2ICs4Myw5IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgUUxpc3Q8Q29udGV4dE1lbnVJdGVtPiBtX2l0ZW1zOwog
I2VsaWYgUExBVEZPUk0oQ0hST01JVU0pCiAgICAgICAgIFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+
IG1faXRlbXM7CisjZWxpZiBQTEFURk9STShFRkwpCisgICAgICAgIENvbnRleHRNZW51Q2xpZW50
RWZsKiBtX2NvbnRleHRNZW51Q2xpZW50OworICAgICAgICBQbGF0Zm9ybU1lbnVEZXNjcmlwdGlv
biBtX3BsYXRmb3JtRGVzY3JpcHRpb247CiAjZWxzZQogICAgICAgICBQbGF0Zm9ybU1lbnVEZXNj
cmlwdGlvbiBtX3BsYXRmb3JtRGVzY3JpcHRpb247CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmggYi9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRN
ZW51SXRlbS5oCmluZGV4IDg4ZmYwYWQuLjBmZmUzMzggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vQ29udGV4dE1lbnVJdGVtLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVu
dUl0ZW0uaApAQCAtMjIyLDYgKzIyMiwyMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IGJvb2wgY2hlY2tlZDsKICAgICAgICAgYm9vbCBlbmFibGVkOwogICAgIH07CisjZWxpZiBQTEFU
Rk9STShFRkwpCisgICAgc3RydWN0IFBsYXRmb3JtTWVudUl0ZW1EZXNjcmlwdGlvbiB7CisgICAg
ICAgIFBsYXRmb3JtTWVudUl0ZW1EZXNjcmlwdGlvbigpCisgICAgICAgICAgICA6IHR5cGUoQWN0
aW9uVHlwZSkKKyAgICAgICAgICAgICwgYWN0aW9uKENvbnRleHRNZW51SXRlbVRhZ05vQWN0aW9u
KQorICAgICAgICAgICAgLCB0aXRsZSgiIikKKyAgICAgICAgICAgICwgc3ViTWVudSgwKQorICAg
ICAgICAgICAgLCBjaGVja2VkKGZhbHNlKQorICAgICAgICAgICAgLCBlbmFibGVkKHRydWUpIHsg
fQorICAgICAgICBDb250ZXh0TWVudUl0ZW1UeXBlIHR5cGU7CisgICAgICAgIENvbnRleHRNZW51
QWN0aW9uIGFjdGlvbjsKKyAgICAgICAgU3RyaW5nIHRpdGxlOworICAgICAgICBDb250ZXh0TWVu
dSogc3ViTWVudTsKKyAgICAgICAgYm9vbCBjaGVja2VkOworICAgICAgICBib29sIGVuYWJsZWQ7
CisgICAgfTsKICNlbHNlCiAgICAgdHlwZWRlZiB2b2lkKiBQbGF0Zm9ybU1lbnVJdGVtRGVzY3Jp
cHRpb247CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRleHRN
ZW51RWZsLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51RWZsLmNwcAppbmRl
eCAyNDBmMTA2Li45NTNlN2IzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Db250
ZXh0TWVudUVmbC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVFZmwu
Y3BwCkBAIC0yMiwzMCArMjIsNDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJD
b250ZXh0TWVudS5oIgogCisjaW5jbHVkZSAiQ29udGV4dE1lbnVDbGllbnQuaCIKKyNpbmNsdWRl
ICJDb250ZXh0TWVudUNsaWVudEVmbC5oIgorI2luY2x1ZGUgIkNvbnRleHRNZW51Q29udHJvbGxl
ci5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogQ29udGV4dE1lbnU6OkNvbnRleHRNZW51KGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCkK
ICAgICA6IG1faGl0VGVzdFJlc3VsdChyZXN1bHQpCi0gICAgLCBtX3BsYXRmb3JtRGVzY3JpcHRp
b24oMCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIG1fY29udGV4dE1lbnVDbGllbnQg
PQorICAgICAgICBzdGF0aWNfY2FzdDxDb250ZXh0TWVudUNsaWVudEVmbCo+KGNvbnRyb2xsZXIo
KS0+Y2xpZW50KCkpOworICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlvbiA9IG1fY29udGV4dE1lbnVD
bGllbnQtPm5ld1BsYXRmb3JtRGVzY3JpcHRpb24odGhpcyk7Cit9CisKK0NvbnRleHRNZW51OjpD
b250ZXh0TWVudShjb25zdCBIaXRUZXN0UmVzdWx0JiByZXN1bHQsIGNvbnN0IFBsYXRmb3JtTWVu
dURlc2NyaXB0aW9uIG1lbnUpCisgICAgOiBtX2hpdFRlc3RSZXN1bHQocmVzdWx0KQorICAgICwg
bV9wbGF0Zm9ybURlc2NyaXB0aW9uKG1lbnUpCit7CisgICAgbV9jb250ZXh0TWVudUNsaWVudCA9
CisgICAgICAgIHN0YXRpY19jYXN0PENvbnRleHRNZW51Q2xpZW50RWZsKj4oY29udHJvbGxlcigp
LT5jbGllbnQoKSk7CiB9CiAKIENvbnRleHRNZW51Ojp+Q29udGV4dE1lbnUoKQogewotICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgaWYgKG1fcGxhdGZvcm1EZXNjcmlwdGlvbikKKyAgICAgICAg
bV9jb250ZXh0TWVudUNsaWVudC0+ZnJlZVBsYXRmb3JtRGVzY3JpcHRpb24obV9wbGF0Zm9ybURl
c2NyaXB0aW9uKTsKIH0KIAotdm9pZCBDb250ZXh0TWVudTo6YXBwZW5kSXRlbShDb250ZXh0TWVu
dUl0ZW0mKQordm9pZCBDb250ZXh0TWVudTo6YXBwZW5kSXRlbShDb250ZXh0TWVudUl0ZW0mIGl0
ZW0pCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBjaGVja09yRW5hYmxlSWZOZWVkZWQo
aXRlbSk7CisgICAgbV9jb250ZXh0TWVudUNsaWVudC0+YXBwZW5kSXRlbShtX3BsYXRmb3JtRGVz
Y3JpcHRpb24sIGl0ZW0pOwogfQogCiB2b2lkIENvbnRleHRNZW51OjpzZXRQbGF0Zm9ybURlc2Ny
aXB0aW9uKFBsYXRmb3JtTWVudURlc2NyaXB0aW9uIG1lbnUpCiB7CisgICAgQVNTRVJUKCFtX3Bs
YXRmb3JtRGVzY3JpcHRpb24pOworCiAgICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uID0gbWVudTsK
KyAgICBtX2NvbnRleHRNZW51Q2xpZW50LT5zaG93KG1fcGxhdGZvcm1EZXNjcmlwdGlvbik7CiB9
CiAKIFBsYXRmb3JtTWVudURlc2NyaXB0aW9uIENvbnRleHRNZW51OjpwbGF0Zm9ybURlc2NyaXB0
aW9uKCkgY29uc3QKQEAgLTU1LDggKzcyLDEyIEBAIFBsYXRmb3JtTWVudURlc2NyaXB0aW9uIENv
bnRleHRNZW51OjpwbGF0Zm9ybURlc2NyaXB0aW9uKCkgY29uc3QKIAogUGxhdGZvcm1NZW51RGVz
Y3JpcHRpb24gQ29udGV4dE1lbnU6OnJlbGVhc2VQbGF0Zm9ybURlc2NyaXB0aW9uKCkKIHsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAwOworICAgIC8vIFJlZiBjb3VudGluZyBy
ZW1haW5zIHRoZSBzYW1lLCBqdXN0IHBhc3MgaXQgYW5kIHJlbW92ZSBvdXIgcmVmLCBzbyBpdAor
ICAgIC8vIHdpbGwgbm90IGRlY3JlbWVudGVkIHdoZW4gdGhpcyBvYmplY3QgZ29lcyBhd2F5Cisg
ICAgUGxhdGZvcm1NZW51RGVzY3JpcHRpb24gZGVzY3JpcHRpb24gPSBtX3BsYXRmb3JtRGVzY3Jp
cHRpb247CisgICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uID0gMDsKKworICAgIHJldHVybiBkZXNj
cmlwdGlvbjsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29udGV4
dE1lbnVJdGVtRWZsLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51SXRlbUVm
bC5jcHAKaW5kZXggZDY2OTEzMC4uZDNkM2Y2ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9lZmwvQ29udGV4dE1lbnVJdGVtRWZsLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2VmbC9D
b250ZXh0TWVudUl0ZW1FZmwuY3BwCkBAIC0zNyw4MiArMzcsMTA3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogQ29udGV4dE1lbnVJdGVtOjpDb250ZXh0TWVudUl0ZW0oUGxhdGZvcm1NZW51SXRl
bURlc2NyaXB0aW9uKQogeworICAgIC8vIGl0J3MgaW5zaWRlIFdlYktpdCB0aGF0IHRoaXMgaW5p
dGlhbGl6YXRpb24gaXMgZG9uZSwgYXMgV2ViQ29yZSBkb2Vzbid0CisgICAgLy8ga25vdyBob3cg
UGxhdGZvcm1NZW51SXRlbURlc2NyaXB0aW9uIGlzIGltcGxlbWVudGVkLgogICAgIG5vdEltcGxl
bWVudGVkKCk7CiB9CiAKLUNvbnRleHRNZW51SXRlbTo6Q29udGV4dE1lbnVJdGVtKENvbnRleHRN
ZW51KikKK0NvbnRleHRNZW51SXRlbTo6Q29udGV4dE1lbnVJdGVtKENvbnRleHRNZW51KiBzdWJt
ZW51KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9u
LnR5cGUgPSBTdWJtZW51VHlwZTsKKyAgICBzZXRTdWJNZW51KHN1Ym1lbnUpOwogfQogCi1Db250
ZXh0TWVudUl0ZW06OkNvbnRleHRNZW51SXRlbShDb250ZXh0TWVudUl0ZW1UeXBlLCBDb250ZXh0
TWVudUFjdGlvbiwgY29uc3QgU3RyaW5nJiwgQ29udGV4dE1lbnUqKQorQ29udGV4dE1lbnVJdGVt
OjpDb250ZXh0TWVudUl0ZW0oQ29udGV4dE1lbnVJdGVtVHlwZSB0eXBlLCBDb250ZXh0TWVudUFj
dGlvbiBhY3Rpb24sIGNvbnN0IFN0cmluZyYgdGl0bGUsIENvbnRleHRNZW51KiBzdWJNZW51KQog
ewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLnR5cGUg
PSB0eXBlOworICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi5hY3Rpb24gPSBhY3Rpb247CisgICAg
bV9wbGF0Zm9ybURlc2NyaXB0aW9uLnRpdGxlID0gU3RyaW5nKHRpdGxlKTsKKworICAgIHNldFN1
Yk1lbnUoc3ViTWVudSk7CiB9CiAKIENvbnRleHRNZW51SXRlbTo6fkNvbnRleHRNZW51SXRlbSgp
CiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBpZiAobV9wbGF0Zm9ybURlc2NyaXB0aW9u
LnN1Yk1lbnUpCisgICAgICAgIGRlbGV0ZSBtX3BsYXRmb3JtRGVzY3JpcHRpb24uc3ViTWVudTsK
IH0KIAogUGxhdGZvcm1NZW51SXRlbURlc2NyaXB0aW9uIENvbnRleHRNZW51SXRlbTo6cmVsZWFz
ZVBsYXRmb3JtRGVzY3JpcHRpb24oKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0
dXJuIG1fcGxhdGZvcm1EZXNjcmlwdGlvbjsKIH0KIAogQ29udGV4dE1lbnVJdGVtVHlwZSBDb250
ZXh0TWVudUl0ZW06OnR5cGUoKSBjb25zdAogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAg
cmV0dXJuIEFjdGlvblR5cGU7CisgICAgcmV0dXJuIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi50eXBl
OwogfQogCi12b2lkIENvbnRleHRNZW51SXRlbTo6c2V0VHlwZShDb250ZXh0TWVudUl0ZW1UeXBl
KQordm9pZCBDb250ZXh0TWVudUl0ZW06OnNldFR5cGUoQ29udGV4dE1lbnVJdGVtVHlwZSB0eXBl
KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLnR5
cGUgPSB0eXBlOwogfQogCiBDb250ZXh0TWVudUFjdGlvbiBDb250ZXh0TWVudUl0ZW06OmFjdGlv
bigpIGNvbnN0CiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gQ29udGV4dE1l
bnVJdGVtVGFnTm9BY3Rpb247CisgICAgcmV0dXJuIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi5hY3Rp
b247CiB9CiAKLXZvaWQgQ29udGV4dE1lbnVJdGVtOjpzZXRBY3Rpb24oQ29udGV4dE1lbnVBY3Rp
b24pCit2b2lkIENvbnRleHRNZW51SXRlbTo6c2V0QWN0aW9uKENvbnRleHRNZW51QWN0aW9uIGFj
dGlvbikKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlv
bi5hY3Rpb24gPSBhY3Rpb247CiB9CiAKIFN0cmluZyBDb250ZXh0TWVudUl0ZW06OnRpdGxlKCkg
Y29uc3QKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKKyAg
ICByZXR1cm4gbV9wbGF0Zm9ybURlc2NyaXB0aW9uLnRpdGxlOwogfQogCi12b2lkIENvbnRleHRN
ZW51SXRlbTo6c2V0VGl0bGUoY29uc3QgU3RyaW5nJikKK3ZvaWQgQ29udGV4dE1lbnVJdGVtOjpz
ZXRUaXRsZShjb25zdCBTdHJpbmcmIHRpdGxlKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLnRpdGxlID0gU3RyaW5nKHRpdGxlKTsKIH0KIAogUGxh
dGZvcm1NZW51RGVzY3JpcHRpb24gQ29udGV4dE1lbnVJdGVtOjpwbGF0Zm9ybVN1Yk1lbnUoKSBj
b25zdAogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7CisgICAgaWYgKCFt
X3BsYXRmb3JtRGVzY3JpcHRpb24uc3ViTWVudSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBy
ZXR1cm4gbV9wbGF0Zm9ybURlc2NyaXB0aW9uLnN1Yk1lbnUtPnBsYXRmb3JtRGVzY3JpcHRpb24o
KTsKKwogfQogCi12b2lkIENvbnRleHRNZW51SXRlbTo6c2V0U3ViTWVudShDb250ZXh0TWVudSop
Cit2b2lkIENvbnRleHRNZW51SXRlbTo6c2V0U3ViTWVudShDb250ZXh0TWVudSogc3ViTWVudSkK
IHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIGRlbGV0ZSBtX3BsYXRmb3JtRGVzY3JpcHRp
b24uc3ViTWVudTsKKyAgICBtX3BsYXRmb3JtRGVzY3JpcHRpb24uc3ViTWVudSA9IDA7CisKKyAg
ICBpZiAoIXN1Yk1lbnUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcGxhdGZvcm1EZXNjcmlw
dGlvbi50eXBlID0gU3VibWVudVR5cGU7CisgICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLnN1Yk1l
bnUgPSBuZXcgQ29udGV4dE1lbnUoc3ViTWVudS0+aGl0VGVzdFJlc3VsdCgpLAorICAgICAgICAg
ICAgc3ViTWVudS0+cmVsZWFzZVBsYXRmb3JtRGVzY3JpcHRpb24oKSk7CiB9CiAKLXZvaWQgQ29u
dGV4dE1lbnVJdGVtOjpzZXRDaGVja2VkKGJvb2wpCitib29sIENvbnRleHRNZW51SXRlbTo6Y2hl
Y2tlZCgpIGNvbnN0CiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbV9wbGF0
Zm9ybURlc2NyaXB0aW9uLmNoZWNrZWQ7CiB9CiAKLXZvaWQgQ29udGV4dE1lbnVJdGVtOjpzZXRF
bmFibGVkKGJvb2wpCit2b2lkIENvbnRleHRNZW51SXRlbTo6c2V0Q2hlY2tlZChib29sIHNob3Vs
ZENoZWNrKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgbV9wbGF0Zm9ybURlc2NyaXB0
aW9uLmNoZWNrZWQgPSBzaG91bGRDaGVjazsKK30KKworYm9vbCBDb250ZXh0TWVudUl0ZW06OmVu
YWJsZWQoKSBjb25zdAoreworICAgIHJldHVybiBtX3BsYXRmb3JtRGVzY3JpcHRpb24uZW5hYmxl
ZDsKK30KKwordm9pZCBDb250ZXh0TWVudUl0ZW06OnNldEVuYWJsZWQoYm9vbCBzaG91bGRFbmFi
bGUpCit7CisgICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLmVuYWJsZWQgPSBzaG91bGRFbmFibGU7
CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1dlYktpdC9DaGFuZ2VMb2cgYi9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDAxMDVkMzIuLjdiOWRhMmIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEwLTA1LTI3ICBMdWNhcyBE
ZSBNYXJjaGkgIDxsdWNhcy5kZW1hcmNoaUBwcm9mdXNpb24ubW9iaT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbRUZMXSBBZGQgQ29udGV4dCBNZW51
IGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zOTgyMQorCisgICAgICAgICogZWZsL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51
Q2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q2xpZW50RWZsOjpn
ZXRDdXN0b21NZW51RnJvbURlZmF1bHRJdGVtcyk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0
TWVudUNsaWVudEVmbDo6bmV3UGxhdGZvcm1EZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpDb250ZXh0TWVudUNsaWVudEVmbDo6ZnJlZVBsYXRmb3JtRGVzY3JpcHRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDbGllbnRFZmw6OmFwcGVuZEl0ZW0pOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGV4dE1lbnVDbGllbnRFZmw6OnNob3cpOgorICAgICAgICAqIGVmbC9XZWJD
b3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEVmbC5oOgorICAgICAgICAqIGVmbC9ld2svZXdr
X2NvbnRleHRtZW51LmNwcDogQWRkZWQuIEltcGxlbWVudCB0aGUgQVBJIHVzZWQgYnkKKyAgICAg
ICAgYnJvd3NlciBmb3IgbWFuaXB1bGF0aW5nIGNvbnRleHQgbWVudXMuCisgICAgICAgIChld2tf
Y29udGV4dF9tZW51X3JlZik6CisgICAgICAgIChld2tfY29udGV4dF9tZW51X3VucmVmKToKKyAg
ICAgICAgKGV3a19jb250ZXh0X21lbnVfZGVzdHJveSk6CisgICAgICAgIChld2tfY29udGV4dF9t
ZW51X2l0ZW1fbGlzdF9nZXQpOgorICAgICAgICAoZXdrX2NvbnRleHRfbWVudV9pdGVtX25ldyk6
CisgICAgICAgIChld2tfY29udGV4dF9tZW51X2l0ZW1fc2VsZWN0KToKKyAgICAgICAgKGV3a19j
b250ZXh0X21lbnVfaXRlbV9mcmVlKToKKyAgICAgICAgKGV3a19jb250ZXh0X21lbnVfaXRlbV90
eXBlX2dldCk6CisgICAgICAgIChld2tfY29udGV4dF9tZW51X2l0ZW1fdHlwZV9zZXQpOgorICAg
ICAgICAoZXdrX2NvbnRleHRfbWVudV9pdGVtX2FjdGlvbl9nZXQpOgorICAgICAgICAoZXdrX2Nv
bnRleHRfbWVudV9pdGVtX2FjdGlvbl9zZXQpOgorICAgICAgICAoZXdrX2NvbnRleHRfbWVudV9p
dGVtX3RpdGxlX2dldCk6CisgICAgICAgIChld2tfY29udGV4dF9tZW51X2l0ZW1fdGl0bGVfc2V0
KToKKyAgICAgICAgKGV3a19jb250ZXh0X21lbnVfaXRlbV9jaGVja2VkX2dldCk6CisgICAgICAg
IChld2tfY29udGV4dF9tZW51X2l0ZW1fY2hlY2tlZF9zZXQpOgorICAgICAgICAoZXdrX2NvbnRl
eHRfbWVudV9pdGVtX2VuYWJsZWRfZ2V0KToKKyAgICAgICAgKGV3a19jb250ZXh0X21lbnVfaXRl
bV9lbmFibGVkX3NldCk6CisgICAgICAgIChld2tfY29udGV4dF9tZW51X25ldyk6CisgICAgICAg
IChld2tfY29udGV4dF9tZW51X2ZyZWUpOgorICAgICAgICAoZXdrX2NvbnRleHRfbWVudV9pdGVt
X2FwcGVuZCk6CisgICAgICAgIChld2tfY29udGV4dF9tZW51X2N1c3RvbV9nZXQpOgorICAgICAg
ICAoZXdrX2NvbnRleHRfbWVudV9zaG93KToKKyAgICAgICAgKiBlZmwvZXdrL2V3a19jb250ZXh0
bWVudS5oOiBBZGRlZC4KKyAgICAgICAgKiBlZmwvZXdrL2V3a19wcml2YXRlLmg6CisgICAgICAg
ICogZWZsL2V3ay9ld2tfdmlldy5jcHA6CisgICAgICAgIChld2tfdmlld19jb250ZXh0X21lbnVf
Zm9yd2FyZF9ldmVudCk6IGluZm9ybSBicm93c2VyIGEgbmV3IGNvbnRleHQKKyAgICAgICAgbWVu
dSB3YXMgY3JlYXRlZC4KKyAgICAgICAgKiBlZmwvZXdrL2V3a192aWV3Lmg6CisKIDIwMTAtMDUt
MjYgIEx1Y2FzIERlIE1hcmNoaSAgPGx1Y2FzLmRlbWFyY2hpQHByb2Z1c2lvbi5tb2JpPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEVmbC5jcHAgYi9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50RWZsLmNwcAppbmRleCBhYWE2NGQ3Li41MTkx
NWI0IDEwMDY0NAotLS0gYS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xp
ZW50RWZsLmNwcAorKysgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xp
ZW50RWZsLmNwcApAQCAtMjksOSArMjksMTIgQEAKICNpbmNsdWRlICJDb250ZXh0TWVudUNsaWVu
dEVmbC5oIgogCiAjaW5jbHVkZSAiQ29udGV4dE1lbnUuaCIKKyNpbmNsdWRlICJFV2ViS2l0Lmgi
CisjaW5jbHVkZSAiZXdrX3ByaXZhdGUuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCiAj
aW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAi
UGxhdGZvcm1NZW51RGVzY3JpcHRpb24uaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
QEAgLTQ3LDEwICs1MCwxMSBAQCB2b2lkIENvbnRleHRNZW51Q2xpZW50RWZsOjpjb250ZXh0TWVu
dURlc3Ryb3llZCgpCiAgICAgZGVsZXRlIHRoaXM7CiB9CiAKLVBsYXRmb3JtTWVudURlc2NyaXB0
aW9uIENvbnRleHRNZW51Q2xpZW50RWZsOjpnZXRDdXN0b21NZW51RnJvbURlZmF1bHRJdGVtcyhD
b250ZXh0TWVudSopCitQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiBDb250ZXh0TWVudUNsaWVudEVm
bDo6Z2V0Q3VzdG9tTWVudUZyb21EZWZhdWx0SXRlbXMoQ29udGV4dE1lbnUqIG1lbnUpCiB7Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gMDsKKyAgICBQbGF0Zm9ybU1lbnVEZXNj
cmlwdGlvbiBuZXdtZW51ID0gZXdrX2NvbnRleHRfbWVudV9jdXN0b21fZ2V0KHN0YXRpY19jYXN0
PEV3a19Db250ZXh0X01lbnUqPihtZW51LT5yZWxlYXNlUGxhdGZvcm1EZXNjcmlwdGlvbigpKSk7
CisKKyAgICByZXR1cm4gbmV3bWVudTsKIH0KIAogdm9pZCBDb250ZXh0TWVudUNsaWVudEVmbDo6
Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVJdGVtKiwgY29uc3QgQ29udGV4dE1l
bnUqKQpAQCAtODksNCArOTMsMjQgQEAgdm9pZCBDb250ZXh0TWVudUNsaWVudEVmbDo6c3RvcFNw
ZWFraW5nKCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCitQbGF0Zm9ybU1lbnVEZXNjcmlw
dGlvbiBDb250ZXh0TWVudUNsaWVudEVmbDo6bmV3UGxhdGZvcm1EZXNjcmlwdGlvbihDb250ZXh0
TWVudSogbWVudSkKK3sKKyAgICByZXR1cm4gKFBsYXRmb3JtTWVudURlc2NyaXB0aW9uKSBld2tf
Y29udGV4dF9tZW51X25ldyhtX3ZpZXcsIG1lbnUtPmNvbnRyb2xsZXIoKSk7Cit9CisKK3ZvaWQg
Q29udGV4dE1lbnVDbGllbnRFZmw6OmZyZWVQbGF0Zm9ybURlc2NyaXB0aW9uKFBsYXRmb3JtTWVu
dURlc2NyaXB0aW9uIG1lbnUpCit7CisgICAgZXdrX2NvbnRleHRfbWVudV9mcmVlKHN0YXRpY19j
YXN0PEV3a19Db250ZXh0X01lbnUqPihtZW51KSk7Cit9CisKK3ZvaWQgQ29udGV4dE1lbnVDbGll
bnRFZmw6OmFwcGVuZEl0ZW0oUGxhdGZvcm1NZW51RGVzY3JpcHRpb24gbWVudSwgQ29udGV4dE1l
bnVJdGVtJiBpdGVtKQoreworICAgIGV3a19jb250ZXh0X21lbnVfaXRlbV9hcHBlbmQoc3RhdGlj
X2Nhc3Q8RXdrX0NvbnRleHRfTWVudSo+KG1lbnUpLCBpdGVtKTsKK30KKwordm9pZCBDb250ZXh0
TWVudUNsaWVudEVmbDo6c2hvdyhQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiBtZW51KQoreworICAg
IGV3a19jb250ZXh0X21lbnVfc2hvdyhzdGF0aWNfY2FzdDxFd2tfQ29udGV4dF9NZW51Kj4obWVu
dSkpOworfQorCiB9CmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0NvbnRl
eHRNZW51Q2xpZW50RWZsLmggYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51
Q2xpZW50RWZsLmgKaW5kZXggMmMzODE4Yy4uZDhjYzFhMSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEVmbC5oCisrKyBiL1dlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuaApAQCAtNTAsNiArNTAsMTAgQEAg
Y2xhc3MgQ29udGV4dE1lbnVDbGllbnRFZmwgOiBwdWJsaWMgQ29udGV4dE1lbnVDbGllbnQgewog
ICAgIHZpcnR1YWwgYm9vbCBpc1NwZWFraW5nKCk7CiAgICAgdmlydHVhbCB2b2lkIHN0b3BTcGVh
a2luZygpOwogCisgICAgUGxhdGZvcm1NZW51RGVzY3JpcHRpb24gbmV3UGxhdGZvcm1EZXNjcmlw
dGlvbihDb250ZXh0TWVudSopOworICAgIHZvaWQgZnJlZVBsYXRmb3JtRGVzY3JpcHRpb24oUGxh
dGZvcm1NZW51RGVzY3JpcHRpb24pOworICAgIHZvaWQgYXBwZW5kSXRlbShQbGF0Zm9ybU1lbnVE
ZXNjcmlwdGlvbiwgQ29udGV4dE1lbnVJdGVtJik7CisgICAgdm9pZCBzaG93KFBsYXRmb3JtTWVu
dURlc2NyaXB0aW9uIG1lbnUpOwogIHByaXZhdGU6CiAgICAgRXZhc19PYmplY3QqIG1fdmlldzsK
IH07CmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oIGIvV2ViS2l0L2Vm
bC9ld2svZXdrX3ByaXZhdGUuaAppbmRleCBjZWJiZWJhLi41MzM0ZWQ3IDEwMDY0NAotLS0gYS9X
ZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCisrKyBiL1dlYktpdC9lZmwvZXdrL2V3a19wcml2
YXRlLmgKQEAgLTQ0LDYgKzQ0LDggQEAgZXh0ZXJuICJDIiB7CiAvLyBmb3J3YXJkIGRlY2xhcmF0
aW9ucwogbmFtZXNwYWNlIFdlYkNvcmUgewogc3RydWN0IFBvcHVwTWVudUNsaWVudDsKK3N0cnVj
dCBDb250ZXh0TWVudTsKK3N0cnVjdCBDb250ZXh0TWVudUl0ZW07CiB9CiAKIHZvaWQgICAgICAg
ICAgICAgZXdrX3ZpZXdfcmVhZHkoRXZhc19PYmplY3QgKm8pOwpAQCAtOTQsNiArOTYsMTIgQEAg
dm9pZCAgICAgICAgICAgICBld2tfdmlld19wb3B1cF9uZXcoRXZhc19PYmplY3QgKm8sIFdlYkNv
cmU6OlBvcHVwTWVudUNsaWVudCogY2wKIEV3a19IaXN0b3J5ICAgICAgKmV3a19oaXN0b3J5X25l
dyhXZWJDb3JlOjpCYWNrRm9yd2FyZExpc3QgKmhpc3RvcnkpOwogdm9pZCAgICAgICAgICAgICAg
ZXdrX2hpc3RvcnlfZnJlZShFd2tfSGlzdG9yeSAqaGlzdG9yeSk7CiAKK0V3a19Db250ZXh0X01l
bnUgKmV3a19jb250ZXh0X21lbnVfbmV3KEV2YXNfT2JqZWN0ICp2aWV3LCBXZWJDb3JlOjpDb250
ZXh0TWVudUNvbnRyb2xsZXIgKmNvbnRyb2xsZXIpOworRWluYV9Cb29sICAgICAgICAgZXdrX2Nv
bnRleHRfbWVudV9mcmVlKEV3a19Db250ZXh0X01lbnUgKm8pOwordm9pZCAgICAgICAgICAgICAg
ZXdrX2NvbnRleHRfbWVudV9pdGVtX2FwcGVuZChFd2tfQ29udGV4dF9NZW51ICpvLCBXZWJDb3Jl
OjpDb250ZXh0TWVudUl0ZW0mIGNvcmUpOworRXdrX0NvbnRleHRfTWVudSAqZXdrX2NvbnRleHRf
bWVudV9jdXN0b21fZ2V0KEV3a19Db250ZXh0X01lbnUgKm8pOwordm9pZCAgICAgICAgICAgICAg
ZXdrX2NvbnRleHRfbWVudV9zaG93KEV3a19Db250ZXh0X01lbnUgKm8pOworCiBFdmFzX09iamVj
dCAgICAgICpld2tfZnJhbWVfYWRkKEV2YXMgKmUpOwogRWluYV9Cb29sICAgICAgICAgZXdrX2Zy
YW1lX2luaXQoRXZhc19PYmplY3QgKm8sIEV2YXNfT2JqZWN0ICp2aWV3LCBXZWJDb3JlOjpGcmFt
ZSAqZnJhbWUpOwogRXZhc19PYmplY3QgICAgICAqZXdrX2ZyYW1lX2NoaWxkX2FkZChFdmFzX09i
amVjdCAqbywgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkZyYW1lPiBjaGlsZCwgY29uc3QgV2Vi
Q29yZTo6U3RyaW5nJiBuYW1lLCBjb25zdCBXZWJDb3JlOjpLVVJMJiB1cmwsIGNvbnN0IFdlYkNv
cmU6OlN0cmluZyYgcmVmZXJyZXIpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9ld2svZXdrX3Zp
ZXcuY3BwIGIvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCmluZGV4IDI3MTYxY2MuLjg1MWYy
NjYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAorKysgYi9XZWJLaXQv
ZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAgLTIzLDE1ICsyMywxOCBAQAogCiAjaW5jbHVkZSAiQ2hy
b21lQ2xpZW50RWZsLmgiCiAjaW5jbHVkZSAiQ29udGV4dE1lbnVDbGllbnRFZmwuaCIKKyNpbmNs
dWRlICJDb250ZXh0TWVudUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5o
IgogI2luY2x1ZGUgIkRyYWdDbGllbnRFZmwuaCIKICNpbmNsdWRlICJFV2ViS2l0LmgiCiAjaW5j
bHVkZSAiRWRpdG9yQ2xpZW50RWZsLmgiCisjaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCiAjaW5j
bHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRFZmwu
aCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIK
ICNpbmNsdWRlICJJbnNwZWN0b3JDbGllbnRFZmwuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybU1vdXNl
RXZlbnQuaCIKICNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIKICNpbmNsdWRlICJQcm9ncmVz
c1RyYWNrZXIuaCIKICNpbmNsdWRlICJld2tfcHJpdmF0ZS5oIgpAQCAtMTQ3Nyw2ICsxNDgwLDQ2
IEBAIEVpbmFfQm9vbCBld2tfdmlld19zZWxlY3Rfd29yZChFdmFzX09iamVjdCogbykKIH0KIAog
LyoqCisgKiBGb3J3YXJkcyBhIHJlcXVlc3Qgb2YgbmV3IENvbnRleHQgTWVudSB0byBXZWJDb3Jl
LgorICoKKyAqIEBwYXJhbSBvIFZpZXcuCisgKiBAcGFyYW0gZXYgRXZlbnQgZGF0YS4KKyAqCisg
KiBAcmV0dXJuIEBjIEVJTkFfVFJVRSBpZiBvcGVyYXRpb24gd2FzIGV4ZWN1dGVkLCBAYyBFSU5B
X0ZBTFNFIG90aGVyd2lzZS4KKyAqLworRWluYV9Cb29sIGV3a192aWV3X2NvbnRleHRfbWVudV9m
b3J3YXJkX2V2ZW50KEV2YXNfT2JqZWN0KiBvLCBjb25zdCBFdmFzX0V2ZW50X01vdXNlX0Rvd24q
IGV2KQoreworICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4obywgc2QsIEVJTkFfRkFMU0Up
OworICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzZCwgcHJpdiwgRUlOQV9GQUxTRSk7
CisgICAgRWluYV9Cb29sIG1vdXNlX3ByZXNzX2hhbmRsZWQgPSBFSU5BX0ZBTFNFOworCisgICAg
cHJpdi0+cGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCktPmNsZWFyQ29udGV4dE1lbnUoKTsK
KyAgICBXZWJDb3JlOjpGcmFtZSogbWFpbl9mcmFtZSA9IHByaXYtPnBhZ2UtPm1haW5GcmFtZSgp
OworICAgIEV2YXNfQ29vcmQgeCwgeTsKKyAgICBldmFzX29iamVjdF9nZW9tZXRyeV9nZXQoc2Qt
PnNlbGYsICZ4LCAmeSwgMCwgMCk7CisKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1vdXNlRXZlbnQg
ZXZlbnQoZXYsIFdlYkNvcmU6OkludFBvaW50KHgsIHkpKTsKKworICAgIGlmIChtYWluX2ZyYW1l
LT52aWV3KCkpIHsKKyAgICAgICAgbW91c2VfcHJlc3NfaGFuZGxlZCA9CisgICAgICAgICAgICBt
YWluX2ZyYW1lLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlTW91c2VQcmVzc0V2ZW50KGV2ZW50KTsK
KyAgICB9CisKKyAgICBpZiAobWFpbl9mcmFtZS0+ZXZlbnRIYW5kbGVyKCktPnNlbmRDb250ZXh0
TWVudUV2ZW50KGV2ZW50KSkKKyAgICAgICAgcmV0dXJuIEVJTkFfRkFMU0U7CisKKyAgICBXZWJD
b3JlOjpDb250ZXh0TWVudSogY29yZU1lbnUgPQorICAgICAgICBwcml2LT5wYWdlLT5jb250ZXh0
TWVudUNvbnRyb2xsZXIoKS0+Y29udGV4dE1lbnUoKTsKKyAgICBpZiAoIWNvcmVNZW51KSB7Cisg
ICAgICAgIC8vIFdlYkNvcmUgZGVjaWRlZCBub3QgdG8gY3JlYXRlIGEgY29udGV4dCBtZW51LCBy
ZXR1cm4gdHJ1ZSBpZiBldmVudAorICAgICAgICAvLyB3YXMgaGFuZGxlZCBieSBoYW5kbGVNb3Vz
ZVJlbGVhc2VFdmVudAorICAgICAgICByZXR1cm4gbW91c2VfcHJlc3NfaGFuZGxlZDsKKyAgICB9
CisKKyAgICByZXR1cm4gRUlOQV9UUlVFOworfQorCisvKioKICAqIEdldCBjdXJyZW50IGxvYWQg
cHJvZ3Jlc3MgZXN0aW1hdGUgZnJvbSAwLjAgdG8gMS4wLgogICoKICAqIEBwYXJhbSBvIHZpZXcg
b2JqZWN0IHRvIGdldCBjdXJyZW50IHByb2dyZXNzLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9l
d2svZXdrX3ZpZXcuaCBiL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgKaW5kZXggMjBkZjYwMS4u
NGQxYjgxOSAxMDA2NDQKLS0tIGEvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaAorKysgYi9XZWJL
aXQvZWZsL2V3ay9ld2tfdmlldy5oCkBAIC0zMDUsNiArMzA1LDggQEAgRUFQSSBFaW5hX0Jvb2wg
ICAgZXdrX3ZpZXdfc2VsZWN0X3NlbnRlbmNlKEV2YXNfT2JqZWN0ICpvKTsKIEVBUEkgRWluYV9C
b29sICAgIGV3a192aWV3X3NlbGVjdF9saW5lKEV2YXNfT2JqZWN0ICpvKTsKIEVBUEkgRWluYV9C
b29sICAgIGV3a192aWV3X3NlbGVjdF93b3JkKEV2YXNfT2JqZWN0ICpvKTsKIAorRUFQSSBFaW5h
X0Jvb2wgICAgZXdrX3ZpZXdfY29udGV4dF9tZW51X2ZvcndhcmRfZXZlbnQoRXZhc19PYmplY3Qg
Km8sIGNvbnN0IEV2YXNfRXZlbnRfTW91c2VfRG93biAqZXYpOworCiBFQVBJIHZvaWQgICAgICAg
ICBld2tfdmlld19wb3B1cF9zZWxlY3RlZF9zZXQoRXZhc19PYmplY3QgKm8sIGludCBpbmRleCk7
CiBFQVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19wb3B1cF9kZXN0cm95KEV2YXNfT2JqZWN0ICpv
KTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57314</attachid>
            <date>2010-05-28 03:53:27 -0700</date>
            <delta_ts>2010-05-28 18:42:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39821-20100528075400.patch</filename>
            <type>text/plain</type>
            <size>34775</size>
            <attacher name="Lucas De Marchi">lucas.de.marchi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YTkxM2Q2MmY4Y2JlNmViZGI3MTE2NTRiNTVhMzkzOTUzYjZhZDdlNS4uYmFkZmE5MWRlMDNjZjI3
YTU0ZTcwNzNhODMxYWFiMGI1ODBiYWEwZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAxMC0wNS0yOCAgTHVj
YXMgRGUgTWFyY2hpICA8bHVjYXMuZGVtYXJjaGlAcHJvZnVzaW9uLm1vYmk+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0VGTF0gQWRkIENvbnRleHQg
TWVudSBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Mzk4MjEKKworICAgICAgICAqIHBsYXRmb3JtL0NvbnRleHRNZW51Lmg6IGFk
ZCBwb3J0LXNwZWNpZmljIGF0dHJpYnV0ZXMuCisgICAgICAgICogcGxhdGZvcm0vQ29udGV4dE1l
bnVJdGVtLmg6IGNyZWF0ZSBQbGF0Zm9ybU1lbnVJdGVtRGVzY3JpcHRpb24gYXMgaW4KKyAgICAg
ICAgb3RoZXIgcG9ydHMKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVudUl0ZW1EZXNjcmlw
dGlvbjo6UGxhdGZvcm1NZW51SXRlbURlc2NyaXB0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9l
ZmwvQ29udGV4dE1lbnVFZmwuY3BwOmltcGxlbWVudCBuZWVkZWQgbWV0aG9kcyBmb3IgdGhpcwor
ICAgICAgICBwb3J0LgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnU6OkNvbnRleHRNZW51
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Ojp+Q29udGV4dE1lbnUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29udGV4dE1lbnU6OmFwcGVuZEl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGV4dE1lbnU6OnNldFBsYXRmb3JtRGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGV4dE1lbnU6OnJlbGVhc2VQbGF0Zm9ybURlc2NyaXB0aW9uKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9lZmwvQ29udGV4dE1lbnVJdGVtRWZsLmNwcDogIGltcGxlbWVudCBuZWVkZWQgbWV0aG9k
cyBmb3IKKyAgICAgICAgdGhpcyBwb3J0LgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJ
dGVtOjpDb250ZXh0TWVudUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVt
Ojp+Q29udGV4dE1lbnVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbTo6
cmVsZWFzZVBsYXRmb3JtRGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1l
bnVJdGVtOjp0eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbTo6c2V0VHlw
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW06OmFjdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW06OnNldEFjdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpDb250ZXh0TWVudUl0ZW06OnRpdGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51
SXRlbTo6c2V0VGl0bGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtOjpwbGF0
Zm9ybVN1Yk1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtOjpzZXRTdWJN
ZW51KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbTo6Y2hlY2tlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW06OnNldENoZWNrZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29udGV4dE1lbnVJdGVtOjplbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
eHRNZW51SXRlbTo6c2V0RW5hYmxlZCk6CisKIDIwMTAtMDUtMjcgIE1PUklUQSBIYWppbWUgIDxt
b3JyaXRhQGdvb2dsZS5jb20+CiAKICAgICAgICAgTm90IHJldmlld2VkLiBGaXhlZCB0eXBvCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmggYi9XZWJDb3JlL3BsYXRm
b3JtL0NvbnRleHRNZW51LmgKaW5kZXggNzc4NDNkYzM0YzcwMTI1ODI3M2Q3MTFmNTNjMmNiZTEx
ODI3NDJiOS4uY2EyMWYyOWRlYzUzMTQxMmFjZTQ5N2ExNDYyMTQwMjBkOTk4OWZiYyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudS5oCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vQ29udGV4dE1lbnUuaApAQCAtNDEsNiArNDEsOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAgICAgY2xhc3MgQ29udGV4dE1lbnVDb250cm9sbGVyOworI2lmIFBMQVRGT1JNKEVGTCkKKyAg
ICBjbGFzcyBDb250ZXh0TWVudUNsaWVudEVmbDsKKyNlbmRpZgogCiAgICAgY2xhc3MgQ29udGV4
dE1lbnUgOiBwdWJsaWMgTm9uY29weWFibGUKICAgICB7CkBAIC04MCw2ICs4Myw5IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgUUxpc3Q8Q29udGV4dE1lbnVJdGVtPiBtX2l0ZW1zOwog
I2VsaWYgUExBVEZPUk0oQ0hST01JVU0pCiAgICAgICAgIFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+
IG1faXRlbXM7CisjZWxpZiBQTEFURk9STShFRkwpCisgICAgICAgIENvbnRleHRNZW51Q2xpZW50
RWZsKiBtX2NvbnRleHRNZW51Q2xpZW50OworICAgICAgICBQbGF0Zm9ybU1lbnVEZXNjcmlwdGlv
biBtX3BsYXRmb3JtRGVzY3JpcHRpb247CiAjZWxzZQogICAgICAgICBQbGF0Zm9ybU1lbnVEZXNj
cmlwdGlvbiBtX3BsYXRmb3JtRGVzY3JpcHRpb247CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmggYi9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRN
ZW51SXRlbS5oCmluZGV4IDg4ZmYwYWQ2MGQ1OTI1ZDUzM2RkYzg1ODcwODQxZTI5ZWE4YzUwNjYu
LjBmZmUzMzgzMjkwZDFkYTdhYzJhODkzZjMyMjlkYzgzMjYyZDg1NzAgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9D
b250ZXh0TWVudUl0ZW0uaApAQCAtMjIyLDYgKzIyMiwyMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIGJvb2wgY2hlY2tlZDsKICAgICAgICAgYm9vbCBlbmFibGVkOwogICAgIH07Cisj
ZWxpZiBQTEFURk9STShFRkwpCisgICAgc3RydWN0IFBsYXRmb3JtTWVudUl0ZW1EZXNjcmlwdGlv
biB7CisgICAgICAgIFBsYXRmb3JtTWVudUl0ZW1EZXNjcmlwdGlvbigpCisgICAgICAgICAgICA6
IHR5cGUoQWN0aW9uVHlwZSkKKyAgICAgICAgICAgICwgYWN0aW9uKENvbnRleHRNZW51SXRlbVRh
Z05vQWN0aW9uKQorICAgICAgICAgICAgLCB0aXRsZSgiIikKKyAgICAgICAgICAgICwgc3ViTWVu
dSgwKQorICAgICAgICAgICAgLCBjaGVja2VkKGZhbHNlKQorICAgICAgICAgICAgLCBlbmFibGVk
KHRydWUpIHsgfQorICAgICAgICBDb250ZXh0TWVudUl0ZW1UeXBlIHR5cGU7CisgICAgICAgIENv
bnRleHRNZW51QWN0aW9uIGFjdGlvbjsKKyAgICAgICAgU3RyaW5nIHRpdGxlOworICAgICAgICBD
b250ZXh0TWVudSogc3ViTWVudTsKKyAgICAgICAgYm9vbCBjaGVja2VkOworICAgICAgICBib29s
IGVuYWJsZWQ7CisgICAgfTsKICNlbHNlCiAgICAgdHlwZWRlZiB2b2lkKiBQbGF0Zm9ybU1lbnVJ
dGVtRGVzY3JpcHRpb247CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZWZs
L0NvbnRleHRNZW51RWZsLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51RWZs
LmNwcAppbmRleCAyNDBmMTA2NDY1YTc0NWMyYzdhY2Y2MjM1NDYwZmNhNGRmZDkyYzEzLi45NTNl
N2IzMWM2ZGMyOTk1M2ExYTZkMjA2NzU5M2RhZGY2MzM0NzdhIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL2VmbC9Db250ZXh0TWVudUVmbC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9l
ZmwvQ29udGV4dE1lbnVFZmwuY3BwCkBAIC0yMiwzMCArMjIsNDcgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJDb250ZXh0TWVudS5oIgogCisjaW5jbHVkZSAiQ29udGV4dE1lbnVD
bGllbnQuaCIKKyNpbmNsdWRlICJDb250ZXh0TWVudUNsaWVudEVmbC5oIgorI2luY2x1ZGUgIkNv
bnRleHRNZW51Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogQ29udGV4dE1lbnU6OkNvbnRleHRNZW51KGNvbnN0IEhpdFRl
c3RSZXN1bHQmIHJlc3VsdCkKICAgICA6IG1faGl0VGVzdFJlc3VsdChyZXN1bHQpCi0gICAgLCBt
X3BsYXRmb3JtRGVzY3JpcHRpb24oMCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIG1f
Y29udGV4dE1lbnVDbGllbnQgPQorICAgICAgICBzdGF0aWNfY2FzdDxDb250ZXh0TWVudUNsaWVu
dEVmbCo+KGNvbnRyb2xsZXIoKS0+Y2xpZW50KCkpOworICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlv
biA9IG1fY29udGV4dE1lbnVDbGllbnQtPm5ld1BsYXRmb3JtRGVzY3JpcHRpb24odGhpcyk7Cit9
CisKK0NvbnRleHRNZW51OjpDb250ZXh0TWVudShjb25zdCBIaXRUZXN0UmVzdWx0JiByZXN1bHQs
IGNvbnN0IFBsYXRmb3JtTWVudURlc2NyaXB0aW9uIG1lbnUpCisgICAgOiBtX2hpdFRlc3RSZXN1
bHQocmVzdWx0KQorICAgICwgbV9wbGF0Zm9ybURlc2NyaXB0aW9uKG1lbnUpCit7CisgICAgbV9j
b250ZXh0TWVudUNsaWVudCA9CisgICAgICAgIHN0YXRpY19jYXN0PENvbnRleHRNZW51Q2xpZW50
RWZsKj4oY29udHJvbGxlcigpLT5jbGllbnQoKSk7CiB9CiAKIENvbnRleHRNZW51Ojp+Q29udGV4
dE1lbnUoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgaWYgKG1fcGxhdGZvcm1EZXNj
cmlwdGlvbikKKyAgICAgICAgbV9jb250ZXh0TWVudUNsaWVudC0+ZnJlZVBsYXRmb3JtRGVzY3Jp
cHRpb24obV9wbGF0Zm9ybURlc2NyaXB0aW9uKTsKIH0KIAotdm9pZCBDb250ZXh0TWVudTo6YXBw
ZW5kSXRlbShDb250ZXh0TWVudUl0ZW0mKQordm9pZCBDb250ZXh0TWVudTo6YXBwZW5kSXRlbShD
b250ZXh0TWVudUl0ZW0mIGl0ZW0pCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBjaGVj
a09yRW5hYmxlSWZOZWVkZWQoaXRlbSk7CisgICAgbV9jb250ZXh0TWVudUNsaWVudC0+YXBwZW5k
SXRlbShtX3BsYXRmb3JtRGVzY3JpcHRpb24sIGl0ZW0pOwogfQogCiB2b2lkIENvbnRleHRNZW51
OjpzZXRQbGF0Zm9ybURlc2NyaXB0aW9uKFBsYXRmb3JtTWVudURlc2NyaXB0aW9uIG1lbnUpCiB7
CisgICAgQVNTRVJUKCFtX3BsYXRmb3JtRGVzY3JpcHRpb24pOworCiAgICAgbV9wbGF0Zm9ybURl
c2NyaXB0aW9uID0gbWVudTsKKyAgICBtX2NvbnRleHRNZW51Q2xpZW50LT5zaG93KG1fcGxhdGZv
cm1EZXNjcmlwdGlvbik7CiB9CiAKIFBsYXRmb3JtTWVudURlc2NyaXB0aW9uIENvbnRleHRNZW51
OjpwbGF0Zm9ybURlc2NyaXB0aW9uKCkgY29uc3QKQEAgLTU1LDggKzcyLDEyIEBAIFBsYXRmb3Jt
TWVudURlc2NyaXB0aW9uIENvbnRleHRNZW51OjpwbGF0Zm9ybURlc2NyaXB0aW9uKCkgY29uc3QK
IAogUGxhdGZvcm1NZW51RGVzY3JpcHRpb24gQ29udGV4dE1lbnU6OnJlbGVhc2VQbGF0Zm9ybURl
c2NyaXB0aW9uKCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAwOworICAg
IC8vIFJlZiBjb3VudGluZyByZW1haW5zIHRoZSBzYW1lLCBqdXN0IHBhc3MgaXQgYW5kIHJlbW92
ZSBvdXIgcmVmLCBzbyBpdAorICAgIC8vIHdpbGwgbm90IGRlY3JlbWVudGVkIHdoZW4gdGhpcyBv
YmplY3QgZ29lcyBhd2F5CisgICAgUGxhdGZvcm1NZW51RGVzY3JpcHRpb24gZGVzY3JpcHRpb24g
PSBtX3BsYXRmb3JtRGVzY3JpcHRpb247CisgICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uID0gMDsK
KworICAgIHJldHVybiBkZXNjcmlwdGlvbjsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVJdGVtRWZsLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZWZs
L0NvbnRleHRNZW51SXRlbUVmbC5jcHAKaW5kZXggZDY2OTEzMDVhYWI2YWQ3ZTJlOGJjNGYxMzEw
YWVlNjgwOWUyNzFlYS4uZDNkM2Y2ZjY4MzgwMjQzZGY4OGQ1ZTRkYWVhOTcxNDcyMTg5ZWVjZiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVJdGVtRWZsLmNwcAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Db250ZXh0TWVudUl0ZW1FZmwuY3BwCkBAIC0zNyw4
MiArMzcsMTA3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQ29udGV4dE1lbnVJdGVtOjpDb250
ZXh0TWVudUl0ZW0oUGxhdGZvcm1NZW51SXRlbURlc2NyaXB0aW9uKQogeworICAgIC8vIGl0J3Mg
aW5zaWRlIFdlYktpdCB0aGF0IHRoaXMgaW5pdGlhbGl6YXRpb24gaXMgZG9uZSwgYXMgV2ViQ29y
ZSBkb2Vzbid0CisgICAgLy8ga25vdyBob3cgUGxhdGZvcm1NZW51SXRlbURlc2NyaXB0aW9uIGlz
IGltcGxlbWVudGVkLgogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLUNvbnRleHRNZW51SXRl
bTo6Q29udGV4dE1lbnVJdGVtKENvbnRleHRNZW51KikKK0NvbnRleHRNZW51SXRlbTo6Q29udGV4
dE1lbnVJdGVtKENvbnRleHRNZW51KiBzdWJtZW51KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLnR5cGUgPSBTdWJtZW51VHlwZTsKKyAgICBzZXRT
dWJNZW51KHN1Ym1lbnUpOwogfQogCi1Db250ZXh0TWVudUl0ZW06OkNvbnRleHRNZW51SXRlbShD
b250ZXh0TWVudUl0ZW1UeXBlLCBDb250ZXh0TWVudUFjdGlvbiwgY29uc3QgU3RyaW5nJiwgQ29u
dGV4dE1lbnUqKQorQ29udGV4dE1lbnVJdGVtOjpDb250ZXh0TWVudUl0ZW0oQ29udGV4dE1lbnVJ
dGVtVHlwZSB0eXBlLCBDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvbnN0IFN0cmluZyYgdGl0
bGUsIENvbnRleHRNZW51KiBzdWJNZW51KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
bV9wbGF0Zm9ybURlc2NyaXB0aW9uLnR5cGUgPSB0eXBlOworICAgIG1fcGxhdGZvcm1EZXNjcmlw
dGlvbi5hY3Rpb24gPSBhY3Rpb247CisgICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLnRpdGxlID0g
U3RyaW5nKHRpdGxlKTsKKworICAgIHNldFN1Yk1lbnUoc3ViTWVudSk7CiB9CiAKIENvbnRleHRN
ZW51SXRlbTo6fkNvbnRleHRNZW51SXRlbSgpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICBpZiAobV9wbGF0Zm9ybURlc2NyaXB0aW9uLnN1Yk1lbnUpCisgICAgICAgIGRlbGV0ZSBtX3Bs
YXRmb3JtRGVzY3JpcHRpb24uc3ViTWVudTsKIH0KIAogUGxhdGZvcm1NZW51SXRlbURlc2NyaXB0
aW9uIENvbnRleHRNZW51SXRlbTo6cmVsZWFzZVBsYXRmb3JtRGVzY3JpcHRpb24oKQogewotICAg
IG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIG1fcGxhdGZvcm1EZXNjcmlwdGlvbjsKIH0K
IAogQ29udGV4dE1lbnVJdGVtVHlwZSBDb250ZXh0TWVudUl0ZW06OnR5cGUoKSBjb25zdAogewot
ICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIEFjdGlvblR5cGU7CisgICAgcmV0dXJu
IG1fcGxhdGZvcm1EZXNjcmlwdGlvbi50eXBlOwogfQogCi12b2lkIENvbnRleHRNZW51SXRlbTo6
c2V0VHlwZShDb250ZXh0TWVudUl0ZW1UeXBlKQordm9pZCBDb250ZXh0TWVudUl0ZW06OnNldFR5
cGUoQ29udGV4dE1lbnVJdGVtVHlwZSB0eXBlKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLnR5cGUgPSB0eXBlOwogfQogCiBDb250ZXh0TWVudUFj
dGlvbiBDb250ZXh0TWVudUl0ZW06OmFjdGlvbigpIGNvbnN0CiB7Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKLSAgICByZXR1cm4gQ29udGV4dE1lbnVJdGVtVGFnTm9BY3Rpb247CisgICAgcmV0dXJu
IG1fcGxhdGZvcm1EZXNjcmlwdGlvbi5hY3Rpb247CiB9CiAKLXZvaWQgQ29udGV4dE1lbnVJdGVt
OjpzZXRBY3Rpb24oQ29udGV4dE1lbnVBY3Rpb24pCit2b2lkIENvbnRleHRNZW51SXRlbTo6c2V0
QWN0aW9uKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbikKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi5hY3Rpb24gPSBhY3Rpb247CiB9CiAKIFN0cmlu
ZyBDb250ZXh0TWVudUl0ZW06OnRpdGxlKCkgY29uc3QKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OwotICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICByZXR1cm4gbV9wbGF0Zm9ybURlc2NyaXB0aW9u
LnRpdGxlOwogfQogCi12b2lkIENvbnRleHRNZW51SXRlbTo6c2V0VGl0bGUoY29uc3QgU3RyaW5n
JikKK3ZvaWQgQ29udGV4dE1lbnVJdGVtOjpzZXRUaXRsZShjb25zdCBTdHJpbmcmIHRpdGxlKQog
ewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLnRpdGxl
ID0gU3RyaW5nKHRpdGxlKTsKIH0KIAogUGxhdGZvcm1NZW51RGVzY3JpcHRpb24gQ29udGV4dE1l
bnVJdGVtOjpwbGF0Zm9ybVN1Yk1lbnUoKSBjb25zdAogewotICAgIG5vdEltcGxlbWVudGVkKCk7
Ci0gICAgcmV0dXJuIDA7CisgICAgaWYgKCFtX3BsYXRmb3JtRGVzY3JpcHRpb24uc3ViTWVudSkK
KyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gbV9wbGF0Zm9ybURlc2NyaXB0aW9uLnN1
Yk1lbnUtPnBsYXRmb3JtRGVzY3JpcHRpb24oKTsKKwogfQogCi12b2lkIENvbnRleHRNZW51SXRl
bTo6c2V0U3ViTWVudShDb250ZXh0TWVudSopCit2b2lkIENvbnRleHRNZW51SXRlbTo6c2V0U3Vi
TWVudShDb250ZXh0TWVudSogc3ViTWVudSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IGRlbGV0ZSBtX3BsYXRmb3JtRGVzY3JpcHRpb24uc3ViTWVudTsKKyAgICBtX3BsYXRmb3JtRGVz
Y3JpcHRpb24uc3ViTWVudSA9IDA7CisKKyAgICBpZiAoIXN1Yk1lbnUpCisgICAgICAgIHJldHVy
bjsKKworICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi50eXBlID0gU3VibWVudVR5cGU7CisgICAg
bV9wbGF0Zm9ybURlc2NyaXB0aW9uLnN1Yk1lbnUgPSBuZXcgQ29udGV4dE1lbnUoc3ViTWVudS0+
aGl0VGVzdFJlc3VsdCgpLAorICAgICAgICAgICAgc3ViTWVudS0+cmVsZWFzZVBsYXRmb3JtRGVz
Y3JpcHRpb24oKSk7CiB9CiAKLXZvaWQgQ29udGV4dE1lbnVJdGVtOjpzZXRDaGVja2VkKGJvb2wp
Citib29sIENvbnRleHRNZW51SXRlbTo6Y2hlY2tlZCgpIGNvbnN0CiB7Ci0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gbV9wbGF0Zm9ybURlc2NyaXB0aW9uLmNoZWNrZWQ7CiB9CiAK
LXZvaWQgQ29udGV4dE1lbnVJdGVtOjpzZXRFbmFibGVkKGJvb2wpCit2b2lkIENvbnRleHRNZW51
SXRlbTo6c2V0Q2hlY2tlZChib29sIHNob3VsZENoZWNrKQogewotICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLmNoZWNrZWQgPSBzaG91bGRDaGVjazsKK30K
KworYm9vbCBDb250ZXh0TWVudUl0ZW06OmVuYWJsZWQoKSBjb25zdAoreworICAgIHJldHVybiBt
X3BsYXRmb3JtRGVzY3JpcHRpb24uZW5hYmxlZDsKK30KKwordm9pZCBDb250ZXh0TWVudUl0ZW06
OnNldEVuYWJsZWQoYm9vbCBzaG91bGRFbmFibGUpCit7CisgICAgbV9wbGF0Zm9ybURlc2NyaXB0
aW9uLmVuYWJsZWQgPSBzaG91bGRFbmFibGU7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1dlYktpdC9D
TWFrZUxpc3RzRWZsLnR4dCBiL1dlYktpdC9DTWFrZUxpc3RzRWZsLnR4dAppbmRleCAwNDZiNjEz
YjExNTI3MTliZGQ5YjgzNWQxOWM5MGIzOGM4MThmNTRiLi5jYmMwZDkyOTA4ODJkMWVkZmFlYzdm
NjcxMzRjY2YzYTAxMzZjNTgwIDEwMDY0NAotLS0gYS9XZWJLaXQvQ01ha2VMaXN0c0VmbC50eHQK
KysrIGIvV2ViS2l0L0NNYWtlTGlzdHNFZmwudHh0CkBAIC0yNSwxMiArMjUsMTMgQEAgTElTVChB
UFBFTkQgV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMKIAogTElTVChBUFBFTkQgV2ViS2l0X1NP
VVJDRVMKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAotICAgIGVm
bC9XZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEVmbAorICAgIGVmbC9XZWJDb3JlU3Vw
cG9ydC9Db250ZXh0TWVudUNsaWVudEVmbC5jcHAKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvRHJh
Z0NsaWVudEVmbC5jcHAKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmNw
cAogICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKICAgICBl
ZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNwcAogCisgICAgZWZsL2V3ay9l
d2tfY29udGV4dG1lbnUuY3BwCiAgICAgZWZsL2V3ay9ld2tfZnJhbWUuY3BwCiAgICAgZWZsL2V3
ay9ld2tfaGlzdG9yeS5jcHAKICAgICBlZmwvZXdrL2V3a19tYWluLmNwcApkaWZmIC0tZ2l0IGEv
V2ViS2l0L0NoYW5nZUxvZyBiL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNTA2MjNkMzNjMTI5MWE3
NTdmYzcxNjc3NDViOGFlNTM2ODVhZjE4MC4uYTg5ZTlhNzUxOWZkMmY3MTUwMmI1NDA5YTAwNGVm
YTZjODdjYzQzMiAxMDA2NDQKLS0tIGEvV2ViS2l0L0NoYW5nZUxvZworKysgYi9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTAtMDUtMjcgIEx1Y2FzIERlIE1hcmNoaSAgPGx1
Y2FzLmRlbWFyY2hpQHByb2Z1c2lvbi5tb2JpPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFtFRkxdIEFkZCBDb250ZXh0IE1lbnUgaW1wbGVtZW50YXRp
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5ODIx
CisKKyAgICAgICAgKiBDTWFrZUxpc3RzRWZsLnR4dDogYWRkIGNvbnRleHQgbWVudSBmaWxlcy4K
KyAgICAgICAgKiBlZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDbGllbnRFZmw6OmdldEN1c3RvbU1lbnVGcm9t
RGVmYXVsdEl0ZW1zKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q2xpZW50RWZsOjpu
ZXdQbGF0Zm9ybURlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q2xp
ZW50RWZsOjpmcmVlUGxhdGZvcm1EZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDb250
ZXh0TWVudUNsaWVudEVmbDo6YXBwZW5kSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0
TWVudUNsaWVudEVmbDo6c2hvdyk6CisgICAgICAgICogZWZsL1dlYkNvcmVTdXBwb3J0L0NvbnRl
eHRNZW51Q2xpZW50RWZsLmg6CisgICAgICAgICogZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuY3Bw
OiBBZGRlZC4gSW1wbGVtZW50IHRoZSBBUEkgdXNlZCBieQorICAgICAgICBicm93c2VyIGZvciBt
YW5pcHVsYXRpbmcgY29udGV4dCBtZW51cy4KKyAgICAgICAgKGV3a19jb250ZXh0X21lbnVfcmVm
KToKKyAgICAgICAgKGV3a19jb250ZXh0X21lbnVfdW5yZWYpOgorICAgICAgICAoZXdrX2NvbnRl
eHRfbWVudV9kZXN0cm95KToKKyAgICAgICAgKGV3a19jb250ZXh0X21lbnVfaXRlbV9saXN0X2dl
dCk6CisgICAgICAgIChld2tfY29udGV4dF9tZW51X2l0ZW1fbmV3KToKKyAgICAgICAgKGV3a19j
b250ZXh0X21lbnVfaXRlbV9zZWxlY3QpOgorICAgICAgICAoZXdrX2NvbnRleHRfbWVudV9pdGVt
X2ZyZWUpOgorICAgICAgICAoZXdrX2NvbnRleHRfbWVudV9pdGVtX3R5cGVfZ2V0KToKKyAgICAg
ICAgKGV3a19jb250ZXh0X21lbnVfaXRlbV90eXBlX3NldCk6CisgICAgICAgIChld2tfY29udGV4
dF9tZW51X2l0ZW1fYWN0aW9uX2dldCk6CisgICAgICAgIChld2tfY29udGV4dF9tZW51X2l0ZW1f
YWN0aW9uX3NldCk6CisgICAgICAgIChld2tfY29udGV4dF9tZW51X2l0ZW1fdGl0bGVfZ2V0KToK
KyAgICAgICAgKGV3a19jb250ZXh0X21lbnVfaXRlbV90aXRsZV9zZXQpOgorICAgICAgICAoZXdr
X2NvbnRleHRfbWVudV9pdGVtX2NoZWNrZWRfZ2V0KToKKyAgICAgICAgKGV3a19jb250ZXh0X21l
bnVfaXRlbV9jaGVja2VkX3NldCk6CisgICAgICAgIChld2tfY29udGV4dF9tZW51X2l0ZW1fZW5h
YmxlZF9nZXQpOgorICAgICAgICAoZXdrX2NvbnRleHRfbWVudV9pdGVtX2VuYWJsZWRfc2V0KToK
KyAgICAgICAgKGV3a19jb250ZXh0X21lbnVfbmV3KToKKyAgICAgICAgKGV3a19jb250ZXh0X21l
bnVfZnJlZSk6CisgICAgICAgIChld2tfY29udGV4dF9tZW51X2l0ZW1fYXBwZW5kKToKKyAgICAg
ICAgKGV3a19jb250ZXh0X21lbnVfY3VzdG9tX2dldCk6CisgICAgICAgIChld2tfY29udGV4dF9t
ZW51X3Nob3cpOgorICAgICAgICAqIGVmbC9ld2svZXdrX2NvbnRleHRtZW51Lmg6IEFkZGVkLgor
ICAgICAgICAqIGVmbC9ld2svZXdrX3ByaXZhdGUuaDoKKyAgICAgICAgKiBlZmwvZXdrL2V3a192
aWV3LmNwcDoKKyAgICAgICAgKGV3a192aWV3X2NvbnRleHRfbWVudV9mb3J3YXJkX2V2ZW50KTog
aW5mb3JtIGJyb3dzZXIgYSBuZXcgY29udGV4dAorICAgICAgICBtZW51IHdhcyBjcmVhdGVkLgor
ICAgICAgICAqIGVmbC9ld2svZXdrX3ZpZXcuaDoKKwogMjAxMC0wNS0yNSAgSm9vbmUgSHVyICA8
am9vbmUuaHVyQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEd1c3Rhdm8gTm9y
b25oYSBTaWx2YS4KZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4
dE1lbnVDbGllbnRFZmwuY3BwIGIvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVu
dUNsaWVudEVmbC5jcHAKaW5kZXggYWFhNjRkN2QzYmI0N2I5MWIyMGNkNjJhMTNlNWVlYTY1OTg1
YTYxMC4uNTE5MTViNGE0OTQ4MTViNDU4ZWY3ODQwNTIxNDRjZjc3MjZmMWM5MSAxMDA2NDQKLS0t
IGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEVmbC5jcHAKKysr
IGIvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEVmbC5jcHAKQEAg
LTI5LDkgKzI5LDEyIEBACiAjaW5jbHVkZSAiQ29udGV4dE1lbnVDbGllbnRFZmwuaCIKIAogI2lu
Y2x1ZGUgIkNvbnRleHRNZW51LmgiCisjaW5jbHVkZSAiRVdlYktpdC5oIgorI2luY2x1ZGUgImV3
a19wcml2YXRlLmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIktVUkwu
aCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTWVudURl
c2NyaXB0aW9uLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC00NywxMCArNTAs
MTEgQEAgdm9pZCBDb250ZXh0TWVudUNsaWVudEVmbDo6Y29udGV4dE1lbnVEZXN0cm95ZWQoKQog
ICAgIGRlbGV0ZSB0aGlzOwogfQogCi1QbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiBDb250ZXh0TWVu
dUNsaWVudEVmbDo6Z2V0Q3VzdG9tTWVudUZyb21EZWZhdWx0SXRlbXMoQ29udGV4dE1lbnUqKQor
UGxhdGZvcm1NZW51RGVzY3JpcHRpb24gQ29udGV4dE1lbnVDbGllbnRFZmw6OmdldEN1c3RvbU1l
bnVGcm9tRGVmYXVsdEl0ZW1zKENvbnRleHRNZW51KiBtZW51KQogewotICAgIG5vdEltcGxlbWVu
dGVkKCk7Ci0gICAgcmV0dXJuIDA7CisgICAgUGxhdGZvcm1NZW51RGVzY3JpcHRpb24gbmV3bWVu
dSA9IGV3a19jb250ZXh0X21lbnVfY3VzdG9tX2dldChzdGF0aWNfY2FzdDxFd2tfQ29udGV4dF9N
ZW51Kj4obWVudS0+cmVsZWFzZVBsYXRmb3JtRGVzY3JpcHRpb24oKSkpOworCisgICAgcmV0dXJu
IG5ld21lbnU7CiB9CiAKIHZvaWQgQ29udGV4dE1lbnVDbGllbnRFZmw6OmNvbnRleHRNZW51SXRl
bVNlbGVjdGVkKENvbnRleHRNZW51SXRlbSosIGNvbnN0IENvbnRleHRNZW51KikKQEAgLTg5LDQg
KzkzLDI0IEBAIHZvaWQgQ29udGV4dE1lbnVDbGllbnRFZmw6OnN0b3BTcGVha2luZygpCiAgICAg
bm90SW1wbGVtZW50ZWQoKTsKIH0KIAorUGxhdGZvcm1NZW51RGVzY3JpcHRpb24gQ29udGV4dE1l
bnVDbGllbnRFZmw6Om5ld1BsYXRmb3JtRGVzY3JpcHRpb24oQ29udGV4dE1lbnUqIG1lbnUpCit7
CisgICAgcmV0dXJuIChQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbikgZXdrX2NvbnRleHRfbWVudV9u
ZXcobV92aWV3LCBtZW51LT5jb250cm9sbGVyKCkpOworfQorCit2b2lkIENvbnRleHRNZW51Q2xp
ZW50RWZsOjpmcmVlUGxhdGZvcm1EZXNjcmlwdGlvbihQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiBt
ZW51KQoreworICAgIGV3a19jb250ZXh0X21lbnVfZnJlZShzdGF0aWNfY2FzdDxFd2tfQ29udGV4
dF9NZW51Kj4obWVudSkpOworfQorCit2b2lkIENvbnRleHRNZW51Q2xpZW50RWZsOjphcHBlbmRJ
dGVtKFBsYXRmb3JtTWVudURlc2NyaXB0aW9uIG1lbnUsIENvbnRleHRNZW51SXRlbSYgaXRlbSkK
K3sKKyAgICBld2tfY29udGV4dF9tZW51X2l0ZW1fYXBwZW5kKHN0YXRpY19jYXN0PEV3a19Db250
ZXh0X01lbnUqPihtZW51KSwgaXRlbSk7Cit9CisKK3ZvaWQgQ29udGV4dE1lbnVDbGllbnRFZmw6
OnNob3coUGxhdGZvcm1NZW51RGVzY3JpcHRpb24gbWVudSkKK3sKKyAgICBld2tfY29udGV4dF9t
ZW51X3Nob3coc3RhdGljX2Nhc3Q8RXdrX0NvbnRleHRfTWVudSo+KG1lbnUpKTsKK30KKwogfQpk
aWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEVm
bC5oIGIvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEVmbC5oCmlu
ZGV4IDJjMzgxOGM4OWFkNDgwMmZmNTA3MDMwY2E4MmI5OGYxMmY0YWJmZDUuLmQ4Y2MxYTE2OGQy
OWRhYzdkYWEzNmI2ZGMyM2UzOTE5MTY0YjUxMmQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuaAorKysgYi9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50RWZsLmgKQEAgLTUwLDYgKzUwLDEwIEBAIGNsYXNz
IENvbnRleHRNZW51Q2xpZW50RWZsIDogcHVibGljIENvbnRleHRNZW51Q2xpZW50IHsKICAgICB2
aXJ0dWFsIGJvb2wgaXNTcGVha2luZygpOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wU3BlYWtpbmco
KTsKIAorICAgIFBsYXRmb3JtTWVudURlc2NyaXB0aW9uIG5ld1BsYXRmb3JtRGVzY3JpcHRpb24o
Q29udGV4dE1lbnUqKTsKKyAgICB2b2lkIGZyZWVQbGF0Zm9ybURlc2NyaXB0aW9uKFBsYXRmb3Jt
TWVudURlc2NyaXB0aW9uKTsKKyAgICB2b2lkIGFwcGVuZEl0ZW0oUGxhdGZvcm1NZW51RGVzY3Jp
cHRpb24sIENvbnRleHRNZW51SXRlbSYpOworICAgIHZvaWQgc2hvdyhQbGF0Zm9ybU1lbnVEZXNj
cmlwdGlvbiBtZW51KTsKICBwcml2YXRlOgogICAgIEV2YXNfT2JqZWN0KiBtX3ZpZXc7CiB9Owpk
aWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmNwcCBiL1dlYktpdC9l
ZmwvZXdrL2V3a19jb250ZXh0bWVudS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2RjN2U0ZWM1MjczNzcxMjkw
NmI1Njk3NTRlMzQ1MmEwZmFlZWNmOQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9lZmwvZXdr
L2V3a19jb250ZXh0bWVudS5jcHAKQEAgLTAsMCArMSwyNjMgQEAKKy8qCisgICAgQ29weXJpZ2h0
IChDKSAyMDEwIFByb0ZVU0lPTiBlbWJlZGRlZCBzeXN0ZW1zCisgICAgQ29weXJpZ2h0IChDKSAy
MDEwIFNhbXN1bmcgRWxlY3Ryb25pY3MKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAg
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiZXdrX2NvbnRleHRtZW51LmgiCisKKyNpbmNsdWRlICJDb250ZXh0TWVudS5oIgorI2luY2x1
ZGUgIkNvbnRleHRNZW51Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIkNvbnRleHRNZW51SXRlbS5o
IgorI2luY2x1ZGUgIkVXZWJLaXQuaCIKKyNpbmNsdWRlICJld2tfcHJpdmF0ZS5oIgorCisjaW5j
bHVkZSA8RWluYS5oPgorI2luY2x1ZGUgPGVpbmFfc2FmZXR5X2NoZWNrcy5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KKworc3RydWN0IF9Fd2tfQ29udGV4dF9NZW51IHsKKyAgICB1
bnNpZ25lZCBpbnQgX19yZWY7CisgICAgV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyKiBj
b250cm9sbGVyOworICAgIEV2YXNfT2JqZWN0KiB2aWV3OworCisgICAgRWluYV9MaXN0KiBpdGVt
czsKK307CisKK3N0cnVjdCBfRXdrX0NvbnRleHRfTWVudV9JdGVtIHsKKyAgICBFd2tfQ29udGV4
dF9NZW51X0l0ZW1fVHlwZSB0eXBlOworICAgIEV3a19Db250ZXh0X01lbnVfQWN0aW9uIGFjdGlv
bjsKKworICAgIGNvbnN0IGNoYXIqIHRpdGxlOworICAgIEV3a19Db250ZXh0X01lbnUqIHN1Ym1l
bnU7CisKKyAgICBFaW5hX0Jvb2wgY2hlY2tlZDoxOworICAgIEVpbmFfQm9vbCBlbmFibGVkOjE7
Cit9OworCit2b2lkIGV3a19jb250ZXh0X21lbnVfcmVmKEV3a19Db250ZXh0X01lbnUqIG1lbnUp
Cit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4obWVudSk7CisgICAgbWVudS0+X19y
ZWYrKzsKK30KKwordm9pZCBld2tfY29udGV4dF9tZW51X3VucmVmKEV3a19Db250ZXh0X01lbnUq
IG1lbnUpCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4obWVudSk7CisgICAgdm9p
ZCogaXRlbTsKKworICAgIGlmICgtLW1lbnUtPl9fcmVmKQorICAgICAgICByZXR1cm47CisKKyAg
ICBFSU5BX0xJU1RfRlJFRShtZW51LT5pdGVtcywgaXRlbSkKKyAgICAgICAgZXdrX2NvbnRleHRf
bWVudV9pdGVtX2ZyZWUoc3RhdGljX2Nhc3Q8RXdrX0NvbnRleHRfTWVudV9JdGVtKj4oaXRlbSkp
OworCisgICAgZnJlZShtZW51KTsKK30KKworRWluYV9Cb29sIGV3a19jb250ZXh0X21lbnVfZGVz
dHJveShFd2tfQ29udGV4dF9NZW51KiBtZW51KQoreworICAgIEVJTkFfU0FGRVRZX09OX05VTExf
UkVUVVJOX1ZBTChtZW51LCBFSU5BX0ZBTFNFKTsKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JF
VFVSTl9WQUwobWVudS0+Y29udHJvbGxlciwgRUlOQV9GQUxTRSk7CisKKyAgICBtZW51LT5jb250
cm9sbGVyLT5jbGVhckNvbnRleHRNZW51KCk7CisgICAgcmV0dXJuIEVJTkFfVFJVRTsKK30KKwor
Y29uc3QgRWluYV9MaXN0KiBld2tfY29udGV4dF9tZW51X2l0ZW1fbGlzdF9nZXQoRXdrX0NvbnRl
eHRfTWVudSogbykKK3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwobywgMCk7
CisKKyAgICByZXR1cm4gby0+aXRlbXM7Cit9CisKK0V3a19Db250ZXh0X01lbnVfSXRlbSogZXdr
X2NvbnRleHRfbWVudV9pdGVtX25ldyhFd2tfQ29udGV4dF9NZW51X0l0ZW1fVHlwZSB0eXBlLAor
ICAgICAgICBFd2tfQ29udGV4dF9NZW51X0FjdGlvbiBhY3Rpb24sIEV3a19Db250ZXh0X01lbnUq
IHN1Ym1lbnUsCisgICAgICAgIGNvbnN0IGNoYXIqIHRpdGxlLCBFaW5hX0Jvb2wgY2hlY2tlZCwg
RWluYV9Cb29sIGVuYWJsZWQpCit7CisgICAgRXdrX0NvbnRleHRfTWVudV9JdGVtKiBpdGVtID0g
KEV3a19Db250ZXh0X01lbnVfSXRlbSopIG1hbGxvYyhzaXplb2YoKml0ZW0pKTsKKyAgICBpZiAo
IWl0ZW0pCisgICAgICAgIHJldHVybiAwOworCisgICAgaXRlbS0+dHlwZSA9IHR5cGU7CisgICAg
aXRlbS0+YWN0aW9uID0gYWN0aW9uOworICAgIGl0ZW0tPnRpdGxlID0gZWluYV9zdHJpbmdzaGFy
ZV9hZGQodGl0bGUpOworICAgIGl0ZW0tPnN1Ym1lbnUgPSBzdWJtZW51OworICAgIGl0ZW0tPmNo
ZWNrZWQgPSBjaGVja2VkOworICAgIGl0ZW0tPmVuYWJsZWQgPSBlbmFibGVkOworCisgICAgcmV0
dXJuIGl0ZW07Cit9CisKK0VpbmFfQm9vbCBld2tfY29udGV4dF9tZW51X2l0ZW1fc2VsZWN0KEV3
a19Db250ZXh0X01lbnUqIG1lbnUsIEV3a19Db250ZXh0X01lbnVfSXRlbSogaXRlbSkKK3sKKyAg
ICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwobWVudSwgRUlOQV9GQUxTRSk7CisgICAg
RUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGl0ZW0sIEVJTkFfRkFMU0UpOworICAgIFdl
YkNvcmU6OkNvbnRleHRNZW51QWN0aW9uIGFjdGlvbiA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OkNv
bnRleHRNZW51QWN0aW9uPihpdGVtLT5hY3Rpb24pOworICAgIFdlYkNvcmU6OkNvbnRleHRNZW51
SXRlbVR5cGUgdHlwZSA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVR5cGU+
KGl0ZW0tPnR5cGUpOworCisgICAgLy8gZG9uJ3QgY2FyZSBhYm91dCB0aXRsZSBhbmQgc3VibWVu
dSBhcyB0aGV5J3JlIG5vdCB1c2VkIGFmdGVyIHRoaXMgcG9pbnQKKyAgICBXZWJDb3JlOjpDb250
ZXh0TWVudUl0ZW0gY29yZSh0eXBlLCBhY3Rpb24sIFdlYkNvcmU6OlN0cmluZygpKTsKKyAgICBt
ZW51LT5jb250cm9sbGVyLT5jb250ZXh0TWVudUl0ZW1TZWxlY3RlZCgmY29yZSk7CisgICAgcmV0
dXJuIEVJTkFfVFJVRTsKK30KKwordm9pZCBld2tfY29udGV4dF9tZW51X2l0ZW1fZnJlZShFd2tf
Q29udGV4dF9NZW51X0l0ZW0qIGl0ZW0pCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRV
Uk4oaXRlbSk7CisKKyAgICBlaW5hX3N0cmluZ3NoYXJlX2RlbChpdGVtLT50aXRsZSk7CisgICAg
ZnJlZShpdGVtKTsKK30KKworRXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGUgZXdrX2NvbnRleHRf
bWVudV9pdGVtX3R5cGVfZ2V0KEV3a19Db250ZXh0X01lbnVfSXRlbSogbykKK3sKKyAgICBFSU5B
X1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwobywgRVdLX0FDVElPTl9UWVBFKTsKKyAgICByZXR1
cm4gby0+dHlwZTsKK30KKworRWluYV9Cb29sIGV3a19jb250ZXh0X21lbnVfaXRlbV90eXBlX3Nl
dChFd2tfQ29udGV4dF9NZW51X0l0ZW0qIG8sIEV3a19Db250ZXh0X01lbnVfSXRlbV9UeXBlIHR5
cGUpCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKG8sIEVJTkFfRkFMU0Up
OworICAgIG8tPnR5cGUgPSB0eXBlOworICAgIHJldHVybiBFSU5BX1RSVUU7Cit9CisKK0V3a19D
b250ZXh0X01lbnVfQWN0aW9uIGV3a19jb250ZXh0X21lbnVfaXRlbV9hY3Rpb25fZ2V0KEV3a19D
b250ZXh0X01lbnVfSXRlbSogbykKK3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9W
QUwobywgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19OT19BQ1RJT04pOworICAgIHJldHVybiBv
LT5hY3Rpb247Cit9CisKK0VpbmFfQm9vbCBld2tfY29udGV4dF9tZW51X2l0ZW1fYWN0aW9uX3Nl
dChFd2tfQ29udGV4dF9NZW51X0l0ZW0qIG8sIEV3a19Db250ZXh0X01lbnVfQWN0aW9uIGFjdGlv
bikKK3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwobywgRUlOQV9GQUxTRSk7
CisgICAgby0+YWN0aW9uID0gYWN0aW9uOworICAgIHJldHVybiBFSU5BX1RSVUU7Cit9CisKK2Nv
bnN0IGNoYXIqIGV3a19jb250ZXh0X21lbnVfaXRlbV90aXRsZV9nZXQoRXdrX0NvbnRleHRfTWVu
dV9JdGVtKiBvKQoreworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChvLCAwKTsK
KyAgICByZXR1cm4gby0+dGl0bGU7Cit9CisKK2NvbnN0IGNoYXIqIGV3a19jb250ZXh0X21lbnVf
aXRlbV90aXRsZV9zZXQoRXdrX0NvbnRleHRfTWVudV9JdGVtKiBvLCBjb25zdCBjaGFyKiB0aXRs
ZSkKK3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwobywgMCk7CisgICAgZWlu
YV9zdHJpbmdzaGFyZV9yZXBsYWNlKCZvLT50aXRsZSwgdGl0bGUpOworICAgIHJldHVybiBvLT50
aXRsZTsKK30KKworRWluYV9Cb29sIGV3a19jb250ZXh0X21lbnVfaXRlbV9jaGVja2VkX2dldChF
d2tfQ29udGV4dF9NZW51X0l0ZW0qIG8pCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRV
Uk5fVkFMKG8sIEVJTkFfRkFMU0UpOworICAgIHJldHVybiBvLT5jaGVja2VkOworfQorCitFaW5h
X0Jvb2wgZXdrX2NvbnRleHRfbWVudV9pdGVtX2NoZWNrZWRfc2V0KEV3a19Db250ZXh0X01lbnVf
SXRlbSogbywgRWluYV9Cb29sIGNoZWNrZWQpCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9S
RVRVUk5fVkFMKG8sIEVJTkFfRkFMU0UpOworICAgIG8tPmNoZWNrZWQgPSBjaGVja2VkOworICAg
IHJldHVybiBFSU5BX1RSVUU7Cit9CisKK0VpbmFfQm9vbCBld2tfY29udGV4dF9tZW51X2l0ZW1f
ZW5hYmxlZF9nZXQoRXdrX0NvbnRleHRfTWVudV9JdGVtKiBvKQoreworICAgIEVJTkFfU0FGRVRZ
X09OX05VTExfUkVUVVJOX1ZBTChvLCBFSU5BX0ZBTFNFKTsKKyAgICByZXR1cm4gby0+ZW5hYmxl
ZDsKK30KKworRWluYV9Cb29sIGV3a19jb250ZXh0X21lbnVfaXRlbV9lbmFibGVkX3NldChFd2tf
Q29udGV4dF9NZW51X0l0ZW0gKm8sIEVpbmFfQm9vbCBlbmFibGVkKQoreworICAgIEVJTkFfU0FG
RVRZX09OX05VTExfUkVUVVJOX1ZBTChvLCBFSU5BX0ZBTFNFKTsKKyAgICBvLT5lbmFibGVkID0g
ZW5hYmxlZDsKKyAgICByZXR1cm4gRUlOQV9UUlVFOworfQorCisKKy8qIGludGVybmFsIG1ldGhv
ZHMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K
KworLyoqCisgKiBAaW50ZXJuYWwKKyAqCisgKiBDcmVhdGVzIGNvbnRleHQgb24gdmlldy4KKyAq
CisgKiBAcGFyYW0gdmlldyBWaWV3LgorICogQHBhcmFtIENvbnRyb2xsZXIgQ29udGV4dCBNZW51
IENvbnRyb2xsZXIuCisgKgorICogQHJldHVybiBuZXdseSBhbGxvY2F0ZWQgY29udGV4dCBtZW51
IG9yIEBjIDAgb24gZXJyb3JzLgorICovCitFd2tfQ29udGV4dF9NZW51KiBld2tfY29udGV4dF9t
ZW51X25ldyhFdmFzX09iamVjdCogdmlldywgV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVy
KiBjb250cm9sbGVyKQoreworICAgIEV3a19Db250ZXh0X01lbnUqIG1lbnU7CisgICAgRUlOQV9T
QUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHZpZXcsIDApOworICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOX1ZBTChjb250cm9sbGVyLCAwKTsKKworICAgIG1lbnUgPSBzdGF0aWNfY2FzdDxF
d2tfQ29udGV4dF9NZW51Kj4obWFsbG9jKHNpemVvZigqbWVudSkpKTsKKyAgICBpZiAoIW1lbnUp
IHsKKyAgICAgICAgQ1JJVElDQUwoIkNvdWxkIG5vdCBhbGxvY2F0ZSBjb250ZXh0IG1lbnUgbWVt
b3J5LiIpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBtZW51LT5fX3JlZiA9IDE7
CisgICAgbWVudS0+dmlldyA9IHZpZXc7CisgICAgbWVudS0+Y29udHJvbGxlciA9IGNvbnRyb2xs
ZXI7CisgICAgbWVudS0+aXRlbXMgPSAwOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNr
X2NhbGwobWVudS0+dmlldywgImNvbnRleHRtZW51LG5ldyIsIG1lbnUpOworCisgICAgcmV0dXJu
IG1lbnU7Cit9CisKK0VpbmFfQm9vbCBld2tfY29udGV4dF9tZW51X2ZyZWUoRXdrX0NvbnRleHRf
TWVudSogbykKK3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwobywgRUlOQV9G
QUxTRSk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChvLT52aWV3LCAiY29u
dGV4dG1lbnUsZnJlZSIsIG8pOworICAgIGV3a19jb250ZXh0X21lbnVfdW5yZWYobyk7CisgICAg
cmV0dXJuIEVJTkFfVFJVRTsKK30KKwordm9pZCBld2tfY29udGV4dF9tZW51X2l0ZW1fYXBwZW5k
KEV3a19Db250ZXh0X01lbnUqIG8sIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbSYgY29yZSkKK3sK
KyAgICBFd2tfQ29udGV4dF9NZW51X0l0ZW1fVHlwZSB0eXBlID0gc3RhdGljX2Nhc3Q8RXdrX0Nv
bnRleHRfTWVudV9JdGVtX1R5cGU+KGNvcmUudHlwZSgpKTsKKyAgICBFd2tfQ29udGV4dF9NZW51
X0FjdGlvbiBhY3Rpb24gPSBzdGF0aWNfY2FzdDxFd2tfQ29udGV4dF9NZW51X0FjdGlvbj4oY29y
ZS5hY3Rpb24oKSk7CisgICAgRXdrX0NvbnRleHRfTWVudSogc3VibWVudSA9IHN0YXRpY19jYXN0
PEV3a19Db250ZXh0X01lbnUqPihjb3JlLnBsYXRmb3JtU3ViTWVudSgpKTsKKworICAgIEV3a19D
b250ZXh0X01lbnVfSXRlbSogbWVudV9pdGVtID0gZXdrX2NvbnRleHRfbWVudV9pdGVtX25ldwor
ICAgICAgICAodHlwZSwgYWN0aW9uLCBzdWJtZW51LCBjb3JlLnRpdGxlKCkudXRmOCgpLmRhdGEo
KSwgY29yZS5jaGVja2VkKCksCisgICAgICAgICBjb3JlLmVuYWJsZWQoKSk7CisgICAgRUlOQV9T
QUZFVFlfT05fTlVMTF9SRVRVUk4obWVudV9pdGVtKTsKKworICAgIG8tPml0ZW1zID0gZWluYV9s
aXN0X2FwcGVuZChvLT5pdGVtcywgbWVudV9pdGVtKTsKKyAgICBldmFzX29iamVjdF9zbWFydF9j
YWxsYmFja19jYWxsKG8tPnZpZXcsICJjb250ZXh0bWVudSxpdGVtLGFwcGVuZGVkIiwgbyk7Cit9
CisKK0V3a19Db250ZXh0X01lbnUqIGV3a19jb250ZXh0X21lbnVfY3VzdG9tX2dldChFd2tfQ29u
dGV4dF9NZW51KiBvKQoreworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChvLCAw
KTsKKworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwoby0+dmlldywgImNvbnRl
eHRtZW51LGN1c3RvbWl6ZSIsIG8tPml0ZW1zKTsKKyAgICByZXR1cm4gbzsKK30KKwordm9pZCBl
d2tfY29udGV4dF9tZW51X3Nob3coRXdrX0NvbnRleHRfTWVudSogbykKK3sKKyAgICBFSU5BX1NB
RkVUWV9PTl9OVUxMX1JFVFVSTihvKTsKKworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNr
X2NhbGwoby0+dmlldywgImNvbnRleHRtZW51LHNob3ciLCBvKTsKK30KZGlmZiAtLWdpdCBhL1dl
YktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5oIGIvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRl
eHRtZW51LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYjkxZGFiMDlmOWE4NzU2NWJmYmNmZDY1ODNiYTM5MGJmNmU4
YjQwMAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5o
CkBAIC0wLDAgKzEsMTQ4IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMCBQcm9GVVNJT04g
ZW1iZWRkZWQgc3lzdGVtcworICAgIENvcHlyaWdodCAoQykgMjAxMCBTYW1zdW5nIEVsZWN0cm9u
aWNzCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgorKi8KKworI2lmbmRlZiBld2tfY29udGV4dG1lbnVfaAorI2RlZmluZSBld2tfY29udGV4dG1l
bnVfaAorCisjaW5jbHVkZSAiZXdrX2VhcGkuaCIKKworI2luY2x1ZGUgPEVpbmEuaD4KKyNpbmNs
dWRlIDxFdmFzLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYK
KworLy8ga2VlcCB0aGlzIGluIHN5bmMgd2l0aCBDb250ZXh0TWVudUl0ZW0uaAorZW51bSBfRXdr
X0NvbnRleHRfTWVudV9BY3Rpb24geworICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfTk9f
QUNUSU9OID0gMCwgLy8gdGhpcyBpdGVtIGlzIG5vdCBhY3R1YWxseSBpbiB3ZWJfdWlkZWxlZ2F0
ZS5oCisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19PUEVOX0xJTktfSU5fTkVXX1dJTkRP
VyA9IDEsCisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19ET1dOTE9BRF9MSU5LX1RPX0RJ
U0ssCisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19DT1BZX0xJTktfVE9fQ0xJUEJPQVJE
LAorICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfT1BFTl9JTUFHRV9JTl9ORVdfV0lORE9X
LAorICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfRE9XTkxPQURfSU1BR0VfVE9fRElTSywK
KyAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX0NPUFlfSU1BR0VfVE9fQ0xJUEJPQVJELAor
ICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfT1BFTl9GUkFNRV9JTl9ORVdfV0lORE9XLAor
ICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfQ09QWSwKKyAgICBFV0tfQ09OVEVYVF9NRU5V
X0lURU1fVEFHX0dPX0JBQ0ssCisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19HT19GT1JX
QVJELAorICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfU1RPUCwKKyAgICBFV0tfQ09OVEVY
VF9NRU5VX0lURU1fVEFHX1JFTE9BRCwKKyAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX0NV
VCwKKyAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX1BBU1RFLAorICAgIEVXS19DT05URVhU
X01FTlVfSVRFTV9UQUdfU1BFTExJTkdfR1VFU1MsCisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVN
X1RBR19OT19HVUVTU0VTX0ZPVU5ELAorICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfSUdO
T1JFX1NQRUxMSU5HLAorICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfTEVBUk5fU1BFTExJ
TkcsCisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19PVEhFUiwKKyAgICBFV0tfQ09OVEVY
VF9NRU5VX0lURU1fVEFHX1NFQVJDSF9JTl9TUE9UTElHSFQsCisgICAgRVdLX0NPTlRFWFRfTUVO
VV9JVEVNX1RBR19TRUFSQ0hfV0VCLAorICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfTE9P
S19VUF9JTl9ESUNUSU9OQVJZLAorICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfT1BFTl9X
SVRIX0RFRkFVTFRfQVBQTElDQVRJT04sCisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1BERkFD
VFVBTF9TSVpFLAorICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9QREZaT09NX0lOLAorICAgIEVX
S19DT05URVhUX01FTlVfSVRFTV9QREZaT09NX09VVCwKKyAgICBFV0tfQ09OVEVYVF9NRU5VX0lU
RU1fUERGQVVUT19TSVpFLAorICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9QREZTSU5HTEVfUEFH
RSwKKyAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fUERGRkFDSU5HX1BBR0VTLAorICAgIEVXS19D
T05URVhUX01FTlVfSVRFTV9QREZDT05USU5VT1VTLAorICAgIEVXS19DT05URVhUX01FTlVfSVRF
TV9QREZORVhUX1BBR0UsCisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1BERlBSRVZJT1VTX1BB
R0UsCisgICAgLy8gdGhlc2UgYXJlIG5ldyB0YWdzISBub3QgYSBwYXJ0IG9mIGFwaSEhISEKKyAg
ICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX09QRU5fTElOSyA9IDIwMDAsCisgICAgRVdLX0NP
TlRFWFRfTUVOVV9JVEVNX1RBR19JR05PUkVfR1JBTU1BUiwKKyAgICBFV0tfQ09OVEVYVF9NRU5V
X0lURU1fVEFHX1NQRUxMSU5HX01FTlUsIC8vIHNwZWxsaW5nIG9yIHNwZWxsaW5nL2dyYW1tYXIg
c3ViLW1lbnUKKyAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX1NIT1dfU1BFTExJTkdfUEFO
RUwsCisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19DSEVDS19TUEVMTElORywKKyAgICBF
V0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX0NIRUNLX1NQRUxMSU5HX1dISUxFX1RZUElORywKKyAg
ICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX0NIRUNLX0dSQU1NQVJfV0lUSF9TUEVMTElORywK
KyAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX0ZPTlRfTUVOVSwgLy8gZm9udCBzdWItbWVu
dQorICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfU0hPV19GT05UUywKKyAgICBFV0tfQ09O
VEVYVF9NRU5VX0lURU1fVEFHX0JPTEQsCisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19J
VEFMSUMsCisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19VTkRFUkxJTkUsCisgICAgRVdL
X0NPTlRFWFRfTUVOVV9JVEVNX1RBR19PVVRMSU5FLAorICAgIEVXS19DT05URVhUX01FTlVfSVRF
TV9UQUdfU1RZTEVTLAorICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfU0hPV19DT0xPUlMs
CisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19TUEVFQ0hfTUVOVSwgLy8gc3BlZWNoIHN1
Yi1tZW51CisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19TVEFSVF9TUEVBS0lORywKKyAg
ICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX1NUT1BfU1BFQUtJTkcsCisgICAgRVdLX0NPTlRF
WFRfTUVOVV9JVEVNX1RBR19XUklUSU5HX0RJUkVDVElPTl9NRU5VLCAvLyB3cml0aW5nIGRpcmVj
dGlvbiBzdWItbWVudQorICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfREVGQVVMVF9ESVJF
Q1RJT04sCisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19MRUZUX1RPX1JJR0hULAorICAg
IEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfUklHSFRfVE9fTEVGVCwKKyAgICBFV0tfQ09OVEVY
VF9NRU5VX0lURU1fVEFHX1BERlNJTkdMRV9QQUdFX1NDUk9MTElORywKKyAgICBFV0tfQ09OVEVY
VF9NRU5VX0lURU1fVEFHX1BERkZBQ0lOR19QQUdFU19TQ1JPTExJTkcsCisgICAgRVdLX0NPTlRF
WFRfTUVOVV9JVEVNX1RBR19URVhUX0RJUkVDVElPTl9NRU5VLCAvLyB0ZXh0IGRpcmVjdGlvbiBz
dWItbWVudQorICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfVEVYVF9ESVJFQ1RJT05fREVG
QVVMVCwKKyAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX1RFWFRfRElSRUNUSU9OX0xFRlRf
VE9fUklHSFQsCisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19URVhUX0RJUkVDVElPTl9S
SUdIVF9UT19MRUZULAorICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9CQVNFX0NVU1RPTV9UQUcg
PSA1MDAwLAorICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9CQVNFX0FQUExJQ0FUSU9OX1RBRyA9
IDEwMDAwCit9OwordHlwZWRlZiBlbnVtIF9Fd2tfQ29udGV4dF9NZW51X0FjdGlvbiBFd2tfQ29u
dGV4dF9NZW51X0FjdGlvbjsKKworLy8ga2VlcCB0aGlzIGluIHN5bmMgd2l0aCBDb250ZXh0TWVu
dUl0ZW0uaAorZW51bSBfRXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGUgeworICAgIEVXS19BQ1RJ
T05fVFlQRSwKKyAgICBFV0tfQ0hFQ0tBQkxFX0FDVElPTl9UWVBFLAorICAgIEVXS19TRVBBUkFU
T1JfVFlQRSwKKyAgICBFV0tfU1VCTUVOVV9UWVBFCit9OwordHlwZWRlZiBlbnVtIF9Fd2tfQ29u
dGV4dF9NZW51X0l0ZW1fVHlwZSAgICBFd2tfQ29udGV4dF9NZW51X0l0ZW1fVHlwZTsKKworLyoq
CisgKiBUaGUgc3RydWN0dXJlIHRvIGNvbnRhaW4gQ29udGV4dCBNZW51IGRhdGEKKyAqLwordHlw
ZWRlZiBzdHJ1Y3QgX0V3a19Db250ZXh0X01lbnUgICAgICAgICAgICBFd2tfQ29udGV4dF9NZW51
OworCisvKioKKyAqIFJlcHJlc2VudHMgb25lIGl0ZW0gZnJvbSBFd2tfQ29udGV4dF9NZW51Cisg
Ki8KK3R5cGVkZWYgc3RydWN0IF9Fd2tfQ29udGV4dF9NZW51X0l0ZW0gICAgICAgRXdrX0NvbnRl
eHRfTWVudV9JdGVtOworCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqIEV4cG9ydGVk
IGZ1bmN0aW9ucyAqKioqKioqKioqKioqKioqKioqKioqKi8KKworRUFQSSB2b2lkICAgICAgICAg
ICAgICAgICAgICAgICAgZXdrX2NvbnRleHRfbWVudV9yZWYoRXdrX0NvbnRleHRfTWVudSogbWVu
dSk7CitFQVBJIHZvaWQgICAgICAgICAgICAgICAgICAgICAgICBld2tfY29udGV4dF9tZW51X3Vu
cmVmKEV3a19Db250ZXh0X01lbnUqIG1lbnUpOworRUFQSSBFaW5hX0Jvb2wgICAgICAgICAgICAg
ICAgICAgZXdrX2NvbnRleHRfbWVudV9kZXN0cm95KEV3a19Db250ZXh0X01lbnUqIG1lbnUpOwor
CitFQVBJIGNvbnN0IEVpbmFfTGlzdCogICAgICAgICAgICBld2tfY29udGV4dF9tZW51X2l0ZW1f
bGlzdF9nZXQoRXdrX0NvbnRleHRfTWVudSogbyk7CisKK0VBUEkgRXdrX0NvbnRleHRfTWVudV9J
dGVtKiAgICAgIGV3a19jb250ZXh0X21lbnVfaXRlbV9uZXcoRXdrX0NvbnRleHRfTWVudV9JdGVt
X1R5cGUgdHlwZSwgRXdrX0NvbnRleHRfTWVudV9BY3Rpb24gYWN0aW9uLCBFd2tfQ29udGV4dF9N
ZW51KiBzdWJtZW51LCBjb25zdCBjaGFyKiB0aXRsZSwgRWluYV9Cb29sIGNoZWNrZWQsIEVpbmFf
Qm9vbCBlbmFibGVkKTsKK0VBUEkgdm9pZCAgICAgICAgICAgICAgICAgICAgICAgIGV3a19jb250
ZXh0X21lbnVfaXRlbV9mcmVlKEV3a19Db250ZXh0X01lbnVfSXRlbSogaXRlbSk7CitFQVBJIEVp
bmFfQm9vbCAgICAgICAgICAgICAgICAgICBld2tfY29udGV4dF9tZW51X2l0ZW1fc2VsZWN0KEV3
a19Db250ZXh0X01lbnUqIG1lbnUsIEV3a19Db250ZXh0X01lbnVfSXRlbSogaXRlbSk7CitFQVBJ
IEV3a19Db250ZXh0X01lbnVfSXRlbV9UeXBlICBld2tfY29udGV4dF9tZW51X2l0ZW1fdHlwZV9n
ZXQoRXdrX0NvbnRleHRfTWVudV9JdGVtKiBvKTsKK0VBUEkgRWluYV9Cb29sICAgICAgICAgICAg
ICAgICAgIGV3a19jb250ZXh0X21lbnVfaXRlbV90eXBlX3NldChFd2tfQ29udGV4dF9NZW51X0l0
ZW0qIG8sIEV3a19Db250ZXh0X01lbnVfSXRlbV9UeXBlIHR5cGUpOworRUFQSSBFd2tfQ29udGV4
dF9NZW51X0FjdGlvbiAgICAgZXdrX2NvbnRleHRfbWVudV9pdGVtX2FjdGlvbl9nZXQoRXdrX0Nv
bnRleHRfTWVudV9JdGVtKiBvKTsKK0VBUEkgRWluYV9Cb29sICAgICAgICAgICAgICAgICAgIGV3
a19jb250ZXh0X21lbnVfaXRlbV9hY3Rpb25fc2V0KEV3a19Db250ZXh0X01lbnVfSXRlbSogbywg
RXdrX0NvbnRleHRfTWVudV9BY3Rpb24gYWN0aW9uKTsKK0VBUEkgY29uc3QgY2hhciogICAgICAg
ICAgICAgICAgIGV3a19jb250ZXh0X21lbnVfaXRlbV90aXRsZV9nZXQoRXdrX0NvbnRleHRfTWVu
dV9JdGVtKiBvKTsKK0VBUEkgY29uc3QgY2hhciogICAgICAgICAgICAgICAgIGV3a19jb250ZXh0
X21lbnVfaXRlbV90aXRsZV9zZXQoRXdrX0NvbnRleHRfTWVudV9JdGVtKiBvLCBjb25zdCBjaGFy
KiB0aXRsZSk7CitFQVBJIEVpbmFfQm9vbCAgICAgICAgICAgICAgICAgICBld2tfY29udGV4dF9t
ZW51X2l0ZW1fY2hlY2tlZF9nZXQoRXdrX0NvbnRleHRfTWVudV9JdGVtKiBvKTsKK0VBUEkgRWlu
YV9Cb29sICAgICAgICAgICAgICAgICAgIGV3a19jb250ZXh0X21lbnVfaXRlbV9jaGVja2VkX3Nl
dChFd2tfQ29udGV4dF9NZW51X0l0ZW0qIG8sIEVpbmFfQm9vbCBjaGVja2VkKTsKK0VBUEkgRWlu
YV9Cb29sICAgICAgICAgICAgICAgICAgIGV3a19jb250ZXh0X21lbnVfaXRlbV9lbmFibGVkX2dl
dChFd2tfQ29udGV4dF9NZW51X0l0ZW0qIG8pOworRUFQSSBFaW5hX0Jvb2wgICAgICAgICAgICAg
ICAgICAgZXdrX2NvbnRleHRfbWVudV9pdGVtX2VuYWJsZWRfc2V0KEV3a19Db250ZXh0X01lbnVf
SXRlbSogbywgRWluYV9Cb29sIGVuYWJsZWQpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNl
bmRpZgorI2VuZGlmIC8vIGV3a19jb250ZXh0bWVudV9oCmRpZmYgLS1naXQgYS9XZWJLaXQvZWZs
L2V3ay9ld2tfcHJpdmF0ZS5oIGIvV2ViS2l0L2VmbC9ld2svZXdrX3ByaXZhdGUuaAppbmRleCBj
ZWJiZWJhMTdlYThiNDkwODMzMWJhYzc2MzE5ZWUzMDUwYTNhYWZhLi41MzM0ZWQ3MDFmNzA0Nzcx
OTlkMDA3YjQ4NTZkODdjNWRlMjNjYWNlIDEwMDY0NAotLS0gYS9XZWJLaXQvZWZsL2V3ay9ld2tf
cHJpdmF0ZS5oCisrKyBiL1dlYktpdC9lZmwvZXdrL2V3a19wcml2YXRlLmgKQEAgLTQ0LDYgKzQ0
LDggQEAgZXh0ZXJuICJDIiB7CiAvLyBmb3J3YXJkIGRlY2xhcmF0aW9ucwogbmFtZXNwYWNlIFdl
YkNvcmUgewogc3RydWN0IFBvcHVwTWVudUNsaWVudDsKK3N0cnVjdCBDb250ZXh0TWVudTsKK3N0
cnVjdCBDb250ZXh0TWVudUl0ZW07CiB9CiAKIHZvaWQgICAgICAgICAgICAgZXdrX3ZpZXdfcmVh
ZHkoRXZhc19PYmplY3QgKm8pOwpAQCAtOTQsNiArOTYsMTIgQEAgdm9pZCAgICAgICAgICAgICBl
d2tfdmlld19wb3B1cF9uZXcoRXZhc19PYmplY3QgKm8sIFdlYkNvcmU6OlBvcHVwTWVudUNsaWVu
dCogY2wKIEV3a19IaXN0b3J5ICAgICAgKmV3a19oaXN0b3J5X25ldyhXZWJDb3JlOjpCYWNrRm9y
d2FyZExpc3QgKmhpc3RvcnkpOwogdm9pZCAgICAgICAgICAgICAgZXdrX2hpc3RvcnlfZnJlZShF
d2tfSGlzdG9yeSAqaGlzdG9yeSk7CiAKK0V3a19Db250ZXh0X01lbnUgKmV3a19jb250ZXh0X21l
bnVfbmV3KEV2YXNfT2JqZWN0ICp2aWV3LCBXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXIg
KmNvbnRyb2xsZXIpOworRWluYV9Cb29sICAgICAgICAgZXdrX2NvbnRleHRfbWVudV9mcmVlKEV3
a19Db250ZXh0X01lbnUgKm8pOwordm9pZCAgICAgICAgICAgICAgZXdrX2NvbnRleHRfbWVudV9p
dGVtX2FwcGVuZChFd2tfQ29udGV4dF9NZW51ICpvLCBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0m
IGNvcmUpOworRXdrX0NvbnRleHRfTWVudSAqZXdrX2NvbnRleHRfbWVudV9jdXN0b21fZ2V0KEV3
a19Db250ZXh0X01lbnUgKm8pOwordm9pZCAgICAgICAgICAgICAgZXdrX2NvbnRleHRfbWVudV9z
aG93KEV3a19Db250ZXh0X01lbnUgKm8pOworCiBFdmFzX09iamVjdCAgICAgICpld2tfZnJhbWVf
YWRkKEV2YXMgKmUpOwogRWluYV9Cb29sICAgICAgICAgZXdrX2ZyYW1lX2luaXQoRXZhc19PYmpl
Y3QgKm8sIEV2YXNfT2JqZWN0ICp2aWV3LCBXZWJDb3JlOjpGcmFtZSAqZnJhbWUpOwogRXZhc19P
YmplY3QgICAgICAqZXdrX2ZyYW1lX2NoaWxkX2FkZChFdmFzX09iamVjdCAqbywgV1RGOjpQYXNz
UmVmUHRyPFdlYkNvcmU6OkZyYW1lPiBjaGlsZCwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBuYW1l
LCBjb25zdCBXZWJDb3JlOjpLVVJMJiB1cmwsIGNvbnN0IFdlYkNvcmU6OlN0cmluZyYgcmVmZXJy
ZXIpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwIGIvV2ViS2l0L2Vm
bC9ld2svZXdrX3ZpZXcuY3BwCmluZGV4IDI3MTYxY2MzMjUzNjdlZWM4ZmE3MzEyZTY5YTA3NjFi
NThjMzg5ZTIuLjg1MWYyNjY2YWM0YzJlZTk0YzY3OGQwZTMxYmYzN2MxYWIxNDI1NDIgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAorKysgYi9XZWJLaXQvZWZsL2V3ay9l
d2tfdmlldy5jcHAKQEAgLTIzLDE1ICsyMywxOCBAQAogCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50
RWZsLmgiCiAjaW5jbHVkZSAiQ29udGV4dE1lbnVDbGllbnRFZmwuaCIKKyNpbmNsdWRlICJDb250
ZXh0TWVudUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgogI2luY2x1
ZGUgIkRyYWdDbGllbnRFZmwuaCIKICNpbmNsdWRlICJFV2ViS2l0LmgiCiAjaW5jbHVkZSAiRWRp
dG9yQ2xpZW50RWZsLmgiCisjaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCiAjaW5jbHVkZSAiRm9j
dXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRFZmwuaCIKICNpbmNs
dWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRl
ICJJbnNwZWN0b3JDbGllbnRFZmwuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIK
ICNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIu
aCIKICNpbmNsdWRlICJld2tfcHJpdmF0ZS5oIgpAQCAtMTQ3Nyw2ICsxNDgwLDQ2IEBAIEVpbmFf
Qm9vbCBld2tfdmlld19zZWxlY3Rfd29yZChFdmFzX09iamVjdCogbykKIH0KIAogLyoqCisgKiBG
b3J3YXJkcyBhIHJlcXVlc3Qgb2YgbmV3IENvbnRleHQgTWVudSB0byBXZWJDb3JlLgorICoKKyAq
IEBwYXJhbSBvIFZpZXcuCisgKiBAcGFyYW0gZXYgRXZlbnQgZGF0YS4KKyAqCisgKiBAcmV0dXJu
IEBjIEVJTkFfVFJVRSBpZiBvcGVyYXRpb24gd2FzIGV4ZWN1dGVkLCBAYyBFSU5BX0ZBTFNFIG90
aGVyd2lzZS4KKyAqLworRWluYV9Cb29sIGV3a192aWV3X2NvbnRleHRfbWVudV9mb3J3YXJkX2V2
ZW50KEV2YXNfT2JqZWN0KiBvLCBjb25zdCBFdmFzX0V2ZW50X01vdXNlX0Rvd24qIGV2KQorewor
ICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4obywgc2QsIEVJTkFfRkFMU0UpOworICAgIEVX
S19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzZCwgcHJpdiwgRUlOQV9GQUxTRSk7CisgICAgRWlu
YV9Cb29sIG1vdXNlX3ByZXNzX2hhbmRsZWQgPSBFSU5BX0ZBTFNFOworCisgICAgcHJpdi0+cGFn
ZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCktPmNsZWFyQ29udGV4dE1lbnUoKTsKKyAgICBXZWJD
b3JlOjpGcmFtZSogbWFpbl9mcmFtZSA9IHByaXYtPnBhZ2UtPm1haW5GcmFtZSgpOworICAgIEV2
YXNfQ29vcmQgeCwgeTsKKyAgICBldmFzX29iamVjdF9nZW9tZXRyeV9nZXQoc2QtPnNlbGYsICZ4
LCAmeSwgMCwgMCk7CisKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQoZXYs
IFdlYkNvcmU6OkludFBvaW50KHgsIHkpKTsKKworICAgIGlmIChtYWluX2ZyYW1lLT52aWV3KCkp
IHsKKyAgICAgICAgbW91c2VfcHJlc3NfaGFuZGxlZCA9CisgICAgICAgICAgICBtYWluX2ZyYW1l
LT5ldmVudEhhbmRsZXIoKS0+aGFuZGxlTW91c2VQcmVzc0V2ZW50KGV2ZW50KTsKKyAgICB9CisK
KyAgICBpZiAobWFpbl9mcmFtZS0+ZXZlbnRIYW5kbGVyKCktPnNlbmRDb250ZXh0TWVudUV2ZW50
KGV2ZW50KSkKKyAgICAgICAgcmV0dXJuIEVJTkFfRkFMU0U7CisKKyAgICBXZWJDb3JlOjpDb250
ZXh0TWVudSogY29yZU1lbnUgPQorICAgICAgICBwcml2LT5wYWdlLT5jb250ZXh0TWVudUNvbnRy
b2xsZXIoKS0+Y29udGV4dE1lbnUoKTsKKyAgICBpZiAoIWNvcmVNZW51KSB7CisgICAgICAgIC8v
IFdlYkNvcmUgZGVjaWRlZCBub3QgdG8gY3JlYXRlIGEgY29udGV4dCBtZW51LCByZXR1cm4gdHJ1
ZSBpZiBldmVudAorICAgICAgICAvLyB3YXMgaGFuZGxlZCBieSBoYW5kbGVNb3VzZVJlbGVhc2VF
dmVudAorICAgICAgICByZXR1cm4gbW91c2VfcHJlc3NfaGFuZGxlZDsKKyAgICB9CisKKyAgICBy
ZXR1cm4gRUlOQV9UUlVFOworfQorCisvKioKICAqIEdldCBjdXJyZW50IGxvYWQgcHJvZ3Jlc3Mg
ZXN0aW1hdGUgZnJvbSAwLjAgdG8gMS4wLgogICoKICAqIEBwYXJhbSBvIHZpZXcgb2JqZWN0IHRv
IGdldCBjdXJyZW50IHByb2dyZXNzLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9ld2svZXdrX3Zp
ZXcuaCBiL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgKaW5kZXggMjBkZjYwMTNjNzU1YTUwMzRj
YTEwOTcxMGMxNTQ3MGYxZDVlZTgwZS4uNGQxYjgxOTA2YmNjNDI5Njg3ZjhkZGRmNjdmNjAwYjZl
Zjc2N2U0ZSAxMDA2NDQKLS0tIGEvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaAorKysgYi9XZWJL
aXQvZWZsL2V3ay9ld2tfdmlldy5oCkBAIC0zMDUsNiArMzA1LDggQEAgRUFQSSBFaW5hX0Jvb2wg
ICAgZXdrX3ZpZXdfc2VsZWN0X3NlbnRlbmNlKEV2YXNfT2JqZWN0ICpvKTsKIEVBUEkgRWluYV9C
b29sICAgIGV3a192aWV3X3NlbGVjdF9saW5lKEV2YXNfT2JqZWN0ICpvKTsKIEVBUEkgRWluYV9C
b29sICAgIGV3a192aWV3X3NlbGVjdF93b3JkKEV2YXNfT2JqZWN0ICpvKTsKIAorRUFQSSBFaW5h
X0Jvb2wgICAgZXdrX3ZpZXdfY29udGV4dF9tZW51X2ZvcndhcmRfZXZlbnQoRXZhc19PYmplY3Qg
Km8sIGNvbnN0IEV2YXNfRXZlbnRfTW91c2VfRG93biAqZXYpOworCiBFQVBJIHZvaWQgICAgICAg
ICBld2tfdmlld19wb3B1cF9zZWxlY3RlZF9zZXQoRXZhc19PYmplY3QgKm8sIGludCBpbmRleCk7
CiBFQVBJIEVpbmFfQm9vbCAgICBld2tfdmlld19wb3B1cF9kZXN0cm95KEV2YXNfT2JqZWN0ICpv
KTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57401</attachid>
            <date>2010-05-28 18:42:23 -0700</date>
            <delta_ts>2010-05-31 14:53:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39821-20100528224258.patch</filename>
            <type>text/plain</type>
            <size>36534</size>
            <attacher name="Lucas De Marchi">lucas.de.marchi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MjE5NGM3Y2MwMDA3NWQyN2M3MjI5MzYyNTc4MDRkZDYwNGNhM2I2ZS4uZGE2MjVmZTVkMmUwM2Nk
NTA1MGE1ODZhZjE5MGExNjVjMWJiNmE2ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAxMC0wNS0yOCAgTHVj
YXMgRGUgTWFyY2hpICA8bHVjYXMuZGVtYXJjaGlAcHJvZnVzaW9uLm1vYmk+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0VGTF0gQWRkIENvbnRleHQg
TWVudSBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Mzk4MjEKKworICAgICAgICAqIHBsYXRmb3JtL0NvbnRleHRNZW51Lmg6IGFk
ZCBwb3J0LXNwZWNpZmljIGF0dHJpYnV0ZXMuCisgICAgICAgICogcGxhdGZvcm0vQ29udGV4dE1l
bnVJdGVtLmg6IGNyZWF0ZSBQbGF0Zm9ybU1lbnVJdGVtRGVzY3JpcHRpb24gYXMgaW4KKyAgICAg
ICAgb3RoZXIgcG9ydHMKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVudUl0ZW1EZXNjcmlw
dGlvbjo6UGxhdGZvcm1NZW51SXRlbURlc2NyaXB0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9l
ZmwvQ29udGV4dE1lbnVFZmwuY3BwOmltcGxlbWVudCBuZWVkZWQgbWV0aG9kcyBmb3IgdGhpcwor
ICAgICAgICBwb3J0LgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnU6OkNvbnRleHRNZW51
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Ojp+Q29udGV4dE1lbnUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29udGV4dE1lbnU6OmFwcGVuZEl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGV4dE1lbnU6OnNldFBsYXRmb3JtRGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
Q29udGV4dE1lbnU6OnJlbGVhc2VQbGF0Zm9ybURlc2NyaXB0aW9uKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9lZmwvQ29udGV4dE1lbnVJdGVtRWZsLmNwcDogIGltcGxlbWVudCBuZWVkZWQgbWV0aG9k
cyBmb3IKKyAgICAgICAgdGhpcyBwb3J0LgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJ
dGVtOjpDb250ZXh0TWVudUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVt
Ojp+Q29udGV4dE1lbnVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbTo6
cmVsZWFzZVBsYXRmb3JtRGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1l
bnVJdGVtOjp0eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbTo6c2V0VHlw
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW06OmFjdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW06OnNldEFjdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpDb250ZXh0TWVudUl0ZW06OnRpdGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51
SXRlbTo6c2V0VGl0bGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtOjpwbGF0
Zm9ybVN1Yk1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtOjpzZXRTdWJN
ZW51KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbTo6Y2hlY2tlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW06OnNldENoZWNrZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29udGV4dE1lbnVJdGVtOjplbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
eHRNZW51SXRlbTo6c2V0RW5hYmxlZCk6CisKIDIwMTAtMDUtMjcgIERhcmluIEFkbGVyICA8ZGFy
aW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9D
b250ZXh0TWVudS5oCmluZGV4IDc3ODQzZGMzNGM3MDEyNTgyNzNkNzExZjUzYzJjYmUxMTgyNzQy
YjkuLmNhMjFmMjlkZWM1MzE0MTJhY2U0OTdhMTQ2MjE0MDIwZDk5ODlmYmMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnUuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL0Nv
bnRleHRNZW51LmgKQEAgLTQxLDYgKzQxLDkgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAg
IGNsYXNzIENvbnRleHRNZW51Q29udHJvbGxlcjsKKyNpZiBQTEFURk9STShFRkwpCisgICAgY2xh
c3MgQ29udGV4dE1lbnVDbGllbnRFZmw7CisjZW5kaWYKIAogICAgIGNsYXNzIENvbnRleHRNZW51
IDogcHVibGljIE5vbmNvcHlhYmxlCiAgICAgewpAQCAtODAsNiArODMsOSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIFFMaXN0PENvbnRleHRNZW51SXRlbT4gbV9pdGVtczsKICNlbGlm
IFBMQVRGT1JNKENIUk9NSVVNKQogICAgICAgICBWZWN0b3I8Q29udGV4dE1lbnVJdGVtPiBtX2l0
ZW1zOworI2VsaWYgUExBVEZPUk0oRUZMKQorICAgICAgICBDb250ZXh0TWVudUNsaWVudEVmbCog
bV9jb250ZXh0TWVudUNsaWVudDsKKyAgICAgICAgUGxhdGZvcm1NZW51RGVzY3JpcHRpb24gbV9w
bGF0Zm9ybURlc2NyaXB0aW9uOwogI2Vsc2UKICAgICAgICAgUGxhdGZvcm1NZW51RGVzY3JpcHRp
b24gbV9wbGF0Zm9ybURlc2NyaXB0aW9uOwogI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL0NvbnRleHRNZW51SXRlbS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0
ZW0uaAppbmRleCA4OGZmMGFkNjBkNTkyNWQ1MzNkZGM4NTg3MDg0MWUyOWVhOGM1MDY2Li4wZmZl
MzM4MzI5MGQxZGE3YWMyYTg5M2YzMjI5ZGM4MzI2MmQ4NTcwIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4
dE1lbnVJdGVtLmgKQEAgLTIyMiw2ICsyMjIsMjIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICBib29sIGNoZWNrZWQ7CiAgICAgICAgIGJvb2wgZW5hYmxlZDsKICAgICB9OworI2VsaWYg
UExBVEZPUk0oRUZMKQorICAgIHN0cnVjdCBQbGF0Zm9ybU1lbnVJdGVtRGVzY3JpcHRpb24gewor
ICAgICAgICBQbGF0Zm9ybU1lbnVJdGVtRGVzY3JpcHRpb24oKQorICAgICAgICAgICAgOiB0eXBl
KEFjdGlvblR5cGUpCisgICAgICAgICAgICAsIGFjdGlvbihDb250ZXh0TWVudUl0ZW1UYWdOb0Fj
dGlvbikKKyAgICAgICAgICAgICwgdGl0bGUoIiIpCisgICAgICAgICAgICAsIHN1Yk1lbnUoMCkK
KyAgICAgICAgICAgICwgY2hlY2tlZChmYWxzZSkKKyAgICAgICAgICAgICwgZW5hYmxlZCh0cnVl
KSB7IH0KKyAgICAgICAgQ29udGV4dE1lbnVJdGVtVHlwZSB0eXBlOworICAgICAgICBDb250ZXh0
TWVudUFjdGlvbiBhY3Rpb247CisgICAgICAgIFN0cmluZyB0aXRsZTsKKyAgICAgICAgQ29udGV4
dE1lbnUqIHN1Yk1lbnU7CisgICAgICAgIGJvb2wgY2hlY2tlZDsKKyAgICAgICAgYm9vbCBlbmFi
bGVkOworICAgIH07CiAjZWxzZQogICAgIHR5cGVkZWYgdm9pZCogUGxhdGZvcm1NZW51SXRlbURl
c2NyaXB0aW9uOwogI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Db250
ZXh0TWVudUVmbC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Db250ZXh0TWVudUVmbC5jcHAK
aW5kZXggMjQwZjEwNjQ2NWE3NDVjMmM3YWNmNjIzNTQ2MGZjYTRkZmQ5MmMxMy4uOTUzZTdiMzFj
NmRjMjk5NTNhMWE2ZDIwNjc1OTNkYWRmNjMzNDc3YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS9lZmwvQ29udGV4dE1lbnVFZmwuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0Nv
bnRleHRNZW51RWZsLmNwcApAQCAtMjIsMzAgKzIyLDQ3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiQ29udGV4dE1lbnUuaCIKIAorI2luY2x1ZGUgIkNvbnRleHRNZW51Q2xpZW50
LmgiCisjaW5jbHVkZSAiQ29udGV4dE1lbnVDbGllbnRFZmwuaCIKKyNpbmNsdWRlICJDb250ZXh0
TWVudUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIENvbnRleHRNZW51OjpDb250ZXh0TWVudShjb25zdCBIaXRUZXN0UmVz
dWx0JiByZXN1bHQpCiAgICAgOiBtX2hpdFRlc3RSZXN1bHQocmVzdWx0KQotICAgICwgbV9wbGF0
Zm9ybURlc2NyaXB0aW9uKDApCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBtX2NvbnRl
eHRNZW51Q2xpZW50ID0KKyAgICAgICAgc3RhdGljX2Nhc3Q8Q29udGV4dE1lbnVDbGllbnRFZmwq
Pihjb250cm9sbGVyKCktPmNsaWVudCgpKTsKKyAgICBtX3BsYXRmb3JtRGVzY3JpcHRpb24gPSBt
X2NvbnRleHRNZW51Q2xpZW50LT5uZXdQbGF0Zm9ybURlc2NyaXB0aW9uKHRoaXMpOworfQorCitD
b250ZXh0TWVudTo6Q29udGV4dE1lbnUoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBjb25z
dCBQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiBtZW51KQorICAgIDogbV9oaXRUZXN0UmVzdWx0KHJl
c3VsdCkKKyAgICAsIG1fcGxhdGZvcm1EZXNjcmlwdGlvbihtZW51KQoreworICAgIG1fY29udGV4
dE1lbnVDbGllbnQgPQorICAgICAgICBzdGF0aWNfY2FzdDxDb250ZXh0TWVudUNsaWVudEVmbCo+
KGNvbnRyb2xsZXIoKS0+Y2xpZW50KCkpOwogfQogCiBDb250ZXh0TWVudTo6fkNvbnRleHRNZW51
KCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIGlmIChtX3BsYXRmb3JtRGVzY3JpcHRp
b24pCisgICAgICAgIG1fY29udGV4dE1lbnVDbGllbnQtPmZyZWVQbGF0Zm9ybURlc2NyaXB0aW9u
KG1fcGxhdGZvcm1EZXNjcmlwdGlvbik7CiB9CiAKLXZvaWQgQ29udGV4dE1lbnU6OmFwcGVuZEl0
ZW0oQ29udGV4dE1lbnVJdGVtJikKK3ZvaWQgQ29udGV4dE1lbnU6OmFwcGVuZEl0ZW0oQ29udGV4
dE1lbnVJdGVtJiBpdGVtKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgY2hlY2tPckVu
YWJsZUlmTmVlZGVkKGl0ZW0pOworICAgIG1fY29udGV4dE1lbnVDbGllbnQtPmFwcGVuZEl0ZW0o
bV9wbGF0Zm9ybURlc2NyaXB0aW9uLCBpdGVtKTsKIH0KIAogdm9pZCBDb250ZXh0TWVudTo6c2V0
UGxhdGZvcm1EZXNjcmlwdGlvbihQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiBtZW51KQogeworICAg
IEFTU0VSVCghbV9wbGF0Zm9ybURlc2NyaXB0aW9uKTsKKwogICAgIG1fcGxhdGZvcm1EZXNjcmlw
dGlvbiA9IG1lbnU7CisgICAgbV9jb250ZXh0TWVudUNsaWVudC0+c2hvdyhtX3BsYXRmb3JtRGVz
Y3JpcHRpb24pOwogfQogCiBQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiBDb250ZXh0TWVudTo6cGxh
dGZvcm1EZXNjcmlwdGlvbigpIGNvbnN0CkBAIC01NSw4ICs3MiwxMiBAQCBQbGF0Zm9ybU1lbnVE
ZXNjcmlwdGlvbiBDb250ZXh0TWVudTo6cGxhdGZvcm1EZXNjcmlwdGlvbigpIGNvbnN0CiAKIFBs
YXRmb3JtTWVudURlc2NyaXB0aW9uIENvbnRleHRNZW51OjpyZWxlYXNlUGxhdGZvcm1EZXNjcmlw
dGlvbigpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gMDsKKyAgICAvLyBS
ZWYgY291bnRpbmcgcmVtYWlucyB0aGUgc2FtZSwganVzdCBwYXNzIGl0IGFuZCByZW1vdmUgb3Vy
IHJlZiwgc28gaXQKKyAgICAvLyB3aWxsIG5vdCBkZWNyZW1lbnRlZCB3aGVuIHRoaXMgb2JqZWN0
IGdvZXMgYXdheQorICAgIFBsYXRmb3JtTWVudURlc2NyaXB0aW9uIGRlc2NyaXB0aW9uID0gbV9w
bGF0Zm9ybURlc2NyaXB0aW9uOworICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlvbiA9IDA7CisKKyAg
ICByZXR1cm4gZGVzY3JpcHRpb247CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZv
cm0vZWZsL0NvbnRleHRNZW51SXRlbUVmbC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Db250
ZXh0TWVudUl0ZW1FZmwuY3BwCmluZGV4IGQ2NjkxMzA1YWFiNmFkN2UyZThiYzRmMTMxMGFlZTY4
MDllMjcxZWEuLmQzZDNmNmY2ODM4MDI0M2RmODhkNWU0ZGFlYTk3MTQ3MjE4OWVlY2YgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51SXRlbUVmbC5jcHAKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVJdGVtRWZsLmNwcApAQCAtMzcsODIgKzM3
LDEwNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIENvbnRleHRNZW51SXRlbTo6Q29udGV4dE1l
bnVJdGVtKFBsYXRmb3JtTWVudUl0ZW1EZXNjcmlwdGlvbikKIHsKKyAgICAvLyBpdCdzIGluc2lk
ZSBXZWJLaXQgdGhhdCB0aGlzIGluaXRpYWxpemF0aW9uIGlzIGRvbmUsIGFzIFdlYkNvcmUgZG9l
c24ndAorICAgIC8vIGtub3cgaG93IFBsYXRmb3JtTWVudUl0ZW1EZXNjcmlwdGlvbiBpcyBpbXBs
ZW1lbnRlZC4KICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi1Db250ZXh0TWVudUl0ZW06OkNv
bnRleHRNZW51SXRlbShDb250ZXh0TWVudSopCitDb250ZXh0TWVudUl0ZW06OkNvbnRleHRNZW51
SXRlbShDb250ZXh0TWVudSogc3VibWVudSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IG1fcGxhdGZvcm1EZXNjcmlwdGlvbi50eXBlID0gU3VibWVudVR5cGU7CisgICAgc2V0U3ViTWVu
dShzdWJtZW51KTsKIH0KIAotQ29udGV4dE1lbnVJdGVtOjpDb250ZXh0TWVudUl0ZW0oQ29udGV4
dE1lbnVJdGVtVHlwZSwgQ29udGV4dE1lbnVBY3Rpb24sIGNvbnN0IFN0cmluZyYsIENvbnRleHRN
ZW51KikKK0NvbnRleHRNZW51SXRlbTo6Q29udGV4dE1lbnVJdGVtKENvbnRleHRNZW51SXRlbVR5
cGUgdHlwZSwgQ29udGV4dE1lbnVBY3Rpb24gYWN0aW9uLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBD
b250ZXh0TWVudSogc3ViTWVudSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIG1fcGxh
dGZvcm1EZXNjcmlwdGlvbi50eXBlID0gdHlwZTsKKyAgICBtX3BsYXRmb3JtRGVzY3JpcHRpb24u
YWN0aW9uID0gYWN0aW9uOworICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi50aXRsZSA9IFN0cmlu
Zyh0aXRsZSk7CisKKyAgICBzZXRTdWJNZW51KHN1Yk1lbnUpOwogfQogCiBDb250ZXh0TWVudUl0
ZW06On5Db250ZXh0TWVudUl0ZW0oKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgaWYg
KG1fcGxhdGZvcm1EZXNjcmlwdGlvbi5zdWJNZW51KQorICAgICAgICBkZWxldGUgbV9wbGF0Zm9y
bURlc2NyaXB0aW9uLnN1Yk1lbnU7CiB9CiAKIFBsYXRmb3JtTWVudUl0ZW1EZXNjcmlwdGlvbiBD
b250ZXh0TWVudUl0ZW06OnJlbGVhc2VQbGF0Zm9ybURlc2NyaXB0aW9uKCkKIHsKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBtX3BsYXRmb3JtRGVzY3JpcHRpb247CiB9CiAKIENv
bnRleHRNZW51SXRlbVR5cGUgQ29udGV4dE1lbnVJdGVtOjp0eXBlKCkgY29uc3QKIHsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBBY3Rpb25UeXBlOworICAgIHJldHVybiBtX3Bs
YXRmb3JtRGVzY3JpcHRpb24udHlwZTsKIH0KIAotdm9pZCBDb250ZXh0TWVudUl0ZW06OnNldFR5
cGUoQ29udGV4dE1lbnVJdGVtVHlwZSkKK3ZvaWQgQ29udGV4dE1lbnVJdGVtOjpzZXRUeXBlKENv
bnRleHRNZW51SXRlbVR5cGUgdHlwZSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIG1f
cGxhdGZvcm1EZXNjcmlwdGlvbi50eXBlID0gdHlwZTsKIH0KIAogQ29udGV4dE1lbnVBY3Rpb24g
Q29udGV4dE1lbnVJdGVtOjphY3Rpb24oKSBjb25zdAogewotICAgIG5vdEltcGxlbWVudGVkKCk7
Ci0gICAgcmV0dXJuIENvbnRleHRNZW51SXRlbVRhZ05vQWN0aW9uOworICAgIHJldHVybiBtX3Bs
YXRmb3JtRGVzY3JpcHRpb24uYWN0aW9uOwogfQogCi12b2lkIENvbnRleHRNZW51SXRlbTo6c2V0
QWN0aW9uKENvbnRleHRNZW51QWN0aW9uKQordm9pZCBDb250ZXh0TWVudUl0ZW06OnNldEFjdGlv
bihDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24pCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICBtX3BsYXRmb3JtRGVzY3JpcHRpb24uYWN0aW9uID0gYWN0aW9uOwogfQogCiBTdHJpbmcgQ29u
dGV4dE1lbnVJdGVtOjp0aXRsZSgpIGNvbnN0CiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAg
ICByZXR1cm4gU3RyaW5nKCk7CisgICAgcmV0dXJuIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi50aXRs
ZTsKIH0KIAotdm9pZCBDb250ZXh0TWVudUl0ZW06OnNldFRpdGxlKGNvbnN0IFN0cmluZyYpCit2
b2lkIENvbnRleHRNZW51SXRlbTo6c2V0VGl0bGUoY29uc3QgU3RyaW5nJiB0aXRsZSkKIHsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi50aXRsZSA9IFN0
cmluZyh0aXRsZSk7CiB9CiAKIFBsYXRmb3JtTWVudURlc2NyaXB0aW9uIENvbnRleHRNZW51SXRl
bTo6cGxhdGZvcm1TdWJNZW51KCkgY29uc3QKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAg
IHJldHVybiAwOworICAgIGlmICghbV9wbGF0Zm9ybURlc2NyaXB0aW9uLnN1Yk1lbnUpCisgICAg
ICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi5zdWJNZW51
LT5wbGF0Zm9ybURlc2NyaXB0aW9uKCk7CisKIH0KIAotdm9pZCBDb250ZXh0TWVudUl0ZW06OnNl
dFN1Yk1lbnUoQ29udGV4dE1lbnUqKQordm9pZCBDb250ZXh0TWVudUl0ZW06OnNldFN1Yk1lbnUo
Q29udGV4dE1lbnUqIHN1Yk1lbnUpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBkZWxl
dGUgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLnN1Yk1lbnU7CisgICAgbV9wbGF0Zm9ybURlc2NyaXB0
aW9uLnN1Yk1lbnUgPSAwOworCisgICAgaWYgKCFzdWJNZW51KQorICAgICAgICByZXR1cm47CisK
KyAgICBtX3BsYXRmb3JtRGVzY3JpcHRpb24udHlwZSA9IFN1Ym1lbnVUeXBlOworICAgIG1fcGxh
dGZvcm1EZXNjcmlwdGlvbi5zdWJNZW51ID0gbmV3IENvbnRleHRNZW51KHN1Yk1lbnUtPmhpdFRl
c3RSZXN1bHQoKSwKKyAgICAgICAgICAgIHN1Yk1lbnUtPnJlbGVhc2VQbGF0Zm9ybURlc2NyaXB0
aW9uKCkpOwogfQogCi12b2lkIENvbnRleHRNZW51SXRlbTo6c2V0Q2hlY2tlZChib29sKQorYm9v
bCBDb250ZXh0TWVudUl0ZW06OmNoZWNrZWQoKSBjb25zdAogewotICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi5jaGVja2VkOwogfQogCi12b2lk
IENvbnRleHRNZW51SXRlbTo6c2V0RW5hYmxlZChib29sKQordm9pZCBDb250ZXh0TWVudUl0ZW06
OnNldENoZWNrZWQoYm9vbCBzaG91bGRDaGVjaykKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi5jaGVja2VkID0gc2hvdWxkQ2hlY2s7Cit9CisKK2Jv
b2wgQ29udGV4dE1lbnVJdGVtOjplbmFibGVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wbGF0
Zm9ybURlc2NyaXB0aW9uLmVuYWJsZWQ7Cit9CisKK3ZvaWQgQ29udGV4dE1lbnVJdGVtOjpzZXRF
bmFibGVkKGJvb2wgc2hvdWxkRW5hYmxlKQoreworICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi5l
bmFibGVkID0gc2hvdWxkRW5hYmxlOwogfQogCiB9CmRpZmYgLS1naXQgYS9XZWJLaXQvQ01ha2VM
aXN0c0VmbC50eHQgYi9XZWJLaXQvQ01ha2VMaXN0c0VmbC50eHQKaW5kZXggMDQ2YjYxM2IxMTUy
NzE5YmRkOWI4MzVkMTljOTBiMzhjODE4ZjU0Yi4uY2JjMGQ5MjkwODgyZDFlZGZhZWM3ZjY3MTM0
Y2NmM2EwMTM2YzU4MCAxMDA2NDQKLS0tIGEvV2ViS2l0L0NNYWtlTGlzdHNFZmwudHh0CisrKyBi
L1dlYktpdC9DTWFrZUxpc3RzRWZsLnR4dApAQCAtMjUsMTIgKzI1LDEzIEBAIExJU1QoQVBQRU5E
IFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVTCiAKIExJU1QoQVBQRU5EIFdlYktpdF9TT1VSQ0VT
CiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKLSAgICBlZmwvV2Vi
Q29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwKKyAgICBlZmwvV2ViQ29yZVN1cHBvcnQv
Q29udGV4dE1lbnVDbGllbnRFZmwuY3BwCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0RyYWdDbGll
bnRFZmwuY3BwCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5jcHAKICAg
ICBlZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCiAgICAgZWZsL1dl
YkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHAKIAorICAgIGVmbC9ld2svZXdrX2Nv
bnRleHRtZW51LmNwcAogICAgIGVmbC9ld2svZXdrX2ZyYW1lLmNwcAogICAgIGVmbC9ld2svZXdr
X2hpc3RvcnkuY3BwCiAgICAgZWZsL2V3ay9ld2tfbWFpbi5jcHAKZGlmZiAtLWdpdCBhL1dlYktp
dC9DaGFuZ2VMb2cgYi9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYyZTg4NGY5NWJkYmNhZGQxMzQw
NDVmNDQ3OGZkODMxOTlmOWM1ODQuLjEyNDg3OGIwZTZlZDBhMzdmODkwYjE3ZjNhY2VkZDUzZDIz
Yjk5MjggMTAwNjQ0Ci0tLSBhL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSw1ICsxLDUzIEBACiAyMDEwLTA1LTI4ICBMdWNhcyBEZSBNYXJjaGkgIDxsdWNhcy5k
ZW1hcmNoaUBwcm9mdXNpb24ubW9iaT4KIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBbRUZMXSBBZGQgQ29udGV4dCBNZW51IGltcGxlbWVudGF0aW9uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTgyMQorCisg
ICAgICAgICogQ01ha2VMaXN0c0VmbC50eHQ6IGFkZCBjb250ZXh0IG1lbnUgZmlsZXMuCisgICAg
ICAgICogZWZsL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50RWZsLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q2xpZW50RWZsOjpnZXRDdXN0b21NZW51RnJvbURlZmF1
bHRJdGVtcyk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNsaWVudEVmbDo6bmV3UGxh
dGZvcm1EZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNsaWVudEVm
bDo6ZnJlZVBsYXRmb3JtRGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1l
bnVDbGllbnRFZmw6OmFwcGVuZEl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVD
bGllbnRFZmw6OnNob3cpOgorICAgICAgICAqIGVmbC9XZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVu
dUNsaWVudEVmbC5oOgorICAgICAgICAqIGVmbC9ld2svZXdrX2NvbnRleHRtZW51LmNwcDogQWRk
ZWQuIEltcGxlbWVudCB0aGUgQVBJIHVzZWQgYnkKKyAgICAgICAgYnJvd3NlciBmb3IgbWFuaXB1
bGF0aW5nIGNvbnRleHQgbWVudXMuCisgICAgICAgIChld2tfY29udGV4dF9tZW51X3JlZik6Cisg
ICAgICAgIChld2tfY29udGV4dF9tZW51X3VucmVmKToKKyAgICAgICAgKGV3a19jb250ZXh0X21l
bnVfZGVzdHJveSk6CisgICAgICAgIChld2tfY29udGV4dF9tZW51X2l0ZW1fbGlzdF9nZXQpOgor
ICAgICAgICAoZXdrX2NvbnRleHRfbWVudV9pdGVtX25ldyk6CisgICAgICAgIChld2tfY29udGV4
dF9tZW51X2l0ZW1fc2VsZWN0KToKKyAgICAgICAgKGV3a19jb250ZXh0X21lbnVfaXRlbV9mcmVl
KToKKyAgICAgICAgKGV3a19jb250ZXh0X21lbnVfaXRlbV90eXBlX2dldCk6CisgICAgICAgIChl
d2tfY29udGV4dF9tZW51X2l0ZW1fdHlwZV9zZXQpOgorICAgICAgICAoZXdrX2NvbnRleHRfbWVu
dV9pdGVtX2FjdGlvbl9nZXQpOgorICAgICAgICAoZXdrX2NvbnRleHRfbWVudV9pdGVtX2FjdGlv
bl9zZXQpOgorICAgICAgICAoZXdrX2NvbnRleHRfbWVudV9pdGVtX3RpdGxlX2dldCk6CisgICAg
ICAgIChld2tfY29udGV4dF9tZW51X2l0ZW1fdGl0bGVfc2V0KToKKyAgICAgICAgKGV3a19jb250
ZXh0X21lbnVfaXRlbV9jaGVja2VkX2dldCk6CisgICAgICAgIChld2tfY29udGV4dF9tZW51X2l0
ZW1fY2hlY2tlZF9zZXQpOgorICAgICAgICAoZXdrX2NvbnRleHRfbWVudV9pdGVtX2VuYWJsZWRf
Z2V0KToKKyAgICAgICAgKGV3a19jb250ZXh0X21lbnVfaXRlbV9lbmFibGVkX3NldCk6CisgICAg
ICAgIChld2tfY29udGV4dF9tZW51X25ldyk6CisgICAgICAgIChld2tfY29udGV4dF9tZW51X2Zy
ZWUpOgorICAgICAgICAoZXdrX2NvbnRleHRfbWVudV9pdGVtX2FwcGVuZCk6CisgICAgICAgIChl
d2tfY29udGV4dF9tZW51X2N1c3RvbV9nZXQpOgorICAgICAgICAoZXdrX2NvbnRleHRfbWVudV9z
aG93KToKKyAgICAgICAgKiBlZmwvZXdrL2V3a19jb250ZXh0bWVudS5oOiBBZGRlZC4KKyAgICAg
ICAgKiBlZmwvZXdrL2V3a19wcml2YXRlLmg6CisgICAgICAgICogZWZsL2V3ay9ld2tfdmlldy5j
cHA6CisgICAgICAgIChld2tfdmlld19jb250ZXh0X21lbnVfZm9yd2FyZF9ldmVudCk6IGluZm9y
bSBicm93c2VyIGEgbmV3IGNvbnRleHQKKyAgICAgICAgbWVudSB3YXMgY3JlYXRlZC4KKyAgICAg
ICAgKGV3a192aWV3X2V4Y2VlZGVkX2RhdGFiYXNlX3F1b3RhKTogc21hbGwgZml4IHRvIHByZXZp
b3VzIGFkZGVkCisgICAgICAgIGNoYW5nZWQgZnVuY3Rpb24uCisgICAgICAgICogZWZsL2V3ay9l
d2tfdmlldy5oOgorCisyMDEwLTA1LTI4ICBMdWNhcyBEZSBNYXJjaGkgIDxsdWNhcy5kZW1hcmNo
aUBwcm9mdXNpb24ubW9iaT4KKwogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENo
cmlzdGlhbnNlbi4KIAogICAgICAgICBbRUZMXSBGaXggd3JvbmdseSBzZXQgY2xpcHBlci4gTm93
IHRoZSBzY3JvbGxiYXJzIGZyb20gbWFpbgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9XZWJDb3Jl
U3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEVmbC5jcHAgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0NvbnRleHRNZW51Q2xpZW50RWZsLmNwcAppbmRleCBhYWE2NGQ3ZDNiYjQ3YjkxYjIwY2Q2
MmExM2U1ZWVhNjU5ODVhNjEwLi41MTkxNWI0YTQ5NDgxNWI0NThlZjc4NDA1MjE0NGNmNzcyNmYx
YzkxIDEwMDY0NAotLS0gYS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xp
ZW50RWZsLmNwcAorKysgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xp
ZW50RWZsLmNwcApAQCAtMjksOSArMjksMTIgQEAKICNpbmNsdWRlICJDb250ZXh0TWVudUNsaWVu
dEVmbC5oIgogCiAjaW5jbHVkZSAiQ29udGV4dE1lbnUuaCIKKyNpbmNsdWRlICJFV2ViS2l0Lmgi
CisjaW5jbHVkZSAiZXdrX3ByaXZhdGUuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCiAj
aW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAi
UGxhdGZvcm1NZW51RGVzY3JpcHRpb24uaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
QEAgLTQ3LDEwICs1MCwxMSBAQCB2b2lkIENvbnRleHRNZW51Q2xpZW50RWZsOjpjb250ZXh0TWVu
dURlc3Ryb3llZCgpCiAgICAgZGVsZXRlIHRoaXM7CiB9CiAKLVBsYXRmb3JtTWVudURlc2NyaXB0
aW9uIENvbnRleHRNZW51Q2xpZW50RWZsOjpnZXRDdXN0b21NZW51RnJvbURlZmF1bHRJdGVtcyhD
b250ZXh0TWVudSopCitQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiBDb250ZXh0TWVudUNsaWVudEVm
bDo6Z2V0Q3VzdG9tTWVudUZyb21EZWZhdWx0SXRlbXMoQ29udGV4dE1lbnUqIG1lbnUpCiB7Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gMDsKKyAgICBQbGF0Zm9ybU1lbnVEZXNj
cmlwdGlvbiBuZXdtZW51ID0gZXdrX2NvbnRleHRfbWVudV9jdXN0b21fZ2V0KHN0YXRpY19jYXN0
PEV3a19Db250ZXh0X01lbnUqPihtZW51LT5yZWxlYXNlUGxhdGZvcm1EZXNjcmlwdGlvbigpKSk7
CisKKyAgICByZXR1cm4gbmV3bWVudTsKIH0KIAogdm9pZCBDb250ZXh0TWVudUNsaWVudEVmbDo6
Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVJdGVtKiwgY29uc3QgQ29udGV4dE1l
bnUqKQpAQCAtODksNCArOTMsMjQgQEAgdm9pZCBDb250ZXh0TWVudUNsaWVudEVmbDo6c3RvcFNw
ZWFraW5nKCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCitQbGF0Zm9ybU1lbnVEZXNjcmlw
dGlvbiBDb250ZXh0TWVudUNsaWVudEVmbDo6bmV3UGxhdGZvcm1EZXNjcmlwdGlvbihDb250ZXh0
TWVudSogbWVudSkKK3sKKyAgICByZXR1cm4gKFBsYXRmb3JtTWVudURlc2NyaXB0aW9uKSBld2tf
Y29udGV4dF9tZW51X25ldyhtX3ZpZXcsIG1lbnUtPmNvbnRyb2xsZXIoKSk7Cit9CisKK3ZvaWQg
Q29udGV4dE1lbnVDbGllbnRFZmw6OmZyZWVQbGF0Zm9ybURlc2NyaXB0aW9uKFBsYXRmb3JtTWVu
dURlc2NyaXB0aW9uIG1lbnUpCit7CisgICAgZXdrX2NvbnRleHRfbWVudV9mcmVlKHN0YXRpY19j
YXN0PEV3a19Db250ZXh0X01lbnUqPihtZW51KSk7Cit9CisKK3ZvaWQgQ29udGV4dE1lbnVDbGll
bnRFZmw6OmFwcGVuZEl0ZW0oUGxhdGZvcm1NZW51RGVzY3JpcHRpb24gbWVudSwgQ29udGV4dE1l
bnVJdGVtJiBpdGVtKQoreworICAgIGV3a19jb250ZXh0X21lbnVfaXRlbV9hcHBlbmQoc3RhdGlj
X2Nhc3Q8RXdrX0NvbnRleHRfTWVudSo+KG1lbnUpLCBpdGVtKTsKK30KKwordm9pZCBDb250ZXh0
TWVudUNsaWVudEVmbDo6c2hvdyhQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiBtZW51KQoreworICAg
IGV3a19jb250ZXh0X21lbnVfc2hvdyhzdGF0aWNfY2FzdDxFd2tfQ29udGV4dF9NZW51Kj4obWVu
dSkpOworfQorCiB9CmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0NvbnRl
eHRNZW51Q2xpZW50RWZsLmggYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51
Q2xpZW50RWZsLmgKaW5kZXggMmMzODE4Yzg5YWQ0ODAyZmY1MDcwMzBjYTgyYjk4ZjEyZjRhYmZk
NS4uZDhjYzFhMTY4ZDI5ZGFjN2RhYTM2YjZkYzIzZTM5MTkxNjRiNTEyZCAxMDA2NDQKLS0tIGEv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEVmbC5oCisrKyBiL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRFZmwuaApAQCAtNTAsNiAr
NTAsMTAgQEAgY2xhc3MgQ29udGV4dE1lbnVDbGllbnRFZmwgOiBwdWJsaWMgQ29udGV4dE1lbnVD
bGllbnQgewogICAgIHZpcnR1YWwgYm9vbCBpc1NwZWFraW5nKCk7CiAgICAgdmlydHVhbCB2b2lk
IHN0b3BTcGVha2luZygpOwogCisgICAgUGxhdGZvcm1NZW51RGVzY3JpcHRpb24gbmV3UGxhdGZv
cm1EZXNjcmlwdGlvbihDb250ZXh0TWVudSopOworICAgIHZvaWQgZnJlZVBsYXRmb3JtRGVzY3Jp
cHRpb24oUGxhdGZvcm1NZW51RGVzY3JpcHRpb24pOworICAgIHZvaWQgYXBwZW5kSXRlbShQbGF0
Zm9ybU1lbnVEZXNjcmlwdGlvbiwgQ29udGV4dE1lbnVJdGVtJik7CisgICAgdm9pZCBzaG93KFBs
YXRmb3JtTWVudURlc2NyaXB0aW9uIG1lbnUpOwogIHByaXZhdGU6CiAgICAgRXZhc19PYmplY3Qq
IG1fdmlldzsKIH07CmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL2V3ay9FV2ViS2l0LmggYi9XZWJL
aXQvZWZsL2V3ay9FV2ViS2l0LmgKaW5kZXggZDg3ZDIwNDJlZmQ4NTNjMWE1MDhmNDZkOGUyYzc0
MTJmOTdmNGJhZC4uYTYxY2M5ZDQ1OWEwYTIyNzE0ODVkNWNjYjhkYTRlODcwOTJiNzRkYiAxMDA2
NDQKLS0tIGEvV2ViS2l0L2VmbC9ld2svRVdlYktpdC5oCisrKyBiL1dlYktpdC9lZmwvZXdrL0VX
ZWJLaXQuaApAQCAtMjIsNiArMjIsNyBAQAogI2lmbmRlZiBFV2ViS2l0X2gKICNkZWZpbmUgRVdl
YktpdF9oCiAKKyNpbmNsdWRlICJld2tfY29udGV4dG1lbnUuaCIKICNpbmNsdWRlICJld2tfZWFw
aS5oIgogI2luY2x1ZGUgImV3a19mcmFtZS5oIgogI2luY2x1ZGUgImV3a19oaXN0b3J5LmgiCmRp
ZmYgLS1naXQgYS9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuY3BwIGIvV2ViS2l0L2Vm
bC9ld2svZXdrX2NvbnRleHRtZW51LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZGM3ZTRlYzUyNzM3NzEyOTA2
YjU2OTc1NGUzNDUyYTBmYWVlY2Y5Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L2VmbC9ld2sv
ZXdrX2NvbnRleHRtZW51LmNwcApAQCAtMCwwICsxLDI2MyBAQAorLyoKKyAgICBDb3B5cmlnaHQg
KEMpIDIwMTAgUHJvRlVTSU9OIGVtYmVkZGVkIHN5c3RlbXMKKyAgICBDb3B5cmlnaHQgKEMpIDIw
MTAgU2Ftc3VuZyBFbGVjdHJvbmljcworCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAg
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJld2tfY29udGV4dG1lbnUuaCIKKworI2luY2x1ZGUgIkNvbnRleHRNZW51LmgiCisjaW5jbHVk
ZSAiQ29udGV4dE1lbnVDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiQ29udGV4dE1lbnVJdGVtLmgi
CisjaW5jbHVkZSAiRVdlYktpdC5oIgorI2luY2x1ZGUgImV3a19wcml2YXRlLmgiCisKKyNpbmNs
dWRlIDxFaW5hLmg+CisjaW5jbHVkZSA8ZWluYV9zYWZldHlfY2hlY2tzLmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvQ1N0cmluZy5oPgorCitzdHJ1Y3QgX0V3a19Db250ZXh0X01lbnUgeworICAgIHVu
c2lnbmVkIGludCBfX3JlZjsKKyAgICBXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXIqIGNv
bnRyb2xsZXI7CisgICAgRXZhc19PYmplY3QqIHZpZXc7CisKKyAgICBFaW5hX0xpc3QqIGl0ZW1z
OworfTsKKworc3RydWN0IF9Fd2tfQ29udGV4dF9NZW51X0l0ZW0geworICAgIEV3a19Db250ZXh0
X01lbnVfSXRlbV9UeXBlIHR5cGU7CisgICAgRXdrX0NvbnRleHRfTWVudV9BY3Rpb24gYWN0aW9u
OworCisgICAgY29uc3QgY2hhciogdGl0bGU7CisgICAgRXdrX0NvbnRleHRfTWVudSogc3VibWVu
dTsKKworICAgIEVpbmFfQm9vbCBjaGVja2VkOjE7CisgICAgRWluYV9Cb29sIGVuYWJsZWQ6MTsK
K307CisKK3ZvaWQgZXdrX2NvbnRleHRfbWVudV9yZWYoRXdrX0NvbnRleHRfTWVudSogbWVudSkK
K3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihtZW51KTsKKyAgICBtZW51LT5fX3Jl
ZisrOworfQorCit2b2lkIGV3a19jb250ZXh0X21lbnVfdW5yZWYoRXdrX0NvbnRleHRfTWVudSog
bWVudSkKK3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihtZW51KTsKKyAgICB2b2lk
KiBpdGVtOworCisgICAgaWYgKC0tbWVudS0+X19yZWYpCisgICAgICAgIHJldHVybjsKKworICAg
IEVJTkFfTElTVF9GUkVFKG1lbnUtPml0ZW1zLCBpdGVtKQorICAgICAgICBld2tfY29udGV4dF9t
ZW51X2l0ZW1fZnJlZShzdGF0aWNfY2FzdDxFd2tfQ29udGV4dF9NZW51X0l0ZW0qPihpdGVtKSk7
CisKKyAgICBmcmVlKG1lbnUpOworfQorCitFaW5hX0Jvb2wgZXdrX2NvbnRleHRfbWVudV9kZXN0
cm95KEV3a19Db250ZXh0X01lbnUqIG1lbnUpCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9S
RVRVUk5fVkFMKG1lbnUsIEVJTkFfRkFMU0UpOworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVU
VVJOX1ZBTChtZW51LT5jb250cm9sbGVyLCBFSU5BX0ZBTFNFKTsKKworICAgIG1lbnUtPmNvbnRy
b2xsZXItPmNsZWFyQ29udGV4dE1lbnUoKTsKKyAgICByZXR1cm4gRUlOQV9UUlVFOworfQorCitj
b25zdCBFaW5hX0xpc3QqIGV3a19jb250ZXh0X21lbnVfaXRlbV9saXN0X2dldChFd2tfQ29udGV4
dF9NZW51KiBvKQoreworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChvLCAwKTsK
KworICAgIHJldHVybiBvLT5pdGVtczsKK30KKworRXdrX0NvbnRleHRfTWVudV9JdGVtKiBld2tf
Y29udGV4dF9tZW51X2l0ZW1fbmV3KEV3a19Db250ZXh0X01lbnVfSXRlbV9UeXBlIHR5cGUsCisg
ICAgICAgIEV3a19Db250ZXh0X01lbnVfQWN0aW9uIGFjdGlvbiwgRXdrX0NvbnRleHRfTWVudSog
c3VibWVudSwKKyAgICAgICAgY29uc3QgY2hhciogdGl0bGUsIEVpbmFfQm9vbCBjaGVja2VkLCBF
aW5hX0Jvb2wgZW5hYmxlZCkKK3sKKyAgICBFd2tfQ29udGV4dF9NZW51X0l0ZW0qIGl0ZW0gPSAo
RXdrX0NvbnRleHRfTWVudV9JdGVtKikgbWFsbG9jKHNpemVvZigqaXRlbSkpOworICAgIGlmICgh
aXRlbSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBpdGVtLT50eXBlID0gdHlwZTsKKyAgICBp
dGVtLT5hY3Rpb24gPSBhY3Rpb247CisgICAgaXRlbS0+dGl0bGUgPSBlaW5hX3N0cmluZ3NoYXJl
X2FkZCh0aXRsZSk7CisgICAgaXRlbS0+c3VibWVudSA9IHN1Ym1lbnU7CisgICAgaXRlbS0+Y2hl
Y2tlZCA9IGNoZWNrZWQ7CisgICAgaXRlbS0+ZW5hYmxlZCA9IGVuYWJsZWQ7CisKKyAgICByZXR1
cm4gaXRlbTsKK30KKworRWluYV9Cb29sIGV3a19jb250ZXh0X21lbnVfaXRlbV9zZWxlY3QoRXdr
X0NvbnRleHRfTWVudSogbWVudSwgRXdrX0NvbnRleHRfTWVudV9JdGVtKiBpdGVtKQoreworICAg
IEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChtZW51LCBFSU5BX0ZBTFNFKTsKKyAgICBF
SU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoaXRlbSwgRUlOQV9GQUxTRSk7CisgICAgV2Vi
Q29yZTo6Q29udGV4dE1lbnVBY3Rpb24gYWN0aW9uID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Q29u
dGV4dE1lbnVBY3Rpb24+KGl0ZW0tPmFjdGlvbik7CisgICAgV2ViQ29yZTo6Q29udGV4dE1lbnVJ
dGVtVHlwZSB0eXBlID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVHlwZT4o
aXRlbS0+dHlwZSk7CisKKyAgICAvLyBkb24ndCBjYXJlIGFib3V0IHRpdGxlIGFuZCBzdWJtZW51
IGFzIHRoZXkncmUgbm90IHVzZWQgYWZ0ZXIgdGhpcyBwb2ludAorICAgIFdlYkNvcmU6OkNvbnRl
eHRNZW51SXRlbSBjb3JlKHR5cGUsIGFjdGlvbiwgV2ViQ29yZTo6U3RyaW5nKCkpOworICAgIG1l
bnUtPmNvbnRyb2xsZXItPmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKCZjb3JlKTsKKyAgICByZXR1
cm4gRUlOQV9UUlVFOworfQorCit2b2lkIGV3a19jb250ZXh0X21lbnVfaXRlbV9mcmVlKEV3a19D
b250ZXh0X01lbnVfSXRlbSogaXRlbSkKK3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVS
TihpdGVtKTsKKworICAgIGVpbmFfc3RyaW5nc2hhcmVfZGVsKGl0ZW0tPnRpdGxlKTsKKyAgICBm
cmVlKGl0ZW0pOworfQorCitFd2tfQ29udGV4dF9NZW51X0l0ZW1fVHlwZSBld2tfY29udGV4dF9t
ZW51X2l0ZW1fdHlwZV9nZXQoRXdrX0NvbnRleHRfTWVudV9JdGVtKiBvKQoreworICAgIEVJTkFf
U0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChvLCBFV0tfQUNUSU9OX1RZUEUpOworICAgIHJldHVy
biBvLT50eXBlOworfQorCitFaW5hX0Jvb2wgZXdrX2NvbnRleHRfbWVudV9pdGVtX3R5cGVfc2V0
KEV3a19Db250ZXh0X01lbnVfSXRlbSogbywgRXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGUgdHlw
ZSkKK3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwobywgRUlOQV9GQUxTRSk7
CisgICAgby0+dHlwZSA9IHR5cGU7CisgICAgcmV0dXJuIEVJTkFfVFJVRTsKK30KKworRXdrX0Nv
bnRleHRfTWVudV9BY3Rpb24gZXdrX2NvbnRleHRfbWVudV9pdGVtX2FjdGlvbl9nZXQoRXdrX0Nv
bnRleHRfTWVudV9JdGVtKiBvKQoreworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZB
TChvLCBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX05PX0FDVElPTik7CisgICAgcmV0dXJuIG8t
PmFjdGlvbjsKK30KKworRWluYV9Cb29sIGV3a19jb250ZXh0X21lbnVfaXRlbV9hY3Rpb25fc2V0
KEV3a19Db250ZXh0X01lbnVfSXRlbSogbywgRXdrX0NvbnRleHRfTWVudV9BY3Rpb24gYWN0aW9u
KQoreworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChvLCBFSU5BX0ZBTFNFKTsK
KyAgICBvLT5hY3Rpb24gPSBhY3Rpb247CisgICAgcmV0dXJuIEVJTkFfVFJVRTsKK30KKworY29u
c3QgY2hhciogZXdrX2NvbnRleHRfbWVudV9pdGVtX3RpdGxlX2dldChFd2tfQ29udGV4dF9NZW51
X0l0ZW0qIG8pCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKG8sIDApOwor
ICAgIHJldHVybiBvLT50aXRsZTsKK30KKworY29uc3QgY2hhciogZXdrX2NvbnRleHRfbWVudV9p
dGVtX3RpdGxlX3NldChFd2tfQ29udGV4dF9NZW51X0l0ZW0qIG8sIGNvbnN0IGNoYXIqIHRpdGxl
KQoreworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChvLCAwKTsKKyAgICBlaW5h
X3N0cmluZ3NoYXJlX3JlcGxhY2UoJm8tPnRpdGxlLCB0aXRsZSk7CisgICAgcmV0dXJuIG8tPnRp
dGxlOworfQorCitFaW5hX0Jvb2wgZXdrX2NvbnRleHRfbWVudV9pdGVtX2NoZWNrZWRfZ2V0KEV3
a19Db250ZXh0X01lbnVfSXRlbSogbykKK3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVS
Tl9WQUwobywgRUlOQV9GQUxTRSk7CisgICAgcmV0dXJuIG8tPmNoZWNrZWQ7Cit9CisKK0VpbmFf
Qm9vbCBld2tfY29udGV4dF9tZW51X2l0ZW1fY2hlY2tlZF9zZXQoRXdrX0NvbnRleHRfTWVudV9J
dGVtKiBvLCBFaW5hX0Jvb2wgY2hlY2tlZCkKK3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JF
VFVSTl9WQUwobywgRUlOQV9GQUxTRSk7CisgICAgby0+Y2hlY2tlZCA9IGNoZWNrZWQ7CisgICAg
cmV0dXJuIEVJTkFfVFJVRTsKK30KKworRWluYV9Cb29sIGV3a19jb250ZXh0X21lbnVfaXRlbV9l
bmFibGVkX2dldChFd2tfQ29udGV4dF9NZW51X0l0ZW0qIG8pCit7CisgICAgRUlOQV9TQUZFVFlf
T05fTlVMTF9SRVRVUk5fVkFMKG8sIEVJTkFfRkFMU0UpOworICAgIHJldHVybiBvLT5lbmFibGVk
OworfQorCitFaW5hX0Jvb2wgZXdrX2NvbnRleHRfbWVudV9pdGVtX2VuYWJsZWRfc2V0KEV3a19D
b250ZXh0X01lbnVfSXRlbSAqbywgRWluYV9Cb29sIGVuYWJsZWQpCit7CisgICAgRUlOQV9TQUZF
VFlfT05fTlVMTF9SRVRVUk5fVkFMKG8sIEVJTkFfRkFMU0UpOworICAgIG8tPmVuYWJsZWQgPSBl
bmFibGVkOworICAgIHJldHVybiBFSU5BX1RSVUU7Cit9CisKKworLyogaW50ZXJuYWwgbWV0aG9k
cyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwor
CisvKioKKyAqIEBpbnRlcm5hbAorICoKKyAqIENyZWF0ZXMgY29udGV4dCBvbiB2aWV3LgorICoK
KyAqIEBwYXJhbSB2aWV3IFZpZXcuCisgKiBAcGFyYW0gQ29udHJvbGxlciBDb250ZXh0IE1lbnUg
Q29udHJvbGxlci4KKyAqCisgKiBAcmV0dXJuIG5ld2x5IGFsbG9jYXRlZCBjb250ZXh0IG1lbnUg
b3IgQGMgMCBvbiBlcnJvcnMuCisgKi8KK0V3a19Db250ZXh0X01lbnUqIGV3a19jb250ZXh0X21l
bnVfbmV3KEV2YXNfT2JqZWN0KiB2aWV3LCBXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXIq
IGNvbnRyb2xsZXIpCit7CisgICAgRXdrX0NvbnRleHRfTWVudSogbWVudTsKKyAgICBFSU5BX1NB
RkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwodmlldywgMCk7CisgICAgRUlOQV9TQUZFVFlfT05fTlVM
TF9SRVRVUk5fVkFMKGNvbnRyb2xsZXIsIDApOworCisgICAgbWVudSA9IHN0YXRpY19jYXN0PEV3
a19Db250ZXh0X01lbnUqPihtYWxsb2Moc2l6ZW9mKCptZW51KSkpOworICAgIGlmICghbWVudSkg
eworICAgICAgICBDUklUSUNBTCgiQ291bGQgbm90IGFsbG9jYXRlIGNvbnRleHQgbWVudSBtZW1v
cnkuIik7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIG1lbnUtPl9fcmVmID0gMTsK
KyAgICBtZW51LT52aWV3ID0gdmlldzsKKyAgICBtZW51LT5jb250cm9sbGVyID0gY29udHJvbGxl
cjsKKyAgICBtZW51LT5pdGVtcyA9IDA7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tf
Y2FsbChtZW51LT52aWV3LCAiY29udGV4dG1lbnUsbmV3IiwgbWVudSk7CisKKyAgICByZXR1cm4g
bWVudTsKK30KKworRWluYV9Cb29sIGV3a19jb250ZXh0X21lbnVfZnJlZShFd2tfQ29udGV4dF9N
ZW51KiBvKQoreworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChvLCBFSU5BX0ZB
TFNFKTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKG8tPnZpZXcsICJjb250
ZXh0bWVudSxmcmVlIiwgbyk7CisgICAgZXdrX2NvbnRleHRfbWVudV91bnJlZihvKTsKKyAgICBy
ZXR1cm4gRUlOQV9UUlVFOworfQorCit2b2lkIGV3a19jb250ZXh0X21lbnVfaXRlbV9hcHBlbmQo
RXdrX0NvbnRleHRfTWVudSogbywgV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtJiBjb3JlKQorewor
ICAgIEV3a19Db250ZXh0X01lbnVfSXRlbV9UeXBlIHR5cGUgPSBzdGF0aWNfY2FzdDxFd2tfQ29u
dGV4dF9NZW51X0l0ZW1fVHlwZT4oY29yZS50eXBlKCkpOworICAgIEV3a19Db250ZXh0X01lbnVf
QWN0aW9uIGFjdGlvbiA9IHN0YXRpY19jYXN0PEV3a19Db250ZXh0X01lbnVfQWN0aW9uPihjb3Jl
LmFjdGlvbigpKTsKKyAgICBFd2tfQ29udGV4dF9NZW51KiBzdWJtZW51ID0gc3RhdGljX2Nhc3Q8
RXdrX0NvbnRleHRfTWVudSo+KGNvcmUucGxhdGZvcm1TdWJNZW51KCkpOworCisgICAgRXdrX0Nv
bnRleHRfTWVudV9JdGVtKiBtZW51X2l0ZW0gPSBld2tfY29udGV4dF9tZW51X2l0ZW1fbmV3Cisg
ICAgICAgICh0eXBlLCBhY3Rpb24sIHN1Ym1lbnUsIGNvcmUudGl0bGUoKS51dGY4KCkuZGF0YSgp
LCBjb3JlLmNoZWNrZWQoKSwKKyAgICAgICAgIGNvcmUuZW5hYmxlZCgpKTsKKyAgICBFSU5BX1NB
RkVUWV9PTl9OVUxMX1JFVFVSTihtZW51X2l0ZW0pOworCisgICAgby0+aXRlbXMgPSBlaW5hX2xp
c3RfYXBwZW5kKG8tPml0ZW1zLCBtZW51X2l0ZW0pOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2Nh
bGxiYWNrX2NhbGwoby0+dmlldywgImNvbnRleHRtZW51LGl0ZW0sYXBwZW5kZWQiLCBvKTsKK30K
KworRXdrX0NvbnRleHRfTWVudSogZXdrX2NvbnRleHRfbWVudV9jdXN0b21fZ2V0KEV3a19Db250
ZXh0X01lbnUqIG8pCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKG8sIDAp
OworCisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChvLT52aWV3LCAiY29udGV4
dG1lbnUsY3VzdG9taXplIiwgby0+aXRlbXMpOworICAgIHJldHVybiBvOworfQorCit2b2lkIGV3
a19jb250ZXh0X21lbnVfc2hvdyhFd2tfQ29udGV4dF9NZW51KiBvKQoreworICAgIEVJTkFfU0FG
RVRZX09OX05VTExfUkVUVVJOKG8pOworCisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tf
Y2FsbChvLT52aWV3LCAiY29udGV4dG1lbnUsc2hvdyIsIG8pOworfQpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmggYi9XZWJLaXQvZWZsL2V3ay9ld2tfY29udGV4
dG1lbnUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iOTFkYWIwOWY5YTg3NTY1YmZiY2ZkNjU4M2JhMzkwYmY2ZThi
NDAwCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmgK
QEAgLTAsMCArMSwxNDggQEAKKy8qCisgICAgQ29weXJpZ2h0IChDKSAyMDEwIFByb0ZVU0lPTiBl
bWJlZGRlZCBzeXN0ZW1zCisgICAgQ29weXJpZ2h0IChDKSAyMDEwIFNhbXN1bmcgRWxlY3Ryb25p
Y3MKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
CisqLworCisjaWZuZGVmIGV3a19jb250ZXh0bWVudV9oCisjZGVmaW5lIGV3a19jb250ZXh0bWVu
dV9oCisKKyNpbmNsdWRlICJld2tfZWFwaS5oIgorCisjaW5jbHVkZSA8RWluYS5oPgorI2luY2x1
ZGUgPEV2YXMuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgor
CisvLyBrZWVwIHRoaXMgaW4gc3luYyB3aXRoIENvbnRleHRNZW51SXRlbS5oCitlbnVtIF9Fd2tf
Q29udGV4dF9NZW51X0FjdGlvbiB7CisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19OT19B
Q1RJT04gPSAwLCAvLyB0aGlzIGl0ZW0gaXMgbm90IGFjdHVhbGx5IGluIHdlYl91aWRlbGVnYXRl
LmgKKyAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX09QRU5fTElOS19JTl9ORVdfV0lORE9X
ID0gMSwKKyAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX0RPV05MT0FEX0xJTktfVE9fRElT
SywKKyAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX0NPUFlfTElOS19UT19DTElQQk9BUkQs
CisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19PUEVOX0lNQUdFX0lOX05FV19XSU5ET1cs
CisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19ET1dOTE9BRF9JTUFHRV9UT19ESVNLLAor
ICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfQ09QWV9JTUFHRV9UT19DTElQQk9BUkQsCisg
ICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19PUEVOX0ZSQU1FX0lOX05FV19XSU5ET1csCisg
ICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19DT1BZLAorICAgIEVXS19DT05URVhUX01FTlVf
SVRFTV9UQUdfR09fQkFDSywKKyAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX0dPX0ZPUldB
UkQsCisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19TVE9QLAorICAgIEVXS19DT05URVhU
X01FTlVfSVRFTV9UQUdfUkVMT0FELAorICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfQ1VU
LAorICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfUEFTVEUsCisgICAgRVdLX0NPTlRFWFRf
TUVOVV9JVEVNX1RBR19TUEVMTElOR19HVUVTUywKKyAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1f
VEFHX05PX0dVRVNTRVNfRk9VTkQsCisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19JR05P
UkVfU1BFTExJTkcsCisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19MRUFSTl9TUEVMTElO
RywKKyAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX09USEVSLAorICAgIEVXS19DT05URVhU
X01FTlVfSVRFTV9UQUdfU0VBUkNIX0lOX1NQT1RMSUdIVCwKKyAgICBFV0tfQ09OVEVYVF9NRU5V
X0lURU1fVEFHX1NFQVJDSF9XRUIsCisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19MT09L
X1VQX0lOX0RJQ1RJT05BUlksCisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19PUEVOX1dJ
VEhfREVGQVVMVF9BUFBMSUNBVElPTiwKKyAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fUERGQUNU
VUFMX1NJWkUsCisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1BERlpPT01fSU4sCisgICAgRVdL
X0NPTlRFWFRfTUVOVV9JVEVNX1BERlpPT01fT1VULAorICAgIEVXS19DT05URVhUX01FTlVfSVRF
TV9QREZBVVRPX1NJWkUsCisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1BERlNJTkdMRV9QQUdF
LAorICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9QREZGQUNJTkdfUEFHRVMsCisgICAgRVdLX0NP
TlRFWFRfTUVOVV9JVEVNX1BERkNPTlRJTlVPVVMsCisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVN
X1BERk5FWFRfUEFHRSwKKyAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fUERGUFJFVklPVVNfUEFH
RSwKKyAgICAvLyB0aGVzZSBhcmUgbmV3IHRhZ3MhIG5vdCBhIHBhcnQgb2YgYXBpISEhIQorICAg
IEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfT1BFTl9MSU5LID0gMjAwMCwKKyAgICBFV0tfQ09O
VEVYVF9NRU5VX0lURU1fVEFHX0lHTk9SRV9HUkFNTUFSLAorICAgIEVXS19DT05URVhUX01FTlVf
SVRFTV9UQUdfU1BFTExJTkdfTUVOVSwgLy8gc3BlbGxpbmcgb3Igc3BlbGxpbmcvZ3JhbW1hciBz
dWItbWVudQorICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfU0hPV19TUEVMTElOR19QQU5F
TCwKKyAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX0NIRUNLX1NQRUxMSU5HLAorICAgIEVX
S19DT05URVhUX01FTlVfSVRFTV9UQUdfQ0hFQ0tfU1BFTExJTkdfV0hJTEVfVFlQSU5HLAorICAg
IEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfQ0hFQ0tfR1JBTU1BUl9XSVRIX1NQRUxMSU5HLAor
ICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfRk9OVF9NRU5VLCAvLyBmb250IHN1Yi1tZW51
CisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19TSE9XX0ZPTlRTLAorICAgIEVXS19DT05U
RVhUX01FTlVfSVRFTV9UQUdfQk9MRCwKKyAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX0lU
QUxJQywKKyAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX1VOREVSTElORSwKKyAgICBFV0tf
Q09OVEVYVF9NRU5VX0lURU1fVEFHX09VVExJTkUsCisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVN
X1RBR19TVFlMRVMsCisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19TSE9XX0NPTE9SUywK
KyAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX1NQRUVDSF9NRU5VLCAvLyBzcGVlY2ggc3Vi
LW1lbnUKKyAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX1NUQVJUX1NQRUFLSU5HLAorICAg
IEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfU1RPUF9TUEVBS0lORywKKyAgICBFV0tfQ09OVEVY
VF9NRU5VX0lURU1fVEFHX1dSSVRJTkdfRElSRUNUSU9OX01FTlUsIC8vIHdyaXRpbmcgZGlyZWN0
aW9uIHN1Yi1tZW51CisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19ERUZBVUxUX0RJUkVD
VElPTiwKKyAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX0xFRlRfVE9fUklHSFQsCisgICAg
RVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19SSUdIVF9UT19MRUZULAorICAgIEVXS19DT05URVhU
X01FTlVfSVRFTV9UQUdfUERGU0lOR0xFX1BBR0VfU0NST0xMSU5HLAorICAgIEVXS19DT05URVhU
X01FTlVfSVRFTV9UQUdfUERGRkFDSU5HX1BBR0VTX1NDUk9MTElORywKKyAgICBFV0tfQ09OVEVY
VF9NRU5VX0lURU1fVEFHX1RFWFRfRElSRUNUSU9OX01FTlUsIC8vIHRleHQgZGlyZWN0aW9uIHN1
Yi1tZW51CisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19URVhUX0RJUkVDVElPTl9ERUZB
VUxULAorICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfVEVYVF9ESVJFQ1RJT05fTEVGVF9U
T19SSUdIVCwKKyAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX1RFWFRfRElSRUNUSU9OX1JJ
R0hUX1RPX0xFRlQsCisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX0JBU0VfQ1VTVE9NX1RBRyA9
IDUwMDAsCisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX0JBU0VfQVBQTElDQVRJT05fVEFHID0g
MTAwMDAKK307Cit0eXBlZGVmIGVudW0gX0V3a19Db250ZXh0X01lbnVfQWN0aW9uIEV3a19Db250
ZXh0X01lbnVfQWN0aW9uOworCisvLyBrZWVwIHRoaXMgaW4gc3luYyB3aXRoIENvbnRleHRNZW51
SXRlbS5oCitlbnVtIF9Fd2tfQ29udGV4dF9NZW51X0l0ZW1fVHlwZSB7CisgICAgRVdLX0FDVElP
Tl9UWVBFLAorICAgIEVXS19DSEVDS0FCTEVfQUNUSU9OX1RZUEUsCisgICAgRVdLX1NFUEFSQVRP
Ul9UWVBFLAorICAgIEVXS19TVUJNRU5VX1RZUEUKK307Cit0eXBlZGVmIGVudW0gX0V3a19Db250
ZXh0X01lbnVfSXRlbV9UeXBlICAgIEV3a19Db250ZXh0X01lbnVfSXRlbV9UeXBlOworCisvKioK
KyAqIFRoZSBzdHJ1Y3R1cmUgdG8gY29udGFpbiBDb250ZXh0IE1lbnUgZGF0YQorICovCit0eXBl
ZGVmIHN0cnVjdCBfRXdrX0NvbnRleHRfTWVudSAgICAgICAgICAgIEV3a19Db250ZXh0X01lbnU7
CisKKy8qKgorICogUmVwcmVzZW50cyBvbmUgaXRlbSBmcm9tIEV3a19Db250ZXh0X01lbnUKKyAq
LwordHlwZWRlZiBzdHJ1Y3QgX0V3a19Db250ZXh0X01lbnVfSXRlbSAgICAgICBFd2tfQ29udGV4
dF9NZW51X0l0ZW07CisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKiogRXhwb3J0ZWQg
ZnVuY3Rpb25zICoqKioqKioqKioqKioqKioqKioqKioqLworCitFQVBJIHZvaWQgICAgICAgICAg
ICAgICAgICAgICAgICBld2tfY29udGV4dF9tZW51X3JlZihFd2tfQ29udGV4dF9NZW51KiBtZW51
KTsKK0VBUEkgdm9pZCAgICAgICAgICAgICAgICAgICAgICAgIGV3a19jb250ZXh0X21lbnVfdW5y
ZWYoRXdrX0NvbnRleHRfTWVudSogbWVudSk7CitFQVBJIEVpbmFfQm9vbCAgICAgICAgICAgICAg
ICAgICBld2tfY29udGV4dF9tZW51X2Rlc3Ryb3koRXdrX0NvbnRleHRfTWVudSogbWVudSk7CisK
K0VBUEkgY29uc3QgRWluYV9MaXN0KiAgICAgICAgICAgIGV3a19jb250ZXh0X21lbnVfaXRlbV9s
aXN0X2dldChFd2tfQ29udGV4dF9NZW51KiBvKTsKKworRUFQSSBFd2tfQ29udGV4dF9NZW51X0l0
ZW0qICAgICAgZXdrX2NvbnRleHRfbWVudV9pdGVtX25ldyhFd2tfQ29udGV4dF9NZW51X0l0ZW1f
VHlwZSB0eXBlLCBFd2tfQ29udGV4dF9NZW51X0FjdGlvbiBhY3Rpb24sIEV3a19Db250ZXh0X01l
bnUqIHN1Ym1lbnUsIGNvbnN0IGNoYXIqIHRpdGxlLCBFaW5hX0Jvb2wgY2hlY2tlZCwgRWluYV9C
b29sIGVuYWJsZWQpOworRUFQSSB2b2lkICAgICAgICAgICAgICAgICAgICAgICAgZXdrX2NvbnRl
eHRfbWVudV9pdGVtX2ZyZWUoRXdrX0NvbnRleHRfTWVudV9JdGVtKiBpdGVtKTsKK0VBUEkgRWlu
YV9Cb29sICAgICAgICAgICAgICAgICAgIGV3a19jb250ZXh0X21lbnVfaXRlbV9zZWxlY3QoRXdr
X0NvbnRleHRfTWVudSogbWVudSwgRXdrX0NvbnRleHRfTWVudV9JdGVtKiBpdGVtKTsKK0VBUEkg
RXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGUgIGV3a19jb250ZXh0X21lbnVfaXRlbV90eXBlX2dl
dChFd2tfQ29udGV4dF9NZW51X0l0ZW0qIG8pOworRUFQSSBFaW5hX0Jvb2wgICAgICAgICAgICAg
ICAgICAgZXdrX2NvbnRleHRfbWVudV9pdGVtX3R5cGVfc2V0KEV3a19Db250ZXh0X01lbnVfSXRl
bSogbywgRXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGUgdHlwZSk7CitFQVBJIEV3a19Db250ZXh0
X01lbnVfQWN0aW9uICAgICBld2tfY29udGV4dF9tZW51X2l0ZW1fYWN0aW9uX2dldChFd2tfQ29u
dGV4dF9NZW51X0l0ZW0qIG8pOworRUFQSSBFaW5hX0Jvb2wgICAgICAgICAgICAgICAgICAgZXdr
X2NvbnRleHRfbWVudV9pdGVtX2FjdGlvbl9zZXQoRXdrX0NvbnRleHRfTWVudV9JdGVtKiBvLCBF
d2tfQ29udGV4dF9NZW51X0FjdGlvbiBhY3Rpb24pOworRUFQSSBjb25zdCBjaGFyKiAgICAgICAg
ICAgICAgICAgZXdrX2NvbnRleHRfbWVudV9pdGVtX3RpdGxlX2dldChFd2tfQ29udGV4dF9NZW51
X0l0ZW0qIG8pOworRUFQSSBjb25zdCBjaGFyKiAgICAgICAgICAgICAgICAgZXdrX2NvbnRleHRf
bWVudV9pdGVtX3RpdGxlX3NldChFd2tfQ29udGV4dF9NZW51X0l0ZW0qIG8sIGNvbnN0IGNoYXIq
IHRpdGxlKTsKK0VBUEkgRWluYV9Cb29sICAgICAgICAgICAgICAgICAgIGV3a19jb250ZXh0X21l
bnVfaXRlbV9jaGVja2VkX2dldChFd2tfQ29udGV4dF9NZW51X0l0ZW0qIG8pOworRUFQSSBFaW5h
X0Jvb2wgICAgICAgICAgICAgICAgICAgZXdrX2NvbnRleHRfbWVudV9pdGVtX2NoZWNrZWRfc2V0
KEV3a19Db250ZXh0X01lbnVfSXRlbSogbywgRWluYV9Cb29sIGNoZWNrZWQpOworRUFQSSBFaW5h
X0Jvb2wgICAgICAgICAgICAgICAgICAgZXdrX2NvbnRleHRfbWVudV9pdGVtX2VuYWJsZWRfZ2V0
KEV3a19Db250ZXh0X01lbnVfSXRlbSogbyk7CitFQVBJIEVpbmFfQm9vbCAgICAgICAgICAgICAg
ICAgICBld2tfY29udGV4dF9tZW51X2l0ZW1fZW5hYmxlZF9zZXQoRXdrX0NvbnRleHRfTWVudV9J
dGVtKiBvLCBFaW5hX0Jvb2wgZW5hYmxlZCk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2Vu
ZGlmCisjZW5kaWYgLy8gZXdrX2NvbnRleHRtZW51X2gKZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwv
ZXdrL2V3a19wcml2YXRlLmggYi9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCmluZGV4IGNl
YmJlYmExN2VhOGI0OTA4MzMxYmFjNzYzMTllZTMwNTBhM2FhZmEuLjUzMzRlZDcwMWY3MDQ3NzE5
OWQwMDdiNDg1NmQ4N2M1ZGUyM2NhY2UgMTAwNjQ0Ci0tLSBhL1dlYktpdC9lZmwvZXdrL2V3a19w
cml2YXRlLmgKKysrIGIvV2ViS2l0L2VmbC9ld2svZXdrX3ByaXZhdGUuaApAQCAtNDQsNiArNDQs
OCBAQCBleHRlcm4gIkMiIHsKIC8vIGZvcndhcmQgZGVjbGFyYXRpb25zCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBzdHJ1Y3QgUG9wdXBNZW51Q2xpZW50Oworc3RydWN0IENvbnRleHRNZW51Oworc3Ry
dWN0IENvbnRleHRNZW51SXRlbTsKIH0KIAogdm9pZCAgICAgICAgICAgICBld2tfdmlld19yZWFk
eShFdmFzX09iamVjdCAqbyk7CkBAIC05NCw2ICs5NiwxMiBAQCB2b2lkICAgICAgICAgICAgIGV3
a192aWV3X3BvcHVwX25ldyhFdmFzX09iamVjdCAqbywgV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50
KiBjbAogRXdrX0hpc3RvcnkgICAgICAqZXdrX2hpc3RvcnlfbmV3KFdlYkNvcmU6OkJhY2tGb3J3
YXJkTGlzdCAqaGlzdG9yeSk7CiB2b2lkICAgICAgICAgICAgICBld2tfaGlzdG9yeV9mcmVlKEV3
a19IaXN0b3J5ICpoaXN0b3J5KTsKIAorRXdrX0NvbnRleHRfTWVudSAqZXdrX2NvbnRleHRfbWVu
dV9uZXcoRXZhc19PYmplY3QgKnZpZXcsIFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlciAq
Y29udHJvbGxlcik7CitFaW5hX0Jvb2wgICAgICAgICBld2tfY29udGV4dF9tZW51X2ZyZWUoRXdr
X0NvbnRleHRfTWVudSAqbyk7Cit2b2lkICAgICAgICAgICAgICBld2tfY29udGV4dF9tZW51X2l0
ZW1fYXBwZW5kKEV3a19Db250ZXh0X01lbnUgKm8sIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbSYg
Y29yZSk7CitFd2tfQ29udGV4dF9NZW51ICpld2tfY29udGV4dF9tZW51X2N1c3RvbV9nZXQoRXdr
X0NvbnRleHRfTWVudSAqbyk7Cit2b2lkICAgICAgICAgICAgICBld2tfY29udGV4dF9tZW51X3No
b3coRXdrX0NvbnRleHRfTWVudSAqbyk7CisKIEV2YXNfT2JqZWN0ICAgICAgKmV3a19mcmFtZV9h
ZGQoRXZhcyAqZSk7CiBFaW5hX0Jvb2wgICAgICAgICBld2tfZnJhbWVfaW5pdChFdmFzX09iamVj
dCAqbywgRXZhc19PYmplY3QgKnZpZXcsIFdlYkNvcmU6OkZyYW1lICpmcmFtZSk7CiBFdmFzX09i
amVjdCAgICAgICpld2tfZnJhbWVfY2hpbGRfYWRkKEV2YXNfT2JqZWN0ICpvLCBXVEY6OlBhc3NS
ZWZQdHI8V2ViQ29yZTo6RnJhbWU+IGNoaWxkLCBjb25zdCBXZWJDb3JlOjpTdHJpbmcmIG5hbWUs
IGNvbnN0IFdlYkNvcmU6OktVUkwmIHVybCwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJiByZWZlcnJl
cik7CmRpZmYgLS1naXQgYS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAgYi9XZWJLaXQvZWZs
L2V3ay9ld2tfdmlldy5jcHAKaW5kZXggMjcxNjFjYzMyNTM2N2VlYzhmYTczMTJlNjlhMDc2MWI1
OGMzODllMi4uZDU5MjBlNWViN2JmYzc2MTc5NzQ0MGI5ZTYwZTU1M2ZjMTRlNWYyOSAxMDA2NDQK
LS0tIGEvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCisrKyBiL1dlYktpdC9lZmwvZXdrL2V3
a192aWV3LmNwcApAQCAtMjMsMTUgKzIzLDE4IEBACiAKICNpbmNsdWRlICJDaHJvbWVDbGllbnRF
ZmwuaCIKICNpbmNsdWRlICJDb250ZXh0TWVudUNsaWVudEVmbC5oIgorI2luY2x1ZGUgIkNvbnRl
eHRNZW51Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVk
ZSAiRHJhZ0NsaWVudEVmbC5oIgogI2luY2x1ZGUgIkVXZWJLaXQuaCIKICNpbmNsdWRlICJFZGl0
b3JDbGllbnRFZmwuaCIKKyNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKICNpbmNsdWRlICJGb2N1
c0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudEVmbC5oIgogI2luY2x1
ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUg
Ikluc3BlY3RvckNsaWVudEVmbC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgog
I2luY2x1ZGUgIlBvcHVwTWVudUNsaWVudC5oIgogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5o
IgogI2luY2x1ZGUgImV3a19wcml2YXRlLmgiCkBAIC0xNDc3LDYgKzE0ODAsNDYgQEAgRWluYV9C
b29sIGV3a192aWV3X3NlbGVjdF93b3JkKEV2YXNfT2JqZWN0KiBvKQogfQogCiAvKioKKyAqIEZv
cndhcmRzIGEgcmVxdWVzdCBvZiBuZXcgQ29udGV4dCBNZW51IHRvIFdlYkNvcmUuCisgKgorICog
QHBhcmFtIG8gVmlldy4KKyAqIEBwYXJhbSBldiBFdmVudCBkYXRhLgorICoKKyAqIEByZXR1cm4g
QGMgRUlOQV9UUlVFIGlmIG9wZXJhdGlvbiB3YXMgZXhlY3V0ZWQsIEBjIEVJTkFfRkFMU0Ugb3Ro
ZXJ3aXNlLgorICovCitFaW5hX0Jvb2wgZXdrX3ZpZXdfY29udGV4dF9tZW51X2ZvcndhcmRfZXZl
bnQoRXZhc19PYmplY3QqIG8sIGNvbnN0IEV2YXNfRXZlbnRfTW91c2VfRG93biogZXYpCit7Cisg
ICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihvLCBzZCwgRUlOQV9GQUxTRSk7CisgICAgRVdL
X1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNkLCBwcml2LCBFSU5BX0ZBTFNFKTsKKyAgICBFaW5h
X0Jvb2wgbW91c2VfcHJlc3NfaGFuZGxlZCA9IEVJTkFfRkFMU0U7CisKKyAgICBwcml2LT5wYWdl
LT5jb250ZXh0TWVudUNvbnRyb2xsZXIoKS0+Y2xlYXJDb250ZXh0TWVudSgpOworICAgIFdlYkNv
cmU6OkZyYW1lKiBtYWluX2ZyYW1lID0gcHJpdi0+cGFnZS0+bWFpbkZyYW1lKCk7CisgICAgRXZh
c19Db29yZCB4LCB5OworICAgIGV2YXNfb2JqZWN0X2dlb21ldHJ5X2dldChzZC0+c2VsZiwgJngs
ICZ5LCAwLCAwKTsKKworICAgIFdlYkNvcmU6OlBsYXRmb3JtTW91c2VFdmVudCBldmVudChldiwg
V2ViQ29yZTo6SW50UG9pbnQoeCwgeSkpOworCisgICAgaWYgKG1haW5fZnJhbWUtPnZpZXcoKSkg
eworICAgICAgICBtb3VzZV9wcmVzc19oYW5kbGVkID0KKyAgICAgICAgICAgIG1haW5fZnJhbWUt
PmV2ZW50SGFuZGxlcigpLT5oYW5kbGVNb3VzZVByZXNzRXZlbnQoZXZlbnQpOworICAgIH0KKwor
ICAgIGlmIChtYWluX2ZyYW1lLT5ldmVudEhhbmRsZXIoKS0+c2VuZENvbnRleHRNZW51RXZlbnQo
ZXZlbnQpKQorICAgICAgICByZXR1cm4gRUlOQV9GQUxTRTsKKworICAgIFdlYkNvcmU6OkNvbnRl
eHRNZW51KiBjb3JlTWVudSA9CisgICAgICAgIHByaXYtPnBhZ2UtPmNvbnRleHRNZW51Q29udHJv
bGxlcigpLT5jb250ZXh0TWVudSgpOworICAgIGlmICghY29yZU1lbnUpIHsKKyAgICAgICAgLy8g
V2ViQ29yZSBkZWNpZGVkIG5vdCB0byBjcmVhdGUgYSBjb250ZXh0IG1lbnUsIHJldHVybiB0cnVl
IGlmIGV2ZW50CisgICAgICAgIC8vIHdhcyBoYW5kbGVkIGJ5IGhhbmRsZU1vdXNlUmVsZWFzZUV2
ZW50CisgICAgICAgIHJldHVybiBtb3VzZV9wcmVzc19oYW5kbGVkOworICAgIH0KKworICAgIHJl
dHVybiBFSU5BX1RSVUU7Cit9CisKKy8qKgogICogR2V0IGN1cnJlbnQgbG9hZCBwcm9ncmVzcyBl
c3RpbWF0ZSBmcm9tIDAuMCB0byAxLjAuCiAgKgogICogQHBhcmFtIG8gdmlldyBvYmplY3QgdG8g
Z2V0IGN1cnJlbnQgcHJvZ3Jlc3MuCkBAIC0zMzk0LDE0ICszNDM3LDIwIEBAIEVpbmFfQm9vbCBl
d2tfdmlld19zaG91bGRfaW50ZXJydXB0X2phdmFzY3JpcHQoRXZhc19PYmplY3QqIG8pCiAgKiBA
cGFyYW0gbyBWaWV3LgogICogQHBhcmFtIGZyYW1lIFRoZSBmcmFtZSB3aG9zZSB3ZWIgcGFnZSBl
eGNlZWRlZCBpdHMgZGF0YWJhc2UgcXVvdGEuCiAgKiBAcGFyYW0gZGF0YWJhc2VOYW1lIERhdGFi
YXNlIG5hbWUuCisgKiBAcGFyYW0gY3VycmVudF9zaXplIEN1cnJlbnQgc2l6ZSBvZiB0aGlzIGRh
dGFiYXNlCisgKiBAcGFyYW0gZXhwZWN0ZWRfc2l6ZSBUaGUgZXhwZWN0ZWQgc2l6ZSBvZiB0aGlz
IGRhdGFiYXNlIGluIG9yZGVyIHRvIGZ1bGZpbGwKKyAqIHNpdGUncyByZXF1aXJlbWVudC4KICAq
Lwotdm9pZCBld2tfdmlld19leGNlZWRlZF9kYXRhYmFzZV9xdW90YShFdmFzX09iamVjdCogbywg
RXZhc19PYmplY3QqIGZyYW1lLCBjb25zdCBjaGFyKiBkYXRhYmFzZU5hbWUpCit1aW50NjRfdCBl
d2tfdmlld19leGNlZWRlZF9kYXRhYmFzZV9xdW90YShFdmFzX09iamVjdCogbywgRXZhc19PYmpl
Y3QqIGZyYW1lLCBjb25zdCBjaGFyKiBkYXRhYmFzZU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRfc2l6
ZSwgdWludDY0X3QgZXhwZWN0ZWRfc2l6ZSkKIHsKICAgICBEQkcoIm89JXAiLCBvKTsKLSAgICBF
V0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKG8sIHNkKTsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxM
X1JFVFVSTihzZC0+YXBpKTsKLSAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihzZC0+YXBp
LT5leGNlZWRlZF9kYXRhYmFzZV9xdW90YSk7Ci0gICAgc2QtPmFwaS0+ZXhjZWVkZWRfZGF0YWJh
c2VfcXVvdGEoc2QsIGZyYW1lLCBkYXRhYmFzZU5hbWUpOworICAgIEVXS19WSUVXX1NEX0dFVF9P
Ul9SRVRVUk4obywgc2QsIDApOworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChz
ZC0+YXBpLCAwKTsKKyAgICBpZiAoIXNkLT5hcGktPmV4Y2VlZGVkX2RhdGFiYXNlX3F1b3RhKQor
ICAgICAgICByZXR1cm4gMDsKKworICAgIEVSUigiIyMjIyMgJWx1ICVsdSIsIGN1cnJlbnRfc2l6
ZSwgZXhwZWN0ZWRfc2l6ZSk7CisgICAgcmV0dXJuIHNkLT5hcGktPmV4Y2VlZGVkX2RhdGFiYXNl
X3F1b3RhKHNkLCBmcmFtZSwgZGF0YWJhc2VOYW1lLCBjdXJyZW50X3NpemUsIGV4cGVjdGVkX3Np
emUpOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmggYi9X
ZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCmluZGV4IDIwZGY2MDEzYzc1NWE1MDM0Y2ExMDk3MTBj
MTU0NzBmMWQ1ZWU4MGUuLjRkMWI4MTkwNmJjYzQyOTY4N2Y4ZGRkZjY3ZjYwMGI2ZWY3NjdlNGUg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgKKysrIGIvV2ViS2l0L2VmbC9l
d2svZXdrX3ZpZXcuaApAQCAtMzA1LDYgKzMwNSw4IEBAIEVBUEkgRWluYV9Cb29sICAgIGV3a192
aWV3X3NlbGVjdF9zZW50ZW5jZShFdmFzX09iamVjdCAqbyk7CiBFQVBJIEVpbmFfQm9vbCAgICBl
d2tfdmlld19zZWxlY3RfbGluZShFdmFzX09iamVjdCAqbyk7CiBFQVBJIEVpbmFfQm9vbCAgICBl
d2tfdmlld19zZWxlY3Rfd29yZChFdmFzX09iamVjdCAqbyk7CiAKK0VBUEkgRWluYV9Cb29sICAg
IGV3a192aWV3X2NvbnRleHRfbWVudV9mb3J3YXJkX2V2ZW50KEV2YXNfT2JqZWN0ICpvLCBjb25z
dCBFdmFzX0V2ZW50X01vdXNlX0Rvd24gKmV2KTsKKwogRUFQSSB2b2lkICAgICAgICAgZXdrX3Zp
ZXdfcG9wdXBfc2VsZWN0ZWRfc2V0KEV2YXNfT2JqZWN0ICpvLCBpbnQgaW5kZXgpOwogRUFQSSBF
aW5hX0Jvb2wgICAgZXdrX3ZpZXdfcG9wdXBfZGVzdHJveShFdmFzX09iamVjdCAqbyk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57496</attachid>
            <date>2010-05-31 14:53:35 -0700</date>
            <delta_ts>2010-05-31 15:58:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39821-20100531185411.patch</filename>
            <type>text/plain</type>
            <size>36467</size>
            <attacher name="Lucas De Marchi">lucas.de.marchi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NWE3OWRjMTY3Njc3NTM1YjI3N2M0NmU1NDZlYzkwNDViNzZhOTE1OC4uZDM0YmFhOTJhMTVlODFk
ZTU0ZWE0YzM3MWJlNGI2MmQ5NGU0ZDllMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAxMC0wNS0zMSAgTHVj
YXMgRGUgTWFyY2hpICA8bHVjYXMuZGVtYXJjaGlAcHJvZnVzaW9uLm1vYmk+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCisKKyAgICAgICAgW0VGTF0g
QWRkIENvbnRleHQgTWVudSBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzk4MjEKKworICAgICAgICAqIHBsYXRmb3JtL0NvbnRl
eHRNZW51Lmg6IGFkZCBwb3J0LXNwZWNpZmljIGF0dHJpYnV0ZXMuCisgICAgICAgICogcGxhdGZv
cm0vQ29udGV4dE1lbnVJdGVtLmg6IGNyZWF0ZSBQbGF0Zm9ybU1lbnVJdGVtRGVzY3JpcHRpb24g
YXMgaW4KKyAgICAgICAgb3RoZXIgcG9ydHMKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVu
dUl0ZW1EZXNjcmlwdGlvbjo6UGxhdGZvcm1NZW51SXRlbURlc2NyaXB0aW9uKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVFZmwuY3BwOmltcGxlbWVudCBuZWVkZWQgbWV0aG9k
cyBmb3IgdGhpcworICAgICAgICBwb3J0LgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnU6
OkNvbnRleHRNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Ojp+Q29udGV4dE1l
bnUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnU6OmFwcGVuZEl0ZW0pOgorICAgICAg
ICAoV2ViQ29yZTo6Q29udGV4dE1lbnU6OnNldFBsYXRmb3JtRGVzY3JpcHRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6Q29udGV4dE1lbnU6OnJlbGVhc2VQbGF0Zm9ybURlc2NyaXB0aW9uKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVJdGVtRWZsLmNwcDogIGltcGxlbWVudCBu
ZWVkZWQgbWV0aG9kcyBmb3IKKyAgICAgICAgdGhpcyBwb3J0LgorICAgICAgICAoV2ViQ29yZTo6
Q29udGV4dE1lbnVJdGVtOjpDb250ZXh0TWVudUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6Q29u
dGV4dE1lbnVJdGVtOjp+Q29udGV4dE1lbnVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
eHRNZW51SXRlbTo6cmVsZWFzZVBsYXRmb3JtRGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGV4dE1lbnVJdGVtOjp0eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51
SXRlbTo6c2V0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW06OmFjdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW06OnNldEFjdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW06OnRpdGxlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRleHRNZW51SXRlbTo6c2V0VGl0bGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1l
bnVJdGVtOjpwbGF0Zm9ybVN1Yk1lbnUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJ
dGVtOjpzZXRTdWJNZW51KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbTo6Y2hl
Y2tlZCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW06OnNldENoZWNrZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtOjplbmFibGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRleHRNZW51SXRlbTo6c2V0RW5hYmxlZCk6CisKIDIwMTAtMDUtMzEgIFBhdmVs
IFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgUGF2ZWwgRmVsZG1hbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1l
bnUuaCBiL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnUuaAppbmRleCA3Nzg0M2RjMzRjNzAx
MjU4MjczZDcxMWY1M2MyY2JlMTE4Mjc0MmI5Li5jYTIxZjI5ZGVjNTMxNDEyYWNlNDk3YTE0NjIx
NDAyMGQ5OTg5ZmJjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmgK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudS5oCkBAIC00MSw2ICs0MSw5IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBDb250ZXh0TWVudUNvbnRyb2xsZXI7Cisj
aWYgUExBVEZPUk0oRUZMKQorICAgIGNsYXNzIENvbnRleHRNZW51Q2xpZW50RWZsOworI2VuZGlm
CiAKICAgICBjbGFzcyBDb250ZXh0TWVudSA6IHB1YmxpYyBOb25jb3B5YWJsZQogICAgIHsKQEAg
LTgwLDYgKzgzLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBRTGlzdDxDb250ZXh0
TWVudUl0ZW0+IG1faXRlbXM7CiAjZWxpZiBQTEFURk9STShDSFJPTUlVTSkKICAgICAgICAgVmVj
dG9yPENvbnRleHRNZW51SXRlbT4gbV9pdGVtczsKKyNlbGlmIFBMQVRGT1JNKEVGTCkKKyAgICAg
ICAgQ29udGV4dE1lbnVDbGllbnRFZmwqIG1fY29udGV4dE1lbnVDbGllbnQ7CisgICAgICAgIFBs
YXRmb3JtTWVudURlc2NyaXB0aW9uIG1fcGxhdGZvcm1EZXNjcmlwdGlvbjsKICNlbHNlCiAgICAg
ICAgIFBsYXRmb3JtTWVudURlc2NyaXB0aW9uIG1fcGxhdGZvcm1EZXNjcmlwdGlvbjsKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaCBiL1dlYkNv
cmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgKaW5kZXggODhmZjBhZDYwZDU5MjVkNTMzZGRj
ODU4NzA4NDFlMjllYThjNTA2Ni4uMGZmZTMzODMyOTBkMWRhN2FjMmE4OTNmMzIyOWRjODMyNjJk
ODU3MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaAorKysg
Yi9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oCkBAIC0yMjIsNiArMjIyLDIyIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBjaGVja2VkOwogICAgICAgICBib29s
IGVuYWJsZWQ7CiAgICAgfTsKKyNlbGlmIFBMQVRGT1JNKEVGTCkKKyAgICBzdHJ1Y3QgUGxhdGZv
cm1NZW51SXRlbURlc2NyaXB0aW9uIHsKKyAgICAgICAgUGxhdGZvcm1NZW51SXRlbURlc2NyaXB0
aW9uKCkKKyAgICAgICAgICAgIDogdHlwZShBY3Rpb25UeXBlKQorICAgICAgICAgICAgLCBhY3Rp
b24oQ29udGV4dE1lbnVJdGVtVGFnTm9BY3Rpb24pCisgICAgICAgICAgICAsIHRpdGxlKCIiKQor
ICAgICAgICAgICAgLCBzdWJNZW51KDApCisgICAgICAgICAgICAsIGNoZWNrZWQoZmFsc2UpCisg
ICAgICAgICAgICAsIGVuYWJsZWQodHJ1ZSkgeyB9CisgICAgICAgIENvbnRleHRNZW51SXRlbVR5
cGUgdHlwZTsKKyAgICAgICAgQ29udGV4dE1lbnVBY3Rpb24gYWN0aW9uOworICAgICAgICBTdHJp
bmcgdGl0bGU7CisgICAgICAgIENvbnRleHRNZW51KiBzdWJNZW51OworICAgICAgICBib29sIGNo
ZWNrZWQ7CisgICAgICAgIGJvb2wgZW5hYmxlZDsKKyAgICB9OwogI2Vsc2UKICAgICB0eXBlZGVm
IHZvaWQqIFBsYXRmb3JtTWVudUl0ZW1EZXNjcmlwdGlvbjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVFZmwuY3BwIGIvV2ViQ29yZS9wbGF0Zm9y
bS9lZmwvQ29udGV4dE1lbnVFZmwuY3BwCmluZGV4IDI0MGYxMDY0NjVhNzQ1YzJjN2FjZjYyMzU0
NjBmY2E0ZGZkOTJjMTMuLjhkODU2MDgzYmFkNDQ5YmUyMjA0MGI5OTE4YWVjYzFhOTdiZjFjZGEg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0NvbnRleHRNZW51RWZsLmNwcAorKysg
Yi9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Db250ZXh0TWVudUVmbC5jcHAKQEAgLTIyLDMwICsyMiw0
NSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51LmgiCiAKKyNp
bmNsdWRlICJDb250ZXh0TWVudUNsaWVudC5oIgorI2luY2x1ZGUgIkNvbnRleHRNZW51Q2xpZW50
RWZsLmgiCisjaW5jbHVkZSAiQ29udGV4dE1lbnVDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiTm90
SW1wbGVtZW50ZWQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBDb250ZXh0TWVudTo6Q29u
dGV4dE1lbnUoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0KQogICAgIDogbV9oaXRUZXN0UmVz
dWx0KHJlc3VsdCkKLSAgICAsIG1fcGxhdGZvcm1EZXNjcmlwdGlvbigwKQogewotICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgbV9jb250ZXh0TWVudUNsaWVudCA9IHN0YXRpY19jYXN0PENvbnRl
eHRNZW51Q2xpZW50RWZsKj4oY29udHJvbGxlcigpLT5jbGllbnQoKSk7CisgICAgbV9wbGF0Zm9y
bURlc2NyaXB0aW9uID0gbV9jb250ZXh0TWVudUNsaWVudC0+Y3JlYXRlUGxhdGZvcm1EZXNjcmlw
dGlvbih0aGlzKTsKK30KKworQ29udGV4dE1lbnU6OkNvbnRleHRNZW51KGNvbnN0IEhpdFRlc3RS
ZXN1bHQmIHJlc3VsdCwgY29uc3QgUGxhdGZvcm1NZW51RGVzY3JpcHRpb24gbWVudSkKKyAgICA6
IG1faGl0VGVzdFJlc3VsdChyZXN1bHQpCisgICAgLCBtX3BsYXRmb3JtRGVzY3JpcHRpb24obWVu
dSkKK3sKKyAgICBtX2NvbnRleHRNZW51Q2xpZW50ID0gc3RhdGljX2Nhc3Q8Q29udGV4dE1lbnVD
bGllbnRFZmwqPihjb250cm9sbGVyKCktPmNsaWVudCgpKTsKIH0KIAogQ29udGV4dE1lbnU6On5D
b250ZXh0TWVudSgpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBpZiAobV9wbGF0Zm9y
bURlc2NyaXB0aW9uKQorICAgICAgICBtX2NvbnRleHRNZW51Q2xpZW50LT5mcmVlUGxhdGZvcm1E
ZXNjcmlwdGlvbihtX3BsYXRmb3JtRGVzY3JpcHRpb24pOwogfQogCi12b2lkIENvbnRleHRNZW51
OjphcHBlbmRJdGVtKENvbnRleHRNZW51SXRlbSYpCit2b2lkIENvbnRleHRNZW51OjphcHBlbmRJ
dGVtKENvbnRleHRNZW51SXRlbSYgaXRlbSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IGNoZWNrT3JFbmFibGVJZk5lZWRlZChpdGVtKTsKKyAgICBtX2NvbnRleHRNZW51Q2xpZW50LT5h
cHBlbmRJdGVtKG1fcGxhdGZvcm1EZXNjcmlwdGlvbiwgaXRlbSk7CiB9CiAKIHZvaWQgQ29udGV4
dE1lbnU6OnNldFBsYXRmb3JtRGVzY3JpcHRpb24oUGxhdGZvcm1NZW51RGVzY3JpcHRpb24gbWVu
dSkKIHsKKyAgICBBU1NFUlQoIW1fcGxhdGZvcm1EZXNjcmlwdGlvbik7CisKICAgICBtX3BsYXRm
b3JtRGVzY3JpcHRpb24gPSBtZW51OworICAgIG1fY29udGV4dE1lbnVDbGllbnQtPnNob3cobV9w
bGF0Zm9ybURlc2NyaXB0aW9uKTsKIH0KIAogUGxhdGZvcm1NZW51RGVzY3JpcHRpb24gQ29udGV4
dE1lbnU6OnBsYXRmb3JtRGVzY3JpcHRpb24oKSBjb25zdApAQCAtNTUsOCArNzAsMTIgQEAgUGxh
dGZvcm1NZW51RGVzY3JpcHRpb24gQ29udGV4dE1lbnU6OnBsYXRmb3JtRGVzY3JpcHRpb24oKSBj
b25zdAogCiBQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiBDb250ZXh0TWVudTo6cmVsZWFzZVBsYXRm
b3JtRGVzY3JpcHRpb24oKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7
CisgICAgLy8gUmVmIGNvdW50IHJlbWFpbnMgdGhlIHNhbWUsIGp1c3QgcGFzcyBpdCBhbmQgcmVt
b3ZlIG91ciByZWYsIHNvIGl0CisgICAgLy8gd2lsbCBub3QgYmUgZGVjcmVtZW50ZWQgd2hlbiB0
aGlzIG9iamVjdCBnb2VzIGF3YXkuCisgICAgUGxhdGZvcm1NZW51RGVzY3JpcHRpb24gZGVzY3Jp
cHRpb24gPSBtX3BsYXRmb3JtRGVzY3JpcHRpb247CisgICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9u
ID0gMDsKKworICAgIHJldHVybiBkZXNjcmlwdGlvbjsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVJdGVtRWZsLmNwcCBiL1dlYkNvcmUvcGxhdGZv
cm0vZWZsL0NvbnRleHRNZW51SXRlbUVmbC5jcHAKaW5kZXggZDY2OTEzMDVhYWI2YWQ3ZTJlOGJj
NGYxMzEwYWVlNjgwOWUyNzFlYS4uZWZhNzQzZjU0NWU4MDA1MmIxMDMxZGUwNTcwNmViZWYxNmJk
ZDkxYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ29udGV4dE1lbnVJdGVtRWZs
LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2VmbC9Db250ZXh0TWVudUl0ZW1FZmwuY3BwCkBA
IC0zNyw4MiArMzcsMTA3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQ29udGV4dE1lbnVJdGVt
OjpDb250ZXh0TWVudUl0ZW0oUGxhdGZvcm1NZW51SXRlbURlc2NyaXB0aW9uKQogeworICAgIC8v
IEl0J3MgaW5zaWRlIFdlYktpdCB0aGF0IHRoaXMgaW5pdGlhbGl6YXRpb24gaXMgZG9uZSwgYXMg
V2ViQ29yZSBkb2Vzbid0CisgICAgLy8ga25vdyBob3cgUGxhdGZvcm1NZW51SXRlbURlc2NyaXB0
aW9uIGlzIGltcGxlbWVudGVkLgogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLUNvbnRleHRN
ZW51SXRlbTo6Q29udGV4dE1lbnVJdGVtKENvbnRleHRNZW51KikKK0NvbnRleHRNZW51SXRlbTo6
Q29udGV4dE1lbnVJdGVtKENvbnRleHRNZW51KiBzdWJtZW51KQogewotICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLnR5cGUgPSBTdWJtZW51VHlwZTsKKyAg
ICBzZXRTdWJNZW51KHN1Ym1lbnUpOwogfQogCi1Db250ZXh0TWVudUl0ZW06OkNvbnRleHRNZW51
SXRlbShDb250ZXh0TWVudUl0ZW1UeXBlLCBDb250ZXh0TWVudUFjdGlvbiwgY29uc3QgU3RyaW5n
JiwgQ29udGV4dE1lbnUqKQorQ29udGV4dE1lbnVJdGVtOjpDb250ZXh0TWVudUl0ZW0oQ29udGV4
dE1lbnVJdGVtVHlwZSB0eXBlLCBDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvbnN0IFN0cmlu
ZyYgdGl0bGUsIENvbnRleHRNZW51KiBzdWJNZW51KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLnR5cGUgPSB0eXBlOworICAgIG1fcGxhdGZvcm1E
ZXNjcmlwdGlvbi5hY3Rpb24gPSBhY3Rpb247CisgICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLnRp
dGxlID0gU3RyaW5nKHRpdGxlKTsKKworICAgIHNldFN1Yk1lbnUoc3ViTWVudSk7CiB9CiAKIENv
bnRleHRNZW51SXRlbTo6fkNvbnRleHRNZW51SXRlbSgpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICBpZiAobV9wbGF0Zm9ybURlc2NyaXB0aW9uLnN1Yk1lbnUpCisgICAgICAgIGRlbGV0
ZSBtX3BsYXRmb3JtRGVzY3JpcHRpb24uc3ViTWVudTsKIH0KIAogUGxhdGZvcm1NZW51SXRlbURl
c2NyaXB0aW9uIENvbnRleHRNZW51SXRlbTo6cmVsZWFzZVBsYXRmb3JtRGVzY3JpcHRpb24oKQog
ewotICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIG1fcGxhdGZvcm1EZXNjcmlwdGlv
bjsKIH0KIAogQ29udGV4dE1lbnVJdGVtVHlwZSBDb250ZXh0TWVudUl0ZW06OnR5cGUoKSBjb25z
dAogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIEFjdGlvblR5cGU7CisgICAg
cmV0dXJuIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi50eXBlOwogfQogCi12b2lkIENvbnRleHRNZW51
SXRlbTo6c2V0VHlwZShDb250ZXh0TWVudUl0ZW1UeXBlKQordm9pZCBDb250ZXh0TWVudUl0ZW06
OnNldFR5cGUoQ29udGV4dE1lbnVJdGVtVHlwZSB0eXBlKQogewotICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLnR5cGUgPSB0eXBlOwogfQogCiBDb250ZXh0
TWVudUFjdGlvbiBDb250ZXh0TWVudUl0ZW06OmFjdGlvbigpIGNvbnN0CiB7Ci0gICAgbm90SW1w
bGVtZW50ZWQoKTsKLSAgICByZXR1cm4gQ29udGV4dE1lbnVJdGVtVGFnTm9BY3Rpb247CisgICAg
cmV0dXJuIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi5hY3Rpb247CiB9CiAKLXZvaWQgQ29udGV4dE1l
bnVJdGVtOjpzZXRBY3Rpb24oQ29udGV4dE1lbnVBY3Rpb24pCit2b2lkIENvbnRleHRNZW51SXRl
bTo6c2V0QWN0aW9uKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbikKIHsKLSAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi5hY3Rpb24gPSBhY3Rpb247CiB9CiAK
IFN0cmluZyBDb250ZXh0TWVudUl0ZW06OnRpdGxlKCkgY29uc3QKIHsKLSAgICBub3RJbXBsZW1l
bnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICByZXR1cm4gbV9wbGF0Zm9ybURlc2Ny
aXB0aW9uLnRpdGxlOwogfQogCi12b2lkIENvbnRleHRNZW51SXRlbTo6c2V0VGl0bGUoY29uc3Qg
U3RyaW5nJikKK3ZvaWQgQ29udGV4dE1lbnVJdGVtOjpzZXRUaXRsZShjb25zdCBTdHJpbmcmIHRp
dGxlKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9u
LnRpdGxlID0gU3RyaW5nKHRpdGxlKTsKIH0KIAogUGxhdGZvcm1NZW51RGVzY3JpcHRpb24gQ29u
dGV4dE1lbnVJdGVtOjpwbGF0Zm9ybVN1Yk1lbnUoKSBjb25zdAogewotICAgIG5vdEltcGxlbWVu
dGVkKCk7Ci0gICAgcmV0dXJuIDA7CisgICAgaWYgKCFtX3BsYXRmb3JtRGVzY3JpcHRpb24uc3Vi
TWVudSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gbV9wbGF0Zm9ybURlc2NyaXB0
aW9uLnN1Yk1lbnUtPnBsYXRmb3JtRGVzY3JpcHRpb24oKTsKKwogfQogCi12b2lkIENvbnRleHRN
ZW51SXRlbTo6c2V0U3ViTWVudShDb250ZXh0TWVudSopCit2b2lkIENvbnRleHRNZW51SXRlbTo6
c2V0U3ViTWVudShDb250ZXh0TWVudSogc3ViTWVudSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIGRlbGV0ZSBtX3BsYXRmb3JtRGVzY3JpcHRpb24uc3ViTWVudTsKKyAgICBtX3BsYXRm
b3JtRGVzY3JpcHRpb24uc3ViTWVudSA9IDA7CisKKyAgICBpZiAoIXN1Yk1lbnUpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi50eXBlID0gU3VibWVudVR5cGU7
CisgICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLnN1Yk1lbnUgPSBuZXcgQ29udGV4dE1lbnUoc3Vi
TWVudS0+aGl0VGVzdFJlc3VsdCgpLAorICAgICAgICAgICAgc3ViTWVudS0+cmVsZWFzZVBsYXRm
b3JtRGVzY3JpcHRpb24oKSk7CiB9CiAKLXZvaWQgQ29udGV4dE1lbnVJdGVtOjpzZXRDaGVja2Vk
KGJvb2wpCitib29sIENvbnRleHRNZW51SXRlbTo6Y2hlY2tlZCgpIGNvbnN0CiB7Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbV9wbGF0Zm9ybURlc2NyaXB0aW9uLmNoZWNrZWQ7
CiB9CiAKLXZvaWQgQ29udGV4dE1lbnVJdGVtOjpzZXRFbmFibGVkKGJvb2wpCit2b2lkIENvbnRl
eHRNZW51SXRlbTo6c2V0Q2hlY2tlZChib29sIHNob3VsZENoZWNrKQogewotICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLmNoZWNrZWQgPSBzaG91bGRDaGVj
azsKK30KKworYm9vbCBDb250ZXh0TWVudUl0ZW06OmVuYWJsZWQoKSBjb25zdAoreworICAgIHJl
dHVybiBtX3BsYXRmb3JtRGVzY3JpcHRpb24uZW5hYmxlZDsKK30KKwordm9pZCBDb250ZXh0TWVu
dUl0ZW06OnNldEVuYWJsZWQoYm9vbCBzaG91bGRFbmFibGUpCit7CisgICAgbV9wbGF0Zm9ybURl
c2NyaXB0aW9uLmVuYWJsZWQgPSBzaG91bGRFbmFibGU7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1dl
YktpdC9DTWFrZUxpc3RzRWZsLnR4dCBiL1dlYktpdC9DTWFrZUxpc3RzRWZsLnR4dAppbmRleCAw
NDZiNjEzYjExNTI3MTliZGQ5YjgzNWQxOWM5MGIzOGM4MThmNTRiLi5jYmMwZDkyOTA4ODJkMWVk
ZmFlYzdmNjcxMzRjY2YzYTAxMzZjNTgwIDEwMDY0NAotLS0gYS9XZWJLaXQvQ01ha2VMaXN0c0Vm
bC50eHQKKysrIGIvV2ViS2l0L0NNYWtlTGlzdHNFZmwudHh0CkBAIC0yNSwxMiArMjUsMTMgQEAg
TElTVChBUFBFTkQgV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMKIAogTElTVChBUFBFTkQgV2Vi
S2l0X1NPVVJDRVMKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcAot
ICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEVmbAorICAgIGVmbC9XZWJD
b3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEVmbC5jcHAKICAgICBlZmwvV2ViQ29yZVN1cHBv
cnQvRHJhZ0NsaWVudEVmbC5jcHAKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
RWZsLmNwcAogICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAK
ICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50RWZsLmNwcAogCisgICAgZWZs
L2V3ay9ld2tfY29udGV4dG1lbnUuY3BwCiAgICAgZWZsL2V3ay9ld2tfZnJhbWUuY3BwCiAgICAg
ZWZsL2V3ay9ld2tfaGlzdG9yeS5jcHAKICAgICBlZmwvZXdrL2V3a19tYWluLmNwcApkaWZmIC0t
Z2l0IGEvV2ViS2l0L0NoYW5nZUxvZyBiL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggN2I0MThmZjAw
MWM3ZjhhYzRkZmEyZGExYjY0NTU4MGJmZTk1ZGRjYy4uY2E3ZGYyNzUzMmY2YjkzMjQ5M2I0Y2Y3
NWQ5MTFlNzdlYjcxNGM1OSAxMDA2NDQKLS0tIGEvV2ViS2l0L0NoYW5nZUxvZworKysgYi9XZWJL
aXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMTAtMDUtMzEgIEx1Y2FzIERlIE1hcmNo
aSAgPGx1Y2FzLmRlbWFyY2hpQHByb2Z1c2lvbi5tb2JpPgorCisgICAgICAgIFJldmlld2VkIGJ5
IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgorCisgICAgICAgIFtFRkxdIEFkZCBDb250ZXh0
IE1lbnUgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM5ODIxCisKKyAgICAgICAgKiBDTWFrZUxpc3RzRWZsLnR4dDogYWRkIGNv
bnRleHQgbWVudSBmaWxlcy4KKyAgICAgICAgKiBlZmwvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1l
bnVDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDbGllbnRFZmw6
OmdldEN1c3RvbU1lbnVGcm9tRGVmYXVsdEl0ZW1zKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
eHRNZW51Q2xpZW50RWZsOjpuZXdQbGF0Zm9ybURlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRleHRNZW51Q2xpZW50RWZsOjpmcmVlUGxhdGZvcm1EZXNjcmlwdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNsaWVudEVmbDo6YXBwZW5kSXRlbSk6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZXh0TWVudUNsaWVudEVmbDo6c2hvdyk6CisgICAgICAgICogZWZsL1dl
YkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50RWZsLmg6CisgICAgICAgICogZWZsL2V3ay9F
V2ViS2l0Lmg6CisgICAgICAgICogZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuY3BwOiBBZGRlZC4g
SW1wbGVtZW50IHRoZSBBUEkgdXNlZCBieQorICAgICAgICBicm93c2VyIGZvciBtYW5pcHVsYXRp
bmcgY29udGV4dCBtZW51cy4KKyAgICAgICAgKGV3a19jb250ZXh0X21lbnVfcmVmKToKKyAgICAg
ICAgKGV3a19jb250ZXh0X21lbnVfdW5yZWYpOgorICAgICAgICAoZXdrX2NvbnRleHRfbWVudV9k
ZXN0cm95KToKKyAgICAgICAgKGV3a19jb250ZXh0X21lbnVfaXRlbV9saXN0X2dldCk6CisgICAg
ICAgIChld2tfY29udGV4dF9tZW51X2l0ZW1fbmV3KToKKyAgICAgICAgKGV3a19jb250ZXh0X21l
bnVfaXRlbV9zZWxlY3QpOgorICAgICAgICAoZXdrX2NvbnRleHRfbWVudV9pdGVtX2ZyZWUpOgor
ICAgICAgICAoZXdrX2NvbnRleHRfbWVudV9pdGVtX3R5cGVfZ2V0KToKKyAgICAgICAgKGV3a19j
b250ZXh0X21lbnVfaXRlbV90eXBlX3NldCk6CisgICAgICAgIChld2tfY29udGV4dF9tZW51X2l0
ZW1fYWN0aW9uX2dldCk6CisgICAgICAgIChld2tfY29udGV4dF9tZW51X2l0ZW1fYWN0aW9uX3Nl
dCk6CisgICAgICAgIChld2tfY29udGV4dF9tZW51X2l0ZW1fdGl0bGVfZ2V0KToKKyAgICAgICAg
KGV3a19jb250ZXh0X21lbnVfaXRlbV90aXRsZV9zZXQpOgorICAgICAgICAoZXdrX2NvbnRleHRf
bWVudV9pdGVtX2NoZWNrZWRfZ2V0KToKKyAgICAgICAgKGV3a19jb250ZXh0X21lbnVfaXRlbV9j
aGVja2VkX3NldCk6CisgICAgICAgIChld2tfY29udGV4dF9tZW51X2l0ZW1fZW5hYmxlZF9nZXQp
OgorICAgICAgICAoZXdrX2NvbnRleHRfbWVudV9pdGVtX2VuYWJsZWRfc2V0KToKKyAgICAgICAg
KGV3a19jb250ZXh0X21lbnVfbmV3KToKKyAgICAgICAgKGV3a19jb250ZXh0X21lbnVfZnJlZSk6
CisgICAgICAgIChld2tfY29udGV4dF9tZW51X2l0ZW1fYXBwZW5kKToKKyAgICAgICAgKGV3a19j
b250ZXh0X21lbnVfY3VzdG9tX2dldCk6CisgICAgICAgIChld2tfY29udGV4dF9tZW51X3Nob3cp
OgorICAgICAgICAqIGVmbC9ld2svZXdrX2NvbnRleHRtZW51Lmg6IEFkZGVkLgorICAgICAgICAq
IGVmbC9ld2svZXdrX3ByaXZhdGUuaDoKKyAgICAgICAgKiBlZmwvZXdrL2V3a192aWV3LmNwcDoK
KyAgICAgICAgKGV3a192aWV3X2NvbnRleHRfbWVudV9mb3J3YXJkX2V2ZW50KTogaW5mb3JtIGJy
b3dzZXIgYSBuZXcgY29udGV4dAorICAgICAgICBtZW51IHdhcyBjcmVhdGVkLgorICAgICAgICAo
ZXdrX3ZpZXdfZXhjZWVkZWRfZGF0YWJhc2VfcXVvdGEpOiBzbWFsbCBmaXggdG8gcHJldmlvdXMK
KyAgICAgICAgY2hhbmdlZCBmdW5jdGlvbi4KKyAgICAgICAgKiBlZmwvZXdrL2V3a192aWV3Lmg6
CisKIDIwMTAtMDUtMjggIEx1Y2FzIERlIE1hcmNoaSAgPGx1Y2FzLmRlbWFyY2hpQHByb2Z1c2lv
bi5tb2JpPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2Vu
LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVu
dEVmbC5jcHAgYi9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50RWZs
LmNwcAppbmRleCBhYWE2NGQ3ZDNiYjQ3YjkxYjIwY2Q2MmExM2U1ZWVhNjU5ODVhNjEwLi4xOWMz
NzA1NjcxODM2ODM4ZWFmZDc2MjFkMzExY2YyNzRmNTBhMTAwIDEwMDY0NAotLS0gYS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50RWZsLmNwcAorKysgYi9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50RWZsLmNwcApAQCAtMjksOSArMjks
MTIgQEAKICNpbmNsdWRlICJDb250ZXh0TWVudUNsaWVudEVmbC5oIgogCiAjaW5jbHVkZSAiQ29u
dGV4dE1lbnUuaCIKKyNpbmNsdWRlICJFV2ViS2l0LmgiCisjaW5jbHVkZSAiZXdrX3ByaXZhdGUu
aCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1
ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1NZW51RGVzY3JpcHRpb24u
aCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTQ3LDEwICs1MCwxMSBAQCB2b2lk
IENvbnRleHRNZW51Q2xpZW50RWZsOjpjb250ZXh0TWVudURlc3Ryb3llZCgpCiAgICAgZGVsZXRl
IHRoaXM7CiB9CiAKLVBsYXRmb3JtTWVudURlc2NyaXB0aW9uIENvbnRleHRNZW51Q2xpZW50RWZs
OjpnZXRDdXN0b21NZW51RnJvbURlZmF1bHRJdGVtcyhDb250ZXh0TWVudSopCitQbGF0Zm9ybU1l
bnVEZXNjcmlwdGlvbiBDb250ZXh0TWVudUNsaWVudEVmbDo6Z2V0Q3VzdG9tTWVudUZyb21EZWZh
dWx0SXRlbXMoQ29udGV4dE1lbnUqIG1lbnUpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAg
ICByZXR1cm4gMDsKKyAgICBQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiBuZXdtZW51ID0gZXdrX2Nv
bnRleHRfbWVudV9jdXN0b21fZ2V0KHN0YXRpY19jYXN0PEV3a19Db250ZXh0X01lbnUqPihtZW51
LT5yZWxlYXNlUGxhdGZvcm1EZXNjcmlwdGlvbigpKSk7CisKKyAgICByZXR1cm4gbmV3bWVudTsK
IH0KIAogdm9pZCBDb250ZXh0TWVudUNsaWVudEVmbDo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQo
Q29udGV4dE1lbnVJdGVtKiwgY29uc3QgQ29udGV4dE1lbnUqKQpAQCAtODksNCArOTMsMjQgQEAg
dm9pZCBDb250ZXh0TWVudUNsaWVudEVmbDo6c3RvcFNwZWFraW5nKCkKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogfQogCitQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiBDb250ZXh0TWVudUNsaWVudEVm
bDo6Y3JlYXRlUGxhdGZvcm1EZXNjcmlwdGlvbihDb250ZXh0TWVudSogbWVudSkKK3sKKyAgICBy
ZXR1cm4gKFBsYXRmb3JtTWVudURlc2NyaXB0aW9uKSBld2tfY29udGV4dF9tZW51X25ldyhtX3Zp
ZXcsIG1lbnUtPmNvbnRyb2xsZXIoKSk7Cit9CisKK3ZvaWQgQ29udGV4dE1lbnVDbGllbnRFZmw6
OmZyZWVQbGF0Zm9ybURlc2NyaXB0aW9uKFBsYXRmb3JtTWVudURlc2NyaXB0aW9uIG1lbnUpCit7
CisgICAgZXdrX2NvbnRleHRfbWVudV9mcmVlKHN0YXRpY19jYXN0PEV3a19Db250ZXh0X01lbnUq
PihtZW51KSk7Cit9CisKK3ZvaWQgQ29udGV4dE1lbnVDbGllbnRFZmw6OmFwcGVuZEl0ZW0oUGxh
dGZvcm1NZW51RGVzY3JpcHRpb24gbWVudSwgQ29udGV4dE1lbnVJdGVtJiBpdGVtKQoreworICAg
IGV3a19jb250ZXh0X21lbnVfaXRlbV9hcHBlbmQoc3RhdGljX2Nhc3Q8RXdrX0NvbnRleHRfTWVu
dSo+KG1lbnUpLCBpdGVtKTsKK30KKwordm9pZCBDb250ZXh0TWVudUNsaWVudEVmbDo6c2hvdyhQ
bGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiBtZW51KQoreworICAgIGV3a19jb250ZXh0X21lbnVfc2hv
dyhzdGF0aWNfY2FzdDxFd2tfQ29udGV4dF9NZW51Kj4obWVudSkpOworfQorCiB9CmRpZmYgLS1n
aXQgYS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50RWZsLmggYi9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50RWZsLmgKaW5kZXggMmMz
ODE4Yzg5YWQ0ODAyZmY1MDcwMzBjYTgyYjk4ZjEyZjRhYmZkNS4uOGEyODlhMWRjYjEzYjVjOTU2
Yjc4MTM2NjFiYmI3MzRjZGUyODI2NCAxMDA2NDQKLS0tIGEvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9Db250ZXh0TWVudUNsaWVudEVmbC5oCisrKyBiL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvQ29udGV4dE1lbnVDbGllbnRFZmwuaApAQCAtNTAsNiArNTAsMTAgQEAgY2xhc3MgQ29udGV4
dE1lbnVDbGllbnRFZmwgOiBwdWJsaWMgQ29udGV4dE1lbnVDbGllbnQgewogICAgIHZpcnR1YWwg
Ym9vbCBpc1NwZWFraW5nKCk7CiAgICAgdmlydHVhbCB2b2lkIHN0b3BTcGVha2luZygpOwogCisg
ICAgUGxhdGZvcm1NZW51RGVzY3JpcHRpb24gY3JlYXRlUGxhdGZvcm1EZXNjcmlwdGlvbihDb250
ZXh0TWVudSopOworICAgIHZvaWQgZnJlZVBsYXRmb3JtRGVzY3JpcHRpb24oUGxhdGZvcm1NZW51
RGVzY3JpcHRpb24pOworICAgIHZvaWQgYXBwZW5kSXRlbShQbGF0Zm9ybU1lbnVEZXNjcmlwdGlv
biwgQ29udGV4dE1lbnVJdGVtJik7CisgICAgdm9pZCBzaG93KFBsYXRmb3JtTWVudURlc2NyaXB0
aW9uIG1lbnUpOwogIHByaXZhdGU6CiAgICAgRXZhc19PYmplY3QqIG1fdmlldzsKIH07CmRpZmYg
LS1naXQgYS9XZWJLaXQvZWZsL2V3ay9FV2ViS2l0LmggYi9XZWJLaXQvZWZsL2V3ay9FV2ViS2l0
LmgKaW5kZXggZDg3ZDIwNDJlZmQ4NTNjMWE1MDhmNDZkOGUyYzc0MTJmOTdmNGJhZC4uYTYxY2M5
ZDQ1OWEwYTIyNzE0ODVkNWNjYjhkYTRlODcwOTJiNzRkYiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Vm
bC9ld2svRVdlYktpdC5oCisrKyBiL1dlYktpdC9lZmwvZXdrL0VXZWJLaXQuaApAQCAtMjIsNiAr
MjIsNyBAQAogI2lmbmRlZiBFV2ViS2l0X2gKICNkZWZpbmUgRVdlYktpdF9oCiAKKyNpbmNsdWRl
ICJld2tfY29udGV4dG1lbnUuaCIKICNpbmNsdWRlICJld2tfZWFwaS5oIgogI2luY2x1ZGUgImV3
a19mcmFtZS5oIgogI2luY2x1ZGUgImV3a19oaXN0b3J5LmgiCmRpZmYgLS1naXQgYS9XZWJLaXQv
ZWZsL2V3ay9ld2tfY29udGV4dG1lbnUuY3BwIGIvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRt
ZW51LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45ZGFmMjdjNjE1YjdjNzM3YzA1NjFiZjUyMDNkNTc0NjU3N2E1
ZmMyCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmNw
cApAQCAtMCwwICsxLDI2MyBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTAgUHJvRlVTSU9O
IGVtYmVkZGVkIHN5c3RlbXMKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTAgU2Ftc3VuZyBFbGVjdHJv
bmljcworCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJld2tfY29udGV4dG1lbnUu
aCIKKworI2luY2x1ZGUgIkNvbnRleHRNZW51LmgiCisjaW5jbHVkZSAiQ29udGV4dE1lbnVDb250
cm9sbGVyLmgiCisjaW5jbHVkZSAiQ29udGV4dE1lbnVJdGVtLmgiCisjaW5jbHVkZSAiRVdlYktp
dC5oIgorI2luY2x1ZGUgImV3a19wcml2YXRlLmgiCisKKyNpbmNsdWRlIDxFaW5hLmg+CisjaW5j
bHVkZSA8ZWluYV9zYWZldHlfY2hlY2tzLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5o
PgorCitzdHJ1Y3QgX0V3a19Db250ZXh0X01lbnUgeworICAgIHVuc2lnbmVkIGludCBfX3JlZjsK
KyAgICBXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXIqIGNvbnRyb2xsZXI7CisgICAgRXZh
c19PYmplY3QqIHZpZXc7CisKKyAgICBFaW5hX0xpc3QqIGl0ZW1zOworfTsKKworc3RydWN0IF9F
d2tfQ29udGV4dF9NZW51X0l0ZW0geworICAgIEV3a19Db250ZXh0X01lbnVfSXRlbV9UeXBlIHR5
cGU7CisgICAgRXdrX0NvbnRleHRfTWVudV9BY3Rpb24gYWN0aW9uOworCisgICAgY29uc3QgY2hh
ciogdGl0bGU7CisgICAgRXdrX0NvbnRleHRfTWVudSogc3VibWVudTsKKworICAgIEVpbmFfQm9v
bCBjaGVja2VkOjE7CisgICAgRWluYV9Cb29sIGVuYWJsZWQ6MTsKK307CisKK3ZvaWQgZXdrX2Nv
bnRleHRfbWVudV9yZWYoRXdrX0NvbnRleHRfTWVudSogbWVudSkKK3sKKyAgICBFSU5BX1NBRkVU
WV9PTl9OVUxMX1JFVFVSTihtZW51KTsKKyAgICBtZW51LT5fX3JlZisrOworfQorCit2b2lkIGV3
a19jb250ZXh0X21lbnVfdW5yZWYoRXdrX0NvbnRleHRfTWVudSogbWVudSkKK3sKKyAgICBFSU5B
X1NBRkVUWV9PTl9OVUxMX1JFVFVSTihtZW51KTsKKyAgICB2b2lkKiBpdGVtOworCisgICAgaWYg
KC0tbWVudS0+X19yZWYpCisgICAgICAgIHJldHVybjsKKworICAgIEVJTkFfTElTVF9GUkVFKG1l
bnUtPml0ZW1zLCBpdGVtKQorICAgICAgICBld2tfY29udGV4dF9tZW51X2l0ZW1fZnJlZShzdGF0
aWNfY2FzdDxFd2tfQ29udGV4dF9NZW51X0l0ZW0qPihpdGVtKSk7CisKKyAgICBmcmVlKG1lbnUp
OworfQorCitFaW5hX0Jvb2wgZXdrX2NvbnRleHRfbWVudV9kZXN0cm95KEV3a19Db250ZXh0X01l
bnUqIG1lbnUpCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKG1lbnUsIEVJ
TkFfRkFMU0UpOworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChtZW51LT5jb250
cm9sbGVyLCBFSU5BX0ZBTFNFKTsKKworICAgIG1lbnUtPmNvbnRyb2xsZXItPmNsZWFyQ29udGV4
dE1lbnUoKTsKKyAgICByZXR1cm4gRUlOQV9UUlVFOworfQorCitjb25zdCBFaW5hX0xpc3QqIGV3
a19jb250ZXh0X21lbnVfaXRlbV9saXN0X2dldChFd2tfQ29udGV4dF9NZW51KiBvKQoreworICAg
IEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChvLCAwKTsKKworICAgIHJldHVybiBvLT5p
dGVtczsKK30KKworRXdrX0NvbnRleHRfTWVudV9JdGVtKiBld2tfY29udGV4dF9tZW51X2l0ZW1f
bmV3KEV3a19Db250ZXh0X01lbnVfSXRlbV9UeXBlIHR5cGUsCisgICAgICAgIEV3a19Db250ZXh0
X01lbnVfQWN0aW9uIGFjdGlvbiwgRXdrX0NvbnRleHRfTWVudSogc3VibWVudSwKKyAgICAgICAg
Y29uc3QgY2hhciogdGl0bGUsIEVpbmFfQm9vbCBjaGVja2VkLCBFaW5hX0Jvb2wgZW5hYmxlZCkK
K3sKKyAgICBFd2tfQ29udGV4dF9NZW51X0l0ZW0qIGl0ZW0gPSAoRXdrX0NvbnRleHRfTWVudV9J
dGVtKikgbWFsbG9jKHNpemVvZigqaXRlbSkpOworICAgIGlmICghaXRlbSkKKyAgICAgICAgcmV0
dXJuIDA7CisKKyAgICBpdGVtLT50eXBlID0gdHlwZTsKKyAgICBpdGVtLT5hY3Rpb24gPSBhY3Rp
b247CisgICAgaXRlbS0+dGl0bGUgPSBlaW5hX3N0cmluZ3NoYXJlX2FkZCh0aXRsZSk7CisgICAg
aXRlbS0+c3VibWVudSA9IHN1Ym1lbnU7CisgICAgaXRlbS0+Y2hlY2tlZCA9IGNoZWNrZWQ7Cisg
ICAgaXRlbS0+ZW5hYmxlZCA9IGVuYWJsZWQ7CisKKyAgICByZXR1cm4gaXRlbTsKK30KKworRWlu
YV9Cb29sIGV3a19jb250ZXh0X21lbnVfaXRlbV9zZWxlY3QoRXdrX0NvbnRleHRfTWVudSogbWVu
dSwgRXdrX0NvbnRleHRfTWVudV9JdGVtKiBpdGVtKQoreworICAgIEVJTkFfU0FGRVRZX09OX05V
TExfUkVUVVJOX1ZBTChtZW51LCBFSU5BX0ZBTFNFKTsKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxM
X1JFVFVSTl9WQUwoaXRlbSwgRUlOQV9GQUxTRSk7CisgICAgV2ViQ29yZTo6Q29udGV4dE1lbnVB
Y3Rpb24gYWN0aW9uID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Q29udGV4dE1lbnVBY3Rpb24+KGl0
ZW0tPmFjdGlvbik7CisgICAgV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVHlwZSB0eXBlID0gc3Rh
dGljX2Nhc3Q8V2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVHlwZT4oaXRlbS0+dHlwZSk7CisKKyAg
ICAvLyBEb24ndCBjYXJlIGFib3V0IHRpdGxlIGFuZCBzdWJtZW51IGFzIHRoZXkncmUgbm90IHVz
ZWQgYWZ0ZXIgdGhpcyBwb2ludC4KKyAgICBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0gY29yZSh0
eXBlLCBhY3Rpb24sIFdlYkNvcmU6OlN0cmluZygpKTsKKyAgICBtZW51LT5jb250cm9sbGVyLT5j
b250ZXh0TWVudUl0ZW1TZWxlY3RlZCgmY29yZSk7CisgICAgcmV0dXJuIEVJTkFfVFJVRTsKK30K
Kwordm9pZCBld2tfY29udGV4dF9tZW51X2l0ZW1fZnJlZShFd2tfQ29udGV4dF9NZW51X0l0ZW0q
IGl0ZW0pCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4oaXRlbSk7CisKKyAgICBl
aW5hX3N0cmluZ3NoYXJlX2RlbChpdGVtLT50aXRsZSk7CisgICAgZnJlZShpdGVtKTsKK30KKwor
RXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGUgZXdrX2NvbnRleHRfbWVudV9pdGVtX3R5cGVfZ2V0
KEV3a19Db250ZXh0X01lbnVfSXRlbSogbykKK3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JF
VFVSTl9WQUwobywgRVdLX0FDVElPTl9UWVBFKTsKKyAgICByZXR1cm4gby0+dHlwZTsKK30KKwor
RWluYV9Cb29sIGV3a19jb250ZXh0X21lbnVfaXRlbV90eXBlX3NldChFd2tfQ29udGV4dF9NZW51
X0l0ZW0qIG8sIEV3a19Db250ZXh0X01lbnVfSXRlbV9UeXBlIHR5cGUpCit7CisgICAgRUlOQV9T
QUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKG8sIEVJTkFfRkFMU0UpOworICAgIG8tPnR5cGUgPSB0
eXBlOworICAgIHJldHVybiBFSU5BX1RSVUU7Cit9CisKK0V3a19Db250ZXh0X01lbnVfQWN0aW9u
IGV3a19jb250ZXh0X21lbnVfaXRlbV9hY3Rpb25fZ2V0KEV3a19Db250ZXh0X01lbnVfSXRlbSog
bykKK3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwobywgRVdLX0NPTlRFWFRf
TUVOVV9JVEVNX1RBR19OT19BQ1RJT04pOworICAgIHJldHVybiBvLT5hY3Rpb247Cit9CisKK0Vp
bmFfQm9vbCBld2tfY29udGV4dF9tZW51X2l0ZW1fYWN0aW9uX3NldChFd2tfQ29udGV4dF9NZW51
X0l0ZW0qIG8sIEV3a19Db250ZXh0X01lbnVfQWN0aW9uIGFjdGlvbikKK3sKKyAgICBFSU5BX1NB
RkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwobywgRUlOQV9GQUxTRSk7CisgICAgby0+YWN0aW9uID0g
YWN0aW9uOworICAgIHJldHVybiBFSU5BX1RSVUU7Cit9CisKK2NvbnN0IGNoYXIqIGV3a19jb250
ZXh0X21lbnVfaXRlbV90aXRsZV9nZXQoRXdrX0NvbnRleHRfTWVudV9JdGVtKiBvKQoreworICAg
IEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChvLCAwKTsKKyAgICByZXR1cm4gby0+dGl0
bGU7Cit9CisKK2NvbnN0IGNoYXIqIGV3a19jb250ZXh0X21lbnVfaXRlbV90aXRsZV9zZXQoRXdr
X0NvbnRleHRfTWVudV9JdGVtKiBvLCBjb25zdCBjaGFyKiB0aXRsZSkKK3sKKyAgICBFSU5BX1NB
RkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwobywgMCk7CisgICAgZWluYV9zdHJpbmdzaGFyZV9yZXBs
YWNlKCZvLT50aXRsZSwgdGl0bGUpOworICAgIHJldHVybiBvLT50aXRsZTsKK30KKworRWluYV9C
b29sIGV3a19jb250ZXh0X21lbnVfaXRlbV9jaGVja2VkX2dldChFd2tfQ29udGV4dF9NZW51X0l0
ZW0qIG8pCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKG8sIEVJTkFfRkFM
U0UpOworICAgIHJldHVybiBvLT5jaGVja2VkOworfQorCitFaW5hX0Jvb2wgZXdrX2NvbnRleHRf
bWVudV9pdGVtX2NoZWNrZWRfc2V0KEV3a19Db250ZXh0X01lbnVfSXRlbSogbywgRWluYV9Cb29s
IGNoZWNrZWQpCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKG8sIEVJTkFf
RkFMU0UpOworICAgIG8tPmNoZWNrZWQgPSBjaGVja2VkOworICAgIHJldHVybiBFSU5BX1RSVUU7
Cit9CisKK0VpbmFfQm9vbCBld2tfY29udGV4dF9tZW51X2l0ZW1fZW5hYmxlZF9nZXQoRXdrX0Nv
bnRleHRfTWVudV9JdGVtKiBvKQoreworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZB
TChvLCBFSU5BX0ZBTFNFKTsKKyAgICByZXR1cm4gby0+ZW5hYmxlZDsKK30KKworRWluYV9Cb29s
IGV3a19jb250ZXh0X21lbnVfaXRlbV9lbmFibGVkX3NldChFd2tfQ29udGV4dF9NZW51X0l0ZW0g
Km8sIEVpbmFfQm9vbCBlbmFibGVkKQoreworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJO
X1ZBTChvLCBFSU5BX0ZBTFNFKTsKKyAgICBvLT5lbmFibGVkID0gZW5hYmxlZDsKKyAgICByZXR1
cm4gRUlOQV9UUlVFOworfQorCisKKy8qIGludGVybmFsIG1ldGhvZHMgKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoqCisgKiBAaW50ZXJu
YWwKKyAqCisgKiBDcmVhdGVzIGNvbnRleHQgb24gdmlldy4KKyAqCisgKiBAcGFyYW0gdmlldyBW
aWV3LgorICogQHBhcmFtIENvbnRyb2xsZXIgQ29udGV4dCBNZW51IENvbnRyb2xsZXIuCisgKgor
ICogQHJldHVybiBuZXdseSBhbGxvY2F0ZWQgY29udGV4dCBtZW51IG9yIEBjIDAgb24gZXJyb3Jz
LgorICovCitFd2tfQ29udGV4dF9NZW51KiBld2tfY29udGV4dF9tZW51X25ldyhFdmFzX09iamVj
dCogdmlldywgV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyKiBjb250cm9sbGVyKQorewor
ICAgIEV3a19Db250ZXh0X01lbnUqIG1lbnU7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRV
Uk5fVkFMKHZpZXcsIDApOworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChjb250
cm9sbGVyLCAwKTsKKworICAgIG1lbnUgPSBzdGF0aWNfY2FzdDxFd2tfQ29udGV4dF9NZW51Kj4o
bWFsbG9jKHNpemVvZigqbWVudSkpKTsKKyAgICBpZiAoIW1lbnUpIHsKKyAgICAgICAgQ1JJVElD
QUwoIkNvdWxkIG5vdCBhbGxvY2F0ZSBjb250ZXh0IG1lbnUgbWVtb3J5LiIpOworICAgICAgICBy
ZXR1cm4gMDsKKyAgICB9CisKKyAgICBtZW51LT5fX3JlZiA9IDE7CisgICAgbWVudS0+dmlldyA9
IHZpZXc7CisgICAgbWVudS0+Y29udHJvbGxlciA9IGNvbnRyb2xsZXI7CisgICAgbWVudS0+aXRl
bXMgPSAwOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwobWVudS0+dmlldywg
ImNvbnRleHRtZW51LG5ldyIsIG1lbnUpOworCisgICAgcmV0dXJuIG1lbnU7Cit9CisKK0VpbmFf
Qm9vbCBld2tfY29udGV4dF9tZW51X2ZyZWUoRXdrX0NvbnRleHRfTWVudSogbykKK3sKKyAgICBF
SU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwobywgRUlOQV9GQUxTRSk7CisgICAgZXZhc19v
YmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChvLT52aWV3LCAiY29udGV4dG1lbnUsZnJlZSIsIG8p
OworICAgIGV3a19jb250ZXh0X21lbnVfdW5yZWYobyk7CisgICAgcmV0dXJuIEVJTkFfVFJVRTsK
K30KKwordm9pZCBld2tfY29udGV4dF9tZW51X2l0ZW1fYXBwZW5kKEV3a19Db250ZXh0X01lbnUq
IG8sIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbSYgY29yZSkKK3sKKyAgICBFd2tfQ29udGV4dF9N
ZW51X0l0ZW1fVHlwZSB0eXBlID0gc3RhdGljX2Nhc3Q8RXdrX0NvbnRleHRfTWVudV9JdGVtX1R5
cGU+KGNvcmUudHlwZSgpKTsKKyAgICBFd2tfQ29udGV4dF9NZW51X0FjdGlvbiBhY3Rpb24gPSBz
dGF0aWNfY2FzdDxFd2tfQ29udGV4dF9NZW51X0FjdGlvbj4oY29yZS5hY3Rpb24oKSk7CisgICAg
RXdrX0NvbnRleHRfTWVudSogc3VibWVudSA9IHN0YXRpY19jYXN0PEV3a19Db250ZXh0X01lbnUq
Pihjb3JlLnBsYXRmb3JtU3ViTWVudSgpKTsKKworICAgIEV3a19Db250ZXh0X01lbnVfSXRlbSog
bWVudV9pdGVtID0gZXdrX2NvbnRleHRfbWVudV9pdGVtX25ldworICAgICAgICAodHlwZSwgYWN0
aW9uLCBzdWJtZW51LCBjb3JlLnRpdGxlKCkudXRmOCgpLmRhdGEoKSwgY29yZS5jaGVja2VkKCks
CisgICAgICAgICBjb3JlLmVuYWJsZWQoKSk7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRV
Uk4obWVudV9pdGVtKTsKKworICAgIG8tPml0ZW1zID0gZWluYV9saXN0X2FwcGVuZChvLT5pdGVt
cywgbWVudV9pdGVtKTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKG8tPnZp
ZXcsICJjb250ZXh0bWVudSxpdGVtLGFwcGVuZGVkIiwgbyk7Cit9CisKK0V3a19Db250ZXh0X01l
bnUqIGV3a19jb250ZXh0X21lbnVfY3VzdG9tX2dldChFd2tfQ29udGV4dF9NZW51KiBvKQorewor
ICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChvLCAwKTsKKworICAgIGV2YXNfb2Jq
ZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwoby0+dmlldywgImNvbnRleHRtZW51LGN1c3RvbWl6ZSIs
IG8tPml0ZW1zKTsKKyAgICByZXR1cm4gbzsKK30KKwordm9pZCBld2tfY29udGV4dF9tZW51X3No
b3coRXdrX0NvbnRleHRfTWVudSogbykKK3sKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVS
TihvKTsKKworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwoby0+dmlldywgImNv
bnRleHRtZW51LHNob3ciLCBvKTsKK30KZGlmZiAtLWdpdCBhL1dlYktpdC9lZmwvZXdrL2V3a19j
b250ZXh0bWVudS5oIGIvV2ViS2l0L2VmbC9ld2svZXdrX2NvbnRleHRtZW51LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzVhZGI0ODI4ZTk2ODFkZWM4OWY4YmYzODUzODllMzRmZmQ1NjBiMwotLS0gL2Rldi9udWxs
CisrKyBiL1dlYktpdC9lZmwvZXdrL2V3a19jb250ZXh0bWVudS5oCkBAIC0wLDAgKzEsMTQ3IEBA
CisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMCBQcm9GVVNJT04gZW1iZWRkZWQgc3lzdGVtcwor
ICAgIENvcHlyaWdodCAoQykgMjAxMCBTYW1zdW5nIEVsZWN0cm9uaWNzCisKKyAgICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
ICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAg
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2lmbmRlZiBl
d2tfY29udGV4dG1lbnVfaAorI2RlZmluZSBld2tfY29udGV4dG1lbnVfaAorCisjaW5jbHVkZSAi
ZXdrX2VhcGkuaCIKKworI2luY2x1ZGUgPEVpbmEuaD4KKyNpbmNsdWRlIDxFdmFzLmg+CisKKyNp
ZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworLy8ga2VlcCB0aGlzIGlu
IHN5bmMgd2l0aCBDb250ZXh0TWVudUl0ZW0uaAorZW51bSBfRXdrX0NvbnRleHRfTWVudV9BY3Rp
b24geworICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfTk9fQUNUSU9OID0gMCwgLy8gdGhp
cyBpdGVtIGlzIG5vdCBhY3R1YWxseSBpbiB3ZWJfdWlkZWxlZ2F0ZS5oCisgICAgRVdLX0NPTlRF
WFRfTUVOVV9JVEVNX1RBR19PUEVOX0xJTktfSU5fTkVXX1dJTkRPVyA9IDEsCisgICAgRVdLX0NP
TlRFWFRfTUVOVV9JVEVNX1RBR19ET1dOTE9BRF9MSU5LX1RPX0RJU0ssCisgICAgRVdLX0NPTlRF
WFRfTUVOVV9JVEVNX1RBR19DT1BZX0xJTktfVE9fQ0xJUEJPQVJELAorICAgIEVXS19DT05URVhU
X01FTlVfSVRFTV9UQUdfT1BFTl9JTUFHRV9JTl9ORVdfV0lORE9XLAorICAgIEVXS19DT05URVhU
X01FTlVfSVRFTV9UQUdfRE9XTkxPQURfSU1BR0VfVE9fRElTSywKKyAgICBFV0tfQ09OVEVYVF9N
RU5VX0lURU1fVEFHX0NPUFlfSU1BR0VfVE9fQ0xJUEJPQVJELAorICAgIEVXS19DT05URVhUX01F
TlVfSVRFTV9UQUdfT1BFTl9GUkFNRV9JTl9ORVdfV0lORE9XLAorICAgIEVXS19DT05URVhUX01F
TlVfSVRFTV9UQUdfQ09QWSwKKyAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX0dPX0JBQ0ss
CisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19HT19GT1JXQVJELAorICAgIEVXS19DT05U
RVhUX01FTlVfSVRFTV9UQUdfU1RPUCwKKyAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX1JF
TE9BRCwKKyAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX0NVVCwKKyAgICBFV0tfQ09OVEVY
VF9NRU5VX0lURU1fVEFHX1BBU1RFLAorICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfU1BF
TExJTkdfR1VFU1MsCisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19OT19HVUVTU0VTX0ZP
VU5ELAorICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfSUdOT1JFX1NQRUxMSU5HLAorICAg
IEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfTEVBUk5fU1BFTExJTkcsCisgICAgRVdLX0NPTlRF
WFRfTUVOVV9JVEVNX1RBR19PVEhFUiwKKyAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX1NF
QVJDSF9JTl9TUE9UTElHSFQsCisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19TRUFSQ0hf
V0VCLAorICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfTE9PS19VUF9JTl9ESUNUSU9OQVJZ
LAorICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfT1BFTl9XSVRIX0RFRkFVTFRfQVBQTElD
QVRJT04sCisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1BERkFDVFVBTF9TSVpFLAorICAgIEVX
S19DT05URVhUX01FTlVfSVRFTV9QREZaT09NX0lOLAorICAgIEVXS19DT05URVhUX01FTlVfSVRF
TV9QREZaT09NX09VVCwKKyAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fUERGQVVUT19TSVpFLAor
ICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9QREZTSU5HTEVfUEFHRSwKKyAgICBFV0tfQ09OVEVY
VF9NRU5VX0lURU1fUERGRkFDSU5HX1BBR0VTLAorICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9Q
REZDT05USU5VT1VTLAorICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9QREZORVhUX1BBR0UsCisg
ICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1BERlBSRVZJT1VTX1BBR0UsCisgICAgRVdLX0NPTlRF
WFRfTUVOVV9JVEVNX1RBR19PUEVOX0xJTksgPSAyMDAwLAorICAgIEVXS19DT05URVhUX01FTlVf
SVRFTV9UQUdfSUdOT1JFX0dSQU1NQVIsCisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19T
UEVMTElOR19NRU5VLCAvLyBzcGVsbGluZyBvciBzcGVsbGluZy9ncmFtbWFyIHN1Yi1tZW51Cisg
ICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19TSE9XX1NQRUxMSU5HX1BBTkVMLAorICAgIEVX
S19DT05URVhUX01FTlVfSVRFTV9UQUdfQ0hFQ0tfU1BFTExJTkcsCisgICAgRVdLX0NPTlRFWFRf
TUVOVV9JVEVNX1RBR19DSEVDS19TUEVMTElOR19XSElMRV9UWVBJTkcsCisgICAgRVdLX0NPTlRF
WFRfTUVOVV9JVEVNX1RBR19DSEVDS19HUkFNTUFSX1dJVEhfU1BFTExJTkcsCisgICAgRVdLX0NP
TlRFWFRfTUVOVV9JVEVNX1RBR19GT05UX01FTlUsIC8vIGZvbnQgc3ViLW1lbnUKKyAgICBFV0tf
Q09OVEVYVF9NRU5VX0lURU1fVEFHX1NIT1dfRk9OVFMsCisgICAgRVdLX0NPTlRFWFRfTUVOVV9J
VEVNX1RBR19CT0xELAorICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfSVRBTElDLAorICAg
IEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfVU5ERVJMSU5FLAorICAgIEVXS19DT05URVhUX01F
TlVfSVRFTV9UQUdfT1VUTElORSwKKyAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX1NUWUxF
UywKKyAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX1NIT1dfQ09MT1JTLAorICAgIEVXS19D
T05URVhUX01FTlVfSVRFTV9UQUdfU1BFRUNIX01FTlUsIC8vIHNwZWVjaCBzdWItbWVudQorICAg
IEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfU1RBUlRfU1BFQUtJTkcsCisgICAgRVdLX0NPTlRF
WFRfTUVOVV9JVEVNX1RBR19TVE9QX1NQRUFLSU5HLAorICAgIEVXS19DT05URVhUX01FTlVfSVRF
TV9UQUdfV1JJVElOR19ESVJFQ1RJT05fTUVOVSwgLy8gd3JpdGluZyBkaXJlY3Rpb24gc3ViLW1l
bnUKKyAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX0RFRkFVTFRfRElSRUNUSU9OLAorICAg
IEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfTEVGVF9UT19SSUdIVCwKKyAgICBFV0tfQ09OVEVY
VF9NRU5VX0lURU1fVEFHX1JJR0hUX1RPX0xFRlQsCisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVN
X1RBR19QREZTSU5HTEVfUEFHRV9TQ1JPTExJTkcsCisgICAgRVdLX0NPTlRFWFRfTUVOVV9JVEVN
X1RBR19QREZGQUNJTkdfUEFHRVNfU0NST0xMSU5HLAorICAgIEVXS19DT05URVhUX01FTlVfSVRF
TV9UQUdfVEVYVF9ESVJFQ1RJT05fTUVOVSwgLy8gdGV4dCBkaXJlY3Rpb24gc3ViLW1lbnUKKyAg
ICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fVEFHX1RFWFRfRElSRUNUSU9OX0RFRkFVTFQsCisgICAg
RVdLX0NPTlRFWFRfTUVOVV9JVEVNX1RBR19URVhUX0RJUkVDVElPTl9MRUZUX1RPX1JJR0hULAor
ICAgIEVXS19DT05URVhUX01FTlVfSVRFTV9UQUdfVEVYVF9ESVJFQ1RJT05fUklHSFRfVE9fTEVG
VCwKKyAgICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fQkFTRV9DVVNUT01fVEFHID0gNTAwMCwKKyAg
ICBFV0tfQ09OVEVYVF9NRU5VX0lURU1fQkFTRV9BUFBMSUNBVElPTl9UQUcgPSAxMDAwMAorfTsK
K3R5cGVkZWYgZW51bSBfRXdrX0NvbnRleHRfTWVudV9BY3Rpb24gRXdrX0NvbnRleHRfTWVudV9B
Y3Rpb247CisKKy8vIGtlZXAgdGhpcyBpbiBzeW5jIHdpdGggQ29udGV4dE1lbnVJdGVtLmgKK2Vu
dW0gX0V3a19Db250ZXh0X01lbnVfSXRlbV9UeXBlIHsKKyAgICBFV0tfQUNUSU9OX1RZUEUsCisg
ICAgRVdLX0NIRUNLQUJMRV9BQ1RJT05fVFlQRSwKKyAgICBFV0tfU0VQQVJBVE9SX1RZUEUsCisg
ICAgRVdLX1NVQk1FTlVfVFlQRQorfTsKK3R5cGVkZWYgZW51bSBfRXdrX0NvbnRleHRfTWVudV9J
dGVtX1R5cGUgICAgRXdrX0NvbnRleHRfTWVudV9JdGVtX1R5cGU7CisKKy8qKgorICogVGhlIHN0
cnVjdHVyZSB0byBjb250YWluIENvbnRleHQgTWVudSBkYXRhCisgKi8KK3R5cGVkZWYgc3RydWN0
IF9Fd2tfQ29udGV4dF9NZW51ICAgICAgICAgICAgRXdrX0NvbnRleHRfTWVudTsKKworLyoqCisg
KiBSZXByZXNlbnRzIG9uZSBpdGVtIGZyb20gRXdrX0NvbnRleHRfTWVudQorICovCit0eXBlZGVm
IHN0cnVjdCBfRXdrX0NvbnRleHRfTWVudV9JdGVtICAgICAgIEV3a19Db250ZXh0X01lbnVfSXRl
bTsKKworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKiBFeHBvcnRlZCBmdW5jdGlvbnMg
KioqKioqKioqKioqKioqKioqKioqKiovCisKK0VBUEkgdm9pZCAgICAgICAgICAgICAgICAgICAg
ICAgIGV3a19jb250ZXh0X21lbnVfcmVmKEV3a19Db250ZXh0X01lbnUqIG1lbnUpOworRUFQSSB2
b2lkICAgICAgICAgICAgICAgICAgICAgICAgZXdrX2NvbnRleHRfbWVudV91bnJlZihFd2tfQ29u
dGV4dF9NZW51KiBtZW51KTsKK0VBUEkgRWluYV9Cb29sICAgICAgICAgICAgICAgICAgIGV3a19j
b250ZXh0X21lbnVfZGVzdHJveShFd2tfQ29udGV4dF9NZW51KiBtZW51KTsKKworRUFQSSBjb25z
dCBFaW5hX0xpc3QqICAgICAgICAgICAgZXdrX2NvbnRleHRfbWVudV9pdGVtX2xpc3RfZ2V0KEV3
a19Db250ZXh0X01lbnUqIG8pOworCitFQVBJIEV3a19Db250ZXh0X01lbnVfSXRlbSogICAgICBl
d2tfY29udGV4dF9tZW51X2l0ZW1fbmV3KEV3a19Db250ZXh0X01lbnVfSXRlbV9UeXBlIHR5cGUs
IEV3a19Db250ZXh0X01lbnVfQWN0aW9uIGFjdGlvbiwgRXdrX0NvbnRleHRfTWVudSogc3VibWVu
dSwgY29uc3QgY2hhciogdGl0bGUsIEVpbmFfQm9vbCBjaGVja2VkLCBFaW5hX0Jvb2wgZW5hYmxl
ZCk7CitFQVBJIHZvaWQgICAgICAgICAgICAgICAgICAgICAgICBld2tfY29udGV4dF9tZW51X2l0
ZW1fZnJlZShFd2tfQ29udGV4dF9NZW51X0l0ZW0qIGl0ZW0pOworRUFQSSBFaW5hX0Jvb2wgICAg
ICAgICAgICAgICAgICAgZXdrX2NvbnRleHRfbWVudV9pdGVtX3NlbGVjdChFd2tfQ29udGV4dF9N
ZW51KiBtZW51LCBFd2tfQ29udGV4dF9NZW51X0l0ZW0qIGl0ZW0pOworRUFQSSBFd2tfQ29udGV4
dF9NZW51X0l0ZW1fVHlwZSAgZXdrX2NvbnRleHRfbWVudV9pdGVtX3R5cGVfZ2V0KEV3a19Db250
ZXh0X01lbnVfSXRlbSogbyk7CitFQVBJIEVpbmFfQm9vbCAgICAgICAgICAgICAgICAgICBld2tf
Y29udGV4dF9tZW51X2l0ZW1fdHlwZV9zZXQoRXdrX0NvbnRleHRfTWVudV9JdGVtKiBvLCBFd2tf
Q29udGV4dF9NZW51X0l0ZW1fVHlwZSB0eXBlKTsKK0VBUEkgRXdrX0NvbnRleHRfTWVudV9BY3Rp
b24gICAgIGV3a19jb250ZXh0X21lbnVfaXRlbV9hY3Rpb25fZ2V0KEV3a19Db250ZXh0X01lbnVf
SXRlbSogbyk7CitFQVBJIEVpbmFfQm9vbCAgICAgICAgICAgICAgICAgICBld2tfY29udGV4dF9t
ZW51X2l0ZW1fYWN0aW9uX3NldChFd2tfQ29udGV4dF9NZW51X0l0ZW0qIG8sIEV3a19Db250ZXh0
X01lbnVfQWN0aW9uIGFjdGlvbik7CitFQVBJIGNvbnN0IGNoYXIqICAgICAgICAgICAgICAgICBl
d2tfY29udGV4dF9tZW51X2l0ZW1fdGl0bGVfZ2V0KEV3a19Db250ZXh0X01lbnVfSXRlbSogbyk7
CitFQVBJIGNvbnN0IGNoYXIqICAgICAgICAgICAgICAgICBld2tfY29udGV4dF9tZW51X2l0ZW1f
dGl0bGVfc2V0KEV3a19Db250ZXh0X01lbnVfSXRlbSogbywgY29uc3QgY2hhciogdGl0bGUpOwor
RUFQSSBFaW5hX0Jvb2wgICAgICAgICAgICAgICAgICAgZXdrX2NvbnRleHRfbWVudV9pdGVtX2No
ZWNrZWRfZ2V0KEV3a19Db250ZXh0X01lbnVfSXRlbSogbyk7CitFQVBJIEVpbmFfQm9vbCAgICAg
ICAgICAgICAgICAgICBld2tfY29udGV4dF9tZW51X2l0ZW1fY2hlY2tlZF9zZXQoRXdrX0NvbnRl
eHRfTWVudV9JdGVtKiBvLCBFaW5hX0Jvb2wgY2hlY2tlZCk7CitFQVBJIEVpbmFfQm9vbCAgICAg
ICAgICAgICAgICAgICBld2tfY29udGV4dF9tZW51X2l0ZW1fZW5hYmxlZF9nZXQoRXdrX0NvbnRl
eHRfTWVudV9JdGVtKiBvKTsKK0VBUEkgRWluYV9Cb29sICAgICAgICAgICAgICAgICAgIGV3a19j
b250ZXh0X21lbnVfaXRlbV9lbmFibGVkX3NldChFd2tfQ29udGV4dF9NZW51X0l0ZW0qIG8sIEVp
bmFfQm9vbCBlbmFibGVkKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKyNlbmRp
ZiAvLyBld2tfY29udGV4dG1lbnVfaApkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9ld2svZXdrX3By
aXZhdGUuaCBiL1dlYktpdC9lZmwvZXdrL2V3a19wcml2YXRlLmgKaW5kZXggZjE0MTQxMjAyYTY2
ZGQ0ODM1MjRmMGQyYTdjNDhhZDdlMDQ4N2JjNi4uNWY2NmZkODYyNzAwZGZhMGU1NGU1NTBhNWJl
NzRlYTRkNzYwOWYzZiAxMDA2NDQKLS0tIGEvV2ViS2l0L2VmbC9ld2svZXdrX3ByaXZhdGUuaAor
KysgYi9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCkBAIC00NCw2ICs0NCw4IEBAIGV4dGVy
biAiQyIgewogLy8gZm9yd2FyZCBkZWNsYXJhdGlvbnMKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0
cnVjdCBQb3B1cE1lbnVDbGllbnQ7CitzdHJ1Y3QgQ29udGV4dE1lbnU7CitzdHJ1Y3QgQ29udGV4
dE1lbnVJdGVtOwogfQogCiB2b2lkICAgICAgICAgICAgIGV3a192aWV3X3JlYWR5KEV2YXNfT2Jq
ZWN0ICpvKTsKQEAgLTk0LDYgKzk2LDEyIEBAIHZvaWQgICAgICAgICAgICAgZXdrX3ZpZXdfcG9w
dXBfbmV3KEV2YXNfT2JqZWN0ICpvLCBXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsCiBFd2tf
SGlzdG9yeSAgICAgICpld2tfaGlzdG9yeV9uZXcoV2ViQ29yZTo6QmFja0ZvcndhcmRMaXN0ICpo
aXN0b3J5KTsKIHZvaWQgICAgICAgICAgICAgIGV3a19oaXN0b3J5X2ZyZWUoRXdrX0hpc3Rvcnkg
Kmhpc3RvcnkpOwogCitFd2tfQ29udGV4dF9NZW51ICpld2tfY29udGV4dF9tZW51X25ldyhFdmFz
X09iamVjdCAqdmlldywgV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyICpjb250cm9sbGVy
KTsKK0VpbmFfQm9vbCAgICAgICAgIGV3a19jb250ZXh0X21lbnVfZnJlZShFd2tfQ29udGV4dF9N
ZW51ICpvKTsKK3ZvaWQgICAgICAgICAgICAgIGV3a19jb250ZXh0X21lbnVfaXRlbV9hcHBlbmQo
RXdrX0NvbnRleHRfTWVudSAqbywgV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtJiBjb3JlKTsKK0V3
a19Db250ZXh0X01lbnUgKmV3a19jb250ZXh0X21lbnVfY3VzdG9tX2dldChFd2tfQ29udGV4dF9N
ZW51ICpvKTsKK3ZvaWQgICAgICAgICAgICAgIGV3a19jb250ZXh0X21lbnVfc2hvdyhFd2tfQ29u
dGV4dF9NZW51ICpvKTsKKwogRXZhc19PYmplY3QgICAgICAqZXdrX2ZyYW1lX2FkZChFdmFzICpl
KTsKIEVpbmFfQm9vbCAgICAgICAgIGV3a19mcmFtZV9pbml0KEV2YXNfT2JqZWN0ICpvLCBFdmFz
X09iamVjdCAqdmlldywgV2ViQ29yZTo6RnJhbWUgKmZyYW1lKTsKIEV2YXNfT2JqZWN0ICAgICAg
KmV3a19mcmFtZV9jaGlsZF9hZGQoRXZhc19PYmplY3QgKm8sIFdURjo6UGFzc1JlZlB0cjxXZWJD
b3JlOjpGcmFtZT4gY2hpbGQsIGNvbnN0IFdlYkNvcmU6OlN0cmluZyYgbmFtZSwgY29uc3QgV2Vi
Q29yZTo6S1VSTCYgdXJsLCBjb25zdCBXZWJDb3JlOjpTdHJpbmcmIHJlZmVycmVyKTsKZGlmZiAt
LWdpdCBhL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcCBiL1dlYktpdC9lZmwvZXdrL2V3a192
aWV3LmNwcAppbmRleCAyNzE2MWNjMzI1MzY3ZWVjOGZhNzMxMmU2OWEwNzYxYjU4YzM4OWUyLi5k
NTkyMGU1ZWI3YmZjNzYxNzk3NDQwYjllNjBlNTUzZmMxNGU1ZjI5IDEwMDY0NAotLS0gYS9XZWJL
aXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKKysrIGIvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3Bw
CkBAIC0yMywxNSArMjMsMTggQEAKIAogI2luY2x1ZGUgIkNocm9tZUNsaWVudEVmbC5oIgogI2lu
Y2x1ZGUgIkNvbnRleHRNZW51Q2xpZW50RWZsLmgiCisjaW5jbHVkZSAiQ29udGV4dE1lbnVDb250
cm9sbGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKICNpbmNsdWRlICJEcmFnQ2xp
ZW50RWZsLmgiCiAjaW5jbHVkZSAiRVdlYktpdC5oIgogI2luY2x1ZGUgIkVkaXRvckNsaWVudEVm
bC5oIgorI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxl
ci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50RWZsLmgiCiAjaW5jbHVkZSAiRnJhbWVW
aWV3LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9y
Q2xpZW50RWZsLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAi
UG9wdXBNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCiAjaW5jbHVk
ZSAiZXdrX3ByaXZhdGUuaCIKQEAgLTE0NzcsNiArMTQ4MCw0NiBAQCBFaW5hX0Jvb2wgZXdrX3Zp
ZXdfc2VsZWN0X3dvcmQoRXZhc19PYmplY3QqIG8pCiB9CiAKIC8qKgorICogRm9yd2FyZHMgYSBy
ZXF1ZXN0IG9mIG5ldyBDb250ZXh0IE1lbnUgdG8gV2ViQ29yZS4KKyAqCisgKiBAcGFyYW0gbyBW
aWV3LgorICogQHBhcmFtIGV2IEV2ZW50IGRhdGEuCisgKgorICogQHJldHVybiBAYyBFSU5BX1RS
VUUgaWYgb3BlcmF0aW9uIHdhcyBleGVjdXRlZCwgQGMgRUlOQV9GQUxTRSBvdGhlcndpc2UuCisg
Ki8KK0VpbmFfQm9vbCBld2tfdmlld19jb250ZXh0X21lbnVfZm9yd2FyZF9ldmVudChFdmFzX09i
amVjdCogbywgY29uc3QgRXZhc19FdmVudF9Nb3VzZV9Eb3duKiBldikKK3sKKyAgICBFV0tfVklF
V19TRF9HRVRfT1JfUkVUVVJOKG8sIHNkLCBFSU5BX0ZBTFNFKTsKKyAgICBFV0tfVklFV19QUklW
X0dFVF9PUl9SRVRVUk4oc2QsIHByaXYsIEVJTkFfRkFMU0UpOworICAgIEVpbmFfQm9vbCBtb3Vz
ZV9wcmVzc19oYW5kbGVkID0gRUlOQV9GQUxTRTsKKworICAgIHByaXYtPnBhZ2UtPmNvbnRleHRN
ZW51Q29udHJvbGxlcigpLT5jbGVhckNvbnRleHRNZW51KCk7CisgICAgV2ViQ29yZTo6RnJhbWUq
IG1haW5fZnJhbWUgPSBwcml2LT5wYWdlLT5tYWluRnJhbWUoKTsKKyAgICBFdmFzX0Nvb3JkIHgs
IHk7CisgICAgZXZhc19vYmplY3RfZ2VvbWV0cnlfZ2V0KHNkLT5zZWxmLCAmeCwgJnksIDAsIDAp
OworCisgICAgV2ViQ29yZTo6UGxhdGZvcm1Nb3VzZUV2ZW50IGV2ZW50KGV2LCBXZWJDb3JlOjpJ
bnRQb2ludCh4LCB5KSk7CisKKyAgICBpZiAobWFpbl9mcmFtZS0+dmlldygpKSB7CisgICAgICAg
IG1vdXNlX3ByZXNzX2hhbmRsZWQgPQorICAgICAgICAgICAgbWFpbl9mcmFtZS0+ZXZlbnRIYW5k
bGVyKCktPmhhbmRsZU1vdXNlUHJlc3NFdmVudChldmVudCk7CisgICAgfQorCisgICAgaWYgKG1h
aW5fZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5zZW5kQ29udGV4dE1lbnVFdmVudChldmVudCkpCisg
ICAgICAgIHJldHVybiBFSU5BX0ZBTFNFOworCisgICAgV2ViQ29yZTo6Q29udGV4dE1lbnUqIGNv
cmVNZW51ID0KKyAgICAgICAgcHJpdi0+cGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCktPmNv
bnRleHRNZW51KCk7CisgICAgaWYgKCFjb3JlTWVudSkgeworICAgICAgICAvLyBXZWJDb3JlIGRl
Y2lkZWQgbm90IHRvIGNyZWF0ZSBhIGNvbnRleHQgbWVudSwgcmV0dXJuIHRydWUgaWYgZXZlbnQK
KyAgICAgICAgLy8gd2FzIGhhbmRsZWQgYnkgaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQKKyAgICAg
ICAgcmV0dXJuIG1vdXNlX3ByZXNzX2hhbmRsZWQ7CisgICAgfQorCisgICAgcmV0dXJuIEVJTkFf
VFJVRTsKK30KKworLyoqCiAgKiBHZXQgY3VycmVudCBsb2FkIHByb2dyZXNzIGVzdGltYXRlIGZy
b20gMC4wIHRvIDEuMC4KICAqCiAgKiBAcGFyYW0gbyB2aWV3IG9iamVjdCB0byBnZXQgY3VycmVu
dCBwcm9ncmVzcy4KQEAgLTMzOTQsMTQgKzM0MzcsMjAgQEAgRWluYV9Cb29sIGV3a192aWV3X3No
b3VsZF9pbnRlcnJ1cHRfamF2YXNjcmlwdChFdmFzX09iamVjdCogbykKICAqIEBwYXJhbSBvIFZp
ZXcuCiAgKiBAcGFyYW0gZnJhbWUgVGhlIGZyYW1lIHdob3NlIHdlYiBwYWdlIGV4Y2VlZGVkIGl0
cyBkYXRhYmFzZSBxdW90YS4KICAqIEBwYXJhbSBkYXRhYmFzZU5hbWUgRGF0YWJhc2UgbmFtZS4K
KyAqIEBwYXJhbSBjdXJyZW50X3NpemUgQ3VycmVudCBzaXplIG9mIHRoaXMgZGF0YWJhc2UKKyAq
IEBwYXJhbSBleHBlY3RlZF9zaXplIFRoZSBleHBlY3RlZCBzaXplIG9mIHRoaXMgZGF0YWJhc2Ug
aW4gb3JkZXIgdG8gZnVsZmlsbAorICogc2l0ZSdzIHJlcXVpcmVtZW50LgogICovCi12b2lkIGV3
a192aWV3X2V4Y2VlZGVkX2RhdGFiYXNlX3F1b3RhKEV2YXNfT2JqZWN0KiBvLCBFdmFzX09iamVj
dCogZnJhbWUsIGNvbnN0IGNoYXIqIGRhdGFiYXNlTmFtZSkKK3VpbnQ2NF90IGV3a192aWV3X2V4
Y2VlZGVkX2RhdGFiYXNlX3F1b3RhKEV2YXNfT2JqZWN0KiBvLCBFdmFzX09iamVjdCogZnJhbWUs
IGNvbnN0IGNoYXIqIGRhdGFiYXNlTmFtZSwgdWludDY0X3QgY3VycmVudF9zaXplLCB1aW50NjRf
dCBleHBlY3RlZF9zaXplKQogewogICAgIERCRygibz0lcCIsIG8pOwotICAgIEVXS19WSUVXX1NE
X0dFVF9PUl9SRVRVUk4obywgc2QpOwotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKHNk
LT5hcGkpOwotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKHNkLT5hcGktPmV4Y2VlZGVk
X2RhdGFiYXNlX3F1b3RhKTsKLSAgICBzZC0+YXBpLT5leGNlZWRlZF9kYXRhYmFzZV9xdW90YShz
ZCwgZnJhbWUsIGRhdGFiYXNlTmFtZSk7CisgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihv
LCBzZCwgMCk7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNkLT5hcGksIDAp
OworICAgIGlmICghc2QtPmFwaS0+ZXhjZWVkZWRfZGF0YWJhc2VfcXVvdGEpCisgICAgICAgIHJl
dHVybiAwOworCisgICAgRVJSKCIjIyMjIyAlbHUgJWx1IiwgY3VycmVudF9zaXplLCBleHBlY3Rl
ZF9zaXplKTsKKyAgICByZXR1cm4gc2QtPmFwaS0+ZXhjZWVkZWRfZGF0YWJhc2VfcXVvdGEoc2Qs
IGZyYW1lLCBkYXRhYmFzZU5hbWUsIGN1cnJlbnRfc2l6ZSwgZXhwZWN0ZWRfc2l6ZSk7CiB9CiAK
IC8qKgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaCBiL1dlYktpdC9lZmwv
ZXdrL2V3a192aWV3LmgKaW5kZXggYWM2YzhiZjRhZDk5NThlZDExOGUyY2U0ZmRkYWY2MzIyMmUz
YTE4Zi4uYjAyOWE2ODYwNzRhNWMwNmNjZTFhYTZkNGIwN2Q3Zjg0YjAwYmIyZSAxMDA2NDQKLS0t
IGEvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaAorKysgYi9XZWJLaXQvZWZsL2V3ay9ld2tfdmll
dy5oCkBAIC0zMDUsNiArMzA1LDggQEAgRUFQSSBFaW5hX0Jvb2wgICAgZXdrX3ZpZXdfc2VsZWN0
X3NlbnRlbmNlKEV2YXNfT2JqZWN0ICpvKTsKIEVBUEkgRWluYV9Cb29sICAgIGV3a192aWV3X3Nl
bGVjdF9saW5lKEV2YXNfT2JqZWN0ICpvKTsKIEVBUEkgRWluYV9Cb29sICAgIGV3a192aWV3X3Nl
bGVjdF93b3JkKEV2YXNfT2JqZWN0ICpvKTsKIAorRUFQSSBFaW5hX0Jvb2wgICAgZXdrX3ZpZXdf
Y29udGV4dF9tZW51X2ZvcndhcmRfZXZlbnQoRXZhc19PYmplY3QgKm8sIGNvbnN0IEV2YXNfRXZl
bnRfTW91c2VfRG93biAqZXYpOworCiBFQVBJIHZvaWQgICAgICAgICBld2tfdmlld19wb3B1cF9z
ZWxlY3RlZF9zZXQoRXZhc19PYmplY3QgKm8sIGludCBpbmRleCk7CiBFQVBJIEVpbmFfQm9vbCAg
ICBld2tfdmlld19wb3B1cF9kZXN0cm95KEV2YXNfT2JqZWN0ICpvKTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>