<?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>171995</bug_id>
          
          <creation_ts>2017-05-11 15:23:11 -0700</creation_ts>
          <short_desc>Callers of JSString::unsafeView() should check exceptions</short_desc>
          <delta_ts>2017-05-11 16:05:17 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>ggaren</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1307503</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-05-11 15:23:11 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307505</commentid>
    <comment_count>1</comment_count>
      <attachid>309795</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-05-11 15:24:41 -0700</bug_when>
    <thetext>Created attachment 309795
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307510</commentid>
    <comment_count>2</comment_count>
      <attachid>309795</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-05-11 15:30:31 -0700</bug_when>
    <thetext>Comment on attachment 309795
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307540</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-05-11 16:05:17 -0700</bug_when>
    <thetext>Landed in https://trac.webkit.org/changeset/216699/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309795</attachid>
            <date>2017-05-11 15:24:41 -0700</date>
            <delta_ts>2017-05-11 15:30:31 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>20857</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjE2Njk2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUzIEBA
CisyMDE3LTA1LTExICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
Q2FsbGVycyBvZiBKU1N0cmluZzo6dW5zYWZlVmlldygpIHNob3VsZCBjaGVjayBleGNlcHRpb25z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzE5OTUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAg
IHVuc2FmZVZpZXcoKSBjYW4gdGhyb3cgT09NRS4gU28sIGNhbGxlcnMgb2YgdW5zYWZlVmlldygp
IHNob3VsZCBjaGVjayBmb3IgZXhjZXB0aW9ucyBiZWZvcmUgdHJ5aW5nCisgICAgICAgIHRvIGFj
Y2VzcyB0aGUgdmlldy4KKworICAgICAgICBBbHNvLCBJIG1hZGUgdGhlIGZ1bmN0aW9ucyBzdXJy
b3VuZGluZyB1bnNhZmVWaWV3KCkgdGFrZSBFeGVjU3RhdGUqIG5vdCBFeGVjU3RhdGUmLCB0byBj
b21wbHkgd2l0aAorICAgICAgICB0aGUgcmVzdCBvZiBKU0MuCisKKyAgICAgICAgKiBkZmcvREZH
T3BlcmF0aW9ucy5jcHA6CisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKHByaW50SW50ZXJu
YWwpOgorICAgICAgICAoZnVuY3Rpb25EZWJ1Zyk6CisgICAgICAgICogcnVudGltZS9BcnJheVBy
b3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OmFycmF5UHJvdG9GdW5jSm9pbik6CisgICAgICAg
ICogcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Y29uc3Ry
dWN0RnVuY3Rpb25Ta2lwcGluZ0V2YWxFbmFibGVkQ2hlY2spOgorICAgICAgICAqIHJ1bnRpbWUv
SW50bENvbGxhdG9yUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6SW50bENvbGxhdG9yRnVu
Y0NvbXBhcmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdQcm90
b3R5cGVGdW5jdGlvbnMuaDoKKyAgICAgICAgKEpTQzo6Z2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJv
dG9GdW5jSm9pbik6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5j
cHA6CisgICAgICAgIChKU0M6Omdsb2JhbEZ1bmNQYXJzZUZsb2F0KToKKyAgICAgICAgKiBydW50
aW1lL0pTT05PYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU09OUHJvdG9GdW5jUGFyc2UpOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNTdHJpbmcuY3BwOgorICAgICAgICAoSlNDOjpKU1N0cmluZzo6
Z2V0UHJpbWl0aXZlTnVtYmVyKToKKyAgICAgICAgKEpTQzo6SlNTdHJpbmc6OnRvTnVtYmVyKToK
KyAgICAgICAgKiBydW50aW1lL0pTU3RyaW5nLmg6CisgICAgICAgIChKU0M6OkpTU3RyaW5nOjpn
ZXRJbmRleCk6CisgICAgICAgIChKU0M6OkpTUm9wZVN0cmluZzo6dW5zYWZlVmlldyk6CisgICAg
ICAgIChKU0M6OkpTUm9wZVN0cmluZzo6dmlld1dpdGhVbmRlcmx5aW5nU3RyaW5nKToKKyAgICAg
ICAgKEpTQzo6SlNTdHJpbmc6OnVuc2FmZVZpZXcpOgorICAgICAgICAoSlNDOjpKU1N0cmluZzo6
dmlld1dpdGhVbmRlcmx5aW5nU3RyaW5nKToKKyAgICAgICAgKiBydW50aW1lL0pTU3RyaW5nSm9p
bmVyLmg6CisgICAgICAgIChKU0M6OkpTU3RyaW5nSm9pbmVyOjphcHBlbmRXaXRob3V0U2lkZUVm
ZmVjdHMpOgorICAgICAgICAoSlNDOjpKU1N0cmluZ0pvaW5lcjo6YXBwZW5kKToKKyAgICAgICAg
KiBydW50aW1lL1BhcnNlSW50Lmg6CisgICAgICAgIChKU0M6OnRvU3RyaW5nVmlldyk6CisgICAg
ICAgICogcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpzdHJpbmdQ
cm90b0Z1bmNSZXBlYXRDaGFyYWN0ZXIpOgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1bmND
aGFyQXQpOgorICAgICAgICAoSlNDOjpzdHJpbmdQcm90b0Z1bmNDaGFyQ29kZUF0KToKKyAgICAg
ICAgKEpTQzo6c3RyaW5nUHJvdG9GdW5jSW5kZXhPZik6CisgICAgICAgIChKU0M6OnN0cmluZ1By
b3RvRnVuY05vcm1hbGl6ZSk6CisKIDIwMTctMDUtMTEgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFw
cGxlLmNvbT4KIAogICAgICAgICBPZmZlciBTUEkgdG8gbm90aWZ5IGNsaWVudHMgdGhhdCBHQyBo
YXMgaGFwcGVuZWQKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCShyZXZpc2lvbiAyMTY2ODkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc1OCw3
ICsxNzU4LDcgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHByaW50SW50ZXJuYWwoRXhlYwogICAg
ICAgICAgICAgaWYgKEVPRiA9PSBmcHV0YygnICcsIG91dCkpCiAgICAgICAgICAgICAgICAgZ290
byBmYWlsOwogCi0gICAgICAgIGF1dG8gdmlld1dpdGhTdHJpbmcgPSBleGVjLT51bmNoZWNrZWRB
cmd1bWVudChpKS50b1N0cmluZyhleGVjKS0+dmlld1dpdGhVbmRlcmx5aW5nU3RyaW5nKCpleGVj
KTsKKyAgICAgICAgYXV0byB2aWV3V2l0aFN0cmluZyA9IGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50
KGkpLnRvU3RyaW5nKGV4ZWMpLT52aWV3V2l0aFVuZGVybHlpbmdTdHJpbmcoZXhlYyk7CiAgICAg
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogICAgICAg
ICBpZiAoZnByaW50ZihvdXQsICIlcyIsIHZpZXdXaXRoU3RyaW5nLnZpZXcudXRmOCgpLmRhdGEo
KSkgPCAwKQogICAgICAgICAgICAgZ290byBmYWlsOwpAQCAtMTc4OCw3ICsxNzg4LDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbkRlYgogewogICAgIFZNJiB2bSA9IGV4
ZWMtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAg
IGF1dG8gdmlld1dpdGhTdHJpbmcgPSBleGVjLT5hcmd1bWVudCgwKS50b1N0cmluZyhleGVjKS0+
dmlld1dpdGhVbmRlcmx5aW5nU3RyaW5nKCpleGVjKTsKKyAgICBhdXRvIHZpZXdXaXRoU3RyaW5n
ID0gZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYyktPnZpZXdXaXRoVW5kZXJseWluZ1N0
cmluZyhleGVjKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1
ZSgpKTsKICAgICBmcHJpbnRmKHN0ZGVyciwgIi0tPiAlc1xuIiwgdmlld1dpdGhTdHJpbmcudmll
dy51dGY4KCkuZGF0YSgpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3Bw
CShyZXZpc2lvbiAyMTY2ODkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJh
dGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NDEsNyArODQxLDcgQEAgRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25QYQogICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0
cmFjZXIoJnZtLCBleGVjKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7CiAKLSAgICBhdXRvIHZpZXdXaXRoU3RyaW5nID0gc3RyaW5nLT52aWV3V2l0aFVuZGVybHlp
bmdTdHJpbmcoKmV4ZWMpOworICAgIGF1dG8gdmlld1dpdGhTdHJpbmcgPSBzdHJpbmctPnZpZXdX
aXRoVW5kZXJseWluZ1N0cmluZyhleGVjKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCB7IH0pOwogCiAgICAgLy8gVGhpcyB2ZXJzaW9uIGlzIGFzIGlmIHJhZGl4IHdhcyB1bmRlZmlu
ZWQuIEhlbmNlLCB1bmRlZmluZWQudG9OdW1iZXIoKSA9PT0gMC4KQEAgLTg1NCw3ICs4NTQsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblBhCiAgICAgTmF0aXZlQ2Fs
bEZyYW1lVHJhY2VyIHRyYWNlcigmdm0sIGV4ZWMpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIGF1dG8gdmlld1dpdGhTdHJpbmcgPSBzdHJpbmctPnZp
ZXdXaXRoVW5kZXJseWluZ1N0cmluZygqZXhlYyk7CisgICAgYXV0byB2aWV3V2l0aFN0cmluZyA9
IHN0cmluZy0+dmlld1dpdGhVbmRlcmx5aW5nU3RyaW5nKGV4ZWMpOwogICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIHsgfSk7CiAKICAgICByZXR1cm4gcGFyc2VJbnRSZXN1bHQocGFyc2VJ
bnQodmlld1dpdGhTdHJpbmcudmlldywgcmFkaXgpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9BcnJheVByb3RvdHlwZS5jcHAJKHJldmlzaW9uIDIxNjY4OSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5UHJvdG90eXBlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNzEzLDcgKzcxMyw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgYXJyYXlQcm90b0YKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShzbG93Sm9pbigq
ZXhlYywgdGhpc09iamVjdCwganNTZXBhcmF0b3IsIGxlbmd0aDY0KSk7CiAgICAgfQogCi0gICAg
YXV0byB2aWV3V2l0aFN0cmluZyA9IGpzU2VwYXJhdG9yLT52aWV3V2l0aFVuZGVybHlpbmdTdHJp
bmcoKmV4ZWMpOworICAgIGF1dG8gdmlld1dpdGhTdHJpbmcgPSBqc1NlcGFyYXRvci0+dmlld1dp
dGhVbmRlcmx5aW5nU3RyaW5nKGV4ZWMpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IGVuY29kZWRKU1ZhbHVlKCkpOwogCiAgICAgc2NvcGUucmVsZWFzZSgpOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5j
cHAJKHJldmlzaW9uIDIxNjY4OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1
bmN0aW9uQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoK
ICAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMSBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3Jn
KQotICogIENvcHlyaWdodCAoQykgMjAwMy0yMDA4LCAyMDEzLCAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDMtMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0xMjQsMTcgKzEy
NCwxNyBAQCBKU09iamVjdCogY29uc3RydWN0RnVuY3Rpb25Ta2lwcGluZ0V2YWxFCiAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kKHByZWZpeCk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGZ1bmN0aW9u
TmFtZS5zdHJpbmcoKSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCcoJyk7Ci0gICAgICAgIGF1
dG8gdmlld1dpdGhTdHJpbmcgPSBhcmdzLmF0KDApLnRvU3RyaW5nKGV4ZWMpLT52aWV3V2l0aFVu
ZGVybHlpbmdTdHJpbmcoKmV4ZWMpOworICAgICAgICBhdXRvIHZpZXdXaXRoU3RyaW5nID0gYXJn
cy5hdCgwKS50b1N0cmluZyhleGVjKS0+dmlld1dpdGhVbmRlcmx5aW5nU3RyaW5nKGV4ZWMpOwog
ICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKICAgICAgICAgYnVp
bGRlci5hcHBlbmQodmlld1dpdGhTdHJpbmcudmlldyk7CiAgICAgICAgIGZvciAoc2l6ZV90IGkg
PSAxOyBpIDwgYXJncy5zaXplKCkgLSAxOyBpKyspIHsKICAgICAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kTGl0ZXJhbCgiLCAiKTsKLSAgICAgICAgICAgIGF1dG8gdmlld1dpdGhTdHJpbmcgPSBhcmdz
LmF0KGkpLnRvU3RyaW5nKGV4ZWMpLT52aWV3V2l0aFVuZGVybHlpbmdTdHJpbmcoKmV4ZWMpOwor
ICAgICAgICAgICAgYXV0byB2aWV3V2l0aFN0cmluZyA9IGFyZ3MuYXQoaSkudG9TdHJpbmcoZXhl
YyktPnZpZXdXaXRoVW5kZXJseWluZ1N0cmluZyhleGVjKTsKICAgICAgICAgICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQo
dmlld1dpdGhTdHJpbmcudmlldyk7CiAgICAgICAgIH0KICAgICAgICAgYnVpbGRlci5hcHBlbmRM
aXRlcmFsKCIpIHtcbiIpOwotICAgICAgICB2aWV3V2l0aFN0cmluZyA9IGFyZ3MuYXQoYXJncy5z
aXplKCkgLSAxKS50b1N0cmluZyhleGVjKS0+dmlld1dpdGhVbmRlcmx5aW5nU3RyaW5nKCpleGVj
KTsKKyAgICAgICAgdmlld1dpdGhTdHJpbmcgPSBhcmdzLmF0KGFyZ3Muc2l6ZSgpIC0gMSkudG9T
dHJpbmcoZXhlYyktPnZpZXdXaXRoVW5kZXJseWluZ1N0cmluZyhleGVjKTsKICAgICAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KHZpZXdXaXRoU3RyaW5nLnZpZXcpOwogICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlxu
fX0iKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxDb2xsYXRvclBy
b3RvdHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SW50bENvbGxhdG9yUHJvdG90eXBlLmNwcAkocmV2aXNpb24gMjE2Njg5KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bENvbGxhdG9yUHJvdG90eXBlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQW5keSBWYW5X
YWdvbmVyICh0aGV0YWxlY3JhZnRlckBnbWFpbC5jb20pCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC05OCw5ICs5OCw5IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIEludGwKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1
ZSgpKTsKIAogICAgIC8vIDkuIFJldHVybiBDb21wYXJlU3RyaW5ncyhjb2xsYXRvciwgWCwgWSku
Ci0gICAgYXV0byB4Vmlld1dpdGhTdHJpbmcgPSB4LT52aWV3V2l0aFVuZGVybHlpbmdTdHJpbmco
KnN0YXRlKTsKKyAgICBhdXRvIHhWaWV3V2l0aFN0cmluZyA9IHgtPnZpZXdXaXRoVW5kZXJseWlu
Z1N0cmluZyhzdGF0ZSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpT
VmFsdWUoKSk7Ci0gICAgYXV0byB5Vmlld1dpdGhTdHJpbmcgPSB5LT52aWV3V2l0aFVuZGVybHlp
bmdTdHJpbmcoKnN0YXRlKTsKKyAgICBhdXRvIHlWaWV3V2l0aFN0cmluZyA9IHktPnZpZXdXaXRo
VW5kZXJseWluZ1N0cmluZyhzdGF0ZSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
ZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgc2NvcGUucmVsZWFzZSgpOwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoY29sbGF0b3ItPmNvbXBhcmVTdHJpbmdzKCpzdGF0ZSwgeFZpZXdXaXRoU3Ry
aW5nLnZpZXcsIHlWaWV3V2l0aFN0cmluZy52aWV3KSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5
cGVkQXJyYXlWaWV3UHJvdG90eXBlRnVuY3Rpb25zLmgJKHJldmlzaW9uIDIxNjY4OSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG90
eXBlRnVuY3Rpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5Niw3ICsyOTYsNyBAQCBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdlbmVyaWNUeXBlCiAKICAgICBpZiAodGhpc09iamVjdC0+
aXNOZXV0ZXJlZCgpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29w
ZSwgdHlwZWRBcnJheUJ1ZmZlckhhc0JlZW5EZXRhY2hlZEVycm9yTWVzc2FnZSk7Ci0gICAgYXV0
byB2aWV3V2l0aFN0cmluZyA9IHNlcGFyYXRvclN0cmluZy0+dmlld1dpdGhVbmRlcmx5aW5nU3Ry
aW5nKCpleGVjKTsKKyAgICBhdXRvIHZpZXdXaXRoU3RyaW5nID0gc2VwYXJhdG9yU3RyaW5nLT52
aWV3V2l0aFVuZGVybHlpbmdTdHJpbmcoZXhlYyk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgcmV0dXJuIGpvaW5XaXRoU2VwYXJhdG9yKHZp
ZXdXaXRoU3RyaW5nLnZpZXcpOwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcAkocmV2aXNpb24g
MjE2Njg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RG
dW5jdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MzMsNyArNTMzLDcgQEAgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jUAogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGdsb2JhbEZ1bmNQYXJzZUZsb2F0KEV4ZWNTdGF0ZSogZXhlYykKIHsKLSAgICBhdXRv
IHZpZXdXaXRoU3RyaW5nID0gZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYyktPnZpZXdX
aXRoVW5kZXJseWluZ1N0cmluZygqZXhlYyk7CisgICAgYXV0byB2aWV3V2l0aFN0cmluZyA9IGV4
ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpLT52aWV3V2l0aFVuZGVybHlpbmdTdHJpbmco
ZXhlYyk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcihwYXJzZUZsb2F0KHZp
ZXdXaXRoU3RyaW5nLnZpZXcpKSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTT05PYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCShyZXZpc2lvbiAyMTY2ODkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzg1
LDcgKzc4NSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNPTlByb3RvRnUKIAog
ICAgIGlmICghZXhlYy0+YXJndW1lbnRDb3VudCgpKQogICAgICAgICByZXR1cm4gdGhyb3dWTUVy
cm9yKGV4ZWMsIHNjb3BlLCBjcmVhdGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkpTT04ucGFy
c2UgcmVxdWlyZXMgYXQgbGVhc3Qgb25lIHBhcmFtZXRlciIpKSk7Ci0gICAgYXV0byB2aWV3V2l0
aFN0cmluZyA9IGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpLT52aWV3
V2l0aFVuZGVybHlpbmdTdHJpbmcoKmV4ZWMpOworICAgIGF1dG8gdmlld1dpdGhTdHJpbmcgPSBl
eGVjLT51bmNoZWNrZWRBcmd1bWVudCgwKS50b1N0cmluZyhleGVjKS0+dmlld1dpdGhVbmRlcmx5
aW5nU3RyaW5nKGV4ZWMpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAg
ICAgU3RyaW5nVmlldyB2aWV3ID0gdmlld1dpdGhTdHJpbmcudmlldzsKIApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmNwcAkocmV2aXNpb24gMjE2Njg5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMiBIYXJy
aSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQogICogIENvcHlyaWdodCAoQykgMjAwMSBQZXRlciBL
ZWxseSAocG1rQHBvc3QuY29tKQotICogIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNy0yMDA4LCAy
MDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAo
QykgMjAwNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCkBAIC0zOTUsMTQgKzM5NSwyMiBAQCBKU1ZhbHVlIEpTU3RyaW5nOjp0b1ByaW1p
dGl2ZShFeGVjU3RhdGUqCiAKIGJvb2wgSlNTdHJpbmc6OmdldFByaW1pdGl2ZU51bWJlcihFeGVj
U3RhdGUqIGV4ZWMsIGRvdWJsZSYgbnVtYmVyLCBKU1ZhbHVlJiByZXN1bHQpIGNvbnN0CiB7Cisg
ICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CisgICAgU3RyaW5nVmlldyB2aWV3ID0gdW5zYWZlVmlldyhleGVjKTsKKyAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxzZSk7CiAgICAgcmVzdWx0ID0gdGhpczsKLSAg
ICBudW1iZXIgPSBqc1RvTnVtYmVyKHVuc2FmZVZpZXcoKmV4ZWMpKTsKKyAgICBudW1iZXIgPSBq
c1RvTnVtYmVyKHZpZXcpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIAogZG91YmxlIEpTU3RyaW5n
Ojp0b051bWJlcihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGpzVG9OdW1i
ZXIodW5zYWZlVmlldygqZXhlYykpOworICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CisgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIFN0cmluZ1ZpZXcgdmlldyA9
IHVuc2FmZVZpZXcoZXhlYyk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgMCk7Cisg
ICAgcmV0dXJuIGpzVG9OdW1iZXIodmlldyk7CiB9CiAKIGlubGluZSBTdHJpbmdPYmplY3QqIFN0
cmluZ09iamVjdDo6Y3JlYXRlKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNTdHJpbmcqIHN0cmluZykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
U3RyaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNT
dHJpbmcuaAkocmV2aXNpb24gMjE2Njg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNTdHJpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUg
IlByb3BlcnR5RGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIlByb3BlcnR5U2xvdC5oIgogI2luY2x1
ZGUgIlN0cnVjdHVyZS5oIgorI2luY2x1ZGUgIlRocm93U2NvcGUuaCIKICNpbmNsdWRlIDxhcnJh
eT4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+CiAKQEAgLTE1Niw3ICsxNTcsNyBA
QCBwdWJsaWM6CiAgICAgQXRvbWljU3RyaW5nIHRvQXRvbWljU3RyaW5nKEV4ZWNTdGF0ZSopIGNv
bnN0OwogICAgIFJlZlB0cjxBdG9taWNTdHJpbmdJbXBsPiB0b0V4aXN0aW5nQXRvbWljU3RyaW5n
KEV4ZWNTdGF0ZSopIGNvbnN0OwogCi0gICAgU3RyaW5nVmlld1dpdGhVbmRlcmx5aW5nU3RyaW5n
IHZpZXdXaXRoVW5kZXJseWluZ1N0cmluZyhFeGVjU3RhdGUmKSBjb25zdDsKKyAgICBTdHJpbmdW
aWV3V2l0aFVuZGVybHlpbmdTdHJpbmcgdmlld1dpdGhVbmRlcmx5aW5nU3RyaW5nKEV4ZWNTdGF0
ZSopIGNvbnN0OwogCiAgICAgaW5saW5lIGJvb2wgZXF1YWwoRXhlY1N0YXRlKiwgSlNTdHJpbmcq
IG90aGVyKSBjb25zdDsKICAgICBjb25zdCBTdHJpbmcmIHZhbHVlKEV4ZWNTdGF0ZSopIGNvbnN0
OwpAQCAtMjM0LDcgKzIzNSw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIEpTVmFsdWUgdG9UaGlz
KEpTQ2VsbCosIEV4ZWNTdGF0ZSosIEVDTUFNb2RlKTsKIAogICAgIFN0cmluZyYgc3RyaW5nKCkg
eyBBU1NFUlQoIWlzUm9wZSgpKTsgcmV0dXJuIG1fdmFsdWU7IH0KLSAgICBTdHJpbmdWaWV3IHVu
c2FmZVZpZXcoRXhlY1N0YXRlJikgY29uc3Q7CisgICAgU3RyaW5nVmlldyB1bnNhZmVWaWV3KEV4
ZWNTdGF0ZSopIGNvbnN0OwogCiAgICAgZnJpZW5kIEpTU3RyaW5nKiBqc1N0cmluZyhFeGVjU3Rh
dGUqLCBKU1N0cmluZyosIEpTU3RyaW5nKik7CiAgICAgZnJpZW5kIEpTU3RyaW5nKiBqc1N1YnN0
cmluZyhFeGVjU3RhdGUqLCBKU1N0cmluZyosIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVu
Z3RoKTsKQEAgLTQzMCw4ICs0MzEsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVzb2x2ZVJvcGVJ
bnRlcm5hbDE2KFVDaGFyKikgY29uc3Q7CiAgICAgdm9pZCByZXNvbHZlUm9wZUludGVybmFsMTZO
b1N1YnN0cmluZyhVQ2hhciopIGNvbnN0OwogICAgIHZvaWQgY2xlYXJGaWJlcnMoKSBjb25zdDsK
LSAgICBTdHJpbmdWaWV3IHVuc2FmZVZpZXcoRXhlY1N0YXRlJikgY29uc3Q7Ci0gICAgU3RyaW5n
Vmlld1dpdGhVbmRlcmx5aW5nU3RyaW5nIHZpZXdXaXRoVW5kZXJseWluZ1N0cmluZyhFeGVjU3Rh
dGUmKSBjb25zdDsKKyAgICBTdHJpbmdWaWV3IHVuc2FmZVZpZXcoRXhlY1N0YXRlKikgY29uc3Q7
CisgICAgU3RyaW5nVmlld1dpdGhVbmRlcmx5aW5nU3RyaW5nIHZpZXdXaXRoVW5kZXJseWluZ1N0
cmluZyhFeGVjU3RhdGUqKSBjb25zdDsKIAogICAgIFdyaXRlQmFycmllckJhc2U8SlNTdHJpbmc+
JiBmaWJlcih1bnNpZ25lZCBpKSBjb25zdAogICAgIHsKQEAgLTU1Niw4ICs1NTcsMTIgQEAgaW5s
aW5lIGNvbnN0IFN0cmluZyYgSlNTdHJpbmc6OnRyeUdldFZhbAogCiBpbmxpbmUgSlNTdHJpbmcq
IEpTU3RyaW5nOjpnZXRJbmRleChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGkpCiB7CisgICAg
Vk0mIHZtID0gZXhlYy0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CiAgICAgQVNTRVJUKGNhbkdldEluZGV4KGkpKTsKLSAgICByZXR1cm4ganNTaW5nbGVD
aGFyYWN0ZXJTdHJpbmcoZXhlYywgdW5zYWZlVmlldygqZXhlYylbaV0pOworICAgIFN0cmluZ1Zp
ZXcgdmlldyA9IHVuc2FmZVZpZXcoZXhlYyk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgbnVsbHB0cik7CisgICAgcmV0dXJuIGpzU2luZ2xlQ2hhcmFjdGVyU3RyaW5nKGV4ZWMsIHZp
ZXdbaV0pOwogfQogCiBpbmxpbmUgSlNTdHJpbmcqIGpzU3RyaW5nKFZNKiB2bSwgY29uc3QgU3Ry
aW5nJiBzKQpAQCAtNzA1LDE4ICs3MTAsMTggQEAgaW5saW5lIGJvb2wgaXNKU1N0cmluZyhKU1Zh
bHVlIHYpCiAgICAgcmV0dXJuIHYuaXNDZWxsKCkgJiYgaXNKU1N0cmluZyh2LmFzQ2VsbCgpKTsK
IH0KIAotQUxXQVlTX0lOTElORSBTdHJpbmdWaWV3IEpTUm9wZVN0cmluZzo6dW5zYWZlVmlldyhF
eGVjU3RhdGUmIHN0YXRlKSBjb25zdAorQUxXQVlTX0lOTElORSBTdHJpbmdWaWV3IEpTUm9wZVN0
cmluZzo6dW5zYWZlVmlldyhFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiB7CiAgICAgaWYgKGlzU3Vi
c3RyaW5nKCkpIHsKICAgICAgICAgaWYgKGlzOEJpdCgpKQogICAgICAgICAgICAgcmV0dXJuIFN0
cmluZ1ZpZXcoc3Vic3RyaW5nQmFzZSgpLT5tX3ZhbHVlLmNoYXJhY3RlcnM4KCkgKyBzdWJzdHJp
bmdPZmZzZXQoKSwgbGVuZ3RoKCkpOwogICAgICAgICByZXR1cm4gU3RyaW5nVmlldyhzdWJzdHJp
bmdCYXNlKCktPm1fdmFsdWUuY2hhcmFjdGVyczE2KCkgKyBzdWJzdHJpbmdPZmZzZXQoKSwgbGVu
Z3RoKCkpOwogICAgIH0KLSAgICByZXNvbHZlUm9wZSgmc3RhdGUpOworICAgIHJlc29sdmVSb3Bl
KGV4ZWMpOwogICAgIHJldHVybiBtX3ZhbHVlOwogfQogCi1BTFdBWVNfSU5MSU5FIFN0cmluZ1Zp
ZXdXaXRoVW5kZXJseWluZ1N0cmluZyBKU1JvcGVTdHJpbmc6OnZpZXdXaXRoVW5kZXJseWluZ1N0
cmluZyhFeGVjU3RhdGUmIHN0YXRlKSBjb25zdAorQUxXQVlTX0lOTElORSBTdHJpbmdWaWV3V2l0
aFVuZGVybHlpbmdTdHJpbmcgSlNSb3BlU3RyaW5nOjp2aWV3V2l0aFVuZGVybHlpbmdTdHJpbmco
RXhlY1N0YXRlKiBleGVjKSBjb25zdAogewogICAgIGlmIChpc1N1YnN0cmluZygpKSB7CiAgICAg
ICAgIGF1dG8mIGJhc2UgPSBzdWJzdHJpbmdCYXNlKCktPm1fdmFsdWU7CkBAIC03MjQsMjEgKzcy
OSwyMSBAQCBBTFdBWVNfSU5MSU5FIFN0cmluZ1ZpZXdXaXRoVW5kZXJseWluZ1N0CiAgICAgICAg
ICAgICByZXR1cm4geyB7IGJhc2UuY2hhcmFjdGVyczgoKSArIHN1YnN0cmluZ09mZnNldCgpLCBs
ZW5ndGgoKSB9LCBiYXNlIH07CiAgICAgICAgIHJldHVybiB7IHsgYmFzZS5jaGFyYWN0ZXJzMTYo
KSArIHN1YnN0cmluZ09mZnNldCgpLCBsZW5ndGgoKSB9LCBiYXNlIH07CiAgICAgfQotICAgIHJl
c29sdmVSb3BlKCZzdGF0ZSk7CisgICAgcmVzb2x2ZVJvcGUoZXhlYyk7CiAgICAgcmV0dXJuIHsg
bV92YWx1ZSwgbV92YWx1ZSB9OwogfQogCi1BTFdBWVNfSU5MSU5FIFN0cmluZ1ZpZXcgSlNTdHJp
bmc6OnVuc2FmZVZpZXcoRXhlY1N0YXRlJiBzdGF0ZSkgY29uc3QKK0FMV0FZU19JTkxJTkUgU3Ry
aW5nVmlldyBKU1N0cmluZzo6dW5zYWZlVmlldyhFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiB7CiAg
ICAgaWYgKGlzUm9wZSgpKQotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgSlNSb3Bl
U3RyaW5nKj4odGhpcyktPnVuc2FmZVZpZXcoc3RhdGUpOworICAgICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8Y29uc3QgSlNSb3BlU3RyaW5nKj4odGhpcyktPnVuc2FmZVZpZXcoZXhlYyk7CiAgICAg
cmV0dXJuIG1fdmFsdWU7CiB9CiAKLUFMV0FZU19JTkxJTkUgU3RyaW5nVmlld1dpdGhVbmRlcmx5
aW5nU3RyaW5nIEpTU3RyaW5nOjp2aWV3V2l0aFVuZGVybHlpbmdTdHJpbmcoRXhlY1N0YXRlJiBz
dGF0ZSkgY29uc3QKK0FMV0FZU19JTkxJTkUgU3RyaW5nVmlld1dpdGhVbmRlcmx5aW5nU3RyaW5n
IEpTU3RyaW5nOjp2aWV3V2l0aFVuZGVybHlpbmdTdHJpbmcoRXhlY1N0YXRlKiBleGVjKSBjb25z
dAogewogICAgIGlmIChpc1JvcGUoKSkKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0
IEpTUm9wZVN0cmluZyY+KCp0aGlzKS52aWV3V2l0aFVuZGVybHlpbmdTdHJpbmcoc3RhdGUpOwor
ICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgSlNSb3BlU3RyaW5nJj4oKnRoaXMpLnZp
ZXdXaXRoVW5kZXJseWluZ1N0cmluZyhleGVjKTsKICAgICByZXR1cm4geyBtX3ZhbHVlLCBtX3Zh
bHVlIH07CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5n
Sm9pbmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNT
dHJpbmdKb2luZXIuaAkocmV2aXNpb24gMjE2Njg5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNTdHJpbmdKb2luZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTItMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTExNiw3ICsxMTYs
NyBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgSlNTdHJpbmdKb2luZXI6OmFwcGVuCiAgICAgICAgIGlm
ICghdmFsdWUuYXNDZWxsKCktPmlzU3RyaW5nKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgIGpzU3RyaW5nID0gYXNTdHJpbmcodmFsdWUpOwotICAgICAgICBhcHBlbmQoanNT
dHJpbmctPnZpZXdXaXRoVW5kZXJseWluZ1N0cmluZyhzdGF0ZSkpOworICAgICAgICBhcHBlbmQo
anNTdHJpbmctPnZpZXdXaXRoVW5kZXJseWluZ1N0cmluZygmc3RhdGUpKTsKICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgfQogCkBAIC0xNDUsNyArMTQ1LDcgQEAgQUxXQVlTX0lOTElORSB2b2lk
IEpTU3RyaW5nSm9pbmVyOjphcHBlbgogewogICAgIGlmICghYXBwZW5kV2l0aG91dFNpZGVFZmZl
Y3RzKHN0YXRlLCB2YWx1ZSkpIHsKICAgICAgICAgSlNTdHJpbmcqIGpzU3RyaW5nID0gdmFsdWUu
dG9TdHJpbmcoJnN0YXRlKTsKLSAgICAgICAgYXBwZW5kKGpzU3RyaW5nLT52aWV3V2l0aFVuZGVy
bHlpbmdTdHJpbmcoc3RhdGUpKTsKKyAgICAgICAgYXBwZW5kKGpzU3RyaW5nLT52aWV3V2l0aFVu
ZGVybHlpbmdTdHJpbmcoJnN0YXRlKSk7CiAgICAgfQogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9QYXJzZUludC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1BhcnNlSW50LmgJKHJldmlzaW9uIDIxNjY4OSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1BhcnNlSW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTIxOSw3
ICsyMTksNyBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSB0eXBlbmFtZSBzdGQ6OnJlc3VsCiAgICAg
SlNTdHJpbmcqIHN0cmluZyA9IHZhbHVlLnRvU3RyaW5nT3JOdWxsKGV4ZWMpOwogICAgIGlmIChV
TkxJS0VMWSghc3RyaW5nKSkKICAgICAgICAgcmV0dXJuIHsgfTsKLSAgICBhdXRvIHZpZXdXaXRo
U3RyaW5nID0gc3RyaW5nLT52aWV3V2l0aFVuZGVybHlpbmdTdHJpbmcoKmV4ZWMpOworICAgIGF1
dG8gdmlld1dpdGhTdHJpbmcgPSBzdHJpbmctPnZpZXdXaXRoVW5kZXJseWluZ1N0cmluZyhleGVj
KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwogICAgIHJldHVybiBjYWxs
YmFjayh2aWV3V2l0aFN0cmluZy52aWV3KTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAkocmV2aXNpb24gMjE2Njg5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtODE2LDcgKzgxNiw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgc3RyaW5nUHJvdG8KICAgICBBU1NFUlQocmVwZWF0Q291bnQgPj0gMCk7CiAgICAgQVNTRVJU
KCFyZXBlYXRDb3VudFZhbHVlLmlzRG91YmxlKCkgfHwgcmVwZWF0Q291bnRWYWx1ZS5hc0RvdWJs
ZSgpID09IHJlcGVhdENvdW50KTsKIAotICAgIGF1dG8gdmlld1dpdGhTdHJpbmcgPSBzdHJpbmct
PnZpZXdXaXRoVW5kZXJseWluZ1N0cmluZygqZXhlYyk7CisgICAgYXV0byB2aWV3V2l0aFN0cmlu
ZyA9IHN0cmluZy0+dmlld1dpdGhVbmRlcmx5aW5nU3RyaW5nKGV4ZWMpOwogICAgIFN0cmluZ1Zp
ZXcgdmlldyA9IHZpZXdXaXRoU3RyaW5nLnZpZXc7CiAgICAgQVNTRVJUKHZpZXcubGVuZ3RoKCkg
PT0gMSk7CiAgICAgc2NvcGUuYXNzZXJ0Tm9FeGNlcHRpb24oKTsKQEAgLTkxMyw3ICs5MTMsNyBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvCiAgICAgSlNWYWx1ZSB0
aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBpZiAoIWNoZWNrT2JqZWN0Q29lcmNp
YmxlKHRoaXNWYWx1ZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNj
b3BlKTsKLSAgICBhdXRvIHZpZXdXaXRoU3RyaW5nID0gdGhpc1ZhbHVlLnRvU3RyaW5nKGV4ZWMp
LT52aWV3V2l0aFVuZGVybHlpbmdTdHJpbmcoKmV4ZWMpOworICAgIGF1dG8gdmlld1dpdGhTdHJp
bmcgPSB0aGlzVmFsdWUudG9TdHJpbmcoZXhlYyktPnZpZXdXaXRoVW5kZXJseWluZ1N0cmluZyhl
eGVjKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsK
ICAgICBTdHJpbmdWaWV3IHZpZXcgPSB2aWV3V2l0aFN0cmluZy52aWV3OwogICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwpAQCAtOTM4LDcgKzkzOCw3IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG8KICAgICBKU1ZhbHVlIHRo
aXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIGlmICghY2hlY2tPYmplY3RDb2VyY2li
bGUodGhpc1ZhbHVlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2Nv
cGUpOwotICAgIGF1dG8gdmlld1dpdGhTdHJpbmcgPSB0aGlzVmFsdWUudG9TdHJpbmcoZXhlYykt
PnZpZXdXaXRoVW5kZXJseWluZ1N0cmluZygqZXhlYyk7CisgICAgYXV0byB2aWV3V2l0aFN0cmlu
ZyA9IHRoaXNWYWx1ZS50b1N0cmluZyhleGVjKS0+dmlld1dpdGhVbmRlcmx5aW5nU3RyaW5nKGV4
ZWMpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwog
ICAgIFN0cmluZ1ZpZXcgdmlldyA9IHZpZXdXaXRoU3RyaW5nLnZpZXc7CiAgICAgSlNWYWx1ZSBh
MCA9IGV4ZWMtPmFyZ3VtZW50KDApOwpAQCAtMTA0OSw5ICsxMDQ5LDkgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90bwogICAgIGlmICh0aGlzSlNTdHJpbmctPmxlbmd0
aCgpIDwgb3RoZXJKU1N0cmluZy0+bGVuZ3RoKCkgKyBwb3MpCiAgICAgICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNOdW1iZXIoLTEpKTsKIAotICAgIGF1dG8gdGhpc1ZpZXdXaXRoU3RyaW5n
ID0gdGhpc0pTU3RyaW5nLT52aWV3V2l0aFVuZGVybHlpbmdTdHJpbmcoKmV4ZWMpOworICAgIGF1
dG8gdGhpc1ZpZXdXaXRoU3RyaW5nID0gdGhpc0pTU3RyaW5nLT52aWV3V2l0aFVuZGVybHlpbmdT
dHJpbmcoZXhlYyk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFs
dWUoKSk7Ci0gICAgYXV0byBvdGhlclZpZXdXaXRoU3RyaW5nID0gb3RoZXJKU1N0cmluZy0+dmll
d1dpdGhVbmRlcmx5aW5nU3RyaW5nKCpleGVjKTsKKyAgICBhdXRvIG90aGVyVmlld1dpdGhTdHJp
bmcgPSBvdGhlckpTU3RyaW5nLT52aWV3V2l0aFVuZGVybHlpbmdTdHJpbmcoZXhlYyk7CiAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgc2l6ZV90
IHJlc3VsdCA9IHRoaXNWaWV3V2l0aFN0cmluZy52aWV3LmZpbmQob3RoZXJWaWV3V2l0aFN0cmlu
Zy52aWV3LCBwb3MpOwogICAgIGlmIChyZXN1bHQgPT0gbm90Rm91bmQpCkBAIC0xNzk5LDcgKzE3
OTksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvCiAgICAgSlNW
YWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBpZiAoIWNoZWNrT2JqZWN0
Q29lcmNpYmxlKHRoaXNWYWx1ZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4
ZWMsIHNjb3BlKTsKLSAgICBhdXRvIHZpZXdXaXRoU3RyaW5nID0gdGhpc1ZhbHVlLnRvU3RyaW5n
KGV4ZWMpLT52aWV3V2l0aFVuZGVybHlpbmdTdHJpbmcoKmV4ZWMpOworICAgIGF1dG8gdmlld1dp
dGhTdHJpbmcgPSB0aGlzVmFsdWUudG9TdHJpbmcoZXhlYyktPnZpZXdXaXRoVW5kZXJseWluZ1N0
cmluZyhleGVjKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1
ZSgpKTsKICAgICBTdHJpbmdWaWV3IHZpZXcgPSB2aWV3V2l0aFN0cmluZy52aWV3OwogCg==
</data>
<flag name="review"
          id="330955"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>