<?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>122931</bug_id>
          
          <creation_ts>2013-10-16 17:38:21 -0700</creation_ts>
          <short_desc>Transition cti_op_throw and cti_vm_throw to a JIT operation</short_desc>
          <delta_ts>2013-10-17 11:11:10 -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>122758</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Saboff">msaboff</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>940603</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2013-10-16 17:38:21 -0700</bug_when>
    <thetext>Change cti_op_throw to be a JIT operation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940665</commentid>
    <comment_count>1</comment_count>
      <attachid>214424</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2013-10-17 00:18:02 -0700</bug_when>
    <thetext>Created attachment 214424
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940772</commentid>
    <comment_count>2</comment_count>
      <attachid>214424</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-10-17 07:26:35 -0700</bug_when>
    <thetext>Comment on attachment 214424
Patch

Why doesn&apos;t this just have the code for op_throw call operationDoThrow directly and then perform the jump from JIT code?  Seems like that would be an easier design.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940820</commentid>
    <comment_count>3</comment_count>
      <attachid>214468</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2013-10-17 10:23:11 -0700</bug_when>
    <thetext>Created attachment 214468
Updated patch

(In reply to comment #2)
&gt; (From update of attachment 214424 [details])
&gt; Why doesn&apos;t this just have the code for op_throw call operationDoThrow directly and then perform the jump from JIT code?  Seems like that would be an easier design.

Made this suggested change.

Also, since all cti_stubs that had exception checks before returning have been eliminated, I removed cti_vm_throw and it&apos;s caller ctiVMThrowTrampoline().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940855</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2013-10-17 11:11:10 -0700</bug_when>
    <thetext>Committed r157581: &lt;http://trac.webkit.org/changeset/157581&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214424</attachid>
            <date>2013-10-17 00:18:02 -0700</date>
            <delta_ts>2013-10-17 10:23:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>122931.patch</filename>
            <type>text/plain</type>
            <size>14675</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU3NTU4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBA
CisyMDEzLTEwLTE2ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAg
ICAgIFRyYW5zaXRpb24gY3RpX29wX3Rocm93IHRvIGEgSklUIG9wZXJhdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyOTMxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZWQgY3RpX29wX3Rocm93
IHRvIG9wZXJhdGlvbkRvVGhyb3cuICBBbHNvIGFkZGVkIGFzc2VtYmx5IHN0dWIgb3BlcmF0aW9u
VGhyb3cgYXMgYW4gZWFzeQorICAgICAgICB3YXkgb2YganVtcGluZyB0byB0aGUgcmV0dXJuIGFk
ZHJlc3Mgb2Ygb3BlcmF0aW9uRG9UaHJvdy4gIFRlc3RlZCBYODZfNjQgYW5kIFg4NiBzdHVicy4K
KyAgICAgICAgVGhlIHJlbWFpbmluZyBzdHVicyBhcmUgc3BlY3VsYXRpdmUgY2hhbmdlcy4KKwor
ICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29w
X3Rocm93KToKKyAgICAgICAgKiBqaXQvSklUT3Bjb2RlczMyXzY0LmNwcDoKKyAgICAgICAgKEpT
Qzo6SklUOjplbWl0X29wX3Rocm93KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2NhdGNo
KToKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChKU0M6Om9wZXJh
dGlvblRocm93KToKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5oOgorICAgICAgICAqIGpp
dC9KSVRTdHVicy5jcHA6CisgICAgICAgICogaml0L0pJVFN0dWJzLmg6CisKIDIwMTMtMTAtMTYg
IEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBsaWJsbHZtRm9ySlND
IHNob3VsZG4ndCBjYWxsIGV4aXQoMSkgb24gcmVwb3J0X2ZhdGFsX2Vycm9yKCkKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAJKHJldmlzaW9u
IDE1NzU0NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtODEyLDEzICs4MTIsMTEgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bf
bmVxX251bGwoSW5zdHJ1Y3Rpb24qIAogCiB2b2lkIEpJVDo6ZW1pdF9vcF90aHJvdyhJbnN0cnVj
dGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewotICAgIHVuc2lnbmVkIGV4Y2VwdGlvbiA9IGN1
cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7Ci0gICAgSklUU3R1YkNhbGwgc3R1YkNhbGwo
dGhpcywgY3RpX29wX3Rocm93KTsKLSAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChleGNlcHRpb24p
OwotICAgIHN0dWJDYWxsLmNhbGwoKTsKKyAgICBlbWl0TG9hZChjdXJyZW50SW5zdHJ1Y3Rpb25b
MV0udS5vcGVyYW5kLCByZWdUMSwgcmVnVDApOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9u
VGhyb3csIHJlZ1QxLCByZWdUMCk7CiAKICNpZm5kZWYgTkRFQlVHCi0gICAgLy8gY3RpX29wX3Ro
cm93IGFsd2F5cyBjaGFuZ2VzIGl0J3MgcmV0dXJuIGFkZHJlc3MsCisgICAgLy8gb3BlcmF0aW9u
VGhyb3cgYWx3YXlzIGNoYW5nZXMgaXQncyByZXR1cm4gYWRkcmVzcywKICAgICAvLyB0aGlzIHBv
aW50IGluIHRoZSBjb2RlIHNob3VsZCBuZXZlciBiZSByZWFjaGVkLgogICAgIGJyZWFrcG9pbnQo
KTsKICNlbmRpZgpAQCAtOTcxLDEwICs5NjksMTAgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHVzaF9u
YW1lX3Njb3BlKEluc3RydQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9jYXRjaChJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uKQogewotICAgIC8vIGN0aV9vcF90aHJvdyByZXR1cm5zIHRoZSBj
YWxsRnJhbWUgZm9yIHRoZSBoYW5kbGVyLgorICAgIC8vIG9wZXJhdGlvblRocm93IHJldHVybnMg
dGhlIGNhbGxGcmFtZSBmb3IgdGhlIGhhbmRsZXIuCiAgICAgbW92ZShyZWdUMCwgY2FsbEZyYW1l
UmVnaXN0ZXIpOwogCi0gICAgLy8gTm93IHN0b3JlIHRoZSBleGNlcHRpb24gcmV0dXJuZWQgYnkg
Y3RpX29wX3Rocm93LgorICAgIC8vIE5vdyBzdG9yZSB0aGUgZXhjZXB0aW9uIHJldHVybmVkIGJ5
IG9wZXJhdGlvblRocm93LgogICAgIGxvYWRQdHIoQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3Rl
ciwgT0JKRUNUX09GRlNFVE9GKHN0cnVjdCBKSVRTdGFja0ZyYW1lLCB2bSkpLCByZWdUMyk7CiAg
ICAgbG9hZDMyKEFkZHJlc3MocmVnVDMsIFZNOjpleGNlcHRpb25PZmZzZXQoKSArIE9CSkVDVF9P
RkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy5wYXlsb2FkKSksIHJlZ1QwKTsKICAgICBsb2FkMzIo
QWRkcmVzcyhyZWdUMywgVk06OmV4Y2VwdGlvbk9mZnNldCgpICsgT0JKRUNUX09GRlNFVE9GKEpT
VmFsdWUsIHUuYXNCaXRzLnRhZykpLCByZWdUMSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE9wY29kZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUT3Bjb2Rlcy5jcHAJKHJldmlzaW9uIDE1NzU0NCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4MywxMiArNDgz
LDExIEBAIHZvaWQgSklUOjplbWl0X29wX2JpdG9yKEluc3RydWN0aW9uKiBjdXIKIAogdm9pZCBK
SVQ6OmVtaXRfb3BfdGhyb3coSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKLSAg
ICBKSVRTdHViQ2FsbCBzdHViQ2FsbCh0aGlzLCBjdGlfb3BfdGhyb3cpOwotICAgIHN0dWJDYWxs
LmFkZEFyZ3VtZW50KGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIHJlZ1QyKTsKLSAg
ICBzdHViQ2FsbC5jYWxsKCk7Ci0gICAgQVNTRVJUKHJlZ1QwID09IHJldHVyblZhbHVlUmVnaXN0
ZXIpOworICAgIGVtaXRHZXRWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUu
b3BlcmFuZCwgcmVnVDApOworICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uVGhyb3csIHJlZ1Qw
KTsKKwogI2lmbmRlZiBOREVCVUcKLSAgICAvLyBjdGlfb3BfdGhyb3cgYWx3YXlzIGNoYW5nZXMg
aXQncyByZXR1cm4gYWRkcmVzcywKKyAgICAvLyBvcGVyYXRpb25UaHJvdyBhbHdheXMgY2hhbmdl
cyBpdCdzIHJldHVybiBhZGRyZXNzLAogICAgIC8vIHRoaXMgcG9pbnQgaW4gdGhlIGNvZGUgc2hv
dWxkIG5ldmVyIGJlIHJlYWNoZWQuCiAgICAgYnJlYWtwb2ludCgpOwogI2VuZGlmCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAJKHJldmlzaW9uIDE1
NzU0NCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE0MTIsNiArMTQxMiwxNiBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUHV0VG9TY29wZShFCiAgICAgfQogfQogCitKSVRIYW5kbGVyRW5jb2RlZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkRvVGhyb3coRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkRXhjZXB0aW9uVmFsdWUpCit7CisgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CisKKyAg
ICBKU1ZhbHVlIGV4Y2VwdGlvblZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRFeGNlcHRp
b25WYWx1ZSk7CisgICAgdm0tPnRocm93RXhjZXB0aW9uKGV4ZWMsIGV4Y2VwdGlvblZhbHVlKTsK
KyAgICBFeGNlcHRpb25IYW5kbGVyIGhhbmRsZXIgPSBnZW5lcmljVW53aW5kKHZtLCBleGVjLCBl
eGNlcHRpb25WYWx1ZSk7CisgICAgcmV0dXJuIGRmZ0hhbmRsZXJFbmNvZGVkKGhhbmRsZXIuY2Fs
bEZyYW1lLCBoYW5kbGVyLmNhdGNoUm91dGluZSk7Cit9CisKIEpJVEhhbmRsZXJFbmNvZGVkIEpJ
VF9PUEVSQVRJT04gbG9va3VwRXhjZXB0aW9uSGFuZGxlcihFeGVjU3RhdGUqIGV4ZWMpCiB7CiAg
ICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CkBAIC0xNDM5LDYgKzE0NDksMTYgQEAgZXh0ZXJuICJD
IiBFbmNvZGVkSlNWYWx1ZSBIT1NUX0NBTExfUkVUVQogCiAjaWYgQ09NUElMRVIoR0NDKSAmJiBD
UFUoWDg2XzY0KQogYXNtICgKKyIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKG9wZXJhdGlvblRocm93
KSAiXG4iCitISURFX1NZTUJPTChvcGVyYXRpb25UaHJvdykgIlxuIgorU1lNQk9MX1NUUklORyhv
cGVyYXRpb25UaHJvdykgIjoiICJcbiIKKyAgICAicG9wcSAlcmF4IiAiXG4iIC8vIFRocm93IGF3
YXkgZXhpc3RpbmcgcmV0dXJuIGFkZHJlc3MKKyAgICAiY2FsbCAiIExPQ0FMX1JFRkVSRU5DRShv
cGVyYXRpb25Eb1Rocm93KSAiXG4iCisgICAgLy8gV2hlbiBvcGVyYXRpb25Eb1Rocm93IHJldHVy
bnMsIHJheCBoYXMgY2FsbEZyYW1lIGFuZCByZHggaGFzIGhhbmRsZXIgYWRkcmVzcworICAgICJq
bXAgKiVyZHgiICJcbiIKKyk7CisKK2FzbSAoCiAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhnZXRI
b3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCiBISURFX1NZTUJPTChnZXRIb3N0Q2FsbFJldHVyblZh
bHVlKSAiXG4iCiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICI6IiAiXG4i
CkBAIC0xNDQ5LDYgKzE0NjksMTYgQEAgU1lNQk9MX1NUUklORyhnZXRIb3N0Q2FsbFJldHVyblZh
bHVlKSAiOgogCiAjZWxpZiBDT01QSUxFUihHQ0MpICYmIENQVShYODYpCiBhc20gKAorIi5nbG9i
bCAiIFNZTUJPTF9TVFJJTkcob3BlcmF0aW9uVGhyb3cpICJcbiIKK0hJREVfU1lNQk9MKG9wZXJh
dGlvblRocm93KSAiXG4iCitTWU1CT0xfU1RSSU5HKG9wZXJhdGlvblRocm93KSAiOiIgIlxuIgor
ICAgICAicG9wbCAlZWF4IiAiXG4iIC8vIFRocm93IGF3YXkgZXhpc3RpbmcgcmV0dXJuIGFkZHJl
c3MKKyAgICAgImNhbGwgIiBMT0NBTF9SRUZFUkVOQ0Uob3BlcmF0aW9uRG9UaHJvdykgIlxuIgor
ICAgICAvLyBXaGVuIG9wZXJhdGlvbkRvVGhyb3cgcmV0dXJucywgZWF4IGhhcyBjYWxsRnJhbWUg
YW5kIGVkeCBoYXMgaGFuZGxlciBhZGRyZXNzCisgICAgICJqbXAgKiVlZHgiICJcbiIKKyk7CisK
K2FzbSAoCiAiLnRleHQiICJcbiIgXAogIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoZ2V0SG9zdENh
bGxSZXR1cm5WYWx1ZSkgIlxuIgogSElERV9TWU1CT0woZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkg
IlxuIgpAQCAtMTQ2Miw2ICsxNDkyLDE5IEBAIFNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1
cm5WYWx1ZSkgIjoKIGFzbSAoCiAiLnRleHQiICJcbiIKICIuYWxpZ24gMiIgIlxuIgorIi5nbG9i
bCAiIFNZTUJPTF9TVFJJTkcob3BlcmF0aW9uVGhyb3cpICJcbiIKK0hJREVfU1lNQk9MKG9wZXJh
dGlvblRocm93KSAiXG4iCisiLnRodW1iIiAiXG4iCisiLnRodW1iX2Z1bmMgIiBUSFVNQl9GVU5D
X1BBUkFNKG9wZXJhdGlvblRocm93KSAiXG4iCitTWU1CT0xfU1RSSU5HKG9wZXJhdGlvblRocm93
KSAiOiIgIlxuIgorICAgICJibCAiIExPQ0FMX1JFRkVSRU5DRShvcGVyYXRpb25Eb1Rocm93KSAi
XG4iCisgICAgLy8gV2hlbiBvcGVyYXRpb25Eb1Rocm93IHJldHVybnMsIHIwIGhhcyBjYWxsRnJh
bWUgYW5kIHIxIGhhcyBoYW5kbGVyIGFkZHJlc3MKKyAgICAiYnggcjEiICJcbiIKKyk7CisKK2Fz
bSAoCisiLnRleHQiICJcbiIKKyIuYWxpZ24gMiIgIlxuIgogIi5nbG9ibCAiIFNZTUJPTF9TVFJJ
TkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIlxuIgogSElERV9TWU1CT0woZ2V0SG9zdENhbGxS
ZXR1cm5WYWx1ZSkgIlxuIgogIi50aHVtYiIgIlxuIgpAQCAtMTQ3NSw2ICsxNTE4LDE3IEBAIFNZ
TUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoKICNlbGlmIENPTVBJTEVSKEdD
QykgJiYgQ1BVKEFSTV9UUkFESVRJT05BTCkKIGFzbSAoCiAiLnRleHQiICJcbiIKKyIuZ2xvYmwg
IiBTWU1CT0xfU1RSSU5HKG9wZXJhdGlvblRocm93KSAiXG4iCitISURFX1NZTUJPTChvcGVyYXRp
b25UaHJvdykgIlxuIgorSU5MSU5FX0FSTV9GVU5DVElPTihvcGVyYXRpb25UaHJvdykKK1NZTUJP
TF9TVFJJTkcob3BlcmF0aW9uVGhyb3cpICI6IiAiXG4iCisgICAgImJsICIgU1lNQk9MX1NUUklO
RyhvcGVyYXRpb25Eb1Rocm93KSAiXG4iCisgICAgLy8gV2hlbiBvcGVyYXRpb25Eb1Rocm93IHJl
dHVybnMsIHIwIGhhcyBjYWxsRnJhbWUgYW5kIHIxIGhhcyBoYW5kbGVyIGFkZHJlc3MKKyAgICAi
YnggcjEiICJcbiIKKyk7CisKK2FzbSAoCisiLnRleHQiICJcbiIKICIuZ2xvYmwgIiBTWU1CT0xf
U1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICJcbiIKIEhJREVfU1lNQk9MKGdldEhvc3RD
YWxsUmV0dXJuVmFsdWUpICJcbiIKIElOTElORV9BUk1fRlVOQ1RJT04oZ2V0SG9zdENhbGxSZXR1
cm5WYWx1ZSkKQEAgLTE0ODgsMTcgKzE1NDIsNTIgQEAgU1lNQk9MX1NUUklORyhnZXRIb3N0Q2Fs
bFJldHVyblZhbHVlKSAiOgogYXNtICgKICIudGV4dCIgIlxuIgogIi5hbGlnbiAyIiAiXG4iCisi
Lmdsb2JsICIgU1lNQk9MX1NUUklORyhvcGVyYXRpb25UaHJvdykgIlxuIgorSElERV9TWU1CT0wo
b3BlcmF0aW9uVGhyb3cpICJcbiIKK1NZTUJPTF9TVFJJTkcob3BlcmF0aW9uVGhyb3cpICI6IiAi
XG4iCisgICAgImJsICIgTE9DQUxfUkVGRVJFTkNFKG9wZXJhdGlvbkRvVGhyb3cpICJcbiIKKyAg
ICAvLyBXaGVuIG9wZXJhdGlvbkRvVGhyb3cgcmV0dXJucywgeDAgaGFzIGNhbGxGcmFtZSBhbmQg
eDEgaGFzIGhhbmRsZXIgYWRkcmVzcworICAgICJiciB4MSIgIlxuIgorKTsKKworYXNtICgKKyIu
dGV4dCIgIlxuIgorIi5hbGlnbiAyIiAiXG4iCiAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhnZXRI
b3N0Q2FsbFJldHVyblZhbHVlKSAiXG4iCiBISURFX1NZTUJPTChnZXRIb3N0Q2FsbFJldHVyblZh
bHVlKSAiXG4iCiBTWU1CT0xfU1RSSU5HKGdldEhvc3RDYWxsUmV0dXJuVmFsdWUpICI6IiAiXG4i
CiAgICAgImxkdXIgeDI1LCBbeDI1LCAjLTQwXSIgIlxuIgotICAgICAibW92IHgwLCB4MjUiICJc
biIKLSAgICAgImIgIiBMT0NBTF9SRUZFUkVOQ0UoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZVdpdGhF
eGVjU3RhdGUpICJcbiIKKyAgICAibW92IHgwLCB4MjUiICJcbiIKKyAgICAiYiAiIExPQ0FMX1JF
RkVSRU5DRShnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSkgIlxuIgogKTsKIAog
I2VsaWYgQ09NUElMRVIoR0NDKSAmJiBDUFUoTUlQUykKIGFzbSAoCiAiLnRleHQiICJcbiIKKyIu
Z2xvYmwgIiBTWU1CT0xfU1RSSU5HKG9wZXJhdGlvblRocm93KSAiXG4iCitISURFX1NZTUJPTChv
cGVyYXRpb25UaHJvdykgIlxuIgorU1lNQk9MX1NUUklORyhvcGVyYXRpb25UaHJvdykgIjoiICJc
biIKK0xPQURfRlVOQ1RJT05fVE9fVDkob3BlcmF0aW9uVGhyb3cpCisjaWYgV1RGX01JUFNfUElD
CisgICAgIi5zZXQgbWFjcm8iICJcbiIKKyAgICAiLmNwbG9hZCAkMjUiICJcbiIKKyAgICAibGEg
ICAgJDI1LCIgU1lNQk9MX1NUUklORyhvcGVyYXRpb25Eb1Rocm93KSAiXG4iCisgICAgIi5zZXQg
bm9tYWNybyIgIlxuIgorICAgICJiYWwgIiBTWU1CT0xfU1RSSU5HKG9wZXJhdGlvbkRvVGhyb3cp
ICJcbiIKKyAgICAibm9wIiAiXG4iIFwKKyNlbHNlCisgICAgImphbCAiIFNZTUJPTF9TVFJJTkco
b3BlcmF0aW9uRG9UaHJvdykgIlxuIgorI2VuZGlmCisgICAgLy8gV2hlbiBvcGVyYXRpb25Eb1Ro
cm93IHJldHVybnMsIHYwIGhhcyBjYWxsRnJhbWUgYW5kIHYxIGhhcyBoYW5kbGVyIGFkZHJlc3MK
KyAgICAibW92ZSAgJDMxLCQzIiAiXG4iCisgICAgImpyICAgICQzMSIgIlxuIgorICAgICIuc2V0
IHJlb3JkZXIiICJcbiIKKyAgICAiLnNldCBtYWNybyIgIlxuIgorICAgICIuZW5kICIgU1lNQk9M
X1NUUklORyhvcGVyYXRpb25UaHJvdykgIlxuIgorKTsKKworYXNtICgKKyIudGV4dCIgIlxuIgog
Ii5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIlxuIgogSElE
RV9TWU1CT0woZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIlxuIgogU1lNQk9MX1NUUklORyhnZXRI
b3N0Q2FsbFJldHVyblZhbHVlKSAiOiIgIlxuIgpAQCAtMTUwOSw2ICsxNTk4LDIzIEBAIFNZTUJP
TF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoKICk7CiAKICNlbGlmIENPTVBJTEVS
KEdDQykgJiYgQ1BVKFNINCkKK2FzbSB2b2xhdGlsZSAoCisiLmdsb2JsICIgU1lNQk9MX1NUUklO
RyhvcGVyYXRpb25UaHJvdykgIlxuIgorSElERV9TWU1CT0wob3BlcmF0aW9uVGhyb3cpICJcbiIK
K1NZTUJPTF9TVFJJTkcob3BlcmF0aW9uVGhyb3cpICI6IiAiXG4iCisgICAgIm1vdi5sIC5MMiIg
U1lNQk9MX1NUUklORyhvcGVyYXRpb25Eb1Rocm93KSAiLHIwIiAiXG4iCisgICAgIm1vdi5sIEAo
cjAscjEyKSxyMTEiICJcbiIKKyAgICAianNyIEByMTEiICJcbiIKKyAgICAvLyBXaGVuIG9wZXJh
dGlvbkRvVGhyb3cgcmV0dXJucywgcjAgaGFzIGNhbGxGcmFtZSBhbmQgcjEgaGFzIGhhbmRsZXIg
YWRkcmVzcworICAgICJub3AiICJcbiIKKyAgICAibGRzIHIxLCBwciIgIlxuIgorICAgICJydHMi
ICJcbiIKKyAgICAibm9wIiAiXG4iCisgICAgIi5hbGlnbiAyIiAiXG4iCisgICAgIi5MMiIgU1lN
Qk9MX1NUUklORyhvcGVyYXRpb25Eb1Rocm93KSAiOi5sb25nICIgU1lNQk9MX1NUUklORyhvcGVy
YXRpb25Eb1Rocm93KSAiQEdPVCBcbiIKKyk7CisKKwogYXNtICgKICIudGV4dCIgIlxuIgogIi5n
bG9ibCAiIFNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIlxuIgpAQCAtMTUy
NSw3ICsxNjMxLDIzIEBAIFNZTUJPTF9TVFJJTkcoZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSkgIjoK
ICk7CiAKICNlbGlmIENPTVBJTEVSKE1TVkMpICYmIENQVShYODYpCi1leHRlcm4gIkMiIHsKKyAg
ICBfX2RlY2xzcGVjKG5ha2VkKSB2b2lkIEhPU1RfQ0FMTF9SRVRVUk5fVkFMVUVfT1BUSU9OIG9w
ZXJhdGlvblRocm93KCkKKyAgICB7CisgICAgICAgIF9fYXNtIHsKKyAgICAgICAgICAgIHN1YiBy
c3AsIDE2CisgICAgICAgICAgICBwdXNoIHJkeCAgICAgICAgOyBNb3ZlIGFyZ3MgdG8gdGhlIHJp
Z2h0IG1ha2Ugcm9vbSBmb3IgaW1wbGljaXQgcmV0dXJuIGJ1ZmZlciBmb3IgYXJnMAorICAgICAg
ICAgICAgbW92IHJkeCwgcmN4CisgICAgICAgICAgICBsZWEgcmN4LCBbcnNwKzRdCisgICAgICAg
ICAgICBjYWxsIG9wZXJhdGlvbkRvVGhyb3cKKyAgICAgICAgICAgIDsgV2hlbiBvcGVyYXRpb25E
b1Rocm93IHJldHVybnMsIHJheCBwb2ludHMgdG8gdGhlIG1lbW9yeSB3ZSBhbGxvY2F0ZWQgb24g
c3RhY2sKKyAgICAgICAgICAgIDsgSXQgY29udGFpbnMgdGhlIGNhbGxGcmFtZSBhbmQgaGFuZGxl
ciBhZGRyZXNzCisgICAgICAgICAgICBwb3AgcmF4ICAgICAgICAgOyBUaHJvdyBhd2F5IGV4Y2Vw
dGlvbiBKU1ZhbHVlCisgICAgICAgICAgICBwb3AgcmF4ICAgICAgICAgOyBjYWxsRnJhbWUKKyAg
ICAgICAgICAgIHBvcCByZHggICAgICAgICA7IGhhbmRsZXIKKyAgICAgICAgICAgIGptcCByZHgK
KyAgICAgICAgfQorICAgIH0KKyAgICAKICAgICBfX2RlY2xzcGVjKG5ha2VkKSBFbmNvZGVkSlNW
YWx1ZSBIT1NUX0NBTExfUkVUVVJOX1ZBTFVFX09QVElPTiBnZXRIb3N0Q2FsbFJldHVyblZhbHVl
KCkKICAgICB7CiAgICAgICAgIF9fYXNtIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3BlcmF0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3BlcmF0aW9ucy5oCShyZXZpc2lvbiAxNTc1NDQpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBA
QAogI2RlZmluZSBKSVRPcGVyYXRpb25zX2gKIAogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgorI2lu
Y2x1ZGUgIkpJVEV4Y2VwdGlvbnMuaCIKICNpbmNsdWRlICJKU0FycmF5LmgiCiAjaW5jbHVkZSAi
SlNDSlNWYWx1ZS5oIgogI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyLmgiCkBAIC0yNTgsNiArMjU5
LDcgQEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk5ld09iamVjdAogRW5jb2RlZEpT
VmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdSZWdleHAoRXhlY1N0YXRlKiwgdm9pZCop
IFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25IYW5kbGVXYXRjaGRv
Z1RpbWVyKEV4ZWNTdGF0ZSopIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBvcGVy
YXRpb25UaHJvd1N0YXRpY0Vycm9yKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90
KSBXVEZfSU5URVJOQUw7Cit2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVGhyb3coRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJBVElPTiBv
cGVyYXRpb25EZWJ1ZyhFeGVjU3RhdGUqLCBpbnQzMl90KSBXVEZfSU5URVJOQUw7CiAjaWYgRU5B
QkxFKERGR19KSVQpCiBjaGFyKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9wdGltaXplKEV4ZWNT
dGF0ZSosIGludDMyX3QpIFdURl9JTlRFUk5BTDsKQEAgLTI5MSw2ICsyOTMsOCBAQCBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblJlCiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkdldEZyb21TY29wZShFeGVjU3RhdGUqLCBJbnN0cnVjdGlvbiogYnl0
ZWNvZGVQQykgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dFRv
U2NvcGUoRXhlY1N0YXRlKiwgSW5zdHJ1Y3Rpb24qIGJ5dGVjb2RlUEMpIFdURl9JTlRFUk5BTDsK
IAorSklUSGFuZGxlckVuY29kZWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25Eb1Rocm93KEV4ZWNT
dGF0ZSosIEVuY29kZWRKU1ZhbHVlKSBSRUZFUkVOQ0VEX0ZST01fQVNNIFdURl9JTlRFUk5BTDsK
KwogfSAvLyBleHRlcm4gIkMiCiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAJKHJldmlzaW9uIDE1NzU0NCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTEsMjIg
KzI1MSw2IEBAIHByaXZhdGU6CiAgICAgSlNWYWx1ZSBtX2NhbGxlZTsKIH07CiAKLS8vIEhlbHBl
ciBmdW5jdGlvbiBmb3IgSklUIHN0dWJzIHRoYXQgbWF5IHRocm93IGFuIGV4Y2VwdGlvbiBpbiB0
aGUgbWlkZGxlIG9mCi0vLyBwcm9jZXNzaW5nIGEgZnVuY3Rpb24gY2FsbC4gVGhpcyBmdW5jdGlv
biByb2xscyBiYWNrIHRoZSBzdGFjayB0bwotLy8gb3VyIGNhbGxlciwgc28gZXhjZXB0aW9uIHBy
b2Nlc3NpbmcgY2FuIHByb2NlZWQgZnJvbSBhIHZhbGlkIHN0YXRlLgotdGVtcGxhdGU8dHlwZW5h
bWUgVD4gc3RhdGljIFQgdGhyb3dFeGNlcHRpb25Gcm9tT3BDYWxsKEpJVFN0YWNrRnJhbWUmIGpp
dFN0YWNrRnJhbWUsIENhbGxGcmFtZSogbmV3Q2FsbEZyYW1lLCBSZXR1cm5BZGRyZXNzUHRyJiBy
ZXR1cm5BZGRyZXNzU2xvdCwgRXJyb3JGdW5jdG9yKiBjcmVhdGVFcnJvciA9IDApCi17Ci0gICAg
Q2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBuZXdDYWxsRnJhbWUtPmNhbGxlckZyYW1lKCktPnJlbW92
ZUhvc3RDYWxsRnJhbWVGbGFnKCk7Ci0gICAgaml0U3RhY2tGcmFtZS5jYWxsRnJhbWUgPSBjYWxs
RnJhbWU7Ci0gICAgQVNTRVJUKGNhbGxGcmFtZSk7Ci0gICAgY2FsbEZyYW1lLT52bSgpLnRvcENh
bGxGcmFtZSA9IGNhbGxGcmFtZTsKLSAgICBpZiAoY3JlYXRlRXJyb3IpCi0gICAgICAgIGNhbGxG
cmFtZS0+dm0oKS50aHJvd0V4Y2VwdGlvbihjYWxsRnJhbWUsICgqY3JlYXRlRXJyb3IpKGNhbGxG
cmFtZSkpOwotICAgIEFTU0VSVChjYWxsRnJhbWUtPnZtKCkuZXhjZXB0aW9uKCkpOwotICAgIHJl
dHVyblRvVGhyb3dUcmFtcG9saW5lKCZjYWxsRnJhbWUtPnZtKCksIFJldHVybkFkZHJlc3NQdHIo
bmV3Q2FsbEZyYW1lLT5yZXR1cm5QQygpKSwgcmV0dXJuQWRkcmVzc1Nsb3QpOwotICAgIHJldHVy
biBUKCk7Ci19Ci0KIC8vIElmIHRoZSBDUFUgc3BlY2lmaWMgaGVhZGVyIGRvZXMgbm90IHByb3Zp
ZGUgYW4gaW1wbGVtZW50YXRpb24sIHVzZSB0aGUgZGVmYXVsdCBvbmUgaGVyZS4KICNpZm5kZWYg
REVGSU5FX1NUVUJfRlVOQ1RJT04KICNkZWZpbmUgREVGSU5FX1NUVUJfRlVOQ1RJT04ocnR5cGUs
IG9wKSBydHlwZSBKSVRfU1RVQiBjdGlfIyNvcChTVFVCX0FSR1NfREVDTEFSQVRJT04pCkBAIC00
OTMsMjggKzQ3Nyw2IEBAIERFRklORV9TVFVCX0ZVTkNUSU9OKHZvaWQsIG9wX3B1dF9ieV92YWwK
ICAgICBDSEVDS19GT1JfRVhDRVBUSU9OX0FUX0VORCgpOwogfQogCi1ERUZJTkVfU1RVQl9GVU5D
VElPTih2b2lkKiwgb3BfdGhyb3cpCi17Ci0gICAgU1RVQl9JTklUX1NUQUNLX0ZSQU1FKHN0YWNr
RnJhbWUpOwotICAgIHN0YWNrRnJhbWUudm0tPnRocm93RXhjZXB0aW9uKHN0YWNrRnJhbWUuY2Fs
bEZyYW1lLCBzdGFja0ZyYW1lLmFyZ3NbMF0uanNWYWx1ZSgpKTsgCi0gICAgRXhjZXB0aW9uSGFu
ZGxlciBoYW5kbGVyID0gZ2VuZXJpY1Vud2luZChzdGFja0ZyYW1lLnZtLCBzdGFja0ZyYW1lLmNh
bGxGcmFtZSwgc3RhY2tGcmFtZS5hcmdzWzBdLmpzVmFsdWUoKSk7Ci0gICAgU1RVQl9TRVRfUkVU
VVJOX0FERFJFU1MoaGFuZGxlci5jYXRjaFJvdXRpbmUpOwotICAgIHJldHVybiBoYW5kbGVyLmNh
bGxGcmFtZTsKLX0KLQotREVGSU5FX1NUVUJfRlVOQ1RJT04odm9pZCwgb3BfdGhyb3dfc3RhdGlj
X2Vycm9yKQotewotICAgIFNUVUJfSU5JVF9TVEFDS19GUkFNRShzdGFja0ZyYW1lKTsKLQotICAg
IENhbGxGcmFtZSogY2FsbEZyYW1lID0gc3RhY2tGcmFtZS5jYWxsRnJhbWU7Ci0gICAgU3RyaW5n
IG1lc3NhZ2UgPSBlcnJvckRlc2NyaXB0aW9uRm9yVmFsdWUoY2FsbEZyYW1lLCBzdGFja0ZyYW1l
LmFyZ3NbMF0uanNWYWx1ZSgpKS0+dmFsdWUoY2FsbEZyYW1lKTsKLSAgICBpZiAoc3RhY2tGcmFt
ZS5hcmdzWzFdLmFzSW50MzIpCi0gICAgICAgIHN0YWNrRnJhbWUudm0tPnRocm93RXhjZXB0aW9u
KGNhbGxGcmFtZSwgY3JlYXRlUmVmZXJlbmNlRXJyb3IoY2FsbEZyYW1lLCBtZXNzYWdlKSk7Ci0g
ICAgZWxzZQotICAgICAgICBzdGFja0ZyYW1lLnZtLT50aHJvd0V4Y2VwdGlvbihjYWxsRnJhbWUs
IGNyZWF0ZVR5cGVFcnJvcihjYWxsRnJhbWUsIG1lc3NhZ2UpKTsKLSAgICBWTV9USFJPV19FWENF
UFRJT05fQVRfRU5EKCk7Ci19Ci0KIERFRklORV9TVFVCX0ZVTkNUSU9OKHZvaWQqLCB2bV90aHJv
dykKIHsKICAgICBTVFVCX0lOSVRfU1RBQ0tfRlJBTUUoc3RhY2tGcmFtZSk7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCShyZXZpc2lvbiAxNTc1NDQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2MSw4ICsz
NjEsNiBAQCBFbmNvZGVkSlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X3ZhCiBFbmNvZGVk
SlNWYWx1ZSBKSVRfU1RVQiBjdGlfb3BfZ2V0X2J5X3ZhbF9zdHJpbmcoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9TVFVCIGN0aV9vcF9wdXRfYnlfdmFsKFNU
VUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRfU1RVQiBjdGlfb3Bf
cHV0X2J5X3ZhbF9nZW5lcmljKFNUVUJfQVJHU19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwot
dm9pZCBKSVRfU1RVQiBjdGlfb3BfdGhyb3dfc3RhdGljX2Vycm9yKFNUVUJfQVJHU19ERUNMQVJB
VElPTikgV1RGX0lOVEVSTkFMOwotdm9pZCogSklUX1NUVUIgY3RpX29wX3Rocm93KFNUVUJfQVJH
U19ERUNMQVJBVElPTikgV1RGX0lOVEVSTkFMOwogdm9pZCogSklUX1NUVUIgY3RpX3ZtX3Rocm93
KFNUVUJfQVJHU19ERUNMQVJBVElPTikgUkVGRVJFTkNFRF9GUk9NX0FTTSBXVEZfSU5URVJOQUw7
CiAKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214468</attachid>
            <date>2013-10-17 10:23:11 -0700</date>
            <delta_ts>2013-10-17 10:42:43 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>122931-2.patch</filename>
            <type>text/plain</type>
            <size>31711</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU3NTc4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBA
CisyMDEzLTEwLTE3ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAg
ICAgIFRyYW5zaXRpb24gY3RpX29wX3Rocm93IGFuZCBjdGlfdm1fdGhyb3cgdG8gYSBKSVQgb3Bl
cmF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MjI5MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBN
b3ZlZCBjdGlfb3BfdGhyb3cgdG8gb3BlcmF0aW9uVGhyb3cuICBNYWRlIHRoZSBjYWxsZXIgcmVz
cG9uc2libGUgZm9yIGp1bXBpbmcgdG8gdGhlCisgICAgICAgIGNhdGNoIGhhbmRsZXIuICBFbGlt
aW5hdGVkIGN0aV9vcF90aHJvd19zdGF0aWNfZXJyb3IsIGN0aV92bV90aHJvdywgY3RpVk1UaHJv
d1RyYW1wb2xpbmUoKQorICAgICAgICBhbmQgdGhlaXIgY2FsbGVycyBhcyBpdCBpcyBub3cgZGVh
ZCBjb2RlLiAgVGhlcmUgaXMgc29tZSB3b3JrIG5lZWRlZCBvbiB0aGUgTWljcm9zb2Z0IFg4Ngor
ICAgICAgICBjYWxsT3BlcmF0aW9uIHRvIGhhbmRsZSB0aGUgbmVlZCB0byBwcm92aWRlIHNwYWNl
IGZvciBzdHJ1Y3R1cmUgcmV0dXJuIHZhbHVlLgorCisgICAgICAgICogaml0L0pJVC5oOgorICAg
ICAgICAqIGppdC9KSVRJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkpJVDo6Y2FsbE9wZXJhdGlv
bik6CisgICAgICAgICogaml0L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVt
aXRfb3BfdGhyb3cpOgorICAgICAgICAqIGppdC9KSVRPcGNvZGVzMzJfNjQuY3BwOgorICAgICAg
ICAoSlNDOjpKSVQ6OmVtaXRfb3BfdGhyb3cpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3Bf
Y2F0Y2gpOgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBqaXQv
SklUT3BlcmF0aW9ucy5oOgorICAgICAgICAqIGppdC9KSVRTdHVicy5jcHA6CisgICAgICAgICog
aml0L0pJVFN0dWJzLmg6CisgICAgICAgICogaml0L0pJVFN0dWJzQVJNLmg6CisgICAgICAgICog
aml0L0pJVFN0dWJzQVJNNjQuaDoKKyAgICAgICAgKiBqaXQvSklUU3R1YnNBUk12Ny5oOgorICAg
ICAgICAqIGppdC9KSVRTdHVic01JUFMuaDoKKyAgICAgICAgKiBqaXQvSklUU3R1YnNNU1ZDNjQu
YXNtOgorICAgICAgICAqIGppdC9KSVRTdHVic1NINC5oOgorICAgICAgICAqIGppdC9KSVRTdHVi
c1g4Ni5oOgorICAgICAgICAqIGppdC9KSVRTdHVic1g4Nl82NC5oOgorICAgICAgICAqIGppdC9K
U0ludGVyZmFjZUpJVC5oOgorCiAyMDEzLTEwLTE3ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZW1vdmUgSklUU3RhY2tGcmFtZSByZWZlcmVuY2VzIGluIHRoZSBD
IExvb3AgTExJTlQuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgJKHJldmlzaW9uIDE1NzU3
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgJKHdvcmtpbmcgY29weSkKQEAg
LTc5NSw2ICs3OTUsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVy
OjpDYWxsIGNhbGxPcGVyYXRpb24oSl9KSVRPcGVyYXRpb25fRVAsIGludCwgdm9pZCopOwogICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFdpdGhQcm9maWxlVGFnLCBK
X0pJVE9wZXJhdGlvbl9FUGMsIGludCwgSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0pJVE9wZXJhdGlvbl9FWiwgaW50LCBpbnQzMl90
KTsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxs
T3BlcmF0aW9uKEpoZV9KSVRPcGVyYXRpb25fRUosIFJlZ2lzdGVySUQpOworI2Vsc2UKKyAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKaGVfSklUT3BlcmF0aW9uX0VK
LCBSZWdpc3RlcklELCBSZWdpc3RlcklEKTsKKyNlbmRpZgogICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFBfSklUT3BlcmF0aW9uX0VKUywgR1BSUmVnLCBzaXplX3Qp
OwogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFBfSklUT3BlcmF0
aW9uX0VaLCBpbnQzMl90KTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJh
dGlvbihTX0pJVE9wZXJhdGlvbl9FQ0MsIFJlZ2lzdGVySUQsIFJlZ2lzdGVySUQpOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVzLmgJKHJldmlzaW9uIDE1NzU3MCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yOTEsNiArMjkxLDM0IEBAIEFMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklU
OjoKICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldEpTVmFsdWVSZXN1
bHQob3BlcmF0aW9uLCBkc3QpOwogfQogCisjaWYgVVNFKEpTVkFMVUU2NCkKK0FMV0FZU19JTkxJ
TkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpjYWxsT3BlcmF0aW9uKEpoZV9KSVRPcGVyYXRp
b25fRUogb3BlcmF0aW9uLCBHUFJSZWcgYXJnMSkKK3sKKyNpZiBDT01QSUxFUihNU1ZDKSAmJiBD
UFUoWDg2KQorICAgIC8vIE5lZWQgdG8gbWFrZSBzcGFjZSBvbiBzdGFjayBmb3IgcmV0dXJuIHZh
bHVlLCB1c2UgdGhhdCBhZGRyZXNzIGFzIGZpcnN0IGFyZyAoaW4gcmVnaXN0ZXIpLAorICAgIC8v
IG1vdmUgY2FsbEZyYW1lUmVnaXN0ZXIgdG8gc2Vjb25kIGFyZ3VtZW50IHJlZ2lzdGVyIGFuZCBw
dXNoIHRoZSBwYXNzZWQgYXJnMS4KKyAgICB1cGRhdGVUb3BDYWxsRnJhbWUoKTsKKyAgICBNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBjYWxsID0gYXBwZW5kQ2FsbChvcGVyYXRpb24pOworICAgIC8vIFRo
ZXNlIG1heSBub3QgYmUgcG9wczoKKyAgICAvLyBwb3AocmVnVDApOyAvLyBSZXN0b3JlIGFyZzEg
c2xvdAorICAgIC8vIHBvcChyZWdUMCk7IC8vIEdldCBoYW5kbGVyJ3MgY2FsbCBmcmFtZQorICAg
IC8vIHBvcChyZWdUMSk7IC8vIEdldCBoYW5kbGVyJ3MgYWRkcmVzcworICAgIHJldHVybiBjYWxs
OworI2Vsc2UKKyAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSk7CisgICAgdXBk
YXRlVG9wQ2FsbEZyYW1lKCk7CisgICAgcmV0dXJuIGFwcGVuZENhbGwob3BlcmF0aW9uKTsKKyNl
bmRpZgorfQorI2Vsc2UKK0FMV0FZU19JTkxJTkUgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgSklUOjpj
YWxsT3BlcmF0aW9uKEpoZV9KSVRPcGVyYXRpb25fRUogb3BlcmF0aW9uLCBHUFJSZWcgYXJnMVRh
ZywgR1BSUmVnIGFyZzFQYXlsb2FkKQoreworICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0
ZShhcmcxUGF5bG9hZCwgYXJnMVRhZyk7CisgICAgdXBkYXRlVG9wQ2FsbEZyYW1lKCk7CisgICAg
cmV0dXJuIGFwcGVuZENhbGwob3BlcmF0aW9uKTsKK30KKyNlbmRpZgorCiBBTFdBWVNfSU5MSU5F
IE1hY3JvQXNzZW1ibGVyOjpDYWxsIEpJVDo6Y2FsbE9wZXJhdGlvbihQX0pJVE9wZXJhdGlvbl9F
WiBvcGVyYXRpb24sIGludDMyX3Qgb3ApCiB7CiAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0
YXRlKFRydXN0ZWRJbW0zMihvcCkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGNvZGVzMzJfNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3Bjb2RlczMyXzY0LmNwcAkocmV2aXNpb24gMTU3NTcwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MTIs
MTYgKzgxMiwxMiBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9uZXFfbnVsbChJbnN0cnVjdGlvbiogCiAK
IHZvaWQgSklUOjplbWl0X29wX3Rocm93KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24p
CiB7Ci0gICAgdW5zaWduZWQgZXhjZXB0aW9uID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3Bl
cmFuZDsKLSAgICBKSVRTdHViQ2FsbCBzdHViQ2FsbCh0aGlzLCBjdGlfb3BfdGhyb3cpOwotICAg
IHN0dWJDYWxsLmFkZEFyZ3VtZW50KGV4Y2VwdGlvbik7Ci0gICAgc3R1YkNhbGwuY2FsbCgpOwot
Ci0jaWZuZGVmIE5ERUJVRwotICAgIC8vIGN0aV9vcF90aHJvdyBhbHdheXMgY2hhbmdlcyBpdCdz
IHJldHVybiBhZGRyZXNzLAotICAgIC8vIHRoaXMgcG9pbnQgaW4gdGhlIGNvZGUgc2hvdWxkIG5l
dmVyIGJlIHJlYWNoZWQuCi0gICAgYnJlYWtwb2ludCgpOwotI2VuZGlmCisgICAgQVNTRVJUKHJl
Z1QwID09IHJldHVyblZhbHVlUmVnaXN0ZXIpOworICAgIGVtaXRMb2FkKGN1cnJlbnRJbnN0cnVj
dGlvblsxXS51Lm9wZXJhbmQsIHJlZ1QxLCByZWdUMCk7CisgICAgY2FsbE9wZXJhdGlvbihvcGVy
YXRpb25UaHJvdywgcmVnVDEsIHJlZ1QwKTsKKyAgICAvLyBBZnRlciBvcGVyYXRpb25UaHJvdyBy
ZXR1cm5zLCByZXR1cm5WYWx1ZVJlZ2lzdGVyIChyZWdUMCkgaGFzIHRoZSBoYW5kbGVyJ3MgY2Fs
bEZyYW1lIGFuZAorICAgIC8vIHJldHVyblZhbHVlMlJlZ2lzdGVyIGhhcyB0aGUgaGFuZGxlcidz
IGVudHJ5IGFkZHJlc3MuCisgICAganVtcChyZXR1cm5WYWx1ZTJSZWdpc3Rlcik7CiB9CiAKIHZv
aWQgSklUOjplbWl0X29wX2dldF9wbmFtZXMoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlv
bikKQEAgLTk3MSwxMCArOTY3LDEwIEBAIHZvaWQgSklUOjplbWl0X29wX3B1c2hfbmFtZV9zY29w
ZShJbnN0cnUKIAogdm9pZCBKSVQ6OmVtaXRfb3BfY2F0Y2goSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbikKIHsKLSAgICAvLyBjdGlfb3BfdGhyb3cgcmV0dXJucyB0aGUgY2FsbEZyYW1l
IGZvciB0aGUgaGFuZGxlci4KKyAgICAvLyBvcGVyYXRpb25UaHJvdyByZXR1cm5zIHRoZSBjYWxs
RnJhbWUgZm9yIHRoZSBoYW5kbGVyLgogICAgIG1vdmUocmVnVDAsIGNhbGxGcmFtZVJlZ2lzdGVy
KTsKIAotICAgIC8vIE5vdyBzdG9yZSB0aGUgZXhjZXB0aW9uIHJldHVybmVkIGJ5IGN0aV9vcF90
aHJvdy4KKyAgICAvLyBOb3cgc3RvcmUgdGhlIGV4Y2VwdGlvbiByZXR1cm5lZCBieSBvcGVyYXRp
b25UaHJvdy4KICAgICBsb2FkUHRyKEFkZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIE9CSkVD
VF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgdm0pKSwgcmVnVDMpOwogICAgIGxvYWQz
MihBZGRyZXNzKHJlZ1QzLCBWTTo6ZXhjZXB0aW9uT2Zmc2V0KCkgKyBPQkpFQ1RfT0ZGU0VUT0Yo
SlNWYWx1ZSwgdS5hc0JpdHMucGF5bG9hZCkpLCByZWdUMCk7CiAgICAgbG9hZDMyKEFkZHJlc3Mo
cmVnVDMsIFZNOjpleGNlcHRpb25PZmZzZXQoKSArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1
LmFzQml0cy50YWcpKSwgcmVnVDEpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGNvZGVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wY29kZXMuY3BwCShyZXZpc2lvbiAxNTc1NzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVE9wY29kZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00ODMsMTUgKzQ4MywxMiBAQCB2
b2lkIEpJVDo6ZW1pdF9vcF9iaXRvcihJbnN0cnVjdGlvbiogY3VyCiAKIHZvaWQgSklUOjplbWl0
X29wX3Rocm93KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7Ci0gICAgSklUU3R1
YkNhbGwgc3R1YkNhbGwodGhpcywgY3RpX29wX3Rocm93KTsKLSAgICBzdHViQ2FsbC5hZGRBcmd1
bWVudChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCByZWdUMik7Ci0gICAgc3R1YkNh
bGwuY2FsbCgpOwogICAgIEFTU0VSVChyZWdUMCA9PSByZXR1cm5WYWx1ZVJlZ2lzdGVyKTsKLSNp
Zm5kZWYgTkRFQlVHCi0gICAgLy8gY3RpX29wX3Rocm93IGFsd2F5cyBjaGFuZ2VzIGl0J3MgcmV0
dXJuIGFkZHJlc3MsCi0gICAgLy8gdGhpcyBwb2ludCBpbiB0aGUgY29kZSBzaG91bGQgbmV2ZXIg
YmUgcmVhY2hlZC4KLSAgICBicmVha3BvaW50KCk7Ci0jZW5kaWYKKyAgICBlbWl0R2V0VmlydHVh
bFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIHJlZ1QwKTsKKyAgICBj
YWxsT3BlcmF0aW9uKG9wZXJhdGlvblRocm93LCByZWdUMCk7CisgICAgLy8gQWZ0ZXIgb3BlcmF0
aW9uVGhyb3cgcmV0dXJucywgcmV0dXJuVmFsdWVSZWdpc3RlciAocmVnVDApIGhhcyB0aGUgaGFu
ZGxlcidzIGNhbGxGcmFtZSBhbmQKKyAgICAvLyByZXR1cm5WYWx1ZTJSZWdpc3RlciBoYXMgdGhl
IGhhbmRsZXIncyBlbnRyeSBhZGRyZXNzLgorICAgIGp1bXAocmV0dXJuVmFsdWUyUmVnaXN0ZXIp
OwogfQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfcG5hbWVzKEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24pCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlv
bnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0
aW9ucy5jcHAJKHJldmlzaW9uIDE1NzU3MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3BlcmF0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2MTUsNiArMTYxNSwxNyBAQCB2
b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0VG9TY29wZShFCiAgICAgfQogfQogCitKSVRI
YW5kbGVyRW5jb2RlZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblRocm93KEV4ZWNTdGF0ZSogZXhl
YywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEV4Y2VwdGlvblZhbHVlKQoreworICAgIFZNKiB2bSA9
ICZleGVjLT52bSgpOworICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMp
OworCisgICAgSlNWYWx1ZSBleGNlcHRpb25WYWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVk
RXhjZXB0aW9uVmFsdWUpOworICAgIHZtLT50aHJvd0V4Y2VwdGlvbihleGVjLCBleGNlcHRpb25W
YWx1ZSk7CisgICAgRXhjZXB0aW9uSGFuZGxlciBoYW5kbGVyID0gZ2VuZXJpY1Vud2luZCh2bSwg
ZXhlYywgZXhjZXB0aW9uVmFsdWUpOworICAgIHJldHVybiBkZmdIYW5kbGVyRW5jb2RlZChoYW5k
bGVyLmNhbGxGcmFtZSwgaGFuZGxlci5jYXRjaFJvdXRpbmUpOworfQorCiBKSVRIYW5kbGVyRW5j
b2RlZCBKSVRfT1BFUkFUSU9OIGxvb2t1cEV4Y2VwdGlvbkhhbmRsZXIoRXhlY1N0YXRlKiBleGVj
KQogewogICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRPcGVyYXRpb25zLmgJKHJldmlzaW9uIDE1NzU3MCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsy
Nyw3IEBACiAjZGVmaW5lIEpJVE9wZXJhdGlvbnNfaAogCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgi
CisjaW5jbHVkZSAiSklURXhjZXB0aW9ucy5oIgogI2luY2x1ZGUgIkpTQXJyYXkuaCIKICNpbmNs
dWRlICJKU0NKU1ZhbHVlLmgiCiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXIuaCIKQEAgLTQ0LDYg
KzQ1LDQ3IEBAIGNsYXNzIEFycmF5QWxsb2NhdGlvblByb2ZpbGU7CiAjZGVmaW5lIEpJVF9PUEVS
QVRJT04KICNlbmRpZgogCitleHRlcm4gIkMiIHsKKworLy8gVGhpcyBtZXRob2QgaXMgdXNlZCB0
byBsb29rdXAgYW4gZXhjZXB0aW9uIGhhbmRlciwga2V5ZWQgYnkgZmF1bHRMb2NhdGlvbiwgd2hp
Y2ggaXMKKy8vIHRoZSByZXR1cm4gbG9jYXRpb24gZnJvbSBvbmUgb2YgdGhlIGNhbGxzIG91dCB0
byBvbmUgb2YgdGhlIGhlbHBlciBvcGVyYXRpb25zIGFib3ZlLgorCisvLyBBY2NvcmRpbmcgdG8g
QysrIHJ1bGVzLCBhIHR5cGUgdXNlZCBmb3IgdGhlIHJldHVybiBzaWduYXR1cmUgb2YgZnVuY3Rp
b24gd2l0aCBDIGxpbmthZ2UgKGkuZS4KKy8vICdleHRlcm4gIkMiJykgbmVlZHMgdG8gYmUgUE9E
OyBoZW5jZSBwdXR0aW5nIGFueSBjb25zdHJ1Y3RvcnMgaW50byBpdCBjb3VsZCBjYXVzZSBlaXRo
ZXIgY29tcGlsZXIKKy8vIHdhcm5pbmdzLCBvciB3b3JzZSwgYSBjaGFuZ2UgaW4gdGhlIEFCSSB1
c2VkIHRvIHJldHVybiB0aGVzZSB0eXBlcy4KK3N0cnVjdCBKSVRIYW5kbGVyIHsKKyAgICB1bmlv
biBVbmlvbiB7CisgICAgICAgIHN0cnVjdCBTdHJ1Y3QgeworICAgICAgICAgICAgRXhlY1N0YXRl
KiBleGVjOworICAgICAgICAgICAgdm9pZCogaGFuZGxlcjsKKyAgICAgICAgfSBzOworICAgICAg
ICB1aW50NjRfdCBlbmNvZGVkOworICAgIH0gdTsKK307CisKK2lubGluZSBKSVRIYW5kbGVyIGNy
ZWF0ZUpJVEhhbmRsZXIoRXhlY1N0YXRlKiBleGVjLCB2b2lkKiBoYW5kbGVyKQoreworICAgIEpJ
VEhhbmRsZXIgcmVzdWx0OworICAgIHJlc3VsdC51LnMuZXhlYyA9IGV4ZWM7CisgICAgcmVzdWx0
LnUucy5oYW5kbGVyID0gaGFuZGxlcjsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisjaWYgQ1BV
KFg4Nl82NCkKK3R5cGVkZWYgSklUSGFuZGxlciBKSVRIYW5kbGVyRW5jb2RlZDsKK2lubGluZSBK
SVRIYW5kbGVyRW5jb2RlZCBkZmdIYW5kbGVyRW5jb2RlZChFeGVjU3RhdGUqIGV4ZWMsIHZvaWQq
IGhhbmRsZXIpCit7CisgICAgcmV0dXJuIGNyZWF0ZUpJVEhhbmRsZXIoZXhlYywgaGFuZGxlcik7
Cit9CisjZWxzZQordHlwZWRlZiB1aW50NjRfdCBKSVRIYW5kbGVyRW5jb2RlZDsKK2lubGluZSBK
SVRIYW5kbGVyRW5jb2RlZCBkZmdIYW5kbGVyRW5jb2RlZChFeGVjU3RhdGUqIGV4ZWMsIHZvaWQq
IGhhbmRsZXIpCit7CisgICAgQ09NUElMRV9BU1NFUlQoc2l6ZW9mKEpJVEhhbmRsZXI6OlVuaW9u
KSA9PSBzaXplb2YodWludDY0X3QpLCBKSVRIYW5kbGVyX1VuaW9uX2lzXzY0Yml0KTsKKyAgICBy
ZXR1cm4gY3JlYXRlSklUSGFuZGxlcihleGVjLCBoYW5kbGVyKS51LmVuY29kZWQ7Cit9CisjZW5k
aWYKKwogLy8gVGhlc2UgdHlwZWRlZnMgcHJvdmlkZSB0eXBlY2hlY2tpbmcgd2hlbiBnZW5lcmF0
aW5nIGNhbGxzIG91dCB0byBoZWxwZXIgcm91dGluZXM7CiAvLyB0aGlzIGhlbHBzIHByZXZlbnQg
Y2FsbGluZyBhIGhlbHBlciByb3V0aW5lIHdpdGggdGhlIHdyb25nIGFyZ3VtZW50cyEKIC8qCkBA
IC02MCw2ICsxMDIsNyBAQCBjbGFzcyBBcnJheUFsbG9jYXRpb25Qcm9maWxlOwogICAgIElkYzog
Y29uc3QgSWRlbnRpZmllcioKICAgICBKOiBFbmNvZGVkSlNWYWx1ZQogICAgIEpjcDogY29uc3Qg
SlNWYWx1ZSoKKyAgICBKaGU6IEpJVEhhbmRsZXJFbmNvZGVkCiAgICAgSnNhOiBKU0FjdGl2YXRp
b24qCiAgICAgSnNzOiBKU1N0cmluZyoKICAgICBPOiBKU09iamVjdCoKQEAgLTk5LDYgKzE0Miw3
IEBAIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkoKIHR5cGVkZWYgRW5j
b2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklUT3BlcmF0aW9uX0VaKShFeGVjU3RhdGUq
LCBpbnQzMl90KTsKIHR5cGVkZWYgRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiAoKkpfSklU
T3BlcmF0aW9uX0VaSWNmWikoRXhlY1N0YXRlKiwgaW50MzJfdCwgSW5saW5lQ2FsbEZyYW1lKiwg
aW50MzJfdCk7CiB0eXBlZGVmIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gKCpKX0pJVE9w
ZXJhdGlvbl9FWlopKEV4ZWNTdGF0ZSosIGludDMyX3QsIGludDMyX3QpOwordHlwZWRlZiBKSVRI
YW5kbGVyRW5jb2RlZCBKSVRfT1BFUkFUSU9OICgqSmhlX0pJVE9wZXJhdGlvbl9FSikoRXhlY1N0
YXRlKiwgRW5jb2RlZEpTVmFsdWUpOwogdHlwZWRlZiBKU0NlbGwqIEpJVF9PUEVSQVRJT04gKCpD
X0pJVE9wZXJhdGlvbl9FKShFeGVjU3RhdGUqKTsKIHR5cGVkZWYgSlNDZWxsKiBKSVRfT1BFUkFU
SU9OICgqQ19KSVRPcGVyYXRpb25fRVopKEV4ZWNTdGF0ZSosIGludDMyX3QpOwogdHlwZWRlZiBK
U0NlbGwqIEpJVF9PUEVSQVRJT04gKCpDX0pJVE9wZXJhdGlvbl9FQykoRXhlY1N0YXRlKiwgSlND
ZWxsKik7CkBAIC0xNjYsNDYgKzIxMCw2IEBAIHR5cGVkZWYgY2hhciogSklUX09QRVJBVElPTiAo
KlBfSklUT3BlcmEKIHR5cGVkZWYgU3RyaW5nSW1wbCogSklUX09QRVJBVElPTiAoKklfSklUT3Bl
cmF0aW9uX0VKc3MpKEV4ZWNTdGF0ZSosIEpTU3RyaW5nKik7CiB0eXBlZGVmIEpTU3RyaW5nKiBK
SVRfT1BFUkFUSU9OICgqSnNzX0pJVE9wZXJhdGlvbl9FWikoRXhlY1N0YXRlKiwgaW50MzJfdCk7
CiAKLWV4dGVybiAiQyIgewotCi0vLyBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIGxvb2t1cCBhbiBl
eGNlcHRpb24gaGFuZGVyLCBrZXllZCBieSBmYXVsdExvY2F0aW9uLCB3aGljaCBpcwotLy8gdGhl
IHJldHVybiBsb2NhdGlvbiBmcm9tIG9uZSBvZiB0aGUgY2FsbHMgb3V0IHRvIG9uZSBvZiB0aGUg
aGVscGVyIG9wZXJhdGlvbnMgYWJvdmUuCi0KLS8vIEFjY29yZGluZyB0byBDKysgcnVsZXMsIGEg
dHlwZSB1c2VkIGZvciB0aGUgcmV0dXJuIHNpZ25hdHVyZSBvZiBmdW5jdGlvbiB3aXRoIEMgbGlu
a2FnZSAoaS5lLgotLy8gJ2V4dGVybiAiQyInKSBuZWVkcyB0byBiZSBQT0Q7IGhlbmNlIHB1dHRp
bmcgYW55IGNvbnN0cnVjdG9ycyBpbnRvIGl0IGNvdWxkIGNhdXNlIGVpdGhlciBjb21waWxlcgot
Ly8gd2FybmluZ3MsIG9yIHdvcnNlLCBhIGNoYW5nZSBpbiB0aGUgQUJJIHVzZWQgdG8gcmV0dXJu
IHRoZXNlIHR5cGVzLgotc3RydWN0IEpJVEhhbmRsZXIgewotICAgIHVuaW9uIFVuaW9uIHsKLSAg
ICAgICAgc3RydWN0IFN0cnVjdCB7Ci0gICAgICAgICAgICBFeGVjU3RhdGUqIGV4ZWM7Ci0gICAg
ICAgICAgICB2b2lkKiBoYW5kbGVyOwotICAgICAgICB9IHM7Ci0gICAgICAgIHVpbnQ2NF90IGVu
Y29kZWQ7Ci0gICAgfSB1OwotfTsKLQotaW5saW5lIEpJVEhhbmRsZXIgY3JlYXRlSklUSGFuZGxl
cihFeGVjU3RhdGUqIGV4ZWMsIHZvaWQqIGhhbmRsZXIpCi17Ci0gICAgSklUSGFuZGxlciByZXN1
bHQ7Ci0gICAgcmVzdWx0LnUucy5leGVjID0gZXhlYzsKLSAgICByZXN1bHQudS5zLmhhbmRsZXIg
PSBoYW5kbGVyOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLSNpZiBDUFUoWDg2XzY0KQotdHlw
ZWRlZiBKSVRIYW5kbGVyIEpJVEhhbmRsZXJFbmNvZGVkOwotaW5saW5lIEpJVEhhbmRsZXJFbmNv
ZGVkIGRmZ0hhbmRsZXJFbmNvZGVkKEV4ZWNTdGF0ZSogZXhlYywgdm9pZCogaGFuZGxlcikKLXsK
LSAgICByZXR1cm4gY3JlYXRlSklUSGFuZGxlcihleGVjLCBoYW5kbGVyKTsKLX0KLSNlbHNlCi10
eXBlZGVmIHVpbnQ2NF90IEpJVEhhbmRsZXJFbmNvZGVkOwotaW5saW5lIEpJVEhhbmRsZXJFbmNv
ZGVkIGRmZ0hhbmRsZXJFbmNvZGVkKEV4ZWNTdGF0ZSogZXhlYywgdm9pZCogaGFuZGxlcikKLXsK
LSAgICBDT01QSUxFX0FTU0VSVChzaXplb2YoSklUSGFuZGxlcjo6VW5pb24pID09IHNpemVvZih1
aW50NjRfdCksIEpJVEhhbmRsZXJfVW5pb25faXNfNjRiaXQpOwotICAgIHJldHVybiBjcmVhdGVK
SVRIYW5kbGVyKGV4ZWMsIGhhbmRsZXIpLnUuZW5jb2RlZDsKLX0KLSNlbmRpZgogSklUSGFuZGxl
ckVuY29kZWQgSklUX09QRVJBVElPTiBsb29rdXBFeGNlcHRpb25IYW5kbGVyKEV4ZWNTdGF0ZSop
IFdURl9JTlRFUk5BTDsKIAogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblN0YWNrQ2hlY2so
RXhlY1N0YXRlKiwgQ29kZUJsb2NrKikgV1RGX0lOVEVSTkFMOwpAQCAtMjYwLDYgKzI2NCw3IEBA
IEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdPYmplY3QKIEVuY29kZWRKU1ZhbHVl
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uTmV3UmVnZXhwKEV4ZWNTdGF0ZSosIHZvaWQqKSBXVEZf
SU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSGFuZGxlV2F0Y2hkb2dUaW1l
cihFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
VGhyb3dTdGF0aWNFcnJvcihFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCkgV1RG
X0lOVEVSTkFMOworSklUSGFuZGxlckVuY29kZWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25UaHJv
dyhFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkRlYnVnKEV4ZWNTdGF0ZSosIGludDMyX3QpIFdURl9JTlRFUk5BTDsK
ICNpZiBFTkFCTEUoREZHX0pJVCkKIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT3B0aW1p
emUoRXhlY1N0YXRlKiwgaW50MzJfdCkgV1RGX0lOVEVSTkFMOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRTdHVicy5jcHAJKHJldmlzaW9uIDE1NzU3MCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjcsMTgyICsx
MjcsNiBAQCB2b2lkIHBlcmZvcm1QbGF0Zm9ybVNwZWNpZmljSklUQXNzZXJ0aW9uCiAjZW5kaWYK
IH0KIAotI2lmICFkZWZpbmVkKE5ERUJVRykKLQotZXh0ZXJuICJDIiB7Ci0KLXN0YXRpYyB2b2lk
IGpzY0dlbmVyYXRlZE5hdGl2ZUNvZGUoKSAKLXsKLSAgICAvLyBXaGVuIGV4ZWN1dGluZyBhIEpJ
VCBzdHViIGZ1bmN0aW9uICh3aGljaCBtaWdodCBkbyBhbiBhbGxvY2F0aW9uKSwgd2UgaGFjayB0
aGUgcmV0dXJuIGFkZHJlc3MKLSAgICAvLyB0byBwcmV0ZW5kIHRvIGJlIGV4ZWN1dGluZyB0aGlz
IGZ1bmN0aW9uLCB0byBrZWVwIHN0YWNrIGxvZ2dpbmcgdG9vbHMgZnJvbSBibG93aW5nIG91dAot
ICAgIC8vIG1lbW9yeS4KLX0KLQotfQotCi1zdHJ1Y3QgU3RhY2tIYWNrIHsKLSAgICBBTFdBWVNf
SU5MSU5FIFN0YWNrSGFjayhKSVRTdGFja0ZyYW1lJiBzdGFja0ZyYW1lKSAKLSAgICAgICAgOiBz
dGFja0ZyYW1lKHN0YWNrRnJhbWUpCi0gICAgICAgICwgc2F2ZWRSZXR1cm5BZGRyZXNzKCpzdGFj
a0ZyYW1lLnJldHVybkFkZHJlc3NTbG90KCkpCi0gICAgewotICAgICAgICBpZiAoIUNvZGVQcm9m
aWxpbmc6OmVuYWJsZWQoKSkKLSAgICAgICAgICAgICpzdGFja0ZyYW1lLnJldHVybkFkZHJlc3NT
bG90KCkgPSBSZXR1cm5BZGRyZXNzUHRyKEZ1bmN0aW9uUHRyKGpzY0dlbmVyYXRlZE5hdGl2ZUNv
ZGUpKTsKLSAgICB9Ci0KLSAgICBBTFdBWVNfSU5MSU5FIH5TdGFja0hhY2soKSAKLSAgICB7IAot
ICAgICAgICAqc3RhY2tGcmFtZS5yZXR1cm5BZGRyZXNzU2xvdCgpID0gc2F2ZWRSZXR1cm5BZGRy
ZXNzOwotICAgIH0KLQotICAgIEpJVFN0YWNrRnJhbWUmIHN0YWNrRnJhbWU7Ci0gICAgUmV0dXJu
QWRkcmVzc1B0ciBzYXZlZFJldHVybkFkZHJlc3M7Ci19OwotCi0jZGVmaW5lIFNUVUJfSU5JVF9T
VEFDS19GUkFNRShzdGFja0ZyYW1lKSBKSVRTdGFja0ZyYW1lJiBzdGFja0ZyYW1lID0gKnJlaW50
ZXJwcmV0X2Nhc3RfcHRyPEpJVFN0YWNrRnJhbWUqPihTVFVCX0FSR1MpOyBTdGFja0hhY2sgc3Rh
Y2tIYWNrKHN0YWNrRnJhbWUpCi0jZGVmaW5lIFNUVUJfU0VUX1JFVFVSTl9BRERSRVNTKHJldHVy
bkFkZHJlc3MpIHN0YWNrSGFjay5zYXZlZFJldHVybkFkZHJlc3MgPSBSZXR1cm5BZGRyZXNzUHRy
KHJldHVybkFkZHJlc3MpCi0jZGVmaW5lIFNUVUJfUkVUVVJOX0FERFJFU1Mgc3RhY2tIYWNrLnNh
dmVkUmV0dXJuQWRkcmVzcwotCi0jZWxzZQotCi0jZGVmaW5lIFNUVUJfSU5JVF9TVEFDS19GUkFN
RShzdGFja0ZyYW1lKSBKSVRTdGFja0ZyYW1lJiBzdGFja0ZyYW1lID0gKnJlaW50ZXJwcmV0X2Nh
c3RfcHRyPEpJVFN0YWNrRnJhbWUqPihTVFVCX0FSR1MpCi0jZGVmaW5lIFNUVUJfU0VUX1JFVFVS
Tl9BRERSRVNTKHJldHVybkFkZHJlc3MpICpzdGFja0ZyYW1lLnJldHVybkFkZHJlc3NTbG90KCkg
PSBSZXR1cm5BZGRyZXNzUHRyKHJldHVybkFkZHJlc3MpCi0jZGVmaW5lIFNUVUJfUkVUVVJOX0FE
RFJFU1MgKnN0YWNrRnJhbWUucmV0dXJuQWRkcmVzc1Nsb3QoKQotCi0jZW5kaWYKLQotLy8gVGhl
IHJlYXNvbiB0aGlzIGlzIG5vdCBpbmxpbmVkIGlzIHRvIGF2b2lkIGhhdmluZyB0byBkbyBhIFBJ
QyBicmFuY2gKLS8vIHRvIGdldCB0aGUgYWRkcmVzcyBvZiB0aGUgY3RpVk1UaHJvd1RyYW1wb2xp
bmUgZnVuY3Rpb24uIEl0J3MgYWxzbwotLy8gZ29vZCB0byBrZWVwIHRoZSBjb2RlIHNpemUgZG93
biBieSBsZWF2aW5nIGFzIG11Y2ggb2YgdGhlIGV4Y2VwdGlvbgotLy8gaGFuZGxpbmcgY29kZSBv
dXQgb2YgbGluZSBhcyBwb3NzaWJsZS4KLXN0YXRpYyBORVZFUl9JTkxJTkUgdm9pZCByZXR1cm5U
b1Rocm93VHJhbXBvbGluZShWTSogdm0sIFJldHVybkFkZHJlc3NQdHIgZXhjZXB0aW9uTG9jYXRp
b24sIFJldHVybkFkZHJlc3NQdHImIHJldHVybkFkZHJlc3NTbG90KQotewotICAgIFJFTEVBU0Vf
QVNTRVJUKHZtLT5leGNlcHRpb24oKSk7Ci0gICAgdm0tPmV4Y2VwdGlvbkxvY2F0aW9uID0gZXhj
ZXB0aW9uTG9jYXRpb247Ci0gICAgcmV0dXJuQWRkcmVzc1Nsb3QgPSBSZXR1cm5BZGRyZXNzUHRy
KEZ1bmN0aW9uUHRyKGN0aVZNVGhyb3dUcmFtcG9saW5lKSk7Ci19Ci0KLSNkZWZpbmUgVk1fVEhS
T1dfRVhDRVBUSU9OKCkgXAotICAgIGRvIHsgXAotICAgICAgICBWTV9USFJPV19FWENFUFRJT05f
QVRfRU5EKCk7IFwKLSAgICAgICAgcmV0dXJuIDA7IFwKLSAgICB9IHdoaWxlICgwKQotI2RlZmlu
ZSBWTV9USFJPV19FWENFUFRJT05fQVRfRU5EKCkgXAotICAgIGRvIHtcCi0gICAgICAgIHJldHVy
blRvVGhyb3dUcmFtcG9saW5lKHN0YWNrRnJhbWUudm0sIFNUVUJfUkVUVVJOX0FERFJFU1MsIFNU
VUJfUkVUVVJOX0FERFJFU1MpO1wKLSAgICB9IHdoaWxlICgwKQotCi0jZGVmaW5lIENIRUNLX0ZP
Ul9FWENFUFRJT04oKSBcCi0gICAgZG8geyBcCi0gICAgICAgIGlmIChVTkxJS0VMWShzdGFja0Zy
YW1lLnZtLT5leGNlcHRpb24oKSkpIFwKLSAgICAgICAgICAgIFZNX1RIUk9XX0VYQ0VQVElPTigp
OyBcCi0gICAgfSB3aGlsZSAoMCkKLSNkZWZpbmUgQ0hFQ0tfRk9SX0VYQ0VQVElPTl9BVF9FTkQo
KSBcCi0gICAgZG8geyBcCi0gICAgICAgIGlmIChVTkxJS0VMWShzdGFja0ZyYW1lLnZtLT5leGNl
cHRpb24oKSkpIFwKLSAgICAgICAgICAgIFZNX1RIUk9XX0VYQ0VQVElPTl9BVF9FTkQoKTsgXAot
ICAgIH0gd2hpbGUgKDApCi0jZGVmaW5lIENIRUNLX0ZPUl9FWENFUFRJT05fVk9JRCgpIFwKLSAg
ICBkbyB7IFwKLSAgICAgICAgaWYgKFVOTElLRUxZKHN0YWNrRnJhbWUudm0tPmV4Y2VwdGlvbigp
KSkgeyBcCi0gICAgICAgICAgICBWTV9USFJPV19FWENFUFRJT05fQVRfRU5EKCk7IFwKLSAgICAg
ICAgICAgIHJldHVybjsgXAotICAgICAgICB9IFwKLSAgICB9IHdoaWxlICgwKQotCi1jbGFzcyBF
cnJvckZ1bmN0b3IgewotcHVibGljOgotICAgIHZpcnR1YWwgfkVycm9yRnVuY3RvcigpIHsgfQot
ICAgIHZpcnR1YWwgSlNWYWx1ZSBvcGVyYXRvcigpKEV4ZWNTdGF0ZSopID0gMDsKLX07Ci0KLWNs
YXNzIEVycm9yV2l0aEV4ZWNGdW5jdG9yIDogcHVibGljIEVycm9yRnVuY3RvciB7Ci1wdWJsaWM6
Ci0gICAgdHlwZWRlZiBKU09iamVjdCogKCpGYWN0b3J5KShFeGVjU3RhdGUqIGV4ZWMpOwotICAg
IAotICAgIEVycm9yV2l0aEV4ZWNGdW5jdG9yKEZhY3RvcnkgZmFjdG9yeSkKLSAgICAgICAgOiBt
X2ZhY3RvcnkoZmFjdG9yeSkKLSAgICB7Ci0gICAgfQotCi0gICAgdmlydHVhbCBKU1ZhbHVlIG9w
ZXJhdG9yKCkoRXhlY1N0YXRlKiBleGVjKSBPVkVSUklERQotICAgIHsKLSAgICAgICAgcmV0dXJu
IG1fZmFjdG9yeShleGVjKTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgRmFjdG9yeSBtX2ZhY3Rv
cnk7Ci19OwotCi1jbGFzcyBFcnJvcldpdGhFeGVjQW5kQ2FsbGVlRnVuY3RvciA6IHB1YmxpYyBF
cnJvckZ1bmN0b3IgewotcHVibGljOgotICAgIHR5cGVkZWYgSlNPYmplY3QqICgqRmFjdG9yeSko
RXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIGNhbGxlZSk7Ci0KLSAgICBFcnJvcldpdGhFeGVjQW5k
Q2FsbGVlRnVuY3RvcihGYWN0b3J5IGZhY3RvcnksIEpTVmFsdWUgY2FsbGVlKQotICAgICAgICA6
IG1fZmFjdG9yeShmYWN0b3J5KSwgbV9jYWxsZWUoY2FsbGVlKQotICAgIHsKLSAgICB9Ci0KLSAg
ICB2aXJ0dWFsIEpTVmFsdWUgb3BlcmF0b3IoKShFeGVjU3RhdGUqIGV4ZWMpIE9WRVJSSURFCi0g
ICAgewotICAgICAgICByZXR1cm4gbV9mYWN0b3J5KGV4ZWMsIG1fY2FsbGVlKTsKLSAgICB9Ci1w
cml2YXRlOgotICAgIEZhY3RvcnkgbV9mYWN0b3J5OwotICAgIEpTVmFsdWUgbV9jYWxsZWU7Ci19
OwotCi0vLyBIZWxwZXIgZnVuY3Rpb24gZm9yIEpJVCBzdHVicyB0aGF0IG1heSB0aHJvdyBhbiBl
eGNlcHRpb24gaW4gdGhlIG1pZGRsZSBvZgotLy8gcHJvY2Vzc2luZyBhIGZ1bmN0aW9uIGNhbGwu
IFRoaXMgZnVuY3Rpb24gcm9sbHMgYmFjayB0aGUgc3RhY2sgdG8KLS8vIG91ciBjYWxsZXIsIHNv
IGV4Y2VwdGlvbiBwcm9jZXNzaW5nIGNhbiBwcm9jZWVkIGZyb20gYSB2YWxpZCBzdGF0ZS4KLXRl
bXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyBUIHRocm93RXhjZXB0aW9uRnJvbU9wQ2FsbChKSVRT
dGFja0ZyYW1lJiBqaXRTdGFja0ZyYW1lLCBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSwgUmV0dXJu
QWRkcmVzc1B0ciYgcmV0dXJuQWRkcmVzc1Nsb3QsIEVycm9yRnVuY3RvciogY3JlYXRlRXJyb3Ig
PSAwKQotewotICAgIENhbGxGcmFtZSogY2FsbEZyYW1lID0gbmV3Q2FsbEZyYW1lLT5jYWxsZXJG
cmFtZSgpLT5yZW1vdmVIb3N0Q2FsbEZyYW1lRmxhZygpOwotICAgIGppdFN0YWNrRnJhbWUuY2Fs
bEZyYW1lID0gY2FsbEZyYW1lOwotICAgIEFTU0VSVChjYWxsRnJhbWUpOwotICAgIGNhbGxGcmFt
ZS0+dm0oKS50b3BDYWxsRnJhbWUgPSBjYWxsRnJhbWU7Ci0gICAgaWYgKGNyZWF0ZUVycm9yKQot
ICAgICAgICBjYWxsRnJhbWUtPnZtKCkudGhyb3dFeGNlcHRpb24oY2FsbEZyYW1lLCAoKmNyZWF0
ZUVycm9yKShjYWxsRnJhbWUpKTsKLSAgICBBU1NFUlQoY2FsbEZyYW1lLT52bSgpLmV4Y2VwdGlv
bigpKTsKLSAgICByZXR1cm5Ub1Rocm93VHJhbXBvbGluZSgmY2FsbEZyYW1lLT52bSgpLCBSZXR1
cm5BZGRyZXNzUHRyKG5ld0NhbGxGcmFtZS0+cmV0dXJuUEMoKSksIHJldHVybkFkZHJlc3NTbG90
KTsKLSAgICByZXR1cm4gVCgpOwotfQotCi0vLyBJZiB0aGUgQ1BVIHNwZWNpZmljIGhlYWRlciBk
b2VzIG5vdCBwcm92aWRlIGFuIGltcGxlbWVudGF0aW9uLCB1c2UgdGhlIGRlZmF1bHQgb25lIGhl
cmUuCi0jaWZuZGVmIERFRklORV9TVFVCX0ZVTkNUSU9OCi0jZGVmaW5lIERFRklORV9TVFVCX0ZV
TkNUSU9OKHJ0eXBlLCBvcCkgcnR5cGUgSklUX1NUVUIgY3RpXyMjb3AoU1RVQl9BUkdTX0RFQ0xB
UkFUSU9OKQotI2VuZGlmCi0KLURFRklORV9TVFVCX0ZVTkNUSU9OKHZvaWQqLCBvcF90aHJvdykK
LXsKLSAgICBTVFVCX0lOSVRfU1RBQ0tfRlJBTUUoc3RhY2tGcmFtZSk7Ci0gICAgc3RhY2tGcmFt
ZS52bS0+dGhyb3dFeGNlcHRpb24oc3RhY2tGcmFtZS5jYWxsRnJhbWUsIHN0YWNrRnJhbWUuYXJn
c1swXS5qc1ZhbHVlKCkpOyAKLSAgICBFeGNlcHRpb25IYW5kbGVyIGhhbmRsZXIgPSBnZW5lcmlj
VW53aW5kKHN0YWNrRnJhbWUudm0sIHN0YWNrRnJhbWUuY2FsbEZyYW1lLCBzdGFja0ZyYW1lLmFy
Z3NbMF0uanNWYWx1ZSgpKTsKLSAgICBTVFVCX1NFVF9SRVRVUk5fQUREUkVTUyhoYW5kbGVyLmNh
dGNoUm91dGluZSk7Ci0gICAgcmV0dXJuIGhhbmRsZXIuY2FsbEZyYW1lOwotfQotCi1ERUZJTkVf
U1RVQl9GVU5DVElPTih2b2lkLCBvcF90aHJvd19zdGF0aWNfZXJyb3IpCi17Ci0gICAgU1RVQl9J
TklUX1NUQUNLX0ZSQU1FKHN0YWNrRnJhbWUpOwotCi0gICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUg
PSBzdGFja0ZyYW1lLmNhbGxGcmFtZTsKLSAgICBTdHJpbmcgbWVzc2FnZSA9IGVycm9yRGVzY3Jp
cHRpb25Gb3JWYWx1ZShjYWxsRnJhbWUsIHN0YWNrRnJhbWUuYXJnc1swXS5qc1ZhbHVlKCkpLT52
YWx1ZShjYWxsRnJhbWUpOwotICAgIGlmIChzdGFja0ZyYW1lLmFyZ3NbMV0uYXNJbnQzMikKLSAg
ICAgICAgc3RhY2tGcmFtZS52bS0+dGhyb3dFeGNlcHRpb24oY2FsbEZyYW1lLCBjcmVhdGVSZWZl
cmVuY2VFcnJvcihjYWxsRnJhbWUsIG1lc3NhZ2UpKTsKLSAgICBlbHNlCi0gICAgICAgIHN0YWNr
RnJhbWUudm0tPnRocm93RXhjZXB0aW9uKGNhbGxGcmFtZSwgY3JlYXRlVHlwZUVycm9yKGNhbGxG
cmFtZSwgbWVzc2FnZSkpOwotICAgIFZNX1RIUk9XX0VYQ0VQVElPTl9BVF9FTkQoKTsKLX0KLQot
REVGSU5FX1NUVUJfRlVOQ1RJT04odm9pZCosIHZtX3Rocm93KQotewotICAgIFNUVUJfSU5JVF9T
VEFDS19GUkFNRShzdGFja0ZyYW1lKTsKLSAgICBWTSogdm0gPSBzdGFja0ZyYW1lLnZtOwotICAg
IEV4Y2VwdGlvbkhhbmRsZXIgaGFuZGxlciA9IGdlbmVyaWNVbndpbmQodm0sIHN0YWNrRnJhbWUu
Y2FsbEZyYW1lLCB2bS0+ZXhjZXB0aW9uKCkpOwotICAgIFNUVUJfU0VUX1JFVFVSTl9BRERSRVNT
KGhhbmRsZXIuY2F0Y2hSb3V0aW5lKTsKLSAgICByZXR1cm4gaGFuZGxlci5jYWxsRnJhbWU7Ci19
Ci0KICNpZiBVU0UoSlNWQUxVRTMyXzY0KQogRW5jb2RlZEV4Y2VwdGlvbkhhbmRsZXIgSklUX1NU
VUIgY3RpX3ZtX2hhbmRsZV9leGNlcHRpb24oQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCiB7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5oCShyZXZpc2lvbiAxNTc1NzApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTMz
NCw3ICszMzQsNiBAQCBzdHJ1Y3QgSklUU3RhY2tGcmFtZSB7CiAjZGVmaW5lIEpJVF9TVFVCCiAj
ZW5kaWYKIAotZXh0ZXJuICJDIiB2b2lkIGN0aVZNVGhyb3dUcmFtcG9saW5lKCk7CiBleHRlcm4g
IkMiIHZvaWQgY3RpVk1IYW5kbGVFeGNlcHRpb24oKTsKIGV4dGVybiAiQyIgdm9pZCBjdGlPcFRo
cm93Tm90Q2F1Z2h0KCk7CiBleHRlcm4gIkMiIEVuY29kZWRKU1ZhbHVlIGN0aVRyYW1wb2xpbmUo
dm9pZCogY29kZSwgSlNTdGFjayosIENhbGxGcmFtZSosIHZvaWQqIC8qdW51c2VkMSovLCB2b2lk
KiAvKnVudXNlZDIqLywgVk0qKTsKQEAgLTM1NSw5ICszNTQsNiBAQCBleHRlcm4gIkMiIHZvaWQg
Y3RpTWFzbVByb2JlVHJhbXBvbGluZSgpCiB2b2lkIHBlcmZvcm1QbGF0Zm9ybVNwZWNpZmljSklU
QXNzZXJ0aW9ucyhWTSopOwogCiBleHRlcm4gIkMiIHsKLXZvaWQgSklUX1NUVUIgY3RpX29wX3Ro
cm93X3N0YXRpY19lcnJvcihTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRFUk5BTDsKLXZv
aWQqIEpJVF9TVFVCIGN0aV9vcF90aHJvdyhTVFVCX0FSR1NfREVDTEFSQVRJT04pIFdURl9JTlRF
Uk5BTDsKLXZvaWQqIEpJVF9TVFVCIGN0aV92bV90aHJvdyhTVFVCX0FSR1NfREVDTEFSQVRJT04p
IFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOwogCiAjaWYgVVNFKEpTVkFMVUUzMl82
NCkKIEVuY29kZWRFeGNlcHRpb25IYW5kbGVyIEpJVF9TVFVCIGN0aV92bV9oYW5kbGVfZXhjZXB0
aW9uKENhbGxGcmFtZSopIFJFRkVSRU5DRURfRlJPTV9BU00gV1RGX0lOVEVSTkFMOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVic0FSTTY0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVic0FSTTY0LmgJKHJldmlzaW9uIDE1NzU3
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnNBUk02NC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDQsNyArMTA0LDcgQEAgSElERV9TWU1CT0woY3RpVk1IYW5kbGVFeGNlcHRp
b24pICJcbiIKIFNZTUJPTF9TVFJJTkcoY3RpVk1IYW5kbGVFeGNlcHRpb24pICI6IiAiXG4iCiAg
ICAgIm1vdiB4MCwgeDI1IiAiXG4iCiAgICAgImJsICIgTE9DQUxfUkVGRVJFTkNFKGN0aV92bV9o
YW5kbGVfZXhjZXB0aW9uKSAiXG4iCi0gICAgLy8gV2hlbiBjdGlfdm1fdGhyb3dfc2xvd3BhdGgg
cmV0dXJucywgeDAgaGFzIGNhbGxGcmFtZSBhbmQgeDEgaGFzIGhhbmRsZXIgYWRkcmVzcworICAg
IC8vIFdoZW4gY3RpX3ZtX2hhbmRsZV9leGNlcHRpb24gcmV0dXJucywgeDAgaGFzIGNhbGxGcmFt
ZSBhbmQgeDEgaGFzIGhhbmRsZXIgYWRkcmVzcwogICAgICJtb3YgeDI1LCB4MCIgIlxuIgogICAg
ICJiciB4MSIgIlxuIgogCkBAIC0xMjksMTcgKzEyOSw2IEBAIEhJREVfU1lNQk9MKGN0aVRyYW1w
b2xpbmVFbmQpICJcbiIKIFNZTUJPTF9TVFJJTkcoY3RpVHJhbXBvbGluZUVuZCkgIjoiICJcbiIK
ICk7CiAKLWFzbSAoCi0iLnNlY3Rpb24gX19URVhULF9fdGV4dCxyZWd1bGFyLHB1cmVfaW5zdHJ1
Y3Rpb25zIiAiXG4iCi0iLmdsb2JsICIgU1lNQk9MX1NUUklORyhjdGlWTVRocm93VHJhbXBvbGlu
ZSkgIlxuIgotIi5hbGlnbiAyIiAiXG4iCi1ISURFX1NZTUJPTChjdGlWTVRocm93VHJhbXBvbGlu
ZSkgIlxuIgotU1lNQk9MX1NUUklORyhjdGlWTVRocm93VHJhbXBvbGluZSkgIjoiICJcbiIKLSAg
ICAibW92IHgwLCBzcCIgIlxuIgotICAgICJibCAiIExPQ0FMX1JFRkVSRU5DRShjdGlfdm1fdGhy
b3cpICJcbiIKLSAgICAiaGx0IDB4ZGVhZCIgIlxuIiAvLyBTaG91bGQgbm90IGJlIHJlYWNoZWQh
Ci0pOwotCiAjZGVmaW5lIERFRklORV9TVFVCX0ZVTkNUSU9OKHJ0eXBlLCBvcCkgXAogICAgIGV4
dGVybiAiQyIgeyBcCiAgICAgICAgIHJ0eXBlIEpJVFN0dWJUaHVua2VkXyMjb3AoU1RVQl9BUkdT
X0RFQ0xBUkFUSU9OKTsgXApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVi
c0FSTS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnNB
Uk0uaAkocmV2aXNpb24gMTU3NTcwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRT
dHVic0FSTS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzYsMTQgKzE3Niw2IEBAIFNZTUJPTF9TVFJJ
TkcoY3RpVHJhbXBvbGluZUVuZCkgIjoiICJcbiIKICk7CiAKIGFzbSAoCi0iLnRleHQiICJcbiIK
LSIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGN0aVZNVGhyb3dUcmFtcG9saW5lKSAiXG4iCi1ISURF
X1NZTUJPTChjdGlWTVRocm93VHJhbXBvbGluZSkgIlxuIgotSU5MSU5FX0FSTV9GVU5DVElPTihj
dGlWTVRocm93VHJhbXBvbGluZSkKLVNZTUJPTF9TVFJJTkcoY3RpVk1UaHJvd1RyYW1wb2xpbmUp
ICI6IiAiXG4iCi0gICAgIm1vdiByMCwgc3AiICJcbiIKLSAgICAiYmwgIiBTWU1CT0xfU1RSSU5H
KGN0aV92bV90aHJvdykgIlxuIgotCiAvLyBCb3RoIGhhcyB0aGUgc2FtZSByZXR1cm4gc2VxdWVu
Y2UKICIudGV4dCIgIlxuIgogIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoY3RpT3BUaHJvd05vdENh
dWdodCkgIlxuIgpAQCAtMzk2LDE4ICszODgsNiBAQCBfX2FzbSB2b2lkIGN0aVRyYW1wb2xpbmVF
bmQoKQogewogfQogCi1fX2FzbSB2b2lkIGN0aVZNVGhyb3dUcmFtcG9saW5lKCkKLXsKLSAgICBB
Uk0KLSAgICBQUkVTRVJWRTgKLSAgICBtb3YgcjAsIHNwCi0gICAgYmwgY3RpX3ZtX3Rocm93Ci0g
ICAgYWRkIHNwLCBzcCwgIyBQUkVTRVJWRURSNF9PRkZTRVQKLSAgICBsZG1pYSBzcCEsIHtyNC1y
NiwgcjgtcjExLCBscn0KLSAgICBhZGQgc3AsIHNwLCAjMTIKLSAgICBieCBscgotfQotCiBfX2Fz
bSB2b2lkIGN0aU9wVGhyb3dOb3RDYXVnaHQoKQogewogICAgIEFSTQpAQCAtNDU3LDcgKzQzNyw2
IEBAIE1TVkNfQkVHSU4oICAgIEFSRUEgVHJhbXBvbGluZSwgQ09ERSkKIE1TVkNfQkVHSU4oKQog
TVNWQ19CRUdJTiggICAgRVhQT1JUIGN0aVRyYW1wb2xpbmUpCiBNU1ZDX0JFR0lOKCAgICBFWFBP
UlQgY3RpVHJhbXBvbGluZUVuZCkKLU1TVkNfQkVHSU4oICAgIEVYUE9SVCBjdGlWTVRocm93VHJh
bXBvbGluZSkKIE1TVkNfQkVHSU4oICAgIEVYUE9SVCBjdGlPcFRocm93Tm90Q2F1Z2h0KQogTVNW
Q19CRUdJTiggICAgRVhQT1JUIGN0aVZNSGFuZGxlRXhjZXB0aW9uKQogTVNWQ19CRUdJTiggICAg
SU1QT1JUIGN0aV92bV9oYW5kbGVfZXhjZXB0aW9uKQpAQCAtNDc4LDE2ICs0NTcsNiBAQCBNU1ZD
X0JFR0lOKCAgICBieCBscikKIE1TVkNfQkVHSU4oY3RpVHJhbXBvbGluZUVuZCkKIE1TVkNfQkVH
SU4oY3RpVHJhbXBvbGluZSBFTkRQKQogTVNWQ19CRUdJTigpCi1NU1ZDX0JFR0lOKGN0aVZNVGhy
b3dUcmFtcG9saW5lIFBST0MpCi1NU1ZDX0JFR0lOKCAgICBtb3YgcjAsIHNwKQotTVNWQ19CRUdJ
TiggICAgYmwgY3RpX3ZtX3Rocm93KQotTVNWQ19CRUdJTihjdGlPcFRocm93Tm90Q2F1Z2h0KQot
TVNWQ19CRUdJTiggICAgYWRkIHNwLCBzcCwgIzY4IDsgc3luYyB3aXRoIFBSRVNFUlZFRFI0X09G
RlNFVCkKLU1TVkNfQkVHSU4oICAgIGxkbWlhIHNwISwge3I0LXI2LCByOC1yMTEsIGxyfSkKLU1T
VkNfQkVHSU4oICAgIGFkZCBzcCwgc3AsICMxMikKLU1TVkNfQkVHSU4oICAgIGJ4IGxyKQotTVNW
Q19CRUdJTihjdGlWTVRocm93VHJhbXBvbGluZSBFTkRQKQotTVNWQ19CRUdJTigpCiBNU1ZDX0JF
R0lOKGN0aVZNSGFuZGxlRXhjZXB0aW9uIFBST0MpCiBNU1ZDX0JFR0lOKCAgICBtb3YgcjAsIHI1
KQogTVNWQ19CRUdJTiggICAgYmwgY3RpX3ZtX2hhbmRsZV9leGNlcHRpb24pCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzQVJNdjcuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzQVJNdjcuaAkocmV2aXNpb24gMTU3NTcwKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVic0FSTXY3LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI0NywyOSArMjQ3LDYgQEAgU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lRW5kKSAi
OiIgIlxuIgogYXNtICgKICIudGV4dCIgIlxuIgogIi5hbGlnbiAyIiAiXG4iCi0iLmdsb2JsICIg
U1lNQk9MX1NUUklORyhjdGlWTVRocm93VHJhbXBvbGluZSkgIlxuIgotSElERV9TWU1CT0woY3Rp
Vk1UaHJvd1RyYW1wb2xpbmUpICJcbiIKLSIudGh1bWIiICJcbiIKLSIudGh1bWJfZnVuYyAiIFRI
VU1CX0ZVTkNfUEFSQU0oY3RpVk1UaHJvd1RyYW1wb2xpbmUpICJcbiIKLVNZTUJPTF9TVFJJTkco
Y3RpVk1UaHJvd1RyYW1wb2xpbmUpICI6IiAiXG4iCi0gICAgIm1vdiByMCwgc3AiICJcbiIKLSAg
ICAiYmwgIiBMT0NBTF9SRUZFUkVOQ0UoY3RpX3ZtX3Rocm93KSAiXG4iCi0gICAgImxkciByMTEs
IFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9SMTFfT0ZGU0VUKSAiXSIgIlxu
IgotICAgICJsZHIgcjEwLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUjEw
X09GRlNFVCkgIl0iICJcbiIKLSAgICAibGRyIHI5LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9P
RihQUkVTRVJWRURfUjlfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJsZHIgcjgsIFtzcCwgIyIgU1RS
SU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9SOF9PRkZTRVQpICJdIiAiXG4iCi0gICAgImxkciBy
NywgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1I3X09GRlNFVCkgIl0iICJc
biIKLSAgICAibGRyIHI2LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUjZf
T0ZGU0VUKSAiXSIgIlxuIgotICAgICJsZHIgcjUsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09G
KFBSRVNFUlZFRF9SNV9PRkZTRVQpICJdIiAiXG4iCi0gICAgImxkciByNCwgW3NwLCAjIiBTVFJJ
TkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1I0X09GRlNFVCkgIl0iICJcbiIKLSAgICAibGRyIGxy
LCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUkVTRVJWRURfUkVUVVJOX0FERFJFU1NfT0ZG
U0VUKSAiXSIgIlxuIgotICAgICJhZGQgc3AsIHNwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoRklS
U1RfU1RBQ0tfQVJHVU1FTlQpICJcbiIKLSAgICAiYnggbHIiICJcbiIKLSk7Ci0KLWFzbSAoCi0i
LnRleHQiICJcbiIKLSIuYWxpZ24gMiIgIlxuIgogIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoY3Rp
Vk1IYW5kbGVFeGNlcHRpb24pICJcbiIKIEhJREVfU1lNQk9MKGN0aVZNSGFuZGxlRXhjZXB0aW9u
KSAiXG4iCiAiLnRodW1iIiAiXG4iCkBAIC01MTgsMjQgKzQ5NSw2IEBAIF9fYXNtIEVuY29kZWRK
U1ZhbHVlIGN0aVRyYW1wb2xpbmUodm9pZCoKICAgICBieCBscgogfQogCi1fX2FzbSB2b2lkIGN0
aVZNVGhyb3dUcmFtcG9saW5lKCkKLXsKLSAgICBQUkVTRVJWRTgKLSAgICBtb3YgcjAsIHNwCi0g
ICAgYmwgY3RpX3ZtX3Rocm93Ci0gICAgbGRyIHIxMSwgW3NwLCAjIFBSRVNFUlZFRF9SMTFfT0ZG
U0VUIF0KLSAgICBsZHIgcjEwLCBbc3AsICMgUFJFU0VSVkVEX1IxMF9PRkZTRVQgXQotICAgIGxk
ciByOSwgW3NwLCAjIFBSRVNFUlZFRF9SOV9PRkZTRVQgXQotICAgIGxkciByOCwgW3NwLCAjIFBS
RVNFUlZFRF9SOF9PRkZTRVQgXQotICAgIGxkciByNywgW3NwLCAjIFBSRVNFUlZFRF9SN19PRkZT
RVQgXQotICAgIGxkciByNiwgW3NwLCAjIFBSRVNFUlZFRF9SNl9PRkZTRVQgXQotICAgIGxkciBy
NSwgW3NwLCAjIFBSRVNFUlZFRF9SNV9PRkZTRVQgXQotICAgIGxkciByNCwgW3NwLCAjIFBSRVNF
UlZFRF9SNF9PRkZTRVQgXQotICAgIGxkciBsciwgW3NwLCAjIFBSRVNFUlZFRF9SRVRVUk5fQURE
UkVTU19PRkZTRVQgXQotICAgIGFkZCBzcCwgc3AsICMgRklSU1RfU1RBQ0tfQVJHVU1FTlQKLSAg
ICBieCBscgotfQotCiBfX2FzbSB2b2lkIGN0aU9wVGhyb3dOb3RDYXVnaHQoKQogewogICAgIFBS
RVNFUlZFOApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVic01JUFMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzTUlQUy5oCShy
ZXZpc2lvbiAxNTc1NzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzTUlQ
Uy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsMzkgKzEwMSw2IEBAIGFzbSAoCiAiLnNldCBub3Jl
b3JkZXIiICJcbiIKICIuc2V0IG5vbWFjcm8iICJcbiIKICIuc2V0IG5vbWlwczE2IiAiXG4iCi0i
Lmdsb2JsICIgU1lNQk9MX1NUUklORyhjdGlWTVRocm93VHJhbXBvbGluZSkgIlxuIgotIi5lbnQg
IiBTWU1CT0xfU1RSSU5HKGN0aVZNVGhyb3dUcmFtcG9saW5lKSAiXG4iCi1TWU1CT0xfU1RSSU5H
KGN0aVZNVGhyb3dUcmFtcG9saW5lKSAiOiIgIlxuIgotI2lmIFdURl9NSVBTX1BJQwotIi5zZXQg
bWFjcm8iICJcbiIKLSIuY3Bsb2FkICQzMSIgIlxuIgotICAgICJsYSAgICAkMjUsIiBTWU1CT0xf
U1RSSU5HKGN0aV92bV90aHJvdykgIlxuIgotIi5zZXQgbm9tYWNybyIgIlxuIgotICAgICJiYWwg
IiBTWU1CT0xfU1RSSU5HKGN0aV92bV90aHJvdykgIlxuIgotICAgICJtb3ZlICAkNCwkMjkiICJc
biIKLSNlbHNlCi0gICAgImphbCAiIFNZTUJPTF9TVFJJTkcoY3RpX3ZtX3Rocm93KSAiXG4iCi0g
ICAgIm1vdmUgICQ0LCQyOSIgIlxuIgotI2VuZGlmCi0gICAgImx3ICAgICQxNiwiIFNUUklOR0la
RV9WQUxVRV9PRihQUkVTRVJWRURfUzBfT0ZGU0VUKSAiKCQyOSkiICJcbiIKLSAgICAibHcgICAg
JDE3LCIgU1RSSU5HSVpFX1ZBTFVFX09GKFBSRVNFUlZFRF9TMV9PRkZTRVQpICIoJDI5KSIgIlxu
IgotICAgICJsdyAgICAkMTgsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1MyX09GRlNF
VCkgIigkMjkpIiAiXG4iCi0gICAgImx3ICAgICQxOSwiIFNUUklOR0laRV9WQUxVRV9PRihQUkVT
RVJWRURfUzNfT0ZGU0VUKSAiKCQyOSkiICJcbiIKLSAgICAibHcgICAgJDIwLCIgU1RSSU5HSVpF
X1ZBTFVFX09GKFBSRVNFUlZFRF9TNF9PRkZTRVQpICIoJDI5KSIgIlxuIgotICAgICJsdyAgICAk
MzEsIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJFU0VSVkVEX1JFVFVSTl9BRERSRVNTX09GRlNFVCkg
IigkMjkpIiAiXG4iCi0gICAgImpyICAgICQzMSIgIlxuIgotICAgICJhZGRpdSAkMjksJDI5LCIg
U1RSSU5HSVpFX1ZBTFVFX09GKFNUQUNLX0xFTkdUSCkgIlxuIgotIi5zZXQgcmVvcmRlciIgIlxu
IgotIi5zZXQgbWFjcm8iICJcbiIKLSIuZW5kICIgU1lNQk9MX1NUUklORyhjdGlWTVRocm93VHJh
bXBvbGluZSkgIlxuIgotKTsKLQotYXNtICgKLSIudGV4dCIgIlxuIgotIi5hbGlnbiAyIiAiXG4i
Ci0iLnNldCBub3Jlb3JkZXIiICJcbiIKLSIuc2V0IG5vbWFjcm8iICJcbiIKLSIuc2V0IG5vbWlw
czE2IiAiXG4iCiAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhjdGlWTUhhbmRsZUV4Y2VwdGlvbikg
IlxuIgogIi5lbnQgIiBTWU1CT0xfU1RSSU5HKGN0aVZNSGFuZGxlRXhjZXB0aW9uKSAiXG4iCiBT
WU1CT0xfU1RSSU5HKGN0aVZNSGFuZGxlRXhjZXB0aW9uKSAiOiIgIlxuIgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVic01TVkM2NC5hc20KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVic01TVkM2NC5hc20JKHJldmlzaW9uIDE1NzU3
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnNNU1ZDNjQuYXNtCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw2IEBAIEVYVEVSTiBjdGlfdm1faGFuZGxlX2V4Y2VwdGlv
biA6IG5lYXIKIEVYVEVSTiBnZXRIb3N0Q2FsbFJldHVyblZhbHVlV2l0aEV4ZWNTdGF0ZSA6IG5l
YXIKIAogUFVCTElDIGN0aVRyYW1wb2xpbmUKLVBVQkxJQyBjdGlWTVRocm93VHJhbXBvbGluZQog
UFVCTElDIGN0aU9wVGhyb3dOb3RDYXVnaHQKIFBVQkxJQyBnZXRIb3N0Q2FsbFJldHVyblZhbHVl
CiAKQEAgLTY2LDEyICs2NSw2IEBAIGN0aVRyYW1wb2xpbmUgUFJPQwogICAgIHJldAogY3RpVHJh
bXBvbGluZSBFTkRQCiAKLWN0aVZNVGhyb3dUcmFtcG9saW5lIFBST0MKLSAgICBtb3YgcmN4LCBy
c3AKLSAgICBjYWxsIGN0aV92bV90aHJvdwotICAgIGludCAzCi1jdGlWTVRocm93VHJhbXBvbGlu
ZSBFTkRQCi0KIGN0aVZNSGFuZGxlRXhjZXB0aW9uIFBST0MKIAlzdWIgcnNwLCAxNgogICAgIG1v
diByY3gsIHJzcApAQCAtMTAzLDQgKzk2LDQgQEAgZ2V0SG9zdENhbGxSZXR1cm5WYWx1ZSBFTkRQ
CiAKIF9URVhUICAgRU5EUwogCi1FTkQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitFTkQK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnNTSDQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzU0g0LmgJKHJldmlzaW9uIDE1
NzU3MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnNTSDQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtODMsMzAgKzgzLDYgQEAgU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lRW5k
KSAiOiIgIlxuIgogKTsKIAogYXNtIHZvbGF0aWxlICgKLSIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5H
KGN0aVZNVGhyb3dUcmFtcG9saW5lKSAiXG4iCi1ISURFX1NZTUJPTChjdGlWTVRocm93VHJhbXBv
bGluZSkgIlxuIgotU1lNQk9MX1NUUklORyhjdGlWTVRocm93VHJhbXBvbGluZSkgIjoiICJcbiIK
LSAgICAibW92LmwgLkwyIiBTWU1CT0xfU1RSSU5HKGN0aV92bV90aHJvdykgIixyMCIgIlxuIgot
ICAgICJtb3YgcjE1LCByNCIgIlxuIgotICAgICJtb3YubCBAKHIwLHIxMikscjExIiAiXG4iCi0g
ICAgImpzciBAcjExIiAiXG4iCi0gICAgIm5vcCIgIlxuIgotICAgICJhZGQgIyIgU1RSSU5HSVpF
X1ZBTFVFX09GKFNBVkVEX1I4X09GRlNFVCkgIiwgcjE1IiAiXG4iCi0gICAgIm1vdi5sIEByMTUr
LHI4IiAiXG4iCi0gICAgIm1vdi5sIEByMTUrLHI5IiAiXG4iCi0gICAgIm1vdi5sIEByMTUrLHIx
MCIgIlxuIgotICAgICJtb3YubCBAcjE1KyxyMTEiICJcbiIKLSAgICAibW92LmwgQHIxNSsscjEz
IiAiXG4iCi0gICAgImxkcy5sIEByMTUrLHByIiAiXG4iCi0gICAgIm1vdi5sIEByMTUrLHIxNCIg
IlxuIgotICAgICJhZGQgIzEyLCByMTUiICJcbiIKLSAgICAicnRzIiAiXG4iCi0gICAgIm5vcCIg
IlxuIgotICAgICIuYWxpZ24gMiIgIlxuIgotICAgICIuTDIiIFNZTUJPTF9TVFJJTkcoY3RpX3Zt
X3Rocm93KSAiOi5sb25nICIgU1lNQk9MX1NUUklORyhjdGlfdm1fdGhyb3cpICJAR09UIFxuIgot
KTsKLQotYXNtIHZvbGF0aWxlICgKICIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGN0aVZNSGFuZGxl
RXhjZXB0aW9uKSAiXG4iCiBISURFX1NZTUJPTChjdGlWTUhhbmRsZUV4Y2VwdGlvbikgIlxuIgog
U1lNQk9MX1NUUklORyhjdGlWTUhhbmRsZUV4Y2VwdGlvbikgIjoiICJcbiIKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnNYODYuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzWDg2LmgJKHJldmlzaW9uIDE1NzU3MCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnNYODYuaAkod29ya2luZyBjb3B5KQpAQCAt
NzcsMTUgKzc3LDYgQEAgU1lNQk9MX1NUUklORyhjdGlUcmFtcG9saW5lRW5kKSAiOiIgIlxuIgog
KTsKIAogYXNtICgKLSIuZ2xvYmwgIiBTWU1CT0xfU1RSSU5HKGN0aVZNVGhyb3dUcmFtcG9saW5l
KSAiXG4iCi1ISURFX1NZTUJPTChjdGlWTVRocm93VHJhbXBvbGluZSkgIlxuIgotU1lNQk9MX1NU
UklORyhjdGlWTVRocm93VHJhbXBvbGluZSkgIjoiICJcbiIKLSAgICAibW92bCAlZXNwLCAlZWN4
IiAiXG4iCi0gICAgImNhbGwgIiBMT0NBTF9SRUZFUkVOQ0UoY3RpX3ZtX3Rocm93KSAiXG4iCi0g
ICAgImludDMiICJcbiIKLSk7Ci0KLWFzbSAoCiAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhjdGlW
TUhhbmRsZUV4Y2VwdGlvbikgIlxuIgogSElERV9TWU1CT0woY3RpVk1IYW5kbGVFeGNlcHRpb24p
ICJcbiIKIFNZTUJPTF9TVFJJTkcoY3RpVk1IYW5kbGVFeGNlcHRpb24pICI6IiAiXG4iCkBAIC0y
OTUsMTUgKzI4Niw2IEBAIGV4dGVybiAiQyIgewogICAgICAgICB9CiAgICAgfQogCi0gICAgX19k
ZWNsc3BlYyhuYWtlZCkgdm9pZCBjdGlWTVRocm93VHJhbXBvbGluZSgpCi0gICAgewotICAgICAg
ICBfX2FzbSB7Ci0gICAgICAgICAgICBtb3YgZWN4LCBlc3A7Ci0gICAgICAgICAgICBjYWxsIGN0
aV92bV90aHJvdzsKLSAgICAgICAgICAgIGludCAzOwotICAgICAgICB9Ci0gICAgfQotCiAgICAg
X19kZWNsc3BlYyhuYWtlZCkgdm9pZCBjdGlWTUhhbmRsZUV4Y2VwdGlvbigpCiAgICAgewogICAg
ICAgICBfX2FzbSB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzWDg2
XzY0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVic1g4
Nl82NC5oCShyZXZpc2lvbiAxNTc1NzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFN0dWJzWDg2XzY0LmgJKHdvcmtpbmcgY29weSkKQEAgLTkwLDE1ICs5MCw2IEBAIFNZTUJPTF9T
VFJJTkcoY3RpVHJhbXBvbGluZUVuZCkgIjoiICJcbiIKICk7CiAKIGFzbSAoCi0iLmdsb2JsICIg
U1lNQk9MX1NUUklORyhjdGlWTVRocm93VHJhbXBvbGluZSkgIlxuIgotSElERV9TWU1CT0woY3Rp
Vk1UaHJvd1RyYW1wb2xpbmUpICJcbiIKLVNZTUJPTF9TVFJJTkcoY3RpVk1UaHJvd1RyYW1wb2xp
bmUpICI6IiAiXG4iCi0gICAgIm1vdnEgJXJzcCwgJXJkaSIgIlxuIgotICAgICJjYWxsICIgTE9D
QUxfUkVGRVJFTkNFKGN0aV92bV90aHJvdykgIlxuIgotICAgICJpbnQzIiAiXG4iCi0pOwotCi1h
c20gKAogIi5nbG9ibCAiIFNZTUJPTF9TVFJJTkcoY3RpVk1IYW5kbGVFeGNlcHRpb24pICJcbiIK
IEhJREVfU1lNQk9MKGN0aVZNSGFuZGxlRXhjZXB0aW9uKSAiXG4iCiBTWU1CT0xfU1RSSU5HKGN0
aVZNSGFuZGxlRXhjZXB0aW9uKSAiOiIgIlxuIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KU0ludGVyZmFjZUpJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSlNJbnRlcmZhY2VKSVQuaAkocmV2aXNpb24gMTU3NTcwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KU0ludGVyZmFjZUpJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC02Miw2ICs2
Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAvLyBob3dldmVyIHRoZSBjb2RlIHdpbGwg
c3RpbGwgZnVuY3Rpb24gY29ycmVjdGx5LgogI2lmIENQVShYODZfNjQpCiAgICAgICAgIHN0YXRp
YyBjb25zdCBSZWdpc3RlcklEIHJldHVyblZhbHVlUmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6OmVh
eDsKKyAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmV0dXJuVmFsdWUyUmVnaXN0ZXIg
PSBYODZSZWdpc3RlcnM6OmVkeDsKICAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgY2Fj
aGVkUmVzdWx0UmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6OmVheDsKICNpZiAhT1MoV0lORE9XUykK
ICAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgZmlyc3RBcmd1bWVudFJlZ2lzdGVyID0g
WDg2UmVnaXN0ZXJzOjplZGk7Cg==
</data>
<flag name="review"
          id="237009"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>