<?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>83464</bug_id>
          
          <creation_ts>2012-04-09 05:30:39 -0700</creation_ts>
          <short_desc>[CSS Regions]Add helper class for flow threads info in RenderView</short_desc>
          <delta_ts>2012-07-23 23:42:58 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>57312</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mihnea Ovidenie">mihnea</reporter>
          <assigned_to name="Mihnea Ovidenie">mihnea</assigned_to>
          <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>598237</commentid>
    <comment_count>0</comment_count>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2012-04-09 05:30:39 -0700</bug_when>
    <thetext>David Hyatt comment on https://bugs.webkit.org/show_bug.cgi?id=80134:
&quot;This isn&apos;t really something you should do for this patch, but going forward I think we might want to pull all the flow thread stuff in RenderView into a helper class.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>598242</commentid>
    <comment_count>1</comment_count>
      <attachid>136215</attachid>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2012-04-09 05:41:15 -0700</bug_when>
    <thetext>Created attachment 136215
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599443</commentid>
    <comment_count>2</comment_count>
      <attachid>136215</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-04-10 11:28:20 -0700</bug_when>
    <thetext>Comment on attachment 136215
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599474</commentid>
    <comment_count>3</comment_count>
      <attachid>136215</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-10 12:12:28 -0700</bug_when>
    <thetext>Comment on attachment 136215
Patch

Rejecting attachment 136215 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
derNamedFlowThread.h
patching file Source/WebCore/rendering/RenderObject.cpp
Hunk #3 succeeded at 565 (offset -24 lines).
Hunk #4 succeeded at 2290 (offset -24 lines).
patching file Source/WebCore/rendering/RenderTreeAsText.cpp
patching file Source/WebCore/rendering/RenderView.cpp
patching file Source/WebCore/rendering/RenderView.h

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;, u&apos;--reviewer&apos;, u&apos;David Hyatt&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue/

Full output: http://queues.webkit.org/results/12384339</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600130</commentid>
    <comment_count>4</comment_count>
      <attachid>136644</attachid>
    <who name="Mihnea Ovidenie">mihnea</who>
    <bug_when>2012-04-11 01:33:50 -0700</bug_when>
    <thetext>Created attachment 136644
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600166</commentid>
    <comment_count>5</comment_count>
      <attachid>136644</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-11 02:41:59 -0700</bug_when>
    <thetext>Comment on attachment 136644
Patch for landing

Clearing flags on attachment: 136644

Committed r113842: &lt;http://trac.webkit.org/changeset/113842&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600167</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-11 02:42:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136215</attachid>
            <date>2012-04-09 05:41:15 -0700</date>
            <delta_ts>2012-04-11 01:33:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>83464.patch</filename>
            <type>text/plain</type>
            <size>36263</size>
            <attacher name="Mihnea Ovidenie">mihnea</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYWEwNDE1Ni4uMGM0YmJiOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTEyODIsNiArMTI4Miw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICByZW5k
ZXJpbmcvRWxsaXBzaXNCb3guY3BwCiAgICAgcmVuZGVyaW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVy
LmNwcAogICAgIHJlbmRlcmluZy9GaXhlZFRhYmxlTGF5b3V0LmNwcAorICAgIHJlbmRlcmluZy9G
bG93VGhyZWFkQ29udHJvbGxlci5jcHAKICAgICByZW5kZXJpbmcvSGl0VGVzdGluZ1RyYW5zZm9y
bVN0YXRlLmNwcAogICAgIHJlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcAogICAgIHJlbmRlcmlu
Zy9JbmxpbmVCb3guY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDMwZWE2Yy4uZDkzMGI2MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDcyIEBACisyMDEyLTA0LTA5ICBNaWhuZWEgT3ZpZGVuaWUgIDxtaWhuZWFA
YWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgUmVnaW9uc11BZGQgaGVscGVyIGNsYXNzIGZvciBm
bG93IHRocmVhZHMgaW5mbyBpbiBSZW5kZXJWaWV3CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MzQ2NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggY3JlYXRlcyBhIG5ldyBoZWxwZXIgY2xh
c3MgRmxvd1RocmVhZENvbnRyb2xsZXIgdGhhdCB3aWxsIGFjY29tbW9kYXRlIGFsbCB0aGUgZmxv
dyB0aHJlYWQKKyAgICAgICAgcmVsYXRlZCBpbmZvIGZyb20gUmVuZGVyVmlldyBhbmQgbW92ZXMg
YWxsIHRoZSBkYXRhIHN0cnVjdHVyZXMvbWV0aG9kcyBmcm9tIFJlbmRlclZpZXcgaW50byB0aGlz
IG5ldyBjbGFzcy4KKyAgICAgICAgVGhlcmUgaXMgb25seSBvbmUgRmxvd1RocmVhZENvbnRyb2xs
ZXIgb2JqZWN0IHBlciBSZW5kZXJWaWV3IGFuZCBpdCBjYW4gYmUgcmV0cmlldmVkIHVzaW5nIGZs
b3dUaHJlYWRDb250cm9sbGVyKCkgbWV0aG9kIGZyb20gUmVuZGVyVmlldy4KKyAgICAgICAgVGhl
IGZsb3cgdGhyZWFkIGNvbnRyb2xsZXIgb2JqZWN0IGlzIG93bmVkIGJ5IHRoZSBSZW5kZXJWaWV3
IGFuZCBpdCBpcyBjcmVhdGVkIG9uIGRlbWFuZCBvbmx5IGlmIHRoZXJlIGFyZSBmbG93aW5nCisg
ICAgICAgIHRocmVhZHMgaW4gdGhlIHBhZ2UuCisKKyAgICAgICAgU2luY2UgdGhlcmUgaXMgbm8g
Y2hhbmdlIGluIGZ1bmN0aW9uYWxpdHksIHRoZXJlIGFyZSBubyBuZXcgdGVzdHMgYWRkZWQuCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFt
OgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAg
ICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OndlYmtpdEdldEZsb3dCeU5hbWUpOgorICAgICAgICAq
IGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmVu
ZGVyaW5nQ29udGV4dDo6bW92ZVRvRmxvd1RocmVhZElmTmVlZGVkKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6Rmxvd1RocmVhZENvbnRyb2xsZXI6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpGbG93VGhyZWFkQ29udHJvbGxlcjo6Rmxvd1RocmVhZENvbnRyb2xsZXIp
OgorICAgICAgICAoV2ViQ29yZTo6Rmxvd1RocmVhZENvbnRyb2xsZXI6On5GbG93VGhyZWFkQ29u
dHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpGbG93VGhyZWFkQ29udHJvbGxlcjo6ZW5zdXJl
UmVuZGVyRmxvd1RocmVhZFdpdGhOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkZsb3dUaHJlYWRD
b250cm9sbGVyOjpsYXlvdXRSZW5kZXJOYW1lZEZsb3dUaHJlYWRzKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKEZsb3dUaHJlYWRDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZsb3dU
aHJlYWRDb250cm9sbGVyOjpjdXJyZW50UmVuZGVyRmxvd1RocmVhZCk6CisgICAgICAgIChXZWJD
b3JlOjpGbG93VGhyZWFkQ29udHJvbGxlcjo6c2V0Q3VycmVudFJlbmRlckZsb3dUaHJlYWQpOgor
ICAgICAgICAoV2ViQ29yZTo6Rmxvd1RocmVhZENvbnRyb2xsZXI6OmlzUmVuZGVyTmFtZWRGbG93
VGhyZWFkT3JkZXJEaXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpGbG93VGhyZWFkQ29udHJvbGxl
cjo6c2V0SXNSZW5kZXJOYW1lZEZsb3dUaHJlYWRPcmRlckRpcnR5KToKKyAgICAgICAgKFdlYkNv
cmU6OkZsb3dUaHJlYWRDb250cm9sbGVyOjpyZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkZsb3dUaHJlYWRDb250cm9sbGVyOjpoYXNSZW5kZXJOYW1lZEZsb3dU
aHJlYWRzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDdXJyZW50UmVuZGVyRmxvd1RocmVhZE1haW50YWluZXI6OkN1cnJlbnRS
ZW5kZXJGbG93VGhyZWFkTWFpbnRhaW5lcik6CisgICAgICAgIChXZWJDb3JlOjpDdXJyZW50UmVu
ZGVyRmxvd1RocmVhZE1haW50YWluZXI6On5DdXJyZW50UmVuZGVyRmxvd1RocmVhZE1haW50YWlu
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q3VycmVudFJlbmRlckZsb3dUaHJlYWREaXNhYmxlcjo6
Q3VycmVudFJlbmRlckZsb3dUaHJlYWREaXNhYmxlcik6CisgICAgICAgIChXZWJDb3JlOjpDdXJy
ZW50UmVuZGVyRmxvd1RocmVhZERpc2FibGVyOjp+Q3VycmVudFJlbmRlckZsb3dUaHJlYWREaXNh
Ymxlcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6Om5leHRSZW5kZXJlckZvck5v
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTmFtZWRGbG93VGhyZWFkOjpwcmV2aW91c1Jl
bmRlcmVyRm9yTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6
OnJlbW92ZVJlZ2lvbkZyb21UaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTmFtZWRG
bG93VGhyZWFkOjphZGREZXBlbmRlbmN5T25GbG93VGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlck5hbWVkRmxvd1RocmVhZDo6cmVtb3ZlRGVwZW5kZW5jeU9uRmxvd1RocmVhZCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5oOgorICAgICAgICAoUmVu
ZGVyTmFtZWRGbG93VGhyZWFkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6Y3JlYXRlT2JqZWN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6ZW5jbG9zaW5nUmVuZGVyRmxvd1RocmVhZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6d3Jp
dGVSZW5kZXJOYW1lZEZsb3dUaHJlYWRzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmll
dy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpSZW5kZXJWaWV3KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OmxheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJWaWV3OjpoYXNSZW5kZXJOYW1lZEZsb3dUaHJlYWRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclZpZXc6OmZsb3dUaHJlYWRDb250cm9sbGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVmlldy5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChSZW5kZXJWaWV3KToKKwog
MjAxMi0wNC0wOSAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFJlbW92ZSBwYXJ0aWFsbHkgaW1wbGVtZW50ZWQgcGVyLUVsZW1lbnQgdmlzaWJpbGl0eSBj
aGVja3MgZnJvbSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgbG9naWMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCmluZGV4IGM3NWQwYTIuLjAzOGM0N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbQpAQCAtMzY2OCw2ICszNjY4LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuaCBcCiAJU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
Rmxvd1RocmVhZENvbnRyb2xsZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxv
d1RocmVhZENvbnRyb2xsZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0dhcFJlY3Rz
LmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVxdWVzdC5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdGluZ1RyYW5zZm9ybVN0YXRlLmNwcCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0
LnByaQppbmRleCBjZDdlNTcyLi4zZGFhNmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9U
YXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTEyMDksNiArMTIw
OSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHJlbmRlcmluZy9FbGxpcHNpc0JveC5jcHAgXAogICAg
IHJlbmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5jcHAgXAogICAgIHJlbmRlcmluZy9GaXhl
ZFRhYmxlTGF5b3V0LmNwcCBcCisgICAgcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmNw
cCBcCiAgICAgcmVuZGVyaW5nL0hpdFRlc3RpbmdUcmFuc2Zvcm1TdGF0ZS5jcHAgXAogICAgIHJl
bmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcCBcCiAgICAgcmVuZGVyaW5nL0lubGluZUJveC5jcHAg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCmluZGV4IDBhOTZlMzIuLjYwYTQ4NmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
QEAgLTUxNyw2ICs1MTcsNyBAQAogICAgICAgICAgICAgJ3BsdWdpbnMvbnB0eXBlcy5oJywKICAg
ICAgICAgICAgICdyZW5kZXJpbmcvQ29sdW1uSW5mby5oJywKICAgICAgICAgICAgICdyZW5kZXJp
bmcvR2FwUmVjdHMuaCcsCisgICAgICAgICAgICAncmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9s
bGVyLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9IaXRUZXN0UmVxdWVzdC5oJywKICAgICAg
ICAgICAgICdyZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5oJywKICAgICAgICAgICAgICdyZW5kZXJp
bmcvSW5saW5lQm94LmgnLApAQCAtNDY2Miw2ICs0NjYzLDggQEAKICAgICAgICAgICAgICdyZW5k
ZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL0Zp
eGVkVGFibGVMYXlvdXQuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvRml4ZWRUYWJsZUxh
eW91dC5oJywKKyAgICAgICAgICAgICdyZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuY3Bw
JywKKyAgICAgICAgICAgICdyZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuaCcsCiAgICAg
ICAgICAgICAncmVuZGVyaW5nL0hpdFRlc3RpbmdUcmFuc2Zvcm1TdGF0ZS5jcHAnLAogICAgICAg
ICAgICAgJ3JlbmRlcmluZy9IaXRUZXN0aW5nVHJhbnNmb3JtU3RhdGUuaCcsCiAgICAgICAgICAg
ICAncmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggNmVhMzQyNS4uNzJlZGU1MyAxMDA3NTUKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTM3MjYyLDYgKzM3
MjYyLDE0IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXHJlbmRlcmluZ1xGbG93VGhyZWFkQ29udHJvbGxlci5jcHAiCisJCQkJPgorCQkJPC9GaWxl
PgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xGbG93VGhyZWFkQ29u
dHJvbGxlci5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRo
PSIuLlxyZW5kZXJpbmdcR2FwUmVjdHMuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNmQ4NDI0
OS4uZjkyNDQ2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtNTgwMSw2ICs1ODAxLDggQEAKIAkJRDZGREFFRjMxNDlDMDYxOTAw
MzdCMUUxIC8qIEhpc3RvZ3JhbVN1cHBvcnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRDZGREFFRjIxNDlDMDYxOTAwMzdCMUUxIC8qIEhpc3RvZ3Jh
bVN1cHBvcnQuY3BwICovOyB9OwogCQlENzBBRDY1NzEzRTEzNDJCMDA1QjUwQjQgLyogUmVuZGVy
UmVnaW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEQ3MEFENjU1MTNFMTM0MkIwMDVCNTBCNCAvKiBSZW5kZXJSZWdpb24uY3BwICovOyB9OwogCQlE
NzBBRDY1ODEzRTEzNDJCMDA1QjUwQjQgLyogUmVuZGVyUmVnaW9uLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBENzBBRDY1NjEzRTEzNDJCMDA1QjUwQjQg
LyogUmVuZGVyUmVnaW9uLmggKi87IH07CisJCUQ3MkY2RDc5MTUzMTU5QTMwMDFFRTQ0RSAvKiBG
bG93VGhyZWFkQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBENzJGNkQ3NzE1MzE1OUEzMDAxRUU0NEUgLyogRmxvd1RocmVhZENvbnRy
b2xsZXIuY3BwICovOyB9OworCQlENzJGNkQ3QTE1MzE1OUEzMDAxRUU0NEUgLyogRmxvd1RocmVh
ZENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEQ3MkY2RDc4MTUzMTU5QTMwMDFFRTQ0RSAvKiBGbG93VGhyZWFkQ29udHJvbGxlci5oICov
OyB9OwogCQlENzYxM0E1MDE0NzRGMTNGMDBEQjg2MDYgLyogV2ViS2l0TmFtZWRGbG93LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQ3NjEzQTRFMTQ3
NEYxM0YwMERCODYwNiAvKiBXZWJLaXROYW1lZEZsb3cuY3BwICovOyB9OwogCQlENzYxM0FDNDE0
NzUzRTU2MDBEQjg2MDYgLyogSlNXZWJLaXROYW1lZEZsb3cuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDc2MTNBQzIxNDc1M0U1NjAwREI4NjA2IC8q
IEpTV2ViS2l0TmFtZWRGbG93LmNwcCAqLzsgfTsKIAkJRDhCNjE1MkYxMDMyNDk1MTAwQzg1NTRB
IC8qIENvb2tpZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRDhCNjE1MkUxMDMyNDk1MTAwQzg1NTRBIC8qIENvb2tpZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMjkxMSw2ICsxMjkxMyw4IEBACiAJ
CUQ2RkRBRUYyMTQ5QzA2MTkwMDM3QjFFMSAvKiBIaXN0b2dyYW1TdXBwb3J0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhpc3RvZ3JhbVN1cHBvcnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlENzBBRDY1NTEzRTEzNDJCMDA1QjUwQjQgLyogUmVu
ZGVyUmVnaW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRl
clJlZ2lvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQ3MEFENjU2MTNFMTM0
MkIwMDVCNTBCNCAvKiBSZW5kZXJSZWdpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVuZGVyUmVnaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQ3MkY2
RDc3MTUzMTU5QTMwMDFFRTQ0RSAvKiBGbG93VGhyZWFkQ29udHJvbGxlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGbG93VGhyZWFkQ29udHJvbGxlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQ3MkY2RDc4MTUzMTU5QTMwMDFFRTQ0RSAvKiBG
bG93VGhyZWFkQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBG
bG93VGhyZWFkQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlENzYx
M0E0QTE0NzRFRTk1MDBEQjg2MDYgLyogV2ViS2l0TmFtZWRGbG93LmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBXZWJLaXROYW1lZEZsb3cuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlENzYxM0E0RDE0NzRGMTNGMDBEQjg2MDYgLyogV2ViS2l0TmFtZWRGbG93LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdE5hbWVkRmxvdy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlENzYxM0E0RTE0NzRGMTNGMDBEQjg2MDYgLyogV2ViS2l0TmFt
ZWRGbG93LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktpdE5h
bWVkRmxvdy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDY4Myw2ICsyMDY4
Nyw4IEBACiAJCQkJMzEzMTNGNjQxNDQzQjM1RTAwNkUyQTkwIC8qIEZpbHRlckVmZmVjdFJlbmRl
cmVyLmggKi8sCiAJCQkJQThDRkYwNDgwQTE1NEYwOTAwMEE0MjM0IC8qIEZpeGVkVGFibGVMYXlv
dXQuY3BwICovLAogCQkJCUE4Q0ZGMDRBMEExNTRGMDkwMDBBNDIzNCAvKiBGaXhlZFRhYmxlTGF5
b3V0LmggKi8sCisJCQkJRDcyRjZENzcxNTMxNTlBMzAwMUVFNDRFIC8qIEZsb3dUaHJlYWRDb250
cm9sbGVyLmNwcCAqLywKKwkJCQlENzJGNkQ3ODE1MzE1OUEzMDAxRUU0NEUgLyogRmxvd1RocmVh
ZENvbnRyb2xsZXIuaCAqLywKIAkJCQk5MzVDNDc3NDA5QUM0RDhEMDBBNkFBQjQgLyogR2FwUmVj
dHMuaCAqLywKIAkJCQk0OTY5QjBGMDEzRDBCMzNGMDBERjM1MjEgLyogSGl0VGVzdGluZ1RyYW5z
Zm9ybVN0YXRlLmNwcCAqLywKIAkJCQk0OTY5QjBGMTEzRDBCMzNGMDBERjM1MjEgLyogSGl0VGVz
dGluZ1RyYW5zZm9ybVN0YXRlLmggKi8sCkBAIC0yNDczMyw2ICsyNDczOSw3IEBACiAJCQkJQTA3
RDMzNTgxNTJCNjMyRDAwMUI2MzkzIC8qIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmggaW4g
SGVhZGVycyAqLywKIAkJCQlDNUExRUE3RDE1MkJDRjA4MDA0RDAwQjYgLyogU2ltcGxpZnlNYXJr
dXBDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRURBMTJENzE1MkNBMUNCMDBEOUUwOEQg
LyogQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlENzJGNkQ3QTE1
MzE1OUEzMDAxRUU0NEUgLyogRmxvd1RocmVhZENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpA
QCAtMjc3MzMsNiArMjc3NDAsNyBAQAogCQkJCUEwN0QzMzU1MTUyQjYzMEUwMDFCNjM5MyAvKiBK
U1dlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEwOENG
MTU0MTUyQjc3QjMwMDlDNTc3NSAvKiBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlDNUExRUE3QzE1MkJDRjA0MDA0RDAwQjYgLyogU2ltcGxpZnlNYXJr
dXBDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUQ3MkY2RDc5MTUzMTU5QTMwMDFFRTQ0
RSAvKiBGbG93VGhyZWFkQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQly
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCmluZGV4IGVjNWVmZmMuLjA0NWNlMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cApAQCAtNjksNiArNjksNyBAQAogI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRl
ICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZs
b3dUaHJlYWRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSAiRm9ybUFzc29jaWF0ZWRFbGVtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKQEAgLTEw
ODQsNyArMTA4NSw3IEBAIFBhc3NSZWZQdHI8V2ViS2l0TmFtZWRGbG93PiBEb2N1bWVudDo6d2Vi
a2l0R2V0Rmxvd0J5TmFtZShjb25zdCBTdHJpbmcmIGZsb3dOYW1lCiAgICAgICAgIHJldHVybiAw
OwogCiAgICAgaWYgKFJlbmRlclZpZXcqIHZpZXcgPSByZW5kZXJlcigpLT52aWV3KCkpCi0gICAg
ICAgIHJldHVybiB2aWV3LT5lbnN1cmVSZW5kZXJGbG93VGhyZWFkV2l0aE5hbWUoZmxvd05hbWUp
LT5lbnN1cmVOYW1lZEZsb3coKTsKKyAgICAgICAgcmV0dXJuIHZpZXctPmZsb3dUaHJlYWRDb250
cm9sbGVyKCktPmVuc3VyZVJlbmRlckZsb3dUaHJlYWRXaXRoTmFtZShmbG93TmFtZSktPmVuc3Vy
ZU5hbWVkRmxvdygpOwogICAgIHJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGVSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCAyZWY2ZmQ0Li4xNTM3ZGU3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTI3LDYgKzI3LDcgQEAK
ICNpbmNsdWRlICJOb2RlUmVuZGVyaW5nQ29udGV4dC5oIgogCiAjaW5jbHVkZSAiQ29udGFpbmVy
Tm9kZS5oIgorI2luY2x1ZGUgIkZsb3dUaHJlYWRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiSFRN
TENvbnRlbnRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTENvbnRlbnRTZWxlY3Rvci5oIgogI2lu
Y2x1ZGUgIkhUTUxOYW1lcy5oIgpAQCAtMzI2LDcgKzMyNyw3IEBAIHZvaWQgTm9kZVJlbmRlcmlu
Z0NvbnRleHQ6Om1vdmVUb0Zsb3dUaHJlYWRJZk5lZWRlZCgpCiAKICAgICBtX2Zsb3dUaHJlYWQg
PSBtX3N0eWxlLT5mbG93VGhyZWFkKCk7CiAgICAgQVNTRVJUKG1fbm9kZS0+ZG9jdW1lbnQoKS0+
cmVuZGVyVmlldygpKTsKLSAgICBtX3BhcmVudEZsb3dSZW5kZXJlciA9IG1fbm9kZS0+ZG9jdW1l
bnQoKS0+cmVuZGVyVmlldygpLT5lbnN1cmVSZW5kZXJGbG93VGhyZWFkV2l0aE5hbWUobV9mbG93
VGhyZWFkKTsKKyAgICBtX3BhcmVudEZsb3dSZW5kZXJlciA9IG1fbm9kZS0+ZG9jdW1lbnQoKS0+
cmVuZGVyVmlldygpLT5mbG93VGhyZWFkQ29udHJvbGxlcigpLT5lbnN1cmVSZW5kZXJGbG93VGhy
ZWFkV2l0aE5hbWUobV9mbG93VGhyZWFkKTsKIH0KIAogTm9kZVJlbmRlcmVyRmFjdG9yeTo6Tm9k
ZVJlbmRlcmVyRmFjdG9yeShOb2RlKiBub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uODgwMzBhNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5jcHAKQEAgLTAsMCArMSwxMDQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAg
ZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisg
KiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiAiQVMgSVMiIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCisgKiBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SCisgKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICog
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiRmxv
d1RocmVhZENvbnRyb2xsZXIuaCIKKworI2luY2x1ZGUgIlJlbmRlckZsb3dUaHJlYWQuaCIKKyNp
bmNsdWRlICJSZW5kZXJOYW1lZEZsb3dUaHJlYWQuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9t
aWNTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzT3duUHRyPEZsb3dUaHJl
YWRDb250cm9sbGVyPiBGbG93VGhyZWFkQ29udHJvbGxlcjo6Y3JlYXRlKFJlbmRlclZpZXcqIHZp
ZXcpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBGbG93VGhyZWFkQ29udHJvbGxlcih2aWV3
KSk7Cit9CisKK0Zsb3dUaHJlYWRDb250cm9sbGVyOjpGbG93VGhyZWFkQ29udHJvbGxlcihSZW5k
ZXJWaWV3KiB2aWV3KQorICAgIDogbV92aWV3KHZpZXcpCisgICAgLCBtX2N1cnJlbnRSZW5kZXJG
bG93VGhyZWFkKDApCisgICAgLCBtX2lzUmVuZGVyTmFtZWRGbG93VGhyZWFkT3JkZXJEaXJ0eShm
YWxzZSkKK3sKK30KKworRmxvd1RocmVhZENvbnRyb2xsZXI6On5GbG93VGhyZWFkQ29udHJvbGxl
cigpCit7Cit9CisKK1JlbmRlck5hbWVkRmxvd1RocmVhZCogRmxvd1RocmVhZENvbnRyb2xsZXI6
OmVuc3VyZVJlbmRlckZsb3dUaHJlYWRXaXRoTmFtZShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUp
Cit7CisgICAgaWYgKCFtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3QpCisgICAgICAgIG1fcmVu
ZGVyTmFtZWRGbG93VGhyZWFkTGlzdCA9IGFkb3B0UHRyKG5ldyBSZW5kZXJOYW1lZEZsb3dUaHJl
YWRMaXN0KCkpOworICAgIGVsc2UgeworICAgICAgICBmb3IgKFJlbmRlck5hbWVkRmxvd1RocmVh
ZExpc3Q6Oml0ZXJhdG9yIGl0ZXIgPSBtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3QtPmJlZ2lu
KCk7IGl0ZXIgIT0gbV9yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0LT5lbmQoKTsgKytpdGVyKSB7
CisgICAgICAgICAgICBSZW5kZXJOYW1lZEZsb3dUaHJlYWQqIGZsb3dSZW5kZXJlciA9ICppdGVy
OworICAgICAgICAgICAgaWYgKGZsb3dSZW5kZXJlci0+Zmxvd1RocmVhZE5hbWUoKSA9PSBuYW1l
KQorICAgICAgICAgICAgICAgIHJldHVybiBmbG93UmVuZGVyZXI7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBSZW5kZXJOYW1lZEZsb3dUaHJlYWQqIGZsb3dSZW5kZXJlciA9IG5ldyAobV92aWV3
LT5yZW5kZXJBcmVuYSgpKSBSZW5kZXJOYW1lZEZsb3dUaHJlYWQobV92aWV3LT5kb2N1bWVudCgp
LCBuYW1lKTsKKyAgICBmbG93UmVuZGVyZXItPnNldFN0eWxlKFJlbmRlckZsb3dUaHJlYWQ6OmNy
ZWF0ZUZsb3dUaHJlYWRTdHlsZShtX3ZpZXctPnN0eWxlKCkpKTsKKyAgICBtX3JlbmRlck5hbWVk
Rmxvd1RocmVhZExpc3QtPmFkZChmbG93UmVuZGVyZXIpOworCisgICAgLy8gS2VlcCB0aGUgZmxv
dyByZW5kZXJlciBhcyBhIGNoaWxkIG9mIFJlbmRlclZpZXcuCisgICAgbV92aWV3LT5hZGRDaGls
ZChmbG93UmVuZGVyZXIpOworCisgICAgc2V0SXNSZW5kZXJOYW1lZEZsb3dUaHJlYWRPcmRlckRp
cnR5KHRydWUpOworCisgICAgcmV0dXJuIGZsb3dSZW5kZXJlcjsKK30KKwordm9pZCBGbG93VGhy
ZWFkQ29udHJvbGxlcjo6bGF5b3V0UmVuZGVyTmFtZWRGbG93VGhyZWFkcygpCit7CisgICAgQVNT
RVJUKG1fcmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdCk7CisKKyAgICBpZiAoaXNSZW5kZXJOYW1l
ZEZsb3dUaHJlYWRPcmRlckRpcnR5KCkpIHsKKyAgICAgICAgLy8gQXJyYW5nZSB0aGUgdGhyZWFk
IGxpc3QgYWNjb3JkaW5nIHRvIGRlcGVuZGVuY2llcy4KKyAgICAgICAgUmVuZGVyTmFtZWRGbG93
VGhyZWFkTGlzdCBzb3J0ZWRMaXN0OworICAgICAgICBmb3IgKFJlbmRlck5hbWVkRmxvd1RocmVh
ZExpc3Q6Oml0ZXJhdG9yIGl0ZXIgPSBtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3QtPmJlZ2lu
KCk7IGl0ZXIgIT0gbV9yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0LT5lbmQoKTsgKytpdGVyKSB7
CisgICAgICAgICAgICBSZW5kZXJOYW1lZEZsb3dUaHJlYWQqIGZsb3dSZW5kZXJlciA9ICppdGVy
OworICAgICAgICAgICAgaWYgKHNvcnRlZExpc3QuY29udGFpbnMoZmxvd1JlbmRlcmVyKSkKKyAg
ICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGZsb3dSZW5kZXJlci0+cHVzaERl
cGVuZGVuY2llcyhzb3J0ZWRMaXN0KTsKKyAgICAgICAgICAgIHNvcnRlZExpc3QuYWRkKGZsb3dS
ZW5kZXJlcik7CisgICAgICAgIH0KKyAgICAgICAgbV9yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0
LT5zd2FwKHNvcnRlZExpc3QpOworICAgICAgICBzZXRJc1JlbmRlck5hbWVkRmxvd1RocmVhZE9y
ZGVyRGlydHkoZmFsc2UpOworICAgIH0KKworICAgIGZvciAoUmVuZGVyTmFtZWRGbG93VGhyZWFk
TGlzdDo6aXRlcmF0b3IgaXRlciA9IG1fcmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdC0+YmVnaW4o
KTsgaXRlciAhPSBtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3QtPmVuZCgpOyArK2l0ZXIpIHsK
KyAgICAgICAgUmVuZGVyTmFtZWRGbG93VGhyZWFkKiBmbG93UmVuZGVyZXIgPSAqaXRlcjsKKyAg
ICAgICAgZmxvd1JlbmRlcmVyLT5sYXlvdXRJZk5lZWRlZCgpOworICAgIH0KK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zs
b3dUaHJlYWRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVh
ZENvbnRyb2xsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMzc1MGNh
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb3dUaHJlYWRD
b250cm9sbGVyLmgKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBB
ZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICog
ICAgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAqICAgIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVCBIT0xERVIgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAqIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IKKyAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRgorICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIEZsb3dUaHJlYWRDb250cm9sbGVyX2gKKyNkZWZpbmUgRmxvd1RocmVhZENvbnRy
b2xsZXJfaAorCisjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgorI2luY2x1ZGUgPHd0Zi9MaXN0SGFz
aFNldC5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBSZW5kZXJGbG93VGhyZWFkOworY2xhc3MgUmVuZGVyTmFtZWRGbG93VGhyZWFkOwor
Cit0eXBlZGVmIExpc3RIYXNoU2V0PFJlbmRlck5hbWVkRmxvd1RocmVhZCo+IFJlbmRlck5hbWVk
Rmxvd1RocmVhZExpc3Q7CisKK2NsYXNzIEZsb3dUaHJlYWRDb250cm9sbGVyIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUGFzc093blB0cjxGbG93VGhyZWFkQ29udHJvbGxlcj4gY3JlYXRlKFJlbmRl
clZpZXcqKTsKKyAgICB+Rmxvd1RocmVhZENvbnRyb2xsZXIoKTsKKworICAgIFJlbmRlckZsb3dU
aHJlYWQqIGN1cnJlbnRSZW5kZXJGbG93VGhyZWFkKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50
UmVuZGVyRmxvd1RocmVhZDsgfQorICAgIHZvaWQgc2V0Q3VycmVudFJlbmRlckZsb3dUaHJlYWQo
UmVuZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCkgeyBtX2N1cnJlbnRSZW5kZXJGbG93VGhyZWFk
ID0gZmxvd1RocmVhZDsgfQorCisgICAgYm9vbCBpc1JlbmRlck5hbWVkRmxvd1RocmVhZE9yZGVy
RGlydHkoKSBjb25zdCB7IHJldHVybiBtX2lzUmVuZGVyTmFtZWRGbG93VGhyZWFkT3JkZXJEaXJ0
eTsgfQorICAgIHZvaWQgc2V0SXNSZW5kZXJOYW1lZEZsb3dUaHJlYWRPcmRlckRpcnR5KGJvb2wg
ZGlydHkpCisgICAgeworICAgICAgICBtX2lzUmVuZGVyTmFtZWRGbG93VGhyZWFkT3JkZXJEaXJ0
eSA9IGRpcnR5OworICAgICAgICBpZiAoZGlydHkpCisgICAgICAgICAgICBtX3ZpZXctPnNldE5l
ZWRzTGF5b3V0KHRydWUpOworICAgIH0KKworICAgIFJlbmRlck5hbWVkRmxvd1RocmVhZCogZW5z
dXJlUmVuZGVyRmxvd1RocmVhZFdpdGhOYW1lKGNvbnN0IEF0b21pY1N0cmluZyYpOworICAgIGNv
bnN0IFJlbmRlck5hbWVkRmxvd1RocmVhZExpc3QqIHJlbmRlck5hbWVkRmxvd1RocmVhZExpc3Qo
KSBjb25zdCB7IHJldHVybiBtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3QuZ2V0KCk7IH0KKyAg
ICBib29sIGhhc1JlbmRlck5hbWVkRmxvd1RocmVhZHMoKSBjb25zdCB7IHJldHVybiBtX3JlbmRl
ck5hbWVkRmxvd1RocmVhZExpc3QgJiYgIW1fcmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdC0+aXNF
bXB0eSgpOyB9CisgICAgdm9pZCBsYXlvdXRSZW5kZXJOYW1lZEZsb3dUaHJlYWRzKCk7CisKK3By
b3RlY3RlZDoKKyAgICBGbG93VGhyZWFkQ29udHJvbGxlcihSZW5kZXJWaWV3Kik7CisKK3ByaXZh
dGU6CisgICAgUmVuZGVyVmlldyogbV92aWV3OworICAgIFJlbmRlckZsb3dUaHJlYWQqIG1fY3Vy
cmVudFJlbmRlckZsb3dUaHJlYWQ7CisgICAgYm9vbCBtX2lzUmVuZGVyTmFtZWRGbG93VGhyZWFk
T3JkZXJEaXJ0eTsKKyAgICBPd25QdHI8UmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdD4gbV9yZW5k
ZXJOYW1lZEZsb3dUaHJlYWRMaXN0OworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcAppbmRleCBhNzg2NDUxLi41MWE1MDU4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwCkBA
IC0zMSw2ICszMSw3IEBACiAKICNpbmNsdWRlICJSZW5kZXJGbG93VGhyZWFkLmgiCiAKKyNpbmNs
dWRlICJGbG93VGhyZWFkQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXF1ZXN0Lmgi
CiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIk5vZGUuaCIKQEAgLTExNCwx
NCArMTE1LDE0IEBAIHB1YmxpYzoKICAgICAgICAgOiBtX3JlbmRlckZsb3dUaHJlYWQocmVuZGVy
Rmxvd1RocmVhZCkKICAgICB7CiAgICAgICAgIFJlbmRlclZpZXcqIHZpZXcgPSBtX3JlbmRlckZs
b3dUaHJlYWQtPnZpZXcoKTsKLSAgICAgICAgQVNTRVJUKCF2aWV3LT5jdXJyZW50UmVuZGVyRmxv
d1RocmVhZCgpKTsKLSAgICAgICAgdmlldy0+c2V0Q3VycmVudFJlbmRlckZsb3dUaHJlYWQobV9y
ZW5kZXJGbG93VGhyZWFkKTsKKyAgICAgICAgQVNTRVJUKCF2aWV3LT5mbG93VGhyZWFkQ29udHJv
bGxlcigpLT5jdXJyZW50UmVuZGVyRmxvd1RocmVhZCgpKTsKKyAgICAgICAgdmlldy0+Zmxvd1Ro
cmVhZENvbnRyb2xsZXIoKS0+c2V0Q3VycmVudFJlbmRlckZsb3dUaHJlYWQobV9yZW5kZXJGbG93
VGhyZWFkKTsKICAgICB9CiAgICAgfkN1cnJlbnRSZW5kZXJGbG93VGhyZWFkTWFpbnRhaW5lcigp
CiAgICAgewogICAgICAgICBSZW5kZXJWaWV3KiB2aWV3ID0gbV9yZW5kZXJGbG93VGhyZWFkLT52
aWV3KCk7Ci0gICAgICAgIEFTU0VSVCh2aWV3LT5jdXJyZW50UmVuZGVyRmxvd1RocmVhZCgpID09
IG1fcmVuZGVyRmxvd1RocmVhZCk7Ci0gICAgICAgIHZpZXctPnNldEN1cnJlbnRSZW5kZXJGbG93
VGhyZWFkKDApOworICAgICAgICBBU1NFUlQodmlldy0+Zmxvd1RocmVhZENvbnRyb2xsZXIoKS0+
Y3VycmVudFJlbmRlckZsb3dUaHJlYWQoKSA9PSBtX3JlbmRlckZsb3dUaHJlYWQpOworICAgICAg
ICB2aWV3LT5mbG93VGhyZWFkQ29udHJvbGxlcigpLT5zZXRDdXJyZW50UmVuZGVyRmxvd1RocmVh
ZCgwKTsKICAgICB9CiBwcml2YXRlOgogICAgIFJlbmRlckZsb3dUaHJlYWQqIG1fcmVuZGVyRmxv
d1RocmVhZDsKQEAgLTEzNCwxNCArMTM1LDE0IEBAIHB1YmxpYzoKICAgICAgICAgOiBtX3ZpZXco
dmlldykKICAgICAgICAgLCBtX3JlbmRlckZsb3dUaHJlYWQoMCkKICAgICB7Ci0gICAgICAgIG1f
cmVuZGVyRmxvd1RocmVhZCA9IG1fdmlldy0+Y3VycmVudFJlbmRlckZsb3dUaHJlYWQoKTsKKyAg
ICAgICAgbV9yZW5kZXJGbG93VGhyZWFkID0gbV92aWV3LT5mbG93VGhyZWFkQ29udHJvbGxlcigp
LT5jdXJyZW50UmVuZGVyRmxvd1RocmVhZCgpOwogICAgICAgICBpZiAobV9yZW5kZXJGbG93VGhy
ZWFkKQotICAgICAgICAgICAgdmlldy0+c2V0Q3VycmVudFJlbmRlckZsb3dUaHJlYWQoMCk7Cisg
ICAgICAgICAgICB2aWV3LT5mbG93VGhyZWFkQ29udHJvbGxlcigpLT5zZXRDdXJyZW50UmVuZGVy
Rmxvd1RocmVhZCgwKTsKICAgICB9CiAgICAgfkN1cnJlbnRSZW5kZXJGbG93VGhyZWFkRGlzYWJs
ZXIoKQogICAgIHsKICAgICAgICAgaWYgKG1fcmVuZGVyRmxvd1RocmVhZCkKLSAgICAgICAgICAg
IG1fdmlldy0+c2V0Q3VycmVudFJlbmRlckZsb3dUaHJlYWQobV9yZW5kZXJGbG93VGhyZWFkKTsK
KyAgICAgICAgICAgIG1fdmlldy0+Zmxvd1RocmVhZENvbnRyb2xsZXIoKS0+c2V0Q3VycmVudFJl
bmRlckZsb3dUaHJlYWQobV9yZW5kZXJGbG93VGhyZWFkKTsKICAgICB9CiBwcml2YXRlOgogICAg
IFJlbmRlclZpZXcqIG1fdmlldzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck5hbWVkRmxvd1RocmVhZC5jcHAKaW5kZXggZGFiNWQ3Yi4uOTQ4ZGViMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5jcHAKQEAg
LTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZW5kZXJOYW1l
ZEZsb3dUaHJlYWQuaCIKIAorI2luY2x1ZGUgIkZsb3dUaHJlYWRDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSAiUmVuZGVyUmVnaW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUg
IldlYktpdE5hbWVkRmxvdy5oIgpAQCAtNDgsNyArNDksNyBAQCBSZW5kZXJPYmplY3QqIFJlbmRl
ck5hbWVkRmxvd1RocmVhZDo6bmV4dFJlbmRlcmVyRm9yTm9kZShOb2RlKiBub2RlKSBjb25zdAog
ewogICAgIEZsb3dUaHJlYWRDaGlsZExpc3Q6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9mbG93VGhy
ZWFkQ2hpbGRMaXN0LmJlZ2luKCk7CiAgICAgRmxvd1RocmVhZENoaWxkTGlzdDo6Y29uc3RfaXRl
cmF0b3IgZW5kID0gbV9mbG93VGhyZWFkQ2hpbGRMaXN0LmVuZCgpOwotICAgIAorCiAgICAgZm9y
ICg7IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICBSZW5kZXJPYmplY3QqIGNoaWxkID0gKml0
OwogICAgICAgICBBU1NFUlQoY2hpbGQtPm5vZGUoKSk7CkBAIC01Niw3ICs1Nyw3IEBAIFJlbmRl
ck9iamVjdCogUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpuZXh0UmVuZGVyZXJGb3JOb2RlKE5vZGUq
IG5vZGUpIGNvbnN0CiAgICAgICAgIGlmIChwb3NpdGlvbiAmIE5vZGU6OkRPQ1VNRU5UX1BPU0lU
SU9OX0ZPTExPV0lORykKICAgICAgICAgICAgIHJldHVybiBjaGlsZDsKICAgICB9Ci0gICAgCisK
ICAgICByZXR1cm4gMDsKIH0KIApAQCAtNjQsMTEgKzY1LDExIEBAIFJlbmRlck9iamVjdCogUmVu
ZGVyTmFtZWRGbG93VGhyZWFkOjpwcmV2aW91c1JlbmRlcmVyRm9yTm9kZShOb2RlKiBub2RlKSBj
b25zdAogewogICAgIGlmIChtX2Zsb3dUaHJlYWRDaGlsZExpc3QuaXNFbXB0eSgpKQogICAgICAg
ICByZXR1cm4gMDsKLSAgICAKKwogICAgIEZsb3dUaHJlYWRDaGlsZExpc3Q6OmNvbnN0X2l0ZXJh
dG9yIGJlZ2luID0gbV9mbG93VGhyZWFkQ2hpbGRMaXN0LmJlZ2luKCk7CiAgICAgRmxvd1RocmVh
ZENoaWxkTGlzdDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9mbG93VGhyZWFkQ2hpbGRMaXN0LmVu
ZCgpOwogICAgIEZsb3dUaHJlYWRDaGlsZExpc3Q6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gZW5kOwot
ICAgIAorCiAgICAgZG8gewogICAgICAgICAtLWl0OwogICAgICAgICBSZW5kZXJPYmplY3QqIGNo
aWxkID0gKml0OwpAQCAtNzcsNyArNzgsNyBAQCBSZW5kZXJPYmplY3QqIFJlbmRlck5hbWVkRmxv
d1RocmVhZDo6cHJldmlvdXNSZW5kZXJlckZvck5vZGUoTm9kZSogbm9kZSkgY29uc3QKICAgICAg
ICAgaWYgKHBvc2l0aW9uICYgTm9kZTo6RE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HKQogICAg
ICAgICAgICAgcmV0dXJuIGNoaWxkOwogICAgIH0gd2hpbGUgKGl0ICE9IGJlZ2luKTsKLSAgICAK
KwogICAgIHJldHVybiAwOwogfQogCkBAIC0xODAsNyArMTgxLDcgQEAgdm9pZCBSZW5kZXJOYW1l
ZEZsb3dUaHJlYWQ6OnJlbW92ZVJlZ2lvbkZyb21UaHJlYWQoUmVuZGVyUmVnaW9uKiByZW5kZXJS
ZWdpb24pCiAgICAgICAgIH0KICAgICAgICAgcmVtb3ZlRGVwZW5kZW5jeU9uRmxvd1RocmVhZChy
ZW5kZXJSZWdpb24tPnBhcmVudE5hbWVkRmxvd1RocmVhZCgpKTsKICAgICB9Ci0gICAgCisKICAg
ICBpbnZhbGlkYXRlUmVnaW9ucygpOwogfQogCkBAIC0yMjAsNyArMjIxLDcgQEAgdm9pZCBSZW5k
ZXJOYW1lZEZsb3dUaHJlYWQ6OmFkZERlcGVuZGVuY3lPbkZsb3dUaHJlYWQoUmVuZGVyTmFtZWRG
bG93VGhyZWFkKiBvdGgKICAgICBSZW5kZXJOYW1lZEZsb3dUaHJlYWRDb3VudGVkU2V0OjpBZGRS
ZXN1bHQgcmVzdWx0ID0gbV9sYXlvdXRCZWZvcmVUaHJlYWRzU2V0LmFkZChvdGhlckZsb3dUaHJl
YWQpOwogICAgIGlmIChyZXN1bHQuaXNOZXdFbnRyeSkgewogICAgICAgICAvLyBUaGlzIGlzIHRo
ZSBmaXJzdCB0aW1lIHdlIHNlZSB0aGlzIGRlcGVuZGVuY3kuIE1ha2Ugc3VyZSB3ZSByZWNhbGN1
bGF0ZSBhbGwgdGhlIGRlcGVuZGVuY2llcy4KLSAgICAgICAgdmlldygpLT5zZXRJc1JlbmRlck5h
bWVkRmxvd1RocmVhZE9yZGVyRGlydHkodHJ1ZSk7CisgICAgICAgIHZpZXcoKS0+Zmxvd1RocmVh
ZENvbnRyb2xsZXIoKS0+c2V0SXNSZW5kZXJOYW1lZEZsb3dUaHJlYWRPcmRlckRpcnR5KHRydWUp
OwogICAgIH0KIH0KIApAQCAtMjI5LDcgKzIzMCw3IEBAIHZvaWQgUmVuZGVyTmFtZWRGbG93VGhy
ZWFkOjpyZW1vdmVEZXBlbmRlbmN5T25GbG93VGhyZWFkKFJlbmRlck5hbWVkRmxvd1RocmVhZCoK
ICAgICBib29sIHJlbW92ZWQgPSBtX2xheW91dEJlZm9yZVRocmVhZHNTZXQucmVtb3ZlKG90aGVy
Rmxvd1RocmVhZCk7CiAgICAgaWYgKHJlbW92ZWQpIHsKICAgICAgICAgY2hlY2tJbnZhbGlkUmVn
aW9ucygpOwotICAgICAgICB2aWV3KCktPnNldElzUmVuZGVyTmFtZWRGbG93VGhyZWFkT3JkZXJE
aXJ0eSh0cnVlKTsKKyAgICAgICAgdmlldygpLT5mbG93VGhyZWFkQ29udHJvbGxlcigpLT5zZXRJ
c1JlbmRlck5hbWVkRmxvd1RocmVhZE9yZGVyRGlydHkodHJ1ZSk7CiAgICAgfQogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmgKaW5kZXgg
Y2U4YmVmZC4uM2RhOWQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck5hbWVkRmxvd1RocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJOYW1lZEZsb3dUaHJlYWQuaApAQCAtNDMsOSArNDMsOSBAQCB0eXBlZGVmIEhhc2hDb3VudGVk
U2V0PFJlbmRlck5hbWVkRmxvd1RocmVhZCo+IFJlbmRlck5hbWVkRmxvd1RocmVhZENvdW50ZWRT
ZXQ7CiBjbGFzcyBSZW5kZXJOYW1lZEZsb3dUaHJlYWQgOiBwdWJsaWMgUmVuZGVyRmxvd1RocmVh
ZCB7CiBwdWJsaWM6CiAgICAgUmVuZGVyTmFtZWRGbG93VGhyZWFkKE5vZGUqLCBjb25zdCBBdG9t
aWNTdHJpbmcmKTsKLSAgICAKKwogICAgIEF0b21pY1N0cmluZyBmbG93VGhyZWFkTmFtZSgpIGNv
bnN0IHsgcmV0dXJuIG1fZmxvd1RocmVhZE5hbWU7IH0KLSAgICAKKwogICAgIFJlbmRlck9iamVj
dCogbmV4dFJlbmRlcmVyRm9yTm9kZShOb2RlKikgY29uc3Q7CiAgICAgUmVuZGVyT2JqZWN0KiBw
cmV2aW91c1JlbmRlcmVyRm9yTm9kZShOb2RlKikgY29uc3Q7CiAKQEAgLTU3LDcgKzU3LDcgQEAg
cHVibGljOgogI2VuZGlmCiAKICAgICB2b2lkIHB1c2hEZXBlbmRlbmNpZXMoUmVuZGVyTmFtZWRG
bG93VGhyZWFkTGlzdCYpOwotICAgIAorCiAgICAgdmlydHVhbCB2b2lkIGFkZFJlZ2lvblRvVGhy
ZWFkKFJlbmRlclJlZ2lvbiopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVSZWdp
b25Gcm9tVGhyZWFkKFJlbmRlclJlZ2lvbiopIE9WRVJSSURFOwogCkBAIC03NSw3ICs3NSw3IEBA
IHByaXZhdGU6CiBwcml2YXRlOgogICAgIC8vIFRoZSBuYW1lIG9mIHRoZSBmbG93IHRocmVhZCBh
cyBzcGVjaWZpZWQgaW4gQ1NTLgogICAgIEF0b21pY1N0cmluZyBtX2Zsb3dUaHJlYWROYW1lOwot
ICAgICAgICAKKwogICAgIC8vIE9ic2VydmVyIGZsb3cgdGhyZWFkcyBoYXZlIGludmFsaWQgcmVn
aW9ucyB0aGF0IGRlcGVuZCBvbiB0aGUgc3RhdGUgb2YgdGhpcyB0aHJlYWQKICAgICAvLyB0byBy
ZS12YWxpZGF0ZSB0aGVpciByZWdpb25zLiBLZWVwaW5nIGEgc2V0IG9mIG9ic2VydmVyIHRocmVh
ZHMgbWFrZSBpdCBlYXN5CiAgICAgLy8gdG8gbm90aWZ5IHRoZW0gd2hlbiBhIHJlZ2lvbiB3YXMg
cmVtb3ZlZCBmcm9tIHRoaXMgZmxvdy4KQEAgLTg5LDcgKzg5LDcgQEAgcHJpdmF0ZToKICAgICAv
LyBIb2xkcyB0aGUgc29ydGVkIGNoaWxkcmVuIG9mIGEgbmFtZWQgZmxvdy4gVGhpcyBpcyB0aGUg
b25seSB3YXkgd2UgY2FuIGdldCB0aGUgb3JkZXJpbmcgcmlnaHQuCiAgICAgdHlwZWRlZiBMaXN0
SGFzaFNldDxSZW5kZXJPYmplY3QqPiBGbG93VGhyZWFkQ2hpbGRMaXN0OwogICAgIEZsb3dUaHJl
YWRDaGlsZExpc3QgbV9mbG93VGhyZWFkQ2hpbGRMaXN0OwotICAgIAorCiAgICAgLy8gVGhlIERP
TSBPYmplY3QgdGhhdCByZXByZXNlbnRzIGEgbmFtZWQgZmxvdy4KICAgICBSZWZQdHI8V2ViS2l0
TmFtZWRGbG93PiBtX25hbWVkRmxvdzsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuY3BwCmluZGV4IDdhMjE0ZDAuLjc2ZTYzNTUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiRGFz
aEFycmF5LmgiCiAjaW5jbHVkZSAiRWRpdGluZ0JvdW5kYXJ5LmgiCiAjaW5jbHVkZSAiRmxvYXRR
dWFkLmgiCisjaW5jbHVkZSAiRmxvd1RocmVhZENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFt
ZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5o
IgpAQCAtMTYxLDcgKzE2Miw3IEBAIFJlbmRlck9iamVjdCogUmVuZGVyT2JqZWN0OjpjcmVhdGVP
YmplY3QoTm9kZSogbm9kZSwgUmVuZGVyU3R5bGUqIHN0eWxlKQogICAgIGNhc2UgQ09NUEFDVDoK
ICAgICAgICAgLy8gT25seSBub24tcmVwbGFjZWQgYmxvY2sgZWxlbWVudHMgY2FuIGJlY29tZSBh
IHJlZ2lvbi4KICAgICAgICAgaWYgKGRvYy0+Y3NzUmVnaW9uc0VuYWJsZWQoKSAmJiAhc3R5bGUt
PnJlZ2lvblRocmVhZCgpLmlzRW1wdHkoKSAmJiBkb2MtPnJlbmRlclZpZXcoKSkKLSAgICAgICAg
ICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJSZWdpb24obm9kZSwgZG9jLT5yZW5kZXJWaWV3
KCktPmVuc3VyZVJlbmRlckZsb3dUaHJlYWRXaXRoTmFtZShzdHlsZS0+cmVnaW9uVGhyZWFkKCkp
KTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJSZWdpb24obm9kZSwgZG9j
LT5yZW5kZXJWaWV3KCktPmZsb3dUaHJlYWRDb250cm9sbGVyKCktPmVuc3VyZVJlbmRlckZsb3dU
aHJlYWRXaXRoTmFtZShzdHlsZS0+cmVnaW9uVGhyZWFkKCkpKTsKICAgICAgICAgaWYgKCghc3R5
bGUtPmhhc0F1dG9Db2x1bW5Db3VudCgpIHx8ICFzdHlsZS0+aGFzQXV0b0NvbHVtbldpZHRoKCkp
ICYmIGRvYy0+cmVnaW9uQmFzZWRDb2x1bW5zRW5hYmxlZCgpKQogICAgICAgICAgICAgcmV0dXJu
IG5ldyAoYXJlbmEpIFJlbmRlck11bHRpQ29sdW1uQmxvY2sobm9kZSk7CiAgICAgICAgIHJldHVy
biBuZXcgKGFyZW5hKSBSZW5kZXJCbG9jayhub2RlKTsKQEAgLTU4OCw3ICs1ODksNyBAQCBSZW5k
ZXJGbG93VGhyZWFkKiBSZW5kZXJPYmplY3Q6OmVuY2xvc2luZ1JlbmRlckZsb3dUaHJlYWQoKSBj
b25zdAogICAgICAgICByZXR1cm4gMDsKICAgICAKICAgICAvLyBTZWUgaWYgd2UgaGF2ZSB0aGUg
dGhyZWFkIGNhY2hlZCBiZWNhdXNlIHdlJ3JlIGluIHRoZSBtaWRkbGUgb2YgbGF5b3V0LgotICAg
IFJlbmRlckZsb3dUaHJlYWQqIGZsb3dUaHJlYWQgPSB2aWV3KCktPmN1cnJlbnRSZW5kZXJGbG93
VGhyZWFkKCk7CisgICAgUmVuZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCA9IHZpZXcoKS0+Zmxv
d1RocmVhZENvbnRyb2xsZXIoKS0+Y3VycmVudFJlbmRlckZsb3dUaHJlYWQoKTsKICAgICBpZiAo
Zmxvd1RocmVhZCkKICAgICAgICAgcmV0dXJuIGZsb3dUaHJlYWQ7CiAgICAgCkBAIC0yMzEzLDcg
KzIzMTQsNyBAQCB2b2lkIFJlbmRlck9iamVjdDo6d2lsbEJlRGVzdHJveWVkKCkKICNpZm5kZWYg
TkRFQlVHCiAgICAgaWYgKCFkb2N1bWVudEJlaW5nRGVzdHJveWVkKCkgJiYgdmlldygpICYmIHZp
ZXcoKS0+aGFzUmVuZGVyTmFtZWRGbG93VGhyZWFkcygpKSB7CiAgICAgICAgIC8vIEFmdGVyIHJl
bW92ZSwgdGhlIG9iamVjdCBhbmQgdGhlIGFzc29jaWF0ZWQgaW5mb3JtYXRpb24gc2hvdWxkIG5v
dCBiZSBpbiBhbnkgZmxvdyB0aHJlYWQuCi0gICAgICAgIGNvbnN0IFJlbmRlck5hbWVkRmxvd1Ro
cmVhZExpc3QqIGZsb3dUaHJlYWRMaXN0ID0gdmlldygpLT5yZW5kZXJOYW1lZEZsb3dUaHJlYWRM
aXN0KCk7CisgICAgICAgIGNvbnN0IFJlbmRlck5hbWVkRmxvd1RocmVhZExpc3QqIGZsb3dUaHJl
YWRMaXN0ID0gdmlldygpLT5mbG93VGhyZWFkQ29udHJvbGxlcigpLT5yZW5kZXJOYW1lZEZsb3dU
aHJlYWRMaXN0KCk7CiAgICAgICAgIGZvciAoUmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdDo6Y29u
c3RfaXRlcmF0b3IgaXRlciA9IGZsb3dUaHJlYWRMaXN0LT5iZWdpbigpOyBpdGVyICE9IGZsb3dU
aHJlYWRMaXN0LT5lbmQoKTsgKytpdGVyKSB7CiAgICAgICAgICAgICBjb25zdCBSZW5kZXJOYW1l
ZEZsb3dUaHJlYWQqIHJlbmRlckZsb3dUaHJlYWQgPSAqaXRlcjsKICAgICAgICAgICAgIEFTU0VS
VCghcmVuZGVyRmxvd1RocmVhZC0+aGFzQ2hpbGQodGhpcykpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCmluZGV4IGVmZjJkMWEuLjI2NWI1OWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKQEAgLTI3
LDYgKzI3LDcgQEAKICNpbmNsdWRlICJSZW5kZXJUcmVlQXNUZXh0LmgiCiAKICNpbmNsdWRlICJE
b2N1bWVudC5oIgorI2luY2x1ZGUgIkZsb3dUaHJlYWRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
RnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIkZyYW1lVmll
dy5oIgpAQCAtNjQ1LDEwICs2NDYsMTEgQEAgc3RhdGljIHZvaWQgd3JpdGUoVGV4dFN0cmVhbSYg
dHMsIFJlbmRlckxheWVyJiBsLAogc3RhdGljIHZvaWQgd3JpdGVSZW5kZXJOYW1lZEZsb3dUaHJl
YWRzKFRleHRTdHJlYW0mIHRzLCBSZW5kZXJWaWV3KiByZW5kZXJWaWV3LCBjb25zdCBSZW5kZXJM
YXllciogcm9vdExheWVyLAogICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UmVjdCYg
cGFpbnRSZWN0LCBpbnQgaW5kZW50LCBSZW5kZXJBc1RleHRCZWhhdmlvciBiZWhhdmlvcikKIHsK
LSAgICBjb25zdCBSZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0KiBsaXN0ID0gcmVuZGVyVmlldy0+
cmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdCgpOwotICAgIGlmICghbGlzdCB8fCBsaXN0LT5pc0Vt
cHR5KCkpCisgICAgaWYgKCFyZW5kZXJWaWV3LT5oYXNSZW5kZXJOYW1lZEZsb3dUaHJlYWRzKCkp
CiAgICAgICAgIHJldHVybjsKIAorICAgIGNvbnN0IFJlbmRlck5hbWVkRmxvd1RocmVhZExpc3Qq
IGxpc3QgPSByZW5kZXJWaWV3LT5mbG93VGhyZWFkQ29udHJvbGxlcigpLT5yZW5kZXJOYW1lZEZs
b3dUaHJlYWRMaXN0KCk7CisKICAgICB3cml0ZUluZGVudCh0cywgaW5kZW50KTsKICAgICB0cyA8
PCAiRmxvdyBUaHJlYWRzXG4iOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5j
cHAKaW5kZXggZGQ3YjY1Yi4uNGJhMmFmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJWaWV3LmNwcApAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5j
bHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkZsb2F0UXVhZC5oIgorI2luY2x1ZGUgIkZsb3dU
aHJlYWRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZp
ZXcuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKQEAgLTU0LDEwICs1NSw4IEBAIFJl
bmRlclZpZXc6OlJlbmRlclZpZXcoTm9kZSogbm9kZSwgRnJhbWVWaWV3KiB2aWV3KQogICAgICwg
bV9tYXhpbWFsT3V0bGluZVNpemUoMCkKICAgICAsIG1fcGFnZUxvZ2ljYWxIZWlnaHQoMCkKICAg
ICAsIG1fcGFnZUxvZ2ljYWxIZWlnaHRDaGFuZ2VkKGZhbHNlKQotICAgICwgbV9pc1JlbmRlck5h
bWVkRmxvd1RocmVhZE9yZGVyRGlydHkoZmFsc2UpCiAgICAgLCBtX2xheW91dFN0YXRlKDApCiAg
ICAgLCBtX2xheW91dFN0YXRlRGlzYWJsZUNvdW50KDApCi0gICAgLCBtX2N1cnJlbnRSZW5kZXJG
bG93VGhyZWFkKDApCiB7CiAgICAgLy8gQ2xlYXIgb3VyIGFub255bW91cyBiaXQsIHNldCBiZWNh
dXNlIFJlbmRlck9iamVjdCBhc3N1bWVzCiAgICAgLy8gYW55IHJlbmRlcmVyIHdpdGggZG9jdW1l
bnQgYXMgdGhlIG5vZGUgaXMgYW5vbnltb3VzLgpAQCAtMTM4LDcgKzEzNyw3IEBAIHZvaWQgUmVu
ZGVyVmlldzo6bGF5b3V0KCkKICAgICBpZiAobmVlZHNMYXlvdXQoKSkgewogICAgICAgICBSZW5k
ZXJCbG9jazo6bGF5b3V0KCk7CiAgICAgICAgIGlmIChoYXNSZW5kZXJOYW1lZEZsb3dUaHJlYWRz
KCkpCi0gICAgICAgICAgICBsYXlvdXRSZW5kZXJOYW1lZEZsb3dUaHJlYWRzKCk7CisgICAgICAg
ICAgICBmbG93VGhyZWFkQ29udHJvbGxlcigpLT5sYXlvdXRSZW5kZXJOYW1lZEZsb3dUaHJlYWRz
KCk7CiAgICAgfQogCiAgICAgQVNTRVJUKGxheW91dERlbHRhKCkgPT0gTGF5b3V0U2l6ZSgpKTsK
QEAgLTg5Niw1MCArODk1LDE3IEBAIHZvaWQgUmVuZGVyVmlldzo6c3R5bGVEaWRDaGFuZ2UoU3R5
bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsCiAgICAgfQogfQog
Ci1SZW5kZXJOYW1lZEZsb3dUaHJlYWQqIFJlbmRlclZpZXc6OmVuc3VyZVJlbmRlckZsb3dUaHJl
YWRXaXRoTmFtZShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpCitib29sIFJlbmRlclZpZXc6Omhh
c1JlbmRlck5hbWVkRmxvd1RocmVhZHMoKSBjb25zdAogewotICAgIGlmICghbV9yZW5kZXJOYW1l
ZEZsb3dUaHJlYWRMaXN0KQotICAgICAgICBtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3QgPSBh
ZG9wdFB0cihuZXcgUmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdCgpKTsKLSAgICBlbHNlIHsKLSAg
ICAgICAgZm9yIChSZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0OjppdGVyYXRvciBpdGVyID0gbV9y
ZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0LT5iZWdpbigpOyBpdGVyICE9IG1fcmVuZGVyTmFtZWRG
bG93VGhyZWFkTGlzdC0+ZW5kKCk7ICsraXRlcikgewotICAgICAgICAgICAgUmVuZGVyTmFtZWRG
bG93VGhyZWFkKiBmbG93UmVuZGVyZXIgPSAqaXRlcjsKLSAgICAgICAgICAgIGlmIChmbG93UmVu
ZGVyZXItPmZsb3dUaHJlYWROYW1lKCkgPT0gbmFtZSkKLSAgICAgICAgICAgICAgICByZXR1cm4g
Zmxvd1JlbmRlcmVyOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgUmVuZGVyTmFtZWRGbG93VGhy
ZWFkKiBmbG93UmVuZGVyZXIgPSBuZXcgKHJlbmRlckFyZW5hKCkpIFJlbmRlck5hbWVkRmxvd1Ro
cmVhZChkb2N1bWVudCgpLCBuYW1lKTsKLSAgICBmbG93UmVuZGVyZXItPnNldFN0eWxlKFJlbmRl
ckZsb3dUaHJlYWQ6OmNyZWF0ZUZsb3dUaHJlYWRTdHlsZShzdHlsZSgpKSk7Ci0gICAgYWRkQ2hp
bGQoZmxvd1JlbmRlcmVyKTsKLQotICAgIG1fcmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdC0+YWRk
KGZsb3dSZW5kZXJlcik7Ci0gICAgc2V0SXNSZW5kZXJOYW1lZEZsb3dUaHJlYWRPcmRlckRpcnR5
KHRydWUpOwotCi0gICAgcmV0dXJuIGZsb3dSZW5kZXJlcjsKKyAgICByZXR1cm4gbV9mbG93VGhy
ZWFkQ29udHJvbGxlciAmJiBtX2Zsb3dUaHJlYWRDb250cm9sbGVyLT5oYXNSZW5kZXJOYW1lZEZs
b3dUaHJlYWRzKCk7CiB9CiAKLXZvaWQgUmVuZGVyVmlldzo6bGF5b3V0UmVuZGVyTmFtZWRGbG93
VGhyZWFkcygpCitGbG93VGhyZWFkQ29udHJvbGxlciogUmVuZGVyVmlldzo6Zmxvd1RocmVhZENv
bnRyb2xsZXIoKQogewotICAgIEFTU0VSVChtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3QpOwor
ICAgIGlmICghbV9mbG93VGhyZWFkQ29udHJvbGxlcikKKyAgICAgICAgbV9mbG93VGhyZWFkQ29u
dHJvbGxlciA9IEZsb3dUaHJlYWRDb250cm9sbGVyOjpjcmVhdGUodGhpcyk7CiAKLSAgICBpZiAo
aXNSZW5kZXJOYW1lZEZsb3dUaHJlYWRPcmRlckRpcnR5KCkpIHsKLSAgICAgICAgLy8gQXJyYW5n
ZSB0aGUgdGhyZWFkIGxpc3QgYWNjb3JkaW5nIHRvIGRlcGVuZGVuY2llcy4KLSAgICAgICAgUmVu
ZGVyTmFtZWRGbG93VGhyZWFkTGlzdCBzb3J0ZWRMaXN0OwotICAgICAgICBmb3IgKFJlbmRlck5h
bWVkRmxvd1RocmVhZExpc3Q6Oml0ZXJhdG9yIGl0ZXIgPSBtX3JlbmRlck5hbWVkRmxvd1RocmVh
ZExpc3QtPmJlZ2luKCk7IGl0ZXIgIT0gbV9yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0LT5lbmQo
KTsgKytpdGVyKSB7Ci0gICAgICAgICAgICBSZW5kZXJOYW1lZEZsb3dUaHJlYWQqIGZsb3dSZW5k
ZXJlciA9ICppdGVyOwotICAgICAgICAgICAgaWYgKHNvcnRlZExpc3QuY29udGFpbnMoZmxvd1Jl
bmRlcmVyKSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGZsb3dSZW5k
ZXJlci0+cHVzaERlcGVuZGVuY2llcyhzb3J0ZWRMaXN0KTsKLSAgICAgICAgICAgIHNvcnRlZExp
c3QuYWRkKGZsb3dSZW5kZXJlcik7Ci0gICAgICAgIH0KLSAgICAgICAgbV9yZW5kZXJOYW1lZEZs
b3dUaHJlYWRMaXN0LT5zd2FwKHNvcnRlZExpc3QpOwotICAgICAgICBzZXRJc1JlbmRlck5hbWVk
Rmxvd1RocmVhZE9yZGVyRGlydHkoZmFsc2UpOwotICAgIH0KLQotICAgIGZvciAoUmVuZGVyTmFt
ZWRGbG93VGhyZWFkTGlzdDo6aXRlcmF0b3IgaXRlciA9IG1fcmVuZGVyTmFtZWRGbG93VGhyZWFk
TGlzdC0+YmVnaW4oKTsgaXRlciAhPSBtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3QtPmVuZCgp
OyArK2l0ZXIpIHsKLSAgICAgICAgUmVuZGVyTmFtZWRGbG93VGhyZWFkKiBmbG93UmVuZGVyZXIg
PSAqaXRlcjsKLSAgICAgICAgZmxvd1JlbmRlcmVyLT5sYXlvdXRJZk5lZWRlZCgpOwotICAgIH0K
KyAgICByZXR1cm4gbV9mbG93VGhyZWFkQ29udHJvbGxlci5nZXQoKTsKIH0KIAogUmVuZGVyQmxv
Y2s6OkludGVydmFsQXJlbmEqIFJlbmRlclZpZXc6OmludGVydmFsQXJlbmEoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKaW5kZXggMDIxYTc5ZC4uYmI4MmMxOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCkBAIC0yNiwyMCArMjYsMTcgQEAKICNpbmNsdWRl
ICJMYXlvdXRTdGF0ZS5oIgogI2luY2x1ZGUgIlBPREZyZWVMaXN0QXJlbmEuaCIKICNpbmNsdWRl
ICJSZW5kZXJCbG9jay5oIgotI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgogI2luY2x1ZGUg
PHd0Zi9Pd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBSZW5kZXJOYW1l
ZEZsb3dUaHJlYWQ7CitjbGFzcyBGbG93VGhyZWFkQ29udHJvbGxlcjsKIGNsYXNzIFJlbmRlcldp
ZGdldDsKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIGNsYXNzIFJlbmRlckxh
eWVyQ29tcG9zaXRvcjsKICNlbmRpZgogCi10eXBlZGVmIExpc3RIYXNoU2V0PFJlbmRlck5hbWVk
Rmxvd1RocmVhZCo+IFJlbmRlck5hbWVkRmxvd1RocmVhZExpc3Q7Ci0KIGNsYXNzIFJlbmRlclZp
ZXcgOiBwdWJsaWMgUmVuZGVyQmxvY2sgewogcHVibGljOgogICAgIFJlbmRlclZpZXcoTm9kZSos
IEZyYW1lVmlldyopOwpAQCAtMTcyLDIwICsxNjksOCBAQCBwdWJsaWM6CiAKICAgICBJbnRSZWN0
IGRvY3VtZW50UmVjdCgpIGNvbnN0OwogCi0gICAgUmVuZGVyTmFtZWRGbG93VGhyZWFkKiBlbnN1
cmVSZW5kZXJGbG93VGhyZWFkV2l0aE5hbWUoY29uc3QgQXRvbWljU3RyaW5nJik7Ci0gICAgYm9v
bCBoYXNSZW5kZXJOYW1lZEZsb3dUaHJlYWRzKCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJOYW1l
ZEZsb3dUaHJlYWRMaXN0ICYmICFtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3QtPmlzRW1wdHko
KTsgfQotICAgIHZvaWQgbGF5b3V0UmVuZGVyTmFtZWRGbG93VGhyZWFkcygpOwotICAgIGJvb2wg
aXNSZW5kZXJOYW1lZEZsb3dUaHJlYWRPcmRlckRpcnR5KCkgY29uc3QgeyByZXR1cm4gbV9pc1Jl
bmRlck5hbWVkRmxvd1RocmVhZE9yZGVyRGlydHk7IH0KLSAgICB2b2lkIHNldElzUmVuZGVyTmFt
ZWRGbG93VGhyZWFkT3JkZXJEaXJ0eShib29sIGRpcnR5KQotICAgIHsKLSAgICAgICAgbV9pc1Jl
bmRlck5hbWVkRmxvd1RocmVhZE9yZGVyRGlydHkgPSBkaXJ0eTsKLSAgICAgICAgaWYgKGRpcnR5
KQotICAgICAgICAgICAgc2V0TmVlZHNMYXlvdXQodHJ1ZSk7Ci0gICAgfQotICAgIGNvbnN0IFJl
bmRlck5hbWVkRmxvd1RocmVhZExpc3QqIHJlbmRlck5hbWVkRmxvd1RocmVhZExpc3QoKSBjb25z
dCB7IHJldHVybiBtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3QuZ2V0KCk7IH0KLQotICAgIFJl
bmRlckZsb3dUaHJlYWQqIGN1cnJlbnRSZW5kZXJGbG93VGhyZWFkKCkgY29uc3QgeyByZXR1cm4g
bV9jdXJyZW50UmVuZGVyRmxvd1RocmVhZDsgfQotICAgIHZvaWQgc2V0Q3VycmVudFJlbmRlckZs
b3dUaHJlYWQoUmVuZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCkgeyBtX2N1cnJlbnRSZW5kZXJG
bG93VGhyZWFkID0gZmxvd1RocmVhZDsgfQorICAgIGJvb2wgaGFzUmVuZGVyTmFtZWRGbG93VGhy
ZWFkcygpIGNvbnN0OworICAgIEZsb3dUaHJlYWRDb250cm9sbGVyKiBmbG93VGhyZWFkQ29udHJv
bGxlcigpOwogCiAgICAgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0
IFJlbmRlclN0eWxlKiBvbGRTdHlsZSk7CiAKQEAgLTI3MSwxNCArMjU2LDEyIEBAIHByb3RlY3Rl
ZDoKIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9wYWdlTG9naWNhbEhlaWdodDsKICAgICBib29s
IG1fcGFnZUxvZ2ljYWxIZWlnaHRDaGFuZ2VkOwotICAgIGJvb2wgbV9pc1JlbmRlck5hbWVkRmxv
d1RocmVhZE9yZGVyRGlydHk7CiAgICAgTGF5b3V0U3RhdGUqIG1fbGF5b3V0U3RhdGU7CiAgICAg
dW5zaWduZWQgbV9sYXlvdXRTdGF0ZURpc2FibGVDb3VudDsKICNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCiAgICAgT3duUHRyPFJlbmRlckxheWVyQ29tcG9zaXRvcj4gbV9jb21wb3Np
dG9yOwogI2VuZGlmCi0gICAgT3duUHRyPFJlbmRlck5hbWVkRmxvd1RocmVhZExpc3Q+IG1fcmVu
ZGVyTmFtZWRGbG93VGhyZWFkTGlzdDsKLSAgICBSZW5kZXJGbG93VGhyZWFkKiBtX2N1cnJlbnRS
ZW5kZXJGbG93VGhyZWFkOworICAgIE93blB0cjxGbG93VGhyZWFkQ29udHJvbGxlcj4gbV9mbG93
VGhyZWFkQ29udHJvbGxlcjsKICAgICBSZWZQdHI8SW50ZXJ2YWxBcmVuYT4gbV9pbnRlcnZhbEFy
ZW5hOwogfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136644</attachid>
            <date>2012-04-11 01:33:50 -0700</date>
            <delta_ts>2012-04-11 02:41:59 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-83464-20120411113347.patch</filename>
            <type>text/plain</type>
            <size>37577</size>
            <attacher name="Mihnea Ovidenie">mihnea</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEzODI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWFkNWU4NzI5NGU3ZGQx
M2EyOWJkNzlkMmYzOTYwNjAxYzVkMTNiNC4uOTgyOWE4NDE3YzU2YzE1MDI0YTVjMWIxM2QyYjky
YmY0Nzk4NGQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDEyLTA0LTExICBNaWhu
ZWEgT3ZpZGVuaWUgIDxtaWhuZWFAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgUmVnaW9uc11B
ZGQgaGVscGVyIGNsYXNzIGZvciBmbG93IHRocmVhZHMgaW5mbyBpbiBSZW5kZXJWaWV3CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MzQ2NAorCisgICAg
ICAgIFJldmlld2VkIGJ5IERhdmlkIEh5YXR0LgorCisgICAgICAgIFRoaXMgcGF0Y2ggY3JlYXRl
cyBhIG5ldyBoZWxwZXIgY2xhc3MgRmxvd1RocmVhZENvbnRyb2xsZXIgdGhhdCB3aWxsIGFjY29t
bW9kYXRlIGFsbCB0aGUgZmxvdyB0aHJlYWQKKyAgICAgICAgcmVsYXRlZCBpbmZvIGZyb20gUmVu
ZGVyVmlldyBhbmQgbW92ZXMgYWxsIHRoZSBkYXRhIHN0cnVjdHVyZXMvbWV0aG9kcyBmcm9tIFJl
bmRlclZpZXcgaW50byB0aGlzIG5ldyBjbGFzcy4KKyAgICAgICAgVGhlcmUgaXMgb25seSBvbmUg
Rmxvd1RocmVhZENvbnRyb2xsZXIgb2JqZWN0IHBlciBSZW5kZXJWaWV3IGFuZCBpdCBjYW4gYmUg
cmV0cmlldmVkIHVzaW5nIGZsb3dUaHJlYWRDb250cm9sbGVyKCkgbWV0aG9kIGZyb20gUmVuZGVy
Vmlldy4KKyAgICAgICAgVGhlIGZsb3cgdGhyZWFkIGNvbnRyb2xsZXIgb2JqZWN0IGlzIG93bmVk
IGJ5IHRoZSBSZW5kZXJWaWV3IGFuZCBpdCBpcyBjcmVhdGVkIG9uIGRlbWFuZCBvbmx5IGlmIHRo
ZXJlIGFyZSBmbG93aW5nCisgICAgICAgIHRocmVhZHMgaW4gdGhlIHBhZ2UuCisKKyAgICAgICAg
U2luY2UgdGhlcmUgaXMgbm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxpdHksIHRoZXJlIGFyZSBubyBu
ZXcgdGVzdHMgYWRkZWQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBH
TlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2Vi
Q29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OndlYmtpdEdldEZsb3dC
eU5hbWUpOgorICAgICAgICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpOb2RlUmVuZGVyaW5nQ29udGV4dDo6bW92ZVRvRmxvd1RocmVhZElmTmVlZGVk
KToKKyAgICAgICAgKiByZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Rmxvd1RocmVhZENvbnRyb2xs
ZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGbG93VGhyZWFkQ29udHJvbGxlcjo6Rmxv
d1RocmVhZENvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6Rmxvd1RocmVhZENvbnRyb2xs
ZXI6On5GbG93VGhyZWFkQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpGbG93VGhyZWFk
Q29udHJvbGxlcjo6ZW5zdXJlUmVuZGVyRmxvd1RocmVhZFdpdGhOYW1lKToKKyAgICAgICAgKFdl
YkNvcmU6OkZsb3dUaHJlYWRDb250cm9sbGVyOjpsYXlvdXRSZW5kZXJOYW1lZEZsb3dUaHJlYWRz
KToKKyAgICAgICAgKiByZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEZsb3dUaHJlYWRDb250cm9sbGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZsb3dUaHJlYWRDb250cm9sbGVyOjpjdXJyZW50UmVuZGVyRmxvd1RocmVh
ZCk6CisgICAgICAgIChXZWJDb3JlOjpGbG93VGhyZWFkQ29udHJvbGxlcjo6c2V0Q3VycmVudFJl
bmRlckZsb3dUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6Rmxvd1RocmVhZENvbnRyb2xsZXI6
OmlzUmVuZGVyTmFtZWRGbG93VGhyZWFkT3JkZXJEaXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpG
bG93VGhyZWFkQ29udHJvbGxlcjo6c2V0SXNSZW5kZXJOYW1lZEZsb3dUaHJlYWRPcmRlckRpcnR5
KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb3dUaHJlYWRDb250cm9sbGVyOjpyZW5kZXJOYW1lZEZs
b3dUaHJlYWRMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb3dUaHJlYWRDb250cm9sbGVyOjpo
YXNSZW5kZXJOYW1lZEZsb3dUaHJlYWRzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxv
d1RocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDdXJyZW50UmVuZGVyRmxvd1RocmVhZE1h
aW50YWluZXI6OkN1cnJlbnRSZW5kZXJGbG93VGhyZWFkTWFpbnRhaW5lcik6CisgICAgICAgIChX
ZWJDb3JlOjpDdXJyZW50UmVuZGVyRmxvd1RocmVhZE1haW50YWluZXI6On5DdXJyZW50UmVuZGVy
Rmxvd1RocmVhZE1haW50YWluZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q3VycmVudFJlbmRlckZs
b3dUaHJlYWREaXNhYmxlcjo6Q3VycmVudFJlbmRlckZsb3dUaHJlYWREaXNhYmxlcik6CisgICAg
ICAgIChXZWJDb3JlOjpDdXJyZW50UmVuZGVyRmxvd1RocmVhZERpc2FibGVyOjp+Q3VycmVudFJl
bmRlckZsb3dUaHJlYWREaXNhYmxlcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck5hbWVk
Rmxvd1RocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6
Om5leHRSZW5kZXJlckZvck5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTmFtZWRGbG93
VGhyZWFkOjpwcmV2aW91c1JlbmRlcmVyRm9yTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJOYW1lZEZsb3dUaHJlYWQ6OnJlbW92ZVJlZ2lvbkZyb21UaHJlYWQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTmFtZWRGbG93VGhyZWFkOjphZGREZXBlbmRlbmN5T25GbG93VGhyZWFkKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck5hbWVkRmxvd1RocmVhZDo6cmVtb3ZlRGVwZW5kZW5j
eU9uRmxvd1RocmVhZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVh
ZC5oOgorICAgICAgICAoUmVuZGVyTmFtZWRGbG93VGhyZWFkKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6Y3Jl
YXRlT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6ZW5jbG9zaW5nUmVu
ZGVyRmxvd1RocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OndpbGxCZURl
c3Ryb3llZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6d3JpdGVSZW5kZXJOYW1lZEZsb3dUaHJlYWRzKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpS
ZW5kZXJWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OmxheW91dCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpoYXNSZW5kZXJOYW1lZEZsb3dUaHJlYWRzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OmZsb3dUaHJlYWRDb250cm9sbGVyKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChSZW5kZXJWaWV3KToKKwogMjAxMi0wNC0xMCAgTm9lbCBHb3Jkb24gIDxub2VsLmdvcmRvbkBn
bWFpbC5jb20+CiAKICAgICAgICAgW2Nocm9taXVtXSBJbWFnZUJ1ZmZlciBtaW5vciBzdHlsZSBm
aXg6IHJlbW92ZSBjb21wb3VuZCBkZWNsYXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAx
MGMxODVmZWIxODVhMTMzNTE5OThjMjkwM2I2MzY1MTE0YTZkYTFiLi44YzZiZGYwNTM0Zjk4YWIx
ZmRlZDVjMWRjNzIwY2U1YjQyZjA1MDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTI4NSw2
ICsxMjg1LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHJlbmRlcmluZy9FbGxpcHNpc0Jv
eC5jcHAKICAgICByZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuY3BwCiAgICAgcmVuZGVy
aW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwCisgICAgcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9s
bGVyLmNwcAogICAgIHJlbmRlcmluZy9IaXRUZXN0aW5nVHJhbnNmb3JtU3RhdGUuY3BwCiAgICAg
cmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwCiAgICAgcmVuZGVyaW5nL0lubGluZUJveC5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDA4ODQ3MTU2MDM0M2JiNjUwOTY1Yjc0
YzU3MjI5M2FmZDUzZmM5ZGIuLmYwNzkwM2E3NGJlOTQ1MDU4YzlkNzNiMTE2MGFmYWE0YjUyMWRi
NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzY3MSw2ICszNjcxLDggQEAg
d2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmlsdGVyRWZm
ZWN0UmVuZGVyZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlv
dXQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5oIFwK
KwlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuY3BwIFwKKwlT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuaCBcCiAJU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0dhcFJlY3RzLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9IaXRUZXN0UmVxdWVzdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdGlu
Z1RyYW5zZm9ybVN0YXRlLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA5ZTZhYjkzYjQ5MjI0OWVmYjI3
OTFmODg0NDcyNDgyODhhMTg1MWJlLi5jMjE3NjIyMDczM2NiOGU1MzhmZjBiNDk4NTNkNjNmZmIz
YzMzYzUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTEyMTMsNiArMTIxMyw3IEBAIFNPVVJDRVMgKz0gXAog
ICAgIHJlbmRlcmluZy9FbGxpcHNpc0JveC5jcHAgXAogICAgIHJlbmRlcmluZy9GaWx0ZXJFZmZl
Y3RSZW5kZXJlci5jcHAgXAogICAgIHJlbmRlcmluZy9GaXhlZFRhYmxlTGF5b3V0LmNwcCBcCisg
ICAgcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmNwcCBcCiAgICAgcmVuZGVyaW5nL0hp
dFRlc3RpbmdUcmFuc2Zvcm1TdGF0ZS5jcHAgXAogICAgIHJlbmRlcmluZy9IaXRUZXN0UmVzdWx0
LmNwcCBcCiAgICAgcmVuZGVyaW5nL0lubGluZUJveC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4
IGYxOWQwY2Y1ZDg0MGI3YjE0NzBiZTMxN2I3ODJmM2JhOGQ4MzJkZTYuLmFkMmRlZmJiY2M2NjZk
ZjQ3YzI4YjBiZTdiZWQ5YWIwMGQ0ZWI5N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTUxNyw2ICs1
MTcsNyBAQAogICAgICAgICAgICAgJ3BsdWdpbnMvbnB0eXBlcy5oJywKICAgICAgICAgICAgICdy
ZW5kZXJpbmcvQ29sdW1uSW5mby5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvR2FwUmVjdHMu
aCcsCisgICAgICAgICAgICAncmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmgnLAogICAg
ICAgICAgICAgJ3JlbmRlcmluZy9IaXRUZXN0UmVxdWVzdC5oJywKICAgICAgICAgICAgICdyZW5k
ZXJpbmcvSGl0VGVzdFJlc3VsdC5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvSW5saW5lQm94
LmgnLApAQCAtNDY2Myw2ICs0NjY0LDggQEAKICAgICAgICAgICAgICdyZW5kZXJpbmcvRmlsdGVy
RWZmZWN0UmVuZGVyZXIuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlv
dXQuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5oJywKKyAg
ICAgICAgICAgICdyZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuY3BwJywKKyAgICAgICAg
ICAgICdyZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuaCcsCiAgICAgICAgICAgICAncmVu
ZGVyaW5nL0hpdFRlc3RpbmdUcmFuc2Zvcm1TdGF0ZS5jcHAnLAogICAgICAgICAgICAgJ3JlbmRl
cmluZy9IaXRUZXN0aW5nVHJhbnNmb3JtU3RhdGUuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5n
L0hpdFRlc3RSZXN1bHQuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKaW5kZXggMGVkZDE2NWJmOWRhYmI1YTRhYTYzZWI1MWQwOTFhY2YzYWM0ZmFk
NC4uYzVlMjcyNzIyNTc3MDNlODQ1YmViNzJkMGNlNTZkM2YzNDUwMGE4NiAxMDA3NTUKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTM3MjY2LDYgKzM3MjY2
LDE0IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XHJlbmRlcmluZ1xGbG93VGhyZWFkQ29udHJvbGxlci5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgor
CQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xGbG93VGhyZWFkQ29udHJv
bGxlci5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIu
LlxyZW5kZXJpbmdcR2FwUmVjdHMuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYjk3NWJmZjBj
ODMxYmI2Y2FlMzE3YzYzNTFhMmRkZjVhMGE5NTFmYi4uNDliZmE5NmM5YzRkODFjOGQ3Y2U3MTY2
ZDYyYjU0NTVhNDllMzNkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTgwMyw2ICs1ODAzLDggQEAKIAkJRDZGREFFRjMxNDlD
MDYxOTAwMzdCMUUxIC8qIEhpc3RvZ3JhbVN1cHBvcnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDZGREFFRjIxNDlDMDYxOTAwMzdCMUUxIC8qIEhp
c3RvZ3JhbVN1cHBvcnQuY3BwICovOyB9OwogCQlENzBBRDY1NzEzRTEzNDJCMDA1QjUwQjQgLyog
UmVuZGVyUmVnaW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEQ3MEFENjU1MTNFMTM0MkIwMDVCNTBCNCAvKiBSZW5kZXJSZWdpb24uY3BwICovOyB9
OwogCQlENzBBRDY1ODEzRTEzNDJCMDA1QjUwQjQgLyogUmVuZGVyUmVnaW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBENzBBRDY1NjEzRTEzNDJCMDA1
QjUwQjQgLyogUmVuZGVyUmVnaW9uLmggKi87IH07CisJCUQ3MkY2RDc5MTUzMTU5QTMwMDFFRTQ0
RSAvKiBGbG93VGhyZWFkQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBENzJGNkQ3NzE1MzE1OUEzMDAxRUU0NEUgLyogRmxvd1RocmVh
ZENvbnRyb2xsZXIuY3BwICovOyB9OworCQlENzJGNkQ3QTE1MzE1OUEzMDAxRUU0NEUgLyogRmxv
d1RocmVhZENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEQ3MkY2RDc4MTUzMTU5QTMwMDFFRTQ0RSAvKiBGbG93VGhyZWFkQ29udHJvbGxl
ci5oICovOyB9OwogCQlENzYxM0E1MDE0NzRGMTNGMDBEQjg2MDYgLyogV2ViS2l0TmFtZWRGbG93
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQ3NjEz
QTRFMTQ3NEYxM0YwMERCODYwNiAvKiBXZWJLaXROYW1lZEZsb3cuY3BwICovOyB9OwogCQlENzYx
M0FDNDE0NzUzRTU2MDBEQjg2MDYgLyogSlNXZWJLaXROYW1lZEZsb3cuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDc2MTNBQzIxNDc1M0U1NjAwREI4
NjA2IC8qIEpTV2ViS2l0TmFtZWRGbG93LmNwcCAqLzsgfTsKIAkJRDhCNjE1MkYxMDMyNDk1MTAw
Qzg1NTRBIC8qIENvb2tpZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRDhCNjE1MkUxMDMyNDk1MTAwQzg1NTRBIC8qIENvb2tpZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMjkxNiw2ICsxMjkxOCw4
IEBACiAJCUQ2RkRBRUYyMTQ5QzA2MTkwMDM3QjFFMSAvKiBIaXN0b2dyYW1TdXBwb3J0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhpc3RvZ3JhbVN1cHBvcnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlENzBBRDY1NTEzRTEzNDJCMDA1QjUwQjQg
LyogUmVuZGVyUmVnaW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFJlbmRlclJlZ2lvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQ3MEFENjU2
MTNFMTM0MkIwMDVCNTBCNCAvKiBSZW5kZXJSZWdpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVuZGVyUmVnaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUQ3MkY2RDc3MTUzMTU5QTMwMDFFRTQ0RSAvKiBGbG93VGhyZWFkQ29udHJvbGxlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGbG93VGhyZWFkQ29udHJvbGxlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUQ3MkY2RDc4MTUzMTU5QTMwMDFFRTQ0
RSAvKiBGbG93VGhyZWFkQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBGbG93VGhyZWFkQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlENzYxM0E0QTE0NzRFRTk1MDBEQjg2MDYgLyogV2ViS2l0TmFtZWRGbG93LmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBXZWJLaXROYW1lZEZsb3cuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlENzYxM0E0RDE0NzRGMTNGMDBEQjg2MDYgLyogV2ViS2l0TmFtZWRGbG93Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdE5hbWVkRmxvdy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlENzYxM0E0RTE0NzRGMTNGMDBEQjg2MDYgLyogV2Vi
S2l0TmFtZWRGbG93LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
YktpdE5hbWVkRmxvdy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDY5MCw2
ICsyMDY5NCw4IEBACiAJCQkJMzEzMTNGNjQxNDQzQjM1RTAwNkUyQTkwIC8qIEZpbHRlckVmZmVj
dFJlbmRlcmVyLmggKi8sCiAJCQkJQThDRkYwNDgwQTE1NEYwOTAwMEE0MjM0IC8qIEZpeGVkVGFi
bGVMYXlvdXQuY3BwICovLAogCQkJCUE4Q0ZGMDRBMEExNTRGMDkwMDBBNDIzNCAvKiBGaXhlZFRh
YmxlTGF5b3V0LmggKi8sCisJCQkJRDcyRjZENzcxNTMxNTlBMzAwMUVFNDRFIC8qIEZsb3dUaHJl
YWRDb250cm9sbGVyLmNwcCAqLywKKwkJCQlENzJGNkQ3ODE1MzE1OUEzMDAxRUU0NEUgLyogRmxv
d1RocmVhZENvbnRyb2xsZXIuaCAqLywKIAkJCQk5MzVDNDc3NDA5QUM0RDhEMDBBNkFBQjQgLyog
R2FwUmVjdHMuaCAqLywKIAkJCQk0OTY5QjBGMDEzRDBCMzNGMDBERjM1MjEgLyogSGl0VGVzdGlu
Z1RyYW5zZm9ybVN0YXRlLmNwcCAqLywKIAkJCQk0OTY5QjBGMTEzRDBCMzNGMDBERjM1MjEgLyog
SGl0VGVzdGluZ1RyYW5zZm9ybVN0YXRlLmggKi8sCkBAIC0yNDc0Miw2ICsyNDc0OCw3IEBACiAJ
CQkJQTA3RDMzNTgxNTJCNjMyRDAwMUI2MzkzIC8qIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9ybWF0
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDNUExRUE3RDE1MkJDRjA4MDA0RDAwQjYgLyogU2ltcGxp
ZnlNYXJrdXBDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRURBMTJENzE1MkNBMUNCMDBE
OUUwOEQgLyogQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlENzJG
NkQ3QTE1MzE1OUEzMDAxRUU0NEUgLyogRmxvd1RocmVhZENvbnRyb2xsZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTU3NDBFODNEMTUzMkRFMTcwMDc2MDYyOCAvKiBUcmVlU2NvcGVBZGp1c3Rlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CkBAIC0yNzc0NCw2ICsyNzc1MSw3IEBACiAJCQkJQTA3RDMzNTUxNTJCNjMwRTAw
MUI2MzkzIC8qIEpTV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3JtYXQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQTA4Q0YxNTQxNTJCNzdCMzAwOUM1Nzc1IC8qIFdlYkdMU2hhZGVyUHJlY2lzaW9uRm9y
bWF0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM1QTFFQTdDMTUyQkNGMDQwMDREMDBCNiAvKiBT
aW1wbGlmeU1hcmt1cENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRDcyRjZENzkxNTMx
NTlBMzAwMUVFNDRFIC8qIEZsb3dUaHJlYWRDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTU3NDBFODNDMTUzMkRFMTcwMDc2MDYyOCAvKiBUcmVlU2NvcGVBZGp1c3Rlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDk4YzU3M2Q2NjM5ZDNkNWFjNWEwMzll
MTY2NjIzMWM1NDM5YTRkNjguLmJiZTk0NDM3ZjdjZjFkYjdhYmU4MTU5MzFhYzU2MWQ1NWM3YWQx
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNjgsNiArNjgsNyBAQAogI2luY2x1ZGUg
IkV2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRXhj
ZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIkZsb3dUaHJlYWRDb250cm9sbGVyLmgiCiAjaW5jbHVk
ZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRm9ybUFzc29jaWF0ZWRFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiRnJhbWUuaCIKQEAgLTEwODMsNyArMTA4NCw3IEBAIFBhc3NSZWZQdHI8V2Vi
S2l0TmFtZWRGbG93PiBEb2N1bWVudDo6d2Via2l0R2V0Rmxvd0J5TmFtZShjb25zdCBTdHJpbmcm
IGZsb3dOYW1lCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgaWYgKFJlbmRlclZpZXcqIHZpZXcg
PSByZW5kZXJlcigpLT52aWV3KCkpCi0gICAgICAgIHJldHVybiB2aWV3LT5lbnN1cmVSZW5kZXJG
bG93VGhyZWFkV2l0aE5hbWUoZmxvd05hbWUpLT5lbnN1cmVOYW1lZEZsb3coKTsKKyAgICAgICAg
cmV0dXJuIHZpZXctPmZsb3dUaHJlYWRDb250cm9sbGVyKCktPmVuc3VyZVJlbmRlckZsb3dUaHJl
YWRXaXRoTmFtZShmbG93TmFtZSktPmVuc3VyZU5hbWVkRmxvdygpOwogICAgIHJldHVybiAwOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCAy
ZWY2ZmQ0NzUzYTgyYjM3MDljMmZlMzgwMTQ0MjdjMzVlNWUxNjViLi4xNTM3ZGU3OWJhZjJiMDZl
YTNlOTJjODY5MGVkY2MyOTA5YzFiYjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVu
ZGVyaW5nQ29udGV4dC5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJOb2RlUmVuZGVy
aW5nQ29udGV4dC5oIgogCiAjaW5jbHVkZSAiQ29udGFpbmVyTm9kZS5oIgorI2luY2x1ZGUgIkZs
b3dUaHJlYWRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiSFRNTENvbnRlbnRFbGVtZW50LmgiCiAj
aW5jbHVkZSAiSFRNTENvbnRlbnRTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgpA
QCAtMzI2LDcgKzMyNyw3IEBAIHZvaWQgTm9kZVJlbmRlcmluZ0NvbnRleHQ6Om1vdmVUb0Zsb3dU
aHJlYWRJZk5lZWRlZCgpCiAKICAgICBtX2Zsb3dUaHJlYWQgPSBtX3N0eWxlLT5mbG93VGhyZWFk
KCk7CiAgICAgQVNTRVJUKG1fbm9kZS0+ZG9jdW1lbnQoKS0+cmVuZGVyVmlldygpKTsKLSAgICBt
X3BhcmVudEZsb3dSZW5kZXJlciA9IG1fbm9kZS0+ZG9jdW1lbnQoKS0+cmVuZGVyVmlldygpLT5l
bnN1cmVSZW5kZXJGbG93VGhyZWFkV2l0aE5hbWUobV9mbG93VGhyZWFkKTsKKyAgICBtX3BhcmVu
dEZsb3dSZW5kZXJlciA9IG1fbm9kZS0+ZG9jdW1lbnQoKS0+cmVuZGVyVmlldygpLT5mbG93VGhy
ZWFkQ29udHJvbGxlcigpLT5lbnN1cmVSZW5kZXJGbG93VGhyZWFkV2l0aE5hbWUobV9mbG93VGhy
ZWFkKTsKIH0KIAogTm9kZVJlbmRlcmVyRmFjdG9yeTo6Tm9kZVJlbmRlcmVyRmFjdG9yeShOb2Rl
KiBub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb3dUaHJlYWRD
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFkQ29udHJv
bGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODgwMzBhN2UyNWYzMGJhNDAwMTM2MTdkZjZjM2JlMTcxNDE0
YWE5YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhy
ZWFkQ29udHJvbGxlci5jcHAKQEAgLTAsMCArMSwxMDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAg
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCisgKiBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SCisgKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiRmxvd1RocmVhZENvbnRy
b2xsZXIuaCIKKworI2luY2x1ZGUgIlJlbmRlckZsb3dUaHJlYWQuaCIKKyNpbmNsdWRlICJSZW5k
ZXJOYW1lZEZsb3dUaHJlYWQuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzT3duUHRyPEZsb3dUaHJlYWRDb250cm9sbGVy
PiBGbG93VGhyZWFkQ29udHJvbGxlcjo6Y3JlYXRlKFJlbmRlclZpZXcqIHZpZXcpCit7CisgICAg
cmV0dXJuIGFkb3B0UHRyKG5ldyBGbG93VGhyZWFkQ29udHJvbGxlcih2aWV3KSk7Cit9CisKK0Zs
b3dUaHJlYWRDb250cm9sbGVyOjpGbG93VGhyZWFkQ29udHJvbGxlcihSZW5kZXJWaWV3KiB2aWV3
KQorICAgIDogbV92aWV3KHZpZXcpCisgICAgLCBtX2N1cnJlbnRSZW5kZXJGbG93VGhyZWFkKDAp
CisgICAgLCBtX2lzUmVuZGVyTmFtZWRGbG93VGhyZWFkT3JkZXJEaXJ0eShmYWxzZSkKK3sKK30K
KworRmxvd1RocmVhZENvbnRyb2xsZXI6On5GbG93VGhyZWFkQ29udHJvbGxlcigpCit7Cit9CisK
K1JlbmRlck5hbWVkRmxvd1RocmVhZCogRmxvd1RocmVhZENvbnRyb2xsZXI6OmVuc3VyZVJlbmRl
ckZsb3dUaHJlYWRXaXRoTmFtZShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpCit7CisgICAgaWYg
KCFtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3QpCisgICAgICAgIG1fcmVuZGVyTmFtZWRGbG93
VGhyZWFkTGlzdCA9IGFkb3B0UHRyKG5ldyBSZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0KCkpOwor
ICAgIGVsc2UgeworICAgICAgICBmb3IgKFJlbmRlck5hbWVkRmxvd1RocmVhZExpc3Q6Oml0ZXJh
dG9yIGl0ZXIgPSBtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3QtPmJlZ2luKCk7IGl0ZXIgIT0g
bV9yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0LT5lbmQoKTsgKytpdGVyKSB7CisgICAgICAgICAg
ICBSZW5kZXJOYW1lZEZsb3dUaHJlYWQqIGZsb3dSZW5kZXJlciA9ICppdGVyOworICAgICAgICAg
ICAgaWYgKGZsb3dSZW5kZXJlci0+Zmxvd1RocmVhZE5hbWUoKSA9PSBuYW1lKQorICAgICAgICAg
ICAgICAgIHJldHVybiBmbG93UmVuZGVyZXI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBSZW5k
ZXJOYW1lZEZsb3dUaHJlYWQqIGZsb3dSZW5kZXJlciA9IG5ldyAobV92aWV3LT5yZW5kZXJBcmVu
YSgpKSBSZW5kZXJOYW1lZEZsb3dUaHJlYWQobV92aWV3LT5kb2N1bWVudCgpLCBuYW1lKTsKKyAg
ICBmbG93UmVuZGVyZXItPnNldFN0eWxlKFJlbmRlckZsb3dUaHJlYWQ6OmNyZWF0ZUZsb3dUaHJl
YWRTdHlsZShtX3ZpZXctPnN0eWxlKCkpKTsKKyAgICBtX3JlbmRlck5hbWVkRmxvd1RocmVhZExp
c3QtPmFkZChmbG93UmVuZGVyZXIpOworCisgICAgLy8gS2VlcCB0aGUgZmxvdyByZW5kZXJlciBh
cyBhIGNoaWxkIG9mIFJlbmRlclZpZXcuCisgICAgbV92aWV3LT5hZGRDaGlsZChmbG93UmVuZGVy
ZXIpOworCisgICAgc2V0SXNSZW5kZXJOYW1lZEZsb3dUaHJlYWRPcmRlckRpcnR5KHRydWUpOwor
CisgICAgcmV0dXJuIGZsb3dSZW5kZXJlcjsKK30KKwordm9pZCBGbG93VGhyZWFkQ29udHJvbGxl
cjo6bGF5b3V0UmVuZGVyTmFtZWRGbG93VGhyZWFkcygpCit7CisgICAgQVNTRVJUKG1fcmVuZGVy
TmFtZWRGbG93VGhyZWFkTGlzdCk7CisKKyAgICBpZiAoaXNSZW5kZXJOYW1lZEZsb3dUaHJlYWRP
cmRlckRpcnR5KCkpIHsKKyAgICAgICAgLy8gQXJyYW5nZSB0aGUgdGhyZWFkIGxpc3QgYWNjb3Jk
aW5nIHRvIGRlcGVuZGVuY2llcy4KKyAgICAgICAgUmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdCBz
b3J0ZWRMaXN0OworICAgICAgICBmb3IgKFJlbmRlck5hbWVkRmxvd1RocmVhZExpc3Q6Oml0ZXJh
dG9yIGl0ZXIgPSBtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3QtPmJlZ2luKCk7IGl0ZXIgIT0g
bV9yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0LT5lbmQoKTsgKytpdGVyKSB7CisgICAgICAgICAg
ICBSZW5kZXJOYW1lZEZsb3dUaHJlYWQqIGZsb3dSZW5kZXJlciA9ICppdGVyOworICAgICAgICAg
ICAgaWYgKHNvcnRlZExpc3QuY29udGFpbnMoZmxvd1JlbmRlcmVyKSkKKyAgICAgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgICAgIGZsb3dSZW5kZXJlci0+cHVzaERlcGVuZGVuY2llcyhz
b3J0ZWRMaXN0KTsKKyAgICAgICAgICAgIHNvcnRlZExpc3QuYWRkKGZsb3dSZW5kZXJlcik7Cisg
ICAgICAgIH0KKyAgICAgICAgbV9yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0LT5zd2FwKHNvcnRl
ZExpc3QpOworICAgICAgICBzZXRJc1JlbmRlck5hbWVkRmxvd1RocmVhZE9yZGVyRGlydHkoZmFs
c2UpOworICAgIH0KKworICAgIGZvciAoUmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdDo6aXRlcmF0
b3IgaXRlciA9IG1fcmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdC0+YmVnaW4oKTsgaXRlciAhPSBt
X3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3QtPmVuZCgpOyArK2l0ZXIpIHsKKyAgICAgICAgUmVu
ZGVyTmFtZWRGbG93VGhyZWFkKiBmbG93UmVuZGVyZXIgPSAqaXRlcjsKKyAgICAgICAgZmxvd1Jl
bmRlcmVyLT5sYXlvdXRJZk5lZWRlZCgpOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250
cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lMzc1MGNhZjVkOTkyZWFkMjlhZTYxNDFmNDg4YTU0YmYwMjE0NjgwCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250
cm9sbGVyLmgKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBZG9i
ZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAqICAgIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVCBIT0xERVIgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAqIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IKKyAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRgorICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIEZsb3dUaHJlYWRDb250cm9sbGVyX2gKKyNkZWZpbmUgRmxvd1RocmVhZENvbnRyb2xs
ZXJfaAorCisjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgorI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNl
dC5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBSZW5kZXJGbG93VGhyZWFkOworY2xhc3MgUmVuZGVyTmFtZWRGbG93VGhyZWFkOworCit0
eXBlZGVmIExpc3RIYXNoU2V0PFJlbmRlck5hbWVkRmxvd1RocmVhZCo+IFJlbmRlck5hbWVkRmxv
d1RocmVhZExpc3Q7CisKK2NsYXNzIEZsb3dUaHJlYWRDb250cm9sbGVyIHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUGFzc093blB0cjxGbG93VGhyZWFkQ29udHJvbGxlcj4gY3JlYXRlKFJlbmRlclZp
ZXcqKTsKKyAgICB+Rmxvd1RocmVhZENvbnRyb2xsZXIoKTsKKworICAgIFJlbmRlckZsb3dUaHJl
YWQqIGN1cnJlbnRSZW5kZXJGbG93VGhyZWFkKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50UmVu
ZGVyRmxvd1RocmVhZDsgfQorICAgIHZvaWQgc2V0Q3VycmVudFJlbmRlckZsb3dUaHJlYWQoUmVu
ZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCkgeyBtX2N1cnJlbnRSZW5kZXJGbG93VGhyZWFkID0g
Zmxvd1RocmVhZDsgfQorCisgICAgYm9vbCBpc1JlbmRlck5hbWVkRmxvd1RocmVhZE9yZGVyRGly
dHkoKSBjb25zdCB7IHJldHVybiBtX2lzUmVuZGVyTmFtZWRGbG93VGhyZWFkT3JkZXJEaXJ0eTsg
fQorICAgIHZvaWQgc2V0SXNSZW5kZXJOYW1lZEZsb3dUaHJlYWRPcmRlckRpcnR5KGJvb2wgZGly
dHkpCisgICAgeworICAgICAgICBtX2lzUmVuZGVyTmFtZWRGbG93VGhyZWFkT3JkZXJEaXJ0eSA9
IGRpcnR5OworICAgICAgICBpZiAoZGlydHkpCisgICAgICAgICAgICBtX3ZpZXctPnNldE5lZWRz
TGF5b3V0KHRydWUpOworICAgIH0KKworICAgIFJlbmRlck5hbWVkRmxvd1RocmVhZCogZW5zdXJl
UmVuZGVyRmxvd1RocmVhZFdpdGhOYW1lKGNvbnN0IEF0b21pY1N0cmluZyYpOworICAgIGNvbnN0
IFJlbmRlck5hbWVkRmxvd1RocmVhZExpc3QqIHJlbmRlck5hbWVkRmxvd1RocmVhZExpc3QoKSBj
b25zdCB7IHJldHVybiBtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3QuZ2V0KCk7IH0KKyAgICBi
b29sIGhhc1JlbmRlck5hbWVkRmxvd1RocmVhZHMoKSBjb25zdCB7IHJldHVybiBtX3JlbmRlck5h
bWVkRmxvd1RocmVhZExpc3QgJiYgIW1fcmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdC0+aXNFbXB0
eSgpOyB9CisgICAgdm9pZCBsYXlvdXRSZW5kZXJOYW1lZEZsb3dUaHJlYWRzKCk7CisKK3Byb3Rl
Y3RlZDoKKyAgICBGbG93VGhyZWFkQ29udHJvbGxlcihSZW5kZXJWaWV3Kik7CisKK3ByaXZhdGU6
CisgICAgUmVuZGVyVmlldyogbV92aWV3OworICAgIFJlbmRlckZsb3dUaHJlYWQqIG1fY3VycmVu
dFJlbmRlckZsb3dUaHJlYWQ7CisgICAgYm9vbCBtX2lzUmVuZGVyTmFtZWRGbG93VGhyZWFkT3Jk
ZXJEaXJ0eTsKKyAgICBPd25QdHI8UmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdD4gbV9yZW5kZXJO
YW1lZEZsb3dUaHJlYWRMaXN0OworfTsKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcAppbmRleCAxMjJiOWUwM2IyZTAwOThkZThm
NmI2MDM0MmE0YmQyNTBjYzBlNWYzLi4zOTM5NjRhZGUwYjk1YTRkODg2N2I2OTMwMzliNWFkZWMx
OWIwMzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1Ro
cmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQu
Y3BwCkBAIC0zMSw2ICszMSw3IEBACiAKICNpbmNsdWRlICJSZW5kZXJGbG93VGhyZWFkLmgiCiAK
KyNpbmNsdWRlICJGbG93VGhyZWFkQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXF1
ZXN0LmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIk5vZGUuaCIKQEAg
LTExNCwxNCArMTE1LDE0IEBAIHB1YmxpYzoKICAgICAgICAgOiBtX3JlbmRlckZsb3dUaHJlYWQo
cmVuZGVyRmxvd1RocmVhZCkKICAgICB7CiAgICAgICAgIFJlbmRlclZpZXcqIHZpZXcgPSBtX3Jl
bmRlckZsb3dUaHJlYWQtPnZpZXcoKTsKLSAgICAgICAgQVNTRVJUKCF2aWV3LT5jdXJyZW50UmVu
ZGVyRmxvd1RocmVhZCgpKTsKLSAgICAgICAgdmlldy0+c2V0Q3VycmVudFJlbmRlckZsb3dUaHJl
YWQobV9yZW5kZXJGbG93VGhyZWFkKTsKKyAgICAgICAgQVNTRVJUKCF2aWV3LT5mbG93VGhyZWFk
Q29udHJvbGxlcigpLT5jdXJyZW50UmVuZGVyRmxvd1RocmVhZCgpKTsKKyAgICAgICAgdmlldy0+
Zmxvd1RocmVhZENvbnRyb2xsZXIoKS0+c2V0Q3VycmVudFJlbmRlckZsb3dUaHJlYWQobV9yZW5k
ZXJGbG93VGhyZWFkKTsKICAgICB9CiAgICAgfkN1cnJlbnRSZW5kZXJGbG93VGhyZWFkTWFpbnRh
aW5lcigpCiAgICAgewogICAgICAgICBSZW5kZXJWaWV3KiB2aWV3ID0gbV9yZW5kZXJGbG93VGhy
ZWFkLT52aWV3KCk7Ci0gICAgICAgIEFTU0VSVCh2aWV3LT5jdXJyZW50UmVuZGVyRmxvd1RocmVh
ZCgpID09IG1fcmVuZGVyRmxvd1RocmVhZCk7Ci0gICAgICAgIHZpZXctPnNldEN1cnJlbnRSZW5k
ZXJGbG93VGhyZWFkKDApOworICAgICAgICBBU1NFUlQodmlldy0+Zmxvd1RocmVhZENvbnRyb2xs
ZXIoKS0+Y3VycmVudFJlbmRlckZsb3dUaHJlYWQoKSA9PSBtX3JlbmRlckZsb3dUaHJlYWQpOwor
ICAgICAgICB2aWV3LT5mbG93VGhyZWFkQ29udHJvbGxlcigpLT5zZXRDdXJyZW50UmVuZGVyRmxv
d1RocmVhZCgwKTsKICAgICB9CiBwcml2YXRlOgogICAgIFJlbmRlckZsb3dUaHJlYWQqIG1fcmVu
ZGVyRmxvd1RocmVhZDsKQEAgLTEzNCwxNCArMTM1LDE0IEBAIHB1YmxpYzoKICAgICAgICAgOiBt
X3ZpZXcodmlldykKICAgICAgICAgLCBtX3JlbmRlckZsb3dUaHJlYWQoMCkKICAgICB7Ci0gICAg
ICAgIG1fcmVuZGVyRmxvd1RocmVhZCA9IG1fdmlldy0+Y3VycmVudFJlbmRlckZsb3dUaHJlYWQo
KTsKKyAgICAgICAgbV9yZW5kZXJGbG93VGhyZWFkID0gbV92aWV3LT5mbG93VGhyZWFkQ29udHJv
bGxlcigpLT5jdXJyZW50UmVuZGVyRmxvd1RocmVhZCgpOwogICAgICAgICBpZiAobV9yZW5kZXJG
bG93VGhyZWFkKQotICAgICAgICAgICAgdmlldy0+c2V0Q3VycmVudFJlbmRlckZsb3dUaHJlYWQo
MCk7CisgICAgICAgICAgICB2aWV3LT5mbG93VGhyZWFkQ29udHJvbGxlcigpLT5zZXRDdXJyZW50
UmVuZGVyRmxvd1RocmVhZCgwKTsKICAgICB9CiAgICAgfkN1cnJlbnRSZW5kZXJGbG93VGhyZWFk
RGlzYWJsZXIoKQogICAgIHsKICAgICAgICAgaWYgKG1fcmVuZGVyRmxvd1RocmVhZCkKLSAgICAg
ICAgICAgIG1fdmlldy0+c2V0Q3VycmVudFJlbmRlckZsb3dUaHJlYWQobV9yZW5kZXJGbG93VGhy
ZWFkKTsKKyAgICAgICAgICAgIG1fdmlldy0+Zmxvd1RocmVhZENvbnRyb2xsZXIoKS0+c2V0Q3Vy
cmVudFJlbmRlckZsb3dUaHJlYWQobV9yZW5kZXJGbG93VGhyZWFkKTsKICAgICB9CiBwcml2YXRl
OgogICAgIFJlbmRlclZpZXcqIG1fdmlldzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5jcHAKaW5kZXggZGFiNWQ3YjIxZTdhZTlmMGRkOWMw
MGE1ODc0MDJhZGExYWM3ZmMwNC4uOTQ4ZGViMDQwNGIwZjJmMjA2YzU0OThjZDQ1MjNmODYxZGQ5
MmE5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxv
d1RocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxv
d1RocmVhZC5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJSZW5kZXJOYW1lZEZsb3dUaHJlYWQuaCIKIAorI2luY2x1ZGUgIkZsb3dUaHJlYWRDb250
cm9sbGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyUmVnaW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmll
dy5oIgogI2luY2x1ZGUgIldlYktpdE5hbWVkRmxvdy5oIgpAQCAtNDgsNyArNDksNyBAQCBSZW5k
ZXJPYmplY3QqIFJlbmRlck5hbWVkRmxvd1RocmVhZDo6bmV4dFJlbmRlcmVyRm9yTm9kZShOb2Rl
KiBub2RlKSBjb25zdAogewogICAgIEZsb3dUaHJlYWRDaGlsZExpc3Q6OmNvbnN0X2l0ZXJhdG9y
IGl0ID0gbV9mbG93VGhyZWFkQ2hpbGRMaXN0LmJlZ2luKCk7CiAgICAgRmxvd1RocmVhZENoaWxk
TGlzdDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9mbG93VGhyZWFkQ2hpbGRMaXN0LmVuZCgpOwot
ICAgIAorCiAgICAgZm9yICg7IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICBSZW5kZXJPYmpl
Y3QqIGNoaWxkID0gKml0OwogICAgICAgICBBU1NFUlQoY2hpbGQtPm5vZGUoKSk7CkBAIC01Niw3
ICs1Nyw3IEBAIFJlbmRlck9iamVjdCogUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpuZXh0UmVuZGVy
ZXJGb3JOb2RlKE5vZGUqIG5vZGUpIGNvbnN0CiAgICAgICAgIGlmIChwb3NpdGlvbiAmIE5vZGU6
OkRPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lORykKICAgICAgICAgICAgIHJldHVybiBjaGlsZDsK
ICAgICB9Ci0gICAgCisKICAgICByZXR1cm4gMDsKIH0KIApAQCAtNjQsMTEgKzY1LDExIEBAIFJl
bmRlck9iamVjdCogUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpwcmV2aW91c1JlbmRlcmVyRm9yTm9k
ZShOb2RlKiBub2RlKSBjb25zdAogewogICAgIGlmIChtX2Zsb3dUaHJlYWRDaGlsZExpc3QuaXNF
bXB0eSgpKQogICAgICAgICByZXR1cm4gMDsKLSAgICAKKwogICAgIEZsb3dUaHJlYWRDaGlsZExp
c3Q6OmNvbnN0X2l0ZXJhdG9yIGJlZ2luID0gbV9mbG93VGhyZWFkQ2hpbGRMaXN0LmJlZ2luKCk7
CiAgICAgRmxvd1RocmVhZENoaWxkTGlzdDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9mbG93VGhy
ZWFkQ2hpbGRMaXN0LmVuZCgpOwogICAgIEZsb3dUaHJlYWRDaGlsZExpc3Q6OmNvbnN0X2l0ZXJh
dG9yIGl0ID0gZW5kOwotICAgIAorCiAgICAgZG8gewogICAgICAgICAtLWl0OwogICAgICAgICBS
ZW5kZXJPYmplY3QqIGNoaWxkID0gKml0OwpAQCAtNzcsNyArNzgsNyBAQCBSZW5kZXJPYmplY3Qq
IFJlbmRlck5hbWVkRmxvd1RocmVhZDo6cHJldmlvdXNSZW5kZXJlckZvck5vZGUoTm9kZSogbm9k
ZSkgY29uc3QKICAgICAgICAgaWYgKHBvc2l0aW9uICYgTm9kZTo6RE9DVU1FTlRfUE9TSVRJT05f
UFJFQ0VESU5HKQogICAgICAgICAgICAgcmV0dXJuIGNoaWxkOwogICAgIH0gd2hpbGUgKGl0ICE9
IGJlZ2luKTsKLSAgICAKKwogICAgIHJldHVybiAwOwogfQogCkBAIC0xODAsNyArMTgxLDcgQEAg
dm9pZCBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OnJlbW92ZVJlZ2lvbkZyb21UaHJlYWQoUmVuZGVy
UmVnaW9uKiByZW5kZXJSZWdpb24pCiAgICAgICAgIH0KICAgICAgICAgcmVtb3ZlRGVwZW5kZW5j
eU9uRmxvd1RocmVhZChyZW5kZXJSZWdpb24tPnBhcmVudE5hbWVkRmxvd1RocmVhZCgpKTsKICAg
ICB9Ci0gICAgCisKICAgICBpbnZhbGlkYXRlUmVnaW9ucygpOwogfQogCkBAIC0yMjAsNyArMjIx
LDcgQEAgdm9pZCBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OmFkZERlcGVuZGVuY3lPbkZsb3dUaHJl
YWQoUmVuZGVyTmFtZWRGbG93VGhyZWFkKiBvdGgKICAgICBSZW5kZXJOYW1lZEZsb3dUaHJlYWRD
b3VudGVkU2V0OjpBZGRSZXN1bHQgcmVzdWx0ID0gbV9sYXlvdXRCZWZvcmVUaHJlYWRzU2V0LmFk
ZChvdGhlckZsb3dUaHJlYWQpOwogICAgIGlmIChyZXN1bHQuaXNOZXdFbnRyeSkgewogICAgICAg
ICAvLyBUaGlzIGlzIHRoZSBmaXJzdCB0aW1lIHdlIHNlZSB0aGlzIGRlcGVuZGVuY3kuIE1ha2Ug
c3VyZSB3ZSByZWNhbGN1bGF0ZSBhbGwgdGhlIGRlcGVuZGVuY2llcy4KLSAgICAgICAgdmlldygp
LT5zZXRJc1JlbmRlck5hbWVkRmxvd1RocmVhZE9yZGVyRGlydHkodHJ1ZSk7CisgICAgICAgIHZp
ZXcoKS0+Zmxvd1RocmVhZENvbnRyb2xsZXIoKS0+c2V0SXNSZW5kZXJOYW1lZEZsb3dUaHJlYWRP
cmRlckRpcnR5KHRydWUpOwogICAgIH0KIH0KIApAQCAtMjI5LDcgKzIzMCw3IEBAIHZvaWQgUmVu
ZGVyTmFtZWRGbG93VGhyZWFkOjpyZW1vdmVEZXBlbmRlbmN5T25GbG93VGhyZWFkKFJlbmRlck5h
bWVkRmxvd1RocmVhZCoKICAgICBib29sIHJlbW92ZWQgPSBtX2xheW91dEJlZm9yZVRocmVhZHNT
ZXQucmVtb3ZlKG90aGVyRmxvd1RocmVhZCk7CiAgICAgaWYgKHJlbW92ZWQpIHsKICAgICAgICAg
Y2hlY2tJbnZhbGlkUmVnaW9ucygpOwotICAgICAgICB2aWV3KCktPnNldElzUmVuZGVyTmFtZWRG
bG93VGhyZWFkT3JkZXJEaXJ0eSh0cnVlKTsKKyAgICAgICAgdmlldygpLT5mbG93VGhyZWFkQ29u
dHJvbGxlcigpLT5zZXRJc1JlbmRlck5hbWVkRmxvd1RocmVhZE9yZGVyRGlydHkodHJ1ZSk7CiAg
ICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFt
ZWRGbG93VGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93
VGhyZWFkLmgKaW5kZXggY2U4YmVmZDFkNzRkOGZiYzY0NzFiYWQxODBkZDAyOTMxMjcyY2IxYS4u
M2RhOWQ0MWVhZDczYmZjNDE5NTE1MDc3ZWRkNzlhNDc1MjA1OGQzYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuaApAQCAtNDMsOSArNDMs
OSBAQCB0eXBlZGVmIEhhc2hDb3VudGVkU2V0PFJlbmRlck5hbWVkRmxvd1RocmVhZCo+IFJlbmRl
ck5hbWVkRmxvd1RocmVhZENvdW50ZWRTZXQ7CiBjbGFzcyBSZW5kZXJOYW1lZEZsb3dUaHJlYWQg
OiBwdWJsaWMgUmVuZGVyRmxvd1RocmVhZCB7CiBwdWJsaWM6CiAgICAgUmVuZGVyTmFtZWRGbG93
VGhyZWFkKE5vZGUqLCBjb25zdCBBdG9taWNTdHJpbmcmKTsKLSAgICAKKwogICAgIEF0b21pY1N0
cmluZyBmbG93VGhyZWFkTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZmxvd1RocmVhZE5hbWU7IH0K
LSAgICAKKwogICAgIFJlbmRlck9iamVjdCogbmV4dFJlbmRlcmVyRm9yTm9kZShOb2RlKikgY29u
c3Q7CiAgICAgUmVuZGVyT2JqZWN0KiBwcmV2aW91c1JlbmRlcmVyRm9yTm9kZShOb2RlKikgY29u
c3Q7CiAKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2b2lkIHB1c2hE
ZXBlbmRlbmNpZXMoUmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdCYpOwotICAgIAorCiAgICAgdmly
dHVhbCB2b2lkIGFkZFJlZ2lvblRvVGhyZWFkKFJlbmRlclJlZ2lvbiopIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgdm9pZCByZW1vdmVSZWdpb25Gcm9tVGhyZWFkKFJlbmRlclJlZ2lvbiopIE9WRVJS
SURFOwogCkBAIC03NSw3ICs3NSw3IEBAIHByaXZhdGU6CiBwcml2YXRlOgogICAgIC8vIFRoZSBu
YW1lIG9mIHRoZSBmbG93IHRocmVhZCBhcyBzcGVjaWZpZWQgaW4gQ1NTLgogICAgIEF0b21pY1N0
cmluZyBtX2Zsb3dUaHJlYWROYW1lOwotICAgICAgICAKKwogICAgIC8vIE9ic2VydmVyIGZsb3cg
dGhyZWFkcyBoYXZlIGludmFsaWQgcmVnaW9ucyB0aGF0IGRlcGVuZCBvbiB0aGUgc3RhdGUgb2Yg
dGhpcyB0aHJlYWQKICAgICAvLyB0byByZS12YWxpZGF0ZSB0aGVpciByZWdpb25zLiBLZWVwaW5n
IGEgc2V0IG9mIG9ic2VydmVyIHRocmVhZHMgbWFrZSBpdCBlYXN5CiAgICAgLy8gdG8gbm90aWZ5
IHRoZW0gd2hlbiBhIHJlZ2lvbiB3YXMgcmVtb3ZlZCBmcm9tIHRoaXMgZmxvdy4KQEAgLTg5LDcg
Kzg5LDcgQEAgcHJpdmF0ZToKICAgICAvLyBIb2xkcyB0aGUgc29ydGVkIGNoaWxkcmVuIG9mIGEg
bmFtZWQgZmxvdy4gVGhpcyBpcyB0aGUgb25seSB3YXkgd2UgY2FuIGdldCB0aGUgb3JkZXJpbmcg
cmlnaHQuCiAgICAgdHlwZWRlZiBMaXN0SGFzaFNldDxSZW5kZXJPYmplY3QqPiBGbG93VGhyZWFk
Q2hpbGRMaXN0OwogICAgIEZsb3dUaHJlYWRDaGlsZExpc3QgbV9mbG93VGhyZWFkQ2hpbGRMaXN0
OwotICAgIAorCiAgICAgLy8gVGhlIERPTSBPYmplY3QgdGhhdCByZXByZXNlbnRzIGEgbmFtZWQg
Zmxvdy4KICAgICBSZWZQdHI8V2ViS2l0TmFtZWRGbG93PiBtX25hbWVkRmxvdzsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IGMzZTJkNTVjMmZjY2U0
MTY4YzY1ZDU0ZjhhNjNmYTQ1ZGY3OWMxMGMuLmYxZTAwYmFlMDhkMGU4ZDg4ZDI1MzBiZmE5NDA3
MjM3Mjc3MmM2NzAgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3Bw
CkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiRGFzaEFycmF5LmgiCiAjaW5jbHVkZSAiRWRp
dGluZ0JvdW5kYXJ5LmgiCiAjaW5jbHVkZSAiRmxvYXRRdWFkLmgiCisjaW5jbHVkZSAiRmxvd1Ro
cmVhZENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVmll
dy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgpAQCAtMTYxLDcgKzE2Miw3IEBAIFJl
bmRlck9iamVjdCogUmVuZGVyT2JqZWN0OjpjcmVhdGVPYmplY3QoTm9kZSogbm9kZSwgUmVuZGVy
U3R5bGUqIHN0eWxlKQogICAgIGNhc2UgQ09NUEFDVDoKICAgICAgICAgLy8gT25seSBub24tcmVw
bGFjZWQgYmxvY2sgZWxlbWVudHMgY2FuIGJlY29tZSBhIHJlZ2lvbi4KICAgICAgICAgaWYgKGRv
Yy0+Y3NzUmVnaW9uc0VuYWJsZWQoKSAmJiAhc3R5bGUtPnJlZ2lvblRocmVhZCgpLmlzRW1wdHko
KSAmJiBkb2MtPnJlbmRlclZpZXcoKSkKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBS
ZW5kZXJSZWdpb24obm9kZSwgZG9jLT5yZW5kZXJWaWV3KCktPmVuc3VyZVJlbmRlckZsb3dUaHJl
YWRXaXRoTmFtZShzdHlsZS0+cmVnaW9uVGhyZWFkKCkpKTsKKyAgICAgICAgICAgIHJldHVybiBu
ZXcgKGFyZW5hKSBSZW5kZXJSZWdpb24obm9kZSwgZG9jLT5yZW5kZXJWaWV3KCktPmZsb3dUaHJl
YWRDb250cm9sbGVyKCktPmVuc3VyZVJlbmRlckZsb3dUaHJlYWRXaXRoTmFtZShzdHlsZS0+cmVn
aW9uVGhyZWFkKCkpKTsKICAgICAgICAgaWYgKCghc3R5bGUtPmhhc0F1dG9Db2x1bW5Db3VudCgp
IHx8ICFzdHlsZS0+aGFzQXV0b0NvbHVtbldpZHRoKCkpICYmIGRvYy0+cmVnaW9uQmFzZWRDb2x1
bW5zRW5hYmxlZCgpKQogICAgICAgICAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlck11bHRp
Q29sdW1uQmxvY2sobm9kZSk7CiAgICAgICAgIHJldHVybiBuZXcgKGFyZW5hKSBSZW5kZXJCbG9j
ayhub2RlKTsKQEAgLTU2NCw3ICs1NjUsNyBAQCBSZW5kZXJGbG93VGhyZWFkKiBSZW5kZXJPYmpl
Y3Q6OmVuY2xvc2luZ1JlbmRlckZsb3dUaHJlYWQoKSBjb25zdAogICAgICAgICByZXR1cm4gMDsK
ICAgICAKICAgICAvLyBTZWUgaWYgd2UgaGF2ZSB0aGUgdGhyZWFkIGNhY2hlZCBiZWNhdXNlIHdl
J3JlIGluIHRoZSBtaWRkbGUgb2YgbGF5b3V0LgotICAgIFJlbmRlckZsb3dUaHJlYWQqIGZsb3dU
aHJlYWQgPSB2aWV3KCktPmN1cnJlbnRSZW5kZXJGbG93VGhyZWFkKCk7CisgICAgUmVuZGVyRmxv
d1RocmVhZCogZmxvd1RocmVhZCA9IHZpZXcoKS0+Zmxvd1RocmVhZENvbnRyb2xsZXIoKS0+Y3Vy
cmVudFJlbmRlckZsb3dUaHJlYWQoKTsKICAgICBpZiAoZmxvd1RocmVhZCkKICAgICAgICAgcmV0
dXJuIGZsb3dUaHJlYWQ7CiAgICAgCkBAIC0yMjg5LDcgKzIyOTAsNyBAQCB2b2lkIFJlbmRlck9i
amVjdDo6d2lsbEJlRGVzdHJveWVkKCkKICNpZm5kZWYgTkRFQlVHCiAgICAgaWYgKCFkb2N1bWVu
dEJlaW5nRGVzdHJveWVkKCkgJiYgdmlldygpICYmIHZpZXcoKS0+aGFzUmVuZGVyTmFtZWRGbG93
VGhyZWFkcygpKSB7CiAgICAgICAgIC8vIEFmdGVyIHJlbW92ZSwgdGhlIG9iamVjdCBhbmQgdGhl
IGFzc29jaWF0ZWQgaW5mb3JtYXRpb24gc2hvdWxkIG5vdCBiZSBpbiBhbnkgZmxvdyB0aHJlYWQu
Ci0gICAgICAgIGNvbnN0IFJlbmRlck5hbWVkRmxvd1RocmVhZExpc3QqIGZsb3dUaHJlYWRMaXN0
ID0gdmlldygpLT5yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0KCk7CisgICAgICAgIGNvbnN0IFJl
bmRlck5hbWVkRmxvd1RocmVhZExpc3QqIGZsb3dUaHJlYWRMaXN0ID0gdmlldygpLT5mbG93VGhy
ZWFkQ29udHJvbGxlcigpLT5yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0KCk7CiAgICAgICAgIGZv
ciAoUmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdDo6Y29uc3RfaXRlcmF0b3IgaXRlciA9IGZsb3dU
aHJlYWRMaXN0LT5iZWdpbigpOyBpdGVyICE9IGZsb3dUaHJlYWRMaXN0LT5lbmQoKTsgKytpdGVy
KSB7CiAgICAgICAgICAgICBjb25zdCBSZW5kZXJOYW1lZEZsb3dUaHJlYWQqIHJlbmRlckZsb3dU
aHJlYWQgPSAqaXRlcjsKICAgICAgICAgICAgIEFTU0VSVCghcmVuZGVyRmxvd1RocmVhZC0+aGFz
Q2hpbGQodGhpcykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRyZWVBc1RleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1Rl
eHQuY3BwCmluZGV4IGVmZjJkMWFjZDcwNjM4YzE2OGU4YWRkMzgwMjhkOGRhZWNjOWEwODIuLjI2
NWI1OWE3MTYyZTQ1ZmQ4ODc0OGU5ZTRhNjBlNDUwNGQ3MjBlNWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNp
bmNsdWRlICJSZW5kZXJUcmVlQXNUZXh0LmgiCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2lu
Y2x1ZGUgIkZsb3dUaHJlYWRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNs
dWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgpAQCAtNjQ1LDEw
ICs2NDYsMTEgQEAgc3RhdGljIHZvaWQgd3JpdGUoVGV4dFN0cmVhbSYgdHMsIFJlbmRlckxheWVy
JiBsLAogc3RhdGljIHZvaWQgd3JpdGVSZW5kZXJOYW1lZEZsb3dUaHJlYWRzKFRleHRTdHJlYW0m
IHRzLCBSZW5kZXJWaWV3KiByZW5kZXJWaWV3LCBjb25zdCBSZW5kZXJMYXllciogcm9vdExheWVy
LAogICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50UmVjdCYgcGFpbnRSZWN0LCBpbnQg
aW5kZW50LCBSZW5kZXJBc1RleHRCZWhhdmlvciBiZWhhdmlvcikKIHsKLSAgICBjb25zdCBSZW5k
ZXJOYW1lZEZsb3dUaHJlYWRMaXN0KiBsaXN0ID0gcmVuZGVyVmlldy0+cmVuZGVyTmFtZWRGbG93
VGhyZWFkTGlzdCgpOwotICAgIGlmICghbGlzdCB8fCBsaXN0LT5pc0VtcHR5KCkpCisgICAgaWYg
KCFyZW5kZXJWaWV3LT5oYXNSZW5kZXJOYW1lZEZsb3dUaHJlYWRzKCkpCiAgICAgICAgIHJldHVy
bjsKIAorICAgIGNvbnN0IFJlbmRlck5hbWVkRmxvd1RocmVhZExpc3QqIGxpc3QgPSByZW5kZXJW
aWV3LT5mbG93VGhyZWFkQ29udHJvbGxlcigpLT5yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0KCk7
CisKICAgICB3cml0ZUluZGVudCh0cywgaW5kZW50KTsKICAgICB0cyA8PCAiRmxvdyBUaHJlYWRz
XG4iOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKaW5kZXggZGQ3YjY1
YjRmNGFmMGQ0Y2IyMTM1ZTA0OWU0NmEzMTc3ZTQ2MTEyOC4uNGJhMmFmYTc0OWMzNTYzNDM3NmM3
ZjZkNWM4NmM5NTI0NzM3ZTdhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3
LmNwcApAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAi
RWxlbWVudC5oIgogI2luY2x1ZGUgIkZsb2F0UXVhZC5oIgorI2luY2x1ZGUgIkZsb3dUaHJlYWRD
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIK
ICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKQEAgLTU0LDEwICs1NSw4IEBAIFJlbmRlclZp
ZXc6OlJlbmRlclZpZXcoTm9kZSogbm9kZSwgRnJhbWVWaWV3KiB2aWV3KQogICAgICwgbV9tYXhp
bWFsT3V0bGluZVNpemUoMCkKICAgICAsIG1fcGFnZUxvZ2ljYWxIZWlnaHQoMCkKICAgICAsIG1f
cGFnZUxvZ2ljYWxIZWlnaHRDaGFuZ2VkKGZhbHNlKQotICAgICwgbV9pc1JlbmRlck5hbWVkRmxv
d1RocmVhZE9yZGVyRGlydHkoZmFsc2UpCiAgICAgLCBtX2xheW91dFN0YXRlKDApCiAgICAgLCBt
X2xheW91dFN0YXRlRGlzYWJsZUNvdW50KDApCi0gICAgLCBtX2N1cnJlbnRSZW5kZXJGbG93VGhy
ZWFkKDApCiB7CiAgICAgLy8gQ2xlYXIgb3VyIGFub255bW91cyBiaXQsIHNldCBiZWNhdXNlIFJl
bmRlck9iamVjdCBhc3N1bWVzCiAgICAgLy8gYW55IHJlbmRlcmVyIHdpdGggZG9jdW1lbnQgYXMg
dGhlIG5vZGUgaXMgYW5vbnltb3VzLgpAQCAtMTM4LDcgKzEzNyw3IEBAIHZvaWQgUmVuZGVyVmll
dzo6bGF5b3V0KCkKICAgICBpZiAobmVlZHNMYXlvdXQoKSkgewogICAgICAgICBSZW5kZXJCbG9j
azo6bGF5b3V0KCk7CiAgICAgICAgIGlmIChoYXNSZW5kZXJOYW1lZEZsb3dUaHJlYWRzKCkpCi0g
ICAgICAgICAgICBsYXlvdXRSZW5kZXJOYW1lZEZsb3dUaHJlYWRzKCk7CisgICAgICAgICAgICBm
bG93VGhyZWFkQ29udHJvbGxlcigpLT5sYXlvdXRSZW5kZXJOYW1lZEZsb3dUaHJlYWRzKCk7CiAg
ICAgfQogCiAgICAgQVNTRVJUKGxheW91dERlbHRhKCkgPT0gTGF5b3V0U2l6ZSgpKTsKQEAgLTg5
Niw1MCArODk1LDE3IEBAIHZvaWQgUmVuZGVyVmlldzo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZm
ZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsCiAgICAgfQogfQogCi1SZW5k
ZXJOYW1lZEZsb3dUaHJlYWQqIFJlbmRlclZpZXc6OmVuc3VyZVJlbmRlckZsb3dUaHJlYWRXaXRo
TmFtZShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpCitib29sIFJlbmRlclZpZXc6Omhhc1JlbmRl
ck5hbWVkRmxvd1RocmVhZHMoKSBjb25zdAogewotICAgIGlmICghbV9yZW5kZXJOYW1lZEZsb3dU
aHJlYWRMaXN0KQotICAgICAgICBtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3QgPSBhZG9wdFB0
cihuZXcgUmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdCgpKTsKLSAgICBlbHNlIHsKLSAgICAgICAg
Zm9yIChSZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0OjppdGVyYXRvciBpdGVyID0gbV9yZW5kZXJO
YW1lZEZsb3dUaHJlYWRMaXN0LT5iZWdpbigpOyBpdGVyICE9IG1fcmVuZGVyTmFtZWRGbG93VGhy
ZWFkTGlzdC0+ZW5kKCk7ICsraXRlcikgewotICAgICAgICAgICAgUmVuZGVyTmFtZWRGbG93VGhy
ZWFkKiBmbG93UmVuZGVyZXIgPSAqaXRlcjsKLSAgICAgICAgICAgIGlmIChmbG93UmVuZGVyZXIt
PmZsb3dUaHJlYWROYW1lKCkgPT0gbmFtZSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmxvd1Jl
bmRlcmVyOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgUmVuZGVyTmFtZWRGbG93VGhyZWFkKiBm
bG93UmVuZGVyZXIgPSBuZXcgKHJlbmRlckFyZW5hKCkpIFJlbmRlck5hbWVkRmxvd1RocmVhZChk
b2N1bWVudCgpLCBuYW1lKTsKLSAgICBmbG93UmVuZGVyZXItPnNldFN0eWxlKFJlbmRlckZsb3dU
aHJlYWQ6OmNyZWF0ZUZsb3dUaHJlYWRTdHlsZShzdHlsZSgpKSk7Ci0gICAgYWRkQ2hpbGQoZmxv
d1JlbmRlcmVyKTsKLQotICAgIG1fcmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdC0+YWRkKGZsb3dS
ZW5kZXJlcik7Ci0gICAgc2V0SXNSZW5kZXJOYW1lZEZsb3dUaHJlYWRPcmRlckRpcnR5KHRydWUp
OwotCi0gICAgcmV0dXJuIGZsb3dSZW5kZXJlcjsKKyAgICByZXR1cm4gbV9mbG93VGhyZWFkQ29u
dHJvbGxlciAmJiBtX2Zsb3dUaHJlYWRDb250cm9sbGVyLT5oYXNSZW5kZXJOYW1lZEZsb3dUaHJl
YWRzKCk7CiB9CiAKLXZvaWQgUmVuZGVyVmlldzo6bGF5b3V0UmVuZGVyTmFtZWRGbG93VGhyZWFk
cygpCitGbG93VGhyZWFkQ29udHJvbGxlciogUmVuZGVyVmlldzo6Zmxvd1RocmVhZENvbnRyb2xs
ZXIoKQogewotICAgIEFTU0VSVChtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3QpOworICAgIGlm
ICghbV9mbG93VGhyZWFkQ29udHJvbGxlcikKKyAgICAgICAgbV9mbG93VGhyZWFkQ29udHJvbGxl
ciA9IEZsb3dUaHJlYWRDb250cm9sbGVyOjpjcmVhdGUodGhpcyk7CiAKLSAgICBpZiAoaXNSZW5k
ZXJOYW1lZEZsb3dUaHJlYWRPcmRlckRpcnR5KCkpIHsKLSAgICAgICAgLy8gQXJyYW5nZSB0aGUg
dGhyZWFkIGxpc3QgYWNjb3JkaW5nIHRvIGRlcGVuZGVuY2llcy4KLSAgICAgICAgUmVuZGVyTmFt
ZWRGbG93VGhyZWFkTGlzdCBzb3J0ZWRMaXN0OwotICAgICAgICBmb3IgKFJlbmRlck5hbWVkRmxv
d1RocmVhZExpc3Q6Oml0ZXJhdG9yIGl0ZXIgPSBtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3Qt
PmJlZ2luKCk7IGl0ZXIgIT0gbV9yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0LT5lbmQoKTsgKytp
dGVyKSB7Ci0gICAgICAgICAgICBSZW5kZXJOYW1lZEZsb3dUaHJlYWQqIGZsb3dSZW5kZXJlciA9
ICppdGVyOwotICAgICAgICAgICAgaWYgKHNvcnRlZExpc3QuY29udGFpbnMoZmxvd1JlbmRlcmVy
KSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGZsb3dSZW5kZXJlci0+
cHVzaERlcGVuZGVuY2llcyhzb3J0ZWRMaXN0KTsKLSAgICAgICAgICAgIHNvcnRlZExpc3QuYWRk
KGZsb3dSZW5kZXJlcik7Ci0gICAgICAgIH0KLSAgICAgICAgbV9yZW5kZXJOYW1lZEZsb3dUaHJl
YWRMaXN0LT5zd2FwKHNvcnRlZExpc3QpOwotICAgICAgICBzZXRJc1JlbmRlck5hbWVkRmxvd1Ro
cmVhZE9yZGVyRGlydHkoZmFsc2UpOwotICAgIH0KLQotICAgIGZvciAoUmVuZGVyTmFtZWRGbG93
VGhyZWFkTGlzdDo6aXRlcmF0b3IgaXRlciA9IG1fcmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdC0+
YmVnaW4oKTsgaXRlciAhPSBtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3QtPmVuZCgpOyArK2l0
ZXIpIHsKLSAgICAgICAgUmVuZGVyTmFtZWRGbG93VGhyZWFkKiBmbG93UmVuZGVyZXIgPSAqaXRl
cjsKLSAgICAgICAgZmxvd1JlbmRlcmVyLT5sYXlvdXRJZk5lZWRlZCgpOwotICAgIH0KKyAgICBy
ZXR1cm4gbV9mbG93VGhyZWFkQ29udHJvbGxlci5nZXQoKTsKIH0KIAogUmVuZGVyQmxvY2s6Oklu
dGVydmFsQXJlbmEqIFJlbmRlclZpZXc6OmludGVydmFsQXJlbmEoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJWaWV3LmgKaW5kZXggMDIxYTc5ZDJhNDMxODY1YTQ4MTc0NTE4MjRlOTJhNzQ4
NjAyYjU5NS4uYmI4MmMxODliYjc3MTYwYzdhMmM0MTY0Njc5NTVlYTlkY2JhNDI3YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCkBAIC0yNiwyMCArMjYsMTcgQEAKICNpbmNs
dWRlICJMYXlvdXRTdGF0ZS5oIgogI2luY2x1ZGUgIlBPREZyZWVMaXN0QXJlbmEuaCIKICNpbmNs
dWRlICJSZW5kZXJCbG9jay5oIgotI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgogI2luY2x1
ZGUgPHd0Zi9Pd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBSZW5kZXJO
YW1lZEZsb3dUaHJlYWQ7CitjbGFzcyBGbG93VGhyZWFkQ29udHJvbGxlcjsKIGNsYXNzIFJlbmRl
cldpZGdldDsKIAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIGNsYXNzIFJlbmRl
ckxheWVyQ29tcG9zaXRvcjsKICNlbmRpZgogCi10eXBlZGVmIExpc3RIYXNoU2V0PFJlbmRlck5h
bWVkRmxvd1RocmVhZCo+IFJlbmRlck5hbWVkRmxvd1RocmVhZExpc3Q7Ci0KIGNsYXNzIFJlbmRl
clZpZXcgOiBwdWJsaWMgUmVuZGVyQmxvY2sgewogcHVibGljOgogICAgIFJlbmRlclZpZXcoTm9k
ZSosIEZyYW1lVmlldyopOwpAQCAtMTcyLDIwICsxNjksOCBAQCBwdWJsaWM6CiAKICAgICBJbnRS
ZWN0IGRvY3VtZW50UmVjdCgpIGNvbnN0OwogCi0gICAgUmVuZGVyTmFtZWRGbG93VGhyZWFkKiBl
bnN1cmVSZW5kZXJGbG93VGhyZWFkV2l0aE5hbWUoY29uc3QgQXRvbWljU3RyaW5nJik7Ci0gICAg
Ym9vbCBoYXNSZW5kZXJOYW1lZEZsb3dUaHJlYWRzKCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJO
YW1lZEZsb3dUaHJlYWRMaXN0ICYmICFtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3QtPmlzRW1w
dHkoKTsgfQotICAgIHZvaWQgbGF5b3V0UmVuZGVyTmFtZWRGbG93VGhyZWFkcygpOwotICAgIGJv
b2wgaXNSZW5kZXJOYW1lZEZsb3dUaHJlYWRPcmRlckRpcnR5KCkgY29uc3QgeyByZXR1cm4gbV9p
c1JlbmRlck5hbWVkRmxvd1RocmVhZE9yZGVyRGlydHk7IH0KLSAgICB2b2lkIHNldElzUmVuZGVy
TmFtZWRGbG93VGhyZWFkT3JkZXJEaXJ0eShib29sIGRpcnR5KQotICAgIHsKLSAgICAgICAgbV9p
c1JlbmRlck5hbWVkRmxvd1RocmVhZE9yZGVyRGlydHkgPSBkaXJ0eTsKLSAgICAgICAgaWYgKGRp
cnR5KQotICAgICAgICAgICAgc2V0TmVlZHNMYXlvdXQodHJ1ZSk7Ci0gICAgfQotICAgIGNvbnN0
IFJlbmRlck5hbWVkRmxvd1RocmVhZExpc3QqIHJlbmRlck5hbWVkRmxvd1RocmVhZExpc3QoKSBj
b25zdCB7IHJldHVybiBtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3QuZ2V0KCk7IH0KLQotICAg
IFJlbmRlckZsb3dUaHJlYWQqIGN1cnJlbnRSZW5kZXJGbG93VGhyZWFkKCkgY29uc3QgeyByZXR1
cm4gbV9jdXJyZW50UmVuZGVyRmxvd1RocmVhZDsgfQotICAgIHZvaWQgc2V0Q3VycmVudFJlbmRl
ckZsb3dUaHJlYWQoUmVuZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCkgeyBtX2N1cnJlbnRSZW5k
ZXJGbG93VGhyZWFkID0gZmxvd1RocmVhZDsgfQorICAgIGJvb2wgaGFzUmVuZGVyTmFtZWRGbG93
VGhyZWFkcygpIGNvbnN0OworICAgIEZsb3dUaHJlYWRDb250cm9sbGVyKiBmbG93VGhyZWFkQ29u
dHJvbGxlcigpOwogCiAgICAgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNv
bnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSk7CiAKQEAgLTI3MSwxNCArMjU2LDEyIEBAIHByb3Rl
Y3RlZDoKIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9wYWdlTG9naWNhbEhlaWdodDsKICAgICBi
b29sIG1fcGFnZUxvZ2ljYWxIZWlnaHRDaGFuZ2VkOwotICAgIGJvb2wgbV9pc1JlbmRlck5hbWVk
Rmxvd1RocmVhZE9yZGVyRGlydHk7CiAgICAgTGF5b3V0U3RhdGUqIG1fbGF5b3V0U3RhdGU7CiAg
ICAgdW5zaWduZWQgbV9sYXlvdXRTdGF0ZURpc2FibGVDb3VudDsKICNpZiBVU0UoQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiAgICAgT3duUHRyPFJlbmRlckxheWVyQ29tcG9zaXRvcj4gbV9jb21w
b3NpdG9yOwogI2VuZGlmCi0gICAgT3duUHRyPFJlbmRlck5hbWVkRmxvd1RocmVhZExpc3Q+IG1f
cmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdDsKLSAgICBSZW5kZXJGbG93VGhyZWFkKiBtX2N1cnJl
bnRSZW5kZXJGbG93VGhyZWFkOworICAgIE93blB0cjxGbG93VGhyZWFkQ29udHJvbGxlcj4gbV9m
bG93VGhyZWFkQ29udHJvbGxlcjsKICAgICBSZWZQdHI8SW50ZXJ2YWxBcmVuYT4gbV9pbnRlcnZh
bEFyZW5hOwogfTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>