<?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>36008</bug_id>
          
          <creation_ts>2010-03-11 03:14:29 -0800</creation_ts>
          <short_desc>[Qt] QtScript should have QScriptProgram class</short_desc>
          <delta_ts>2010-03-21 15:30:39 -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>Qt</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>31863</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jędrzej Nowacki">jedrzej.nowacki</reporter>
          <assigned_to name="Jędrzej Nowacki">jedrzej.nowacki</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>jedrzej.nowacki</cc>
    
    <cc>kent.hansen</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>198539</commentid>
    <comment_count>0</comment_count>
    <who name="Jędrzej Nowacki">jedrzej.nowacki</who>
    <bug_when>2010-03-11 03:14:29 -0800</bug_when>
    <thetext>QtScript API should contain QScriptProgram class, that can be used to evaluate the same script multiple times more efficiently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198540</commentid>
    <comment_count>1</comment_count>
      <attachid>50482</attachid>
    <who name="Jędrzej Nowacki">jedrzej.nowacki</who>
    <bug_when>2010-03-11 03:21:35 -0800</bug_when>
    <thetext>Created attachment 50482
Fix v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202342</commentid>
    <comment_count>2</comment_count>
      <attachid>50482</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-03-21 15:30:34 -0700</bug_when>
    <thetext>Comment on attachment 50482
Fix v1

Clearing flags on attachment: 50482

Committed r56320: &lt;http://trac.webkit.org/changeset/56320&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202343</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-03-21 15:30:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50482</attachid>
            <date>2010-03-11 03:21:35 -0800</date>
            <delta_ts>2010-03-21 15:30:34 -0700</delta_ts>
            <desc>Fix v1</desc>
            <filename>programV1.diff</filename>
            <type>text/plain</type>
            <size>20935</size>
            <attacher name="Jędrzej Nowacki">jedrzej.nowacki</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBkYjZkM2Q5Li5lMjM3OGZmIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAg
QEAKKzIwMTAtMDMtMTEgIEplZHJ6ZWogTm93YWNraSAgPGplZHJ6ZWoubm93YWNraUBub2tpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmV3
IGNsYXNzOyBRU2NyaXB0UHJvZ3JhbS4KKworICAgICAgICBUaGUgY2xhc3Mgc2hvdWxkIGJlIHVz
ZWQgdG8gZXZhbHVhdGUgdGhlIHNhbWUgc2NyaXB0IG11bHRpcGxlIHRpbWVzCisgICAgICAgIG1v
cmUgZWZmaWNpZW50bHkuCisKKyAgICAgICAgW1F0XSBRdFNjcmlwdCBzaG91bGQgaGF2ZSBRU2Ny
aXB0UHJvZ3JhbSBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzYwMDgKKworICAgICAgICAqIHF0L2FwaS9RdFNjcmlwdC5wcm86CisgICAgICAg
ICogcXQvYXBpL3FzY3JpcHRlbmdpbmUuY3BwOgorICAgICAgICAoUVNjcmlwdEVuZ2luZTo6ZXZh
bHVhdGUpOgorICAgICAgICAqIHF0L2FwaS9xc2NyaXB0ZW5naW5lLmg6CisgICAgICAgICogcXQv
YXBpL3FzY3JpcHRlbmdpbmVfcC5jcHA6CisgICAgICAgIChRU2NyaXB0RW5naW5lUHJpdmF0ZTo6
ZXZhbHVhdGUpOgorICAgICAgICAqIHF0L2FwaS9xc2NyaXB0ZW5naW5lX3AuaDoKKyAgICAgICAg
KFFTY3JpcHRFbmdpbmVQcml2YXRlOjpldmFsdWF0ZSk6CisgICAgICAgICogcXQvYXBpL3FzY3Jp
cHRwcm9ncmFtLmNwcDogQWRkZWQuCisgICAgICAgIChRU2NyaXB0UHJvZ3JhbTo6UVNjcmlwdFBy
b2dyYW0pOgorICAgICAgICAoUVNjcmlwdFByb2dyYW06On5RU2NyaXB0UHJvZ3JhbSk6CisgICAg
ICAgIChRU2NyaXB0UHJvZ3JhbTo6b3BlcmF0b3I9KToKKyAgICAgICAgKFFTY3JpcHRQcm9ncmFt
Ojppc051bGwpOgorICAgICAgICAoUVNjcmlwdFByb2dyYW06OnNvdXJjZUNvZGUpOgorICAgICAg
ICAoUVNjcmlwdFByb2dyYW06OmZpbGVOYW1lKToKKyAgICAgICAgKFFTY3JpcHRQcm9ncmFtOjpm
aXJzdExpbmVOdW1iZXIpOgorICAgICAgICAoUVNjcmlwdFByb2dyYW06Om9wZXJhdG9yPT0pOgor
ICAgICAgICAoUVNjcmlwdFByb2dyYW06Om9wZXJhdG9yIT0pOgorICAgICAgICAqIHF0L2FwaS9x
c2NyaXB0cHJvZ3JhbS5oOiBBZGRlZC4KKyAgICAgICAgKiBxdC9hcGkvcXNjcmlwdHByb2dyYW1f
cC5oOiBBZGRlZC4KKyAgICAgICAgKFFTY3JpcHRQcm9ncmFtUHJpdmF0ZTo6Z2V0KToKKyAgICAg
ICAgKFFTY3JpcHRQcm9ncmFtUHJpdmF0ZTo6UVNjcmlwdFByb2dyYW1Qcml2YXRlKToKKyAgICAg
ICAgKFFTY3JpcHRQcm9ncmFtUHJpdmF0ZTo6flFTY3JpcHRQcm9ncmFtUHJpdmF0ZSk6CisgICAg
ICAgIChRU2NyaXB0UHJvZ3JhbVByaXZhdGU6OmlzTnVsbCk6CisgICAgICAgIChRU2NyaXB0UHJv
Z3JhbVByaXZhdGU6OnNvdXJjZUNvZGUpOgorICAgICAgICAoUVNjcmlwdFByb2dyYW1Qcml2YXRl
OjpmaWxlTmFtZSk6CisgICAgICAgIChRU2NyaXB0UHJvZ3JhbVByaXZhdGU6OmZpcnN0TGluZU51
bWJlcik6CisgICAgICAgIChRU2NyaXB0UHJvZ3JhbVByaXZhdGU6Om9wZXJhdG9yPT0pOgorICAg
ICAgICAoUVNjcmlwdFByb2dyYW1Qcml2YXRlOjpvcGVyYXRvciE9KToKKyAgICAgICAgKFFTY3Jp
cHRQcm9ncmFtUHJpdmF0ZTo6cHJvZ3JhbSk6CisgICAgICAgIChRU2NyaXB0UHJvZ3JhbVByaXZh
dGU6OmZpbGUpOgorICAgICAgICAoUVNjcmlwdFByb2dyYW1Qcml2YXRlOjpsaW5lKToKKyAgICAg
ICAgKiBxdC90ZXN0cy9xc2NyaXB0ZW5naW5lL3RzdF9xc2NyaXB0ZW5naW5lLmNwcDoKKyAgICAg
ICAgKHRzdF9RU2NyaXB0RW5naW5lOjpldmFsdWF0ZVByb2dyYW0pOgorCiAyMDEwLTAzLTEwICBL
ZXZpbiBPbGxpdmllciAgPGtldmlub0B0aGVvbGxpdmllcnMuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL1F0
U2NyaXB0LnBybyBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9RdFNjcmlwdC5wcm8KaW5kZXggZDYx
MzI1NC4uMzk5YWQ4ZSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL1F0U2NyaXB0
LnBybworKysgYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvUXRTY3JpcHQucHJvCkBAIC0yMyw2ICsy
Myw3IEBAIFNPVVJDRVMgKz0gICQkUFdEL3FzY3JpcHRlbmdpbmUuY3BwIFwKICAgICAgICAgICAg
ICQkUFdEL3FzY3JpcHRlbmdpbmVfcC5jcHAgXAogICAgICAgICAgICAgJCRQV0QvcXNjcmlwdHZh
bHVlLmNwcCBcCiAgICAgICAgICAgICAkJFBXRC9xc2NyaXB0c3RyaW5nLmNwcCBcCisgICAgICAg
ICAgICAkJFBXRC9xc2NyaXB0cHJvZ3JhbS5jcHAgXAogCiBIRUFERVJTICs9ICAkJFBXRC9xdHNj
cmlwdGdsb2JhbC5oIFwKICAgICAgICAgICAgICQkUFdEL3FzY3JpcHRlbmdpbmUuaCBcCkBAIC0z
Miw5ICszMywxMCBAQCBIRUFERVJTICs9ICAkJFBXRC9xdHNjcmlwdGdsb2JhbC5oIFwKICAgICAg
ICAgICAgICQkUFdEL3FzY3JpcHRjb252ZXJ0ZXJfcC5oIFwKICAgICAgICAgICAgICQkUFdEL3Fz
Y3JpcHRzdHJpbmcuaCBcCiAgICAgICAgICAgICAkJFBXRC9xc2NyaXB0c3RyaW5nX3AuaCBcCisg
ICAgICAgICAgICAkJFBXRC9xc2NyaXB0cHJvZ3JhbS5oIFwKKyAgICAgICAgICAgICQkUFdEL3Fz
Y3JpcHRwcm9ncmFtX3AuaCBcCiAKIAogIXN0YXRpYzogREVGSU5FUyArPSBRVF9NQUtFRExMCiAK
IERFU1RESVIgPSAkJE9VVFBVVF9ESVIvbGliCi0KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3Jl
L3F0L2FwaS9xc2NyaXB0ZW5naW5lLmNwcCBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0
ZW5naW5lLmNwcAppbmRleCA0MTYzNGY0Li40M2NkZTI3IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0
Q29yZS9xdC9hcGkvcXNjcmlwdGVuZ2luZS5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvcXQvYXBp
L3FzY3JpcHRlbmdpbmUuY3BwCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAicXNjcmlwdGVu
Z2luZS5oIgogCiAjaW5jbHVkZSAicXNjcmlwdGVuZ2luZV9wLmgiCisjaW5jbHVkZSAicXNjcmlw
dHByb2dyYW1fcC5oIgogI2luY2x1ZGUgInFzY3JpcHR2YWx1ZV9wLmgiCiAKIC8qIQpAQCAtNzEs
NiArNzIsMTEgQEAgUVNjcmlwdFZhbHVlIFFTY3JpcHRFbmdpbmU6OmV2YWx1YXRlKGNvbnN0IFFT
dHJpbmcmIHByb2dyYW0sIGNvbnN0IFFTdHJpbmcmIGZpbGUKICAgICByZXR1cm4gUVNjcmlwdFZh
bHVlUHJpdmF0ZTo6Z2V0KGRfcHRyLT5ldmFsdWF0ZShwcm9ncmFtLCBmaWxlTmFtZSwgbGluZU51
bWJlcikpOwogfQogCitRU2NyaXB0VmFsdWUgUVNjcmlwdEVuZ2luZTo6ZXZhbHVhdGUoY29uc3Qg
UVNjcmlwdFByb2dyYW0mIHByb2dyYW0pCit7CisgICAgcmV0dXJuIFFTY3JpcHRWYWx1ZVByaXZh
dGU6OmdldChkX3B0ci0+ZXZhbHVhdGUoUVNjcmlwdFByb2dyYW1Qcml2YXRlOjpnZXQocHJvZ3Jh
bSkpKTsKK30KKwogLyohCiAgICAgUnVucyB0aGUgZ2FyYmFnZSBjb2xsZWN0b3IuCiAKZGlmZiAt
LWdpdCBhL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0ZW5naW5lLmggYi9KYXZhU2NyaXB0
Q29yZS9xdC9hcGkvcXNjcmlwdGVuZ2luZS5oCmluZGV4IGJhOWE5YmMuLjVjMjU5NTMgMTAwNjQ0
Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0ZW5naW5lLmgKKysrIGIvSmF2YVNj
cmlwdENvcmUvcXQvYXBpL3FzY3JpcHRlbmdpbmUuaApAQCAtMjAsNiArMjAsNyBAQAogI2lmbmRl
ZiBxc2NyaXB0ZW5naW5lX2gKICNkZWZpbmUgcXNjcmlwdGVuZ2luZV9oCiAKKyNpbmNsdWRlICJx
c2NyaXB0cHJvZ3JhbS5oIgogI2luY2x1ZGUgInFzY3JpcHRzdHJpbmcuaCIKICNpbmNsdWRlIDxR
dENvcmUvcW9iamVjdC5oPgogI2luY2x1ZGUgPFF0Q29yZS9xc2hhcmVkZGF0YS5oPgpAQCAtMzcs
NiArMzgsNyBAQCBwdWJsaWM6CiAgICAgflFTY3JpcHRFbmdpbmUoKTsKIAogICAgIFFTY3JpcHRW
YWx1ZSBldmFsdWF0ZShjb25zdCBRU3RyaW5nJiBwcm9ncmFtLCBjb25zdCBRU3RyaW5nJiBmaWxl
TmFtZSA9IFFTdHJpbmcoKSwgaW50IGxpbmVOdW1iZXIgPSAxKTsKKyAgICBRU2NyaXB0VmFsdWUg
ZXZhbHVhdGUoY29uc3QgUVNjcmlwdFByb2dyYW0mIHByb2dyYW0pOwogICAgIHZvaWQgY29sbGVj
dEdhcmJhZ2UoKTsKIAogICAgIFFTY3JpcHRTdHJpbmcgdG9TdHJpbmdIYW5kbGUoY29uc3QgUVN0
cmluZyYgc3RyKTsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0ZW5n
aW5lX3AuY3BwIGIvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRlbmdpbmVfcC5jcHAKaW5k
ZXggZGU4YTM1NS4uMGZhMDE4ZSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3Fz
Y3JpcHRlbmdpbmVfcC5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRlbmdp
bmVfcC5jcHAKQEAgLTIxLDYgKzIxLDcgQEAKIAogI2luY2x1ZGUgInFzY3JpcHRlbmdpbmVfcC5o
IgogCisjaW5jbHVkZSAicXNjcmlwdHByb2dyYW1fcC5oIgogI2luY2x1ZGUgInFzY3JpcHR2YWx1
ZV9wLmgiCiAKIC8qIQpAQCAtNDYsOSArNDcsMTYgQEAgUVNjcmlwdFZhbHVlUHJpdmF0ZSogUVNj
cmlwdEVuZ2luZVByaXZhdGU6OmV2YWx1YXRlKGNvbnN0IFFTdHJpbmcmIHByb2dyYW0sIGNvbnMK
IHsKICAgICBKU1N0cmluZ1JlZiBzY3JpcHQgPSBRU2NyaXB0Q29udmVydGVyOjp0b1N0cmluZyhw
cm9ncmFtKTsKICAgICBKU1N0cmluZ1JlZiBmaWxlID0gUVNjcmlwdENvbnZlcnRlcjo6dG9TdHJp
bmcoZmlsZU5hbWUpOwotICAgIEpTVmFsdWVSZWYgZXhjZXB0aW9uOwotICAgIEpTVmFsdWVSZWYg
cmVzdWx0ID0gSlNFdmFsdWF0ZVNjcmlwdChtX2NvbnRleHQsIHNjcmlwdCwgLyogR2xvYmFsIE9i
amVjdCAqLyAwLCBmaWxlLCBsaW5lTnVtYmVyLCAmZXhjZXB0aW9uKTsKLSAgICBpZiAoIXJlc3Vs
dCkKLSAgICAgICAgcmV0dXJuIG5ldyBRU2NyaXB0VmFsdWVQcml2YXRlKHRoaXMsIGV4Y2VwdGlv
bik7IC8vIHJldHVybnMgYW4gZXhjZXB0aW9uCi0gICAgcmV0dXJuIG5ldyBRU2NyaXB0VmFsdWVQ
cml2YXRlKHRoaXMsIHJlc3VsdCk7CisgICAgcmV0dXJuIG5ldyBRU2NyaXB0VmFsdWVQcml2YXRl
KHRoaXMsIGV2YWx1YXRlKHNjcmlwdCwgZmlsZSwgbGluZU51bWJlcikpOworfQorCisvKiEKKyAg
ICBFdmFsdWF0ZXMgcHJvZ3JhbSBhbmQgcmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSBldmFsdWF0
aW9uLgorICAgIFxpbnRlcm5hbAorKi8KK1FTY3JpcHRWYWx1ZVByaXZhdGUqIFFTY3JpcHRFbmdp
bmVQcml2YXRlOjpldmFsdWF0ZShjb25zdCBRU2NyaXB0UHJvZ3JhbVByaXZhdGUqIHByb2dyYW0p
Cit7CisgICAgaWYgKHByb2dyYW0tPmlzTnVsbCgpKQorICAgICAgICByZXR1cm4gbmV3IFFTY3Jp
cHRWYWx1ZVByaXZhdGU7CisgICAgcmV0dXJuIG5ldyBRU2NyaXB0VmFsdWVQcml2YXRlKHRoaXMs
IGV2YWx1YXRlKHByb2dyYW0tPnByb2dyYW0oKSwgcHJvZ3JhbS0+ZmlsZSgpLCBwcm9ncmFtLT5s
aW5lKCkpKTsKIH0KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0ZW5n
aW5lX3AuaCBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0ZW5naW5lX3AuaAppbmRleCBj
NTgzZGFjLi41YTM2MzkxIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlw
dGVuZ2luZV9wLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRlbmdpbmVfcC5o
CkBAIC0zOSw2ICszOSw4IEBAIHB1YmxpYzoKICAgICB+UVNjcmlwdEVuZ2luZVByaXZhdGUoKTsK
IAogICAgIFFTY3JpcHRWYWx1ZVByaXZhdGUqIGV2YWx1YXRlKGNvbnN0IFFTdHJpbmcmIHByb2dy
YW0sIGNvbnN0IFFTdHJpbmcmIGZpbGVOYW1lLCBpbnQgbGluZU51bWJlcik7CisgICAgUVNjcmlw
dFZhbHVlUHJpdmF0ZSogZXZhbHVhdGUoY29uc3QgUVNjcmlwdFByb2dyYW1Qcml2YXRlKiBwcm9n
cmFtKTsKKyAgICBpbmxpbmUgSlNWYWx1ZVJlZiBldmFsdWF0ZShKU1N0cmluZ1JlZiBwcm9ncmFt
LCBKU1N0cmluZ1JlZiBmaWxlTmFtZSwgaW50IGxpbmVOdW1iZXIpOwogICAgIGlubGluZSB2b2lk
IGNvbGxlY3RHYXJiYWdlKCk7CiAKICAgICBpbmxpbmUgSlNWYWx1ZVJlZiBtYWtlSlNWYWx1ZShk
b3VibGUgbnVtYmVyKSBjb25zdDsKQEAgLTU2LDYgKzU4LDE2IEBAIHByaXZhdGU6CiAgICAgSlNH
bG9iYWxDb250ZXh0UmVmIG1fY29udGV4dDsKIH07CiAKKworSlNWYWx1ZVJlZiBRU2NyaXB0RW5n
aW5lUHJpdmF0ZTo6ZXZhbHVhdGUoSlNTdHJpbmdSZWYgcHJvZ3JhbSwgSlNTdHJpbmdSZWYgZmls
ZU5hbWUsIGludCBsaW5lTnVtYmVyKQoreworICAgIEpTVmFsdWVSZWYgZXhjZXB0aW9uOworICAg
IEpTVmFsdWVSZWYgcmVzdWx0ID0gSlNFdmFsdWF0ZVNjcmlwdChtX2NvbnRleHQsIHByb2dyYW0s
IC8qIEdsb2JhbCBPYmplY3QgKi8gMCwgZmlsZU5hbWUsIGxpbmVOdW1iZXIsICZleGNlcHRpb24p
OworICAgIGlmICghcmVzdWx0KQorICAgICAgICByZXR1cm4gZXhjZXB0aW9uOyAvLyByZXR1cm5z
IGFuIGV4Y2VwdGlvbgorICAgIHJldHVybiByZXN1bHQ7Cit9CisKIHZvaWQgUVNjcmlwdEVuZ2lu
ZVByaXZhdGU6OmNvbGxlY3RHYXJiYWdlKCkKIHsKICAgICBKU0dhcmJhZ2VDb2xsZWN0KG1fY29u
dGV4dCk7CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHByb2dyYW0u
Y3BwIGIvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRwcm9ncmFtLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kN2Q0OTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvSmF2
YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRwcm9ncmFtLmNwcApAQCAtMCwwICsxLDEzNiBAQAor
LyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAicXNj
cmlwdHByb2dyYW0uaCIKKworI2luY2x1ZGUgInFzY3JpcHRwcm9ncmFtX3AuaCIKKworLyohCisg
IFxpbnRlcm5hbAorCisgIFxjbGFzcyBRU2NyaXB0UHJvZ3JhbQorCisgIFxicmllZiBUaGUgUVNj
cmlwdFByb2dyYW0gY2xhc3MgZW5jYXBzdWxhdGVzIGEgUXQgU2NyaXB0IHByb2dyYW0uCisKKyAg
XGluZ3JvdXAgc2NyaXB0CisKKyAgUVNjcmlwdFByb2dyYW0gcmV0YWlucyB0aGUgY29tcGlsZWQg
cmVwcmVzZW50YXRpb24gb2YgdGhlIHNjcmlwdCBpZgorICBwb3NzaWJsZS4gVGh1cywgUVNjcmlw
dFByb2dyYW0gY2FuIGJlIHVzZWQgdG8gZXZhbHVhdGUgdGhlIHNhbWUKKyAgc2NyaXB0IG11bHRp
cGxlIHRpbWVzIG1vcmUgZWZmaWNpZW50bHkuCisKKyAgXGNvZGUKKyAgUVNjcmlwdEVuZ2luZSBl
bmdpbmU7CisgIFFTY3JpcHRQcm9ncmFtIHByb2dyYW0oIjEgKyAyIik7CisgIFFTY3JpcHRWYWx1
ZSByZXN1bHQgPSBlbmdpbmUuZXZhbHVhdGUocHJvZ3JhbSk7CisgIFxlbmRjb2RlCisqLworCisv
KiEKKyAgQ29uc3RydWN0cyBhIG51bGwgUVNjcmlwdFByb2dyYW0uCisqLworUVNjcmlwdFByb2dy
YW06OlFTY3JpcHRQcm9ncmFtKCkKKyAgICA6IGRfcHRyKG5ldyBRU2NyaXB0UHJvZ3JhbVByaXZh
dGUpCit7fQorCisvKiEKKyAgQ29uc3RydWN0cyBhIG5ldyBRU2NyaXB0UHJvZ3JhbSB3aXRoIHRo
ZSBnaXZlbiBcYSBzb3VyY2VDb2RlLCBcYQorICBmaWxlTmFtZSBhbmQgXGEgZmlyc3RMaW5lTnVt
YmVyLgorKi8KK1FTY3JpcHRQcm9ncmFtOjpRU2NyaXB0UHJvZ3JhbShjb25zdCBRU3RyaW5nJiBz
b3VyY2VDb2RlLAorICAgICAgICAgICAgICAgY29uc3QgUVN0cmluZyBmaWxlTmFtZSwKKyAgICAg
ICAgICAgICAgIGludCBmaXJzdExpbmVOdW1iZXIpCisgICAgOiBkX3B0cihuZXcgUVNjcmlwdFBy
b2dyYW1Qcml2YXRlKHNvdXJjZUNvZGUsIGZpbGVOYW1lLCBmaXJzdExpbmVOdW1iZXIpKQore30K
KworLyohCisgIERlc3Ryb3lzIHRoaXMgUVNjcmlwdFByb2dyYW0uCisqLworUVNjcmlwdFByb2dy
YW06On5RU2NyaXB0UHJvZ3JhbSgpCit7fQorCisvKiEKKyAgQ29uc3RydWN0cyBhIG5ldyBRU2Ny
aXB0UHJvZ3JhbSB0aGF0IGlzIGEgY29weSBvZiBcYSBvdGhlci4KKyovCitRU2NyaXB0UHJvZ3Jh
bTo6UVNjcmlwdFByb2dyYW0oY29uc3QgUVNjcmlwdFByb2dyYW0mIG90aGVyKQoreworICAgIGRf
cHRyID0gb3RoZXIuZF9wdHI7Cit9CisKKy8qIQorICBBc3NpZ25zIHRoZSBcYSBvdGhlciB2YWx1
ZSB0byB0aGlzIFFTY3JpcHRQcm9ncmFtLgorKi8KK1FTY3JpcHRQcm9ncmFtJiBRU2NyaXB0UHJv
Z3JhbTo6b3BlcmF0b3I9KGNvbnN0IFFTY3JpcHRQcm9ncmFtJiBvdGhlcikKK3sKKyAgICBkX3B0
ciA9IG90aGVyLmRfcHRyOworICAgIHJldHVybiAqdGhpczsKK30KKworLyohCisgIFJldHVybnMg
dHJ1ZSBpZiB0aGlzIFFTY3JpcHRQcm9ncmFtIGlzIG51bGw7IG90aGVyd2lzZQorICByZXR1cm5z
IGZhbHNlLgorKi8KK2Jvb2wgUVNjcmlwdFByb2dyYW06OmlzTnVsbCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIGRfcHRyLT5pc051bGwoKTsKK30KKworLyohCisgIFJldHVybnMgdGhlIHNvdXJjZSBj
b2RlIG9mIHRoaXMgcHJvZ3JhbS4KKyovCitRU3RyaW5nIFFTY3JpcHRQcm9ncmFtOjpzb3VyY2VD
b2RlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZF9wdHItPnNvdXJjZUNvZGUoKTsKK30KKworLyoh
CisgIFJldHVybnMgdGhlIGZpbGVuYW1lIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHByb2dyYW0uCisq
LworUVN0cmluZyBRU2NyaXB0UHJvZ3JhbTo6ZmlsZU5hbWUoKSBjb25zdAoreworICAgIHJldHVy
biBkX3B0ci0+ZmlsZU5hbWUoKTsKK30KKworLyohCisgIFJldHVybnMgdGhlIGxpbmUgbnVtYmVy
IGFzc29jaWF0ZWQgd2l0aCB0aGlzIHByb2dyYW0uCisqLworaW50IFFTY3JpcHRQcm9ncmFtOjpm
aXJzdExpbmVOdW1iZXIoKSBjb25zdAoreworICAgIHJldHVybiBkX3B0ci0+Zmlyc3RMaW5lTnVt
YmVyKCk7Cit9CisKKy8qIQorICBSZXR1cm5zIHRydWUgaWYgdGhpcyBRU2NyaXB0UHJvZ3JhbSBp
cyBlcXVhbCB0byBcYSBvdGhlcjsKKyAgb3RoZXJ3aXNlIHJldHVybnMgZmFsc2UuCisqLworYm9v
bCBRU2NyaXB0UHJvZ3JhbTo6b3BlcmF0b3I9PShjb25zdCBRU2NyaXB0UHJvZ3JhbSYgb3RoZXIp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGRfcHRyID09IG90aGVyLmRfcHRyIHx8ICpkX3B0ciA9PSAq
b3RoZXIuZF9wdHI7Cit9CisKKy8qIQorICBSZXR1cm5zIHRydWUgaWYgdGhpcyBRU2NyaXB0UHJv
Z3JhbSBpcyBub3QgZXF1YWwgdG8gXGEgb3RoZXI7CisgIG90aGVyd2lzZSByZXR1cm5zIGZhbHNl
LgorKi8KK2Jvb2wgUVNjcmlwdFByb2dyYW06Om9wZXJhdG9yIT0oY29uc3QgUVNjcmlwdFByb2dy
YW0mIG90aGVyKSBjb25zdAoreworICAgIHJldHVybiBkX3B0ciAhPSBvdGhlci5kX3B0ciAmJiAq
ZF9wdHIgIT0gKm90aGVyLmRfcHRyOworfQorCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9x
dC9hcGkvcXNjcmlwdHByb2dyYW0uaCBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0cHJv
Z3JhbS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzYzhhM2MKLS0tIC9k
ZXYvbnVsbAorKysgYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHByb2dyYW0uaApAQCAt
MCwwICsxLDUzIEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAg
ICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAg
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAg
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaWZuZGVmIHFzY3JpcHRwcm9ncmFt
X2gKKyNkZWZpbmUgcXNjcmlwdHByb2dyYW1faAorCisjaW5jbHVkZSAicXRzY3JpcHRnbG9iYWwu
aCIKKyNpbmNsdWRlIDxRdENvcmUvcXNoYXJlZGRhdGEuaD4KKyNpbmNsdWRlIDxRdENvcmUvcXN0
cmluZy5oPgorCitjbGFzcyBRU2NyaXB0UHJvZ3JhbVByaXZhdGU7CitjbGFzcyBRX0pBVkFTQ1JJ
UFRfRVhQT1JUIFFTY3JpcHRQcm9ncmFtIHsKK3B1YmxpYzoKKyAgICBRU2NyaXB0UHJvZ3JhbSgp
OworICAgIFFTY3JpcHRQcm9ncmFtKGNvbnN0IFFTdHJpbmcmIHNvdXJjZUNvZGUsCisgICAgICAg
ICAgICAgICAgICAgY29uc3QgUVN0cmluZyBmaWxlTmFtZSA9IFFTdHJpbmcoKSwKKyAgICAgICAg
ICAgICAgICAgICBpbnQgZmlyc3RMaW5lTnVtYmVyID0gMSk7CisgICAgUVNjcmlwdFByb2dyYW0o
Y29uc3QgUVNjcmlwdFByb2dyYW0mIG90aGVyKTsKKyAgICB+UVNjcmlwdFByb2dyYW0oKTsKKwor
ICAgIFFTY3JpcHRQcm9ncmFtJiBvcGVyYXRvcj0oY29uc3QgUVNjcmlwdFByb2dyYW0mIG90aGVy
KTsKKworICAgIGJvb2wgaXNOdWxsKCkgY29uc3Q7CisKKyAgICBRU3RyaW5nIHNvdXJjZUNvZGUo
KSBjb25zdDsKKyAgICBRU3RyaW5nIGZpbGVOYW1lKCkgY29uc3Q7CisgICAgaW50IGZpcnN0TGlu
ZU51bWJlcigpIGNvbnN0OworCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFFTY3JpcHRQcm9n
cmFtJiBvdGhlcikgY29uc3Q7CisgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFFTY3JpcHRQcm9n
cmFtJiBvdGhlcikgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgUUV4cGxpY2l0bHlTaGFyZWREYXRh
UG9pbnRlcjxRU2NyaXB0UHJvZ3JhbVByaXZhdGU+IGRfcHRyOworICAgIFFfREVDTEFSRV9QUklW
QVRFKFFTY3JpcHRQcm9ncmFtKQorfTsKKworI2VuZGlmIC8vIHFzY3JpcHRwcm9ncmFtX2gKZGlm
ZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0cHJvZ3JhbV9wLmggYi9KYXZh
U2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHByb2dyYW1fcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjZlODBlODUKLS0tIC9kZXYvbnVsbAorKysgYi9KYXZhU2NyaXB0Q29y
ZS9xdC9hcGkvcXNjcmlwdHByb2dyYW1fcC5oCkBAIC0wLDAgKzEsMTI5IEBACisvKgorICAgIENv
cHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykKKworICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisqLworCisjaWZuZGVmIHFzY3JpcHRwcm9ncmFtX3BfaAorI2RlZmluZSBxc2NyaXB0cHJv
Z3JhbV9wX2gKKworI2luY2x1ZGUgInFzY3JpcHRjb252ZXJ0ZXJfcC5oIgorI2luY2x1ZGUgInFz
Y3JpcHRwcm9ncmFtLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdC5oPgor
I2luY2x1ZGUgPFF0Q29yZS9xc2hhcmVkZGF0YS5oPgorI2luY2x1ZGUgPFF0Q29yZS9xc3RyaW5n
Lmg+CisKKy8qCisgICBGSVhNRSBUaGUgUVNjcmlwdFByb2dyYW1Qcml2YXRlIHBvdGVudGlhbGx5
IGNvdWxkIGJlIG11Y2ggZmFzdGVyLiBJbiBjdXJyZW50IGltcGxlbWVudGF0aW9uIHdlCisgICBn
YWluIENQVSB0aW1lIG9ubHkgYnkgYXZvaWRpbmcgUVN0cmluZyAtPiBKU1N0cmluZ1JlZiBjb252
ZXJzaW9uLiBJbiB0aGUgaWRlYWwgd29ybGQgd2Ugc2hvdWxkCisgICBoYXZlIGEgZnVuY3Rpb24g
aW5zaWRlIHRoZSBKU0MgQyBBUEkgdGhhdCBjb3VsZCBwcm92aWRlIHVzICJwYXJzZSBvbmNlLCBl
eGVjdXRlIG11bHRpcGxlIHRpbWVzIgorICAgZnVuY3Rpb25hbGl0eS4KKyovCisKK2NsYXNzIFFT
Y3JpcHRQcm9ncmFtUHJpdmF0ZSA6IHB1YmxpYyBRU2hhcmVkRGF0YSB7CitwdWJsaWM6CisgICAg
aW5saW5lIHN0YXRpYyBRU2NyaXB0UHJvZ3JhbVByaXZhdGUqIGdldChjb25zdCBRU2NyaXB0UHJv
Z3JhbSYgcHJvZ3JhbSk7CisgICAgaW5saW5lIFFTY3JpcHRQcm9ncmFtUHJpdmF0ZSgpOworICAg
IGlubGluZSBRU2NyaXB0UHJvZ3JhbVByaXZhdGUoY29uc3QgUVN0cmluZyYgc291cmNlQ29kZSwK
KyAgICAgICAgICAgICAgICAgICBjb25zdCBRU3RyaW5nIGZpbGVOYW1lLAorICAgICAgICAgICAg
ICAgICAgIGludCBmaXJzdExpbmVOdW1iZXIpOworCisgICAgaW5saW5lIH5RU2NyaXB0UHJvZ3Jh
bVByaXZhdGUoKTsKKworICAgIGlubGluZSBib29sIGlzTnVsbCgpIGNvbnN0OworCisgICAgaW5s
aW5lIFFTdHJpbmcgc291cmNlQ29kZSgpIGNvbnN0OworICAgIGlubGluZSBRU3RyaW5nIGZpbGVO
YW1lKCkgY29uc3Q7CisgICAgaW5saW5lIGludCBmaXJzdExpbmVOdW1iZXIoKSBjb25zdDsKKwor
ICAgIGlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgUVNjcmlwdFByb2dyYW1Qcml2YXRlJiBv
dGhlcikgY29uc3Q7CisgICAgaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBRU2NyaXB0UHJv
Z3JhbVByaXZhdGUmIG90aGVyKSBjb25zdDsKKworICAgIGlubGluZSBKU1N0cmluZ1JlZiBwcm9n
cmFtKCkgY29uc3Q7CisgICAgaW5saW5lIEpTU3RyaW5nUmVmIGZpbGUoKSBjb25zdDsKKyAgICBp
bmxpbmUgaW50IGxpbmUoKSBjb25zdDsKK3ByaXZhdGU6CisgICAgSlNTdHJpbmdSZWYgbV9wcm9n
cmFtOworICAgIEpTU3RyaW5nUmVmIG1fZmlsZU5hbWU7CisgICAgaW50IG1fbGluZTsKK307CisK
K1FTY3JpcHRQcm9ncmFtUHJpdmF0ZSogUVNjcmlwdFByb2dyYW1Qcml2YXRlOjpnZXQoY29uc3Qg
UVNjcmlwdFByb2dyYW0mIHByb2dyYW0pCit7CisgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8UVNjcmlw
dFByb2dyYW1Qcml2YXRlKj4ocHJvZ3JhbS5kX3B0ci5jb25zdERhdGEoKSk7Cit9CisKK1FTY3Jp
cHRQcm9ncmFtUHJpdmF0ZTo6UVNjcmlwdFByb2dyYW1Qcml2YXRlKCkKKyAgICA6IG1fcHJvZ3Jh
bSgwKQorICAgICwgbV9maWxlTmFtZSgwKQorICAgICwgbV9saW5lKC0xKQore30KKworUVNjcmlw
dFByb2dyYW1Qcml2YXRlOjpRU2NyaXB0UHJvZ3JhbVByaXZhdGUoY29uc3QgUVN0cmluZyYgc291
cmNlQ29kZSwKKyAgICAgICAgICAgICAgIGNvbnN0IFFTdHJpbmcgZmlsZU5hbWUsCisgICAgICAg
ICAgICAgICBpbnQgZmlyc3RMaW5lTnVtYmVyKQorICAgICAgICAgICAgICAgICAgIDogbV9wcm9n
cmFtKFFTY3JpcHRDb252ZXJ0ZXI6OnRvU3RyaW5nKHNvdXJjZUNvZGUpKQorICAgICAgICAgICAg
ICAgICAgICwgbV9maWxlTmFtZShRU2NyaXB0Q29udmVydGVyOjp0b1N0cmluZyhmaWxlTmFtZSkp
CisgICAgICAgICAgICAgICAgICAgLCBtX2xpbmUoZmlyc3RMaW5lTnVtYmVyKQore30KKworUVNj
cmlwdFByb2dyYW1Qcml2YXRlOjp+UVNjcmlwdFByb2dyYW1Qcml2YXRlKCkKK3sKKyAgICBpZiAo
IWlzTnVsbCgpKSB7CisgICAgICAgIEpTU3RyaW5nUmVsZWFzZShtX3Byb2dyYW0pOworICAgICAg
ICBKU1N0cmluZ1JlbGVhc2UobV9maWxlTmFtZSk7CisgICAgfQorfQorCitib29sIFFTY3JpcHRQ
cm9ncmFtUHJpdmF0ZTo6aXNOdWxsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIW1fcHJvZ3JhbTsK
K30KKworUVN0cmluZyBRU2NyaXB0UHJvZ3JhbVByaXZhdGU6OnNvdXJjZUNvZGUoKSBjb25zdAor
eworICAgIHJldHVybiBRU2NyaXB0Q29udmVydGVyOjp0b1N0cmluZyhtX3Byb2dyYW0pOworfQor
CitRU3RyaW5nIFFTY3JpcHRQcm9ncmFtUHJpdmF0ZTo6ZmlsZU5hbWUoKSBjb25zdAoreworICAg
IHJldHVybiBRU2NyaXB0Q29udmVydGVyOjp0b1N0cmluZyhtX2ZpbGVOYW1lKTsKK30KKworaW50
IFFTY3JpcHRQcm9ncmFtUHJpdmF0ZTo6Zmlyc3RMaW5lTnVtYmVyKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9saW5lOworfQorCitib29sIFFTY3JpcHRQcm9ncmFtUHJpdmF0ZTo6b3BlcmF0b3I9
PShjb25zdCBRU2NyaXB0UHJvZ3JhbVByaXZhdGUmIG90aGVyKSBjb25zdAoreworICAgIHJldHVy
biBtX2xpbmUgPT0gb3RoZXIubV9saW5lCisgICAgICAgICAgICAmJiBKU1N0cmluZ0lzRXF1YWwo
bV9maWxlTmFtZSwgb3RoZXIubV9maWxlTmFtZSkKKyAgICAgICAgICAgICYmIEpTU3RyaW5nSXNF
cXVhbChtX3Byb2dyYW0sIG90aGVyLm1fcHJvZ3JhbSk7Cit9CisKK2Jvb2wgUVNjcmlwdFByb2dy
YW1Qcml2YXRlOjpvcGVyYXRvciE9KGNvbnN0IFFTY3JpcHRQcm9ncmFtUHJpdmF0ZSYgb3RoZXIp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbGluZSAhPSBvdGhlci5tX2xpbmUKKyAgICAgICAgICAg
IHx8ICFKU1N0cmluZ0lzRXF1YWwobV9maWxlTmFtZSwgb3RoZXIubV9maWxlTmFtZSkKKyAgICAg
ICAgICAgIHx8ICFKU1N0cmluZ0lzRXF1YWwobV9wcm9ncmFtLCBvdGhlci5tX3Byb2dyYW0pOwor
fQorCitKU1N0cmluZ1JlZiBRU2NyaXB0UHJvZ3JhbVByaXZhdGU6OnByb2dyYW0oKSBjb25zdCB7
IHJldHVybiBtX3Byb2dyYW07IH0KK0pTU3RyaW5nUmVmIFFTY3JpcHRQcm9ncmFtUHJpdmF0ZTo6
ZmlsZSgpIGNvbnN0IHtyZXR1cm4gbV9maWxlTmFtZTsgfQoraW50IFFTY3JpcHRQcm9ncmFtUHJp
dmF0ZTo6bGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGluZTsgfQorCisjZW5kaWYgLy8gcXNjcmlw
dHByb2dyYW1fcF9oCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0
ZW5naW5lL3RzdF9xc2NyaXB0ZW5naW5lLmNwcCBiL0phdmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3Fz
Y3JpcHRlbmdpbmUvdHN0X3FzY3JpcHRlbmdpbmUuY3BwCmluZGV4IGIzNmUzNjQuLmIzNzM2MTMg
MTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHRlbmdpbmUvdHN0X3Fz
Y3JpcHRlbmdpbmUuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHRlbmdp
bmUvdHN0X3FzY3JpcHRlbmdpbmUuY3BwCkBAIC0xOCw2ICsxOCw3IEBACiAqLwogCiAjaW5jbHVk
ZSAicXNjcmlwdGVuZ2luZS5oIgorI2luY2x1ZGUgInFzY3JpcHRwcm9ncmFtLmgiCiAjaW5jbHVk
ZSAicXNjcmlwdHZhbHVlLmgiCiAjaW5jbHVkZSA8UXRUZXN0L3F0ZXN0Lmg+CiAKQEAgLTM3LDYg
KzM4LDcgQEAgcHJpdmF0ZSBzbG90czoKICAgICB2b2lkIGNvbGxlY3RHYXJiYWdlKCk7CiAgICAg
dm9pZCBudWxsVmFsdWUoKTsKICAgICB2b2lkIHVuZGVmaW5lZFZhbHVlKCk7CisgICAgdm9pZCBl
dmFsdWF0ZVByb2dyYW0oKTsKIH07CiAKIC8qIEV2YWx1YXRpbmcgYSBzY3JpcHQgdGhhdCB0aHJv
dyBhbiB1bmhhbmRsZWQgZXhjZXB0aW9uIHNob3VsZCByZXR1cm4gYW4gaW52YWxpZCB2YWx1ZS4g
Ki8KQEAgLTczLDUgKzc1LDEwNSBAQCB2b2lkIHRzdF9RU2NyaXB0RW5naW5lOjp1bmRlZmluZWRW
YWx1ZSgpCiAgICAgUVZFUklGWSh2YWx1ZS5pc1VuZGVmaW5lZCgpKTsKIH0KIAordm9pZCB0c3Rf
UVNjcmlwdEVuZ2luZTo6ZXZhbHVhdGVQcm9ncmFtKCkKK3sKKyAgICBRU2NyaXB0RW5naW5lIGVu
ZzsKKyAgICB7CisgICAgICAgIFFTdHJpbmcgY29kZSgiMSArIDIiKTsKKyAgICAgICAgUVN0cmlu
ZyBmaWxlTmFtZSgiaGVsbG8uanMiKTsKKyAgICAgICAgaW50IGxpbmVOdW1iZXIgPSAxMjM7Cisg
ICAgICAgIFFTY3JpcHRQcm9ncmFtIHByb2dyYW0oY29kZSwgZmlsZU5hbWUsIGxpbmVOdW1iZXIp
OworICAgICAgICBRVkVSSUZZKCFwcm9ncmFtLmlzTnVsbCgpKTsKKyAgICAgICAgUUNPTVBBUkUo
cHJvZ3JhbS5zb3VyY2VDb2RlKCksIGNvZGUpOworICAgICAgICBRQ09NUEFSRShwcm9ncmFtLmZp
bGVOYW1lKCksIGZpbGVOYW1lKTsKKyAgICAgICAgUUNPTVBBUkUocHJvZ3JhbS5maXJzdExpbmVO
dW1iZXIoKSwgbGluZU51bWJlcik7CisKKyAgICAgICAgUVNjcmlwdFZhbHVlIGV4cGVjdGVkID0g
ZW5nLmV2YWx1YXRlKGNvZGUpOworICAgICAgICBmb3IgKGludCB4ID0gMDsgeCA8IDEwOyArK3gp
IHsKKyAgICAgICAgICAgIFFTY3JpcHRWYWx1ZSByZXQgPSBlbmcuZXZhbHVhdGUocHJvZ3JhbSk7
CisgICAgICAgICAgICBRVkVSSUZZKHJldC5lcXVhbHMoZXhwZWN0ZWQpKTsKKyAgICAgICAgfQor
CisgICAgICAgIC8vIG9wZXJhdG9yPQorICAgICAgICBRU2NyaXB0UHJvZ3JhbSBzYW1lUHJvZ3Jh
bSA9IHByb2dyYW07CisgICAgICAgIFFWRVJJRlkoc2FtZVByb2dyYW0gPT0gcHJvZ3JhbSk7Cisg
ICAgICAgIFFWRVJJRlkoZW5nLmV2YWx1YXRlKHNhbWVQcm9ncmFtKS5lcXVhbHMoZXhwZWN0ZWQp
KTsKKworICAgICAgICAvLyBjb3B5IGNvbnN0cnVjdG9yCisgICAgICAgIFFTY3JpcHRQcm9ncmFt
IHNhbWVQcm9ncmFtMihwcm9ncmFtKTsKKyAgICAgICAgUVZFUklGWShzYW1lUHJvZ3JhbTIgPT0g
cHJvZ3JhbSk7CisgICAgICAgIFFWRVJJRlkoZW5nLmV2YWx1YXRlKHNhbWVQcm9ncmFtMikuZXF1
YWxzKGV4cGVjdGVkKSk7CisKKyAgICAgICAgUVNjcmlwdFByb2dyYW0gZGlmZmVyZW50UHJvZ3Jh
bSgiMiArIDMiKTsKKyAgICAgICAgUVZFUklGWShkaWZmZXJlbnRQcm9ncmFtICE9IHByb2dyYW0p
OworICAgICAgICBRVkVSSUZZKCFlbmcuZXZhbHVhdGUoZGlmZmVyZW50UHJvZ3JhbSkuZXF1YWxz
KGV4cGVjdGVkKSk7CisgICAgfQorCisgICAgLy8gUHJvZ3JhbSB0aGF0IGFjY2Vzc2VzIHZhcmlh
YmxlIGluIHRoZSBzY29wZQorICAgIHsKKyAgICAgICAgUVNjcmlwdFByb2dyYW0gcHJvZ3JhbSgi
YSIpOworICAgICAgICBRVkVSSUZZKCFwcm9ncmFtLmlzTnVsbCgpKTsKKyAgICAgICAgeworICAg
ICAgICAgICAgUVNjcmlwdFZhbHVlIHJldCA9IGVuZy5ldmFsdWF0ZShwcm9ncmFtKTsKKyAgICAg
ICAgICAgIFFWRVJJRlkocmV0LmlzRXJyb3IoKSk7CisgICAgICAgICAgICBRQ09NUEFSRShyZXQu
dG9TdHJpbmcoKSwgUVN0cmluZzo6ZnJvbUxhdGluMSgiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZp
bmQgdmFyaWFibGU6IGEiKSk7CisgICAgICAgIH0KKyAgICAgICAgeworICAgICAgICAgICAgUVNj
cmlwdFZhbHVlIHJldCA9IGVuZy5ldmFsdWF0ZShwcm9ncmFtKTsKKyAgICAgICAgICAgIFFWRVJJ
RlkocmV0LmlzRXJyb3IoKSk7CisgICAgICAgIH0KKyAgICAgICAgZW5nLmV2YWx1YXRlKCJhID0g
NDU2Iik7CisgICAgICAgIHsKKyAgICAgICAgICAgIFFTY3JpcHRWYWx1ZSByZXQgPSBlbmcuZXZh
bHVhdGUocHJvZ3JhbSk7CisgICAgICAgICAgICBRVkVSSUZZKCFyZXQuaXNFcnJvcigpKTsKKyAg
ICAgICAgICAgIFFDT01QQVJFKHJldC50b051bWJlcigpLCA0NTYuMCk7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICAvLyBQcm9ncmFtIHRoYXQgY3JlYXRlcyBjbG9zdXJlCisgICAgeworICAgICAg
ICBRU2NyaXB0UHJvZ3JhbSBwcm9ncmFtKCIoZnVuY3Rpb24oKSB7IHZhciBjb3VudCA9IDA7IHJl
dHVybiBmdW5jdGlvbigpIHsgcmV0dXJuIGNvdW50Kys7IH07IH0pIik7CisgICAgICAgIFFWRVJJ
RlkoIXByb2dyYW0uaXNOdWxsKCkpOworICAgICAgICBRU2NyaXB0VmFsdWUgY3JlYXRlQ291bnRl
ciA9IGVuZy5ldmFsdWF0ZShwcm9ncmFtKTsKKyAgICAgICAgUVZFUklGWShjcmVhdGVDb3VudGVy
LmlzRnVuY3Rpb24oKSk7CisgICAgICAgIFFTY3JpcHRWYWx1ZSBjb3VudGVyID0gY3JlYXRlQ291
bnRlci5jYWxsKCk7CisgICAgICAgIFFWRVJJRlkoY291bnRlci5pc0Z1bmN0aW9uKCkpOworICAg
ICAgICB7CisgICAgICAgICAgICBRU2NyaXB0VmFsdWUgcmV0ID0gY291bnRlci5jYWxsKCk7Cisg
ICAgICAgICAgICBRVkVSSUZZKHJldC5pc051bWJlcigpKTsKKyAgICAgICAgfQorICAgICAgICBR
U2NyaXB0VmFsdWUgY291bnRlcjIgPSBjcmVhdGVDb3VudGVyLmNhbGwoKTsKKyAgICAgICAgUVZF
UklGWShjb3VudGVyMi5pc0Z1bmN0aW9uKCkpOworICAgICAgICBRVkVSSUZZKCFjb3VudGVyMi5l
cXVhbHMoY291bnRlcikpOworICAgICAgICB7CisgICAgICAgICAgICBRU2NyaXB0VmFsdWUgcmV0
ID0gY291bnRlcjIuY2FsbCgpOworICAgICAgICAgICAgUVZFUklGWShyZXQuaXNOdW1iZXIoKSk7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBTYW1lIHByb2dyYW0gcnVuIGluIGRpZmZlcmVu
dCBlbmdpbmVzCisgICAgeworICAgICAgICBRU3RyaW5nIGNvZGUoIjEgKyAyIik7CisgICAgICAg
IFFTY3JpcHRQcm9ncmFtIHByb2dyYW0oY29kZSk7CisgICAgICAgIFFWRVJJRlkoIXByb2dyYW0u
aXNOdWxsKCkpOworICAgICAgICBkb3VibGUgZXhwZWN0ZWQgPSBlbmcuZXZhbHVhdGUocHJvZ3Jh
bSkudG9OdW1iZXIoKTsKKyAgICAgICAgZm9yIChpbnQgeCA9IDA7IHggPCAyOyArK3gpIHsKKyAg
ICAgICAgICAgIFFTY3JpcHRFbmdpbmUgZW5nMjsKKyAgICAgICAgICAgIGZvciAoaW50IHkgPSAw
OyB5IDwgMjsgKyt5KSB7CisgICAgICAgICAgICAgICAgZG91YmxlIHJldCA9IGVuZzIuZXZhbHVh
dGUocHJvZ3JhbSkudG9OdW1iZXIoKTsKKyAgICAgICAgICAgICAgICBRQ09NUEFSRShyZXQsIGV4
cGVjdGVkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIE5vIHBy
b2dyYW0KKyAgICB7CisgICAgICAgIFFTY3JpcHRQcm9ncmFtIHByb2dyYW07CisgICAgICAgIFFW
RVJJRlkocHJvZ3JhbS5pc051bGwoKSk7CisgICAgICAgIFFTY3JpcHRWYWx1ZSByZXQgPSBlbmcu
ZXZhbHVhdGUocHJvZ3JhbSk7CisgICAgICAgIFFWRVJJRlkoIXJldC5pc1ZhbGlkKCkpOworICAg
IH0KK30KKwogUVRFU1RfTUFJTih0c3RfUVNjcmlwdEVuZ2luZSkKICNpbmNsdWRlICJ0c3RfcXNj
cmlwdGVuZ2luZS5tb2MiCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>