<?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>143496</bug_id>
          
          <creation_ts>2015-04-07 13:47:00 -0700</creation_ts>
          <short_desc>Constant folding of typed array properties should be handled by AI rather than strength reduction</short_desc>
          <delta_ts>2015-04-08 17:37:56 -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>528+ (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>
          
          <blocked>143232</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>benjamin</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenb</cc>
    
    <cc>mmirman</cc>
    
    <cc>msaboff</cc>
    
    <cc>nrotem</cc>
    
    <cc>oliver</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1083412</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-04-07 13:47:00 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083414</commentid>
    <comment_count>1</comment_count>
      <attachid>250295</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-04-07 13:51:45 -0700</bug_when>
    <thetext>Created attachment 250295
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083416</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-04-07 13:55:04 -0700</bug_when>
    <thetext>Attachment 250295 did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:696:  The parameter name &quot;arrayMode&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083418</commentid>
    <comment_count>3</comment_count>
      <attachid>250295</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-04-07 13:58:12 -0700</bug_when>
    <thetext>Comment on attachment 250295
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083453</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-04-07 15:10:39 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/182498</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083787</commentid>
    <comment_count>5</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-04-08 17:37:56 -0700</bug_when>
    <thetext>This change might have broken Web Inspector on Windows.

See &lt;https://bugs.webkit.org/show_bug.cgi?id=143542&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250295</attachid>
            <date>2015-04-07 13:51:45 -0700</date>
            <delta_ts>2015-04-07 13:58:12 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>25249</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTgyNDg3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcwIEBA
CisyMDE1LTA0LTA3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
Q29uc3RhbnQgZm9sZGluZyBvZiB0eXBlZCBhcnJheSBwcm9wZXJ0aWVzIHNob3VsZCBiZSBoYW5k
bGVkIGJ5IEFJIHJhdGhlciB0aGFuIHN0cmVuZ3RoIHJlZHVjdGlvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQzNDk2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBIYW5kbGluZyBjb25zdGFu
dCBmb2xkaW5nIGluIEFJIGlzIGJldHRlciBiZWNhdXNlIGl0IHByZWNsdWRlcyB1cyBmcm9tIGhh
dmluZyB0byBmaXhwb2ludCB0aGUgQ0ZBCisgICAgICAgIHBoYXNlIGFuZCB3aGF0ZXZlciBvdGhl
ciBwaGFzZSBkaWQgdGhlIGZvbGRpbmcgaW4gb3JkZXIgdG8gZmluZCBhbGwgY29uc3RhbnRzLgor
ICAgICAgICAKKyAgICAgICAgVGhpcyBhbHNvIHJlbW92ZXMgdGhlIFR5cGVkQXJyYXlXYXRjaHBv
aW50IG5vZGUgdHlwZSBiZWNhdXNlIHdlIGNhbiBqdXN0IHNldCB0aGUgd2F0Y2hwb2ludAorICAg
ICAgICBkaXJlY3RseS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgYWxzbyBmaXhlcyBhIGJ1ZyBp
biBGVEwgbG93ZXJpbmcgb2YgR2V0VHlwZWRBcnJheUJ5dGVPZmZzZXQuIFRoZSBidWcgd2FzIHBy
ZXZpb3VzbHkgbm90CisgICAgICAgIGZvdW5kIGJlY2F1c2UgYWxsIG9mIHRoZSB0ZXN0cyBmb3Ig
aXQgaW52b2x2ZWQgdGhlIHByb3BlcnR5IGdldHRpbmcgY29uc3RhbnQgZm9sZGVkLiBJIGZvdW5k
IHRoYXQKKyAgICAgICAgdGhlIGNvZGVnZW4gd2FzIGJhZCBiZWNhdXNlIGFuIGVhcmxpZXIgdmVy
c2lvbiBvZiB0aGUgcGF0Y2ggYnJva2UgdGhhdCBjb25zdGFudCBmb2xkaW5nLiBUaGlzCisgICAg
ICAgIGFkZHMgYSBuZXcgdGVzdCBmb3IgdGhhdCBub2RlIHR5cGUsIHdoaWNoIG1ha2VzIGNvbnN0
YW50IGZvbGRpbmcgaW1wb3NzaWJsZSBieSBhbGxvY2F0aW5nIGEgbmV3CisgICAgICAgIHR5cGVk
IGFycmF5IGV2ZXJ5IHR5cGUuIFRoZSBsZXNzb24gaGVyZSBpczogaWYgeW91IHdyaXRlIGEgdGVz
dCBmb3Igc29tZXRoaW5nLCBydW4gdGhlIHRlc3Qgd2l0aAorICAgICAgICBmdWxsIElSIGR1bXBz
IHRvIG1ha2Ugc3VyZSBpdCdzIGFjdHVhbGx5IHRlc3RpbmcgdGhlIHRoaW5nIHlvdSB3YW50IGl0
IHRvIHRlc3QuCisKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMu
aDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVU
eXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAgICAgICAqIGRmZy9ERkdDbG9iYmVyaXplLmg6Cisg
ICAgICAgIChKU0M6OkRGRzo6Y2xvYmJlcml6ZSk6CisgICAgICAgICogZGZnL0RGR0NvbnN0YW50
Rm9sZGluZ1BoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpDb25zdGFudEZvbGRpbmdQaGFz
ZTo6Zm9sZENvbnN0YW50cyk6CisgICAgICAgICogZGZnL0RGR0RvZXNHQy5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6ZG9lc0dDKToKKyAgICAgICAgKiBkZmcvREZHRml4dXBQaGFzZS5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBOb2RlKToKKyAgICAgICAgKiBkZmcv
REZHR3JhcGguY3BwOgorICAgICAgICAoSlNDOjpERkc6OkdyYXBoOjpkdW1wKToKKyAgICAgICAg
KEpTQzo6REZHOjpHcmFwaDo6dHJ5R2V0Rm9sZGFibGVWaWV3KToKKyAgICAgICAgKEpTQzo6REZH
OjpHcmFwaDo6dHJ5R2V0Rm9sZGFibGVWaWV3Rm9yQ2hpbGQxKTogRGVsZXRlZC4KKyAgICAgICAg
KiBkZmcvREZHR3JhcGguaDoKKyAgICAgICAgKiBkZmcvREZHTm9kZS5oOgorICAgICAgICAoSlND
OjpERkc6Ok5vZGU6Omhhc1R5cGVkQXJyYXkpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6
Ok5vZGU6OnR5cGVkQXJyYXkpOiBEZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5o
OgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2U6OnByb3BhZ2F0ZSk6Cisg
ICAgICAgICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpzYWZl
VG9FeGVjdXRlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpqdW1wRm9yVHlwZWRBcnJheU91dE9mQm91bmRz
KToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVj
dWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZSk6CisgICAgICAgICogZGZnL0RGR1N0cmVuZ3RoUmVkdWN0aW9uUGhhc2UuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OlN0cmVuZ3RoUmVkdWN0aW9uUGhhc2U6OmhhbmRsZU5vZGUpOgorICAg
ICAgICAoSlNDOjpERkc6OlN0cmVuZ3RoUmVkdWN0aW9uUGhhc2U6OmZvbGRUeXBlZEFycmF5UHJv
cGVydHlUb0NvbnN0YW50KTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6REZHOjpTdHJlbmd0aFJl
ZHVjdGlvblBoYXNlOjpwcmVwYXJlVG9Gb2xkVHlwZWRBcnJheSk6IERlbGV0ZWQuCisgICAgICAg
ICogZGZnL0RGR1dhdGNocG9pbnRDb2xsZWN0aW9uUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpE
Rkc6OldhdGNocG9pbnRDb2xsZWN0aW9uUGhhc2U6OmhhbmRsZSk6CisgICAgICAgIChKU0M6OkRG
Rzo6V2F0Y2hwb2ludENvbGxlY3Rpb25QaGFzZTo6YWRkTGF6aWx5KToKKyAgICAgICAgKiBmdGwv
RlRMQ2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjYW5Db21waWxlKToKKyAg
ICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwOgorICAgICAgICAoSlNDOjpGVEw6Okxv
d2VyREZHVG9MTFZNOjpjb21waWxlTm9kZSk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdU
b0xMVk06OmNvbXBpbGVHZXRUeXBlZEFycmF5Qnl0ZU9mZnNldCk6CisgICAgICAgIChKU0M6OkZU
TDo6TG93ZXJERkdUb0xMVk06OnR5cGVkQXJyYXlMZW5ndGgpOgorICAgICAgICAqIHRlc3RzL3N0
cmVzcy9mb2xkLXR5cGVkLWFycmF5LXByb3BlcnRpZXMuanM6CisgICAgICAgIChmb28pOgorICAg
ICAgICAqIHRlc3RzL3N0cmVzcy90eXBlZC1hcnJheS1ieXRlLW9mZnNldC5qczogQWRkZWQuCisg
ICAgICAgIChmb28pOgorCiAyMDE1LTA0LTA3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5j
b20+CiAKICAgICAgICAgTWFrZSBpdCBwb3NzaWJsZSB0byBlbmFibGUgTExWTSBGYXN0SVNlbApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5s
aW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJh
Y3RJbnRlcnByZXRlcklubGluZXMuaAkocmV2aXNpb24gMTgyNDMzKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xMzgzLDkgKzEzODMsNiBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJh
Y3RTdGF0ZVR5CiAgICAgICAgICAgICBtX2dyYXBoLCBtX2NvZGVCbG9jay0+Z2xvYmFsT2JqZWN0
Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYyktPmFjdGl2YXRpb25TdHJ1Y3R1cmUoKSk7CiAgICAg
ICAgIGJyZWFrOwogICAgICAgICAKLSAgICBjYXNlIFR5cGVkQXJyYXlXYXRjaHBvaW50OgotICAg
ICAgICBicmVhazsKLSAgICAKICAgICBjYXNlIENyZWF0ZURpcmVjdEFyZ3VtZW50czoKICAgICAg
ICAgZm9yTm9kZShub2RlKS5zZXQobV9ncmFwaCwgbV9jb2RlQmxvY2stPmdsb2JhbE9iamVjdEZv
cihub2RlLT5vcmlnaW4uc2VtYW50aWMpLT5kaXJlY3RBcmd1bWVudHNTdHJ1Y3R1cmUoKSk7CiAg
ICAgICAgIGJyZWFrOwpAQCAtMTUyMCw5ICsxNTE3LDE2IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnBy
ZXRlcjxBYnN0cmFjdFN0YXRlVHkKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgICAgICAgICAg
Ci0gICAgY2FzZSBHZXRBcnJheUxlbmd0aDoKKyAgICBjYXNlIEdldEFycmF5TGVuZ3RoOiB7Cisg
ICAgICAgIEpTQXJyYXlCdWZmZXJWaWV3KiB2aWV3ID0gbV9ncmFwaC50cnlHZXRGb2xkYWJsZVZp
ZXcoCisgICAgICAgICAgICBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS5tX3ZhbHVlLCBub2RlLT5h
cnJheU1vZGUoKSk7CisgICAgICAgIGlmICh2aWV3KSB7CisgICAgICAgICAgICBzZXRDb25zdGFu
dChub2RlLCBqc051bWJlcih2aWV3LT5sZW5ndGgoKSkpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KICAgICAgICAgZm9yTm9kZShub2RlKS5zZXRUeXBlKFNwZWNJbnQzMik7CiAgICAg
ICAgIGJyZWFrOworICAgIH0KICAgICAgICAgCiAgICAgY2FzZSBDaGVja1N0cnVjdHVyZTogewog
ICAgICAgICBBYnN0cmFjdFZhbHVlJiB2YWx1ZSA9IGZvck5vZGUobm9kZS0+Y2hpbGQxKCkpOwpA
QCAtMTcwNSwxMyArMTcwOSwyNSBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RT
dGF0ZVR5CiAgICAgICAgIHZhbHVlLnNldChtX2dyYXBoLCBub2RlLT5zdHJ1Y3R1cmUoKSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBjYXNlIEdldEluZGV4ZWRQcm9wZXJ0eVN0b3JhZ2U6
CisgICAgY2FzZSBHZXRJbmRleGVkUHJvcGVydHlTdG9yYWdlOiB7CisgICAgICAgIEpTQXJyYXlC
dWZmZXJWaWV3KiB2aWV3ID0gbV9ncmFwaC50cnlHZXRGb2xkYWJsZVZpZXcoCisgICAgICAgICAg
ICBmb3JOb2RlKG5vZGUtPmNoaWxkMSgpKS5tX3ZhbHVlLCBub2RlLT5hcnJheU1vZGUoKSk7Cisg
ICAgICAgIGlmICh2aWV3KQorICAgICAgICAgICAgbV9zdGF0ZS5zZXRGb3VuZENvbnN0YW50cyh0
cnVlKTsKKyAgICAgICAgZm9yTm9kZShub2RlKS5jbGVhcigpOworICAgICAgICBicmVhazsKKyAg
ICB9CiAgICAgY2FzZSBDb25zdGFudFN0b3JhZ2VQb2ludGVyOiB7CiAgICAgICAgIGZvck5vZGUo
bm9kZSkuY2xlYXIoKTsKICAgICAgICAgYnJlYWs7IAogICAgIH0KICAgICAgICAgCiAgICAgY2Fz
ZSBHZXRUeXBlZEFycmF5Qnl0ZU9mZnNldDogeworICAgICAgICBKU0FycmF5QnVmZmVyVmlldyog
dmlldyA9IG1fZ3JhcGgudHJ5R2V0Rm9sZGFibGVWaWV3KGZvck5vZGUobm9kZS0+Y2hpbGQxKCkp
Lm1fdmFsdWUpOworICAgICAgICBpZiAodmlldykgeworICAgICAgICAgICAgc2V0Q29uc3RhbnQo
bm9kZSwganNOdW1iZXIodmlldy0+Ynl0ZU9mZnNldCgpKSk7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQogICAgICAgICBmb3JOb2RlKG5vZGUpLnNldFR5cGUoU3BlY0ludDMyKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdD
bG9iYmVyaXplLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdD
bG9iYmVyaXplLmgJKHJldmlzaW9uIDE4MjQzMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ2xvYmJlcml6ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMDYsMTEgKzMwNiw2IEBAIHZv
aWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUKICAgICAgICAgd3JpdGUoU2lk
ZVN0YXRlKTsKICAgICAgICAgcmV0dXJuOwogCi0gICAgY2FzZSBUeXBlZEFycmF5V2F0Y2hwb2lu
dDoKLSAgICAgICAgcmVhZChXYXRjaHBvaW50X2ZpcmUpOwotICAgICAgICB3cml0ZShTaWRlU3Rh
dGUpOwotICAgICAgICByZXR1cm47Ci0gICAgICAgIAogICAgIGNhc2UgTm90aWZ5V3JpdGU6CiAg
ICAgICAgIHdyaXRlKFdhdGNocG9pbnRfZmlyZSk7CiAgICAgICAgIHdyaXRlKFNpZGVTdGF0ZSk7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbnN0YW50
Rm9sZGluZ1BoYXNlLmNwcAkocmV2aXNpb24gMTgyNDMzKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEx
NSw2ICsxMTUsMzAgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGNhc2UgR2V0SW5kZXhlZFByb3Bl
cnR5U3RvcmFnZTogeworICAgICAgICAgICAgICAgIEpTQXJyYXlCdWZmZXJWaWV3KiB2aWV3ID0g
bV9ncmFwaC50cnlHZXRGb2xkYWJsZVZpZXcoCisgICAgICAgICAgICAgICAgICAgIG1fc3RhdGUu
Zm9yTm9kZShub2RlLT5jaGlsZDEoKSkubV92YWx1ZSwgbm9kZS0+YXJyYXlNb2RlKCkpOworICAg
ICAgICAgICAgICAgIGlmICghdmlldykKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKHZpZXctPm1vZGUoKSA9PSBGYXN0VHlw
ZWRBcnJheSkgeworICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSXQgd291bGQgYmUgYXdl
c29tZSB0byBiZSBhYmxlIHRvIGZvbGQgdGhlIHByb3BlcnR5IHN0b3JhZ2UgZm9yCisgICAgICAg
ICAgICAgICAgICAgIC8vIHRoZXNlIEdDLWFsbG9jYXRlZCB0eXBlZCBhcnJheXMuIEZvciBub3cg
aXQgZG9lc24ndCBtYXR0ZXIgYmVjYXVzZSB0aGUKKyAgICAgICAgICAgICAgICAgICAgLy8gbW9z
dCBjb21tb24gdXNlLWNhc2VzIGZvciBjb25zdGFudCB0eXBlZCBhcnJheXMgaW52b2x2ZSBsYXJn
ZSBhcnJheXMgd2l0aAorICAgICAgICAgICAgICAgICAgICAvLyBhbGlhc2VkIGJ1ZmZlciB2aWV3
cy4KKyAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEyNTQyNQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbV9pbnRlcnByZXRlci5l
eGVjdXRlKGluZGV4SW5CbG9jayk7CisgICAgICAgICAgICAgICAgZWxpbWluYXRlZCA9IHRydWU7
CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgbV9pbnNlcnRpb25TZXQuaW5zZXJ0
Tm9kZSgKKyAgICAgICAgICAgICAgICAgICAgaW5kZXhJbkJsb2NrLCBTcGVjTm9uZSwgUGhhbnRv
bSwgbm9kZS0+b3JpZ2luLCBub2RlLT5jaGlsZHJlbik7CisgICAgICAgICAgICAgICAgbm9kZS0+
Y29udmVydFRvQ29uc3RhbnRTdG9yYWdlUG9pbnRlcih2aWV3LT52ZWN0b3IoKSk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICBjYXNlIENoZWNrU3RydWN0dXJlSW1tZWRpYXRlOiB7CiAgICAgICAgICAgICAgICAgQWJz
dHJhY3RWYWx1ZSYgdmFsdWUgPSBtX3N0YXRlLmZvck5vZGUobm9kZS0+Y2hpbGQxKCkpOwogICAg
ICAgICAgICAgICAgIFN0cnVjdHVyZVNldCYgc2V0ID0gbm9kZS0+c3RydWN0dXJlU2V0KCk7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCShyZXZpc2lvbiAxODI0
MzMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE2NCw3ICsxNjQsNiBAQCBib29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUq
IG5vZGUpCiAgICAgY2FzZSBTdG9yZUJhcnJpZXJXaXRoTnVsbENoZWNrOgogICAgIGNhc2UgSW52
YWxpZGF0aW9uUG9pbnQ6CiAgICAgY2FzZSBOb3RpZnlXcml0ZToKLSAgICBjYXNlIFR5cGVkQXJy
YXlXYXRjaHBvaW50OgogICAgIGNhc2UgQ2hlY2tJbkJvdW5kczoKICAgICBjYXNlIENvbnN0YW50
U3RvcmFnZVBvaW50ZXI6CiAgICAgY2FzZSBDaGVjazoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkocmV2aXNpb24gMTgyNDMzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTIzOCw3ICsxMjM4LDYgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBMb29wSGludDoKICAgICAg
ICAgY2FzZSBTdG9yZUJhcnJpZXI6CiAgICAgICAgIGNhc2UgU3RvcmVCYXJyaWVyV2l0aE51bGxD
aGVjazoKLSAgICAgICAgY2FzZSBUeXBlZEFycmF5V2F0Y2hwb2ludDoKICAgICAgICAgY2FzZSBN
b3ZIaW50OgogICAgICAgICBjYXNlIFpvbWJpZUhpbnQ6CiAgICAgICAgIGNhc2UgQm90dG9tVmFs
dWU6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAkocmV2aXNpb24g
MTgyNDMzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMxMyw4ICszMTMsNiBAQCB2b2lkIEdyYXBoOjpkdW1wKFByaW50U3RyZWFt
JiBvdXQsIGNvbnN0CiAgICAgICAgIG91dC5wcmludChjb21tYSwgUmF3UG9pbnRlcihub2RlLT5l
eGVjdXRpb25Db3VudGVyKCkpKTsKICAgICBpZiAobm9kZS0+aGFzVmFyaWFibGVXYXRjaHBvaW50
U2V0KCkpCiAgICAgICAgIG91dC5wcmludChjb21tYSwgUmF3UG9pbnRlcihub2RlLT52YXJpYWJs
ZVdhdGNocG9pbnRTZXQoKSkpOwotICAgIGlmIChub2RlLT5oYXNUeXBlZEFycmF5KCkpCi0gICAg
ICAgIG91dC5wcmludChjb21tYSwgaW5Db250ZXh0KEpTVmFsdWUobm9kZS0+dHlwZWRBcnJheSgp
KSwgY29udGV4dCkpOwogICAgIGlmIChub2RlLT5oYXNTdG9yYWdlUG9pbnRlcigpKQogICAgICAg
ICBvdXQucHJpbnQoY29tbWEsIFJhd1BvaW50ZXIobm9kZS0+c3RvcmFnZVBvaW50ZXIoKSkpOwog
ICAgIGlmIChub2RlLT5oYXNPYmplY3RNYXRlcmlhbGl6YXRpb25EYXRhKCkpCkBAIC0xMDcxLDI3
ICsxMDY5LDI1IEBAIEpTVmFsdWUgR3JhcGg6OnRyeUdldENvbnN0YW50Q2xvc3VyZVZhcigKICAg
ICByZXR1cm4gdHJ5R2V0Q29uc3RhbnRDbG9zdXJlVmFyKG5vZGUtPmFzSlNWYWx1ZSgpLCBvZmZz
ZXQpOwogfQogCi1KU0FycmF5QnVmZmVyVmlldyogR3JhcGg6OnRyeUdldEZvbGRhYmxlVmlldyhO
b2RlKiBub2RlKQorSlNBcnJheUJ1ZmZlclZpZXcqIEdyYXBoOjp0cnlHZXRGb2xkYWJsZVZpZXco
SlNWYWx1ZSB2YWx1ZSkKIHsKLSAgICBKU0FycmF5QnVmZmVyVmlldyogdmlldyA9IG5vZGUtPmR5
bmFtaWNDYXN0Q29uc3RhbnQ8SlNBcnJheUJ1ZmZlclZpZXcqPigpOwotICAgIGlmICghdmlldykK
KyAgICBpZiAoIXZhbHVlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBKU0FycmF5QnVm
ZmVyVmlldyogdmlldyA9IGpzRHluYW1pY0Nhc3Q8SlNBcnJheUJ1ZmZlclZpZXcqPih2YWx1ZSk7
CisgICAgaWYgKCF2YWx1ZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgaWYgKCF2aWV3
LT5sZW5ndGgoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgV1RGOjpsb2FkTG9hZEZl
bmNlKCk7CisgICAgd2F0Y2hwb2ludHMoKS5hZGRMYXppbHkodmlldyk7CiAgICAgcmV0dXJuIHZp
ZXc7CiB9CiAKLUpTQXJyYXlCdWZmZXJWaWV3KiBHcmFwaDo6dHJ5R2V0Rm9sZGFibGVWaWV3KE5v
ZGUqIG5vZGUsIEFycmF5TW9kZSBhcnJheU1vZGUpCitKU0FycmF5QnVmZmVyVmlldyogR3JhcGg6
OnRyeUdldEZvbGRhYmxlVmlldyhKU1ZhbHVlIHZhbHVlLCBBcnJheU1vZGUgYXJyYXlNb2RlKQog
ewogICAgIGlmIChhcnJheU1vZGUudHlwZWRBcnJheVR5cGUoKSA9PSBOb3RUeXBlZEFycmF5KQot
ICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gdHJ5R2V0Rm9sZGFibGVWaWV3KG5vZGUpOwot
fQotCi1KU0FycmF5QnVmZmVyVmlldyogR3JhcGg6OnRyeUdldEZvbGRhYmxlVmlld0ZvckNoaWxk
MShOb2RlKiBub2RlKQotewotICAgIHJldHVybiB0cnlHZXRGb2xkYWJsZVZpZXcoY2hpbGQobm9k
ZSwgMCkubm9kZSgpLCBub2RlLT5hcnJheU1vZGUoKSk7CisgICAgICAgIHJldHVybiBudWxscHRy
OworICAgIHJldHVybiB0cnlHZXRGb2xkYWJsZVZpZXcodmFsdWUpOwogfQogCiB2b2lkIEdyYXBo
OjpyZWdpc3RlckZyb3plblZhbHVlcygpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0dyYXBoLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdH
cmFwaC5oCShyZXZpc2lvbiAxODI0MzMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0dyYXBoLmgJKHdvcmtpbmcgY29weSkKQEAgLTY5Miw5ICs2OTIsOCBAQCBwdWJsaWM6CiAgICAg
SlNWYWx1ZSB0cnlHZXRDb25zdGFudENsb3N1cmVWYXIoY29uc3QgQWJzdHJhY3RWYWx1ZSYsIFNj
b3BlT2Zmc2V0KTsKICAgICBKU1ZhbHVlIHRyeUdldENvbnN0YW50Q2xvc3VyZVZhcihOb2RlKiwg
U2NvcGVPZmZzZXQpOwogICAgIAotICAgIEpTQXJyYXlCdWZmZXJWaWV3KiB0cnlHZXRGb2xkYWJs
ZVZpZXcoTm9kZSopOwotICAgIEpTQXJyYXlCdWZmZXJWaWV3KiB0cnlHZXRGb2xkYWJsZVZpZXco
Tm9kZSosIEFycmF5TW9kZSk7Ci0gICAgSlNBcnJheUJ1ZmZlclZpZXcqIHRyeUdldEZvbGRhYmxl
Vmlld0ZvckNoaWxkMShOb2RlKik7CisgICAgSlNBcnJheUJ1ZmZlclZpZXcqIHRyeUdldEZvbGRh
YmxlVmlldyhKU1ZhbHVlKTsKKyAgICBKU0FycmF5QnVmZmVyVmlldyogdHJ5R2V0Rm9sZGFibGVW
aWV3KEpTVmFsdWUsIEFycmF5TW9kZSBhcnJheU1vZGUpOwogICAgIAogICAgIHZvaWQgcmVnaXN0
ZXJGcm96ZW5WYWx1ZXMoKTsKICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHTm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9k
ZS5oCShyZXZpc2lvbiAxODI0MzMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05v
ZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTIyOSwxNiArMTIyOSw2IEBAIHN0cnVjdCBOb2RlIHsK
ICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8VmFyaWFibGVXYXRjaHBvaW50U2V0Kj4o
bV9vcEluZm8pOwogICAgIH0KICAgICAKLSAgICBib29sIGhhc1R5cGVkQXJyYXkoKQotICAgIHsK
LSAgICAgICAgcmV0dXJuIG9wKCkgPT0gVHlwZWRBcnJheVdhdGNocG9pbnQ7Ci0gICAgfQotICAg
IAotICAgIEpTQXJyYXlCdWZmZXJWaWV3KiB0eXBlZEFycmF5KCkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiByZWludGVycHJldF9jYXN0PEpTQXJyYXlCdWZmZXJWaWV3Kj4obV9vcEluZm8pOwotICAg
IH0KLSAgICAKICAgICBib29sIGhhc1N0b3JhZ2VQb2ludGVyKCkKICAgICB7CiAgICAgICAgIHJl
dHVybiBvcCgpID09IENvbnN0YW50U3RvcmFnZVBvaW50ZXI7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCShyZXZpc2lvbiAxODI0MzMpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTE3NCw3ICsx
NzQsNiBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFjcm8oQXJyYXlp
ZnlUb1N0cnVjdHVyZSwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKEdldEluZGV4ZWRQ
cm9wZXJ0eVN0b3JhZ2UsIE5vZGVSZXN1bHRTdG9yYWdlKSBcCiAgICAgbWFjcm8oQ29uc3RhbnRT
dG9yYWdlUG9pbnRlciwgTm9kZVJlc3VsdFN0b3JhZ2UpIFwKLSAgICBtYWNybyhUeXBlZEFycmF5
V2F0Y2hwb2ludCwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKEdldEdldHRlciwgTm9k
ZVJlc3VsdEpTKSBcCiAgICAgbWFjcm8oR2V0U2V0dGVyLCBOb2RlUmVzdWx0SlMpIFwKICAgICBt
YWNybyhHZXRCeU9mZnNldCwgTm9kZVJlc3VsdEpTKSBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNl
LmNwcAkocmV2aXNpb24gMTgyNDMzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQ
cmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0NSw3ICs2
NDUsNiBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIFVucmVhY2hhYmxlOgogICAgICAgICBjYXNl
IExvb3BIaW50OgogICAgICAgICBjYXNlIE5vdGlmeVdyaXRlOgotICAgICAgICBjYXNlIFR5cGVk
QXJyYXlXYXRjaHBvaW50OgogICAgICAgICBjYXNlIENvbnN0YW50U3RvcmFnZVBvaW50ZXI6CiAg
ICAgICAgIGNhc2UgTW92SGludDoKICAgICAgICAgY2FzZSBab21iaWVIaW50OgpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgJKHJldmlzaW9uIDE4
MjQzMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNTEsNyArMjUxLDYgQEAgYm9vbCBzYWZlVG9FeGVjdXRlKEFic3Ry
YWN0U3RhdGVUeXBlJiBzdAogICAgIGNhc2UgU3RvcmVCYXJyaWVyV2l0aE51bGxDaGVjazoKICAg
ICBjYXNlIEludmFsaWRhdGlvblBvaW50OgogICAgIGNhc2UgTm90aWZ5V3JpdGU6Ci0gICAgY2Fz
ZSBUeXBlZEFycmF5V2F0Y2hwb2ludDoKICAgICBjYXNlIENoZWNrSW5Cb3VuZHM6CiAgICAgY2Fz
ZSBDb25zdGFudFN0b3JhZ2VQb2ludGVyOgogICAgIGNhc2UgQ2hlY2s6CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJ
KHJldmlzaW9uIDE4MjQzMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQzMl82NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1MzMsOCArMzUzMyw3IEBAIHZv
aWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogCi0gICAgY2FzZSBBbGxvY2F0aW9uUHJvZmlsZVdhdGNocG9pbnQ6Ci0gICAgY2FzZSBU
eXBlZEFycmF5V2F0Y2hwb2ludDogeworICAgIGNhc2UgQWxsb2NhdGlvblByb2ZpbGVXYXRjaHBv
aW50OiB7CiAgICAgICAgIG5vUmVzdWx0KG5vZGUpOwogICAgICAgICBicmVhazsKICAgICB9Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2
NC5jcHAJKHJldmlzaW9uIDE4MjQzMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2MDgsOCArMzYwOCw3IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgYnJlYWs7
CiAgICAgfQogICAgICAgICAKLSAgICBjYXNlIEFsbG9jYXRpb25Qcm9maWxlV2F0Y2hwb2ludDoK
LSAgICBjYXNlIFR5cGVkQXJyYXlXYXRjaHBvaW50OiB7CisgICAgY2FzZSBBbGxvY2F0aW9uUHJv
ZmlsZVdhdGNocG9pbnQ6IHsKICAgICAgICAgbm9SZXN1bHQobm9kZSk7CiAgICAgICAgIGJyZWFr
OwogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwCShyZXZpc2lvbiAxODI0MzMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjI2OCw3ICsyMjY4
LDkgQEAgSklUQ29tcGlsZXI6Okp1bXAgU3BlY3VsYXRpdmVKSVQ6Omp1bXBGbwogewogICAgIGlm
IChub2RlLT5vcCgpID09IFB1dEJ5VmFsQWxpYXMpCiAgICAgICAgIHJldHVybiBKSVRDb21waWxl
cjo6SnVtcCgpOwotICAgIGlmIChKU0FycmF5QnVmZmVyVmlldyogdmlldyA9IG1faml0LmdyYXBo
KCkudHJ5R2V0Rm9sZGFibGVWaWV3Rm9yQ2hpbGQxKG5vZGUpKSB7CisgICAgSlNBcnJheUJ1ZmZl
clZpZXcqIHZpZXcgPSBtX2ppdC5ncmFwaCgpLnRyeUdldEZvbGRhYmxlVmlldygKKyAgICAgICAg
bV9zdGF0ZS5mb3JOb2RlKG1faml0LmdyYXBoKCkuY2hpbGQobm9kZSwgMCkpLm1fdmFsdWUsIG5v
ZGUtPmFycmF5TW9kZSgpKTsKKyAgICBpZiAodmlldykgewogICAgICAgICB1aW50MzJfdCBsZW5n
dGggPSB2aWV3LT5sZW5ndGgoKTsKICAgICAgICAgTm9kZSogaW5kZXhOb2RlID0gbV9qaXQuZ3Jh
cGgoKS5jaGlsZChub2RlLCAxKS5ub2RlKCk7CiAgICAgICAgIGlmIChpbmRleE5vZGUtPmlzSW50
MzJDb25zdGFudCgpICYmIGluZGV4Tm9kZS0+YXNVSW50MzIoKSA8IGxlbmd0aCkKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3RyZW5ndGhSZWR1Y3Rpb25QaGFzZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTdHJlbmd0aFJlZHVjdGlv
blBoYXNlLmNwcAkocmV2aXNpb24gMTgyNDMzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTdHJlbmd0aFJlZHVjdGlvblBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ2LDMz
ICsxNDYsNiBAQCBwcml2YXRlOgogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAK
LSAgICAgICAgY2FzZSBHZXRBcnJheUxlbmd0aDoKLSAgICAgICAgICAgIGlmIChKU0FycmF5QnVm
ZmVyVmlldyogdmlldyA9IG1fZ3JhcGgudHJ5R2V0Rm9sZGFibGVWaWV3Rm9yQ2hpbGQxKG1fbm9k
ZSkpCi0gICAgICAgICAgICAgICAgZm9sZFR5cGVkQXJyYXlQcm9wZXJ0eVRvQ29uc3RhbnQodmll
dywganNOdW1iZXIodmlldy0+bGVuZ3RoKCkpKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgCi0gICAgICAgIGNhc2UgR2V0VHlwZWRBcnJheUJ5dGVPZmZzZXQ6Ci0gICAgICAgICAg
ICBpZiAoSlNBcnJheUJ1ZmZlclZpZXcqIHZpZXcgPSBtX2dyYXBoLnRyeUdldEZvbGRhYmxlVmll
dyhtX25vZGUtPmNoaWxkMSgpLm5vZGUoKSkpCi0gICAgICAgICAgICAgICAgZm9sZFR5cGVkQXJy
YXlQcm9wZXJ0eVRvQ29uc3RhbnQodmlldywganNOdW1iZXIodmlldy0+Ynl0ZU9mZnNldCgpKSk7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIAotICAgICAgICBjYXNlIEdldEluZGV4
ZWRQcm9wZXJ0eVN0b3JhZ2U6Ci0gICAgICAgICAgICBpZiAoSlNBcnJheUJ1ZmZlclZpZXcqIHZp
ZXcgPSBtX2dyYXBoLnRyeUdldEZvbGRhYmxlVmlld0ZvckNoaWxkMShtX25vZGUpKSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKHZpZXctPm1vZGUoKSAhPSBGYXN0VHlwZWRBcnJheSkgewotICAgICAg
ICAgICAgICAgICAgICBwcmVwYXJlVG9Gb2xkVHlwZWRBcnJheSh2aWV3KTsKLSAgICAgICAgICAg
ICAgICAgICAgbV9ub2RlLT5jb252ZXJ0VG9Db25zdGFudFN0b3JhZ2VQb2ludGVyKHZpZXctPnZl
Y3RvcigpKTsKLSAgICAgICAgICAgICAgICAgICAgbV9jaGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
ICAgICAgICAgLy8gRklYTUU6IEl0IHdvdWxkIGJlIGF3ZXNvbWUgdG8gYmUgYWJsZSB0byBmb2xk
IHRoZSBwcm9wZXJ0eSBzdG9yYWdlIGZvcgotICAgICAgICAgICAgICAgICAgICAvLyB0aGVzZSBH
Qy1hbGxvY2F0ZWQgdHlwZWQgYXJyYXlzLiBGb3Igbm93IGl0IGRvZXNuJ3QgbWF0dGVyIGJlY2F1
c2UgdGhlCi0gICAgICAgICAgICAgICAgICAgIC8vIG1vc3QgY29tbW9uIHVzZS1jYXNlcyBmb3Ig
Y29uc3RhbnQgdHlwZWQgYXJyYXlzIGludm9sdmUgbGFyZ2UgYXJyYXlzIHdpdGgKLSAgICAgICAg
ICAgICAgICAgICAgLy8gYWxpYXNlZCBidWZmZXIgdmlld3MuCi0gICAgICAgICAgICAgICAgICAg
IC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjU0MjUKLSAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgIAogICAgICAgICBjYXNlIFZhbHVlUmVwOgogICAgICAgICBjYXNlIEludDUyUmVwOgogICAg
ICAgICBjYXNlIERvdWJsZVJlcDogewpAQCAtMjgzLDIyICsyNTYsNiBAQCBwcml2YXRlOgogICAg
ICAgICBjb252ZXJ0VG9JZGVudGl0eU92ZXJDaGlsZCgxKTsKICAgICB9CiAgICAgCi0gICAgdm9p
ZCBmb2xkVHlwZWRBcnJheVByb3BlcnR5VG9Db25zdGFudChKU0FycmF5QnVmZmVyVmlldyogdmll
dywgSlNWYWx1ZSBjb25zdGFudCkKLSAgICB7Ci0gICAgICAgIHByZXBhcmVUb0ZvbGRUeXBlZEFy
cmF5KHZpZXcpOwotICAgICAgICBtX2dyYXBoLmNvbnZlcnRUb0NvbnN0YW50KG1fbm9kZSwgY29u
c3RhbnQpOwotICAgICAgICBtX2NoYW5nZWQgPSB0cnVlOwotICAgIH0KLSAgICAKLSAgICB2b2lk
IHByZXBhcmVUb0ZvbGRUeXBlZEFycmF5KEpTQXJyYXlCdWZmZXJWaWV3KiB2aWV3KQotICAgIHsK
LSAgICAgICAgbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgKLSAgICAgICAgICAgIG1fbm9kZUlu
ZGV4LCBTcGVjTm9uZSwgVHlwZWRBcnJheVdhdGNocG9pbnQsIG1fbm9kZS0+b3JpZ2luLAotICAg
ICAgICAgICAgT3BJbmZvKHZpZXcpKTsKLSAgICAgICAgbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9k
ZSgKLSAgICAgICAgICAgIG1fbm9kZUluZGV4LCBTcGVjTm9uZSwgUGhhbnRvbSwgbV9ub2RlLT5v
cmlnaW4sIG1fbm9kZS0+Y2hpbGRyZW4pOwotICAgIH0KLSAgICAKICAgICB2b2lkIGhhbmRsZUNv
bW11dGF0aXZpdHkoKQogICAgIHsKICAgICAgICAgLy8gSWYgdGhlIHJpZ2h0IHNpZGUgaXMgYSBj
b25zdGFudCB0aGVuIHRoZXJlIGlzIG5vdGhpbmcgbGVmdCB0byBkby4KSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHV2F0Y2hwb2ludENvbGxlY3Rpb25QaGFzZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdXYXRjaHBvaW50Q29sbGVjdGlv
blBoYXNlLmNwcAkocmV2aXNpb24gMTgyNDMzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdXYXRjaHBvaW50Q29sbGVjdGlvblBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTIs
MTQgKzkyLDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKG1fbm9k
ZS0+YXJyYXlNb2RlKCkudHlwZSgpID09IEFycmF5OjpTdHJpbmcpCiAgICAgICAgICAgICAgICAg
aGFuZGxlU3RyaW5nR2V0QnlWYWwoKTsKLQotICAgICAgICAgICAgaWYgKEpTQXJyYXlCdWZmZXJW
aWV3KiB2aWV3ID0gbV9ncmFwaC50cnlHZXRGb2xkYWJsZVZpZXdGb3JDaGlsZDEobV9ub2RlKSkK
LSAgICAgICAgICAgICAgICBhZGRMYXppbHkodmlldyk7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgIAotICAgICAgICBjYXNlIFB1dEJ5VmFsOgotICAgICAgICAgICAgaWYgKEpTQXJy
YXlCdWZmZXJWaWV3KiB2aWV3ID0gbV9ncmFwaC50cnlHZXRGb2xkYWJsZVZpZXdGb3JDaGlsZDEo
bV9ub2RlKSkKLSAgICAgICAgICAgICAgICBhZGRMYXppbHkodmlldyk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIAogICAgICAgICBjYXNlIFN0cmluZ0NoYXJBdDoKQEAgLTEyMSwx
MCArMTEzLDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGFkZExhemlseShnbG9iYWxPYmplY3Qo
KS0+dmFySW5qZWN0aW9uV2F0Y2hwb2ludCgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgCi0gICAgICAgIGNhc2UgVHlwZWRBcnJheVdhdGNocG9pbnQ6Ci0gICAgICAgICAgICBh
ZGRMYXppbHkobV9ub2RlLT50eXBlZEFycmF5KCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgICAgICAKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CkBAIC0xNTQsMTAgKzE0Miw2IEBAIHByaXZhdGU6CiAgICAgewogICAgICAgICBtX2dyYXBoLndh
dGNocG9pbnRzKCkuYWRkTGF6aWx5KHNldCk7CiAgICAgfQotICAgIHZvaWQgYWRkTGF6aWx5KEpT
QXJyYXlCdWZmZXJWaWV3KiB2aWV3KQotICAgIHsKLSAgICAgICAgbV9ncmFwaC53YXRjaHBvaW50
cygpLmFkZExhemlseSh2aWV3KTsKLSAgICB9CiAgICAgCiAgICAgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCgpCiAgICAgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExD
YXBhYmlsaXRpZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMQ2FwYWJpbGl0aWVzLmNwcAkocmV2aXNpb24gMTgyNDMzKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTksNyAr
MTE5LDYgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIAogICAgIGNh
c2UgU3RyaW5nQ2hhckNvZGVBdDoKICAgICBjYXNlIEFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgog
ICAgIGNhc2UgUmVhbGxvY2F0ZVByb3BlcnR5U3RvcmFnZToKLSAgICBjYXNlIFR5cGVkQXJyYXlX
YXRjaHBvaW50OgogICAgIGNhc2UgR2V0VHlwZWRBcnJheUJ5dGVPZmZzZXQ6CiAgICAgY2FzZSBO
b3RpZnlXcml0ZToKICAgICBjYXNlIFN0b3JlQmFycmllcjoKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCShyZXZpc2lvbiAxODI0MzMp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtODQ2LDcgKzg0Niw2IEBAIHByaXZhdGU6CiAKICAgICAgICAgY2FzZSBQ
aGFudG9tTG9jYWw6CiAgICAgICAgIGNhc2UgTG9vcEhpbnQ6Ci0gICAgICAgIGNhc2UgVHlwZWRB
cnJheVdhdGNocG9pbnQ6CiAgICAgICAgIGNhc2UgQWxsb2NhdGlvblByb2ZpbGVXYXRjaHBvaW50
OgogICAgICAgICBjYXNlIE1vdkhpbnQ6CiAgICAgICAgIGNhc2UgWm9tYmllSGludDoKQEAgLTIx
MDUsOSArMjEwNCw5IEBAIHByaXZhdGU6CiAgICAgICAgIExCYXNpY0Jsb2NrIHdhc3RlZnVsQ2Fz
ZSA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgid2FzdGVmdWwgdHlwZWQgYXJyYXkiKSk7CiAgICAg
ICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiY29u
dGludWF0aW9uIGJyYW5jaCIpKTsKICAgICAgICAgCi0gICAgICAgIExWYWx1ZSBiYXNlQWRkcmVz
cyA9IG1fb3V0LmFkZFB0cihiYXNlUHRyLCBKU0FycmF5QnVmZmVyVmlldzo6b2Zmc2V0T2ZNb2Rl
KCkpOworICAgICAgICBMVmFsdWUgbW9kZSA9IG1fb3V0LmxvYWQzMihiYXNlUHRyLCBtX2hlYXBz
LkpTQXJyYXlCdWZmZXJWaWV3X21vZGUpOwogICAgICAgICBtX291dC5icmFuY2goCi0gICAgICAg
ICAgICBtX291dC5ub3RFcXVhbChiYXNlQWRkcmVzcyAsIG1fb3V0LmNvbnN0SW50UHRyKFdhc3Rl
ZnVsVHlwZWRBcnJheSkpLAorICAgICAgICAgICAgbV9vdXQubm90RXF1YWwobW9kZSwgbV9vdXQu
Y29uc3RJbnQzMihXYXN0ZWZ1bFR5cGVkQXJyYXkpKSwKICAgICAgICAgICAgIHVuc3VyZShzaW1w
bGVDYXNlKSwgdW5zdXJlKHdhc3RlZnVsQ2FzZSkpOwogCiAgICAgICAgIC8vIGJlZ2luIHNpbXBs
ZSBjYXNlICAgICAgICAKQEAgLTIxMjUsNyArMjEyNCw3IEBAIHByaXZhdGU6CiAgICAgICAgIExW
YWx1ZSBhcnJheUJ1ZmZlclB0ciA9IG1fb3V0LmxvYWRQdHIoYnV0dGVyZmx5UHRyLCBtX2hlYXBz
LkJ1dHRlcmZseV9hcnJheUJ1ZmZlcik7CiAgICAgICAgIExWYWx1ZSBkYXRhUHRyID0gbV9vdXQu
bG9hZFB0cihhcnJheUJ1ZmZlclB0ciwgbV9oZWFwcy5BcnJheUJ1ZmZlcl9kYXRhKTsKIAotICAg
ICAgICBWYWx1ZUZyb21CbG9jayB3YXN0ZWZ1bE91dCA9IG1fb3V0LmFuY2hvcihtX291dC5zdWIo
ZGF0YVB0ciwgdmVjdG9yUHRyKSk7ICAgICAgICAKKyAgICAgICAgVmFsdWVGcm9tQmxvY2sgd2Fz
dGVmdWxPdXQgPSBtX291dC5hbmNob3IobV9vdXQuc3ViKHZlY3RvclB0ciwgZGF0YVB0cikpOwog
CiAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKICAgICAgICAgbV9vdXQuYXBwZW5k
VG8oY29udGludWF0aW9uLCBsYXN0TmV4dCk7CkBAIC01Nzg2LDcgKzU3ODUsOSBAQCBwcml2YXRl
OgogICAgIAogICAgIExWYWx1ZSB0eXBlZEFycmF5TGVuZ3RoKEVkZ2UgYmFzZUVkZ2UsIEFycmF5
TW9kZSBhcnJheU1vZGUsIExWYWx1ZSBiYXNlKQogICAgIHsKLSAgICAgICAgaWYgKEpTQXJyYXlC
dWZmZXJWaWV3KiB2aWV3ID0gbV9ncmFwaC50cnlHZXRGb2xkYWJsZVZpZXcoYmFzZUVkZ2Uubm9k
ZSgpLCBhcnJheU1vZGUpKQorICAgICAgICBKU0FycmF5QnVmZmVyVmlldyogdmlldyA9IG1fZ3Jh
cGgudHJ5R2V0Rm9sZGFibGVWaWV3KAorICAgICAgICAgICAgbV9zdGF0ZS5mb3JOb2RlKGJhc2VF
ZGdlKS5tX3ZhbHVlLCBhcnJheU1vZGUpOworICAgICAgICBpZiAodmlldykKICAgICAgICAgICAg
IHJldHVybiBtX291dC5jb25zdEludDMyKHZpZXctPmxlbmd0aCgpKTsKICAgICAgICAgcmV0dXJu
IG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKGJhc2UsIG1faGVhcHMuSlNBcnJheUJ1ZmZlclZpZXdf
bGVuZ3RoKTsKICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L2ZvbGQtdHlwZWQtYXJyYXktcHJvcGVydGllcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2ZvbGQtdHlwZWQtYXJyYXktcHJvcGVydGllcy5qcwko
cmV2aXNpb24gMTgyNDMzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9m
b2xkLXR5cGVkLWFycmF5LXByb3BlcnRpZXMuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsMjkgKzEs
MzIgQEAKIHZhciBhID0gbmV3IEludDMyQXJyYXkobmV3IEFycmF5QnVmZmVyKDEwMCksIDQsIDEp
OwogCiBpZiAoYS5sZW5ndGggIT0gMSkKLSAgICB0aHJvdyAiRXJyb3I6IGJhZCBsZW5ndGg6ICIg
KyBhLmxlbmd0aDsKKyAgICB0aHJvdyAiRXJyb3I6IGJhZCBsZW5ndGggKHN0YXJ0KTogIiArIGEu
bGVuZ3RoOwogaWYgKGEuYnl0ZU9mZnNldCAhPSA0KQotICAgIHRocm93ICJFcnJvcjogYmFkIG9m
ZnNldDogIiArIGEuYnl0ZU9mZnNldDsKKyAgICB0aHJvdyAiRXJyb3I6IGJhZCBvZmZzZXQgKHN0
YXJ0KTogIiArIGEuYnl0ZU9mZnNldDsKIGlmIChhLmJ5dGVMZW5ndGggIT0gNCkKLSAgICB0aHJv
dyAiRXJyb3I6IGJhZCBieXRlIGxlbmd0aDogIiArIGEuYnl0ZUxlbmd0aDsKKyAgICB0aHJvdyAi
RXJyb3I6IGJhZCBieXRlIGxlbmd0aCAoc3RhcnQpOiAiICsgYS5ieXRlTGVuZ3RoOwogCi1mdW5j
dGlvbiBmb28oKSB7Ci0gICAgaWYgKGEubGVuZ3RoICE9IDEpCi0gICAgICAgIHRocm93ICJFcnJv
cjogYmFkIGxlbmd0aDogIiArIGEubGVuZ3RoOwotICAgIGlmIChhLmJ5dGVPZmZzZXQgIT0gNCkK
LSAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgb2Zmc2V0OiAiICsgYS5ieXRlT2Zmc2V0OwotICAg
IGlmIChhLmJ5dGVMZW5ndGggIT0gNCkKLSAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgYnl0ZSBs
ZW5ndGg6ICIgKyBhLmJ5dGVMZW5ndGg7CitmdW5jdGlvbiBmb28od2hlbikgeworICAgIHZhciB0
bXAgPSBhLmxlbmd0aDsKKyAgICBpZiAodG1wICE9IDEpCisgICAgICAgIHRocm93ICJFcnJvcjog
YmFkIGxlbmd0aCAoIiArIHdoZW4gKyAiKTogIiArIHRtcDsKKyAgICB0bXAgPSBhLmJ5dGVPZmZz
ZXQ7CisgICAgaWYgKHRtcCAhPSA0KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCBvZmZzZXQg
KCIgKyB3aGVuICsgIik6ICIgKyB0bXA7CisgICAgdG1wID0gYS5ieXRlTGVuZ3RoOworICAgIGlm
ICh0bXAgIT0gNCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgYnl0ZSBsZW5ndGggKCIgKyB3
aGVuICsgIik6ICIgKyB0bXA7CiB9CiAKIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwMDsgKytp
KQotICAgIGZvbygpOworICAgIGZvbygibG9vcCIpOwogCiB0cmFuc2ZlckFycmF5QnVmZmVyKGEu
YnVmZmVyKTsKIAogdmFyIGRpZFRocm93ID0gZmFsc2U7CiB0cnkgewotICAgIGZvbygpOworICAg
IGZvbygiYWZ0ZXIgdHJhbnNmZXIiKTsKIH0gY2F0Y2ggKGUpIHsKICAgICBkaWRUaHJvdyA9IHRy
dWU7CiB9CkBAIC0zMiw4ICszNSw4IEBAIGlmICghZGlkVGhyb3cpCiAgICAgdGhyb3cgIlNob3Vs
ZCBoYXZlIHRocm93bi4iOwogCiBpZiAoYS5sZW5ndGggIT0gMCkKLSAgICB0aHJvdyAiRXJyb3I6
IGJhZCBsZW5ndGg6ICIgKyBhLmxlbmd0aDsKKyAgICB0aHJvdyAiRXJyb3I6IGJhZCBsZW5ndGgg
KGVuZCk6ICIgKyBhLmxlbmd0aDsKIGlmIChhLmJ5dGVPZmZzZXQgIT0gMCkKLSAgICB0aHJvdyAi
RXJyb3I6IGJhZCBvZmZzZXQ6ICIgKyBhLmJ5dGVPZmZzZXQ7CisgICAgdGhyb3cgIkVycm9yOiBi
YWQgb2Zmc2V0IChlbmQpOiAiICsgYS5ieXRlT2Zmc2V0OwogaWYgKGEuYnl0ZUxlbmd0aCAhPSAw
KQotICAgIHRocm93ICJFcnJvcjogYmFkIGJ5dGUgbGVuZ3RoOiAiICsgYS5ieXRlTGVuZ3RoOwor
ICAgIHRocm93ICJFcnJvcjogYmFkIGJ5dGUgbGVuZ3RoIChlbmQpOiAiICsgYS5ieXRlTGVuZ3Ro
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90eXBlZC1hcnJheS1i
eXRlLW9mZnNldC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL3R5cGVkLWFycmF5LWJ5dGUtb2Zmc2V0LmpzCShyZXZpc2lvbiAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy90eXBlZC1hcnJheS1ieXRlLW9mZnNldC5qcwko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE3IEBACitmdW5jdGlvbiBmb28oYXJyYXkpIHsKKyAg
ICByZXR1cm4gYXJyYXkuYnl0ZU9mZnNldDsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2
YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhuZXcgSW50
MzJBcnJheSgxMDApKTsKKyAgICBpZiAocmVzdWx0ICE9IDApCisgICAgICAgIHRocm93ICJFcnJv
cjogYmFkIHJlc3VsdCBmb3IgZmFzdCB0eXBlZCBhcnJheTogIiArIHJlc3VsdDsKKyAgICByZXN1
bHQgPSBmb28obmV3IEludDMyQXJyYXkoMTAwMDAwKSk7CisgICAgaWYgKHJlc3VsdCAhPSAwKQor
ICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQgZm9yIGJpZyB0eXBlZCBhcnJheTogIiAr
IHJlc3VsdDsKKyAgICByZXN1bHQgPSBmb28obmV3IEludDMyQXJyYXkobmV3IEFycmF5QnVmZmVy
KDEwMCksIDQsIDEpKTsKKyAgICBpZiAocmVzdWx0ICE9IDQpCisgICAgICAgIHRocm93ICJFcnJv
cjogYmFkIHJlc3VsdCBmb3Igd2FzdGVmdWwgdHlwZWQgYXJyYXk6ICIgKyByZXN1bHQ7Cit9Cg==
</data>
<flag name="review"
          id="275106"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>