<?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>127224</bug_id>
          
          <creation_ts>2014-01-18 10:14:41 -0800</creation_ts>
          <short_desc>Remove the remaining threaded parser code</short_desc>
          <delta_ts>2014-01-18 10:21:13 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>kangil.han</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>969459</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-01-18 10:14:41 -0800</bug_when>
    <thetext>Remove the remaining threaded parser code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>969460</commentid>
    <comment_count>1</comment_count>
      <attachid>221554</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-01-18 10:15:10 -0800</bug_when>
    <thetext>Created attachment 221554
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>969462</commentid>
    <comment_count>2</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-01-18 10:21:13 -0800</bug_when>
    <thetext>Committed r162258: &lt;http://trac.webkit.org/changeset/162258&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221554</attachid>
            <date>2014-01-18 10:15:10 -0800</date>
            <delta_ts>2014-01-18 10:19:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127224-20140118101509.patch</filename>
            <type>text/plain</type>
            <size>32583</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYyMjU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTdjOGU1NjgzYWIyNzdl
ZDUxZjI3OWYyN2FhOWUxYWY5MTUxMjdlNC4uNWZjM2Q3MjY1OWM0Njg3ZDgxZjViM2ZlNmU4Zjgz
OTljZTE0MjIwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM4IEBACiAyMDE0LTAxLTE4ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgUmVtb3ZlIHRoZSBy
ZW1haW5pbmcgdGhyZWFkZWQgcGFyc2VyIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzIyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpkZWNyZW1lbnRBY3RpdmVQYXJzZXJDb3VudCk6CisgICAgICAgICogaHRt
bC9wYXJzZXIvQXRvbWljSFRNTFRva2VuLmg6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTERv
Y3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6
SFRNTERvY3VtZW50UGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNl
cjo6ZGV0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6c3RvcFBh
cnNpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpwcmVwYXJlVG9T
dG9wUGFyc2luZyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6OnJlc3Vt
ZVBhcnNpbmdBZnRlcllpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNl
cjo6Zm9yY2VQbGFpbnRleHRGb3JUZXh0RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TERvY3VtZW50UGFyc2VyOjppbnNlcnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50
UGFyc2VyOjphcHBlbmQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpl
bmQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpmaW5pc2gpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjp0ZXh0UG9zaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpyZXN1bWVQYXJzaW5nQWZ0ZXJTY3JpcHRF
eGVjdXRpb24pOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oOgor
ICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxQYXJzZXJJZGlvbXMuY3BwOgorICAgICAgICAqIGh0
bWwvcGFyc2VyL0hUTUxQYXJzZXJJZGlvbXMuaDoKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1M
VG9rZW5pemVyLmNwcDoKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MVG9rZW5pemVyLmg6Cisg
ICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50TG9hZGVyOjppc0xvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2Fk
ZXI6OmNoZWNrTG9hZENvbXBsZXRlKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmluOgorCisy
MDE0LTAxLTE4ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKICAgICAg
ICAgUmVtb3ZlIHRocmVhZGVkIHBhcnNlciBjb2RlIGZyb20gdGhlIHByZWxvYWQgc2Nhbm5lcnMK
ICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzIyMgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAyNTE3ZTA0NzFhMDBjZDE3NWJlZDBhMDU0ZjYw
NGU4Njg1YTI3MjgyLi42ZGY4NWM3NzUzZjhjZmUzMTMyMWFkMGI1NzdmMmZlYzdjNDQ0OTU2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTU4NTMsMTIgKzU4NTMsMTAgQEAgdm9pZCBEb2N1
bWVudDo6ZGVjcmVtZW50QWN0aXZlUGFyc2VyQ291bnQoKQogICAgIC0tbV9hY3RpdmVQYXJzZXJD
b3VudDsKICAgICBpZiAoIWZyYW1lKCkpCiAgICAgICAgIHJldHVybjsKLSAgICAvLyBGSVhNRTog
VGhpcyBzaG91bGQgYWx3YXlzIGJlIGVuYWJsZWQsIGJ1dCBpdCBzZWVtcyB0byBjYXVzZQotICAg
IC8vIGh0dHAvdGVzdHMvc2VjdXJpdHkvZmVlZC11cmxzLWZyb20tcmVtb3RlLmh0bWwgdG8gdGlt
ZW91dCBvbiBNYWMgV0sxCi0gICAgLy8gc2VlIGh0dHA6Ly93ZWJraXQub3JnL2IvMTEwNTU0IGFu
ZCBodHRwOi8vd2Via2l0Lm9yZy9iLzExMDQwMQotI2lmIEVOQUJMRShUSFJFQURFRF9IVE1MX1BB
UlNFUikKLSAgICBsb2FkZXIoKS0+Y2hlY2tMb2FkQ29tcGxldGUoKTsKLSNlbmRpZgorCisgICAg
Ly8gRklYTUU6IFdlIHNob3VsZCBjYWxsIGxvYWRlcigpLT5jaGVja0xvYWRDb21wbGV0ZSgpIGFz
IHdlbGwgaGVyZSwKKyAgICAvLyBidXQgaXQgc2VlbXMgdG8gY2F1c2UgaHR0cC90ZXN0cy9zZWN1
cml0eS9mZWVkLXVybHMtZnJvbS1yZW1vdGUuaHRtbAorICAgIC8vIHRvIHRpbWVvdXQgb24gTWFj
IFdLMTsgc2VlIGh0dHA6Ly93ZWJraXQub3JnL2IvMTEwNTU0IGFuZCBodHRwOi8vd2Via2l0Lm9y
Zy9iLzExMDQwMS4KICAgICBmcmFtZSgpLT5sb2FkZXIoKS5jaGVja0xvYWRDb21wbGV0ZSgpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9BdG9taWNIVE1MVG9r
ZW4uaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0F0b21pY0hUTUxUb2tlbi5oCmluZGV4
IDJmYzQ2ODUxMDQzMGFjZjgxZDlhNGQxMTMxZjEzMDgwZjBlZGRlN2QuLjk3NDAwMTEwNDFlYTg2
MGYzYTY0Y2Q5ZjA5Y2QxM2NlYzI0ZDg4ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0F0b21pY0hUTUxUb2tlbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0F0b21pY0hUTUxUb2tlbi5oCkBAIC0xNTIsNTkgKzE1Miw2IEBAIHB1YmxpYzoKICAgICAg
ICAgfQogICAgIH0KIAotI2lmIEVOQUJMRShUSFJFQURFRF9IVE1MX1BBUlNFUikKLQotICAgIGV4
cGxpY2l0IEF0b21pY0hUTUxUb2tlbihjb25zdCBDb21wYWN0SFRNTFRva2VuJiB0b2tlbikKLSAg
ICAgICAgOiBtX3R5cGUodG9rZW4udHlwZSgpKQotICAgIHsKLSAgICAgICAgc3dpdGNoIChtX3R5
cGUpIHsKLSAgICAgICAgY2FzZSBIVE1MVG9rZW46OlVuaW5pdGlhbGl6ZWQ6Ci0gICAgICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IEhUTUxUb2tlbjo6RE9DVFlQRToKLSAgICAgICAgICAgIG1fbmFtZSA9IHRva2VuLmRhdGEoKS5h
c1N0cmluZygpOwotICAgICAgICAgICAgbV9kb2N0eXBlRGF0YSA9IGFkb3B0UHRyKG5ldyBEb2N0
eXBlRGF0YSgpKTsKLSAgICAgICAgICAgIG1fZG9jdHlwZURhdGEtPm1faGFzUHVibGljSWRlbnRp
ZmllciA9IHRydWU7Ci0gICAgICAgICAgICBhcHBlbmQobV9kb2N0eXBlRGF0YS0+bV9wdWJsaWNJ
ZGVudGlmaWVyLCB0b2tlbi5wdWJsaWNJZGVudGlmaWVyKCkuYXNTdHJpbmcoKSk7Ci0gICAgICAg
ICAgICBtX2RvY3R5cGVEYXRhLT5tX2hhc1N5c3RlbUlkZW50aWZpZXIgPSB0cnVlOwotICAgICAg
ICAgICAgYXBwZW5kKG1fZG9jdHlwZURhdGEtPm1fc3lzdGVtSWRlbnRpZmllciwgdG9rZW4uc3lz
dGVtSWRlbnRpZmllcigpKTsKLSAgICAgICAgICAgIG1fZG9jdHlwZURhdGEtPm1fZm9yY2VRdWly
a3MgPSB0b2tlbi5kb2N0eXBlRm9yY2VzUXVpcmtzKCk7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSBIVE1MVG9rZW46OkVuZE9mRmlsZToKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIEhUTUxUb2tlbjo6U3RhcnRUYWc6Ci0gICAgICAgICAgICBtX2F0dHJpYnV0ZXMu
cmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh0b2tlbi5hdHRyaWJ1dGVzKCkuc2l6ZSgpKTsKLSAgICAg
ICAgICAgIGZvciAoVmVjdG9yPENvbXBhY3RIVE1MVG9rZW46OkF0dHJpYnV0ZT46OmNvbnN0X2l0
ZXJhdG9yIGl0ID0gdG9rZW4uYXR0cmlidXRlcygpLmJlZ2luKCk7IGl0ICE9IHRva2VuLmF0dHJp
YnV0ZXMoKS5lbmQoKTsgKytpdCkgewotICAgICAgICAgICAgICAgIFF1YWxpZmllZE5hbWUgbmFt
ZShudWxsQXRvbSwgaXQtPm5hbWUuYXNTdHJpbmcoKSwgbnVsbEF0b20pOwotICAgICAgICAgICAg
ICAgIC8vIEZJWE1FOiBUaGlzIGlzIE5eMiBmb3IgdGhlIG51bWJlciBvZiBhdHRyaWJ1dGVzLgot
ICAgICAgICAgICAgICAgIGlmICghZmluZEF0dHJpYnV0ZUluVmVjdG9yKG1fYXR0cmlidXRlcywg
bmFtZSkpCi0gICAgICAgICAgICAgICAgICAgIG1fYXR0cmlidXRlcy5hcHBlbmQoQXR0cmlidXRl
KG5hbWUsIGl0LT52YWx1ZSkpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgLy8gRmFsbCB0
aHJvdWdoIQotICAgICAgICBjYXNlIEhUTUxUb2tlbjo6RW5kVGFnOgotICAgICAgICAgICAgbV9z
ZWxmQ2xvc2luZyA9IHRva2VuLnNlbGZDbG9zaW5nKCk7Ci0gICAgICAgICAgICBtX25hbWUgPSB0
b2tlbi5kYXRhKCkuYXNTdHJpbmcoKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IEhUTUxUb2tlbjo6Q29tbWVudDoKLSAgICAgICAgICAgIG1fZGF0YSA9IHRva2VuLmRhdGEoKS5h
c1N0cmluZygpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgSFRNTFRva2VuOjpD
aGFyYWN0ZXI6IHsKLSAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgc3RyaW5nID0gdG9rZW4uZGF0
YSgpLmFzU3RyaW5nKCk7Ci0gICAgICAgICAgICBtX2V4dGVybmFsQ2hhcmFjdGVycyA9IHN0cmlu
Zy5jaGFyYWN0ZXJzKCk7Ci0gICAgICAgICAgICBtX2V4dGVybmFsQ2hhcmFjdGVyc0xlbmd0aCA9
IHN0cmluZy5sZW5ndGgoKTsKLSAgICAgICAgICAgIG1faXNBbGw4Qml0RGF0YSA9IHRva2VuLmlz
QWxsOEJpdERhdGEoKTsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBXZSB3b3VsZCBsaWtlIGEgc3Ry
b25nZXIgQVNTRVJUIGhlcmU6Ci0gICAgICAgICAgICAvLyBBU1NFUlQoc3RyaW5nLmlzOEJpdCgp
ID09IHRva2VuLmlzQWxsOEJpdERhdGEoKSk7Ci0gICAgICAgICAgICAvLyBidXQgY3VycmVudGx5
IHRoYXQgZmlyZXMsIGxpa2VseSBkdWUgdG8gYnVncyBpbiBIVE1MVG9rZW5pemVyCi0gICAgICAg
ICAgICAvLyBub3Qgc2V0dGluZyBpc0FsbDhCaXREYXRhIGluIGFsbCB0aGUgdGltZXMgaXQgY291
bGQuCi0gICAgICAgICAgICBBU1NFUlQoIXRva2VuLmlzQWxsOEJpdERhdGEoKSB8fCBzdHJpbmcu
aXM4Qml0KCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgfQotICAg
IH0KLQotI2VuZGlmCi0KICAgICBleHBsaWNpdCBBdG9taWNIVE1MVG9rZW4oSFRNTFRva2VuOjpU
eXBlIHR5cGUpCiAgICAgICAgIDogbV90eXBlKHR5cGUpCiAgICAgICAgICwgbV9leHRlcm5hbENo
YXJhY3RlcnMoMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxE
b2N1bWVudFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1l
bnRQYXJzZXIuY3BwCmluZGV4IGI2NTI1NTIzOWVjNGI2MzdkMDQxN2RmNTI5NGUzNGZjNjg0NDcz
YmEuLjUyYjUzZjFjYTFkZWZmOGVjNTczNzgxOGY4YzNiNTMxM2YwNDY1MmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcApAQCAtNzYs
OSArNzYsNiBAQCBIVE1MRG9jdW1lbnRQYXJzZXI6OkhUTUxEb2N1bWVudFBhcnNlcihIVE1MRG9j
dW1lbnQmIGRvY3VtZW50KQogICAgICwgbV90cmVlQnVpbGRlcihIVE1MVHJlZUJ1aWxkZXI6OmNy
ZWF0ZSgqdGhpcywgZG9jdW1lbnQsIHBhcnNlckNvbnRlbnRQb2xpY3koKSwgbV9vcHRpb25zKSkK
ICAgICAsIG1fcGFyc2VyU2NoZWR1bGVyKEhUTUxQYXJzZXJTY2hlZHVsZXI6OmNyZWF0ZSgqdGhp
cykpCiAgICAgLCBtX3hzc0F1ZGl0b3JEZWxlZ2F0ZShkb2N1bWVudCkKLSNpZiBFTkFCTEUoVEhS
RUFERURfSFRNTF9QQVJTRVIpCi0gICAgLCBtX3dlYWtGYWN0b3J5KHRoaXMpCi0jZW5kaWYKICAg
ICAsIG1fcHJlbG9hZGVyKGFkb3B0UHRyKG5ldyBIVE1MUmVzb3VyY2VQcmVsb2FkZXIoZG9jdW1l
bnQpKSkKICAgICAsIG1fZW5kV2FzRGVsYXllZChmYWxzZSkKICAgICAsIG1faGF2ZUJhY2tncm91
bmRQYXJzZXIoZmFsc2UpCkBAIC05Nyw5ICs5NCw2IEBAIEhUTUxEb2N1bWVudFBhcnNlcjo6SFRN
TERvY3VtZW50UGFyc2VyKERvY3VtZW50RnJhZ21lbnQmIGZyYWdtZW50LCBFbGVtZW50KiBjb250
CiAgICAgLCBtX3Rva2VuaXplcihIVE1MVG9rZW5pemVyOjpjcmVhdGUobV9vcHRpb25zKSkKICAg
ICAsIG1fdHJlZUJ1aWxkZXIoSFRNTFRyZWVCdWlsZGVyOjpjcmVhdGUoKnRoaXMsIGZyYWdtZW50
LCBjb250ZXh0RWxlbWVudCwgdGhpcy0+cGFyc2VyQ29udGVudFBvbGljeSgpLCBtX29wdGlvbnMp
KQogICAgICwgbV94c3NBdWRpdG9yRGVsZWdhdGUoZnJhZ21lbnQuZG9jdW1lbnQoKSkKLSNpZiBF
TkFCTEUoVEhSRUFERURfSFRNTF9QQVJTRVIpCi0gICAgLCBtX3dlYWtGYWN0b3J5KHRoaXMpCi0j
ZW5kaWYKICAgICAsIG1fZW5kV2FzRGVsYXllZChmYWxzZSkKICAgICAsIG1faGF2ZUJhY2tncm91
bmRQYXJzZXIoZmFsc2UpCiAgICAgLCBtX3B1bXBTZXNzaW9uTmVzdGluZ0xldmVsKDApCkBAIC0x
MjAsMTEgKzExNCw4IEBAIEhUTUxEb2N1bWVudFBhcnNlcjo6fkhUTUxEb2N1bWVudFBhcnNlcigp
CiAKIHZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjpkZXRhY2goKQogewotI2lmIEVOQUJMRShUSFJF
QURFRF9IVE1MX1BBUlNFUikKLSAgICBpZiAobV9oYXZlQmFja2dyb3VuZFBhcnNlcikKLSAgICAg
ICAgc3RvcEJhY2tncm91bmRQYXJzZXIoKTsKLSNlbmRpZgogICAgIERvY3VtZW50UGFyc2VyOjpk
ZXRhY2goKTsKKwogICAgIGlmIChtX3NjcmlwdFJ1bm5lcikKICAgICAgICAgbV9zY3JpcHRSdW5u
ZXItPmRldGFjaCgpOwogICAgIG1fdHJlZUJ1aWxkZXItPmRldGFjaCgpOwpAQCAtMTM5LDEwICsx
MzAsNiBAQCB2b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6c3RvcFBhcnNpbmcoKQogewogICAgIERv
Y3VtZW50UGFyc2VyOjpzdG9wUGFyc2luZygpOwogICAgIG1fcGFyc2VyU2NoZWR1bGVyLmNsZWFy
KCk7IC8vIERlbGV0aW5nIHRoZSBzY2hlZHVsZXIgd2lsbCBjbGVhciBhbnkgdGltZXJzLgotI2lm
IEVOQUJMRShUSFJFQURFRF9IVE1MX1BBUlNFUikKLSAgICBpZiAobV9oYXZlQmFja2dyb3VuZFBh
cnNlcikKLSAgICAgICAgc3RvcEJhY2tncm91bmRQYXJzZXIoKTsKLSNlbmRpZgogfQogCiAvLyBU
aGlzIGtpY2tzIG9mZiAiT25jZSB0aGUgdXNlciBhZ2VudCBzdG9wcyBwYXJzaW5nIiBhcyBkZXNj
cmliZWQgYnk6CkBAIC0xNTksMTQgKzE0Niw3IEBAIHZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjpw
cmVwYXJlVG9TdG9wUGFyc2luZygpCiAKICAgICAvLyBOT1RFOiBUaGlzIHB1bXAgc2hvdWxkIG9u
bHkgZXZlciBlbWl0IGJ1ZmZlcmVkIGNoYXJhY3RlciB0b2tlbnMsCiAgICAgLy8gc28gRm9yY2VT
eW5jaHJvbm91cyB2cy4gQWxsb3dZaWVsZCBzaG91bGQgYmUgbWVhbmluZ2xlc3MuCi0jaWYgRU5B
QkxFKFRIUkVBREVEX0hUTUxfUEFSU0VSKQotICAgIGlmIChtX3Rva2VuaXplcikgewotICAgICAg
ICBBU1NFUlQoIW1faGF2ZUJhY2tncm91bmRQYXJzZXIpOwotICAgICAgICBwdW1wVG9rZW5pemVy
SWZQb3NzaWJsZShGb3JjZVN5bmNocm9ub3VzKTsKLSAgICB9Ci0jZWxzZQogICAgIHB1bXBUb2tl
bml6ZXJJZlBvc3NpYmxlKEZvcmNlU3luY2hyb25vdXMpOwotI2VuZGlmCiAKICAgICBpZiAoaXNT
dG9wcGVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTIyMSwxMyArMjAxLDYgQEAgdm9pZCBIVE1M
RG9jdW1lbnRQYXJzZXI6OnJlc3VtZVBhcnNpbmdBZnRlcllpZWxkKCkKICAgICAvLyBidXQgd2Ug
bmVlZCB0byBlbnN1cmUgaXQgaXNuJ3QgZGVsZXRlZCB5ZXQuCiAgICAgUmVmPEhUTUxEb2N1bWVu
dFBhcnNlcj4gcHJvdGVjdCgqdGhpcyk7CiAKLSNpZiBFTkFCTEUoVEhSRUFERURfSFRNTF9QQVJT
RVIpCi0gICAgaWYgKG1faGF2ZUJhY2tncm91bmRQYXJzZXIpIHsKLSAgICAgICAgcHVtcFBlbmRp
bmdTcGVjdWxhdGlvbnMoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSNlbmRpZgotCiAgICAg
Ly8gV2Ugc2hvdWxkIG5ldmVyIGJlIGhlcmUgdW5sZXNzIHdlIGNhbiBwdW1wIGltbWVkaWF0ZWx5
LiAgQ2FsbCBwdW1wVG9rZW5pemVyKCkKICAgICAvLyBkaXJlY3RseSBzbyB0aGF0IEFTU0VSVFMg
d2lsbCBmaXJlIGlmIHdlJ3JlIHdyb25nLgogICAgIHB1bXBUb2tlbml6ZXIoQWxsb3dZaWVsZCk7
CkBAIC0yODIsMTk4ICsyNTUsOSBAQCBib29sIEhUTUxEb2N1bWVudFBhcnNlcjo6Y2FuVGFrZU5l
eHRUb2tlbihTeW5jaHJvbm91c01vZGUgbW9kZSwgUHVtcFNlc3Npb24mIHNlcwogICAgIHJldHVy
biB0cnVlOwogfQogCi0jaWYgRU5BQkxFKFRIUkVBREVEX0hUTUxfUEFSU0VSKQotCi12b2lkIEhU
TUxEb2N1bWVudFBhcnNlcjo6ZGlkUmVjZWl2ZVBhcnNlZENodW5rRnJvbUJhY2tncm91bmRQYXJz
ZXIoT3duUHRyPFBhcnNlZENodW5rPiBjaHVuaykKLXsKLSAgICBpZiAoaXNXYWl0aW5nRm9yU2Ny
aXB0cygpIHx8ICFtX3NwZWN1bGF0aW9ucy5pc0VtcHR5KCkpIHsKLSAgICAgICAgbV9wcmVsb2Fk
ZXItPnRha2VBbmRQcmVsb2FkKGNodW5rLT5wcmVsb2Fkcyk7Ci0gICAgICAgIG1fc3BlY3VsYXRp
b25zLmFwcGVuZChjaHVuayk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICAvLyBwcm9j
ZXNzUGFyc2VkQ2h1bmtGcm9tQmFja2dyb3VuZFBhcnNlciBjYW4gY2F1c2UgdGhpcyBwYXJzZXIg
dG8gYmUgZGV0YWNoZWQgZnJvbSB0aGUgRG9jdW1lbnQsCi0gICAgLy8gYnV0IHdlIG5lZWQgdG8g
ZW5zdXJlIGl0IGlzbid0IGRlbGV0ZWQgeWV0LgotICAgIFJlZjxIVE1MRG9jdW1lbnRQYXJzZXI+
IHByb3RlY3QoKnRoaXMpOwotCi0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGNv
b2tpZSA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFdyaXRlSFRNTChkb2N1bWVudCgp
LCB0ZXh0UG9zaXRpb24oKS5tX2xpbmUuemVyb0Jhc2VkSW50KCkpOwotCi0gICAgQVNTRVJUKG1f
c3BlY3VsYXRpb25zLmlzRW1wdHkoKSk7Ci0gICAgY2h1bmstPnByZWxvYWRzLmNsZWFyKCk7IC8v
IFdlIGRvbid0IG5lZWQgdG8gcHJlbG9hZCBiZWNhdXNlIHdlJ3JlIGdvaW5nIHRvIHBhcnNlIGlt
bWVkaWF0ZWx5LgotICAgIHByb2Nlc3NQYXJzZWRDaHVua0Zyb21CYWNrZ3JvdW5kUGFyc2VyKGNo
dW5rKTsKLQotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkV3JpdGVIVE1MKGNvb2tp
ZSwgdGV4dFBvc2l0aW9uKCkubV9saW5lLnplcm9CYXNlZEludCgpKTsKLX0KLQotdm9pZCBIVE1M
RG9jdW1lbnRQYXJzZXI6OnZhbGlkYXRlU3BlY3VsYXRpb25zKE93blB0cjxQYXJzZWRDaHVuaz4g
Y2h1bmspCi17Ci0gICAgQVNTRVJUKGNodW5rKTsKLSAgICBpZiAoaXNXYWl0aW5nRm9yU2NyaXB0
cygpKSB7Ci0gICAgICAgIC8vIFdlJ3JlIHdhaXRpbmcgb24gYSBuZXR3b3JrIHNjcmlwdCwganVz
dCBzYXZlIHRoZSBjaHVuaywgd2UnbGwgZ2V0Ci0gICAgICAgIC8vIGEgc2Vjb25kIHZhbGlkYXRl
U3BlY3VsYXRpb25zIGNhbGwgYWZ0ZXIgdGhlIHNjcmlwdCBjb21wbGV0ZXMuCi0gICAgICAgIC8v
IFRoaXMgY2FsbCBzaG91bGQgaGF2ZSBiZWVuIG1hZGUgaW1tZWRpYXRlbHkgYWZ0ZXIgcnVuU2Ny
aXB0c0ZvclBhdXNlZFRyZWVCdWlsZGVyCi0gICAgICAgIC8vIHdoaWNoIG1heSBoYXZlIHN0YXJ0
ZWQgYSBuZXR3b3JrIGxvYWQgYW5kIGxlZnQgdXMgd2FpdGluZy4KLSAgICAgICAgQVNTRVJUKCFt
X2xhc3RDaHVua0JlZm9yZVNjcmlwdCk7Ci0gICAgICAgIG1fbGFzdENodW5rQmVmb3JlU2NyaXB0
ID0gY2h1bms7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBBU1NFUlQoIW1fbGFzdENo
dW5rQmVmb3JlU2NyaXB0KTsKLSAgICBPd25QdHI8SFRNTFRva2VuaXplcj4gdG9rZW5pemVyID0g
bV90b2tlbml6ZXIucmVsZWFzZSgpOwotICAgIE93blB0cjxIVE1MVG9rZW4+IHRva2VuID0gbV90
b2tlbi5yZWxlYXNlKCk7Ci0KLSAgICBpZiAoIXRva2VuaXplcikgewotICAgICAgICAvLyBUaGVy
ZSBtdXN0IG5vdCBoYXZlIGJlZW4gYW55IGNoYW5nZXMgdG8gdGhlIEhUTUxUb2tlbml6ZXIgc3Rh
dGUgb24KLSAgICAgICAgLy8gdGhlIG1haW4gdGhyZWFkLCB3aGljaCBtZWFucyB0aGUgc3BlY3Vs
YXRpb24gYnVmZmVyIGlzIGNvcnJlY3QuCi0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICAv
LyBDdXJyZW50bHkgd2UncmUgb25seSBzbWFydCBlbm91Z2ggdG8gcmV1c2UgdGhlIHNwZWN1bGF0
aW9uIGJ1ZmZlciBpZiB0aGUgdG9rZW5pemVyCi0gICAgLy8gYm90aCBzdGFydHMgYW5kIGVuZHMg
aW4gdGhlIERhdGFTdGF0ZS4gVGhhdCBzdGF0ZSBpcyBzaW1wbGVzdCBiZWNhdXNlIHRoZSBIVE1M
VG9rZW4KLSAgICAvLyBpcyBhbHdheXMgaW4gdGhlIFVuaW5pdGlhbGl6ZWQgc3RhdGUuIFdlIHNo
b3VsZCBjb25zaWRlciB3aGV0aGVyIHdlIGNhbiByZXVzZSB0aGUKLSAgICAvLyBzcGVjdWxhdGlv
biBidWZmZXIgaW4gb3RoZXIgc3RhdGVzLCBidXQgd2UnZCBsaWtlbHkgbmVlZCB0byBkbyBzb21l
dGhpbmcgbW9yZQotICAgIC8vIHNvcGhpc3RpY2F0ZWQgd2l0aCB0aGUgSFRNTFRva2VuLgotICAg
IGlmIChjaHVuay0+dG9rZW5pemVyU3RhdGUgPT0gSFRNTFRva2VuaXplcjo6RGF0YVN0YXRlCi0g
ICAgICAgICYmIHRva2VuaXplci0+c3RhdGUoKSA9PSBIVE1MVG9rZW5pemVyOjpEYXRhU3RhdGUK
LSAgICAgICAgJiYgbV9pbnB1dC5jdXJyZW50KCkuaXNFbXB0eSgpCi0gICAgICAgICYmIGNodW5r
LT50cmVlQnVpbGRlclN0YXRlID09IEhUTUxUcmVlQnVpbGRlclNpbXVsYXRvcjo6c3RhdGVGb3Io
bV90cmVlQnVpbGRlci5nZXQoKSkpIHsKLSAgICAgICAgQVNTRVJUKHRva2VuLT5pc1VuaW5pdGlh
bGl6ZWQoKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBkaXNjYXJkU3BlY3VsYXRp
b25zQW5kUmVzdW1lRnJvbShjaHVuaywgdG9rZW4ucmVsZWFzZSgpLCB0b2tlbml6ZXIucmVsZWFz
ZSgpKTsKLX0KLQotdm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6OmRpc2NhcmRTcGVjdWxhdGlvbnNB
bmRSZXN1bWVGcm9tKE93blB0cjxQYXJzZWRDaHVuaz4gbGFzdENodW5rQmVmb3JlU2NyaXB0LCBP
d25QdHI8SFRNTFRva2VuPiB0b2tlbiwgT3duUHRyPEhUTUxUb2tlbml6ZXI+IHRva2VuaXplcikK
LXsKLSAgICBtX3dlYWtGYWN0b3J5LnJldm9rZUFsbCgpOwotICAgIG1fc3BlY3VsYXRpb25zLmNs
ZWFyKCk7Ci0KLSAgICBPd25QdHI8QmFja2dyb3VuZEhUTUxQYXJzZXI6OkNoZWNrcG9pbnQ+IGNo
ZWNrcG9pbnQgPSBhZG9wdFB0cihuZXcgQmFja2dyb3VuZEhUTUxQYXJzZXI6OkNoZWNrcG9pbnQp
OwotICAgIGNoZWNrcG9pbnQtPnBhcnNlciA9IG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigp
OwotICAgIGNoZWNrcG9pbnQtPnRva2VuID0gdG9rZW47Ci0gICAgY2hlY2twb2ludC0+dG9rZW5p
emVyID0gdG9rZW5pemVyOwotICAgIGNoZWNrcG9pbnQtPnRyZWVCdWlsZGVyU3RhdGUgPSBIVE1M
VHJlZUJ1aWxkZXJTaW11bGF0b3I6OnN0YXRlRm9yKG1fdHJlZUJ1aWxkZXIuZ2V0KCkpOwotICAg
IGNoZWNrcG9pbnQtPmlucHV0Q2hlY2twb2ludCA9IGxhc3RDaHVua0JlZm9yZVNjcmlwdC0+aW5w
dXRDaGVja3BvaW50OwotICAgIGNoZWNrcG9pbnQtPnByZWxvYWRTY2FubmVyQ2hlY2twb2ludCA9
IGxhc3RDaHVua0JlZm9yZVNjcmlwdC0+cHJlbG9hZFNjYW5uZXJDaGVja3BvaW50OwotICAgIGNo
ZWNrcG9pbnQtPnVucGFyc2VkSW5wdXQgPSBtX2lucHV0LmN1cnJlbnQoKS50b1N0cmluZygpLmlz
b2xhdGVkQ29weSgpOwotICAgIG1faW5wdXQuY3VycmVudCgpLmNsZWFyKCk7IC8vIEZJWE1FOiBU
aGlzIHNob3VsZCBiZSBwYXNzZWQgaW4gaW5zdGVhZCBvZiBjbGVhcmVkLgotCi0gICAgQVNTRVJU
KGNoZWNrcG9pbnQtPnVucGFyc2VkSW5wdXQuaXNTYWZlVG9TZW5kVG9Bbm90aGVyVGhyZWFkKCkp
OwotICAgIEhUTUxQYXJzZXJUaHJlYWQ6OnNoYXJlZCgpLT5wb3N0VGFzayhiaW5kKCZCYWNrZ3Jv
dW5kSFRNTFBhcnNlcjo6cmVzdW1lRnJvbSwgbV9iYWNrZ3JvdW5kUGFyc2VyLCBjaGVja3BvaW50
LnJlbGVhc2UoKSkpOwotfQotCi12b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6cHJvY2Vzc1BhcnNl
ZENodW5rRnJvbUJhY2tncm91bmRQYXJzZXIoT3duUHRyPFBhcnNlZENodW5rPiBwb3BDaHVuaykK
LXsKLSAgICAvLyBBU1NFUlQgdGhhdCB0aGlzIG9iamVjdCBpcyBib3RoIGF0dGFjaGVkIHRvIHRo
ZSBEb2N1bWVudCBhbmQgcHJvdGVjdGVkLgotICAgIEFTU0VSVChyZWZDb3VudCgpID49IDIpOwot
ICAgIEFTU0VSVChzaG91bGRVc2VUaHJlYWRpbmcoKSk7Ci0gICAgQVNTRVJUKCFtX3Rva2VuaXpl
cik7Ci0gICAgQVNTRVJUKCFtX3Rva2VuKTsKLSAgICBBU1NFUlQoIW1fbGFzdENodW5rQmVmb3Jl
U2NyaXB0KTsKLQotICAgIEFjdGl2ZVBhcnNlclNlc3Npb24gc2Vzc2lvbihjb250ZXh0Rm9yUGFy
c2luZ1Nlc3Npb24oKSk7Ci0gICAgT3duUHRyPFBhcnNlZENodW5rPiBjaHVuayhwb3BDaHVuayk7
Ci0gICAgT3duUHRyPENvbXBhY3RIVE1MVG9rZW5TdHJlYW0+IHRva2VucyA9IGNodW5rLT50b2tl
bnMucmVsZWFzZSgpOwotCi0gICAgSFRNTFBhcnNlclRocmVhZDo6c2hhcmVkKCktPnBvc3RUYXNr
KGJpbmQoJkJhY2tncm91bmRIVE1MUGFyc2VyOjpzdGFydGVkQ2h1bmtXaXRoQ2hlY2twb2ludCwg
bV9iYWNrZ3JvdW5kUGFyc2VyLCBjaHVuay0+aW5wdXRDaGVja3BvaW50KSk7Ci0KLSAgICBmb3Ig
KFhTU0luZm9TdHJlYW06OmNvbnN0X2l0ZXJhdG9yIGl0ID0gY2h1bmstPnhzc0luZm9zLmJlZ2lu
KCk7IGl0ICE9IGNodW5rLT54c3NJbmZvcy5lbmQoKTsgKytpdCkgewotICAgICAgICBtX3RleHRQ
b3NpdGlvbiA9ICgqaXQpLT5tX3RleHRQb3NpdGlvbjsKLSAgICAgICAgbV94c3NBdWRpdG9yRGVs
ZWdhdGUuZGlkQmxvY2tTY3JpcHQoKippdCk7IAotICAgICAgICBpZiAoaXNTdG9wcGVkKCkpCi0g
ICAgICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICBmb3IgKFZlY3RvcjxDb21wYWN0SFRNTFRv
a2VuPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSB0b2tlbnMtPmJlZ2luKCk7IGl0ICE9IHRva2Vucy0+
ZW5kKCk7ICsraXQpIHsKLSAgICAgICAgQVNTRVJUKCFpc1dhaXRpbmdGb3JTY3JpcHRzKCkpOwot
Ci0gICAgICAgIGlmICghaXNQYXJzaW5nRnJhZ21lbnQoKQotICAgICAgICAgICAgJiYgZG9jdW1l
bnQoKS0+ZnJhbWUoKSAmJiBkb2N1bWVudCgpLT5mcmFtZSgpLT5uYXZpZ2F0aW9uU2NoZWR1bGVy
KCkubG9jYXRpb25DaGFuZ2VQZW5kaW5nKCkpIHsKLQotICAgICAgICAgICAgLy8gVG8gbWF0Y2gg
bWFpbi10aHJlYWQgcGFyc2VyIGJlaGF2aW9yICh3aGljaCBuZXZlciBjaGVja3MgbG9jYXRpb25D
aGFuZ2VQZW5kaW5nIG9uIHRoZSBFT0YgcGF0aCkKLSAgICAgICAgICAgIC8vIHdlIHBlZWsgdG8g
c2VlIGlmIHRoaXMgY2h1bmsgaGFzIGFuIEVPRiBhbmQgcHJvY2VzcyBpdCBhbnl3YXkuCi0gICAg
ICAgICAgICBpZiAodG9rZW5zLT5sYXN0KCkudHlwZSgpID09IEhUTUxUb2tlbjo6RW5kT2ZGaWxl
KSB7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKG1fc3BlY3VsYXRpb25zLmlzRW1wdHkoKSk7Ci0g
ICAgICAgICAgICAgICAgcHJlcGFyZVRvU3RvcFBhcnNpbmcoKTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgbV90ZXh0UG9zaXRpb24gPSBp
dC0+dGV4dFBvc2l0aW9uKCk7Ci0KLSAgICAgICAgY29uc3RydWN0VHJlZUZyb21Db21wYWN0SFRN
TFRva2VuKCppdCk7Ci0KLSAgICAgICAgaWYgKGlzU3RvcHBlZCgpKQotICAgICAgICAgICAgYnJl
YWs7Ci0KLSAgICAgICAgaWYgKGlzV2FpdGluZ0ZvclNjcmlwdHMoKSkgewotICAgICAgICAgICAg
QVNTRVJUKGl0ICsgMSA9PSB0b2tlbnMtPmVuZCgpKTsgLy8gVGhlIDwvc2NyaXB0PiBpcyBhc3N1
bWVkIHRvIGJlIHRoZSBsYXN0IHRva2VuIG9mIHRoaXMgYnVuY2guCi0gICAgICAgICAgICBydW5T
Y3JpcHRzRm9yUGF1c2VkVHJlZUJ1aWxkZXIoKTsKLSAgICAgICAgICAgIHZhbGlkYXRlU3BlY3Vs
YXRpb25zKGNodW5rLnJlbGVhc2UoKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQot
Ci0gICAgICAgIGlmIChpdC0+dHlwZSgpID09IEhUTUxUb2tlbjo6RW5kT2ZGaWxlKSB7Ci0gICAg
ICAgICAgICBBU1NFUlQoaXQgKyAxID09IHRva2Vucy0+ZW5kKCkpOyAvLyBUaGUgRU9GIGlzIGFz
c3VtZWQgdG8gYmUgdGhlIGxhc3QgdG9rZW4gb2YgdGhpcyBidW5jaC4KLSAgICAgICAgICAgIEFT
U0VSVChtX3NwZWN1bGF0aW9ucy5pc0VtcHR5KCkpOwotICAgICAgICAgICAgcHJlcGFyZVRvU3Rv
cFBhcnNpbmcoKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgQVNT
RVJUKCFtX3Rva2VuaXplcik7Ci0gICAgICAgIEFTU0VSVCghbV90b2tlbik7Ci0gICAgfQotfQot
Ci12b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6cHVtcFBlbmRpbmdTcGVjdWxhdGlvbnMoKQotewot
ICAgIC8vIEZJWE1FOiBTaGFyZSB0aGlzIGNvbnN0YW50IHdpdGggdGhlIHBhcnNlciBzY2hlZHVs
ZXIuCi0gICAgY29uc3QgZG91YmxlIHBhcnNlclRpbWVMaW1pdCA9IDAuNTAwOwotCi0gICAgLy8g
QVNTRVJUIHRoYXQgdGhpcyBvYmplY3QgaXMgYm90aCBhdHRhY2hlZCB0byB0aGUgRG9jdW1lbnQg
YW5kIHByb3RlY3RlZC4KLSAgICBBU1NFUlQocmVmQ291bnQoKSA+PSAyKTsKLSAgICAvLyBJZiB0
aGlzIGFzc2VydCBmYWlscywgeW91IG5lZWQgdG8gY2FsbCB2YWxpZGF0ZVNwZWN1bGF0aW9ucyB0
byBtYWtlIHN1cmUKLSAgICAvLyBtX3Rva2VuaXplciBhbmQgbV90b2tlbiBkb24ndCBoYXZlIHN0
YXRlIHRoYXQgaW52YWxpZGF0ZXMgbV9zcGVjdWxhdGlvbnMuCi0gICAgQVNTRVJUKCFtX3Rva2Vu
aXplcik7Ci0gICAgQVNTRVJUKCFtX3Rva2VuKTsKLSAgICBBU1NFUlQoIW1fbGFzdENodW5rQmVm
b3JlU2NyaXB0KTsKLQotICAgIC8vIEZJWE1FOiBQYXNzIGluIGN1cnJlbnQgaW5wdXQgbGVuZ3Ro
LgotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBjb29raWUgPSBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OndpbGxXcml0ZUhUTUwoZG9jdW1lbnQoKSwgdGV4dFBvc2l0aW9uKCku
bV9saW5lLnplcm9CYXNlZEludCgpKTsKLQotICAgIGRvdWJsZSBzdGFydFRpbWUgPSBtb25vdG9u
aWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKLQotICAgIHdoaWxlICghbV9zcGVjdWxhdGlvbnMuaXNF
bXB0eSgpKSB7Ci0gICAgICAgIHByb2Nlc3NQYXJzZWRDaHVua0Zyb21CYWNrZ3JvdW5kUGFyc2Vy
KG1fc3BlY3VsYXRpb25zLnRha2VGaXJzdCgpKTsKLQotICAgICAgICBpZiAoaXNXYWl0aW5nRm9y
U2NyaXB0cygpIHx8IGlzU3RvcHBlZCgpKQotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAg
aWYgKG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0gc3RhcnRUaW1lID4gcGFyc2VyVGlt
ZUxpbWl0ICYmICFtX3NwZWN1bGF0aW9ucy5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIG1fcGFy
c2VyU2NoZWR1bGVyLT5zY2hlZHVsZUZvclJlc3VtZSgpOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIH0KLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFdyaXRl
SFRNTChjb29raWUsIHRleHRQb3NpdGlvbigpLm1fbGluZS56ZXJvQmFzZWRJbnQoKSk7Ci19Ci0K
LSNlbmRpZiAvLyBFTkFCTEUoVEhSRUFERURfSFRNTF9QQVJTRVIpCi0KIHZvaWQgSFRNTERvY3Vt
ZW50UGFyc2VyOjpmb3JjZVBsYWludGV4dEZvclRleHREb2N1bWVudCgpCiB7Ci0jaWYgRU5BQkxF
KFRIUkVBREVEX0hUTUxfUEFSU0VSKQotICAgIGlmIChzaG91bGRVc2VUaHJlYWRpbmcoKSkgewot
ICAgICAgICAvLyBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYmVmb3JlIGFueSBkYXRhIGlzIGFwcGVu
ZGVkLCBzbyB3ZSBoYXZlIHRvIHN0YXJ0Ci0gICAgICAgIC8vIHRoZSBiYWNrZ3JvdW5kIHBhcnNl
ciBvdXJzZWx2ZXMuCi0gICAgICAgIGlmICghbV9oYXZlQmFja2dyb3VuZFBhcnNlcikKLSAgICAg
ICAgICAgIHN0YXJ0QmFja2dyb3VuZFBhcnNlcigpOwotCi0gICAgICAgIEhUTUxQYXJzZXJUaHJl
YWQ6OnNoYXJlZCgpLT5wb3N0VGFzayhiaW5kKCZCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6Zm9yY2VQ
bGFpbnRleHRGb3JUZXh0RG9jdW1lbnQsIG1fYmFja2dyb3VuZFBhcnNlcikpOwotICAgIH0gZWxz
ZQotI2VuZGlmCi0gICAgICAgIG1fdG9rZW5pemVyLT5zZXRTdGF0ZShIVE1MVG9rZW5pemVyOjpQ
TEFJTlRFWFRTdGF0ZSk7CisgICAgbV90b2tlbml6ZXItPnNldFN0YXRlKEhUTUxUb2tlbml6ZXI6
OlBMQUlOVEVYVFN0YXRlKTsKIH0KIAogRG9jdW1lbnQqIEhUTUxEb2N1bWVudFBhcnNlcjo6Y29u
dGV4dEZvclBhcnNpbmdTZXNzaW9uKCkKQEAgLTU3MywxNiArMzU3LDYgQEAgdm9pZCBIVE1MRG9j
dW1lbnRQYXJzZXI6OmNvbnN0cnVjdFRyZWVGcm9tSFRNTFRva2VuKEhUTUxUb2tlbiYgcmF3VG9r
ZW4pCiAgICAgfQogfQogCi0jaWYgRU5BQkxFKFRIUkVBREVEX0hUTUxfUEFSU0VSKQotCi12b2lk
IEhUTUxEb2N1bWVudFBhcnNlcjo6Y29uc3RydWN0VHJlZUZyb21Db21wYWN0SFRNTFRva2VuKGNv
bnN0IENvbXBhY3RIVE1MVG9rZW4mIGNvbXBhY3RUb2tlbikKLXsKLSAgICBBdG9taWNIVE1MVG9r
ZW4gdG9rZW4oY29tcGFjdFRva2VuKTsKLSAgICBtX3RyZWVCdWlsZGVyLT5jb25zdHJ1Y3RUcmVl
KCZ0b2tlbik7Ci19Ci0KLSNlbmRpZgotCiBib29sIEhUTUxEb2N1bWVudFBhcnNlcjo6aGFzSW5z
ZXJ0aW9uUG9pbnQoKQogewogICAgIC8vIEZJWE1FOiBUaGUgd2FzQ3JlYXRlZEJ5U2NyaXB0KCkg
YnJhbmNoIGhlcmUgbWlnaHQgbm90IGJlIGZ1bGx5IGNvcnJlY3QuCkBAIC02MDIsMTUgKzM3Niw2
IEBAIHZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjppbnNlcnQoY29uc3QgU2VnbWVudGVkU3RyaW5n
JiBzb3VyY2UpCiAgICAgLy8gYnV0IHdlIG5lZWQgdG8gZW5zdXJlIGl0IGlzbid0IGRlbGV0ZWQg
eWV0LgogICAgIFJlZjxIVE1MRG9jdW1lbnRQYXJzZXI+IHByb3RlY3QoKnRoaXMpOwogCi0jaWYg
RU5BQkxFKFRIUkVBREVEX0hUTUxfUEFSU0VSKQotICAgIGlmICghbV90b2tlbml6ZXIpIHsKLSAg
ICAgICAgQVNTRVJUKCFpblB1bXBTZXNzaW9uKCkpOwotICAgICAgICBBU1NFUlQobV9oYXZlQmFj
a2dyb3VuZFBhcnNlciB8fCB3YXNDcmVhdGVkQnlTY3JpcHQoKSk7Ci0gICAgICAgIG1fdG9rZW4g
PSBhZG9wdFB0cihuZXcgSFRNTFRva2VuKTsKLSAgICAgICAgbV90b2tlbml6ZXIgPSBIVE1MVG9r
ZW5pemVyOjpjcmVhdGUobV9vcHRpb25zKTsKLSAgICB9Ci0jZW5kaWYKLQogICAgIFNlZ21lbnRl
ZFN0cmluZyBleGNsdWRlZExpbmVOdW1iZXJTb3VyY2Uoc291cmNlKTsKICAgICBleGNsdWRlZExp
bmVOdW1iZXJTb3VyY2Uuc2V0RXhjbHVkZUxpbmVOdW1iZXJzKCk7CiAgICAgbV9pbnB1dC5pbnNl
cnRBdEN1cnJlbnRJbnNlcnRpb25Qb2ludChleGNsdWRlZExpbmVOdW1iZXJTb3VyY2UpOwpAQCAt
NjI5LDYzICszOTQsMTEgQEAgdm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6Omluc2VydChjb25zdCBT
ZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSkKICAgICBlbmRJZkRlbGF5ZWQoKTsKIH0KIAotI2lmIEVO
QUJMRShUSFJFQURFRF9IVE1MX1BBUlNFUikKLQotdm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6OnN0
YXJ0QmFja2dyb3VuZFBhcnNlcigpCi17Ci0gICAgQVNTRVJUKHNob3VsZFVzZVRocmVhZGluZygp
KTsKLSAgICBBU1NFUlQoIW1faGF2ZUJhY2tncm91bmRQYXJzZXIpOwotICAgIG1faGF2ZUJhY2tn
cm91bmRQYXJzZXIgPSB0cnVlOwotCi0gICAgSFRNTElkZW50aWZpZXI6OmluaXQoKTsKLQotICAg
IFJlZlB0cjxXZWFrUmVmZXJlbmNlPEJhY2tncm91bmRIVE1MUGFyc2VyPj4gcmVmZXJlbmNlID0g
V2Vha1JlZmVyZW5jZTxCYWNrZ3JvdW5kSFRNTFBhcnNlcj46OmNyZWF0ZVVuYm91bmQoKTsKLSAg
ICBtX2JhY2tncm91bmRQYXJzZXIgPSBXZWFrUHRyPEJhY2tncm91bmRIVE1MUGFyc2VyPihyZWZl
cmVuY2UpOwotCi0gICAgT3duUHRyPEJhY2tncm91bmRIVE1MUGFyc2VyOjpDb25maWd1cmF0aW9u
PiBjb25maWcgPSBhZG9wdFB0cihuZXcgQmFja2dyb3VuZEhUTUxQYXJzZXI6OkNvbmZpZ3VyYXRp
b24pOwotICAgIGNvbmZpZy0+b3B0aW9ucyA9IG1fb3B0aW9uczsKLSAgICBjb25maWctPnBhcnNl
ciA9IG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOwotICAgIGNvbmZpZy0+eHNzQXVkaXRv
ciA9IGFkb3B0UHRyKG5ldyBYU1NBdWRpdG9yKTsKLSAgICBjb25maWctPnhzc0F1ZGl0b3ItPmlu
aXQoZG9jdW1lbnQoKSwgJm1feHNzQXVkaXRvckRlbGVnYXRlKTsKLSAgICBjb25maWctPnByZWxv
YWRTY2FubmVyID0gYWRvcHRQdHIobmV3IFRva2VuUHJlbG9hZFNjYW5uZXIoZG9jdW1lbnQoKS0+
dXJsKCkuY29weSgpKSk7Ci0KLSAgICBBU1NFUlQoY29uZmlnLT54c3NBdWRpdG9yLT5pc1NhZmVU
b1NlbmRUb0Fub3RoZXJUaHJlYWQoKSk7Ci0gICAgQVNTRVJUKGNvbmZpZy0+cHJlbG9hZFNjYW5u
ZXItPmlzU2FmZVRvU2VuZFRvQW5vdGhlclRocmVhZCgpKTsKLSAgICBIVE1MUGFyc2VyVGhyZWFk
OjpzaGFyZWQoKS0+cG9zdFRhc2soYmluZCgmQmFja2dyb3VuZEhUTUxQYXJzZXI6OmNyZWF0ZSwg
cmVmZXJlbmNlLnJlbGVhc2UoKSwgY29uZmlnLnJlbGVhc2UoKSkpOwotfQotCi12b2lkIEhUTUxE
b2N1bWVudFBhcnNlcjo6c3RvcEJhY2tncm91bmRQYXJzZXIoKQotewotICAgIEFTU0VSVChzaG91
bGRVc2VUaHJlYWRpbmcoKSk7Ci0gICAgQVNTRVJUKG1faGF2ZUJhY2tncm91bmRQYXJzZXIpOwot
ICAgIG1faGF2ZUJhY2tncm91bmRQYXJzZXIgPSBmYWxzZTsKLQotICAgIEhUTUxQYXJzZXJUaHJl
YWQ6OnNoYXJlZCgpLT5wb3N0VGFzayhiaW5kKCZCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6c3RvcCwg
bV9iYWNrZ3JvdW5kUGFyc2VyKSk7Ci0gICAgbV93ZWFrRmFjdG9yeS5yZXZva2VBbGwoKTsKLX0K
LQotI2VuZGlmCi0KIHZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjphcHBlbmQoUGFzc1JlZlB0cjxT
dHJpbmdJbXBsPiBpbnB1dFNvdXJjZSkKIHsKICAgICBpZiAoaXNTdG9wcGVkKCkpCiAgICAgICAg
IHJldHVybjsKIAotI2lmIEVOQUJMRShUSFJFQURFRF9IVE1MX1BBUlNFUikKLSAgICBpZiAoc2hv
dWxkVXNlVGhyZWFkaW5nKCkpIHsKLSAgICAgICAgaWYgKCFtX2hhdmVCYWNrZ3JvdW5kUGFyc2Vy
KQotICAgICAgICAgICAgc3RhcnRCYWNrZ3JvdW5kUGFyc2VyKCk7Ci0KLSAgICAgICAgQVNTRVJU
KGlucHV0U291cmNlLT5oYXNPbmVSZWYoKSk7Ci0gICAgICAgIENsb3N1cmUgY2xvc3VyZSA9IGJp
bmQoJkJhY2tncm91bmRIVE1MUGFyc2VyOjphcHBlbmQsIG1fYmFja2dyb3VuZFBhcnNlciwgU3Ry
aW5nKGlucHV0U291cmNlKSk7Ci0gICAgICAgIC8vIE5PVEU6IEltcG9ydGFudCB0aGF0IHRoZSBT
dHJpbmcgdGVtcG9yYXJ5IGlzIGRlc3Ryb3llZCBiZWZvcmUgd2UgcG9zdCB0aGUgdGFzawotICAg
ICAgICAvLyBvdGhlcndpc2UgdGhlIFN0cmluZyBjb3VsZCBjYWxsIGRlcmVmKCkgb24gYSBTdHJp
bmdJbXBsIG5vdyBvd25lZCBieSB0aGUgYmFja2dyb3VuZCBwYXJzZXIuCi0gICAgICAgIC8vIFdl
IHdvdWxkIGxpa2UgdG8gQVNTRVJUKGNsb3N1cmUuYXJnMygpLT5oYXNPbmVSZWYoKSkgYnV0IHNh
ZGx5IHRoZSBhcmdzIGFyZSBwcml2YXRlLgotICAgICAgICBIVE1MUGFyc2VyVGhyZWFkOjpzaGFy
ZWQoKS0+cG9zdFRhc2soY2xvc3VyZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0jZW5kaWYK
LQogICAgIC8vIHB1bXBUb2tlbml6ZXIgY2FuIGNhdXNlIHRoaXMgcGFyc2VyIHRvIGJlIGRldGFj
aGVkIGZyb20gdGhlIERvY3VtZW50LAogICAgIC8vIGJ1dCB3ZSBuZWVkIHRvIGVuc3VyZSBpdCBp
c24ndCBkZWxldGVkIHlldC4KICAgICBSZWY8SFRNTERvY3VtZW50UGFyc2VyPiBwcm90ZWN0KCp0
aGlzKTsKQEAgLTcyMiwxMSArNDM1LDYgQEAgdm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6OmVuZCgp
CiAgICAgQVNTRVJUKCFpc0RldGFjaGVkKCkpOwogICAgIEFTU0VSVCghaXNTY2hlZHVsZWRGb3JS
ZXN1bWUoKSk7CiAKLSNpZiBFTkFCTEUoVEhSRUFERURfSFRNTF9QQVJTRVIpCi0gICAgaWYgKG1f
aGF2ZUJhY2tncm91bmRQYXJzZXIpCi0gICAgICAgIHN0b3BCYWNrZ3JvdW5kUGFyc2VyKCk7Ci0j
ZW5kaWYKLQogICAgIC8vIEluZm9ybXMgdGhlIHRoZSByZXN0IG9mIFdlYkNvcmUgdGhhdCBwYXJz
aW5nIGlzIHJlYWxseSBmaW5pc2hlZCAoYW5kIGRlbGV0ZXMgdGhpcykuCiAgICAgbV90cmVlQnVp
bGRlci0+ZmluaXNoZWQoKTsKIH0KQEAgLTc3MywyNyArNDgxLDYgQEAgdm9pZCBIVE1MRG9jdW1l
bnRQYXJzZXI6OmZpbmlzaCgpCiAgICAgLy8gbWFrZXMgc2Vuc2UgdG8gY2FsbCBhbnkgbWV0aG9k
cyBvbiBEb2N1bWVudFBhcnNlciBvbmNlIGl0J3MgYmVlbiBzdG9wcGVkLgogICAgIC8vIEhvd2V2
ZXIsIEZyYW1lTG9hZGVyOjpzdG9wIGNhbGxzIERvY3VtZW50UGFyc2VyOjpmaW5pc2ggdW5jb25k
aXRpb25hbGx5LgogCi0jaWYgRU5BQkxFKFRIUkVBREVEX0hUTUxfUEFSU0VSKQotICAgIC8vIEVt
cHR5IGRvY3VtZW50cyBuZXZlciBnb3QgYW4gYXBwZW5kKCkgY2FsbCwgYW5kIHRodXMgaGF2ZSBu
ZXZlciBzdGFydGVkCi0gICAgLy8gYSBiYWNrZ3JvdW5kIHBhcnNlci4gSW4gdGhvc2UgY2FzZXMs
IHdlIGlnbm9yZSBzaG91bGRVc2VUaHJlYWRpbmcoKQotICAgIC8vIGFuZCBmYWxsIHRocm91Z2gg
dG8gdGhlIG5vbi10aHJlYWRpbmcgY2FzZS4KLSAgICBpZiAobV9oYXZlQmFja2dyb3VuZFBhcnNl
cikgewotICAgICAgICBpZiAoIW1faW5wdXQuaGF2ZVNlZW5FbmRPZkZpbGUoKSkKLSAgICAgICAg
ICAgIG1faW5wdXQuY2xvc2VXaXRob3V0TWFya2luZ0VuZE9mRmlsZSgpOwotICAgICAgICBIVE1M
UGFyc2VyVGhyZWFkOjpzaGFyZWQoKS0+cG9zdFRhc2soYmluZCgmQmFja2dyb3VuZEhUTUxQYXJz
ZXI6OmZpbmlzaCwgbV9iYWNrZ3JvdW5kUGFyc2VyKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICBpZiAoIW1fdG9rZW5pemVyKSB7Ci0gICAgICAgIEFTU0VSVCghbV90b2tlbik7Ci0g
ICAgICAgIC8vIFdlJ3JlIGZpbmlzaGluZyBiZWZvcmUgcmVjZWl2aW5nIGFueSBkYXRhLiBSYXRo
ZXIgdGhhbiBib290aW5nIHVwCi0gICAgICAgIC8vIHRoZSBiYWNrZ3JvdW5kIHBhcnNlciBqdXN0
IHRvIHNwaW4gaXQgZG93biwgd2UgZmluaXNoIHBhcnNpbmcKLSAgICAgICAgLy8gc3luY2hyb25v
dXNseS4KLSAgICAgICAgbV90b2tlbiA9IGFkb3B0UHRyKG5ldyBIVE1MVG9rZW4pOwotICAgICAg
ICBtX3Rva2VuaXplciA9IEhUTUxUb2tlbml6ZXI6OmNyZWF0ZShtX29wdGlvbnMpOwotICAgIH0K
LSNlbmRpZgotCiAgICAgLy8gV2UncmUgbm90IGdvaW5nIHRvIGdldCBhbnkgbW9yZSBkYXRhIG9m
ZiB0aGUgbmV0d29yaywgc28gd2UgdGVsbCB0aGUKICAgICAvLyBpbnB1dCBzdHJlYW0gd2UndmUg
cmVhY2hlZCB0aGUgZW5kIG9mIGZpbGUuIGZpbmlzaCgpIGNhbiBiZSBjYWxsZWQgbW9yZQogICAg
IC8vIHRoYW4gb25jZSwgaWYgdGhlIGZpcnN0IHRpbWUgZG9lcyBub3QgY2FsbCBlbmQoKS4KQEAg
LTgxMiwxMSArNDk5LDYgQEAgYm9vbCBIVE1MRG9jdW1lbnRQYXJzZXI6OmlzRXhlY3V0aW5nU2Ny
aXB0KCkgY29uc3QKIAogVGV4dFBvc2l0aW9uIEhUTUxEb2N1bWVudFBhcnNlcjo6dGV4dFBvc2l0
aW9uKCkgY29uc3QKIHsKLSNpZiBFTkFCTEUoVEhSRUFERURfSFRNTF9QQVJTRVIpCi0gICAgaWYg
KG1faGF2ZUJhY2tncm91bmRQYXJzZXIpCi0gICAgICAgIHJldHVybiBtX3RleHRQb3NpdGlvbjsK
LSNlbmRpZgotCiAgICAgY29uc3QgU2VnbWVudGVkU3RyaW5nJiBjdXJyZW50U3RyaW5nID0gbV9p
bnB1dC5jdXJyZW50KCk7CiAgICAgT3JkaW5hbE51bWJlciBsaW5lID0gY3VycmVudFN0cmluZy5j
dXJyZW50TGluZSgpOwogICAgIE9yZGluYWxOdW1iZXIgY29sdW1uID0gY3VycmVudFN0cmluZy5j
dXJyZW50Q29sdW1uKCk7CkBAIC04NDUsMTggKzUyNyw2IEBAIHZvaWQgSFRNTERvY3VtZW50UGFy
c2VyOjpyZXN1bWVQYXJzaW5nQWZ0ZXJTY3JpcHRFeGVjdXRpb24oKQogICAgIEFTU0VSVCghaXNF
eGVjdXRpbmdTY3JpcHQoKSk7CiAgICAgQVNTRVJUKCFpc1dhaXRpbmdGb3JTY3JpcHRzKCkpOwog
Ci0jaWYgRU5BQkxFKFRIUkVBREVEX0hUTUxfUEFSU0VSKQotICAgIGlmIChtX2hhdmVCYWNrZ3Jv
dW5kUGFyc2VyKSB7Ci0gICAgICAgIHZhbGlkYXRlU3BlY3VsYXRpb25zKG1fbGFzdENodW5rQmVm
b3JlU2NyaXB0LnJlbGVhc2UoKSk7Ci0gICAgICAgIEFTU0VSVCghbV9sYXN0Q2h1bmtCZWZvcmVT
Y3JpcHQpOwotICAgICAgICAvLyBwcm9jZXNzUGFyc2VkQ2h1bmtGcm9tQmFja2dyb3VuZFBhcnNl
ciBjYW4gY2F1c2UgdGhpcyBwYXJzZXIgdG8gYmUgZGV0YWNoZWQgZnJvbSB0aGUgRG9jdW1lbnQs
Ci0gICAgICAgIC8vIGJ1dCB3ZSBuZWVkIHRvIGVuc3VyZSBpdCBpc24ndCBkZWxldGVkIHlldC4K
LSAgICAgICAgUmVmPEhUTUxEb2N1bWVudFBhcnNlcj4gcHJvdGVjdCgqdGhpcyk7Ci0gICAgICAg
IHB1bXBQZW5kaW5nU3BlY3VsYXRpb25zKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0jZW5k
aWYKLQogICAgIG1faW5zZXJ0aW9uUHJlbG9hZFNjYW5uZXIuY2xlYXIoKTsKICAgICBwdW1wVG9r
ZW5pemVySWZQb3NzaWJsZShBbGxvd1lpZWxkKTsKICAgICBlbmRJZkRlbGF5ZWQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmgKaW5kZXggMjdl
OTQ2MWRjOGVmYzJkNzlmMjA4NzI3YjE5NWRiNmEzM2FhM2ZkNy4uMWJkMWM1MmI5NjVhODI1NjMz
MmVkMmI2NTlhYzc4NGNhN2M3ODQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTERvY3VtZW50UGFyc2VyLmgKQEAgLTgxLDE5ICs4MSw2IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgc3VzcGVuZFNjaGVkdWxlZFRhc2tzKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCB2b2lkIHJlc3VtZVNjaGVkdWxlZFRhc2tzKCkgb3ZlcnJpZGU7CiAKLSNpZiBFTkFCTEUoVEhS
RUFERURfSFRNTF9QQVJTRVIpCi0gICAgc3RydWN0IFBhcnNlZENodW5rIHsKLSAgICAgICAgT3du
UHRyPENvbXBhY3RIVE1MVG9rZW5TdHJlYW0+IHRva2VuczsKLSAgICAgICAgUHJlbG9hZFJlcXVl
c3RTdHJlYW0gcHJlbG9hZHM7Ci0gICAgICAgIFhTU0luZm9TdHJlYW0geHNzSW5mb3M7Ci0gICAg
ICAgIEhUTUxUb2tlbml6ZXI6OlN0YXRlIHRva2VuaXplclN0YXRlOwotICAgICAgICBIVE1MVHJl
ZUJ1aWxkZXJTaW11bGF0b3I6OlN0YXRlIHRyZWVCdWlsZGVyU3RhdGU7Ci0gICAgICAgIEhUTUxJ
bnB1dENoZWNrcG9pbnQgaW5wdXRDaGVja3BvaW50OwotICAgICAgICBUb2tlblByZWxvYWRTY2Fu
bmVyQ2hlY2twb2ludCBwcmVsb2FkU2Nhbm5lckNoZWNrcG9pbnQ7Ci0gICAgfTsKLSAgICB2b2lk
IGRpZFJlY2VpdmVQYXJzZWRDaHVua0Zyb21CYWNrZ3JvdW5kUGFyc2VyKE93blB0cjxQYXJzZWRD
aHVuaz4pOwotI2VuZGlmCi0KIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgaW5zZXJ0KGNv
bnN0IFNlZ21lbnRlZFN0cmluZyYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBhcHBlbmQo
UGFzc1JlZlB0cjxTdHJpbmdJbXBsPikgb3ZlcnJpZGU7CkBAIC0xMzIsMTUgKzExOSw2IEBAIHBy
aXZhdGU6CiAgICAgLy8gQ2FjaGVkUmVzb3VyY2VDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgbm90
aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqKSBvdmVycmlkZTsKIAotI2lmIEVOQUJMRShUSFJF
QURFRF9IVE1MX1BBUlNFUikKLSAgICB2b2lkIHN0YXJ0QmFja2dyb3VuZFBhcnNlcigpOwotICAg
IHZvaWQgc3RvcEJhY2tncm91bmRQYXJzZXIoKTsKLSAgICB2b2lkIHZhbGlkYXRlU3BlY3VsYXRp
b25zKE93blB0cjxQYXJzZWRDaHVuaz4gbGFzdENodW5rKTsKLSAgICB2b2lkIGRpc2NhcmRTcGVj
dWxhdGlvbnNBbmRSZXN1bWVGcm9tKE93blB0cjxQYXJzZWRDaHVuaz4gbGFzdENodW5rLCBPd25Q
dHI8SFRNTFRva2VuPiwgT3duUHRyPEhUTUxUb2tlbml6ZXI+KTsKLSAgICB2b2lkIHByb2Nlc3NQ
YXJzZWRDaHVua0Zyb21CYWNrZ3JvdW5kUGFyc2VyKE93blB0cjxQYXJzZWRDaHVuaz4pOwotICAg
IHZvaWQgcHVtcFBlbmRpbmdTcGVjdWxhdGlvbnMoKTsKLSNlbmRpZgotCiAgICAgRG9jdW1lbnQq
IGNvbnRleHRGb3JQYXJzaW5nU2Vzc2lvbigpOwogCiAgICAgZW51bSBTeW5jaHJvbm91c01vZGUg
ewpAQCAtMTUxLDkgKzEyOSw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwdW1wVG9rZW5pemVyKFN5
bmNocm9ub3VzTW9kZSk7CiAgICAgdm9pZCBwdW1wVG9rZW5pemVySWZQb3NzaWJsZShTeW5jaHJv
bm91c01vZGUpOwogICAgIHZvaWQgY29uc3RydWN0VHJlZUZyb21IVE1MVG9rZW4oSFRNTFRva2Vu
Jik7Ci0jaWYgRU5BQkxFKFRIUkVBREVEX0hUTUxfUEFSU0VSKQotICAgIHZvaWQgY29uc3RydWN0
VHJlZUZyb21Db21wYWN0SFRNTFRva2VuKGNvbnN0IENvbXBhY3RIVE1MVG9rZW4mKTsKLSNlbmRp
ZgogCiAgICAgdm9pZCBydW5TY3JpcHRzRm9yUGF1c2VkVHJlZUJ1aWxkZXIoKTsKICAgICB2b2lk
IHJlc3VtZVBhcnNpbmdBZnRlclNjcmlwdEV4ZWN1dGlvbigpOwpAQCAtMTg1LDE0ICsxNjAsNiBA
QCBwcml2YXRlOgogICAgIFhTU0F1ZGl0b3IgbV94c3NBdWRpdG9yOwogICAgIFhTU0F1ZGl0b3JE
ZWxlZ2F0ZSBtX3hzc0F1ZGl0b3JEZWxlZ2F0ZTsKIAotI2lmIEVOQUJMRShUSFJFQURFRF9IVE1M
X1BBUlNFUikKLSAgICAvLyBGSVhNRTogbV9sYXN0Q2h1bmtCZWZvcmVTY3JpcHQsIG1fdG9rZW5p
emVyLCBtX3Rva2VuLCBhbmQgbV9pbnB1dCBzaG91bGQgYmUgY29tYmluZWQgaW50byBhIHNpbmds
ZSBzdGF0ZSBvYmplY3QKLSAgICAvLyBzbyB0aGV5IGNhbiBiZSBzZXQgYW5kIGNsZWFyZWQgdG9n
ZXRoZXIgYW5kIHBhc3NlZCBiZXR3ZWVuIHRocmVhZHMgdG9nZXRoZXIuCi0gICAgT3duUHRyPFBh
cnNlZENodW5rPiBtX2xhc3RDaHVua0JlZm9yZVNjcmlwdDsKLSAgICBEZXF1ZTxPd25QdHI8UGFy
c2VkQ2h1bms+PiBtX3NwZWN1bGF0aW9uczsKLSAgICBXZWFrUHRyRmFjdG9yeTxIVE1MRG9jdW1l
bnRQYXJzZXI+IG1fd2Vha0ZhY3Rvcnk7Ci0gICAgV2Vha1B0cjxCYWNrZ3JvdW5kSFRNTFBhcnNl
cj4gbV9iYWNrZ3JvdW5kUGFyc2VyOwotI2VuZGlmCiAgICAgT3duUHRyPEhUTUxSZXNvdXJjZVBy
ZWxvYWRlcj4gbV9wcmVsb2FkZXI7CiAKICAgICBib29sIG1fZW5kV2FzRGVsYXllZDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJJZGlvbXMuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlcklkaW9tcy5jcHAKaW5kZXggZWJh
MGE0NTE1YTFhYjgxNGUxMjU4YTU2ZGI3ZjMyNjQzN2M4YTc5Ni4uNjRiZDFlYjBmYWJlMzg2NjZh
NTQxZWZkYjI2NzE3OTY0MDZjNzZkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTFBhcnNlcklkaW9tcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTFBhcnNlcklkaW9tcy5jcHAKQEAgLTI5MCwxMyArMjkwLDYgQEAgYm9vbCB0aHJlYWRT
YWZlTWF0Y2goY29uc3QgUXVhbGlmaWVkTmFtZSYgYSwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYikK
ICAgICByZXR1cm4gdGhyZWFkU2FmZUVxdWFsKGEubG9jYWxOYW1lKCkuaW1wbCgpLCBiLmxvY2Fs
TmFtZSgpLmltcGwoKSk7CiB9CiAKLSNpZiBFTkFCTEUoVEhSRUFERURfSFRNTF9QQVJTRVIpCi1i
b29sIHRocmVhZFNhZmVNYXRjaChjb25zdCBIVE1MSWRlbnRpZmllciYgbG9jYWxOYW1lLCBjb25z
dCBRdWFsaWZpZWROYW1lJiBxTmFtZSkKLXsKLSAgICByZXR1cm4gdGhyZWFkU2FmZUVxdWFsKGxv
Y2FsTmFtZS5hc1N0cmluZ0ltcGwoKSwgcU5hbWUubG9jYWxOYW1lKCkuaW1wbCgpKTsKLX0KLSNl
bmRpZgotCiBzdHJ1Y3QgSW1hZ2VXaXRoU2NhbGUgewogICAgIHVuc2lnbmVkIGltYWdlVVJMU3Rh
cnQ7CiAgICAgdW5zaWduZWQgaW1hZ2VVUkxMZW5ndGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MUGFyc2VySWRpb21zLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MUGFyc2VySWRpb21zLmgKaW5kZXggZmIyMDgyOWI3ZjRjMjRkM2JiNDFiNmY0
Y2I3M2RkYzYwYzgzMGMyNC4uN2M1OTE0MjQ4ZjllZmM4ODIzZDBjZmI4OWJkOTUzZWMzOTk0ZTc2
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlcklkaW9t
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJJZGlvbXMuaApA
QCAtOTgsMTYgKzk4LDYgQEAgaW5saW5lIGJvb2wgaXNIVE1MU3BhY2VCdXROb3RMaW5lQnJlYWso
VUNoYXIgY2hhcmFjdGVyKQogfQogCiBib29sIHRocmVhZFNhZmVNYXRjaChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgUXVhbGlmaWVkTmFtZSYpOwotI2lmIEVOQUJMRShUSFJFQURFRF9IVE1M
X1BBUlNFUikKLWJvb2wgdGhyZWFkU2FmZU1hdGNoKGNvbnN0IEhUTUxJZGVudGlmaWVyJiwgY29u
c3QgUXVhbGlmaWVkTmFtZSYpOwotaW5saW5lIGJvb2wgdGhyZWFkU2FmZUhUTUxOYW1lc01hdGNo
KGNvbnN0IEhUTUxJZGVudGlmaWVyJiB0YWdOYW1lLCBjb25zdCBRdWFsaWZpZWROYW1lJiBxTmFt
ZSkKLXsKLSAgICAvLyBXaGVuIHRoZSBRdWFsaWZpZWROYW1lIGlzIGtub3duIHRvIEhUTUxJZGVu
dGlmaWVyLAotICAgIC8vIGFsbCB3ZSBoYXZlIHRvIGRvIGlzIGEgcG9pbnRlciBjb21wYXJlLgot
ICAgIEFTU0VSVChIVE1MSWRlbnRpZmllcjo6aGFzSW5kZXgocU5hbWUubG9jYWxOYW1lKCkuaW1w
bCgpKSk7Ci0gICAgcmV0dXJuIHRhZ05hbWUuYXNTdHJpbmdJbXBsKCkgPT0gcU5hbWUubG9jYWxO
YW1lKCkuaW1wbCgpOwotfQotI2VuZGlmCiAKIFN0cmluZyBiZXN0Rml0U291cmNlRm9ySW1hZ2VB
dHRyaWJ1dGVzKGZsb2F0IGRldmljZVNjYWxlRmFjdG9yLCBjb25zdCBTdHJpbmcmIHNyY0F0dHJp
YnV0ZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VTZXRBdHRyaWJ1dGUpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVG9rZW5pemVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbml6ZXIuY3BwCmluZGV4IGQ0ZDM5MjJmZjI4NDg2ZDcz
MDEzOTE1YjQ4MzMxMDlkZWYyMzIxZDguLjJhYmVmYWY2ODljZjczZmNhMGFkMDEyNzYwNzZlZDZh
NGZjZDRiZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tl
bml6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbml6ZXIu
Y3BwCkBAIC0xMjAsNDEgKzEyMCw2IEBAIHZvaWQgSFRNTFRva2VuaXplcjo6cmVzZXQoKQogICAg
IG1fYWRkaXRpb25hbEFsbG93ZWRDaGFyYWN0ZXIgPSAnXDAnOwogfQogCi0jaWYgRU5BQkxFKFRI
UkVBREVEX0hUTUxfUEFSU0VSKQotCi1ib29sIEhUTUxUb2tlbml6ZXI6OmNhbkNyZWF0ZUNoZWNr
cG9pbnQoKSBjb25zdAotewotICAgIGlmICghbV9hcHByb3ByaWF0ZUVuZFRhZ05hbWUuaXNFbXB0
eSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFtX3RlbXBvcmFyeUJ1ZmZlci5p
c0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIW1fYnVmZmVyZWRFbmRU
YWdOYW1lLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiB0cnVl
OwotfQotCi12b2lkIEhUTUxUb2tlbml6ZXI6OmNyZWF0ZUNoZWNrcG9pbnQoQ2hlY2twb2ludCYg
cmVzdWx0KSBjb25zdAotewotICAgIEFTU0VSVChjYW5DcmVhdGVDaGVja3BvaW50KCkpOwotICAg
IHJlc3VsdC5vcHRpb25zID0gbV9vcHRpb25zOwotICAgIHJlc3VsdC5zdGF0ZSA9IG1fc3RhdGU7
Ci0gICAgcmVzdWx0LmFkZGl0aW9uYWxBbGxvd2VkQ2hhcmFjdGVyID0gbV9hZGRpdGlvbmFsQWxs
b3dlZENoYXJhY3RlcjsKLSAgICByZXN1bHQuc2tpcE5leHROZXdMaW5lID0gbV9pbnB1dFN0cmVh
bVByZXByb2Nlc3Nvci5za2lwTmV4dE5ld0xpbmUoKTsKLSAgICByZXN1bHQuc2hvdWxkQWxsb3dD
REFUQSA9IG1fc2hvdWxkQWxsb3dDREFUQTsKLX0KLQotdm9pZCBIVE1MVG9rZW5pemVyOjpyZXN0
b3JlRnJvbUNoZWNrcG9pbnQoY29uc3QgQ2hlY2twb2ludCYgY2hlY2twb2ludCkKLXsKLSAgICBt
X3Rva2VuID0gMDsKLSAgICBtX29wdGlvbnMgPSBjaGVja3BvaW50Lm9wdGlvbnM7Ci0gICAgbV9z
dGF0ZSA9IGNoZWNrcG9pbnQuc3RhdGU7Ci0gICAgbV9hZGRpdGlvbmFsQWxsb3dlZENoYXJhY3Rl
ciA9IGNoZWNrcG9pbnQuYWRkaXRpb25hbEFsbG93ZWRDaGFyYWN0ZXI7Ci0gICAgbV9pbnB1dFN0
cmVhbVByZXByb2Nlc3Nvci5yZXNldChjaGVja3BvaW50LnNraXBOZXh0TmV3TGluZSk7Ci0gICAg
bV9zaG91bGRBbGxvd0NEQVRBID0gY2hlY2twb2ludC5zaG91bGRBbGxvd0NEQVRBOwotfQotCi0j
ZW5kaWYKLQogaW5saW5lIGJvb2wgSFRNTFRva2VuaXplcjo6cHJvY2Vzc0VudGl0eShTZWdtZW50
ZWRTdHJpbmcmIHNvdXJjZSkKIHsKICAgICBib29sIG5vdEVub3VnaENoYXJhY3RlcnMgPSBmYWxz
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbml6ZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbml6ZXIuaAppbmRleCBlYzg1
YmQwMzllMzEyY2FhNGI5NjhlMDcxYjM2NTkwNmRjOGUwZWM1Li5hYmFjYWJiYjdhZDA2Y2RjOWQ4
ZDkwYjlkMWVhNGQ4YzZkN2VmYzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MVG9rZW5pemVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TFRva2VuaXplci5oCkBAIC0xMjEsMzMgKzEyMSw2IEBAIHB1YmxpYzoKICAgICAgICAgQ0RBVEFT
ZWN0aW9uRG91YmxlUmlnaHRTcXVhcmVCcmFja2V0U3RhdGUsCiAgICAgfTsKIAotI2lmIEVOQUJM
RShUSFJFQURFRF9IVE1MX1BBUlNFUikKLQotICAgIHN0cnVjdCBDaGVja3BvaW50IHsKLSAgICAg
ICAgSFRNTFBhcnNlck9wdGlvbnMgb3B0aW9uczsKLSAgICAgICAgU3RhdGUgc3RhdGU7Ci0gICAg
ICAgIFVDaGFyIGFkZGl0aW9uYWxBbGxvd2VkQ2hhcmFjdGVyOwotICAgICAgICBib29sIHNraXBO
ZXh0TmV3TGluZTsKLSAgICAgICAgYm9vbCBmb3JjZU51bGxDaGFyYWN0ZXJSZXBsYWNlbWVudDsK
LSAgICAgICAgYm9vbCBzaG91bGRBbGxvd0NEQVRBOwotCi0gICAgICAgIENoZWNrcG9pbnQoKQot
ICAgICAgICAgICAgOiBvcHRpb25zKDApCi0gICAgICAgICAgICAsIHN0YXRlKCkKLSAgICAgICAg
ICAgICwgYWRkaXRpb25hbEFsbG93ZWRDaGFyYWN0ZXIoJ1wwJykKLSAgICAgICAgICAgICwgc2tp
cE5leHROZXdMaW5lKGZhbHNlKQotICAgICAgICAgICAgLCBmb3JjZU51bGxDaGFyYWN0ZXJSZXBs
YWNlbWVudChmYWxzZSkKLSAgICAgICAgICAgICwgc2hvdWxkQWxsb3dDREFUQShmYWxzZSkKLSAg
ICAgICAgewotICAgICAgICB9Ci0gICAgfTsKLQotICAgIGJvb2wgY2FuQ3JlYXRlQ2hlY2twb2lu
dCgpIGNvbnN0OwotICAgIHZvaWQgY3JlYXRlQ2hlY2twb2ludChDaGVja3BvaW50JikgY29uc3Q7
Ci0gICAgdm9pZCByZXN0b3JlRnJvbUNoZWNrcG9pbnQoY29uc3QgQ2hlY2twb2ludCYpOwotCi0j
ZW5kaWYKLQogICAgIC8vIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0cnVlIGlmIGl0IGVtaXRzIGEg
dG9rZW4uIE90aGVyd2lzZSwgY2FsbGVycwogICAgIC8vIG11c3QgcHJvdmlkZSB0aGUgc2FtZSAo
aW4gcHJvZ3Jlc3MpIHRva2VuIG9uIHRoZSBuZXh0IGNhbGwgKHVubGVzcwogICAgIC8vIHRoZXkg
Y2FsbCByZXNldCgpIGZpcnN0KS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIu
Y3BwCmluZGV4IDA2YmQ3NTlkOGQxNTg1ZjU0ZmNhMTVlMTA1YWY0MzVhODg2ODU1YzIuLjhhY2Vl
MGEyYTViYjFmMGE0N2NkN2YyYjNiNTYwZGU5MTkwNjMzYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtMzU3LDEzICszNTcsMTIgQEAgdm9pZCBEb2N1bWVu
dExvYWRlcjo6Y29tbWl0SWZSZWFkeSgpCiAKIGJvb2wgRG9jdW1lbnRMb2FkZXI6OmlzTG9hZGlu
ZygpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGFsd2F5cyBiZSBlbmFibGVk
LCBidXQgaXQgc2VlbXMgdG8gY2F1c2UKKyAgICAvLyBpZiAoZG9jdW1lbnQoKSAmJiBkb2N1bWVu
dCgpLT5oYXNBY3RpdmVQYXJzZXIoKSkKKyAgICAvLyAgICAgcmV0dXJuIHRydWU7CisgICAgLy8g
RklYTUU6IFRoZSBhYm92ZSBjb2RlIHNob3VsZCBiZSBlbmFibGVkLCBidXQgaXQgc2VlbXMgdG8g
Y2F1c2UKICAgICAvLyBodHRwL3Rlc3RzL3NlY3VyaXR5L2ZlZWQtdXJscy1mcm9tLXJlbW90ZS5o
dG1sIHRvIHRpbWVvdXQgb24gTWFjIFdLMQogICAgIC8vIHNlZSBodHRwOi8vd2Via2l0Lm9yZy9i
LzExMDU1NCBhbmQgaHR0cDovL3dlYmtpdC5vcmcvYi8xMTA0MDEKLSNpZiBFTkFCTEUoVEhSRUFE
RURfSFRNTF9QQVJTRVIpCi0gICAgaWYgKGRvY3VtZW50KCkgJiYgZG9jdW1lbnQoKS0+aGFzQWN0
aXZlUGFyc2VyKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotI2VuZGlmCisKICAgICByZXR1cm4g
aXNMb2FkaW5nTWFpblJlc291cmNlKCkgfHwgIW1fc3VicmVzb3VyY2VMb2FkZXJzLmlzRW1wdHko
KSB8fCAhbV9wbHVnSW5TdHJlYW1Mb2FkZXJzLmlzRW1wdHkoKTsKIH0KIApAQCAtOTIwLDExICs5
MTksOCBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpjaGVja0xvYWRDb21wbGV0ZSgpCiB7CiAgICAg
aWYgKCFtX2ZyYW1lIHx8IGlzTG9hZGluZygpKQogICAgICAgICByZXR1cm47Ci0jaWYgIUVOQUJM
RShUSFJFQURFRF9IVE1MX1BBUlNFUikKLSAgICAvLyBUaGlzIEFTU0VSVCB0cmlnZ2VycyB3aXRo
IHRoZSB0aHJlYWRlZCBIVE1MIHBhcnNlci4KLSAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDkzNworCiAgICAgQVNTRVJUKHRoaXMgPT0gZnJhbWVM
b2FkZXIoKS0+YWN0aXZlRG9jdW1lbnRMb2FkZXIoKSk7Ci0jZW5kaWYKICAgICBtX2ZyYW1lLT5k
b2N1bWVudCgpLT5kb21XaW5kb3coKS0+ZmluaXNoZWRMb2FkaW5nKCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4gYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NldHRpbmdzLmluCmluZGV4IGJkZTBiM2EwZWJjM2Q0OTQ4Yjc0YWI5ZDE1NTAzMWM3MmYwZGY1
NWIuLjVhNmY4MTNmMGEzYzFkYjkzMTk0MTgxMWE5NmU4M2RkNmUyOGVmYmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXR0aW5ncy5pbgpAQCAtMTU4LDkgKzE1OCw2IEBAIG1lZGlhRW5hYmxlZCBpbml0aWFsPXRy
dWUKIGFwcGxpY2F0aW9uQ2hyb21lTW9kZSBpbml0aWFsPWZhbHNlCiBET01QYXN0ZUFsbG93ZWQg
aW5pdGlhbD1mYWxzZQogCi10aHJlYWRlZEhUTUxQYXJzZXIgaW5pdGlhbD1mYWxzZSwgY29uZGl0
aW9uYWw9VEhSRUFERURfSFRNTF9QQVJTRVIKLXVzZVRocmVhZGVkSFRNTFBhcnNlckZvckRhdGFV
UkxzIGluaXRpYWw9ZmFsc2UsIGNvbmRpdGlvbmFsPVRIUkVBREVEX0hUTUxfUEFSU0VSCi0KICMg
V2hlbiBlbmFibGVkLCB3aW5kb3cuYmx1cigpIGRvZXMgbm90IGNoYW5nZSBmb2N1cywgYW5kCiAj
IHdpbmRvdy5mb2N1cygpIG9ubHkgY2hhbmdlcyBmb2N1cyB3aGVuIGludm9rZWQgZnJvbSB0aGUg
Y29udGV4dCB0aGF0CiAjIGNyZWF0ZWQgdGhlIHdpbmRvdy4K
</data>
<flag name="review"
          id="245490"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>