<?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>134047</bug_id>
          
          <creation_ts>2014-06-18 16:48:57 -0700</creation_ts>
          <short_desc>Make FrameLoadType a strongly typed enum</short_desc>
          <delta_ts>2014-06-18 17:13:46 -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>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>japhet</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1016585</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-06-18 16:48:57 -0700</bug_when>
    <thetext>Make FrameLoadType a strongly typed enum</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016587</commentid>
    <comment_count>1</comment_count>
      <attachid>233339</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-06-18 16:53:21 -0700</bug_when>
    <thetext>Created attachment 233339
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016597</commentid>
    <comment_count>2</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-06-18 17:13:46 -0700</bug_when>
    <thetext>Committed r170134: &lt;http://trac.webkit.org/changeset/170134&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233339</attachid>
            <date>2014-06-18 16:53:21 -0700</date>
            <delta_ts>2014-06-18 17:08:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-134047-20140618165258.patch</filename>
            <type>text/plain</type>
            <size>44947</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcwMTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2NhYTU1ZmU5ZTE5MTgx
MjkxZDVkYjNmYjNiZTBlNjRhZTVkNDI1ZS4uY2I2YzEzZjIxYTQ4MDk5YzQ1Y2MzZTVjOGNiMThi
OTVlMDgwNDUwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE0LTA2LTE4ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBGcmFtZUxv
YWRUeXBlIGEgc3Ryb25nbHkgdHlwZWQgZW51bQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0MDQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBoaXN0b3J5L0JhY2tGb3J3YXJkQ29udHJvbGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpCYWNrRm9yd2FyZENvbnRyb2xsZXI6OmdvQmFja09yRm9yd2Fy
ZCk6CisgICAgICAgIChXZWJDb3JlOjpCYWNrRm9yd2FyZENvbnRyb2xsZXI6OmdvQmFjayk6Cisg
ICAgICAgIChXZWJDb3JlOjpCYWNrRm9yd2FyZENvbnRyb2xsZXI6OmdvRm9yd2FyZCk6CisgICAg
ICAgICogaGlzdG9yeS9QYWdlQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bG9nQ2FuQ2Fj
aGVQYWdlRGVjaXNpb24pOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNhY2hlOjpjYW5DYWNoZSk6
CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omlz
QmFja0ZvcndhcmRMb2FkVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6RnJh
bWVMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRVUkxJbnRvQ2hp
bGRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6cHJlcGFyZUZvckxvYWRT
dGFydCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZEZyYW1lUmVxdWVzdCk6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFVSTCk6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlcjo6bG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6
cmVsb2FkV2l0aE92ZXJyaWRlRW5jb2RpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXI6OnJlbG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6Y29tbWl0UHJvdmlz
aW9uYWxMb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjp0cmFuc2l0aW9uVG9D
b21taXR0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmlzUmVwbGFjaW5nKToK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpzZXRSZXBsYWNpbmcpOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVMb2FkZXI6OnN1YnJlc291cmNlQ2FjaGVQb2xpY3kpOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNoZWNrTG9hZENvbXBsZXRlRm9yVGhpc0ZyYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjphZGRFeHRyYUZpZWxkc1RvUmVxdWVzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6Y29udGludWVGcmFnbWVudFNjcm9sbEFmdGVy
TmF2aWdhdGlvblBvbGljeSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6c2hvdWxk
UGVyZm9ybUZyYWdtZW50TmF2aWdhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRl
cjo6Y29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQb2xpY3kpOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXI6OmxvYWREaWZmZXJlbnREb2N1bWVudEl0ZW0pOgorICAgICAgICAqIGxvYWRl
ci9GcmFtZUxvYWRlclR5cGVzLmg6CisgICAgICAgICogbG9hZGVyL0hpc3RvcnlDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okhpc3RvcnlDb250cm9sbGVyOjpyZXN0b3JlRG9jdW1l
bnRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5Q29udHJvbGxlcjo6dXBkYXRlRm9y
UmVsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6Okhpc3RvcnlDb250cm9sbGVyOjppc1JlcGxhY2VM
b2FkVHlwZVdpdGhQcm92aXNpb25hbEl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUNv
bnRyb2xsZXI6OmlzUmVsb2FkVHlwZVdpdGhQcm92aXNpb25hbEl0ZW0pOgorICAgICAgICAqIGxv
YWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5hdmlnYXRpb25U
eXBlKToKKyAgICAgICAgKiBsb2FkZXIvUG9saWN5Q2hlY2tlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQb2xpY3lDaGVja2VyOjpQb2xpY3lDaGVja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlBv
bGljeUNoZWNrZXI6OmNoZWNrTmF2aWdhdGlvblBvbGljeSk6CisgICAgICAgICogbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJl
c291cmNlTG9hZGVyOjpjYWNoZVBvbGljeSk6CisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkNv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkNvbnRyb2xsZXI6OnN0YXJ0TG9h
ZGVyKToKKwogMjAxNC0wNi0xOCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFtpT1MgV2ViR0xdIEZpeGVkIFdFQkdMX2NvbXByZXNzZWRfdGV4
dHVyZV9wdnJ0Yy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA0MDVjNzIyZjIyMTMxZTg2NzY3MDE2Mzcy
NzQyZjM0YjlkMWNmYTg5Li4xMmUwOTYzNjYyNWY2ZWMwMDZhN2JmYmE4NWU2MjU4MmY2MGI0Zjkz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTQtMDYtMTggIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIEZyYW1lTG9hZFR5
cGUgYSBzdHJvbmdseSB0eXBlZCBlbnVtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMzQwNDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06CisgICAgICAgICh0b1dlYkZy
YW1lTG9hZFR5cGUpOgorICAgICAgICAoLVtXZWJGcmFtZSBfbG9hZFR5cGVdKToKKyAgICAgICAg
KiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX2xvYWRCYWNrRm9yd2Fy
ZExpc3RGcm9tT3RoZXJWaWV3Ol0pOgorICAgICAgICAoLVtXZWJWaWV3IGdvVG9CYWNrRm9yd2Fy
ZEl0ZW06XSk6CisKIDIwMTQtMDYtMTggIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29t
PgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIxNjc4NTYpOiBVbmFibGUgdG8gbG9nIGludG8gSFNC
QyBhcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCBjNTI0MGEwNWFlNTQ0YWNjYmUyYTkyYjAzYTM1Nzc0
MmRiYWM3YmE1Li5hMTdiOTIwNDU0ZmM3Njk0NGJlOGJhOTM2NTljZjBjZDM0YzE1ZDViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93
aW4vQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTYgQEAKIDIwMTQtMDYtMTggIEFuZGVycyBDYXJsc3Nv
biAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAorICAgICAgICBNYWtlIEZyYW1lTG9hZFR5cGUgYSBz
dHJvbmdseSB0eXBlZCBlbnVtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzQwNDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6Z29Ub0JhY2tGb3J3
YXJkSXRlbSk6CisgICAgICAgIChXZWJWaWV3Ojpsb2FkQmFja0ZvcndhcmRMaXN0RnJvbU90aGVy
Vmlldyk6CisKKzIwMTQtMDYtMTggIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNv
bT4KKwogICAgICAgICBSZW1vdmUgSVdlYkZyYW1lUHJpdmF0ZTo6bG9hZFR5cGUKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDA0NAogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
aW5kZXggZWVhZjM1ZGIxNjczZDg0MDBmYjk5YWU3Njg3NGZlM2VmMjlmZDMxZC4uOGZlZTc2OGQx
NzI4NDIwNGEwYTJmM2YxNmZkNjI4ZWRiNDA5MDFkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIz
IEBACiAyMDE0LTA2LTE4ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAK
KyAgICAgICAgTWFrZSBGcmFtZUxvYWRUeXBlIGEgc3Ryb25nbHkgdHlwZWQgZW51bQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0MDQ3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDb21taXRM
b2FkRm9yRnJhbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEaWRDb21taXRMb2FkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdvRm9yd2FyZCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdvQmFjayk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmdvVG9CYWNrRm9yd2FyZEl0ZW0pOgorICAgICAgICAoV2ViS2l0OjpzaG91bGRSZXVzZUNvbW1p
dHRlZFNhbmRib3hFeHRlbnNpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRDb21t
aXRMb2FkKToKKworMjAxNC0wNi0xOCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUu
Y29tPgorCiAgICAgICAgIEFkZCBiYWNrIFdLUGFnZVJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZV9i
IGZvciBub3cKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzNDA0NQogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTczNjg4Nzk+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3YXJkQ29udHJvbGxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3YXJkQ29udHJvbGxlci5jcHAKaW5kZXggMmQxZDAyMDA5
ZDk3OTQ2YmJlOWIxNDI4NGMyMGMxYjE2NTM1ZWY5Ni4uOWMxNjcyMjRhNzlkZTNmYjc5ZjNiODg1
NjVhNWQ0YTZkZDE3ZWVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNr
Rm9yd2FyZENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQmFja0Zv
cndhcmRDb250cm9sbGVyLmNwcApAQCAtNzQsNyArNzQsNyBAQCB2b2lkIEJhY2tGb3J3YXJkQ29u
dHJvbGxlcjo6Z29CYWNrT3JGb3J3YXJkKGludCBkaXN0YW5jZSkKICAgICBpZiAoIWl0ZW0pCiAg
ICAgICAgIHJldHVybjsKIAotICAgIG1fcGFnZS5nb1RvSXRlbShpdGVtLCBGcmFtZUxvYWRUeXBl
SW5kZXhlZEJhY2tGb3J3YXJkKTsKKyAgICBtX3BhZ2UuZ29Ub0l0ZW0oaXRlbSwgRnJhbWVMb2Fk
VHlwZTo6SW5kZXhlZEJhY2tGb3J3YXJkKTsKIH0KIAogYm9vbCBCYWNrRm9yd2FyZENvbnRyb2xs
ZXI6OmdvQmFjaygpCkBAIC04Myw3ICs4Myw3IEBAIGJvb2wgQmFja0ZvcndhcmRDb250cm9sbGVy
Ojpnb0JhY2soKQogICAgIGlmICghaXRlbSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAg
bV9wYWdlLmdvVG9JdGVtKGl0ZW0sIEZyYW1lTG9hZFR5cGVCYWNrKTsKKyAgICBtX3BhZ2UuZ29U
b0l0ZW0oaXRlbSwgRnJhbWVMb2FkVHlwZTo6QmFjayk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
QEAgLTkzLDcgKzkzLDcgQEAgYm9vbCBCYWNrRm9yd2FyZENvbnRyb2xsZXI6OmdvRm9yd2FyZCgp
CiAgICAgaWYgKCFpdGVtKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBtX3BhZ2UuZ29U
b0l0ZW0oaXRlbSwgRnJhbWVMb2FkVHlwZUZvcndhcmQpOworICAgIG1fcGFnZS5nb1RvSXRlbShp
dGVtLCBGcmFtZUxvYWRUeXBlOjpGb3J3YXJkKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwCmluZGV4IGU4YWEwYjYwNzlhMTUxZWI5ZWEyYzUx
OTlkYmQyZjY5OWZlYjI3N2YuLmVhZmY3NDNjODU0NzAyZmVkZGQyZWU4MTA2MzI3ZWY1N2YwOTA3
OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAKQEAgLTI0MiwxNSArMjQyLDE1
IEBAIHN0YXRpYyB2b2lkIGxvZ0NhbkNhY2hlUGFnZURlY2lzaW9uKFBhZ2UqIHBhZ2UpCiAgICAg
fQogI2VuZGlmCiAgICAgRnJhbWVMb2FkVHlwZSBsb2FkVHlwZSA9IHBhZ2UtPm1haW5GcmFtZSgp
LmxvYWRlcigpLmxvYWRUeXBlKCk7Ci0gICAgaWYgKGxvYWRUeXBlID09IEZyYW1lTG9hZFR5cGVS
ZWxvYWQpIHsKKyAgICBpZiAobG9hZFR5cGUgPT0gRnJhbWVMb2FkVHlwZTo6UmVsb2FkKSB7CiAg
ICAgICAgIFBDTE9HKCIgICAtTG9hZCB0eXBlIGlzOiBSZWxvYWQiKTsKICAgICAgICAgcmVqZWN0
UmVhc29ucyB8PSAxIDw8IElzUmVsb2FkOwogICAgIH0KLSAgICBpZiAobG9hZFR5cGUgPT0gRnJh
bWVMb2FkVHlwZVJlbG9hZEZyb21PcmlnaW4pIHsKKyAgICBpZiAobG9hZFR5cGUgPT0gRnJhbWVM
b2FkVHlwZTo6UmVsb2FkRnJvbU9yaWdpbikgewogICAgICAgICBQQ0xPRygiICAgLUxvYWQgdHlw
ZSBpczogUmVsb2FkIGZyb20gb3JpZ2luIik7CiAgICAgICAgIHJlamVjdFJlYXNvbnMgfD0gMSA8
PCBJc1JlbG9hZEZyb21PcmlnaW47CiAgICAgfQotICAgIGlmIChsb2FkVHlwZSA9PSBGcmFtZUxv
YWRUeXBlU2FtZSkgeworICAgIGlmIChsb2FkVHlwZSA9PSBGcmFtZUxvYWRUeXBlOjpTYW1lKSB7
CiAgICAgICAgIFBDTE9HKCIgICAtTG9hZCB0eXBlIGlzOiBTYW1lIik7CiAgICAgICAgIHJlamVj
dFJlYXNvbnMgfD0gMSA8PCBJc1NhbWVMb2FkOwogICAgIH0KQEAgLTM0NSwxMCArMzQ1LDEwIEBA
IGJvb2wgUGFnZUNhY2hlOjpjYW5DYWNoZShQYWdlKiBwYWdlKSBjb25zdAogI2lmIEVOQUJMRShQ
Uk9YSU1JVFlfRVZFTlRTKQogICAgICAgICAmJiAhRGV2aWNlUHJveGltaXR5Q29udHJvbGxlcjo6
aXNBY3RpdmVBdChwYWdlKQogI2VuZGlmCi0gICAgICAgICYmIChsb2FkVHlwZSA9PSBGcmFtZUxv
YWRUeXBlU3RhbmRhcmQKLSAgICAgICAgICAgIHx8IGxvYWRUeXBlID09IEZyYW1lTG9hZFR5cGVC
YWNrCi0gICAgICAgICAgICB8fCBsb2FkVHlwZSA9PSBGcmFtZUxvYWRUeXBlRm9yd2FyZAotICAg
ICAgICAgICAgfHwgbG9hZFR5cGUgPT0gRnJhbWVMb2FkVHlwZUluZGV4ZWRCYWNrRm9yd2FyZCk7
CisgICAgICAgICYmIChsb2FkVHlwZSA9PSBGcmFtZUxvYWRUeXBlOjpTdGFuZGFyZAorICAgICAg
ICAgICAgfHwgbG9hZFR5cGUgPT0gRnJhbWVMb2FkVHlwZTo6QmFjaworICAgICAgICAgICAgfHwg
bG9hZFR5cGUgPT0gRnJhbWVMb2FkVHlwZTo6Rm9yd2FyZAorICAgICAgICAgICAgfHwgbG9hZFR5
cGUgPT0gRnJhbWVMb2FkVHlwZTo6SW5kZXhlZEJhY2tGb3J3YXJkKTsKIH0KIAogdm9pZCBQYWdl
Q2FjaGU6OnBydW5lVG9DYXBhY2l0eU5vdyhpbnQgY2FwYWNpdHkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcAppbmRleCBmNjUxYWVlYTcwMzc4YmE4ZTk0MGNhNDNmYTk0NTJhMDFj
N2E5ZTU3Li4xMmU3YzYzNTRiMjE5YzVlZmRjMjkzZDgwNzQ4Njc3OGFjYWIwMGQ1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTE1MiwxNyArMTUyLDE3IEBAIGNvbnN0
IGludCBtZW1vcnlMZXZlbFRocmVzaG9sZFRvUHJ1bmVQYWdlQ2FjaGUgPSAyMDsKIGJvb2wgaXNC
YWNrRm9yd2FyZExvYWRUeXBlKEZyYW1lTG9hZFR5cGUgdHlwZSkKIHsKICAgICBzd2l0Y2ggKHR5
cGUpIHsKLSAgICAgICAgY2FzZSBGcmFtZUxvYWRUeXBlU3RhbmRhcmQ6Ci0gICAgICAgIGNhc2Ug
RnJhbWVMb2FkVHlwZVJlbG9hZDoKLSAgICAgICAgY2FzZSBGcmFtZUxvYWRUeXBlUmVsb2FkRnJv
bU9yaWdpbjoKLSAgICAgICAgY2FzZSBGcmFtZUxvYWRUeXBlU2FtZToKLSAgICAgICAgY2FzZSBG
cmFtZUxvYWRUeXBlUmVkaXJlY3RXaXRoTG9ja2VkQmFja0ZvcndhcmRMaXN0OgotICAgICAgICBj
YXNlIEZyYW1lTG9hZFR5cGVSZXBsYWNlOgotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICBjYXNlIEZyYW1lTG9hZFR5cGVCYWNrOgotICAgICAgICBjYXNlIEZyYW1lTG9hZFR5cGVG
b3J3YXJkOgotICAgICAgICBjYXNlIEZyYW1lTG9hZFR5cGVJbmRleGVkQmFja0ZvcndhcmQ6Ci0g
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIEZyYW1lTG9hZFR5cGU6OlN0YW5kYXJk
OgorICAgIGNhc2UgRnJhbWVMb2FkVHlwZTo6UmVsb2FkOgorICAgIGNhc2UgRnJhbWVMb2FkVHlw
ZTo6UmVsb2FkRnJvbU9yaWdpbjoKKyAgICBjYXNlIEZyYW1lTG9hZFR5cGU6OlNhbWU6CisgICAg
Y2FzZSBGcmFtZUxvYWRUeXBlOjpSZWRpcmVjdFdpdGhMb2NrZWRCYWNrRm9yd2FyZExpc3Q6Cisg
ICAgY2FzZSBGcmFtZUxvYWRUeXBlOjpSZXBsYWNlOgorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgY2FzZSBGcmFtZUxvYWRUeXBlOjpCYWNrOgorICAgIGNhc2UgRnJhbWVMb2FkVHlwZTo6Rm9y
d2FyZDoKKyAgICBjYXNlIEZyYW1lTG9hZFR5cGU6OkluZGV4ZWRCYWNrRm9yd2FyZDoKKyAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJl
dHVybiBmYWxzZTsKQEAgLTIyNSw3ICsyMjUsNyBAQCBGcmFtZUxvYWRlcjo6RnJhbWVMb2FkZXIo
RnJhbWUmIGZyYW1lLCBGcmFtZUxvYWRlckNsaWVudCYgY2xpZW50KQogICAgICwgbV9pY29uKHN0
ZDo6bWFrZV91bmlxdWU8SWNvbkNvbnRyb2xsZXI+KGZyYW1lKSkKICAgICAsIG1fbWl4ZWRDb250
ZW50Q2hlY2tlcihmcmFtZSkKICAgICAsIG1fc3RhdGUoRnJhbWVTdGF0ZVByb3Zpc2lvbmFsKQot
ICAgICwgbV9sb2FkVHlwZShGcmFtZUxvYWRUeXBlU3RhbmRhcmQpCisgICAgLCBtX2xvYWRUeXBl
KEZyYW1lTG9hZFR5cGU6OlN0YW5kYXJkKQogICAgICwgbV9kZWxlZ2F0ZUlzSGFuZGxpbmdQcm92
aXNpb25hbExvYWRFcnJvcihmYWxzZSkKICAgICAsIG1fcXVpY2tSZWRpcmVjdENvbWluZyhmYWxz
ZSkKICAgICAsIG1fc2VudFJlZGlyZWN0Tm90aWZpY2F0aW9uKGZhbHNlKQpAQCAtOTIxLDcgKzky
MSw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRVUkxJbnRvQ2hpbGRGcmFtZShjb25zdCBVUkwm
IHVybCwgY29uc3QgU3RyaW5nJiByZWZlcmVyLCBGCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBj
aGlsZEZyYW1lLT5sb2FkZXIoKS5sb2FkVVJMKHVybCwgcmVmZXJlciwgIl9zZWxmIiwgTG9ja0hp
c3Rvcnk6Ok5vLCBGcmFtZUxvYWRUeXBlUmVkaXJlY3RXaXRoTG9ja2VkQmFja0ZvcndhcmRMaXN0
LCAwLCAwKTsKKyAgICBjaGlsZEZyYW1lLT5sb2FkZXIoKS5sb2FkVVJMKHVybCwgcmVmZXJlciwg
Il9zZWxmIiwgTG9ja0hpc3Rvcnk6Ok5vLCBGcmFtZUxvYWRUeXBlOjpSZWRpcmVjdFdpdGhMb2Nr
ZWRCYWNrRm9yd2FyZExpc3QsIDAsIDApOwogfQogCiAjaWYgRU5BQkxFKFdFQl9BUkNISVZFKSB8
fCBFTkFCTEUoTUhUTUwpCkBAIC0xMTg0LDcgKzExODQsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpw
cmVwYXJlRm9yTG9hZFN0YXJ0KCkKIAogICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmls
aXR5RW5hYmxlZCgpKSB7CiAgICAgICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IG1fZnJh
bWUuZG9jdW1lbnQoKS0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpIHsKLSAgICAgICAgICAgIEFY
T2JqZWN0Q2FjaGU6OkFYTG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVudCA9IGxvYWRUeXBlKCkgPT0g
RnJhbWVMb2FkVHlwZVJlbG9hZCA/IEFYT2JqZWN0Q2FjaGU6OkFYTG9hZGluZ1JlbG9hZGVkIDog
QVhPYmplY3RDYWNoZTo6QVhMb2FkaW5nU3RhcnRlZDsKKyAgICAgICAgICAgIEFYT2JqZWN0Q2Fj
aGU6OkFYTG9hZGluZ0V2ZW50IGxvYWRpbmdFdmVudCA9IGxvYWRUeXBlKCkgPT0gRnJhbWVMb2Fk
VHlwZTo6UmVsb2FkID8gQVhPYmplY3RDYWNoZTo6QVhMb2FkaW5nUmVsb2FkZWQgOiBBWE9iamVj
dENhY2hlOjpBWExvYWRpbmdTdGFydGVkOwogICAgICAgICAgICAgY2FjaGUtPmZyYW1lTG9hZGlu
Z0V2ZW50Tm90aWZpY2F0aW9uKCZtX2ZyYW1lLCBsb2FkaW5nRXZlbnQpOwogICAgICAgICB9CiAg
ICAgfQpAQCAtMTIyMywxMSArMTIyMywxMSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkRnJhbWVS
ZXF1ZXN0KGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmIHJlcXVlc3QsIExvY2tIaXN0b3J5CiAgICAg
CiAgICAgRnJhbWVMb2FkVHlwZSBsb2FkVHlwZTsKICAgICBpZiAocmVxdWVzdC5yZXNvdXJjZVJl
cXVlc3QoKS5jYWNoZVBvbGljeSgpID09IFJlbG9hZElnbm9yaW5nQ2FjaGVEYXRhKQotICAgICAg
ICBsb2FkVHlwZSA9IEZyYW1lTG9hZFR5cGVSZWxvYWQ7CisgICAgICAgIGxvYWRUeXBlID0gRnJh
bWVMb2FkVHlwZTo6UmVsb2FkOwogICAgIGVsc2UgaWYgKGxvY2tCYWNrRm9yd2FyZExpc3QgPT0g
TG9ja0JhY2tGb3J3YXJkTGlzdDo6WWVzKQotICAgICAgICBsb2FkVHlwZSA9IEZyYW1lTG9hZFR5
cGVSZWRpcmVjdFdpdGhMb2NrZWRCYWNrRm9yd2FyZExpc3Q7CisgICAgICAgIGxvYWRUeXBlID0g
RnJhbWVMb2FkVHlwZTo6UmVkaXJlY3RXaXRoTG9ja2VkQmFja0ZvcndhcmRMaXN0OwogICAgIGVs
c2UKLSAgICAgICAgbG9hZFR5cGUgPSBGcmFtZUxvYWRUeXBlU3RhbmRhcmQ7CisgICAgICAgIGxv
YWRUeXBlID0gRnJhbWVMb2FkVHlwZTo6U3RhbmRhcmQ7CiAKICAgICBpZiAocmVxdWVzdC5yZXNv
dXJjZVJlcXVlc3QoKS5odHRwTWV0aG9kKCkgPT0gIlBPU1QiKQogICAgICAgICBsb2FkUG9zdFJl
cXVlc3QocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgcmVmZXJyZXIsIHJlcXVlc3QuZnJhbWVO
YW1lKCksIGxvY2tIaXN0b3J5LCBsb2FkVHlwZSwgZXZlbnQsIGZvcm1TdGF0ZS5nZXQoKSk7CkBA
IC0xMjY2LDEwICsxMjY2LDEwIEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRVUkwoY29uc3QgVVJM
JiBuZXdVUkwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIsIGNvbnN0IFN0cmluCiAgICAgICAgIHJl
cXVlc3Quc2V0Q2FjaGVQYXJ0aXRpb24obV9mcmFtZS50cmVlKCkudG9wKCkuZG9jdW1lbnQoKS0+
c2VjdXJpdHlPcmlnaW4oKS0+Y2FjaGVQYXJ0aXRpb24oKSk7CiAjZW5kaWYKICAgICBhZGRFeHRy
YUZpZWxkc1RvUmVxdWVzdChyZXF1ZXN0LCBuZXdMb2FkVHlwZSwgdHJ1ZSk7Ci0gICAgaWYgKG5l
d0xvYWRUeXBlID09IEZyYW1lTG9hZFR5cGVSZWxvYWQgfHwgbmV3TG9hZFR5cGUgPT0gRnJhbWVM
b2FkVHlwZVJlbG9hZEZyb21PcmlnaW4pCisgICAgaWYgKG5ld0xvYWRUeXBlID09IEZyYW1lTG9h
ZFR5cGU6OlJlbG9hZCB8fCBuZXdMb2FkVHlwZSA9PSBGcmFtZUxvYWRUeXBlOjpSZWxvYWRGcm9t
T3JpZ2luKQogICAgICAgICByZXF1ZXN0LnNldENhY2hlUG9saWN5KFJlbG9hZElnbm9yaW5nQ2Fj
aGVEYXRhKTsKIAotICAgIEFTU0VSVChuZXdMb2FkVHlwZSAhPSBGcmFtZUxvYWRUeXBlU2FtZSk7
CisgICAgQVNTRVJUKG5ld0xvYWRUeXBlICE9IEZyYW1lTG9hZFR5cGU6OlNhbWUpOwogCiAgICAg
Ly8gVGhlIHNlYXJjaCBmb3IgYSB0YXJnZXQgZnJhbWUgaXMgZG9uZSBlYXJsaWVyIGluIHRoZSBj
YXNlIG9mIGZvcm0gc3VibWlzc2lvbi4KICAgICBGcmFtZSogdGFyZ2V0RnJhbWUgPSBpc0Zvcm1T
dWJtaXNzaW9uID8gMCA6IGZpbmRGcmFtZUZvck5hdmlnYXRpb24oZnJhbWVOYW1lKTsKQEAgLTEz
MTYsMTEgKzEzMTYsMTEgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFVSTChjb25zdCBVUkwmIG5l
d1VSTCwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgY29uc3QgU3RyaW4KICAgICAgICAgbV9xdWlj
a1JlZGlyZWN0Q29taW5nID0gZmFsc2U7CiAgICAgICAgIGlmIChtX3Byb3Zpc2lvbmFsRG9jdW1l
bnRMb2FkZXIpCiAgICAgICAgICAgICBtX3Byb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXItPnNldElz
Q2xpZW50UmVkaXJlY3QodHJ1ZSk7Ci0gICAgfSBlbHNlIGlmIChzYW1lVVJMICYmIG5ld0xvYWRU
eXBlICE9IEZyYW1lTG9hZFR5cGVSZWxvYWQgJiYgbmV3TG9hZFR5cGUgIT0gRnJhbWVMb2FkVHlw
ZVJlbG9hZEZyb21PcmlnaW4pIHsKKyAgICB9IGVsc2UgaWYgKHNhbWVVUkwgJiYgbmV3TG9hZFR5
cGUgIT0gRnJhbWVMb2FkVHlwZTo6UmVsb2FkICYmIG5ld0xvYWRUeXBlICE9IEZyYW1lTG9hZFR5
cGU6OlJlbG9hZEZyb21PcmlnaW4pIHsKICAgICAgICAgLy8gRXhhbXBsZSBvZiB0aGlzIGNhc2Ug
YXJlIHNpdGVzIHRoYXQgcmVsb2FkIHRoZSBzYW1lIFVSTCB3aXRoIGEgZGlmZmVyZW50IGNvb2tp
ZQogICAgICAgICAvLyBkcml2aW5nIHRoZSBnZW5lcmF0ZWQgY29udGVudCwgb3IgYSBtYXN0ZXIg
ZnJhbWUgd2l0aCBsaW5rcyB0aGF0IGRyaXZlIGEgdGFyZ2V0CiAgICAgICAgIC8vIGZyYW1lLCB3
aGVyZSB0aGUgdXNlciBoYXMgY2xpY2tlZCBvbiB0aGUgc2FtZSBsaW5rIHJlcGVhdGVkbHkuCi0g
ICAgICAgIG1fbG9hZFR5cGUgPSBGcmFtZUxvYWRUeXBlU2FtZTsKKyAgICAgICAgbV9sb2FkVHlw
ZSA9IEZyYW1lTG9hZFR5cGU6OlNhbWU7CiAgICAgfQogfQogCkBAIC0xMzg4LDExICsxMzg4LDEx
IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWQoRG9jdW1lbnRMb2FkZXIqIG5ld0RvY3VtZW50TG9h
ZGVyKQogCiAgICAgaWYgKHNob3VsZFRyZWF0VVJMQXNTYW1lQXNDdXJyZW50KG5ld0RvY3VtZW50
TG9hZGVyLT5vcmlnaW5hbFJlcXVlc3QoKS51cmwoKSkpIHsKICAgICAgICAgci5zZXRDYWNoZVBv
bGljeShSZWxvYWRJZ25vcmluZ0NhY2hlRGF0YSk7Ci0gICAgICAgIHR5cGUgPSBGcmFtZUxvYWRU
eXBlU2FtZTsKLSAgICB9IGVsc2UgaWYgKHNob3VsZFRyZWF0VVJMQXNTYW1lQXNDdXJyZW50KG5l
d0RvY3VtZW50TG9hZGVyLT51bnJlYWNoYWJsZVVSTCgpKSAmJiBtX2xvYWRUeXBlID09IEZyYW1l
TG9hZFR5cGVSZWxvYWQpCi0gICAgICAgIHR5cGUgPSBGcmFtZUxvYWRUeXBlUmVsb2FkOworICAg
ICAgICB0eXBlID0gRnJhbWVMb2FkVHlwZTo6U2FtZTsKKyAgICB9IGVsc2UgaWYgKHNob3VsZFRy
ZWF0VVJMQXNTYW1lQXNDdXJyZW50KG5ld0RvY3VtZW50TG9hZGVyLT51bnJlYWNoYWJsZVVSTCgp
KSAmJiBtX2xvYWRUeXBlID09IEZyYW1lTG9hZFR5cGU6OlJlbG9hZCkKKyAgICAgICAgdHlwZSA9
IEZyYW1lTG9hZFR5cGU6OlJlbG9hZDsKICAgICBlbHNlCi0gICAgICAgIHR5cGUgPSBGcmFtZUxv
YWRUeXBlU3RhbmRhcmQ7CisgICAgICAgIHR5cGUgPSBGcmFtZUxvYWRUeXBlOjpTdGFuZGFyZDsK
IAogICAgIGlmIChtX2RvY3VtZW50TG9hZGVyKQogICAgICAgICBuZXdEb2N1bWVudExvYWRlci0+
c2V0T3ZlcnJpZGVFbmNvZGluZyhtX2RvY3VtZW50TG9hZGVyLT5vdmVycmlkZUVuY29kaW5nKCkp
OwpAQCAtMTQwMSw3ICsxNDAxLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZChEb2N1bWVudExv
YWRlciogbmV3RG9jdW1lbnRMb2FkZXIpCiAgICAgLy8gdmlzaXRpbmcgaW4gdGhlIGhpc3Rvcnkg
bGlzdCwgd2UgdHJlYXQgaXQgYXMgYSByZWxvYWQgc28gdGhlIGhpc3RvcnkgbGlzdCAKICAgICAv
LyBpcyBhcHByb3ByaWF0ZWx5IG1haW50YWluZWQuCiAgICAgLy8KLSAgICAvLyBGSVhNRTogVGhp
cyBzZWVtcyBsaWtlIGEgZGFuZ2Vyb3VzIG92ZXJsb2FkaW5nIG9mIHRoZSBtZWFuaW5nIG9mICJG
cmFtZUxvYWRUeXBlUmVsb2FkIiAuLi4KKyAgICAvLyBGSVhNRTogVGhpcyBzZWVtcyBsaWtlIGEg
ZGFuZ2Vyb3VzIG92ZXJsb2FkaW5nIG9mIHRoZSBtZWFuaW5nIG9mICJGcmFtZUxvYWRUeXBlOjpS
ZWxvYWQiIC4uLgogICAgIC8vIHNob3VsZG4ndCBhIG1vcmUgZXhwbGljaXQgdHlwZSBvZiByZWxv
YWQgYmUgZGVmaW5lZCwgdGhhdCBtZWFucyByb3VnaGx5IAogICAgIC8vICJsb2FkIHdpdGhvdXQg
YWZmZWN0aW5nIGhpc3RvcnkiID8gCiAgICAgaWYgKHNob3VsZFJlbG9hZFRvSGFuZGxlVW5yZWFj
aGFibGVVUkwobmV3RG9jdW1lbnRMb2FkZXIpKSB7CkBAIC0xNDEwLDggKzE0MTAsOCBAQCB2b2lk
IEZyYW1lTG9hZGVyOjpsb2FkKERvY3VtZW50TG9hZGVyKiBuZXdEb2N1bWVudExvYWRlcikKICAg
ICAgICAgLy8gY2hhbmdlZCBhbmQgdXBkYXRlRm9yQmFja0ZvcndhcmROYXZpZ2F0aW9uKCkgd2ls
bCBub3QgYmUgY2FsbGVkIHdoZW4gbG9hZGluZyBpcyBjb21taXR0ZWQuCiAgICAgICAgIGhpc3Rv
cnkoKS5zYXZlRG9jdW1lbnRBbmRTY3JvbGxTdGF0ZSgpOwogCi0gICAgICAgIEFTU0VSVCh0eXBl
ID09IEZyYW1lTG9hZFR5cGVTdGFuZGFyZCk7Ci0gICAgICAgIHR5cGUgPSBGcmFtZUxvYWRUeXBl
UmVsb2FkOworICAgICAgICBBU1NFUlQodHlwZSA9PSBGcmFtZUxvYWRUeXBlOjpTdGFuZGFyZCk7
CisgICAgICAgIHR5cGUgPSBGcmFtZUxvYWRUeXBlOjpSZWxvYWQ7CiAgICAgfQogCiAgICAgbG9h
ZFdpdGhEb2N1bWVudExvYWRlcihuZXdEb2N1bWVudExvYWRlciwgdHlwZSwgMCk7CkBAIC0xNTU5
LDcgKzE1NTksNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpyZWxvYWRXaXRoT3ZlcnJpZGVFbmNvZGlu
Zyhjb25zdCBTdHJpbmcmIGVuY29kaW5nKQogCiAgICAgbG9hZGVyLT5zZXRPdmVycmlkZUVuY29k
aW5nKGVuY29kaW5nKTsKIAotICAgIGxvYWRXaXRoRG9jdW1lbnRMb2FkZXIobG9hZGVyLmdldCgp
LCBGcmFtZUxvYWRUeXBlUmVsb2FkLCAwKTsKKyAgICBsb2FkV2l0aERvY3VtZW50TG9hZGVyKGxv
YWRlci5nZXQoKSwgRnJhbWVMb2FkVHlwZTo6UmVsb2FkLCAwKTsKIH0KIAogdm9pZCBGcmFtZUxv
YWRlcjo6cmVsb2FkKGJvb2wgZW5kVG9FbmRSZWxvYWQpCkBAIC0xNTkzLDcgKzE1OTMsNyBAQCB2
b2lkIEZyYW1lTG9hZGVyOjpyZWxvYWQoYm9vbCBlbmRUb0VuZFJlbG9hZCkKIAogICAgIGxvYWRl
ci0+c2V0T3ZlcnJpZGVFbmNvZGluZyhtX2RvY3VtZW50TG9hZGVyLT5vdmVycmlkZUVuY29kaW5n
KCkpOwogICAgIAotICAgIGxvYWRXaXRoRG9jdW1lbnRMb2FkZXIobG9hZGVyLmdldCgpLCBlbmRU
b0VuZFJlbG9hZCA/IEZyYW1lTG9hZFR5cGVSZWxvYWRGcm9tT3JpZ2luIDogRnJhbWVMb2FkVHlw
ZVJlbG9hZCwgMCk7CisgICAgbG9hZFdpdGhEb2N1bWVudExvYWRlcihsb2FkZXIuZ2V0KCksIGVu
ZFRvRW5kUmVsb2FkID8gRnJhbWVMb2FkVHlwZTo6UmVsb2FkRnJvbU9yaWdpbiA6IEZyYW1lTG9h
ZFR5cGU6OlJlbG9hZCwgMCk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXI6OnN0b3BBbGxMb2FkZXJz
KENsZWFyUHJvdmlzaW9uYWxJdGVtUG9saWN5IGNsZWFyUHJvdmlzaW9uYWxJdGVtUG9saWN5KQpA
QCAtMTc4NSw3ICsxNzg1LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y29tbWl0UHJvdmlzaW9uYWxM
b2FkKCkKICAgICBpZiAoIW1fZnJhbWUudHJlZSgpLnBhcmVudCgpICYmIHBhZ2VDYWNoZSgpLT5j
YW5DYWNoZShtX2ZyYW1lLnBhZ2UoKSkgJiYgIWl0ZW0tPmlzSW5QYWdlQ2FjaGUoKSkKICAgICAg
ICAgcGFnZUNhY2hlKCktPmFkZChpdGVtLCAqbV9mcmFtZS5wYWdlKCkpOwogCi0gICAgaWYgKG1f
bG9hZFR5cGUgIT0gRnJhbWVMb2FkVHlwZVJlcGxhY2UpCisgICAgaWYgKG1fbG9hZFR5cGUgIT0g
RnJhbWVMb2FkVHlwZTo6UmVwbGFjZSkKICAgICAgICAgY2xvc2VPbGREYXRhU291cmNlcygpOwog
CiAgICAgaWYgKCFjYWNoZWRQYWdlICYmICFtX3N0YXRlTWFjaGluZS5jcmVhdGluZ0luaXRpYWxF
bXB0eURvY3VtZW50KCkpCkBAIC0xODM0LDcgKzE4MzQsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpj
b21taXRQcm92aXNpb25hbExvYWQoKQogICAgIExPRyhMb2FkaW5nLCAiV2ViQ29yZUxvYWRpbmcg
JXM6IEZpbmlzaGVkIGNvbW1pdHRpbmcgcHJvdmlzaW9uYWwgbG9hZCB0byBVUkwgJXMiLCBtX2Zy
YW1lLnRyZWUoKS51bmlxdWVOYW1lKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwKICAgICAgICAg
bV9mcmFtZS5kb2N1bWVudCgpID8gbV9mcmFtZS5kb2N1bWVudCgpLT51cmwoKS5zdHJpbmdDZW50
ZXJFbGxpcHNpemVkVG9MZW5ndGgoKS51dGY4KCkuZGF0YSgpIDogIiIpOwogCi0gICAgaWYgKG1f
bG9hZFR5cGUgPT0gRnJhbWVMb2FkVHlwZVN0YW5kYXJkICYmIG1fZG9jdW1lbnRMb2FkZXItPmlz
Q2xpZW50UmVkaXJlY3QoKSkKKyAgICBpZiAobV9sb2FkVHlwZSA9PSBGcmFtZUxvYWRUeXBlOjpT
dGFuZGFyZCAmJiBtX2RvY3VtZW50TG9hZGVyLT5pc0NsaWVudFJlZGlyZWN0KCkpCiAgICAgICAg
IGhpc3RvcnkoKS51cGRhdGVGb3JDbGllbnRSZWRpcmVjdCgpOwogCiAgICAgaWYgKG1fbG9hZGlu
Z0Zyb21DYWNoZWRQYWdlKSB7CkBAIC0xOTIzLDU3ICsxOTIzLDU3IEBAIHZvaWQgRnJhbWVMb2Fk
ZXI6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZChDYWNoZWRQYWdlKiBjYWNoZWRQYWdlKQogICAgIERv
Y3VtZW50TG9hZGVyKiBkbCA9IG1fZG9jdW1lbnRMb2FkZXIuZ2V0KCk7CiAKICAgICBzd2l0Y2gg
KG1fbG9hZFR5cGUpIHsKLSAgICAgICAgY2FzZSBGcmFtZUxvYWRUeXBlRm9yd2FyZDoKLSAgICAg
ICAgY2FzZSBGcmFtZUxvYWRUeXBlQmFjazoKLSAgICAgICAgY2FzZSBGcmFtZUxvYWRUeXBlSW5k
ZXhlZEJhY2tGb3J3YXJkOgotICAgICAgICAgICAgaWYgKG1fZnJhbWUucGFnZSgpKSB7Ci0gICAg
ICAgICAgICAgICAgLy8gSWYgdGhlIGZpcnN0IGxvYWQgd2l0aGluIGEgZnJhbWUgaXMgYSBuYXZp
Z2F0aW9uIHdpdGhpbiBhIGJhY2svZm9yd2FyZCBsaXN0IHRoYXQgd2FzIGF0dGFjaGVkCi0gICAg
ICAgICAgICAgICAgLy8gd2l0aG91dCBhbnkgb2YgdGhlIGl0ZW1zIGJlaW5nIGxvYWRlZCB0aGVu
IHdlIG5lZWQgdG8gdXBkYXRlIHRoZSBoaXN0b3J5IGluIGEgc2ltaWxhciBtYW5uZXIgYXMKLSAg
ICAgICAgICAgICAgICAvLyBmb3IgYSBzdGFuZGFyZCBsb2FkIHdpdGggdGhlIGV4Y2VwdGlvbiBv
ZiB1cGRhdGluZyB0aGUgYmFjay9mb3J3YXJkIGxpc3QgKDxyZGFyOi8vcHJvYmxlbS84MDkxMTAz
PikuCi0gICAgICAgICAgICAgICAgaWYgKCFtX3N0YXRlTWFjaGluZS5jb21taXR0ZWRGaXJzdFJl
YWxEb2N1bWVudExvYWQoKSAmJiBtX2ZyYW1lLmlzTWFpbkZyYW1lKCkpCi0gICAgICAgICAgICAg
ICAgICAgIGhpc3RvcnkoKS51cGRhdGVGb3JTdGFuZGFyZExvYWQoSGlzdG9yeUNvbnRyb2xsZXI6
OlVwZGF0ZUFsbEV4Y2VwdEJhY2tGb3J3YXJkTGlzdCk7Ci0KLSAgICAgICAgICAgICAgICBoaXN0
b3J5KCkudXBkYXRlRm9yQmFja0ZvcndhcmROYXZpZ2F0aW9uKCk7Ci0KLSAgICAgICAgICAgICAg
ICAvLyBGb3IgY2FjaGVkIHBhZ2VzLCBDYWNoZWRGcmFtZTo6cmVzdG9yZSB3aWxsIHRha2UgY2Fy
ZSBvZiBmaXJpbmcgdGhlIHBvcHN0YXRlIGV2ZW50IHdpdGggdGhlIGhpc3RvcnkgaXRlbSdzIHN0
YXRlIG9iamVjdAotICAgICAgICAgICAgICAgIGlmIChoaXN0b3J5KCkuY3VycmVudEl0ZW0oKSAm
JiAhY2FjaGVkUGFnZSkKLSAgICAgICAgICAgICAgICAgICAgbV9wZW5kaW5nU3RhdGVPYmplY3Qg
PSBoaXN0b3J5KCkuY3VycmVudEl0ZW0oKS0+c3RhdGVPYmplY3QoKTsKLQotICAgICAgICAgICAg
ICAgIC8vIENyZWF0ZSBhIGRvY3VtZW50IHZpZXcgZm9yIHRoaXMgZG9jdW1lbnQsIG9yIHVzZWQg
dGhlIGNhY2hlZCB2aWV3LgotICAgICAgICAgICAgICAgIGlmIChjYWNoZWRQYWdlKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIERvY3VtZW50TG9hZGVyKiBjYWNoZWREb2N1bWVudExvYWRlciA9IGNh
Y2hlZFBhZ2UtPmRvY3VtZW50TG9hZGVyKCk7Ci0gICAgICAgICAgICAgICAgICAgIEFTU0VSVChj
YWNoZWREb2N1bWVudExvYWRlcik7Ci0gICAgICAgICAgICAgICAgICAgIGNhY2hlZERvY3VtZW50
TG9hZGVyLT5zZXRGcmFtZSgmbV9mcmFtZSk7Ci0gICAgICAgICAgICAgICAgICAgIG1fY2xpZW50
LnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZyb21DYWNoZWRGcmFtZShjYWNoZWRQYWdlLT5jYWNoZWRN
YWluRnJhbWUoKSk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAg
IG1fY2xpZW50LnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UoKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgRnJhbWVMb2FkVHlwZVJlbG9h
ZDoKLSAgICAgICAgY2FzZSBGcmFtZUxvYWRUeXBlUmVsb2FkRnJvbU9yaWdpbjoKLSAgICAgICAg
Y2FzZSBGcmFtZUxvYWRUeXBlU2FtZToKLSAgICAgICAgY2FzZSBGcmFtZUxvYWRUeXBlUmVwbGFj
ZToKLSAgICAgICAgICAgIGhpc3RvcnkoKS51cGRhdGVGb3JSZWxvYWQoKTsKLSAgICAgICAgICAg
IG1fY2xpZW50LnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UoKTsKLSAgICAgICAgICAg
IGJyZWFrOwotCi0gICAgICAgIGNhc2UgRnJhbWVMb2FkVHlwZVN0YW5kYXJkOgotICAgICAgICAg
ICAgaGlzdG9yeSgpLnVwZGF0ZUZvclN0YW5kYXJkTG9hZCgpOwotICAgICAgICAgICAgaWYgKG1f
ZnJhbWUudmlldygpKQotICAgICAgICAgICAgICAgIG1fZnJhbWUudmlldygpLT5zZXRTY3JvbGxi
YXJzU3VwcHJlc3NlZCh0cnVlKTsKLSAgICAgICAgICAgIG1fY2xpZW50LnRyYW5zaXRpb25Ub0Nv
bW1pdHRlZEZvck5ld1BhZ2UoKTsKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2Ug
RnJhbWVMb2FkVHlwZVJlZGlyZWN0V2l0aExvY2tlZEJhY2tGb3J3YXJkTGlzdDoKLSAgICAgICAg
ICAgIGhpc3RvcnkoKS51cGRhdGVGb3JSZWRpcmVjdFdpdGhMb2NrZWRCYWNrRm9yd2FyZExpc3Qo
KTsKLSAgICAgICAgICAgIG1fY2xpZW50LnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2Uo
KTsKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIC8vIEZJWE1FIFJlbW92ZSB0aGlzIGNo
ZWNrIHdoZW4gZHVtbXkgZHMgaXMgcmVtb3ZlZCAod2hhdGV2ZXIgImR1bW15IGRzIiBpcykuCi0g
ICAgICAgIC8vIEFuIGV4Y2VwdGlvbiBzaG91bGQgYmUgdGhyb3duIGlmIHdlJ3JlIGluIHRoZSBG
cmFtZUxvYWRUeXBlVW5pbml0aWFsaXplZCBzdGF0ZS4KLSAgICAgICAgZGVmYXVsdDoKLSAgICAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIGNhc2UgRnJhbWVMb2FkVHlwZTo6Rm9y
d2FyZDoKKyAgICBjYXNlIEZyYW1lTG9hZFR5cGU6OkJhY2s6CisgICAgY2FzZSBGcmFtZUxvYWRU
eXBlOjpJbmRleGVkQmFja0ZvcndhcmQ6CisgICAgICAgIGlmIChtX2ZyYW1lLnBhZ2UoKSkgewor
ICAgICAgICAgICAgLy8gSWYgdGhlIGZpcnN0IGxvYWQgd2l0aGluIGEgZnJhbWUgaXMgYSBuYXZp
Z2F0aW9uIHdpdGhpbiBhIGJhY2svZm9yd2FyZCBsaXN0IHRoYXQgd2FzIGF0dGFjaGVkCisgICAg
ICAgICAgICAvLyB3aXRob3V0IGFueSBvZiB0aGUgaXRlbXMgYmVpbmcgbG9hZGVkIHRoZW4gd2Ug
bmVlZCB0byB1cGRhdGUgdGhlIGhpc3RvcnkgaW4gYSBzaW1pbGFyIG1hbm5lciBhcworICAgICAg
ICAgICAgLy8gZm9yIGEgc3RhbmRhcmQgbG9hZCB3aXRoIHRoZSBleGNlcHRpb24gb2YgdXBkYXRp
bmcgdGhlIGJhY2svZm9yd2FyZCBsaXN0ICg8cmRhcjovL3Byb2JsZW0vODA5MTEwMz4pLgorICAg
ICAgICAgICAgaWYgKCFtX3N0YXRlTWFjaGluZS5jb21taXR0ZWRGaXJzdFJlYWxEb2N1bWVudExv
YWQoKSAmJiBtX2ZyYW1lLmlzTWFpbkZyYW1lKCkpCisgICAgICAgICAgICAgICAgaGlzdG9yeSgp
LnVwZGF0ZUZvclN0YW5kYXJkTG9hZChIaXN0b3J5Q29udHJvbGxlcjo6VXBkYXRlQWxsRXhjZXB0
QmFja0ZvcndhcmRMaXN0KTsKKworICAgICAgICAgICAgaGlzdG9yeSgpLnVwZGF0ZUZvckJhY2tG
b3J3YXJkTmF2aWdhdGlvbigpOworCisgICAgICAgICAgICAvLyBGb3IgY2FjaGVkIHBhZ2VzLCBD
YWNoZWRGcmFtZTo6cmVzdG9yZSB3aWxsIHRha2UgY2FyZSBvZiBmaXJpbmcgdGhlIHBvcHN0YXRl
IGV2ZW50IHdpdGggdGhlIGhpc3RvcnkgaXRlbSdzIHN0YXRlIG9iamVjdAorICAgICAgICAgICAg
aWYgKGhpc3RvcnkoKS5jdXJyZW50SXRlbSgpICYmICFjYWNoZWRQYWdlKQorICAgICAgICAgICAg
ICAgIG1fcGVuZGluZ1N0YXRlT2JqZWN0ID0gaGlzdG9yeSgpLmN1cnJlbnRJdGVtKCktPnN0YXRl
T2JqZWN0KCk7CisKKyAgICAgICAgICAgIC8vIENyZWF0ZSBhIGRvY3VtZW50IHZpZXcgZm9yIHRo
aXMgZG9jdW1lbnQsIG9yIHVzZWQgdGhlIGNhY2hlZCB2aWV3LgorICAgICAgICAgICAgaWYgKGNh
Y2hlZFBhZ2UpIHsKKyAgICAgICAgICAgICAgICBEb2N1bWVudExvYWRlciogY2FjaGVkRG9jdW1l
bnRMb2FkZXIgPSBjYWNoZWRQYWdlLT5kb2N1bWVudExvYWRlcigpOworICAgICAgICAgICAgICAg
IEFTU0VSVChjYWNoZWREb2N1bWVudExvYWRlcik7CisgICAgICAgICAgICAgICAgY2FjaGVkRG9j
dW1lbnRMb2FkZXItPnNldEZyYW1lKCZtX2ZyYW1lKTsKKyAgICAgICAgICAgICAgICBtX2NsaWVu
dC50cmFuc2l0aW9uVG9Db21taXR0ZWRGcm9tQ2FjaGVkRnJhbWUoY2FjaGVkUGFnZS0+Y2FjaGVk
TWFpbkZyYW1lKCkpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgbV9jbGll
bnQudHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSgpOworICAgICAgICB9CisgICAgICAg
IGJyZWFrOworCisgICAgY2FzZSBGcmFtZUxvYWRUeXBlOjpSZWxvYWQ6CisgICAgY2FzZSBGcmFt
ZUxvYWRUeXBlOjpSZWxvYWRGcm9tT3JpZ2luOgorICAgIGNhc2UgRnJhbWVMb2FkVHlwZTo6U2Ft
ZToKKyAgICBjYXNlIEZyYW1lTG9hZFR5cGU6OlJlcGxhY2U6CisgICAgICAgIGhpc3RvcnkoKS51
cGRhdGVGb3JSZWxvYWQoKTsKKyAgICAgICAgbV9jbGllbnQudHJhbnNpdGlvblRvQ29tbWl0dGVk
Rm9yTmV3UGFnZSgpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgRnJhbWVMb2FkVHlwZTo6
U3RhbmRhcmQ6CisgICAgICAgIGhpc3RvcnkoKS51cGRhdGVGb3JTdGFuZGFyZExvYWQoKTsKKyAg
ICAgICAgaWYgKG1fZnJhbWUudmlldygpKQorICAgICAgICAgICAgbV9mcmFtZS52aWV3KCktPnNl
dFNjcm9sbGJhcnNTdXBwcmVzc2VkKHRydWUpOworICAgICAgICBtX2NsaWVudC50cmFuc2l0aW9u
VG9Db21taXR0ZWRGb3JOZXdQYWdlKCk7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBGcmFt
ZUxvYWRUeXBlOjpSZWRpcmVjdFdpdGhMb2NrZWRCYWNrRm9yd2FyZExpc3Q6CisgICAgICAgIGhp
c3RvcnkoKS51cGRhdGVGb3JSZWRpcmVjdFdpdGhMb2NrZWRCYWNrRm9yd2FyZExpc3QoKTsKKyAg
ICAgICAgbV9jbGllbnQudHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSgpOworICAgICAg
ICBicmVhazsKKworICAgIC8vIEZJWE1FIFJlbW92ZSB0aGlzIGNoZWNrIHdoZW4gZHVtbXkgZHMg
aXMgcmVtb3ZlZCAod2hhdGV2ZXIgImR1bW15IGRzIiBpcykuCisgICAgLy8gQW4gZXhjZXB0aW9u
IHNob3VsZCBiZSB0aHJvd24gaWYgd2UncmUgaW4gdGhlIEZyYW1lTG9hZFR5cGVVbmluaXRpYWxp
emVkIHN0YXRlLgorICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgIH0KIAogICAgIG1fZG9jdW1lbnRMb2FkZXItPndyaXRlcigpLnNldE1JTUVUeXBlKGRsLT5y
ZXNwb25zZU1JTUVUeXBlKCkpOwpAQCAtMjExMywxMiArMjExMywxMiBAQCBib29sIEZyYW1lTG9h
ZGVyOjppc0hvc3RlZEJ5T2JqZWN0RWxlbWVudCgpIGNvbnN0CiAKIGJvb2wgRnJhbWVMb2FkZXI6
OmlzUmVwbGFjaW5nKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9sb2FkVHlwZSA9PSBGcmFtZUxv
YWRUeXBlUmVwbGFjZTsKKyAgICByZXR1cm4gbV9sb2FkVHlwZSA9PSBGcmFtZUxvYWRUeXBlOjpS
ZXBsYWNlOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjpzZXRSZXBsYWNpbmcoKQogewotICAgIG1f
bG9hZFR5cGUgPSBGcmFtZUxvYWRUeXBlUmVwbGFjZTsKKyAgICBtX2xvYWRUeXBlID0gRnJhbWVM
b2FkVHlwZTo6UmVwbGFjZTsKIH0KIAogYm9vbCBGcmFtZUxvYWRlcjo6c3ViZnJhbWVJc0xvYWRp
bmcoKSBjb25zdApAQCAtMjE1NCw3ICsyMTU0LDcgQEAgQ2FjaGVQb2xpY3kgRnJhbWVMb2FkZXI6
OnN1YnJlc291cmNlQ2FjaGVQb2xpY3koKSBjb25zdAogICAgIGlmIChtX2lzQ29tcGxldGUpCiAg
ICAgICAgIHJldHVybiBDYWNoZVBvbGljeVZlcmlmeTsKIAotICAgIGlmIChtX2xvYWRUeXBlID09
IEZyYW1lTG9hZFR5cGVSZWxvYWRGcm9tT3JpZ2luKQorICAgIGlmIChtX2xvYWRUeXBlID09IEZy
YW1lTG9hZFR5cGU6OlJlbG9hZEZyb21PcmlnaW4pCiAgICAgICAgIHJldHVybiBDYWNoZVBvbGlj
eVJlbG9hZDsKIAogICAgIGlmIChGcmFtZSogcGFyZW50RnJhbWUgPSBtX2ZyYW1lLnRyZWUoKS5w
YXJlbnQoKSkgewpAQCAtMjE2Myw3ICsyMTYzLDcgQEAgQ2FjaGVQb2xpY3kgRnJhbWVMb2FkZXI6
OnN1YnJlc291cmNlQ2FjaGVQb2xpY3koKSBjb25zdAogICAgICAgICAgICAgcmV0dXJuIHBhcmVu
dENhY2hlUG9saWN5OwogICAgIH0KICAgICAKLSAgICBpZiAobV9sb2FkVHlwZSA9PSBGcmFtZUxv
YWRUeXBlUmVsb2FkKQorICAgIGlmIChtX2xvYWRUeXBlID09IEZyYW1lTG9hZFR5cGU6OlJlbG9h
ZCkKICAgICAgICAgcmV0dXJuIENhY2hlUG9saWN5UmV2YWxpZGF0ZTsKIAogICAgIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdChkb2N1bWVudExvYWRlcigpLT5yZXF1ZXN0KCkpOwpAQCAt
MjI0OSw3ICsyMjQ5LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2hlY2tMb2FkQ29tcGxldGVGb3JU
aGlzRnJhbWUoKQogICAgICAgICAgICAgIAogICAgICAgICAgICAgLy8gSWYgdGhlIHVzZXIgaGFk
IGEgc2Nyb2xsIHBvaW50LCBzY3JvbGwgdG8gaXQsIG92ZXJyaWRpbmcgdGhlIGFuY2hvciBwb2lu
dCBpZiBhbnkuCiAgICAgICAgICAgICBpZiAobV9mcmFtZS5wYWdlKCkpIHsKLSAgICAgICAgICAg
ICAgICBpZiAoaXNCYWNrRm9yd2FyZExvYWRUeXBlKG1fbG9hZFR5cGUpIHx8IG1fbG9hZFR5cGUg
PT0gRnJhbWVMb2FkVHlwZVJlbG9hZCB8fCBtX2xvYWRUeXBlID09IEZyYW1lTG9hZFR5cGVSZWxv
YWRGcm9tT3JpZ2luKQorICAgICAgICAgICAgICAgIGlmIChpc0JhY2tGb3J3YXJkTG9hZFR5cGUo
bV9sb2FkVHlwZSkgfHwgbV9sb2FkVHlwZSA9PSBGcmFtZUxvYWRUeXBlOjpSZWxvYWQgfHwgbV9s
b2FkVHlwZSA9PSBGcmFtZUxvYWRUeXBlOjpSZWxvYWRGcm9tT3JpZ2luKQogICAgICAgICAgICAg
ICAgICAgICBoaXN0b3J5KCkucmVzdG9yZVNjcm9sbFBvc2l0aW9uQW5kVmlld1N0YXRlKCk7CiAg
ICAgICAgICAgICB9CiAKQEAgLTIyODEsNyArMjI4MSw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNo
ZWNrTG9hZENvbXBsZXRlRm9yVGhpc0ZyYW1lKCkKICAgICAgICAgfQogICAgICAgICAKICAgICAg
ICAgY2FzZSBGcmFtZVN0YXRlQ29tcGxldGU6Ci0gICAgICAgICAgICBtX2xvYWRUeXBlID0gRnJh
bWVMb2FkVHlwZVN0YW5kYXJkOworICAgICAgICAgICAgbV9sb2FkVHlwZSA9IEZyYW1lTG9hZFR5
cGU6OlN0YW5kYXJkOwogICAgICAgICAgICAgZnJhbWVMb2FkQ29tcGxldGVkKCk7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgfQpAQCAtMjU2MCwxMyArMjU2MCwxMyBAQCB2b2lkIEZyYW1lTG9h
ZGVyOjphZGRFeHRyYUZpZWxkc1RvUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIEZy
YW1lTG9hZFR5cAogCiAgICAgLy8gRklYTUU6IE90aGVyIEZyYW1lTG9hZGVyIGZ1bmN0aW9ucyBo
YXZlIGR1cGxpY2F0ZWQgY29kZSBmb3Igc2V0dGluZyBjYWNoZSBwb2xpY3kgb2YgbWFpbiByZXF1
ZXN0IHdoZW4gcmVsb2FkaW5nLgogICAgIC8vIEl0IHNlZW1zIGJldHRlciB0byBtYW5hZ2UgaXQg
ZXhwbGljaXRseSB0aGFuIHRvIGhpZGUgdGhlIGxvZ2ljIGluc2lkZSBhZGRFeHRyYUZpZWxkc1Rv
UmVxdWVzdCgpLgotICAgIH0gZWxzZSBpZiAobG9hZFR5cGUgPT0gRnJhbWVMb2FkVHlwZVJlbG9h
ZCB8fCBsb2FkVHlwZSA9PSBGcmFtZUxvYWRUeXBlUmVsb2FkRnJvbU9yaWdpbiB8fCByZXF1ZXN0
LmlzQ29uZGl0aW9uYWwoKSkKKyAgICB9IGVsc2UgaWYgKGxvYWRUeXBlID09IEZyYW1lTG9hZFR5
cGU6OlJlbG9hZCB8fCBsb2FkVHlwZSA9PSBGcmFtZUxvYWRUeXBlOjpSZWxvYWRGcm9tT3JpZ2lu
IHx8IHJlcXVlc3QuaXNDb25kaXRpb25hbCgpKQogICAgICAgICByZXF1ZXN0LnNldENhY2hlUG9s
aWN5KFJlbG9hZElnbm9yaW5nQ2FjaGVEYXRhKTsKIAogICAgIGlmIChyZXF1ZXN0LmNhY2hlUG9s
aWN5KCkgPT0gUmVsb2FkSWdub3JpbmdDYWNoZURhdGEpIHsKLSAgICAgICAgaWYgKGxvYWRUeXBl
ID09IEZyYW1lTG9hZFR5cGVSZWxvYWQpCisgICAgICAgIGlmIChsb2FkVHlwZSA9PSBGcmFtZUxv
YWRUeXBlOjpSZWxvYWQpCiAgICAgICAgICAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChI
VFRQSGVhZGVyTmFtZTo6Q2FjaGVDb250cm9sLCAibWF4LWFnZT0wIik7Ci0gICAgICAgIGVsc2Ug
aWYgKGxvYWRUeXBlID09IEZyYW1lTG9hZFR5cGVSZWxvYWRGcm9tT3JpZ2luKSB7CisgICAgICAg
IGVsc2UgaWYgKGxvYWRUeXBlID09IEZyYW1lTG9hZFR5cGU6OlJlbG9hZEZyb21PcmlnaW4pIHsK
ICAgICAgICAgICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpD
YWNoZUNvbnRyb2wsICJuby1jYWNoZSIpOwogICAgICAgICAgICAgcmVxdWVzdC5zZXRIVFRQSGVh
ZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OlByYWdtYSwgIm5vLWNhY2hlIik7CiAgICAgICAgIH0K
QEAgLTI3NDUsNyArMjc0NSw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNvbnRpbnVlRnJhZ21lbnRT
Y3JvbGxBZnRlck5hdmlnYXRpb25Qb2xpY3koY29uc3QgUmVzb3VyY2VSZXF1CiAgICAgICAgIHNl
dFByb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIoMCk7CiAgICAgfQogCi0gICAgYm9vbCBpc1JlZGly
ZWN0ID0gbV9xdWlja1JlZGlyZWN0Q29taW5nIHx8IHBvbGljeUNoZWNrZXIoKS5sb2FkVHlwZSgp
ID09IEZyYW1lTG9hZFR5cGVSZWRpcmVjdFdpdGhMb2NrZWRCYWNrRm9yd2FyZExpc3Q7ICAgIAor
ICAgIGJvb2wgaXNSZWRpcmVjdCA9IG1fcXVpY2tSZWRpcmVjdENvbWluZyB8fCBwb2xpY3lDaGVj
a2VyKCkubG9hZFR5cGUoKSA9PSBGcmFtZUxvYWRUeXBlOjpSZWRpcmVjdFdpdGhMb2NrZWRCYWNr
Rm9yd2FyZExpc3Q7CiAgICAgbG9hZEluU2FtZURvY3VtZW50KHJlcXVlc3QudXJsKCksIDAsICFp
c1JlZGlyZWN0KTsKIH0KIApAQCAtMjc1OCw5ICsyNzU4LDkgQEAgYm9vbCBGcmFtZUxvYWRlcjo6
c2hvdWxkUGVyZm9ybUZyYWdtZW50TmF2aWdhdGlvbihib29sIGlzRm9ybVN1Ym1pc3Npb24sIGNv
bnN0IFMKICAgICAvLyBGSVhNRTogV2hhdCBhYm91dCBsb2FkIHR5cGVzIG90aGVyIHRoYW4gU3Rh
bmRhcmQgYW5kIFJlbG9hZD8KIAogICAgIHJldHVybiAoIWlzRm9ybVN1Ym1pc3Npb24gfHwgZXF1
YWxJZ25vcmluZ0Nhc2UoaHR0cE1ldGhvZCwgIkdFVCIpKQotICAgICAgICAmJiBsb2FkVHlwZSAh
PSBGcmFtZUxvYWRUeXBlUmVsb2FkCi0gICAgICAgICYmIGxvYWRUeXBlICE9IEZyYW1lTG9hZFR5
cGVSZWxvYWRGcm9tT3JpZ2luCi0gICAgICAgICYmIGxvYWRUeXBlICE9IEZyYW1lTG9hZFR5cGVT
YW1lCisgICAgICAgICYmIGxvYWRUeXBlICE9IEZyYW1lTG9hZFR5cGU6OlJlbG9hZAorICAgICAg
ICAmJiBsb2FkVHlwZSAhPSBGcmFtZUxvYWRUeXBlOjpSZWxvYWRGcm9tT3JpZ2luCisgICAgICAg
ICYmIGxvYWRUeXBlICE9IEZyYW1lTG9hZFR5cGU6OlNhbWUKICAgICAgICAgJiYgIXNob3VsZFJl
bG9hZChtX2ZyYW1lLmRvY3VtZW50KCktPnVybCgpLCB1cmwpCiAgICAgICAgIC8vIFdlIGRvbid0
IHdhbnQgdG8ganVzdCBzY3JvbGwgaWYgYSBsaW5rIGZyb20gd2l0aGluIGEKICAgICAgICAgLy8g
ZnJhbWVzZXQgaXMgdHJ5aW5nIHRvIHJlbG9hZCB0aGUgZnJhbWVzZXQgaW50byBfdG9wLgpAQCAt
Mjk3OSw3ICsyOTc5LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y29udGludWVMb2FkQWZ0ZXJOZXdX
aW5kb3dQb2xpY3koY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXMKICAgICAgICAgbWFpbkZy
YW1lLT5sb2FkZXIoKS5zZXRPcGVuZXIoJmZyYW1lLmdldCgpKTsKICAgICAgICAgbWFpbkZyYW1l
LT5kb2N1bWVudCgpLT5zZXRSZWZlcnJlclBvbGljeShmcmFtZS0+ZG9jdW1lbnQoKS0+cmVmZXJy
ZXJQb2xpY3koKSk7CiAgICAgfQotICAgIG1haW5GcmFtZS0+bG9hZGVyKCkubG9hZFdpdGhOYXZp
Z2F0aW9uQWN0aW9uKHJlcXVlc3QsIE5hdmlnYXRpb25BY3Rpb24ocmVxdWVzdCksIExvY2tIaXN0
b3J5OjpObywgRnJhbWVMb2FkVHlwZVN0YW5kYXJkLCBmb3JtU3RhdGUpOworICAgIG1haW5GcmFt
ZS0+bG9hZGVyKCkubG9hZFdpdGhOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QsIE5hdmlnYXRpb25B
Y3Rpb24ocmVxdWVzdCksIExvY2tIaXN0b3J5OjpObywgRnJhbWVMb2FkVHlwZTo6U3RhbmRhcmQs
IGZvcm1TdGF0ZSk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXI6OnJlcXVlc3RGcm9tRGVsZWdhdGUo
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCB1bnNpZ25lZCBsb25nJiBpZGVudGlmaWVyLCBSZXNv
dXJjZUVycm9yJiBlcnJvcikKQEAgLTMyMDYsMjQgKzMyMDYsMjQgQEAgdm9pZCBGcmFtZUxvYWRl
cjo6bG9hZERpZmZlcmVudERvY3VtZW50SXRlbShIaXN0b3J5SXRlbSogaXRlbSwgRnJhbWVMb2Fk
VHlwZSBsb2EKICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIHN3aXRjaCAobG9hZFR5
cGUpIHsKLSAgICAgICAgICAgIGNhc2UgRnJhbWVMb2FkVHlwZVJlbG9hZDoKLSAgICAgICAgICAg
IGNhc2UgRnJhbWVMb2FkVHlwZVJlbG9hZEZyb21PcmlnaW46Ci0gICAgICAgICAgICAgICAgcmVx
dWVzdC5zZXRDYWNoZVBvbGljeShSZWxvYWRJZ25vcmluZ0NhY2hlRGF0YSk7Ci0gICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIEZyYW1lTG9hZFR5cGVCYWNrOgotICAgICAg
ICAgICAgY2FzZSBGcmFtZUxvYWRUeXBlRm9yd2FyZDoKLSAgICAgICAgICAgIGNhc2UgRnJhbWVM
b2FkVHlwZUluZGV4ZWRCYWNrRm9yd2FyZDoKLSAgICAgICAgICAgICAgICAvLyBJZiB0aGUgZmly
c3QgbG9hZCB3aXRoaW4gYSBmcmFtZSBpcyBhIG5hdmlnYXRpb24gd2l0aGluIGEgYmFjay9mb3J3
YXJkIGxpc3QgdGhhdCB3YXMgYXR0YWNoZWQgCi0gICAgICAgICAgICAgICAgLy8gd2l0aG91dCBh
bnkgb2YgdGhlIGl0ZW1zIGJlaW5nIGxvYWRlZCB0aGVuIHdlIHNob3VsZCB1c2UgdGhlIGRlZmF1
bHQgY2FjaGluZyBwb2xpY3kgKDxyZGFyOi8vcHJvYmxlbS84MTMxMzU1PikuCi0gICAgICAgICAg
ICAgICAgaWYgKG1fc3RhdGVNYWNoaW5lLmNvbW1pdHRlZEZpcnN0UmVhbERvY3VtZW50TG9hZCgp
KQotICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LnNldENhY2hlUG9saWN5KFJldHVybkNhY2hl
RGF0YUVsc2VMb2FkKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2Ug
RnJhbWVMb2FkVHlwZVN0YW5kYXJkOgotICAgICAgICAgICAgY2FzZSBGcmFtZUxvYWRUeXBlUmVk
aXJlY3RXaXRoTG9ja2VkQmFja0ZvcndhcmRMaXN0OgotICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgY2FzZSBGcmFtZUxvYWRUeXBlU2FtZToKLSAgICAgICAgICAgIGRlZmF1bHQ6
Ci0gICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGNhc2UgRnJh
bWVMb2FkVHlwZTo6UmVsb2FkOgorICAgICAgICBjYXNlIEZyYW1lTG9hZFR5cGU6OlJlbG9hZEZy
b21PcmlnaW46CisgICAgICAgICAgICByZXF1ZXN0LnNldENhY2hlUG9saWN5KFJlbG9hZElnbm9y
aW5nQ2FjaGVEYXRhKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEZyYW1lTG9h
ZFR5cGU6OkJhY2s6CisgICAgICAgIGNhc2UgRnJhbWVMb2FkVHlwZTo6Rm9yd2FyZDoKKyAgICAg
ICAgY2FzZSBGcmFtZUxvYWRUeXBlOjpJbmRleGVkQmFja0ZvcndhcmQ6CisgICAgICAgICAgICAv
LyBJZiB0aGUgZmlyc3QgbG9hZCB3aXRoaW4gYSBmcmFtZSBpcyBhIG5hdmlnYXRpb24gd2l0aGlu
IGEgYmFjay9mb3J3YXJkIGxpc3QgdGhhdCB3YXMgYXR0YWNoZWQgCisgICAgICAgICAgICAvLyB3
aXRob3V0IGFueSBvZiB0aGUgaXRlbXMgYmVpbmcgbG9hZGVkIHRoZW4gd2Ugc2hvdWxkIHVzZSB0
aGUgZGVmYXVsdCBjYWNoaW5nIHBvbGljeSAoPHJkYXI6Ly9wcm9ibGVtLzgxMzEzNTU+KS4KKyAg
ICAgICAgICAgIGlmIChtX3N0YXRlTWFjaGluZS5jb21taXR0ZWRGaXJzdFJlYWxEb2N1bWVudExv
YWQoKSkKKyAgICAgICAgICAgICAgICByZXF1ZXN0LnNldENhY2hlUG9saWN5KFJldHVybkNhY2hl
RGF0YUVsc2VMb2FkKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEZyYW1lTG9h
ZFR5cGU6OlN0YW5kYXJkOgorICAgICAgICBjYXNlIEZyYW1lTG9hZFR5cGU6OlJlZGlyZWN0V2l0
aExvY2tlZEJhY2tGb3J3YXJkTGlzdDoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IEZyYW1lTG9hZFR5cGU6OlNhbWU6CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgfQogCiAgICAgICAgIGFkZEV4dHJhRmllbGRzVG9S
ZXF1ZXN0KHJlcXVlc3QsIGxvYWRUeXBlLCB0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXJUeXBlcy5oCmluZGV4IDI5MTczZTU3ZmJiNGJmMzMwNWVhYmM5YzQyZDY3MTEwY2Vh
YTMwYTYuLmVlZjQxODExYjUyMmRjZjllMWY4MGFiMzE5NWEzMjNmOWI3NWFmYTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaApAQCAtNDUsMTkgKzQ1LDE3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgUG9saWN5SWdub3JlCiAgICAgfTsKIAotICAgIC8v
IE5PVEU6IEtlZXAgaW4gc3luYyB3aXRoIFdlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVByaXZh
dGUuaCBhbmQgV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJGcmFtZVByaXZhdGUuaWRsCi0gICAg
ZW51bSBGcmFtZUxvYWRUeXBlIHsKLSAgICAgICAgRnJhbWVMb2FkVHlwZVN0YW5kYXJkLAotICAg
ICAgICBGcmFtZUxvYWRUeXBlQmFjaywKLSAgICAgICAgRnJhbWVMb2FkVHlwZUZvcndhcmQsCi0g
ICAgICAgIEZyYW1lTG9hZFR5cGVJbmRleGVkQmFja0ZvcndhcmQsIC8vIGEgbXVsdGktaXRlbSBo
b3AgaW4gdGhlIGJhY2tmb3J3YXJkIGxpc3QKLSAgICAgICAgRnJhbWVMb2FkVHlwZVJlbG9hZCwK
LSAgICAgICAgLy8gU2tpcHBlZCB2YWx1ZTogJ0ZyYW1lTG9hZFR5cGVSZWxvYWRBbGxvd2luZ1N0
YWxlRGF0YScsIHN0aWxsIHByZXNlbnQgaW4gbWFjL3dpbiBwdWJsaWMgQVBJLiBSZWFkeSB0byBi
ZSByZXVzZWQKLSAgICAgICAgRnJhbWVMb2FkVHlwZVNhbWUgPSBGcmFtZUxvYWRUeXBlUmVsb2Fk
ICsgMiwgLy8gdXNlciBsb2FkcyBzYW1lIFVSTCBhZ2FpbiAoYnV0IG5vdCByZWxvYWQgYnV0dG9u
KQotICAgICAgICBGcmFtZUxvYWRUeXBlUmVkaXJlY3RXaXRoTG9ja2VkQmFja0ZvcndhcmRMaXN0
LCAvLyBGSVhNRTogTWVyZ2UgImxvY2tCYWNrRm9yd2FyZExpc3QiLCAibG9ja0hpc3RvcnkiLCAi
cXVpY2tSZWRpcmVjdCIgYW5kICJjbGllbnRSZWRpcmVjdCIgaW50byBhIHNpbmdsZSBjb25jZXB0
IG9mIHJlZGlyZWN0LgotICAgICAgICBGcmFtZUxvYWRUeXBlUmVwbGFjZSwKLSAgICAgICAgRnJh
bWVMb2FkVHlwZVJlbG9hZEZyb21PcmlnaW4sCi0gICAgfTsKK2VudW0gY2xhc3MgRnJhbWVMb2Fk
VHlwZSB7CisgICAgU3RhbmRhcmQsCisgICAgQmFjaywKKyAgICBGb3J3YXJkLAorICAgIEluZGV4
ZWRCYWNrRm9yd2FyZCwgLy8gYSBtdWx0aS1pdGVtIGhvcCBpbiB0aGUgYmFja2ZvcndhcmQgbGlz
dAorICAgIFJlbG9hZCwKKyAgICBTYW1lLCAvLyB1c2VyIGxvYWRzIHNhbWUgVVJMIGFnYWluIChi
dXQgbm90IHJlbG9hZCBidXR0b24pCisgICAgUmVkaXJlY3RXaXRoTG9ja2VkQmFja0ZvcndhcmRM
aXN0LCAvLyBGSVhNRTogTWVyZ2UgImxvY2tCYWNrRm9yd2FyZExpc3QiLCAibG9ja0hpc3Rvcnki
LCAicXVpY2tSZWRpcmVjdCIgYW5kICJjbGllbnRSZWRpcmVjdCIgaW50byBhIHNpbmdsZSBjb25j
ZXB0IG9mIHJlZGlyZWN0LgorICAgIFJlcGxhY2UsCisgICAgUmVsb2FkRnJvbU9yaWdpbiwKK307
CiAKICAgICBlbnVtIE5hdmlnYXRpb25UeXBlIHsKICAgICAgICAgTmF2aWdhdGlvblR5cGVMaW5r
Q2xpY2tlZCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJv
bGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwCmlu
ZGV4IDQyNmNjZTdlN2JlMjBlZjkyNzY3NjZiMzM2MWNiNjNmYWYzYTYyYmIuLjgxOTQ1N2U5NjU5
YzQ3NjVhNmU5MWYwMTllMTdlMDQ2MWZjNTliZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0hpc3RvcnlDb250cm9sbGVyLmNwcApAQCAtMjA1LDE4ICsyMDUsMTggQEAgdm9pZCBIaXN0b3J5
Q29udHJvbGxlcjo6c2F2ZURvY3VtZW50QW5kU2Nyb2xsU3RhdGUoKQogdm9pZCBIaXN0b3J5Q29u
dHJvbGxlcjo6cmVzdG9yZURvY3VtZW50U3RhdGUoKQogewogICAgIHN3aXRjaCAobV9mcmFtZS5s
b2FkZXIoKS5sb2FkVHlwZSgpKSB7Ci0gICAgICAgIGNhc2UgRnJhbWVMb2FkVHlwZVJlbG9hZDoK
LSAgICAgICAgY2FzZSBGcmFtZUxvYWRUeXBlUmVsb2FkRnJvbU9yaWdpbjoKLSAgICAgICAgY2Fz
ZSBGcmFtZUxvYWRUeXBlU2FtZToKLSAgICAgICAgY2FzZSBGcmFtZUxvYWRUeXBlUmVwbGFjZToK
LSAgICAgICAgICAgIC8vIE5vdCByZXN0b3JpbmcgdGhlIGRvY3VtZW50IHN0YXRlLgotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICBjYXNlIEZyYW1lTG9hZFR5cGVCYWNrOgotICAgICAgICBj
YXNlIEZyYW1lTG9hZFR5cGVGb3J3YXJkOgotICAgICAgICBjYXNlIEZyYW1lTG9hZFR5cGVJbmRl
eGVkQmFja0ZvcndhcmQ6Ci0gICAgICAgIGNhc2UgRnJhbWVMb2FkVHlwZVJlZGlyZWN0V2l0aExv
Y2tlZEJhY2tGb3J3YXJkTGlzdDoKLSAgICAgICAgY2FzZSBGcmFtZUxvYWRUeXBlU3RhbmRhcmQ6
Ci0gICAgICAgICAgICBicmVhazsKKyAgICBjYXNlIEZyYW1lTG9hZFR5cGU6OlJlbG9hZDoKKyAg
ICBjYXNlIEZyYW1lTG9hZFR5cGU6OlJlbG9hZEZyb21PcmlnaW46CisgICAgY2FzZSBGcmFtZUxv
YWRUeXBlOjpTYW1lOgorICAgIGNhc2UgRnJhbWVMb2FkVHlwZTo6UmVwbGFjZToKKyAgICAgICAg
Ly8gTm90IHJlc3RvcmluZyB0aGUgZG9jdW1lbnQgc3RhdGUuCisgICAgICAgIHJldHVybjsKKyAg
ICBjYXNlIEZyYW1lTG9hZFR5cGU6OkJhY2s6CisgICAgY2FzZSBGcmFtZUxvYWRUeXBlOjpGb3J3
YXJkOgorICAgIGNhc2UgRnJhbWVMb2FkVHlwZTo6SW5kZXhlZEJhY2tGb3J3YXJkOgorICAgIGNh
c2UgRnJhbWVMb2FkVHlwZTo6UmVkaXJlY3RXaXRoTG9ja2VkQmFja0ZvcndhcmRMaXN0OgorICAg
IGNhc2UgRnJhbWVMb2FkVHlwZTo6U3RhbmRhcmQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KICAg
ICAKICAgICBpZiAoIW1fY3VycmVudEl0ZW0pCkBAIC0zMzMsNyArMzMzLDcgQEAgdm9pZCBIaXN0
b3J5Q29udHJvbGxlcjo6dXBkYXRlRm9yUmVsb2FkKCkKICAgICBpZiAobV9jdXJyZW50SXRlbSkg
ewogICAgICAgICBwYWdlQ2FjaGUoKS0+cmVtb3ZlKG1fY3VycmVudEl0ZW0uZ2V0KCkpOwogICAg
IAotICAgICAgICBpZiAobV9mcmFtZS5sb2FkZXIoKS5sb2FkVHlwZSgpID09IEZyYW1lTG9hZFR5
cGVSZWxvYWQgfHwgbV9mcmFtZS5sb2FkZXIoKS5sb2FkVHlwZSgpID09IEZyYW1lTG9hZFR5cGVS
ZWxvYWRGcm9tT3JpZ2luKQorICAgICAgICBpZiAobV9mcmFtZS5sb2FkZXIoKS5sb2FkVHlwZSgp
ID09IEZyYW1lTG9hZFR5cGU6OlJlbG9hZCB8fCBtX2ZyYW1lLmxvYWRlcigpLmxvYWRUeXBlKCkg
PT0gRnJhbWVMb2FkVHlwZTo6UmVsb2FkRnJvbU9yaWdpbikKICAgICAgICAgICAgIHNhdmVTY3Jv
bGxQb3NpdGlvbkFuZFZpZXdTdGF0ZVRvSXRlbShtX2N1cnJlbnRJdGVtLmdldCgpKTsKICAgICB9
CiAKQEAgLTQ3OCwxNCArNDc4LDE0IEBAIHZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6OnVwZGF0ZUZv
ckNvbW1pdCgpCiAKIGJvb2wgSGlzdG9yeUNvbnRyb2xsZXI6OmlzUmVwbGFjZUxvYWRUeXBlV2l0
aFByb3Zpc2lvbmFsSXRlbShGcmFtZUxvYWRUeXBlIHR5cGUpCiB7Ci0gICAgLy8gR29pbmcgYmFj
ayB0byBhbiBlcnJvciBwYWdlIGluIGEgc3ViZnJhbWUgY2FuIHRyaWdnZXIgYSBGcmFtZUxvYWRU
eXBlUmVwbGFjZQorICAgIC8vIEdvaW5nIGJhY2sgdG8gYW4gZXJyb3IgcGFnZSBpbiBhIHN1YmZy
YW1lIGNhbiB0cmlnZ2VyIGEgRnJhbWVMb2FkVHlwZTo6UmVwbGFjZQogICAgIC8vIHdoaWxlIG1f
cHJvdmlzaW9uYWxJdGVtIGlzIHNldCwgc28gd2UgbmVlZCB0byBjb21taXQgaXQuCi0gICAgcmV0
dXJuIHR5cGUgPT0gRnJhbWVMb2FkVHlwZVJlcGxhY2UgJiYgbV9wcm92aXNpb25hbEl0ZW07Cisg
ICAgcmV0dXJuIHR5cGUgPT0gRnJhbWVMb2FkVHlwZTo6UmVwbGFjZSAmJiBtX3Byb3Zpc2lvbmFs
SXRlbTsKIH0KIAogYm9vbCBIaXN0b3J5Q29udHJvbGxlcjo6aXNSZWxvYWRUeXBlV2l0aFByb3Zp
c2lvbmFsSXRlbShGcmFtZUxvYWRUeXBlIHR5cGUpCiB7Ci0gICAgcmV0dXJuICh0eXBlID09IEZy
YW1lTG9hZFR5cGVSZWxvYWQgfHwgdHlwZSA9PSBGcmFtZUxvYWRUeXBlUmVsb2FkRnJvbU9yaWdp
bikgJiYgbV9wcm92aXNpb25hbEl0ZW07CisgICAgcmV0dXJuICh0eXBlID09IEZyYW1lTG9hZFR5
cGU6OlJlbG9hZCB8fCB0eXBlID09IEZyYW1lTG9hZFR5cGU6OlJlbG9hZEZyb21PcmlnaW4pICYm
IG1fcHJvdmlzaW9uYWxJdGVtOwogfQogCiB2b2lkIEhpc3RvcnlDb250cm9sbGVyOjpyZWN1cnNp
dmVVcGRhdGVGb3JDb21taXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05h
dmlnYXRpb25BY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25BY3Rp
b24uY3BwCmluZGV4IGVhY2MwMjU4MjZhN2NjMDEzOTQ1NDIzMzBkN2I0YzNmZDUxZGNiNGYuLjkw
ZmU0Yjk5NDA3MTM0YjJkZDcyNmJhNTIxYTRkMTE3ZGM3ZmNkZWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uQWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvTmF2aWdhdGlvbkFjdGlvbi5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgc3RhdGljIE5h
dmlnYXRpb25UeXBlIG5hdmlnYXRpb25UeXBlKEZyYW1lTG9hZFR5cGUgZnJhbWVMb2FkVHlwZSwg
Ym9vbCBpc0Zvcm1TdWIKICAgICAgICAgcmV0dXJuIE5hdmlnYXRpb25UeXBlRm9ybVN1Ym1pdHRl
ZDsKICAgICBpZiAoaGF2ZUV2ZW50KQogICAgICAgICByZXR1cm4gTmF2aWdhdGlvblR5cGVMaW5r
Q2xpY2tlZDsKLSAgICBpZiAoZnJhbWVMb2FkVHlwZSA9PSBGcmFtZUxvYWRUeXBlUmVsb2FkIHx8
IGZyYW1lTG9hZFR5cGUgPT0gRnJhbWVMb2FkVHlwZVJlbG9hZEZyb21PcmlnaW4pCisgICAgaWYg
KGZyYW1lTG9hZFR5cGUgPT0gRnJhbWVMb2FkVHlwZTo6UmVsb2FkIHx8IGZyYW1lTG9hZFR5cGUg
PT0gRnJhbWVMb2FkVHlwZTo6UmVsb2FkRnJvbU9yaWdpbikKICAgICAgICAgcmV0dXJuIE5hdmln
YXRpb25UeXBlUmVsb2FkOwogICAgIGlmIChpc0JhY2tGb3J3YXJkTG9hZFR5cGUoZnJhbWVMb2Fk
VHlwZSkpCiAgICAgICAgIHJldHVybiBOYXZpZ2F0aW9uVHlwZUJhY2tGb3J3YXJkOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwCmluZGV4IDNmOGUwMGUzYWMzN2QyZTc3ZmI4
ZjM3NWY5ODI4YzZhMmM4YzkzZTQuLjM0N2VmNjFjOGNlZDMwY2VlZjYzMjQ3MDZkNWI1ODY5ZTAx
NDEwYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAKQEAgLTU2LDcg
KzU2LDcgQEAgUG9saWN5Q2hlY2tlcjo6UG9saWN5Q2hlY2tlcihGcmFtZSYgZnJhbWUpCiAgICAg
OiBtX2ZyYW1lKGZyYW1lKQogICAgICwgbV9kZWxlZ2F0ZUlzRGVjaWRpbmdOYXZpZ2F0aW9uUG9s
aWN5KGZhbHNlKQogICAgICwgbV9kZWxlZ2F0ZUlzSGFuZGxpbmdVbmltcGxlbWVudGFibGVQb2xp
Y3koZmFsc2UpCi0gICAgLCBtX2xvYWRUeXBlKEZyYW1lTG9hZFR5cGVTdGFuZGFyZCkKKyAgICAs
IG1fbG9hZFR5cGUoRnJhbWVMb2FkVHlwZTo6U3RhbmRhcmQpCiB7CiB9CiAKQEAgLTg1LDcgKzg1
LDcgQEAgdm9pZCBQb2xpY3lDaGVja2VyOjpjaGVja05hdmlnYXRpb25Qb2xpY3koY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBEb2N1bWUKICAgICAvLyB0cmVhdCBpdCBsaWtlIGEgcmVs
b2FkIHNvIGl0IG1haW50YWlucyB0aGUgcmlnaHQgc3RhdGUgZm9yIGIvZiBsaXN0LgogICAgIGlm
IChsb2FkZXItPnN1YnN0aXR1dGVEYXRhKCkuaXNWYWxpZCgpICYmICFsb2FkZXItPnN1YnN0aXR1
dGVEYXRhKCkuZmFpbGluZ1VSTCgpLmlzRW1wdHkoKSkgewogICAgICAgICBpZiAoaXNCYWNrRm9y
d2FyZExvYWRUeXBlKG1fbG9hZFR5cGUpKQotICAgICAgICAgICAgbV9sb2FkVHlwZSA9IEZyYW1l
TG9hZFR5cGVSZWxvYWQ7CisgICAgICAgICAgICBtX2xvYWRUeXBlID0gRnJhbWVMb2FkVHlwZTo6
UmVsb2FkOwogICAgICAgICBmdW5jdGlvbihyZXF1ZXN0LCAwLCB0cnVlKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDlmZGU5MmUxNzM5NjhmZmE5ZTQ5ZTBiZjE0ZjE2NGY1
ZGRhZTRiNmYuLjk3ZDQyOGMyMDE1NDFlM2VjNzU0YTdhYTI3MjMxYjZlZWEzY2M2OWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVy
LmNwcApAQCAtNzE4LDcgKzcxOCw3IEBAIENhY2hlUG9saWN5IENhY2hlZFJlc291cmNlTG9hZGVy
OjpjYWNoZVBvbGljeShDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlKSBjb25zdAogICAgIGlmICh0
eXBlICE9IENhY2hlZFJlc291cmNlOjpNYWluUmVzb3VyY2UpCiAgICAgICAgIHJldHVybiBmcmFt
ZSgpLT5sb2FkZXIoKS5zdWJyZXNvdXJjZUNhY2hlUG9saWN5KCk7CiAgICAgCi0gICAgaWYgKGZy
YW1lKCktPmxvYWRlcigpLmxvYWRUeXBlKCkgPT0gRnJhbWVMb2FkVHlwZVJlbG9hZEZyb21Pcmln
aW4gfHwgZnJhbWUoKS0+bG9hZGVyKCkubG9hZFR5cGUoKSA9PSBGcmFtZUxvYWRUeXBlUmVsb2Fk
KQorICAgIGlmIChmcmFtZSgpLT5sb2FkZXIoKS5sb2FkVHlwZSgpID09IEZyYW1lTG9hZFR5cGU6
OlJlbG9hZEZyb21PcmlnaW4gfHwgZnJhbWUoKS0+bG9hZGVyKCkubG9hZFR5cGUoKSA9PSBGcmFt
ZUxvYWRUeXBlOjpSZWxvYWQpCiAgICAgICAgIHJldHVybiBDYWNoZVBvbGljeVJlbG9hZDsKICAg
ICByZXR1cm4gQ2FjaGVQb2xpY3lWZXJpZnk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvaWNvbi9JY29uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
aWNvbi9JY29uQ29udHJvbGxlci5jcHAKaW5kZXggZTRhZGVhZTYzZDllNzUzY2E4OTBkMWMzNzA3
ZGU5YjZjODU5M2FkZC4uNTE1MTJiNDM2MWQ5MzFmNTRkZDBkZmM4MzhmNDIzY2M1ZjA4NDRmNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkNvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Db250cm9sbGVyLmNwcApAQCAt
MTU0LDcgKzE1NCw3IEBAIHZvaWQgSWNvbkNvbnRyb2xsZXI6OnN0YXJ0TG9hZGVyKCkKIAogICAg
IC8vIElmIHdlJ3JlIHJlbG9hZGluZyB0aGUgcGFnZSwgYWx3YXlzIHN0YXJ0IHRoZSBpY29uIGxv
YWQgbm93LgogICAgIC8vIEZJWE1FOiBIb3cgY2FuIHRoaXMgY29uZGl0aW9uIGV2ZXIgYmUgdHJ1
ZT8KLSAgICBpZiAobV9mcmFtZS5sb2FkZXIoKS5sb2FkVHlwZSgpID09IEZyYW1lTG9hZFR5cGVS
ZWxvYWQgJiYgbV9mcmFtZS5sb2FkZXIoKS5sb2FkVHlwZSgpID09IEZyYW1lTG9hZFR5cGVSZWxv
YWRGcm9tT3JpZ2luKSB7CisgICAgaWYgKG1fZnJhbWUubG9hZGVyKCkubG9hZFR5cGUoKSA9PSBG
cmFtZUxvYWRUeXBlOjpSZWxvYWQgJiYgbV9mcmFtZS5sb2FkZXIoKS5sb2FkVHlwZSgpID09IEZy
YW1lTG9hZFR5cGU6OlJlbG9hZEZyb21PcmlnaW4pIHsKICAgICAgICAgY29udGludWVMb2FkV2l0
aERlY2lzaW9uKEljb25Mb2FkWWVzKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4IDU4YmZiOThlMTI3MTZlYmQxM2Q4MDcyNWVl
NGQzYjkzYWJhNzgyMDcuLmRlN2ZlZDZiYTE4NjgxZmJkYTM2YTgwZTg5Y2I4YzU0OTM2ZGIzOTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQpAQCAtMTA2MCw5ICsxMDYwLDMz
IEBAIHN0YXRpYyBpbmxpbmUgV2ViRGF0YVNvdXJjZSAqZGF0YVNvdXJjZShEb2N1bWVudExvYWRl
ciogbG9hZGVyKQogICAgIHJldHVybiBOTzsKIH0KIAorc3RhdGljIFdlYkZyYW1lTG9hZFR5cGUg
dG9XZWJGcmFtZUxvYWRUeXBlKEZyYW1lTG9hZFR5cGUgZnJhbWVMb2FkVHlwZSkKK3sKKyAgICBz
d2l0Y2ggKGZyYW1lTG9hZFR5cGUpIHsKKyAgICBjYXNlIEZyYW1lTG9hZFR5cGU6OlN0YW5kYXJk
OgorICAgICAgICByZXR1cm4gV2ViRnJhbWVMb2FkVHlwZVN0YW5kYXJkOworICAgIGNhc2UgRnJh
bWVMb2FkVHlwZTo6QmFjazoKKyAgICAgICAgcmV0dXJuIFdlYkZyYW1lTG9hZFR5cGVCYWNrOwor
ICAgIGNhc2UgRnJhbWVMb2FkVHlwZTo6Rm9yd2FyZDoKKyAgICAgICAgcmV0dXJuIFdlYkZyYW1l
TG9hZFR5cGVGb3J3YXJkOworICAgIGNhc2UgRnJhbWVMb2FkVHlwZTo6SW5kZXhlZEJhY2tGb3J3
YXJkOgorICAgICAgICByZXR1cm4gV2ViRnJhbWVMb2FkVHlwZUluZGV4ZWRCYWNrRm9yd2FyZDsK
KyAgICBjYXNlIEZyYW1lTG9hZFR5cGU6OlJlbG9hZDoKKyAgICAgICAgcmV0dXJuIFdlYkZyYW1l
TG9hZFR5cGVSZWxvYWQ7CisgICAgY2FzZSBGcmFtZUxvYWRUeXBlOjpTYW1lOgorICAgICAgICBy
ZXR1cm4gV2ViRnJhbWVMb2FkVHlwZVNhbWU7CisgICAgY2FzZSBGcmFtZUxvYWRUeXBlOjpSZWRp
cmVjdFdpdGhMb2NrZWRCYWNrRm9yd2FyZExpc3Q6CisgICAgICAgIHJldHVybiBXZWJGcmFtZUxv
YWRUeXBlSW50ZXJuYWw7CisgICAgY2FzZSBGcmFtZUxvYWRUeXBlOjpSZXBsYWNlOgorICAgICAg
ICByZXR1cm4gV2ViRnJhbWVMb2FkVHlwZVJlcGxhY2U7CisgICAgY2FzZSBGcmFtZUxvYWRUeXBl
OjpSZWxvYWRGcm9tT3JpZ2luOgorICAgICAgICByZXR1cm4gV2ViRnJhbWVMb2FkVHlwZVJlbG9h
ZEZyb21PcmlnaW47CisgICAgfQorfQorCiAtIChXZWJGcmFtZUxvYWRUeXBlKV9sb2FkVHlwZQog
ewotICAgIHJldHVybiAoV2ViRnJhbWVMb2FkVHlwZSlfcHJpdmF0ZS0+Y29yZUZyYW1lLT5sb2Fk
ZXIoKS5sb2FkVHlwZSgpOworICAgIHJldHVybiB0b1dlYkZyYW1lTG9hZFR5cGUoX3ByaXZhdGUt
PmNvcmVGcmFtZS0+bG9hZGVyKCkubG9hZFR5cGUoKSk7CiB9CiAKICNpZiBQTEFURk9STShJT1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggY2E5NmNiODA3MjM1MDAxZGNh
MGJiN2Q1N2QxYjk4NGE5YzI2ZWIwYy4uYTk4NDEwNGE2OWM5MjY3YTgxM2IwMGVkYmQzMGVmNGEx
NzZiYTllMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMjAwMiw3ICsy
MDAyLDcgQEAgc3RhdGljIGJvb2wgZmFzdERvY3VtZW50VGVhcmRvd25FbmFibGVkKCkKICAgICB9
CiAgICAgCiAgICAgQVNTRVJUKG5ld0l0ZW1Ub0dvVG8pOwotICAgIF9wcml2YXRlLT5wYWdlLT5n
b1RvSXRlbShuZXdJdGVtVG9Hb1RvLCBGcmFtZUxvYWRUeXBlSW5kZXhlZEJhY2tGb3J3YXJkKTsK
KyAgICBfcHJpdmF0ZS0+cGFnZS0+Z29Ub0l0ZW0obmV3SXRlbVRvR29UbywgRnJhbWVMb2FkVHlw
ZTo6SW5kZXhlZEJhY2tGb3J3YXJkKTsKIH0KIAogLSAodm9pZClfc2V0Rm9ybURlbGVnYXRlOiAo
aWQ8V2ViRm9ybURlbGVnYXRlPilkZWxlZ2F0ZQpAQCAtNTYwOSw3ICs1NjA5LDcgQEAgc3RhdGlj
IE5TU3RyaW5nICogY29uc3QgYmFja2luZ1Byb3BlcnR5T2xkU2NhbGVGYWN0b3JLZXkgPSBAIk5T
QmFja2luZ1Byb3BlcnR5T2wKICAgICBpZiAoIV9wcml2YXRlLT5wYWdlKQogICAgICAgICByZXR1
cm4gTk87CiAKLSAgICBfcHJpdmF0ZS0+cGFnZS0+Z29Ub0l0ZW0oY29yZShpdGVtKSwgRnJhbWVM
b2FkVHlwZUluZGV4ZWRCYWNrRm9yd2FyZCk7CisgICAgX3ByaXZhdGUtPnBhZ2UtPmdvVG9JdGVt
KGNvcmUoaXRlbSksIEZyYW1lTG9hZFR5cGU6OkluZGV4ZWRCYWNrRm9yd2FyZCk7CiAgICAgcmV0
dXJuIFlFUzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAppbmRleCAyZmIzM2Y5MjlmZjEzMjgwMzY5
NTY3YTgwMDBmMzA5ZDJkMWRiZGNhLi40YTI2ZGRmMTIzNmZjMGVhM2YzOTAxNTg4MzI3N2Q3OWU2
YTg0ODM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcApAQCAtMzEwOSw3ICszMTA5LDcgQEAgSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3Ojpnb1RvQmFja0ZvcndhcmRJdGVtKAogICAgIGlm
IChGQUlMRUQoaHIpKQogICAgICAgICByZXR1cm4gaHI7CiAKLSAgICBtX3BhZ2UtPmdvVG9JdGVt
KHdlYkhpc3RvcnlJdGVtLT5oaXN0b3J5SXRlbSgpLCBGcmFtZUxvYWRUeXBlSW5kZXhlZEJhY2tG
b3J3YXJkKTsKKyAgICBtX3BhZ2UtPmdvVG9JdGVtKHdlYkhpc3RvcnlJdGVtLT5oaXN0b3J5SXRl
bSgpLCBGcmFtZUxvYWRUeXBlOjpJbmRleGVkQmFja0ZvcndhcmQpOwogICAgICpzdWNjZWVkZWQg
PSBUUlVFOwogCiAgICAgcmV0dXJuIFNfT0s7CkBAIC01NDI4LDcgKzU0MjgsNyBAQCBIUkVTVUxU
IFNURE1FVEhPRENBTExUWVBFIFdlYlZpZXc6OmxvYWRCYWNrRm9yd2FyZExpc3RGcm9tT3RoZXJW
aWV3KAogICAgIH0KICAgICAKICAgICBBU1NFUlQobmV3SXRlbVRvR29Ubyk7Ci0gICAgbV9wYWdl
LT5nb1RvSXRlbShuZXdJdGVtVG9Hb1RvLCBGcmFtZUxvYWRUeXBlSW5kZXhlZEJhY2tGb3J3YXJk
KTsKKyAgICBtX3BhZ2UtPmdvVG9JdGVtKG5ld0l0ZW1Ub0dvVG8sIEZyYW1lTG9hZFR5cGU6Oklu
ZGV4ZWRCYWNrRm9yd2FyZCk7CiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNjEyNWUwMzM5ZDJlZDJkODg3MDA4MTk3
NmRlMTllN2I4OGY0MDQyMy4uNmMwZjg4ODEzZmRiNDFhOTMzNGVmMTQ3OTIyNDg5N2M5N2FlODM0
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTI1NTQs
NyArMjU1NCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDb21taXRMb2FkRm9yRnJhbWUodWlu
dDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbmF2aWdhdGlvbklECiAgICAgLy8gV2ViUGFnZVByb3h5
J3MgY2FjaGUgb2YgdGhlIHZhbHVlIGNhbiBnZXQgb3V0IG9mIHN5bmMgKGUuZy4gaW4gdGhlIGNh
c2Ugd2hlcmUgYQogICAgIC8vIHBsdWdpbiBpcyBoYW5kbGluZyBwYWdlIHNjYWxpbmcgaXRzZWxm
KSBzbyB3ZSBzaG91bGQgcmVzZXQgaXQgdG8gdGhlIGRlZmF1bHQKICAgICAvLyBmb3Igc3RhbmRh
cmQgbWFpbiBmcmFtZSBsb2Fkcy4KLSAgICBpZiAoZnJhbWUtPmlzTWFpbkZyYW1lKCkgJiYgc3Rh
dGljX2Nhc3Q8RnJhbWVMb2FkVHlwZT4ob3BhcXVlRnJhbWVMb2FkVHlwZSkgPT0gRnJhbWVMb2Fk
VHlwZVN0YW5kYXJkKQorICAgIGlmIChmcmFtZS0+aXNNYWluRnJhbWUoKSAmJiBzdGF0aWNfY2Fz
dDxGcmFtZUxvYWRUeXBlPihvcGFxdWVGcmFtZUxvYWRUeXBlKSA9PSBGcmFtZUxvYWRUeXBlOjpT
dGFuZGFyZCkKICAgICAgICAgbV9wYWdlU2NhbGVGYWN0b3IgPSAxOwogCiAgICAgbV9wYWdlTG9h
ZFN0YXRlLmNvbW1pdENoYW5nZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAK
aW5kZXggN2ZlNDlkYzQ0OTg3MGVkYWViOTc4Mjc2OTQ4MDdiOGQyNGE0NWU0OC4uMDAwZDE3M2Zh
YTg3MDJhZDMxOTgxNGRkYzk1N2MyOWM3MmRlMmM5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHAKQEAgLTQ0Nyw3ICs0NDcsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaERpZENvbW1pdExvYWQoKQogCiAgICAgLy8gTm90aWZ5IHRoZSBVSVByb2Nlc3Mu
CiAKLSAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENvbW1pdExv
YWRGb3JGcmFtZShtX2ZyYW1lLT5mcmFtZUlEKCksIGRvY3VtZW50TG9hZGVyLm5hdmlnYXRpb25J
RCgpLCBkb2N1bWVudExvYWRlci5yZXNwb25zZSgpLm1pbWVUeXBlKCksIG1fZnJhbWVIYXNDdXN0
b21Db250ZW50UHJvdmlkZXIsIG1fZnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5sb2FkVHlw
ZSgpLCBDZXJ0aWZpY2F0ZUluZm8oZG9jdW1lbnRMb2FkZXIucmVzcG9uc2UoKSksIEluamVjdGVk
QnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyKHVzZXJEYXRhLmdldCgpKSkpOworICAgIHdlYlBhZ2Ut
PnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkQ29tbWl0TG9hZEZvckZyYW1lKG1fZnJh
bWUtPmZyYW1lSUQoKSwgZG9jdW1lbnRMb2FkZXIubmF2aWdhdGlvbklEKCksIGRvY3VtZW50TG9h
ZGVyLnJlc3BvbnNlKCkubWltZVR5cGUoKSwgbV9mcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRl
ciwgc3RhdGljX2Nhc3Q8dWludDMyX3Q+KG1fZnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5s
b2FkVHlwZSgpKSwgQ2VydGlmaWNhdGVJbmZvKGRvY3VtZW50TG9hZGVyLnJlc3BvbnNlKCkpLCBJ
bmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2Rlcih1c2VyRGF0YS5nZXQoKSkpKTsKICAgICB3
ZWJQYWdlLT5kaWRDb21taXRMb2FkKG1fZnJhbWUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMmFlNmM2OGJkYjZlMzBhYjBlMWQ5
MWI3YWU5ZjgyMTFiZDBjNTIyNC4uYmM4OGI4ZmZmMzBhZDQ5ZGEwNzYxNWY2NjkwNmU2MjE3NmRh
OTUyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cApAQCAtMTA5OCw3ICsxMDk4LDcgQEAgdm9pZCBXZWJQYWdlOjpnb0ZvcndhcmQodWludDY0X3Qg
bmF2aWdhdGlvbklELCB1aW50NjRfdCBiYWNrRm9yd2FyZEl0ZW1JRCkKICAgICBpZiAoIWl0ZW0t
PmlzSW5QYWdlQ2FjaGUoKSkKICAgICAgICAgbV9wZW5kaW5nTmF2aWdhdGlvbklEID0gbmF2aWdh
dGlvbklEOwogCi0gICAgbV9wYWdlLT5nb1RvSXRlbShpdGVtLCBGcmFtZUxvYWRUeXBlRm9yd2Fy
ZCk7CisgICAgbV9wYWdlLT5nb1RvSXRlbShpdGVtLCBGcmFtZUxvYWRUeXBlOjpGb3J3YXJkKTsK
IH0KIAogdm9pZCBXZWJQYWdlOjpnb0JhY2sodWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50NjRf
dCBiYWNrRm9yd2FyZEl0ZW1JRCkKQEAgLTExMTQsNyArMTExNCw3IEBAIHZvaWQgV2ViUGFnZTo6
Z29CYWNrKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDY0X3QgYmFja0ZvcndhcmRJdGVtSUQp
CiAgICAgaWYgKCFpdGVtLT5pc0luUGFnZUNhY2hlKCkpCiAgICAgICAgIG1fcGVuZGluZ05hdmln
YXRpb25JRCA9IG5hdmlnYXRpb25JRDsKIAotICAgIG1fcGFnZS0+Z29Ub0l0ZW0oaXRlbSwgRnJh
bWVMb2FkVHlwZUJhY2spOworICAgIG1fcGFnZS0+Z29Ub0l0ZW0oaXRlbSwgRnJhbWVMb2FkVHlw
ZTo6QmFjayk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6Z29Ub0JhY2tGb3J3YXJkSXRlbSh1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIHVpbnQ2NF90IGJhY2tGb3J3YXJkSXRlbUlEKQpAQCAtMTEzMCw3ICsx
MTMwLDcgQEAgdm9pZCBXZWJQYWdlOjpnb1RvQmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgdWludDY0X3QgYmFja0ZvcndhcmRJdGUKICAgICBpZiAoIWl0ZW0tPmlzSW5QYWdl
Q2FjaGUoKSkKICAgICAgICAgbV9wZW5kaW5nTmF2aWdhdGlvbklEID0gbmF2aWdhdGlvbklEOwog
Ci0gICAgbV9wYWdlLT5nb1RvSXRlbShpdGVtLCBGcmFtZUxvYWRUeXBlSW5kZXhlZEJhY2tGb3J3
YXJkKTsKKyAgICBtX3BhZ2UtPmdvVG9JdGVtKGl0ZW0sIEZyYW1lTG9hZFR5cGU6OkluZGV4ZWRC
YWNrRm9yd2FyZCk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6dHJ5UmVzdG9yZVNjcm9sbFBvc2l0aW9u
KCkKQEAgLTM0ODksNyArMzQ4OSw3IEBAIHN0YXRpYyBib29sIHNob3VsZFJldXNlQ29tbWl0dGVk
U2FuZGJveEV4dGVuc2lvbihXZWJGcmFtZSogZnJhbWUpCiAgICAgRnJhbWVMb2FkVHlwZSBmcmFt
ZUxvYWRUeXBlID0gZnJhbWVMb2FkZXIubG9hZFR5cGUoKTsKIAogICAgIC8vIElmIHRoZSBwYWdl
IGlzIGJlaW5nIHJlbG9hZGVkLCBpdCBzaG91bGQgcmV1c2Ugd2hhdGV2ZXIgZXh0ZW5zaW9uIGlz
IGNvbW1pdHRlZC4KLSAgICBpZiAoZnJhbWVMb2FkVHlwZSA9PSBGcmFtZUxvYWRUeXBlUmVsb2Fk
IHx8IGZyYW1lTG9hZFR5cGUgPT0gRnJhbWVMb2FkVHlwZVJlbG9hZEZyb21PcmlnaW4pCisgICAg
aWYgKGZyYW1lTG9hZFR5cGUgPT0gRnJhbWVMb2FkVHlwZTo6UmVsb2FkIHx8IGZyYW1lTG9hZFR5
cGUgPT0gRnJhbWVMb2FkVHlwZTo6UmVsb2FkRnJvbU9yaWdpbikKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAKICAgICBEb2N1bWVudExvYWRlciogZG9jdW1lbnRMb2FkZXIgPSBmcmFtZUxvYWRlci5k
b2N1bWVudExvYWRlcigpOwpAQCAtNDM0Miw3ICs0MzQyLDcgQEAgdm9pZCBXZWJQYWdlOjpkaWRD
b21taXRMb2FkKFdlYkZyYW1lKiBmcmFtZSkKICAgICAgICAgcmVwb3J0VXNlZEZlYXR1cmVzKCk7
CiAKICAgICAvLyBPbmx5IHJlc3RvcmUgdGhlIHNjYWxlIGZhY3RvciBmb3Igc3RhbmRhcmQgZnJh
bWUgbG9hZHMgKG9mIHRoZSBtYWluIGZyYW1lKS4KLSAgICBpZiAoZnJhbWUtPmNvcmVGcmFtZSgp
LT5sb2FkZXIoKS5sb2FkVHlwZSgpID09IEZyYW1lTG9hZFR5cGVTdGFuZGFyZCkgeworICAgIGlm
IChmcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLmxvYWRUeXBlKCkgPT0gRnJhbWVMb2FkVHlw
ZTo6U3RhbmRhcmQpIHsKICAgICAgICAgUGFnZSogcGFnZSA9IGZyYW1lLT5jb3JlRnJhbWUoKS0+
cGFnZSgpOwogCiAgICAgICAgIGlmIChwYWdlKSB7Cg==
</data>
<flag name="review"
          id="257836"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>