<?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>164400</bug_id>
          
          <creation_ts>2016-11-03 21:31:22 -0700</creation_ts>
          <short_desc>Give all the geometry classes a single-argument scale() function for consistency</short_desc>
          <delta_ts>2016-11-03 22:14:15 -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>New Bugs</component>
          <version>WebKit 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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1248022</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-11-03 21:31:22 -0700</bug_when>
    <thetext>Give all the geometry classes a single-argument scale() function for consistency</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248023</commentid>
    <comment_count>1</comment_count>
      <attachid>293855</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-11-03 21:32:58 -0700</bug_when>
    <thetext>Created attachment 293855
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248044</commentid>
    <comment_count>2</comment_count>
      <attachid>293855</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-03 22:14:11 -0700</bug_when>
    <thetext>Comment on attachment 293855
Patch

Clearing flags on attachment: 293855

Committed r208371: &lt;http://trac.webkit.org/changeset/208371&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248045</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-11-03 22:14:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>293855</attachid>
            <date>2016-11-03 21:32:58 -0700</date>
            <delta_ts>2016-11-03 22:14:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164400-20161103212857.patch</filename>
            <type>text/plain</type>
            <size>50416</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA4MzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWE3NDM3ODI0YzNiZDc1
YzJjN2ZkZmJhMDljMzM2MTY1OTMzMTZkZS4uNjBjZWJiNGUzNzhmODEzYzIyOGJlMGU3NWI3MWFi
YWYxOTlhNTJjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDE2LTExLTAzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEdpdmUgYWxsIHRo
ZSBnZW9tZXRyeSBjbGFzc2VzIGEgc2luZ2xlLWFyZ3VtZW50IHNjYWxlKCkgZnVuY3Rpb24gZm9y
IGNvbnNpc3RlbmN5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjQ0MDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgc2luZ2xlLWFyZ3VtZW50IHNjYWxlKCkgdG8gRmxvYXRQb2ludCwgRmxvYXRRdWFk
LCBGbG9hdFNpemUgYW5kIExheW91dFBvaW50LCBhcyB3ZWxsCisgICAgICAgIGFzIGFkZGluZyBv
bmUgdG8gR3JhcGhpY3NDb250ZXh0LiBTd2l0Y2ggY2FsbGVycyB3aG8gcGFzc2VkIHRoZSBzYW1l
IHZhbHVlIGZvciBzeCBhbmQgc3kKKyAgICAgICAgdG8gdGhlIG5ldyBmdW5jdGlvbnMuCisKKyAg
ICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFk
anVzdEZsb2F0UXVhZHNGb3JTY3JvbGxBbmRBYnNvbHV0ZVpvb21BbmRGcmFtZVNjYWxlKToKKyAg
ICAgICAgKiBkb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW91
c2VSZWxhdGVkRXZlbnQ6OmluaXQpOgorICAgICAgICAoV2ViQ29yZTo6TW91c2VSZWxhdGVkRXZl
bnQ6OmNvbXB1dGVSZWxhdGl2ZVBvc2l0aW9uKToKKyAgICAgICAgKiBkb20vVHJlZVNjb3BlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6bm9kZUZyb21Qb2ludCk6CisgICAgICAg
ICogcGFnZS9QcmludENvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJpbnRDb250ZXh0
OjpzcG9vbFBhZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1RoZW1lQ29jb2EubW06Cisg
ICAgICAgIChXZWJDb3JlOjpmaXRDb250ZXh0VG9Cb3gpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0Zsb2F0UG9pbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0UG9pbnQ6OnNjYWxl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFF1YWQuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkZsb2F0UXVhZDo6c2NhbGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Zs
b2F0U2l6ZS5oOgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRTaXplOjpzY2FsZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDo6YXBwbHlEZXZpY2VTY2FsZUZhY3Rvcik6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQ6OnNjYWxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9MYXlv
dXRQb2ludC5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0UG9pbnQ6OnNjYWxlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ292ZXJhZ2VNYXAuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VGlsZUNvdmVyYWdlTWFwOjp1cGRhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NhL1RpbGVHcmlkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVHcmlkOjpwbGF0
Zm9ybUNBTGF5ZXJQYWludENvbnRlbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
Zy9JbWFnZUJ1ZmZlckNHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpkcmF3
Q29uc3VtaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpkcmF3KToKKyAgICAg
ICAgKFdlYkNvcmU6OkltYWdlQnVmZmVyOjpkcmF3UGF0dGVybik6CisgICAgICAgICogcGxhdGZv
cm0vbWFjL1RoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6cGFpbnRUb2dnbGVCdXR0b24p
OgorICAgICAgICAoV2ViQ29yZTo6cGFpbnRCdXR0b24pOgorICAgICAgICAoV2ViQ29yZTo6cGFp
bnRTdGVwcGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6Om5vZGVBdFBvaW50KToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTWVkaWFDb250cm9scy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRVbnpvb21l
ZFJlY3RBbmRBZGp1c3RDdXJyZW50Q29udGV4dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnBhaW50TWVu
dUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnBhaW50U2xpZGVyVGh1
bWIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnBhaW50U2VhcmNoRmllbGQp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnBhaW50U2VhcmNoRmllbGRDYW5j
ZWxCdXR0b24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnBhaW50U2VhcmNo
RmllbGRSZXN1bHRzQnV0dG9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRl
eHRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW5saW5lVGV4dEJveDo6c2VsZWN0aW9u
UmVjdEZvclRleHRGcmFnbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbmxpbmVUZXh0Qm94
OjpwYWludERlY29yYXRpb25XaXRoU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW5saW5l
VGV4dEJveDo6cGFpbnRUZXh0V2l0aFNoYWRvd3MpOgorICAgICAgICAqIHN2Zy9TVkdQYXRoQmxl
bmRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoQmxlbmRlcjo6YmxlbmRBbmltYXRl
ZEZsb2F0UG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEJsZW5kZXI6OmJsZW5kQXJj
VG9TZWdtZW50KToKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFBhcnNlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdQYXRoUGFyc2VyOjpwYXJzZUN1cnZlVG9DdWJpY1Ntb290aFNlZ21lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aFBhcnNlcjo6cGFyc2VDdXJ2ZVRvUXVhZHJhdGljU2Vn
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoUGFyc2VyOjpwYXJzZUN1cnZlVG9RdWFk
cmF0aWNTbW9vdGhTZWdtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhQYXJzZXI6OmRl
Y29tcG9zZUFyY1RvQ3ViaWMpOgorICAgICAgICAqIHN2Zy9TVkdTVkdFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1NWR0VsZW1lbnQ6OmxvY2FsQ29vcmRpbmF0ZVNwYWNlVHJhbnNm
b3JtKToKKwogMjAxNi0xMS0wMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNv
bT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjA4MDI1KSBHcmFwaGljc0NvbnRleHQgc3RhdGUg
c3RhY2sgYXNzZXJ0aW9ucyBsb2FkaW5nIHdlYmtpdC5vcmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA1NWI3MWM2
ZmU1MzU4NGE2YjVjNjAyMzY4OWZiY2VjZTgxMGQ4MDkyLi5mNTIyYjEzZGVkNzM3M2FjNmEwZGYy
NDRlYzUyODBjOGNmZTlhMjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMTYtMTEt
MDMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgR2l2
ZSBhbGwgdGhlIGdlb21ldHJ5IGNsYXNzZXMgYSBzaW5nbGUtYXJndW1lbnQgc2NhbGUoKSBmdW5j
dGlvbiBmb3IgY29uc2lzdGVuY3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2NDQwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorICAgICAgICAKKyAgICAgICAgVXNlIHNpbmdsZS1hcmd1bWVudCBzY2FsZSgpIGZ1bmN0aW9u
cy4KKworICAgICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UGx1Z2luQ29udHJvbGxlclByb3h5OjpwYWludCk6CisgICAgICAg
ICogU2hhcmVkL21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmRyYXdJbkNvbnRleHQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2Rp
ZENvbW1pdExheWVyVHJlZTpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF90YWtlVmlld1NuYXBz
aG90XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRp
b246c2Nyb2xsT3JpZ2luOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Njcm9sbEJ5Q29udGVu
dE9mZnNldDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF96b29tVG9Gb2N1c1JlY3Q6c2VsZWN0
aW9uUmVjdDpmb250U2l6ZTptaW5pbXVtU2NhbGU6bWF4aW11bVNjYWxlOmFsbG93U2NhbGluZzpm
b3JjZVNjcm9sbDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW06
CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2RpZENvbW1pdExheWVyVHJlZTpdKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAg
KC1bV0tDb250ZW50VmlldyBfdXBkYXRlVGFwSGlnaGxpZ2h0XSk6CisgICAgICAgICogVUlQcm9j
ZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjppbmRpY2F0b3JMb2NhdGlvbik6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OnVwZGF0
ZURlYnVnSW5kaWNhdG9yKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29u
dHJvbGxlck1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpz
Y2FsZWRNYWduaWZpY2F0aW9uT3JpZ2luKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6SW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZTo6cmVuZGVyZWRJbWFnZSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TmV0c2NhcGVQbHVnaW46OnNuYXBzaG90KToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjpz
Y3JvbGxUb1BvaW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6Y3JlYXRlU2VsZWN0aW9uU25hcHNob3QpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6c2NhbGVQYWdlSW5WaWV3Q29vcmRpbmF0ZXMpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjpzY2FsZVZpZXcpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzbmFwc2hv
dEF0U2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNuYXBzaG90Tm9kZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRyYXdSZWN0VG9JbWFnZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjpyZXN0b3JlUGFnZVN0YXRlKToKKwogMjAxNi0xMS0wMiAgRGF2aWQgS2lsemVyICA8ZGRraWx6
ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEJ1ZyAxNjQzMzM6IEFkZCBsb2dnaW5nIGZvciAiV2Vi
S2l0IGVuY291bnRlcmVkIGFuIGludGVybmFsIGVycm9yIiBtZXNzYWdlcyBkdWUgdG8gTmV0d29y
ayBwcm9jZXNzIGNyYXNoZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDYwOWY0MTRmZmUy
NGE1Njc2NmQyMDNhMDE0ZWY2YjhlNjYwMzM3OGUuLmM2NjFlYTFjNmUyYmQ5OGVlZGY3YzQxYjgw
OThlMmRjMWY0NjZmZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNjQ2MCw5ICs2NDYw
LDkgQEAgdm9pZCBEb2N1bWVudDo6YWRqdXN0RmxvYXRRdWFkc0ZvclNjcm9sbEFuZEFic29sdXRl
Wm9vbUFuZEZyYW1lU2NhbGUoVmVjdG9yPEZsb2EKICAgICBmb3IgKGF1dG8mIHF1YWQgOiBxdWFk
cykgewogICAgICAgICBxdWFkLm1vdmUoLXZpc2libGVDb250ZW50UmVjdC54KCksIC12aXNpYmxl
Q29udGVudFJlY3QueSgpKTsKICAgICAgICAgaWYgKHpvb20gIT0gMSkKLSAgICAgICAgICAgIHF1
YWQuc2NhbGUoMSAvIHpvb20sIDEgLyB6b29tKTsKKyAgICAgICAgICAgIHF1YWQuc2NhbGUoMSAv
IHpvb20pOwogICAgICAgICBpZiAoaW52ZXJzZUZyYW1lU2NhbGUgIT0gMSkKLSAgICAgICAgICAg
IHF1YWQuc2NhbGUoaW52ZXJzZUZyYW1lU2NhbGUsIGludmVyc2VGcmFtZVNjYWxlKTsKKyAgICAg
ICAgICAgIHF1YWQuc2NhbGUoaW52ZXJzZUZyYW1lU2NhbGUpOwogICAgIH0KIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Nb3VzZVJlbGF0ZWRFdmVudC5jcHAKaW5kZXggODc5YzFjZDAzOTk5Mjk4YTQ4
N2Q1ZWY2MzE3ODRmMDhhNmY4NjMxMi4uODI5MTI2YjJjOTQ0OTUzZWEzZDE5ZjBjZTEzZGU3MGY2
MTQ2YTg3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwCkBAIC05
NCw4ICs5NCw4IEBAIHZvaWQgTW91c2VSZWxhdGVkRXZlbnQ6OmluaXQoYm9vbCBpc1NpbXVsYXRl
ZCwgY29uc3QgSW50UG9pbnQmIHdpbmRvd0xvY2F0aW9uKQogICAgICAgICAgICAgYWRqdXN0ZWRQ
YWdlTG9jYXRpb24gPSBmcmFtZVZpZXctPndpbmRvd1RvQ29udGVudHMod2luZG93TG9jYXRpb24p
OwogICAgICAgICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSAxIC8gKGZyYW1lLT5wYWdlWm9vbUZh
Y3RvcigpICogZnJhbWUtPmZyYW1lU2NhbGVGYWN0b3IoKSk7CiAgICAgICAgICAgICBpZiAoc2Nh
bGVGYWN0b3IgIT0gMS4wZikgewotICAgICAgICAgICAgICAgIGFkanVzdGVkUGFnZUxvY2F0aW9u
LnNjYWxlKHNjYWxlRmFjdG9yLCBzY2FsZUZhY3Rvcik7Ci0gICAgICAgICAgICAgICAgc2Nyb2xs
UG9zaXRpb24uc2NhbGUoc2NhbGVGYWN0b3IsIHNjYWxlRmFjdG9yKTsKKyAgICAgICAgICAgICAg
ICBhZGp1c3RlZFBhZ2VMb2NhdGlvbi5zY2FsZShzY2FsZUZhY3Rvcik7CisgICAgICAgICAgICAg
ICAgc2Nyb2xsUG9zaXRpb24uc2NhbGUoc2NhbGVGYWN0b3IpOwogICAgICAgICAgICAgfQogICAg
ICAgICB9CiAgICAgfQpAQCAtMTgyLDcgKzE4Miw3IEBAIHZvaWQgTW91c2VSZWxhdGVkRXZlbnQ6
OmNvbXB1dGVSZWxhdGl2ZVBvc2l0aW9uKCkKICAgICAgICAgbV9vZmZzZXRMb2NhdGlvbiA9IExh
eW91dFBvaW50KHItPmFic29sdXRlVG9Mb2NhbChhYnNvbHV0ZUxvY2F0aW9uKCksIFVzZVRyYW5z
Zm9ybXMpKTsKICAgICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSAxIC8gKHBhZ2Vab29tRmFjdG9y
KHRoaXMpICogZnJhbWVTY2FsZUZhY3Rvcih0aGlzKSk7CiAgICAgICAgIGlmIChzY2FsZUZhY3Rv
ciAhPSAxLjBmKQotICAgICAgICAgICAgbV9vZmZzZXRMb2NhdGlvbi5zY2FsZShzY2FsZUZhY3Rv
ciwgc2NhbGVGYWN0b3IpOworICAgICAgICAgICAgbV9vZmZzZXRMb2NhdGlvbi5zY2FsZShzY2Fs
ZUZhY3Rvcik7CiAgICAgfQogCiAgICAgLy8gQWRqdXN0IGxheWVyTG9jYXRpb24gdG8gYmUgcmVs
YXRpdmUgdG8gdGhlIGxheWVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVT
Y29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAppbmRleCBhOGZjOWIz
YzA3OTM5ZTZhNDdiZjMxMGVmZDAzYzYxZTMyNDdjMjYwLi5hOGMxNjhjYzkyZGE1NWRhNzUzMmM5
ZTNiY2MxNDdhNDZhYmUxMDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNj
b3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcApAQCAtMjg0LDcg
KzI4NCw3IEBAIE5vZGUqIFRyZWVTY29wZTo6bm9kZUZyb21Qb2ludChjb25zdCBMYXlvdXRQb2lu
dCYgY2xpZW50UG9pbnQsIExheW91dFBvaW50KiBsb2NhCiAgICAgZmxvYXQgc2NhbGVGYWN0b3Ig
PSBmcmFtZS0+cGFnZVpvb21GYWN0b3IoKSAqIGZyYW1lLT5mcmFtZVNjYWxlRmFjdG9yKCk7CiAK
ICAgICBMYXlvdXRQb2ludCBjb250ZW50c1BvaW50ID0gY2xpZW50UG9pbnQ7Ci0gICAgY29udGVu
dHNQb2ludC5zY2FsZShzY2FsZUZhY3Rvciwgc2NhbGVGYWN0b3IpOworICAgIGNvbnRlbnRzUG9p
bnQuc2NhbGUoc2NhbGVGYWN0b3IpOwogICAgIGNvbnRlbnRzUG9pbnQubW92ZUJ5KHZpZXctPmNv
bnRlbnRzU2Nyb2xsUG9zaXRpb24oKSk7CiAKICAgICBMYXlvdXRSZWN0IHZpc2libGVSZWN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QcmludENvbnRleHQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QcmludENvbnRleHQuY3BwCmluZGV4IDU0ZGVhMzZmOTJhZWEwZmQzZGM1
MTVhZTk5ZDAyZWQyZWFlM2Y0MjkuLjM5ODRmYmMwNzdlM2EzYzliNzI4MGJkYjFlOGZhZjFiNDk4
NzYyY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUHJpbnRDb250ZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1ByaW50Q29udGV4dC5jcHAKQEAgLTE4Niw3ICsxODYs
NyBAQCB2b2lkIFByaW50Q29udGV4dDo6c3Bvb2xQYWdlKEdyYXBoaWNzQ29udGV4dCYgY3R4LCBp
bnQgcGFnZU51bWJlciwgZmxvYXQgd2lkdGgpCiAgICAgZmxvYXQgc2NhbGUgPSB3aWR0aCAvIHBh
Z2VSZWN0LndpZHRoKCk7CiAKICAgICBjdHguc2F2ZSgpOwotICAgIGN0eC5zY2FsZShGbG9hdFNp
emUoc2NhbGUsIHNjYWxlKSk7CisgICAgY3R4LnNjYWxlKHNjYWxlKTsKICAgICBjdHgudHJhbnNs
YXRlKC1wYWdlUmVjdC54KCksIC1wYWdlUmVjdC55KCkpOwogICAgIGN0eC5jbGlwKHBhZ2VSZWN0
KTsKICAgICBtX2ZyYW1lLT52aWV3KCktPnBhaW50Q29udGVudHMoY3R4LCBwYWdlUmVjdCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9UaGVtZUNvY29hLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVGhlbWVDb2NvYS5tbQppbmRleCBlNzcyNjFl
NWI2MTMyM2MxODZhYjVjMjZkN2NjZGY4M2VlOWQ2NzVkLi40OGIyZTVlNGI1MjdlYTFkYTA0ZDkz
MmEzNzgwNGMwY2I1N2NlMDZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9UaGVtZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Ro
ZW1lQ29jb2EubW0KQEAgLTQ3LDcgKzQ3LDcgQEAgc3RhdGljIHZvaWQgZml0Q29udGV4dFRvQm94
KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRTaXplJiBzcmNJbWFnZVMKICAg
ICAgICAgdHJhbnNsYXRpb25YID0gKGRzdFNpemUud2lkdGgoKSAtIHNjYWxlICogc3JjSW1hZ2VT
aXplLndpZHRoKCkpIC8gMjsKICAgICB9CiAgICAgY29udGV4dC50cmFuc2xhdGUodHJhbnNsYXRp
b25YLCB0cmFuc2xhdGlvblkpOwotICAgIGNvbnRleHQuc2NhbGUoRmxvYXRTaXplKHNjYWxlLCBz
Y2FsZSkpOworICAgIGNvbnRleHQuc2NhbGUoc2NhbGUpOwogfQogCiAjaWYgRU5BQkxFKEFQUExF
X1BBWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0
UG9pbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQuaApp
bmRleCAzNjEzMjM2ZjIxODU4ZWYzMGZkYTcyYzQ2NTBjMzg4NGQ4NjE3N2E1Li43YTQxN2I0YjEx
NWUwMzBlODYzMThlNDdiZThkMzUwYjk4NDVmNDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFBvaW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludC5oCkBAIC03NiwzNiArNzYsNDkgQEAgcHVibGljOgog
CiAgICAgdm9pZCBzZXRYKGZsb2F0IHgpIHsgbV94ID0geDsgfQogICAgIHZvaWQgc2V0WShmbG9h
dCB5KSB7IG1feSA9IHk7IH0KKwogICAgIHZvaWQgc2V0KGZsb2F0IHgsIGZsb2F0IHkpCiAgICAg
ewogICAgICAgICBtX3ggPSB4OwogICAgICAgICBtX3kgPSB5OwogICAgIH0KKwogICAgIHZvaWQg
bW92ZShmbG9hdCBkeCwgZmxvYXQgZHkpCiAgICAgewogICAgICAgICBtX3ggKz0gZHg7CiAgICAg
ICAgIG1feSArPSBkeTsKICAgICB9CisKICAgICB2b2lkIG1vdmUoY29uc3QgSW50U2l6ZSYgYSkK
ICAgICB7CiAgICAgICAgIG1feCArPSBhLndpZHRoKCk7CiAgICAgICAgIG1feSArPSBhLmhlaWdo
dCgpOwogICAgIH0KKwogICAgIHZvaWQgbW92ZShjb25zdCBGbG9hdFNpemUmIGEpCiAgICAgewog
ICAgICAgICBtX3ggKz0gYS53aWR0aCgpOwogICAgICAgICBtX3kgKz0gYS5oZWlnaHQoKTsKICAg
ICB9CisKICAgICB2b2lkIG1vdmVCeShjb25zdCBJbnRQb2ludCYgYSkKICAgICB7CiAgICAgICAg
IG1feCArPSBhLngoKTsKICAgICAgICAgbV95ICs9IGEueSgpOwogICAgIH0KKwogICAgIHZvaWQg
bW92ZUJ5KGNvbnN0IEZsb2F0UG9pbnQmIGEpCiAgICAgewogICAgICAgICBtX3ggKz0gYS54KCk7
CiAgICAgICAgIG1feSArPSBhLnkoKTsKICAgICB9CisKKyAgICB2b2lkIHNjYWxlKGZsb2F0IHNj
YWxlKQorICAgIHsKKyAgICAgICAgbV94ICo9IHNjYWxlOworICAgICAgICBtX3kgKj0gc2NhbGU7
CisgICAgfQorCiAgICAgdm9pZCBzY2FsZShmbG9hdCBzeCwgZmxvYXQgc3kpCiAgICAgewogICAg
ICAgICBtX3ggKj0gc3g7CkBAIC0xMjEsNiArMTM0LDcgQEAgcHVibGljOgogCiAgICAgZmxvYXQg
c2xvcGVBbmdsZVJhZGlhbnMoKSBjb25zdDsKICAgICBmbG9hdCBsZW5ndGgoKSBjb25zdDsKKwog
ICAgIGZsb2F0IGxlbmd0aFNxdWFyZWQoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIG1f
eCAqIG1feCArIG1feSAqIG1feTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0Zsb2F0UXVhZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
RmxvYXRRdWFkLmgKaW5kZXggNGU5OTZjOTBhYWRiODY4MzliN2IwNjc2OTk0NjMyYjUzMWIwOGVm
Ni4uNzkzZWIzNGMxNGIyNmYzNzdiYzIxZWI4N2I2YzA4MTcxMzUwNzE3ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRRdWFkLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRRdWFkLmgKQEAgLTEyNiw2ICsxMjYsMTEg
QEAgcHVibGljOgogICAgICAgICBtX3AzLm1vdmUoZHgsIGR5KTsKICAgICAgICAgbV9wNC5tb3Zl
KGR4LCBkeSk7CiAgICAgfQorICAgIAorICAgIHZvaWQgc2NhbGUoZmxvYXQgcykKKyAgICB7Cisg
ICAgICAgIHNjYWxlKHMsIHMpOworICAgIH0KIAogICAgIHZvaWQgc2NhbGUoZmxvYXQgZHgsIGZs
b2F0IGR5KQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0Zsb2F0U2l6ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRT
aXplLmgKaW5kZXggMGZmMmFlY2Q1M2JhOTc2NjMzNTJjY2EzZmMxOTViNWJmYTIzMmNiNC4uYzdj
NGRlNzRmM2FjNzQ2NzMzYWEwNWNhNDA3MGQ1MmRiOWJiOGUzOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRTaXplLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRTaXplLmgKQEAgLTgzLDcgKzgzLDExIEBAIHB1Ymxp
YzoKICAgICAgICAgbV9oZWlnaHQgKz0gaGVpZ2h0OwogICAgIH0KIAotICAgIHZvaWQgc2NhbGUo
ZmxvYXQgcykgeyBzY2FsZShzLCBzKTsgfQorICAgIHZvaWQgc2NhbGUoZmxvYXQgcykKKyAgICB7
CisgICAgICAgIG1fd2lkdGggKj0gczsKKyAgICAgICAgbV9oZWlnaHQgKj0gczsKKyAgICB9CiAK
ICAgICB2b2lkIHNjYWxlKGZsb2F0IHNjYWxlWCwgZmxvYXQgc2NhbGVZKQogICAgIHsKQEAgLTEw
NCw2ICsxMDgsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgZmxvYXQg
ZGlhZ29uYWxMZW5ndGgoKSBjb25zdDsKKwogICAgIGZsb2F0IGRpYWdvbmFsTGVuZ3RoU3F1YXJl
ZCgpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV93aWR0aCAqIG1fd2lkdGggKyBtX2hl
aWdodCAqIG1faGVpZ2h0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKaW5kZXggMjA5OWExZGZiZDU4OTk4ZTFlMTI3MzA3MmM5
MGQ1Zjk4NDljM2EyOC4uMjkzZDFlMzIxOTI2NzhmYmRjMDBkMjMzMzI1MDVkM2EzZjYzNDIzYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQuY3BwCkBAIC0xMDIxLDcgKzEwMjEsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6cGxh
dGZvcm1BcHBseURldmljZVNjYWxlRmFjdG9yKGZsb2F0KQogCiB2b2lkIEdyYXBoaWNzQ29udGV4
dDo6YXBwbHlEZXZpY2VTY2FsZUZhY3RvcihmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKIHsKLSAg
ICBzY2FsZShGbG9hdFNpemUoZGV2aWNlU2NhbGVGYWN0b3IsIGRldmljZVNjYWxlRmFjdG9yKSk7
CisgICAgc2NhbGUoZGV2aWNlU2NhbGVGYWN0b3IpOwogCiAgICAgaWYgKGlzUmVjb3JkaW5nKCkp
IHsKICAgICAgICAgbV9kaXNwbGF5TGlzdFJlY29yZGVyLT5hcHBseURldmljZVNjYWxlRmFjdG9y
KGRldmljZVNjYWxlRmFjdG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKaW5kZXggNTY5N2MwOWY3NmVkNjNhMGM5Zjg5N2U5MDE1
NTE5ZDUwNzgyYzQ0MS4uMGVhN2IxMzRlZmRhMTMwNTY2NGNiNGVlZWJlZDljNDQ1MzgwNDJhYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0LmgKQEAgLTQ2Myw2ICs0NjMsMTAgQEAgcHVibGljOgogICAgIHZvaWQgY2FudmFzQ2xpcChj
b25zdCBQYXRoJiwgV2luZFJ1bGUgPSBSVUxFX0VWRU5PREQpOwogICAgIHZvaWQgY2xpcE91dChj
b25zdCBQYXRoJik7CiAKKyAgICB2b2lkIHNjYWxlKGZsb2F0IHMpCisgICAgeworICAgICAgICBz
Y2FsZSh7IHMsIHMgfSk7CisgICAgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2NhbGUoY29u
c3QgRmxvYXRTaXplJik7CiAgICAgdm9pZCByb3RhdGUoZmxvYXQgYW5nbGVJblJhZGlhbnMpOwog
ICAgIHZvaWQgdHJhbnNsYXRlKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSkgeyB0cmFuc2xhdGUoc2l6
ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0UG9pbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0xheW91dFBvaW50LmgKaW5kZXggODEyMGVjMWU2OTlmMjVjNmFmYTU3MTc5ZTk4
YmUwZjJjZjQ3NmVlZC4uNzhlZDBjNWI0MGU2OGUyODYxZDA0NjRmNGI2MzA3MTAxMWQ5MjU5MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0UG9pbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9MYXlvdXRQb2ludC5oCkBA
IC01NSw2ICs1NSwxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtb3ZlKGNvbnN0IExheW91dFNpemUm
IHMpIHsgbW92ZShzLndpZHRoKCksIHMuaGVpZ2h0KCkpOyB9IAogICAgIHZvaWQgbW92ZUJ5KGNv
bnN0IExheW91dFBvaW50JiBvZmZzZXQpIHsgbW92ZShvZmZzZXQueCgpLCBvZmZzZXQueSgpKTsg
fQogICAgIHZvaWQgbW92ZShMYXlvdXRVbml0IGR4LCBMYXlvdXRVbml0IGR5KSB7IG1feCArPSBk
eDsgbV95ICs9IGR5OyB9CisgICAgCisgICAgdm9pZCBzY2FsZShmbG9hdCBzKQorICAgIHsKKyAg
ICAgICAgbV94ICo9IHM7CisgICAgICAgIG1feSAqPSBzOworICAgIH0KKyAgICAKICAgICB2b2lk
IHNjYWxlKGZsb2F0IHN4LCBmbG9hdCBzeSkKICAgICB7CiAgICAgICAgIG1feCAqPSBzeDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb3ZlcmFn
ZU1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlQ292ZXJh
Z2VNYXAuY3BwCmluZGV4IDEyZmM5NmRkNTVmZjQ5OGM1OGJjNWI0ZDJhOGIxMTEwNTZmMjA2NzIu
Ljc5MjM5NjdlZjU3NWZhZDFiYjMyZjFhZjAzYzk4OThmZmJiMTcxNWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVDb3ZlcmFnZU1hcC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUNvdmVyYWdlTWFwLmNw
cApAQCAtMTA1LDIwICsxMDUsMjAgQEAgdm9pZCBUaWxlQ292ZXJhZ2VNYXA6OnVwZGF0ZSgpCiAg
ICAgZmxvYXQgaW5kaWNhdG9yU2NhbGUgPSBzY2FsZSAqIG1fY29udHJvbGxlci50aWxlR3JpZCgp
LnNjYWxlKCk7CiAKICAgICBGbG9hdFJlY3QgbWFwQm91bmRzID0gY29udGFpbmVyQm91bmRzOwot
ICAgIG1hcEJvdW5kcy5zY2FsZShpbmRpY2F0b3JTY2FsZSwgaW5kaWNhdG9yU2NhbGUpOworICAg
IG1hcEJvdW5kcy5zY2FsZShpbmRpY2F0b3JTY2FsZSk7CiAKICAgICBtX2xheWVyLmdldCgpLnNl
dFBvc2l0aW9uKG1fcG9zaXRpb24gKyBGbG9hdFBvaW50KDIsIDIpKTsKICAgICBtX2xheWVyLmdl
dCgpLnNldEJvdW5kcyhtYXBCb3VuZHMpOwogICAgIG1fbGF5ZXIuZ2V0KCkuc2V0TmVlZHNEaXNw
bGF5KCk7CiAKLSAgICB2aXNpYmxlUmVjdC5zY2FsZShpbmRpY2F0b3JTY2FsZSwgaW5kaWNhdG9y
U2NhbGUpOworICAgIHZpc2libGVSZWN0LnNjYWxlKGluZGljYXRvclNjYWxlKTsKICAgICB2aXNp
YmxlUmVjdC5leHBhbmQoMiwgMik7CiAgICAgbV92aXNpYmxlVmlld3BvcnRJbmRpY2F0b3JMYXll
ci0+c2V0UG9zaXRpb24odmlzaWJsZVJlY3QubG9jYXRpb24oKSk7CiAgICAgbV92aXNpYmxlVmll
d3BvcnRJbmRpY2F0b3JMYXllci0+c2V0Qm91bmRzKEZsb2F0UmVjdChGbG9hdFBvaW50KCksIHZp
c2libGVSZWN0LnNpemUoKSkpOwogCiAgICAgaWYgKGF1dG8gbGF5b3V0Vmlld3BvcnRSZWN0ID0g
bV9jb250cm9sbGVyLmxheW91dFZpZXdwb3J0UmVjdCgpKSB7CiAgICAgICAgIEZsb2F0UmVjdCBs
YXlvdXRSZWN0ID0gbGF5b3V0Vmlld3BvcnRSZWN0LnZhbHVlKCk7Ci0gICAgICAgIGxheW91dFJl
Y3Quc2NhbGUoaW5kaWNhdG9yU2NhbGUsIGluZGljYXRvclNjYWxlKTsKKyAgICAgICAgbGF5b3V0
UmVjdC5zY2FsZShpbmRpY2F0b3JTY2FsZSk7CiAgICAgICAgIGxheW91dFJlY3QuZXhwYW5kKDIs
IDIpOwogICAgICAgICBtX2xheW91dFZpZXdwb3J0SW5kaWNhdG9yTGF5ZXItPnNldFBvc2l0aW9u
KGxheW91dFJlY3QubG9jYXRpb24oKSk7CiAgICAgICAgIG1fbGF5b3V0Vmlld3BvcnRJbmRpY2F0
b3JMYXllci0+c2V0Qm91bmRzKEZsb2F0UmVjdChGbG9hdFBvaW50KCksIGxheW91dFJlY3Quc2l6
ZSgpKSk7CkBAIC0xMjgsNyArMTI4LDcgQEAgdm9pZCBUaWxlQ292ZXJhZ2VNYXA6OnVwZGF0ZSgp
CiAgICAgfSBlbHNlIGlmIChtX2xheW91dFZpZXdwb3J0SW5kaWNhdG9yTGF5ZXItPnN1cGVybGF5
ZXIoKSkKICAgICAgICAgbV9sYXlvdXRWaWV3cG9ydEluZGljYXRvckxheWVyLT5yZW1vdmVGcm9t
U3VwZXJsYXllcigpOwogCi0gICAgY292ZXJhZ2VSZWN0LnNjYWxlKGluZGljYXRvclNjYWxlLCBp
bmRpY2F0b3JTY2FsZSk7CisgICAgY292ZXJhZ2VSZWN0LnNjYWxlKGluZGljYXRvclNjYWxlKTsK
ICAgICBjb3ZlcmFnZVJlY3QuZXhwYW5kKDIsIDIpOwogICAgIG1fY292ZXJhZ2VSZWN0SW5kaWNh
dG9yTGF5ZXItPnNldFBvc2l0aW9uKGNvdmVyYWdlUmVjdC5sb2NhdGlvbigpKTsKICAgICBtX2Nv
dmVyYWdlUmVjdEluZGljYXRvckxheWVyLT5zZXRCb3VuZHMoRmxvYXRSZWN0KEZsb2F0UG9pbnQo
KSwgY292ZXJhZ2VSZWN0LnNpemUoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvVGlsZUdyaWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvVGlsZUdyaWQuY3BwCmluZGV4IDJkMDJlODU1OWUzOGIxYWU0NWU1NTA0ZDYw
ZTU3ZTZiY2Y5OTEyMzAuLjI4ZjI5Y2JkZThlMjFmNzE4MDFiODg2MjI3OTU2MWVmOTIyZmExYzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1RpbGVHcmlk
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9UaWxlR3JpZC5j
cHAKQEAgLTY5OCw3ICs2OTgsNyBAQCB2b2lkIFRpbGVHcmlkOjpwbGF0Zm9ybUNBTGF5ZXJQYWlu
dENvbnRlbnRzKFBsYXRmb3JtQ0FMYXllciogcGxhdGZvcm1DQUxheWVyLCBHcgogCiAgICAgICAg
IEZsb2F0UG9pbnQzRCBsYXllck9yaWdpbiA9IHBsYXRmb3JtQ0FMYXllci0+cG9zaXRpb24oKTsK
ICAgICAgICAgY29udGV4dC50cmFuc2xhdGUoLWxheWVyT3JpZ2luLngoKSwgLWxheWVyT3JpZ2lu
LnkoKSk7Ci0gICAgICAgIGNvbnRleHQuc2NhbGUoRmxvYXRTaXplKG1fc2NhbGUsIG1fc2NhbGUp
KTsKKyAgICAgICAgY29udGV4dC5zY2FsZShtX3NjYWxlKTsKIAogICAgICAgICBQbGF0Zm9ybUNB
TGF5ZXI6OlJlcGFpbnRSZWN0TGlzdCBkaXJ0eVJlY3RzID0gUGxhdGZvcm1DQUxheWVyOjpjb2xs
ZWN0UmVjdHNUb1BhaW50KGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCksIHBsYXRmb3JtQ0FMYXll
cik7CiAgICAgICAgIFBsYXRmb3JtQ0FMYXllcjo6ZHJhd0xheWVyQ29udGVudHMoY29udGV4dC5w
bGF0Zm9ybUNvbnRleHQoKSwgJm1fY29udHJvbGxlci5yb290TGF5ZXIoKSwgZGlydHlSZWN0cyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1
ZmZlckNHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVm
ZmVyQ0cuY3BwCmluZGV4IGNmMDliMmI5ZjhmMDM3MWE5MGQyNzFkZjFlYjgzZmMxNzM2NDIzZTQu
LjQ1ODc1NjI0MDRmN2QxYWU0MjNkNTY0YTNjMmY0ZmU4MmU3NjU4YzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCkBA
IC0zNDMsNyArMzQzLDcgQEAgdm9pZCBJbWFnZUJ1ZmZlcjo6ZHJhd0NvbnN1bWluZyhzdGQ6OnVu
aXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyLCBHcmFwaGkKICAgICBSZXRhaW5QdHI8
Q0dJbWFnZVJlZj4gaW1hZ2UgPSBJT1N1cmZhY2U6OnNpbmtJbnRvSW1hZ2UoSU9TdXJmYWNlOjpj
cmVhdGVGcm9tSW1hZ2VCdWZmZXIoV1RGTW92ZShpbWFnZUJ1ZmZlcikpKTsKICAgICAKICAgICBG
bG9hdFJlY3QgYWRqdXN0ZWRTcmNSZWN0ID0gc3JjUmVjdDsKLSAgICBhZGp1c3RlZFNyY1JlY3Qu
c2NhbGUocmVzb2x1dGlvblNjYWxlLCByZXNvbHV0aW9uU2NhbGUpOworICAgIGFkanVzdGVkU3Jj
UmVjdC5zY2FsZShyZXNvbHV0aW9uU2NhbGUpOwogICAgIGRlc3RDb250ZXh0LmRyYXdOYXRpdmVJ
bWFnZShpbWFnZS5nZXQoKSwgYmFja2luZ1N0b3JlU2l6ZSwgZGVzdFJlY3QsIGFkanVzdGVkU3Jj
UmVjdCwgb3AsIGJsZW5kTW9kZSk7CiAjZWxzZQogICAgIGltYWdlQnVmZmVyLT5kcmF3KGRlc3RD
b250ZXh0LCBkZXN0UmVjdCwgc3JjUmVjdCwgb3AsIGJsZW5kTW9kZSk7CkBAIC0zNTksMTQgKzM1
OSwxNCBAQCB2b2lkIEltYWdlQnVmZmVyOjpkcmF3KEdyYXBoaWNzQ29udGV4dCYgZGVzdENvbnRl
eHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsCiAgICAgICAgIGltYWdlID0gY29weU5hdGl2
ZUltYWdlKERvbnRDb3B5QmFja2luZ1N0b3JlKTsKIAogICAgIEZsb2F0UmVjdCBhZGp1c3RlZFNy
Y1JlY3QgPSBzcmNSZWN0OwotICAgIGFkanVzdGVkU3JjUmVjdC5zY2FsZShtX3Jlc29sdXRpb25T
Y2FsZSwgbV9yZXNvbHV0aW9uU2NhbGUpOworICAgIGFkanVzdGVkU3JjUmVjdC5zY2FsZShtX3Jl
c29sdXRpb25TY2FsZSk7CiAgICAgZGVzdENvbnRleHQuZHJhd05hdGl2ZUltYWdlKGltYWdlLmdl
dCgpLCBtX2RhdGEuYmFja2luZ1N0b3JlU2l6ZSwgZGVzdFJlY3QsIGFkanVzdGVkU3JjUmVjdCwg
b3AsIGJsZW5kTW9kZSk7CiB9CiAKIHZvaWQgSW1hZ2VCdWZmZXI6OmRyYXdQYXR0ZXJuKEdyYXBo
aWNzQ29udGV4dCYgZGVzdENvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0
IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNm
b3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBD
b21wb3NpdGVPcGVyYXRvciBvcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSkKIHsKICAgICBGbG9hdFJl
Y3QgYWRqdXN0ZWRTcmNSZWN0ID0gc3JjUmVjdDsKLSAgICBhZGp1c3RlZFNyY1JlY3Quc2NhbGUo
bV9yZXNvbHV0aW9uU2NhbGUsIG1fcmVzb2x1dGlvblNjYWxlKTsKKyAgICBhZGp1c3RlZFNyY1Jl
Y3Quc2NhbGUobV9yZXNvbHV0aW9uU2NhbGUpOwogCiAgICAgaWYgKCFjb250ZXh0KCkuaXNBY2Nl
bGVyYXRlZENvbnRleHQoKSkgewogICAgICAgICBpZiAoJmRlc3RDb250ZXh0ID09ICZjb250ZXh0
KCkgfHwgZGVzdENvbnRleHQuaXNBY2NlbGVyYXRlZENvbnRleHQoKSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1RoZW1lTWFjLm1tCmluZGV4IGMxNmI5ZTZlM2QwMzk3MmQ4ZGE3NDliOTll
OGY1NWE3OGE5MjFjNDQuLjAyNDcyYzlhNjkwOGM2ZmRiMDM4MjgxZmFhYTgzOGRmYjUxNWU0ZDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaGVtZU1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhlbWVNYWMubW0KQEAgLTQxMSw3ICs0MTEs
NyBAQCBzdGF0aWMgdm9pZCBwYWludFRvZ2dsZUJ1dHRvbihDb250cm9sUGFydCBidXR0b25UeXBl
LCBDb250cm9sU3RhdGVzJiBjb250cm9sU3RhdAogICAgICAgICBpbmZsYXRlZFJlY3Quc2V0V2lk
dGgoaW5mbGF0ZWRSZWN0LndpZHRoKCkgLyB6b29tRmFjdG9yKTsKICAgICAgICAgaW5mbGF0ZWRS
ZWN0LnNldEhlaWdodChpbmZsYXRlZFJlY3QuaGVpZ2h0KCkgLyB6b29tRmFjdG9yKTsKICAgICAg
ICAgY29udGV4dC50cmFuc2xhdGUoaW5mbGF0ZWRSZWN0LngoKSwgaW5mbGF0ZWRSZWN0LnkoKSk7
Ci0gICAgICAgIGNvbnRleHQuc2NhbGUoRmxvYXRTaXplKHpvb21GYWN0b3IsIHpvb21GYWN0b3Ip
KTsKKyAgICAgICAgY29udGV4dC5zY2FsZSh6b29tRmFjdG9yKTsKICAgICAgICAgY29udGV4dC50
cmFuc2xhdGUoLWluZmxhdGVkUmVjdC54KCksIC1pbmZsYXRlZFJlY3QueSgpKTsKICAgICB9CiAK
QEAgLTUzOSw3ICs1MzksNyBAQCBzdGF0aWMgdm9pZCBwYWludEJ1dHRvbihDb250cm9sUGFydCBw
YXJ0LCBDb250cm9sU3RhdGVzJiBjb250cm9sU3RhdGVzLCBHcmFwaGljcwogICAgICAgICAgICAg
aW5mbGF0ZWRSZWN0LnNldFdpZHRoKGluZmxhdGVkUmVjdC53aWR0aCgpIC8gem9vbUZhY3Rvcik7
CiAgICAgICAgICAgICBpbmZsYXRlZFJlY3Quc2V0SGVpZ2h0KGluZmxhdGVkUmVjdC5oZWlnaHQo
KSAvIHpvb21GYWN0b3IpOwogICAgICAgICAgICAgY29udGV4dC50cmFuc2xhdGUoaW5mbGF0ZWRS
ZWN0LngoKSwgaW5mbGF0ZWRSZWN0LnkoKSk7Ci0gICAgICAgICAgICBjb250ZXh0LnNjYWxlKEZs
b2F0U2l6ZSh6b29tRmFjdG9yLCB6b29tRmFjdG9yKSk7CisgICAgICAgICAgICBjb250ZXh0LnNj
YWxlKHpvb21GYWN0b3IpOwogICAgICAgICAgICAgY29udGV4dC50cmFuc2xhdGUoLWluZmxhdGVk
UmVjdC54KCksIC1pbmZsYXRlZFJlY3QueSgpKTsKICAgICAgICAgfQogICAgIH0KQEAgLTYxNiw3
ICs2MTYsNyBAQCBzdGF0aWMgdm9pZCBwYWludFN0ZXBwZXIoQ29udHJvbFN0YXRlcyYgc3RhdGVz
LCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0CiAgICAgICAgIHJlY3Quc2V0V2lkdGgo
cmVjdC53aWR0aCgpIC8gem9vbUZhY3Rvcik7CiAgICAgICAgIHJlY3Quc2V0SGVpZ2h0KHJlY3Qu
aGVpZ2h0KCkgLyB6b29tRmFjdG9yKTsKICAgICAgICAgY29udGV4dC50cmFuc2xhdGUocmVjdC54
KCksIHJlY3QueSgpKTsKLSAgICAgICAgY29udGV4dC5zY2FsZShGbG9hdFNpemUoem9vbUZhY3Rv
ciwgem9vbUZhY3RvcikpOworICAgICAgICBjb250ZXh0LnNjYWxlKHpvb21GYWN0b3IpOwogICAg
ICAgICBjb250ZXh0LnRyYW5zbGF0ZSgtcmVjdC54KCksIC1yZWN0LnkoKSk7CiAgICAgfQogICAg
IENHUmVjdCBib3VuZHMocmVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdl
LmNwcAppbmRleCAyYzQ0MjNjMzE5N2Q4MTk5MDhmZDA1MmI0NjE0MTI2MTA0ZDE2ZjY2Li4zMmE0
NmJkZDE1MTQ2MTY4MmQwNzkyZmEyMjUyM2M0ZDIzZGE5N2E5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKQEAgLTYzMyw3ICs2MzMsNyBAQCBib29sIFJlbmRlcklt
YWdlOjpub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJl
c3VsdCYgcmVzdQogICAgICAgICAgICAgTGF5b3V0UmVjdCBjb250ZW50Qm94ID0gY29udGVudEJv
eFJlY3QoKTsKICAgICAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gMSAvIHN0eWxlKCkuZWZm
ZWN0aXZlWm9vbSgpOwogICAgICAgICAgICAgTGF5b3V0UG9pbnQgbWFwTG9jYXRpb24gPSBsb2Nh
dGlvbkluQ29udGFpbmVyLnBvaW50KCkgLSB0b0xheW91dFNpemUoYWNjdW11bGF0ZWRPZmZzZXQp
IC0gbG9jYXRpb25PZmZzZXQoKSAtIHRvTGF5b3V0U2l6ZShjb250ZW50Qm94LmxvY2F0aW9uKCkp
OwotICAgICAgICAgICAgbWFwTG9jYXRpb24uc2NhbGUoc2NhbGVGYWN0b3IsIHNjYWxlRmFjdG9y
KTsKKyAgICAgICAgICAgIG1hcExvY2F0aW9uLnNjYWxlKHNjYWxlRmFjdG9yKTsKIAogICAgICAg
ICAgICAgaWYgKG1hcC0+bWFwTW91c2VFdmVudChtYXBMb2NhdGlvbiwgY29udGVudEJveC5zaXpl
KCksIHRlbXBSZXN1bHQpKQogICAgICAgICAgICAgICAgIHRlbXBSZXN1bHQuc2V0SW5uZXJOb25T
aGFyZWROb2RlKGVsZW1lbnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTWVkaWFDb250cm9scy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTWVkaWFDb250cm9scy5jcHAKaW5kZXggZDQ2MWQ4MWY2Yzk2ZmExZTI2NTQwNzJlMTkxYjBh
NWU1ZTlhNDcwNi4uMjQ4YTJhNTY3NzhiNzFlZmY3MWU1ZTMyYTQzNmQyNGY3ZDgyMDU4MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzLmNwcApA
QCAtOTMsNyArOTMsNyBAQCBzdGF0aWMgRmxvYXRSZWN0IGdldFVuem9vbWVkUmVjdEFuZEFkanVz
dEN1cnJlbnRDb250ZXh0KGNvbnN0IFJlbmRlck9iamVjdCYgbywgYwogICAgICAgICB1bnpvb21l
ZFJlY3Quc2V0V2lkdGgodW56b29tZWRSZWN0LndpZHRoKCkgLyB6b29tTGV2ZWwpOwogICAgICAg
ICB1bnpvb21lZFJlY3Quc2V0SGVpZ2h0KHVuem9vbWVkUmVjdC5oZWlnaHQoKSAvIHpvb21MZXZl
bCk7CiAgICAgICAgIHBhaW50SW5mby5jb250ZXh0KCkudHJhbnNsYXRlKHVuem9vbWVkUmVjdC54
KCksIHVuem9vbWVkUmVjdC55KCkpOwotICAgICAgICBwYWludEluZm8uY29udGV4dCgpLnNjYWxl
KEZsb2F0U2l6ZSh6b29tTGV2ZWwsIHpvb21MZXZlbCkpOworICAgICAgICBwYWludEluZm8uY29u
dGV4dCgpLnNjYWxlKHpvb21MZXZlbCk7CiAgICAgICAgIHBhaW50SW5mby5jb250ZXh0KCkudHJh
bnNsYXRlKC11bnpvb21lZFJlY3QueCgpLCAtdW56b29tZWRSZWN0LnkoKSk7CiAgICAgfQogICAg
IHJldHVybiB1bnpvb21lZFJlY3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWMubW0KaW5kZXggN2ZmODNmYTgwMjBjMTNlNWFhMTg0ODIzZmRiNWU2ZmE3MzBiMzI2ZS4u
M2VkZGMwM2U0ZDhlOWY2MzUxN2M1MjcxZjIwMWI1Njc4MjJiOTAyOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAtOTY0LDcgKzk2NCw3IEBAIGJvb2wg
UmVuZGVyVGhlbWVNYWM6OnBhaW50TWVudUxpc3QoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJl
ciwgY29uc3QgUGFpbnRJbmZvCiAgICAgICAgIGluZmxhdGVkUmVjdC5zZXRXaWR0aChpbmZsYXRl
ZFJlY3Qud2lkdGgoKSAvIHpvb21MZXZlbCk7CiAgICAgICAgIGluZmxhdGVkUmVjdC5zZXRIZWln
aHQoaW5mbGF0ZWRSZWN0LmhlaWdodCgpIC8gem9vbUxldmVsKTsKICAgICAgICAgcGFpbnRJbmZv
LmNvbnRleHQoKS50cmFuc2xhdGUoaW5mbGF0ZWRSZWN0LngoKSwgaW5mbGF0ZWRSZWN0LnkoKSk7
Ci0gICAgICAgIHBhaW50SW5mby5jb250ZXh0KCkuc2NhbGUoRmxvYXRTaXplKHpvb21MZXZlbCwg
em9vbUxldmVsKSk7CisgICAgICAgIHBhaW50SW5mby5jb250ZXh0KCkuc2NhbGUoem9vbUxldmVs
KTsKICAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQoKS50cmFuc2xhdGUoLWluZmxhdGVkUmVjdC54
KCksIC1pbmZsYXRlZFJlY3QueSgpKTsKICAgICB9CiAKQEAgLTE2MDgsNyArMTYwOCw3IEBAIGJv
b2wgUmVuZGVyVGhlbWVNYWM6OnBhaW50U2xpZGVyVGh1bWIoY29uc3QgUmVuZGVyT2JqZWN0JiBv
LCBjb25zdCBQYWludEluZm8mIHBhCiAgICAgICAgIHVuem9vbWVkUmVjdC5zZXRXaWR0aCh1bnpv
b21lZFJlY3Qud2lkdGgoKSAvIHpvb21MZXZlbCk7CiAgICAgICAgIHVuem9vbWVkUmVjdC5zZXRI
ZWlnaHQodW56b29tZWRSZWN0LmhlaWdodCgpIC8gem9vbUxldmVsKTsKICAgICAgICAgcGFpbnRJ
bmZvLmNvbnRleHQoKS50cmFuc2xhdGUodW56b29tZWRSZWN0LngoKSwgdW56b29tZWRSZWN0Lnko
KSk7Ci0gICAgICAgIHBhaW50SW5mby5jb250ZXh0KCkuc2NhbGUoRmxvYXRTaXplKHpvb21MZXZl
bCwgem9vbUxldmVsKSk7CisgICAgICAgIHBhaW50SW5mby5jb250ZXh0KCkuc2NhbGUoem9vbUxl
dmVsKTsKICAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQoKS50cmFuc2xhdGUoLXVuem9vbWVkUmVj
dC54KCksIC11bnpvb21lZFJlY3QueSgpKTsKICAgICB9CiAKQEAgLTE2MzksNyArMTYzOSw3IEBA
IGJvb2wgUmVuZGVyVGhlbWVNYWM6OnBhaW50U2VhcmNoRmllbGQoY29uc3QgUmVuZGVyT2JqZWN0
JiBvLCBjb25zdCBQYWludEluZm8mIHBhCiAgICAgICAgIHVuem9vbWVkUmVjdC5zZXRXaWR0aCh1
bnpvb21lZFJlY3Qud2lkdGgoKSAvIHpvb21MZXZlbCk7CiAgICAgICAgIHVuem9vbWVkUmVjdC5z
ZXRIZWlnaHQodW56b29tZWRSZWN0LmhlaWdodCgpIC8gem9vbUxldmVsKTsKICAgICAgICAgcGFp
bnRJbmZvLmNvbnRleHQoKS50cmFuc2xhdGUodW56b29tZWRSZWN0LngoKSwgdW56b29tZWRSZWN0
LnkoKSk7Ci0gICAgICAgIHBhaW50SW5mby5jb250ZXh0KCkuc2NhbGUoRmxvYXRTaXplKHpvb21M
ZXZlbCwgem9vbUxldmVsKSk7CisgICAgICAgIHBhaW50SW5mby5jb250ZXh0KCkuc2NhbGUoem9v
bUxldmVsKTsKICAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQoKS50cmFuc2xhdGUoLXVuem9vbWVk
UmVjdC54KCksIC11bnpvb21lZFJlY3QueSgpKTsKICAgICB9CiAKQEAgLTE3NjcsNyArMTc2Nyw3
IEBAIGJvb2wgUmVuZGVyVGhlbWVNYWM6OnBhaW50U2VhcmNoRmllbGRDYW5jZWxCdXR0b24oY29u
c3QgUmVuZGVyQm94JiBib3gsIGNvbnN0IFBhCiAgICAgICAgIHVuem9vbWVkUmVjdC5zZXRXaWR0
aCh1bnpvb21lZFJlY3Qud2lkdGgoKSAvIHpvb21MZXZlbCk7CiAgICAgICAgIHVuem9vbWVkUmVj
dC5zZXRIZWlnaHQodW56b29tZWRSZWN0LmhlaWdodCgpIC8gem9vbUxldmVsKTsKICAgICAgICAg
cGFpbnRJbmZvLmNvbnRleHQoKS50cmFuc2xhdGUodW56b29tZWRSZWN0LngoKSwgdW56b29tZWRS
ZWN0LnkoKSk7Ci0gICAgICAgIHBhaW50SW5mby5jb250ZXh0KCkuc2NhbGUoRmxvYXRTaXplKHpv
b21MZXZlbCwgem9vbUxldmVsKSk7CisgICAgICAgIHBhaW50SW5mby5jb250ZXh0KCkuc2NhbGUo
em9vbUxldmVsKTsKICAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQoKS50cmFuc2xhdGUoLXVuem9v
bWVkUmVjdC54KCksIC11bnpvb21lZFJlY3QueSgpKTsKICAgICB9CiAgICAgW1tzZWFyY2ggY2Fu
Y2VsQnV0dG9uQ2VsbF0gZHJhd1dpdGhGcmFtZTp1bnpvb21lZFJlY3QgaW5WaWV3OmRvY3VtZW50
Vmlld0Zvcihib3gpXTsKQEAgLTE5MDMsNyArMTkwMyw3IEBAIGJvb2wgUmVuZGVyVGhlbWVNYWM6
OnBhaW50U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uKGNvbnN0IFJlbmRlckJveCYgYm94LCBjb25z
dCBQCiAgICAgICAgIHVuem9vbWVkUmVjdC5zZXRXaWR0aCh1bnpvb21lZFJlY3Qud2lkdGgoKSAv
IHpvb21MZXZlbCk7CiAgICAgICAgIHVuem9vbWVkUmVjdC5zZXRIZWlnaHQodW56b29tZWRSZWN0
LmhlaWdodCgpIC8gem9vbUxldmVsKTsKICAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQoKS50cmFu
c2xhdGUodW56b29tZWRSZWN0LngoKSwgdW56b29tZWRSZWN0LnkoKSk7Ci0gICAgICAgIHBhaW50
SW5mby5jb250ZXh0KCkuc2NhbGUoRmxvYXRTaXplKHpvb21MZXZlbCwgem9vbUxldmVsKSk7Cisg
ICAgICAgIHBhaW50SW5mby5jb250ZXh0KCkuc2NhbGUoem9vbUxldmVsKTsKICAgICAgICAgcGFp
bnRJbmZvLmNvbnRleHQoKS50cmFuc2xhdGUoLXVuem9vbWVkUmVjdC54KCksIC11bnpvb21lZFJl
Y3QueSgpKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvU1ZHSW5saW5lVGV4dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NW
R0lubGluZVRleHRCb3guY3BwCmluZGV4IDBmODBhMGJlYjNhZjVkYjFiN2ViMGEzMmJiNTMxNjZl
ODM5YmM2NTguLjEyNDk4OGQ1ZmU4N2QzNDc5NTQzN2U0MGE1MGE1YjBjNzJmZDJhY2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdJbmxpbmVUZXh0Qm94LmNwcApA
QCAtMTE4LDcgKzExOCw3IEBAIEZsb2F0UmVjdCBTVkdJbmxpbmVUZXh0Qm94OjpzZWxlY3Rpb25S
ZWN0Rm9yVGV4dEZyYWdtZW50KGNvbnN0IFNWR1RleHRGcmFnbWVudCYKICAgICBjb25zdCBGb250
TWV0cmljcyYgc2NhbGVkRm9udE1ldHJpY3MgPSBzY2FsZWRGb250LmZvbnRNZXRyaWNzKCk7CiAg
ICAgRmxvYXRQb2ludCB0ZXh0T3JpZ2luKGZyYWdtZW50LngsIGZyYWdtZW50LnkpOwogICAgIGlm
IChzY2FsaW5nRmFjdG9yICE9IDEpCi0gICAgICAgIHRleHRPcmlnaW4uc2NhbGUoc2NhbGluZ0Zh
Y3Rvciwgc2NhbGluZ0ZhY3Rvcik7CisgICAgICAgIHRleHRPcmlnaW4uc2NhbGUoc2NhbGluZ0Zh
Y3Rvcik7CiAKICAgICB0ZXh0T3JpZ2luLm1vdmUoMCwgLXNjYWxlZEZvbnRNZXRyaWNzLmZsb2F0
QXNjZW50KCkpOwogCkBAIC01MjcsOCArNTI3LDggQEAgdm9pZCBTVkdJbmxpbmVUZXh0Qm94Ojpw
YWludERlY29yYXRpb25XaXRoU3R5bGUoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBUZXh0RGUK
ICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7CiAgICAg
aWYgKHNjYWxpbmdGYWN0b3IgIT0gMSkgewogICAgICAgICB3aWR0aCAqPSBzY2FsaW5nRmFjdG9y
OwotICAgICAgICBkZWNvcmF0aW9uT3JpZ2luLnNjYWxlKHNjYWxpbmdGYWN0b3IsIHNjYWxpbmdG
YWN0b3IpOwotICAgICAgICBjb250ZXh0LnNjYWxlKEZsb2F0U2l6ZSgxIC8gc2NhbGluZ0ZhY3Rv
ciwgMSAvIHNjYWxpbmdGYWN0b3IpKTsKKyAgICAgICAgZGVjb3JhdGlvbk9yaWdpbi5zY2FsZShz
Y2FsaW5nRmFjdG9yKTsKKyAgICAgICAgY29udGV4dC5zY2FsZSgxIC8gc2NhbGluZ0ZhY3Rvcik7
CiAgICAgfQogCiAgICAgZGVjb3JhdGlvbk9yaWdpbi5tb3ZlKDAsIC1zY2FsZWRGb250TWV0cmlj
cy5mbG9hdEFzY2VudCgpICsgcG9zaXRpb25PZmZzZXRGb3JEZWNvcmF0aW9uKGRlY29yYXRpb24s
IHNjYWxlZEZvbnRNZXRyaWNzLCB0aGlja25lc3MpKTsKQEAgLTU1Myw3ICs1NTMsNyBAQCB2b2lk
IFNWR0lubGluZVRleHRCb3g6OnBhaW50VGV4dFdpdGhTaGFkb3dzKEdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCwgY29uc3QgUmVuZAogICAgIEZsb2F0U2l6ZSB0ZXh0U2l6ZShmcmFnbWVudC53aWR0
aCwgZnJhZ21lbnQuaGVpZ2h0KTsKIAogICAgIGlmIChzY2FsaW5nRmFjdG9yICE9IDEpIHsKLSAg
ICAgICAgdGV4dE9yaWdpbi5zY2FsZShzY2FsaW5nRmFjdG9yLCBzY2FsaW5nRmFjdG9yKTsKKyAg
ICAgICAgdGV4dE9yaWdpbi5zY2FsZShzY2FsaW5nRmFjdG9yKTsKICAgICAgICAgdGV4dFNpemUu
c2NhbGUoc2NhbGluZ0ZhY3Rvcik7CiAgICAgfQogCkBAIC01NjksNyArNTY5LDcgQEAgdm9pZCBT
VkdJbmxpbmVUZXh0Qm94OjpwYWludFRleHRXaXRoU2hhZG93cyhHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQsIGNvbnN0IFJlbmQKIAogICAgICAgICAgICAgaWYgKCFzaGFkb3dBcHBsaWVyLmRpZFNh
dmVDb250ZXh0KCkpCiAgICAgICAgICAgICAgICAgdXNlZENvbnRleHQtPnNhdmUoKTsKLSAgICAg
ICAgICAgIHVzZWRDb250ZXh0LT5zY2FsZShGbG9hdFNpemUoMSAvIHNjYWxpbmdGYWN0b3IsIDEg
LyBzY2FsaW5nRmFjdG9yKSk7CisgICAgICAgICAgICB1c2VkQ29udGV4dC0+c2NhbGUoMSAvIHNj
YWxpbmdGYWN0b3IpOwogCiAgICAgICAgICAgICBzY2FsZWRGb250LmRyYXdUZXh0KCp1c2VkQ29u
dGV4dCwgdGV4dFJ1biwgdGV4dE9yaWdpbiArIHNoYWRvd0FwcGxpZXIuZXh0cmFPZmZzZXQoKSwg
c3RhcnRQb3NpdGlvbiwgZW5kUG9zaXRpb24pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUGF0aEJsZW5kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhCbGVu
ZGVyLmNwcAppbmRleCBmNTlmY2M4OGI4NDMyZThiNjgyOTQyOWY2ZDIyZGRkOTgyNzk2Mjc5Li5j
N2Y5ZDY4N2I5NzJiZDVmOTEzMmVkNjIwNGFjZDRiMzZkMGI4MWQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEJsZW5kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQYXRoQmxlbmRlci5jcHAKQEAgLTg4LDcgKzg4LDcgQEAgRmxvYXRQb2ludCBTVkdQYXRo
QmxlbmRlcjo6YmxlbmRBbmltYXRlZEZsb2F0UG9pbnQoY29uc3QgRmxvYXRQb2ludCYgZnJvbVBv
aW50LAogICAgIGlmIChtX2FkZFR5cGVzQ291bnQpIHsKICAgICAgICAgQVNTRVJUKG1fZnJvbU1v
ZGUgPT0gbV90b01vZGUpOwogICAgICAgICBGbG9hdFBvaW50IHJlcGVhdGVkVG9Qb2ludCA9IHRv
UG9pbnQ7Ci0gICAgICAgIHJlcGVhdGVkVG9Qb2ludC5zY2FsZShtX2FkZFR5cGVzQ291bnQsIG1f
YWRkVHlwZXNDb3VudCk7CisgICAgICAgIHJlcGVhdGVkVG9Qb2ludC5zY2FsZShtX2FkZFR5cGVz
Q291bnQpOwogICAgICAgICByZXR1cm4gZnJvbVBvaW50ICsgcmVwZWF0ZWRUb1BvaW50OwogICAg
IH0KIApAQCAtMjkxLDcgKzI5MSw3IEBAIGJvb2wgU1ZHUGF0aEJsZW5kZXI6OmJsZW5kQXJjVG9T
ZWdtZW50KGZsb2F0IHByb2dyZXNzKQogICAgIGlmIChtX2FkZFR5cGVzQ291bnQpIHsKICAgICAg
ICAgQVNTRVJUKG1fZnJvbU1vZGUgPT0gbV90b01vZGUpOwogICAgICAgICBGbG9hdFBvaW50IHNj
YWxlZFRvVGFyZ2V0UG9pbnQgPSB0b1RhcmdldFBvaW50OwotICAgICAgICBzY2FsZWRUb1Rhcmdl
dFBvaW50LnNjYWxlKG1fYWRkVHlwZXNDb3VudCwgbV9hZGRUeXBlc0NvdW50KTsKKyAgICAgICAg
c2NhbGVkVG9UYXJnZXRQb2ludC5zY2FsZShtX2FkZFR5cGVzQ291bnQpOwogICAgICAgICBtX2Nv
bnN1bWVyLT5hcmNUbyhmcm9tUnggKyB0b1J4ICogbV9hZGRUeXBlc0NvdW50LAogICAgICAgICAg
ICAgZnJvbVJ5ICsgdG9SeSAqIG1fYWRkVHlwZXNDb3VudCwKICAgICAgICAgICAgIGZyb21Bbmds
ZSArIHRvQW5nbGUgKiBtX2FkZFR5cGVzQ291bnQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUGF0aFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFBhcnNl
ci5jcHAKaW5kZXggMTcyYThiMmYwNmJiZGZiZDkyOGExNzVmNDY2NTQzMDAzNTg2YTA4Zi4uOTk5
N2VlOTY4NThjMmEwMjFmNDQ2MGExMDliM2I5NDRlZTYxMDVkMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhdGhQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYXRoUGFyc2VyLmNwcApAQCAtMTc5LDcgKzE3OSw3IEBAIGJvb2wgU1ZHUGF0aFBhcnNlcjo6
cGFyc2VDdXJ2ZVRvQ3ViaWNTbW9vdGhTZWdtZW50KCkKIAogICAgIGlmIChtX3BhdGhQYXJzaW5n
TW9kZSA9PSBOb3JtYWxpemVkUGFyc2luZykgewogICAgICAgICBGbG9hdFBvaW50IHBvaW50MSA9
IG1fY3VycmVudFBvaW50OwotICAgICAgICBwb2ludDEuc2NhbGUoMiwgMik7CisgICAgICAgIHBv
aW50MS5zY2FsZSgyKTsKICAgICAgICAgcG9pbnQxLm1vdmUoLW1fY29udHJvbFBvaW50LngoKSwg
LW1fY29udHJvbFBvaW50LnkoKSk7CiAgICAgICAgIGlmIChtX21vZGUgPT0gUmVsYXRpdmVDb29y
ZGluYXRlcykgewogICAgICAgICAgICAgcG9pbnQyICs9IG1fY3VycmVudFBvaW50OwpAQCAtMjEy
LDggKzIxMiw4IEBAIGJvb2wgU1ZHUGF0aFBhcnNlcjo6cGFyc2VDdXJ2ZVRvUXVhZHJhdGljU2Vn
bWVudCgpCiAgICAgICAgICAgICBwb2ludDIubW92ZSgzICogbV9jdXJyZW50UG9pbnQueCgpLCAz
ICogbV9jdXJyZW50UG9pbnQueSgpKTsKICAgICAgICAgICAgIHRhcmdldFBvaW50ICs9IG1fY3Vy
cmVudFBvaW50OwogICAgICAgICB9Ci0gICAgICAgIHBvaW50MS5zY2FsZShnT25lT3ZlclRocmVl
LCBnT25lT3ZlclRocmVlKTsKLSAgICAgICAgcG9pbnQyLnNjYWxlKGdPbmVPdmVyVGhyZWUsIGdP
bmVPdmVyVGhyZWUpOworICAgICAgICBwb2ludDEuc2NhbGUoZ09uZU92ZXJUaHJlZSk7CisgICAg
ICAgIHBvaW50Mi5zY2FsZShnT25lT3ZlclRocmVlKTsKIAogICAgICAgICBtX2NvbnN1bWVyLmN1
cnZlVG9DdWJpYyhwb2ludDEsIHBvaW50MiwgdGFyZ2V0UG9pbnQsIEFic29sdXRlQ29vcmRpbmF0
ZXMpOwogCkBAIC0yMzksNyArMjM5LDcgQEAgYm9vbCBTVkdQYXRoUGFyc2VyOjpwYXJzZUN1cnZl
VG9RdWFkcmF0aWNTbW9vdGhTZWdtZW50KCkKIAogICAgIGlmIChtX3BhdGhQYXJzaW5nTW9kZSA9
PSBOb3JtYWxpemVkUGFyc2luZykgewogICAgICAgICBGbG9hdFBvaW50IGN1YmljUG9pbnQgPSBt
X2N1cnJlbnRQb2ludDsKLSAgICAgICAgY3ViaWNQb2ludC5zY2FsZSgyLCAyKTsKKyAgICAgICAg
Y3ViaWNQb2ludC5zY2FsZSgyKTsKICAgICAgICAgY3ViaWNQb2ludC5tb3ZlKC1tX2NvbnRyb2xQ
b2ludC54KCksIC1tX2NvbnRyb2xQb2ludC55KCkpOwogICAgICAgICBGbG9hdFBvaW50IHBvaW50
MShtX2N1cnJlbnRQb2ludC54KCkgKyAyICogY3ViaWNQb2ludC54KCksIG1fY3VycmVudFBvaW50
LnkoKSArIDIgKiBjdWJpY1BvaW50LnkoKSk7CiAgICAgICAgIEZsb2F0UG9pbnQgcG9pbnQyKHRh
cmdldFBvaW50LngoKSArIDIgKiBjdWJpY1BvaW50LngoKSwgdGFyZ2V0UG9pbnQueSgpICsgMiAq
IGN1YmljUG9pbnQueSgpKTsKQEAgLTI0Nyw4ICsyNDcsOCBAQCBib29sIFNWR1BhdGhQYXJzZXI6
OnBhcnNlQ3VydmVUb1F1YWRyYXRpY1Ntb290aFNlZ21lbnQoKQogICAgICAgICAgICAgcG9pbnQy
ICs9IG1fY3VycmVudFBvaW50OwogICAgICAgICAgICAgdGFyZ2V0UG9pbnQgKz0gbV9jdXJyZW50
UG9pbnQ7CiAgICAgICAgIH0KLSAgICAgICAgcG9pbnQxLnNjYWxlKGdPbmVPdmVyVGhyZWUsIGdP
bmVPdmVyVGhyZWUpOwotICAgICAgICBwb2ludDIuc2NhbGUoZ09uZU92ZXJUaHJlZSwgZ09uZU92
ZXJUaHJlZSk7CisgICAgICAgIHBvaW50MS5zY2FsZShnT25lT3ZlclRocmVlKTsKKyAgICAgICAg
cG9pbnQyLnNjYWxlKGdPbmVPdmVyVGhyZWUpOwogCiAgICAgICAgIG1fY29uc3VtZXIuY3VydmVU
b0N1YmljKHBvaW50MSwgcG9pbnQyLCB0YXJnZXRQb2ludCwgQWJzb2x1dGVDb29yZGluYXRlcyk7
CiAKQEAgLTQ2MSw3ICs0NjEsNyBAQCBib29sIFNWR1BhdGhQYXJzZXI6OmRlY29tcG9zZUFyY1Rv
Q3ViaWMoZmxvYXQgYW5nbGUsIGZsb2F0IHJ4LCBmbG9hdCByeSwgRmxvYXRQbwogCiAgICAgZGVs
dGEuc2NhbGUoc2NhbGVGYWN0b3IpOwogICAgIEZsb2F0UG9pbnQgY2VudGVyUG9pbnQgPSBwb2lu
dDEgKyBwb2ludDI7Ci0gICAgY2VudGVyUG9pbnQuc2NhbGUoMC41ZiwgMC41Zik7CisgICAgY2Vu
dGVyUG9pbnQuc2NhbGUoMC41Zik7CiAgICAgY2VudGVyUG9pbnQubW92ZSgtZGVsdGEuaGVpZ2h0
KCksIGRlbHRhLndpZHRoKCkpOwogCiAgICAgZmxvYXQgdGhldGExID0gRmxvYXRQb2ludChwb2lu
dDEgLSBjZW50ZXJQb2ludCkuc2xvcGVBbmdsZVJhZGlhbnMoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
VkdFbGVtZW50LmNwcAppbmRleCBmZTZlYzRkZGYwYjYxZDUyNDc3Zjk1ZDhiNGRmMjY3MTM2NmYx
ZjI4Li43Y2QyNmUxMWZmZGNhZDAzYzIyODZmMzJlYzI4YmY3MzEzOTY1MmJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCkBAIC00MDksNyArNDA5LDcgQEAgQWZmaW5lVHJhbnNm
b3JtIFNWR1NWR0VsZW1lbnQ6OmxvY2FsQ29vcmRpbmF0ZVNwYWNlVHJhbnNmb3JtKFNWR0xvY2F0
YWJsZTo6Q1RNU2MKICAgICAgICAgICAgIC8vIFRyYW5zbGF0ZSBpbiBvdXIgQ1NTIHBhcmVudCBj
b29yZGluYXRlIHNwYWNlCiAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBkb2Vzbid0IHdvcmsg
Y29ycmVjdGx5IHdpdGggQ1NTIHRyYW5zZm9ybXMuCiAgICAgICAgICAgICBsb2NhdGlvbiA9IHJl
bmRlcmVyLT5sb2NhbFRvQWJzb2x1dGUobG9jYXRpb24sIFVzZVRyYW5zZm9ybXMpOwotICAgICAg
ICAgICAgbG9jYXRpb24uc2NhbGUoem9vbUZhY3Rvciwgem9vbUZhY3Rvcik7CisgICAgICAgICAg
ICBsb2NhdGlvbi5zY2FsZSh6b29tRmFjdG9yKTsKIAogICAgICAgICAgICAgLy8gQmUgY2FyZWZ1
bCBoZXJlISBsb2NhbFRvQm9yZGVyQm94VHJhbnNmb3JtKCkgaW5jbHVkZWQgdGhlIHgveSBvZmZz
ZXQgY29taW5nIGZyb20gdGhlIHZpZXdCb3hUb1ZpZXdUcmFuc2Zvcm0oKSwKICAgICAgICAgICAg
IC8vIHNvIHdlIGhhdmUgdG8gc3VidHJhY3QgaXQgaGVyZSAob3JpZ2luYWwgY2F1c2Ugb2YgYnVn
ICMyNzE4MykKQEAgLTQxOCw3ICs0MTgsNyBAQCBBZmZpbmVUcmFuc2Zvcm0gU1ZHU1ZHRWxlbWVu
dDo6bG9jYWxDb29yZGluYXRlU3BhY2VUcmFuc2Zvcm0oU1ZHTG9jYXRhYmxlOjpDVE1TYwogICAg
ICAgICAgICAgLy8gUmVzcGVjdCBzY3JvbGwgb2Zmc2V0LgogICAgICAgICAgICAgaWYgKEZyYW1l
VmlldyogdmlldyA9IGRvY3VtZW50KCkudmlldygpKSB7CiAgICAgICAgICAgICAgICAgTGF5b3V0
UG9pbnQgc2Nyb2xsUG9zaXRpb24gPSB2aWV3LT5zY3JvbGxQb3NpdGlvbigpOwotICAgICAgICAg
ICAgICAgIHNjcm9sbFBvc2l0aW9uLnNjYWxlKHpvb21GYWN0b3IsIHpvb21GYWN0b3IpOworICAg
ICAgICAgICAgICAgIHNjcm9sbFBvc2l0aW9uLnNjYWxlKHpvb21GYWN0b3IpOwogICAgICAgICAg
ICAgICAgIHRyYW5zZm9ybS50cmFuc2xhdGUoLXNjcm9sbFBvc2l0aW9uLngoKSwgLXNjcm9sbFBv
c2l0aW9uLnkoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcAppbmRleCBk
YzZkMzQzMjY3MzM1MmJhNDdjNTZlY2VmYTA1YjQzYzU3YjcxYjlkLi5jN2Y3ZGUzZWNhMGUyYTY2
Y2E3NGI1ZTQ2YWZmYmYxZDhhYTRmM2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
UGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwCkBAIC0xODgsNyArMTg4LDcg
QEAgdm9pZCBQbHVnaW5Db250cm9sbGVyUHJveHk6OnBhaW50KCkKICNpZiBQTEFURk9STShDT0NP
QSkKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHJlYWxseSBjYWxsIGFwcGx5RGV2aWNlU2NhbGVG
YWN0b3IgaW5zdGVhZCBvZiBzY2FsZSwgYnV0IHRoYXQgZW5kcyB1cCBjYWxsaW5nIGludG8gV0tT
SQogICAgIC8vIHdoaWNoIHdlIGN1cnJlbnRseSBkb24ndCBoYXZlIGluaXRpYXRlZCBpbiB0aGUg
cGx1Zy1pbiBwcm9jZXNzLgotICAgIGdyYXBoaWNzQ29udGV4dC0+c2NhbGUoRmxvYXRTaXplKG1f
Y29udGVudHNTY2FsZUZhY3RvciwgbV9jb250ZW50c1NjYWxlRmFjdG9yKSk7CisgICAgZ3JhcGhp
Y3NDb250ZXh0LT5zY2FsZShtX2NvbnRlbnRzU2NhbGVGYWN0b3IpOwogI2VuZGlmCiAKICAgICBp
ZiAobV9wbHVnaW4tPmlzVHJhbnNwYXJlbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tCmluZGV4IDVmZWNhOTEyYTRmNDRl
ODljMDQ0Mjk0ODc5MDI5MjJkOWZkMGJhOWIuLmQ1NzE5ZGRhMTJiZWFiODIyZGYzMmI3MjE1OGVi
YTZhNWU5OTQyMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3Rl
TGF5ZXJCYWNraW5nU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1v
dGVMYXllckJhY2tpbmdTdG9yZS5tbQpAQCAtMzQ1LDcgKzM0NSw3IEBAIHZvaWQgUmVtb3RlTGF5
ZXJCYWNraW5nU3RvcmU6OmRyYXdJbkNvbnRleHQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBD
R0ltYWdlUmVmCiAgICAgICAgIGNvbnRleHQuZmlsbFJlY3Qoc2NhbGVkTGF5ZXJCb3VuZHMsIENv
bG9yKDI1NSwgMCwgMCkpOwogI2VuZGlmCiAKLSAgICBjb250ZXh0LnNjYWxlKEZsb2F0U2l6ZSht
X3NjYWxlLCBtX3NjYWxlKSk7CisgICAgY29udGV4dC5zY2FsZShtX3NjYWxlKTsKIAogICAgIC8v
IEZJWE1FOiBUaGlzIHNob3VsZCBiZSBtb3ZlZCB0byBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUgZm9y
IGJldHRlciBsYXllcmluZy4KICAgICBzd2l0Y2ggKG1fbGF5ZXItPmxheWVyVHlwZSgpKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4
IDhiNGMxODgyZjgyOGM5OWNhODRmNjNlN2I0MmFkZTgxNjNjOTJhYmUuLjBiMTcyMTc1ZWY2YjIz
NDExMWU0MzYxYWY3MzdlNDFkMDQ5NWI0MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0xMjg3LDcgKzEyODcsNyBAQCAtICh2b2lk
KV9kaWRDb21taXRMYXllclRyZWU6KGNvbnN0IFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNh
Y3Rpb24mKWxheWVyVHJlZQogCiAgICAgICAgIGlmIChhcmVFc3NlbnRpYWxseUVxdWFsQXNGbG9h
dChjb250ZW50Wm9vbVNjYWxlKHNlbGYpLCBfc2NhbGVUb1Jlc3RvcmUpKSB7CiAgICAgICAgICAg
ICBXZWJDb3JlOjpGbG9hdFBvaW50IHNjYWxlZFNjcm9sbE9mZnNldCA9IF9zY3JvbGxPZmZzZXRU
b1Jlc3RvcmU7Ci0gICAgICAgICAgICBzY2FsZWRTY3JvbGxPZmZzZXQuc2NhbGUoX3NjYWxlVG9S
ZXN0b3JlLCBfc2NhbGVUb1Jlc3RvcmUpOworICAgICAgICAgICAgc2NhbGVkU2Nyb2xsT2Zmc2V0
LnNjYWxlKF9zY2FsZVRvUmVzdG9yZSk7CiAgICAgICAgICAgICBXZWJDb3JlOjpGbG9hdFBvaW50
IGNvbnRlbnRPZmZzZXRJblNjcm9sbFZpZXdDb29yZGluYXRlcyA9IHNjYWxlZFNjcm9sbE9mZnNl
dCAtIF9vYnNjdXJlZEluc2V0V2hlblNhdmVkOwogCiAgICAgICAgICAgICBjaGFuZ2VDb250ZW50
T2Zmc2V0Qm91bmRlZEluVmFsaWRSYW5nZShfc2Nyb2xsVmlldy5nZXQoKSwgY29udGVudE9mZnNl
dEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzKTsKQEAgLTEzMDcsNyArMTMwNyw3IEBAIC0gKHZvaWQp
X2RpZENvbW1pdExheWVyVHJlZTooY29uc3QgV2ViS2l0OjpSZW1vdGVMYXllclRyZWVUcmFuc2Fj
dGlvbiYpbGF5ZXJUcmVlCiAgICAgICAgICAgICBXZWJDb3JlOjpGbG9hdFNpemUgdW5vYnNjdXJl
ZENvbnRlbnRTaXplQXROZXdTY2FsZSh1bm9ic2N1cmVkUmVjdC5zaXplLndpZHRoIC8gX3NjYWxl
VG9SZXN0b3JlLCB1bm9ic2N1cmVkUmVjdC5zaXplLmhlaWdodCAvIF9zY2FsZVRvUmVzdG9yZSk7
CiAgICAgICAgICAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHRvcExlZnRJbkRvY3VtZW50Q29vcmRp
bmF0ZXMoX3Vub2JzY3VyZWRDZW50ZXJUb1Jlc3RvcmUueCgpIC0gdW5vYnNjdXJlZENvbnRlbnRT
aXplQXROZXdTY2FsZS53aWR0aCgpIC8gMiwgX3Vub2JzY3VyZWRDZW50ZXJUb1Jlc3RvcmUueSgp
IC0gdW5vYnNjdXJlZENvbnRlbnRTaXplQXROZXdTY2FsZS5oZWlnaHQoKSAvIDIpOwogCi0gICAg
ICAgICAgICB0b3BMZWZ0SW5Eb2N1bWVudENvb3JkaW5hdGVzLnNjYWxlKF9zY2FsZVRvUmVzdG9y
ZSwgX3NjYWxlVG9SZXN0b3JlKTsKKyAgICAgICAgICAgIHRvcExlZnRJbkRvY3VtZW50Q29vcmRp
bmF0ZXMuc2NhbGUoX3NjYWxlVG9SZXN0b3JlKTsKICAgICAgICAgICAgIHRvcExlZnRJbkRvY3Vt
ZW50Q29vcmRpbmF0ZXMubW92ZUJ5KFdlYkNvcmU6OkZsb2F0UG9pbnQoLV9vYnNjdXJlZEluc2V0
cy5sZWZ0LCAtX29ic2N1cmVkSW5zZXRzLnRvcCkpOwogCiAgICAgICAgICAgICBjaGFuZ2VDb250
ZW50T2Zmc2V0Qm91bmRlZEluVmFsaWRSYW5nZShfc2Nyb2xsVmlldy5nZXQoKSwgdG9wTGVmdElu
RG9jdW1lbnRDb29yZGluYXRlcyk7CkBAIC0xMzg5LDcgKzEzODksNyBAQCAtIChQYXNzUmVmUHRy
PFdlYktpdDo6Vmlld1NuYXBzaG90PilfdGFrZVZpZXdTbmFwc2hvdAogewogICAgIGZsb2F0IGRl
dmljZVNjYWxlID0gV2ViQ29yZTo6c2NyZWVuU2NhbGVGYWN0b3IoKTsKICAgICBXZWJDb3JlOjpG
bG9hdFNpemUgc25hcHNob3RTaXplKHNlbGYuYm91bmRzLnNpemUpOwotICAgIHNuYXBzaG90U2l6
ZS5zY2FsZShkZXZpY2VTY2FsZSwgZGV2aWNlU2NhbGUpOworICAgIHNuYXBzaG90U2l6ZS5zY2Fs
ZShkZXZpY2VTY2FsZSk7CiAKICAgICBDQVRyYW5zZm9ybTNEIHRyYW5zZm9ybSA9IENBVHJhbnNm
b3JtM0RNYWtlU2NhbGUoZGV2aWNlU2NhbGUsIGRldmljZVNjYWxlLCAxKTsKIApAQCAtMTQ4OSw3
ICsxNDg5LDcgQEAgLSAodm9pZClfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246KFdlYkNv
cmU6OkZsb2F0UG9pbnQpc2Nyb2xsUG9zaXRpb24gc2Nyb2wKIAogICAgIFdlYkNvcmU6OkZsb2F0
UG9pbnQgc2NhbGVkT2Zmc2V0ID0gY29udGVudE9mZnNldDsKICAgICBDR0Zsb2F0IHpvb21TY2Fs
ZSA9IGNvbnRlbnRab29tU2NhbGUoc2VsZik7Ci0gICAgc2NhbGVkT2Zmc2V0LnNjYWxlKHpvb21T
Y2FsZSwgem9vbVNjYWxlKTsKKyAgICBzY2FsZWRPZmZzZXQuc2NhbGUoem9vbVNjYWxlKTsKIAog
ICAgIENHUG9pbnQgY29udGVudE9mZnNldEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzID0gW3NlbGYg
X2FkanVzdGVkQ29udGVudE9mZnNldDpzY2FsZWRPZmZzZXRdOwogICAgIGNvbnRlbnRPZmZzZXRJ
blNjcm9sbFZpZXdDb29yZGluYXRlcyA9IGNvbnRlbnRPZmZzZXRCb3VuZGVkSW5WYWxpZFJhbmdl
KF9zY3JvbGxWaWV3LmdldCgpLCBjb250ZW50T2Zmc2V0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMp
OwpAQCAtMTU1Miw3ICsxNTUyLDcgQEAgLSAodm9pZClfc2Nyb2xsQnlDb250ZW50T2Zmc2V0OihX
ZWJDb3JlOjpGbG9hdFBvaW50KWNvbnRlbnRPZmZzZXREZWx0YQogewogICAgIFdlYkNvcmU6OkZs
b2F0UG9pbnQgc2NhbGVkT2Zmc2V0RGVsdGEgPSBjb250ZW50T2Zmc2V0RGVsdGE7CiAgICAgQ0dG
bG9hdCB6b29tU2NhbGUgPSBjb250ZW50Wm9vbVNjYWxlKHNlbGYpOwotICAgIHNjYWxlZE9mZnNl
dERlbHRhLnNjYWxlKHpvb21TY2FsZSwgem9vbVNjYWxlKTsKKyAgICBzY2FsZWRPZmZzZXREZWx0
YS5zY2FsZSh6b29tU2NhbGUpOwogCiAgICAgQ0dQb2ludCBjdXJyZW50T2Zmc2V0ID0gW19zY3Jv
bGxWaWV3IF9pc0FuaW1hdGluZ1Njcm9sbF0gPyBbX3Njcm9sbFZpZXcgX2FuaW1hdGVkVGFyZ2V0
T2Zmc2V0XSA6IFtfc2Nyb2xsVmlldyBjb250ZW50T2Zmc2V0XTsKICAgICBDR1BvaW50IGJvdW5k
ZWRPZmZzZXQgPSBjb250ZW50T2Zmc2V0Qm91bmRlZEluVmFsaWRSYW5nZShfc2Nyb2xsVmlldy5n
ZXQoKSwgY3VycmVudE9mZnNldCArIHNjYWxlZE9mZnNldERlbHRhKTsKQEAgLTE2OTEsNyArMTY5
MSw3IEBAIC0gKHZvaWQpX3pvb21Ub0ZvY3VzUmVjdDooV2ViQ29yZTo6RmxvYXRSZWN0KWZvY3Vz
ZWRFbGVtZW50UmVjdEluRG9jdW1lbnRDb29yZGluCiAgICAgTE9HX1dJVEhfU1RSRUFNKFZpc2li
bGVSZWN0cywgc3RyZWFtIDw8ICJfem9vbVRvRm9jdXNSZWN0OiB6b29taW5nIHRvICIgPDwgbmV3
Q2VudGVyIDw8ICIgc2NhbGU6IiA8PCBzY2FsZSk7CiAKICAgICAvLyBUaGUgbmV3Q2VudGVyIGhh
cyBiZWVuIGNvbXB1dGVkIGluIHRoZSBuZXcgc2NhbGUsIGJ1dCBfem9vbVRvQ2VudGVyIGV4cGVj
dGVkIHRoZSBjZW50ZXIgdG8gYmUgaW4gdGhlIG9yaWdpbmFsIHNjYWxlLgotICAgIG5ld0NlbnRl
ci5zY2FsZSgxIC8gc2NhbGUsIDEgLyBzY2FsZSk7CisgICAgbmV3Q2VudGVyLnNjYWxlKDEgLyBz
Y2FsZSk7CiAgICAgW19zY3JvbGxWaWV3IF96b29tVG9DZW50ZXI6bmV3Q2VudGVyCiAgICAgICAg
ICAgICAgICAgICAgICAgICBzY2FsZTpzY2FsZQogICAgICAgICAgICAgICAgICAgICAgZHVyYXRp
b246VUlXZWJGb3JtQW5pbWF0aW9uRHVyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlldy5tbQppbmRleCAxMGVhZWRjOTgwMDczY2E4NTYxMTI1ZWZhYTcy
OWQ3ZWYxZmI3YjhhLi5lODAzZGI1MWE4ODRhMGQwNjE5MjNjMGEzZTE4ODViZmVkZmJlMDFlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0K
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCkBAIC01
MzEsNyArNTMxLDcgQEAgLSAodm9pZClfZGlkQ29tbWl0TGF5ZXJUcmVlOihjb25zdCBXZWJLaXQ6
OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJilsYXllclRyZWUKICAgICBpZiAoX2ludGVyYWN0
aW9uVmlld3NDb250YWluZXJWaWV3KSB7CiAgICAgICAgIEZsb2F0UG9pbnQgc2NhbGVkT3JpZ2lu
ID0gbGF5ZXJUcmVlVHJhbnNhY3Rpb24uc2Nyb2xsT3JpZ2luKCk7CiAgICAgICAgIGZsb2F0IHNj
YWxlID0gW1tfd2ViVmlldyBzY3JvbGxWaWV3XSB6b29tU2NhbGVdOwotICAgICAgICBzY2FsZWRP
cmlnaW4uc2NhbGUoc2NhbGUsIHNjYWxlKTsKKyAgICAgICAgc2NhbGVkT3JpZ2luLnNjYWxlKHNj
YWxlKTsKICAgICAgICAgW19pbnRlcmFjdGlvblZpZXdzQ29udGFpbmVyVmlldyBzZXRGcmFtZTpD
R1JlY3RNYWtlKHNjYWxlZE9yaWdpbi54KCksIHNjYWxlZE9yaWdpbi55KCksIDAsIDApXTsKICAg
ICB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDZiMDQwYTUxNTk2OGQ0ZjA0MTU0ODk5YjIx
MGJmODdlYWI4MDVkNzUuLmIxM2IyYTM3MGRlYTY4NGYxNmE0ZjVkY2YwYTI0MDRhZDM4MTdkYjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tCkBAIC05NjMsNyArOTYzLDcgQEAgLSAodm9pZClfdXBkYXRlVGFw
SGlnaGxpZ2h0CiAgICAgICAgIFJldGFpblB0cjxOU011dGFibGVBcnJheT4gcXVhZHMgPSBhZG9w
dE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6c3RhdGljX2Nhc3Q8
Y29uc3QgTlNVSW50ZWdlcj4ocXVhZENvdW50KV0pOwogICAgICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHF1YWRDb3VudDsgKytpKSB7CiAgICAgICAgICAgICBGbG9hdFF1YWQgcXVhZCA9IGhp
Z2hsaWdodGVkUXVhZHNbaV07Ci0gICAgICAgICAgICBxdWFkLnNjYWxlKHNlbGZTY2FsZSwgc2Vs
ZlNjYWxlKTsKKyAgICAgICAgICAgIHF1YWQuc2NhbGUoc2VsZlNjYWxlKTsKICAgICAgICAgICAg
IEZsb2F0UXVhZCBleHRlbmRlZFF1YWQgPSBpbmZsYXRlUXVhZChxdWFkLCBtaW5pbXVtVGFwSGln
aGxpZ2h0UmFkaXVzKTsKICAgICAgICAgICAgIFtxdWFkcyBhZGRPYmplY3Q6W05TVmFsdWUgdmFs
dWVXaXRoQ0dQb2ludDpleHRlbmRlZFF1YWQucDEoKV1dOwogICAgICAgICAgICAgW3F1YWRzIGFk
ZE9iamVjdDpbTlNWYWx1ZSB2YWx1ZVdpdGhDR1BvaW50OmV4dGVuZGVkUXVhZC5wMigpXV07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0KaW5kZXggNTY1NGJmOGI1YjFkYzZkZmFmODlkNzEw
YmVlZDNkMTk3ODA1OTk5ZS4uOWQ5NGNkYmI4YTBiM2M4NDllOWUxODRlMjJkYzIxMDY4MzVmNzU3
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQpAQCAtMjgwLDcgKzI4MCw3IEBAIEZs
b2F0UG9pbnQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6aW5kaWNhdG9yTG9jYXRp
b24oKSBjb25zdAogCiAgICAgICAgIHRpbGVkTWFwTG9jYXRpb24gKz0gRmxvYXRTaXplKGluZGlj
YXRvckluc2V0LCBpbmRpY2F0b3JJbnNldCk7CiAgICAgICAgIGZsb2F0IHNjYWxlID0gMSAvIG1f
d2ViUGFnZVByb3h5LnBhZ2VTY2FsZUZhY3RvcigpOwotICAgICAgICB0aWxlZE1hcExvY2F0aW9u
LnNjYWxlKHNjYWxlLCBzY2FsZSk7CisgICAgICAgIHRpbGVkTWFwTG9jYXRpb24uc2NhbGUoc2Nh
bGUpOwogI2VuZGlmCiAgICAgICAgIHJldHVybiB0aWxlZE1hcExvY2F0aW9uOwogICAgIH0KQEAg
LTM0OSw3ICszNDksNyBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OnVw
ZGF0ZURlYnVnSW5kaWNhdG9yKEludFNpemUgY29udGVudHNTaXplLAogICAgICAgICBpZiAodmll
d0V4cG9zZWRSZWN0KCkpCiAgICAgICAgICAgICBzY2FsZWRFeHBvc2VkUmVjdCA9IHZpZXdFeHBv
c2VkUmVjdCgpLnZhbHVlKCk7CiAgICAgICAgIGZsb2F0IHNjYWxlID0gMSAvIG1fd2ViUGFnZVBy
b3h5LnBhZ2VTY2FsZUZhY3RvcigpOwotICAgICAgICBzY2FsZWRFeHBvc2VkUmVjdC5zY2FsZShz
Y2FsZSwgc2NhbGUpOworICAgICAgICBzY2FsZWRFeHBvc2VkUmVjdC5zY2FsZShzY2FsZSk7CiAj
ZW5kaWYKICAgICAgICAgW21fZXhwb3NlZFJlY3RJbmRpY2F0b3JMYXllciBzZXRQb3NpdGlvbjpz
Y2FsZWRFeHBvc2VkUmVjdC5sb2NhdGlvbigpXTsKICAgICAgICAgW21fZXhwb3NlZFJlY3RJbmRp
Y2F0b3JMYXllciBzZXRCb3VuZHM6RmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgc2NhbGVkRXhwb3Nl
ZFJlY3Quc2l6ZSgpKV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvVmlld0dlc3R1cmVDb250cm9sbGVyTWFjLm1tCmluZGV4IDg2NGUyZGEzOTkzMTJmMWJjYzk2
MmZiYWM3OTc4ZWJlYzNkODBmZWEuLmUyNTIxMWMzNzVkZmYzYTZmMWIzNjIzM2IzNWVhNTlkNzk5
MWQ0ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1
cmVDb250cm9sbGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmll
d0dlc3R1cmVDb250cm9sbGVyTWFjLm1tCkBAIC0xMTcsNyArMTE3LDcgQEAgRmxvYXRQb2ludCBW
aWV3R2VzdHVyZUNvbnRyb2xsZXI6OnNjYWxlZE1hZ25pZmljYXRpb25PcmlnaW4oRmxvYXRQb2lu
dCBvcmlnaW4sIGQKICAgICBGbG9hdFBvaW50IHNjYWxlZE1hZ25pZmljYXRpb25PcmlnaW4ob3Jp
Z2luKTsKICAgICBzY2FsZWRNYWduaWZpY2F0aW9uT3JpZ2luLm1vdmVCeShtX3Zpc2libGVDb250
ZW50UmVjdC5sb2NhdGlvbigpKTsKICAgICBmbG9hdCBtYWduaWZpY2F0aW9uT3JpZ2luU2NhbGUg
PSAxIC0gKHNjYWxlIC8gbV93ZWJQYWdlUHJveHkucGFnZVNjYWxlRmFjdG9yKCkpOwotICAgIHNj
YWxlZE1hZ25pZmljYXRpb25PcmlnaW4uc2NhbGUobWFnbmlmaWNhdGlvbk9yaWdpblNjYWxlLCBt
YWduaWZpY2F0aW9uT3JpZ2luU2NhbGUpOworICAgIHNjYWxlZE1hZ25pZmljYXRpb25PcmlnaW4u
c2NhbGUobWFnbmlmaWNhdGlvbk9yaWdpblNjYWxlKTsKICAgICByZXR1cm4gc2NhbGVkTWFnbmlm
aWNhdGlvbk9yaWdpbjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRsZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJh
bmdlSGFuZGxlLmNwcAppbmRleCBjZWZmMGRkMTJhOTM5NzBhMGJjYzhjMzIyM2Q0MzE1OTlmODgz
NzQxLi5kMWFhMDgzZWE2OGU3MzY2MDhjNTllMTA2NWJlZWNkNDlkMjc5M2E1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1
bmRsZVJhbmdlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcApAQCAtMTI5LDcgKzEy
OSw3IEBAIFBhc3NSZWZQdHI8V2ViSW1hZ2U+IEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGU6OnJl
bmRlcmVkSW1hZ2UoU25hcHNob3RPcHRpb25zIG9wCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
CiAgICAgYXV0byBncmFwaGljc0NvbnRleHQgPSBiYWNraW5nU3RvcmUtPmNyZWF0ZUdyYXBoaWNz
Q29udGV4dCgpOwotICAgIGdyYXBoaWNzQ29udGV4dC0+c2NhbGUoRmxvYXRTaXplKHNjYWxlRmFj
dG9yLCBzY2FsZUZhY3RvcikpOworICAgIGdyYXBoaWNzQ29udGV4dC0+c2NhbGUoc2NhbGVGYWN0
b3IpOwogCiAgICAgcGFpbnRSZWN0Lm1vdmUoZnJhbWVWaWV3LT5mcmFtZVJlY3QoKS54KCksIGZy
YW1lVmlldy0+ZnJhbWVSZWN0KCkueSgpKTsKICAgICBwYWludFJlY3QubW92ZUJ5KC1mcmFtZVZp
ZXctPnNjcm9sbFBvc2l0aW9uKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5jcHAKaW5kZXggNjU2
OTU1MDMwODMyYWRkOGU5YmZiMjhkMTcxYjJkNzRlNWQwYzFkZS4uNWM5YTkxODI0NTY2YTQ2MzAx
MGMwZTczOTY4MDM0NTdlMzMzNDc3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uY3BwCkBAIC03
NTksNyArNzU5LDcgQEAgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gTmV0c2NhcGVQbHVnaW46OnNu
YXBzaG90KCkKIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcmVhbGx5IGNhbGwgYXBwbHlEZXZp
Y2VTY2FsZUZhY3RvciBpbnN0ZWFkIG9mIHNjYWxlLCBidXQgdGhhdCBlbmRzIHVwIGNhbGxpbmcg
aW50byBXS1NJCiAgICAgLy8gd2hpY2ggd2UgY3VycmVudGx5IGRvbid0IGhhdmUgaW5pdGlhdGVk
IGluIHRoZSBwbHVnLWluIHByb2Nlc3MuCi0gICAgY29udGV4dC0+c2NhbGUoRmxvYXRTaXplKGNv
bnRlbnRzU2NhbGVGYWN0b3IoKSwgY29udGVudHNTY2FsZUZhY3RvcigpKSk7CisgICAgY29udGV4
dC0+c2NhbGUoY29udGVudHNTY2FsZUZhY3RvcigpKTsKIAogICAgIHBsYXRmb3JtUGFpbnQoKmNv
bnRleHQsIEludFJlY3QoSW50UG9pbnQoKSwgbV9wbHVnaW5TaXplKSwgdHJ1ZSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1t
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KaW5k
ZXggZGI0ZWMzZTQxMjk5ZjY5Mjk2MWY3NGRkMjE2Yzk3YzZkYTQ2MTIzNS4uYzRkMjU2YzU1OWZi
NzQ2Yzg5NDZmZTE4MDZmN2E0MzVkYjE1YjU1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KQEAgLTE1OTIsNyArMTU5Miw3IEBA
IHZvaWQgUERGUGx1Z2luOjpzY3JvbGxUb1BvaW50KEludFBvaW50IHNjcm9sbFBvaW50KQogewog
ICAgIEZyYW1lKiBmcmFtZSA9IHBsdWdpblZpZXcoKS0+ZnJhbWUoKTsKICAgICBmbG9hdCBzY2Fs
ZSA9IGZyYW1lLT5wYWdlKCktPnBhZ2VTY2FsZUZhY3RvcigpOwotICAgIHNjcm9sbFBvaW50LnNj
YWxlKHNjYWxlLCBzY2FsZSk7CisgICAgc2Nyb2xsUG9pbnQuc2NhbGUoc2NhbGUpOwogICAgIGZy
YW1lLT52aWV3KCktPnNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihzY3JvbGxQb2ludCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJG
cmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3Bw
CmluZGV4IGU5YmJiMmJhNzk5NDEwYjNiMDY0NjQ4YzE0OTg1OTlhM2RlMTE5ZjMuLjA2MmU5ZTg5
Yjk4M2ExNzVhMDE2ZGUyN2Y3ZDVmZGFlZWY0NGJhZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcApAQCAtODQwLDcgKzg0MCw3IEBAIFBhc3NS
ZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBXZWJGcmFtZTo6Y3JlYXRlU2VsZWN0aW9uU25hcHNob3Qo
KSBjb25zdAogICAgIC8vIGlmIHdlJ3JlIGNvbXBvc2l0aW5nIHRoaXMgaW1hZ2Ugb250byBhIHNv
bGlkIGNvbG9yIChlLmcuIHRoZSBtb2Rlcm4gZmluZCBpbmRpY2F0b3Igc3R5bGUpLgogICAgIGF1
dG8gZ3JhcGhpY3NDb250ZXh0ID0gc2hhcmVkU25hcHNob3QtPmNyZWF0ZUdyYXBoaWNzQ29udGV4
dCgpOwogICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yID0gY29yZUZyYW1lKCktPnBhZ2UoKS0+
ZGV2aWNlU2NhbGVGYWN0b3IoKTsKLSAgICBncmFwaGljc0NvbnRleHQtPnNjYWxlKEZsb2F0U2l6
ZShkZXZpY2VTY2FsZUZhY3RvciwgZGV2aWNlU2NhbGVGYWN0b3IpKTsKKyAgICBncmFwaGljc0Nv
bnRleHQtPnNjYWxlKGRldmljZVNjYWxlRmFjdG9yKTsKICAgICBncmFwaGljc0NvbnRleHQtPmRy
YXdDb25zdW1pbmdJbWFnZUJ1ZmZlcihXVEZNb3ZlKHNuYXBzaG90KSwgRmxvYXRQb2ludCgpKTsK
IAogICAgIHJldHVybiBXVEZNb3ZlKHNoYXJlZFNuYXBzaG90KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAxNmNhOTQ1ZDc3MDMxNDA2ZWIw
OTY3NjljOTg1M2FiZDk2MDA5ODlkLi43YzRkODFkYTY1YTA4ZjdjZmMyZDFjYzY0MjgxYTU5MzRh
ZmI4NmUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCkBAIC0xNTkzLDcgKzE1OTMsNyBAQCB2b2lkIFdlYlBhZ2U6OnNjYWxlUGFnZUluVmlld0Nv
b3JkaW5hdGVzKGRvdWJsZSBzY2FsZSwgSW50UG9pbnQgY2VudGVySW5WaWV3Q29vcgogCiAgICAg
SW50UG9pbnQgc2Nyb2xsUG9zaXRpb25BdE5ld1NjYWxlID0gbWFpbkZyYW1lVmlldygpLT5yb290
Vmlld1RvQ29udGVudHMoLWNlbnRlckluVmlld0Nvb3JkaW5hdGVzKTsKICAgICBkb3VibGUgc2Nh
bGVSYXRpbyA9IHNjYWxlIC8gcGFnZVNjYWxlRmFjdG9yKCk7Ci0gICAgc2Nyb2xsUG9zaXRpb25B
dE5ld1NjYWxlLnNjYWxlKHNjYWxlUmF0aW8sIHNjYWxlUmF0aW8pOworICAgIHNjcm9sbFBvc2l0
aW9uQXROZXdTY2FsZS5zY2FsZShzY2FsZVJhdGlvKTsKICAgICBzY2FsZVBhZ2Uoc2NhbGUsIHNj
cm9sbFBvc2l0aW9uQXROZXdTY2FsZSk7CiB9CiAKQEAgLTE2MjcsNyArMTYyNyw3IEBAIHZvaWQg
V2ViUGFnZTo6c2NhbGVWaWV3KGRvdWJsZSBzY2FsZSkKICAgICBpZiAoRnJhbWVWaWV3KiBtYWlu
RnJhbWVWaWV3ID0gbV9wYWdlLT5tYWluRnJhbWUoKS52aWV3KCkpIHsKICAgICAgICAgZG91Ymxl
IHNjYWxlUmF0aW8gPSBzY2FsZSAvIHZpZXdTY2FsZUZhY3RvcigpOwogICAgICAgICBzY3JvbGxQ
b3NpdGlvbkF0TmV3U2NhbGUgPSBtYWluRnJhbWVWaWV3LT5zY3JvbGxQb3NpdGlvbigpOwotICAg
ICAgICBzY3JvbGxQb3NpdGlvbkF0TmV3U2NhbGUuc2NhbGUoc2NhbGVSYXRpbywgc2NhbGVSYXRp
byk7CisgICAgICAgIHNjcm9sbFBvc2l0aW9uQXROZXdTY2FsZS5zY2FsZShzY2FsZVJhdGlvKTsK
ICAgICB9CiAKICAgICBtX3BhZ2UtPnNldFZpZXdTY2FsZUZhY3RvcihzY2FsZSk7CkBAIC0xOTM3
LDcgKzE5MzcsNyBAQCBQYXNzUmVmUHRyPFdlYkltYWdlPiBXZWJQYWdlOjpzbmFwc2hvdEF0U2l6
ZShjb25zdCBJbnRSZWN0JiByZWN0LCBjb25zdCBJbnRTaXplJgogICAgICAgICBzY2FsZUZhY3Rv
ciAvPSBkZXZpY2VTY2FsZUZhY3RvcjsKICAgICB9CiAKLSAgICBncmFwaGljc0NvbnRleHQtPnNj
YWxlKEZsb2F0U2l6ZShzY2FsZUZhY3Rvciwgc2NhbGVGYWN0b3IpKTsKKyAgICBncmFwaGljc0Nv
bnRleHQtPnNjYWxlKHNjYWxlRmFjdG9yKTsKICAgICBncmFwaGljc0NvbnRleHQtPnRyYW5zbGF0
ZSgtc25hcHNob3RSZWN0LngoKSwgLXNuYXBzaG90UmVjdC55KCkpOwogCiAgICAgRnJhbWVWaWV3
OjpTZWxlY3Rpb25JblNuYXBzaG90IHNob3VsZFBhaW50U2VsZWN0aW9uID0gRnJhbWVWaWV3OjpJ
bmNsdWRlU2VsZWN0aW9uOwpAQCAtMTk5Nyw3ICsxOTk3LDcgQEAgUGFzc1JlZlB0cjxXZWJJbWFn
ZT4gV2ViUGFnZTo6c25hcHNob3ROb2RlKFdlYkNvcmU6Ok5vZGUmIG5vZGUsIFNuYXBzaG90T3B0
aW9ucwogICAgICAgICBzY2FsZUZhY3RvciAvPSBkZXZpY2VTY2FsZUZhY3RvcjsKICAgICB9CiAK
LSAgICBncmFwaGljc0NvbnRleHQtPnNjYWxlKEZsb2F0U2l6ZShzY2FsZUZhY3Rvciwgc2NhbGVG
YWN0b3IpKTsKKyAgICBncmFwaGljc0NvbnRleHQtPnNjYWxlKHNjYWxlRmFjdG9yKTsKICAgICBn
cmFwaGljc0NvbnRleHQtPnRyYW5zbGF0ZSgtc25hcHNob3RSZWN0LngoKSwgLXNuYXBzaG90UmVj
dC55KCkpOwogCiAgICAgQ29sb3Igc2F2ZWRCYWNrZ3JvdW5kQ29sb3IgPSBmcmFtZVZpZXctPmJh
c2VCYWNrZ3JvdW5kQ29sb3IoKTsKQEAgLTQyMzgsNyArNDIzOCw3IEBAIHZvaWQgV2ViUGFnZTo6
ZHJhd1JlY3RUb0ltYWdlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJ
bmZvLCBjb25zCiAgICAgICAgIGF1dG8gZ3JhcGhpY3NDb250ZXh0ID0gYml0bWFwLT5jcmVhdGVH
cmFwaGljc0NvbnRleHQoKTsKIAogICAgICAgICBmbG9hdCBwcmludGluZ1NjYWxlID0gc3RhdGlj
X2Nhc3Q8ZmxvYXQ+KGltYWdlU2l6ZS53aWR0aCgpKSAvIHJlY3Qud2lkdGgoKTsKLSAgICAgICAg
Z3JhcGhpY3NDb250ZXh0LT5zY2FsZShGbG9hdFNpemUocHJpbnRpbmdTY2FsZSwgcHJpbnRpbmdT
Y2FsZSkpOworICAgICAgICBncmFwaGljc0NvbnRleHQtPnNjYWxlKHByaW50aW5nU2NhbGUpOwog
CiAjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICBpZiAoUmV0YWluUHRyPFBERkRvY3VtZW50PiBw
ZGZEb2N1bWVudCA9IHBkZkRvY3VtZW50Rm9yUHJpbnRpbmdGcmFtZShjb3JlRnJhbWUpKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJ
T1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW0KaW5kZXggM2M2NWMyODQ1ODFjMTUzYjJmMGY3ZjMxYmNjNTBmNjhjNzk5ZmE5NC4uYmJmZTc2
YzViYTI1MDNjMTA1NjJkMWQ2ZjhmNjIyNTE1Zjk1ODA5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMjk5LDcgKzI5
OSw3IEBAIHZvaWQgV2ViUGFnZTo6cmVzdG9yZVBhZ2VTdGF0ZShjb25zdCBIaXN0b3J5SXRlbSYg
aGlzdG9yeUl0ZW0pCiAgICAgICAgICAgICBuZXdDZW50ZXIgPSBGbG9hdFJlY3QoaGlzdG9yeUl0
ZW0udW5vYnNjdXJlZENvbnRlbnRSZWN0KCkpLmNlbnRlcigpOwogCiAgICAgICAgIEZsb2F0U2l6
ZSB1bm9ic2N1cmVkUmVjdEF0TmV3U2NhbGUgPSBmcmFtZVZpZXcuY3VzdG9tU2l6ZUZvclJlc2l6
ZUV2ZW50KCk7Ci0gICAgICAgIHVub2JzY3VyZWRSZWN0QXROZXdTY2FsZS5zY2FsZSgxIC8gbmV3
U2NhbGUsIDEgLyBuZXdTY2FsZSk7CisgICAgICAgIHVub2JzY3VyZWRSZWN0QXROZXdTY2FsZS5z
Y2FsZSgxIC8gbmV3U2NhbGUpOwogCiAgICAgICAgIEZsb2F0UmVjdCBvbGRFeHBvc2VkUmVjdCA9
IGZyYW1lVmlldy5leHBvc2VkQ29udGVudFJlY3QoKTsKICAgICAgICAgRmxvYXRSZWN0IGFkanVz
dGVkRXhwb3NlZFJlY3QgPSBhZGp1c3RFeHBvc2VkUmVjdEZvck5ld1NjYWxlKG9sZEV4cG9zZWRS
ZWN0LCBtX3BhZ2UtPnBhZ2VTY2FsZUZhY3RvcigpLCBuZXdTY2FsZSk7CmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMGM3MWQzMzAyYzIxNjc0YmJi
ZmY3M2M2MWZlNWNlMzgxN2Y5MjhhMS4uZGM3NmRhNjlkNjg2N2Y3NzRlNDYwNjQxNmQ2NTllMzNh
NTIxN2IwNCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE1IEBACisyMDE2LTExLTAzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFz
ZXJAYXBwbGUuY29tPgorCisgICAgICAgIEdpdmUgYWxsIHRoZSBnZW9tZXRyeSBjbGFzc2VzIGEg
c2luZ2xlLWFyZ3VtZW50IHNjYWxlKCkgZnVuY3Rpb24gZm9yIGNvbnNpc3RlbmN5CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ0MDAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFRlc3Qgc2lu
Z2xlLWFyZ3VtZW50IHNjYWxlKCkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvRmxvYXRQb2ludC5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwog
MjAxNi0xMS0wMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgog
CiAgICAgICAgIFJlbW92ZSBCYXR0ZXJ5IFN0YXR1cyBBUEkgZnJvbSB0aGUgdHJlZQpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Zsb2F0UG9pbnQuY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0Zsb2F0UG9pbnQuY3BwCmluZGV4IDBk
OWViZjM1ZDc0NjUyYzNmOWRkYTRiMmQ1NDBhNDg5YzdkZTA4NGIuLjI0YzBmZjllM2RiOTQ1Mjk3
ODA2ZGYxNzI3MGM1MTg1YWI4OGIzZjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9GbG9hdFBvaW50LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvRmxvYXRQb2ludC5jcHAKQEAgLTI4OSwxMCArMjg5LDE1IEBAIFRFU1QoRmxv
YXRQb2ludCwgU2NhbGUpCiAgICAgRVhQRUNUX0ZMT0FUX0VRKDEwMC4wZiwgdGVzdC54KCkpOwog
ICAgIEVYUEVDVF9GTE9BVF9FUSgyMDAuMGYsIHRlc3QueSgpKTsKIAorICAgIHRlc3Quc2NhbGUo
Mik7CisKKyAgICBFWFBFQ1RfRkxPQVRfRVEoMjAwLjBmLCB0ZXN0LngoKSk7CisgICAgRVhQRUNU
X0ZMT0FUX0VRKDQwMC4wZiwgdGVzdC55KCkpOworCiAgICAgdGVzdC5zY2FsZSgxLjBmLCAwLjVm
KTsKIAotICAgIEVYUEVDVF9GTE9BVF9FUSgxMDAuMGYsIHRlc3QueCgpKTsKLSAgICBFWFBFQ1Rf
RkxPQVRfRVEoMTAwLjBmLCB0ZXN0LnkoKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKDIwMC4wZiwg
dGVzdC54KCkpOworICAgIEVYUEVDVF9GTE9BVF9FUSgyMDAuMGYsIHRlc3QueSgpKTsKIH0KIAog
VEVTVChGbG9hdFBvaW50LCBOb3JtYWxpemUpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>