<?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>94879</bug_id>
          
          <creation_ts>2012-08-23 17:16:49 -0700</creation_ts>
          <short_desc>Unify Number to StringImpl conversion</short_desc>
          <delta_ts>2012-08-24 17:12:58 -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>Web Template Framework</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="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>703576</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-08-23 17:16:49 -0700</bug_when>
    <thetext>Unify WTF::String::number() and UString::number() under one implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>703597</commentid>
    <comment_count>1</comment_count>
      <attachid>160295</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-08-23 17:43:22 -0700</bug_when>
    <thetext>Created attachment 160295
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>704501</commentid>
    <comment_count>2</comment_count>
      <attachid>160295</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-08-24 16:20:23 -0700</bug_when>
    <thetext>Comment on attachment 160295
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=160295&amp;action=review

r=me

&gt; Source/WTF/wtf/text/IntegerToStringConversion.cpp:51
&gt; +    typename UnsignedIntegerTrait&lt;SignedIntegerType&gt;::Type workInteger;

To be more specific, let&apos;s call &quot;workInteger&quot; &quot;unsignedInteger&quot; instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>704542</commentid>
    <comment_count>3</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-08-24 17:12:58 -0700</bug_when>
    <thetext>Committed r126658: &lt;http://trac.webkit.org/changeset/126658&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160295</attachid>
            <date>2012-08-23 17:43:22 -0700</date>
            <delta_ts>2012-08-24 16:20:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94879-20120823174319.patch</filename>
            <type>text/plain</type>
            <size>39294</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2NTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
YTFhY2Q1ZGYzODJkODMzNmE2ZTk3YWMwY2ZiYjFhOGFlNDhhNzFkLi5mOTJkOGVlMDdjNGNmZjdh
OWVjYWNjODgxOGFmMzEwM2MyOWU5Y2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxMi0wOC0yMyAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KKworICAgICAgICBVbmlmeSBOdW1iZXIgdG8gU3RyaW5nSW1wbCBjb252ZXJzaW9uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDg3OQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogSmF2YVNjcmlw
dENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZjoKKyAgICAgICAg
KiBydW50aW1lL1VTdHJpbmcuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvVVN0cmluZy5oOgorICAg
ICAgICAoSlNDOjpVU3RyaW5nOjpudW1iZXIpOgorICAgICAgICBVcGRhdGUgVVN0cmluZyB0byBk
aXJlY3RseSB1c2UgdGhlIGNvbW1vbiBOdW1iZXJUb1N0cmluZyBpbXBsZW1lbnRhdGlvbi4KKwog
MjAxMi0wOC0yMyAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEF1
dG9nZW5lcmF0ZSBPcGNvZGUgZGVmaW5pdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggNzE3NjQ1YWYyYjRiNzVlYmJjYzg2
NTg5YjE4ZWI3NGUzZjA5NjNhOC4uNDZhNWUwMWUyZWI4M2E2ODhhY2Q3ZjUzZjdhMzY3ZjI4ZWQw
NTFjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxMi0wOC0yMyAgQmVuamFtaW4gUG91bGFpbiAg
PGJwb3VsYWluQGFwcGxlLmNvbT4KKworICAgICAgICBVbmlmeSBOdW1iZXIgdG8gU3RyaW5nSW1w
bCBjb252ZXJzaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05NDg3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFByZXZpb3VzbHksIFVTdHJpbmc6Om51bWJlcigpIGFuZCBTdHJpbmc6Om51bWJlcigpIHVz
ZWQgZGlmZmVyZW50IGltcGxlbWVudGF0aW9ucy4KKworICAgICAgICBXVEY6OlN0cmluZzo6bnVt
YmVyKCkgd2FzIHNpbXBseSBmb3J3YXJkaW5nIHRvIFN0cmluZzo6Zm9ybWF0KCkuCisgICAgICAg
IFVTdHJpbmc6Om51bWJlcigpIGhhZCBhbiBvcHRpbWl6ZWQgdmVyc2lvbiBvZiB0aGUgY29udmVy
c2lvbi4KKworICAgICAgICBUaGlzIHBhdGNoIHJlcGxhY2UgYm90aCBpbXBsZW1lbnRhdGlvbiBi
eSBhIG5ldyB2ZXJzaW9uLCBmYXN0ZXIgdGhhbiB0aGUgdHdvIHByZXZpb3VzIHZlcnNpb25zLgor
CisgICAgICAgIFRoZSBuZXcgZnVuY3Rpb25zIG51bWJlclRvU3RyaW5nSW1wbCBpbXByb3ZlbWVu
dHMgYXJlOgorICAgICAgICAtYWJvdXQgMyB0aW1lcyBmYXN0ZXIgdGhhbiBTdHJpbmc6Om51bWJl
cigpLgorICAgICAgICAtMTQlIGZhc3RlciB0aGFuIFVTdHJpbmc6Om51bWJlcigpIG9uIHNpZ25l
ZCBudW1iZXJzLgorICAgICAgICAtOSUgZmFzdGVyIHRoYW4gVVN0cmluZzo6bnVtYmVyKCkgb24g
dW5zaWduZWQgbnVtYmVycy4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAg
ICAgICogV1RGLmd5cGk6CisgICAgICAgICogV1RGLnBybzoKKyAgICAgICAgKiBXVEYudmNwcm9q
L1dURi52Y3Byb2o6CisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogd3RmL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIHd0Zi90ZXh0L0ludGVnZXJU
b1N0cmluZ0NvbnZlcnNpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdURjo6bnVtYmVyVG9TdHJp
bmdJbXBsU2lnbmVkKToKKyAgICAgICAgKFdURjo6bnVtYmVyVG9TdHJpbmdJbXBsKToKKyAgICAg
ICAgKFdURjo6bnVtYmVyVG9TdHJpbmdJbXBsVW5zaWduZWQpOgorICAgICAgICAqIHd0Zi90ZXh0
L0ludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaDogQWRkZWQuCisgICAgICAgICogd3RmL3RleHQv
V1RGU3RyaW5nLmNwcDoKKyAgICAgICAgKFdURjo6U3RyaW5nOjpmb3JtYXQpOgorICAgICAgICAq
IHd0Zi90ZXh0L1dURlN0cmluZy5oOgorICAgICAgICAoV1RGOjpTdHJpbmc6Om51bWJlcik6CisK
IDIwMTItMDgtMjMgIEVtaWwgQSBFa2x1bmQgIDxlYWVAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IEFkZCBzYXR1cmF0aW9uIGFyaXRobWV0aWMgc3VwcG9ydCB0byBGcmFjdGlvbmFsTGF5b3V0VW5p
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCmluZGV4IDcyMGFhN2NhMDdjYzZlZWRiZGVhNjkwNDJhMGMyZTEwNzRkOWJiNzcu
Ljg0ZjZlYzYxOGI3ZTViYjA3M2ZjZDE0MDAzOTZhODdkNTFmMTZjZDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMiBAQAorMjAxMi0wOC0yMyAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFw
cGxlLmNvbT4KKworICAgICAgICBVbmlmeSBOdW1iZXIgdG8gU3RyaW5nSW1wbCBjb252ZXJzaW9u
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDg3OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2luL1dl
YktpdDIuZGVmOiBVcGRhdGUgdGhlIGV4cG9ydGVkIHN5bWJvbHMuCisKIDIwMTItMDgtMjMgIE1h
cmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBDaGFuZ2Ug
YmVoYXZpb3Igb2YgTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCB0byBiZXR0ZXIgYWNjb21tb2RhdGUg
REZHIGNoYW5nZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS5kZWYKaW5kZXggZTM0NTMyMDFiZjhlNmY0NDk4MzczZTkzMTQ2OTQwZTI0OTFlM2E5
YS4uMWIwNWYwYWVjZWI0Yzc0OWQ0NGJlZWQzYTA0YjcxZTExMTlmMGU4MCAxMDA3NTUKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5kZWYKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKQEAgLTI2NSwx
MiArMjY1LDE1IEBAIEVYUE9SVFMKICAgICA/bm90aWZ5V3JpdGVTbG93QFdhdGNocG9pbnRTZXRA
SlNDQEBRQUVYWFoKICAgICA/bnVsbHB0ckBAM1ZudWxscHRyX3RAc3RkQEBBCiAgICAgP251bWJl
ckBTdHJpbmdAV1RGQEBTQT9BVjEyQE5JSUBaCi0gICAgP251bWJlckBVU3RyaW5nQEpTQ0BAU0E/
QVYxMkBIQFoKLSAgICA/bnVtYmVyQFVTdHJpbmdASlNDQEBTQT9BVjEyQElAWgotICAgID9udW1i
ZXJAVVN0cmluZ0BKU0NAQFNBP0FWMTJATkBaCiAgICAgP251bWJlclRvRml4ZWRQcmVjaXNpb25T
dHJpbmdAV1RGQEBZQVBCRE5JUUFEX05AWgogICAgID9udW1iZXJUb0ZpeGVkV2lkdGhTdHJpbmdA
V1RGQEBZQVBCRE5JUUFEQFoKICAgICA/bnVtYmVyVG9TdHJpbmdAV1RGQEBZQVBCRE5RQURAWgor
ICAgID9udW1iZXJUb1N0cmluZ0ltcGxAV1RGQEBZQT9BVj8kUGFzc1JlZlB0ckBWU3RyaW5nSW1w
bEBXVEZAQEAxQF9KQFoKKyAgICA/bnVtYmVyVG9TdHJpbmdJbXBsQFdURkBAWUE/QVY/JFBhc3NS
ZWZQdHJAVlN0cmluZ0ltcGxAV1RGQEBAMUBfS0BaCisgICAgP251bWJlclRvU3RyaW5nSW1wbEBX
VEZAQFlBP0FWPyRQYXNzUmVmUHRyQFZTdHJpbmdJbXBsQFdURkBAQDFASEBaCisgICAgP251bWJl
clRvU3RyaW5nSW1wbEBXVEZAQFlBP0FWPyRQYXNzUmVmUHRyQFZTdHJpbmdJbXBsQFdURkBAQDFA
SUBaCisgICAgP251bWJlclRvU3RyaW5nSW1wbEBXVEZAQFlBP0FWPyRQYXNzUmVmUHRyQFZTdHJp
bmdJbXBsQFdURkBAQDFASkBaCisgICAgP251bWJlclRvU3RyaW5nSW1wbEBXVEZAQFlBP0FWPyRQ
YXNzUmVmUHRyQFZTdHJpbmdJbXBsQFdURkBAQDFAS0BaCiAgICAgP29iamVjdENvdW50QEhlYXBA
SlNDQEBRQUVJWFoKICAgICA/b2JqZWN0UHJvdG9GdW5jVG9TdHJpbmdASlNDQEBZSV9KUEFWRXhl
Y1N0YXRlQDFAQFoKICAgICA/b2JqZWN0VHlwZUNvdW50c0BIZWFwQEpTQ0BAUUFFP0FWPyRQYXNz
T3duUHRyQFY/JEhhc2hDb3VudGVkU2V0QFBCRFU/JFB0ckhhc2hAUEJEQFdURkBAVT8kSGFzaFRy
YWl0c0BQQkRAMkBAV1RGQEBAV1RGQEBYWgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVVN0cmluZy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9V
U3RyaW5nLmNwcAppbmRleCA1YjFlOWEwZTBiMTJhMGE3YWVmYzYyNzE5MjU2MmFiNDMzNzdkNGRj
Li5jOGM1ODg1YmEzMTAwNGRlZTI5MmFkYTdjN2E0MmEwOGIzYmQ2ZmYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9VU3RyaW5nLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9VU3RyaW5nLmNwcApAQCAtMjksMTQgKzI5LDEwIEBACiAjaW5j
bHVkZSAiSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDxj
dHlwZS5oPgotI2luY2x1ZGUgPGxpbWl0cy5oPgotI2luY2x1ZGUgPGxpbWl0cz4KLSNpbmNsdWRl
IDxzdGRpby5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBl
Lmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJh
cy5oPgotI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CiAjaW5jbHVkZSA8d3RmL2R0b2EuaD4KICNpbmNsdWRlIDx3dGYvdW5pY29kZS9VVEY4Lmg+
CkBAIC05NCwxMTUgKzkwLDYgQEAgVVN0cmluZzo6VVN0cmluZyhjb25zdCBjaGFyKiBjaGFyYWN0
ZXJzKQogewogfQogCi1VU3RyaW5nIFVTdHJpbmc6Om51bWJlcihpbnQgaSkKLXsKLSAgICBMQ2hh
ciBidWZbMSArIHNpemVvZihpKSAqIDNdOwotICAgIExDaGFyKiBlbmQgPSBidWYgKyBXVEZfQVJS
QVlfTEVOR1RIKGJ1Zik7Ci0gICAgTENoYXIqIHAgPSBlbmQ7Ci0KLSAgICBpZiAoaSA9PSAwKQot
ICAgICAgICAqLS1wID0gJzAnOwotICAgIGVsc2UgaWYgKGkgPT0gSU5UX01JTikgewotICAgICAg
ICBjaGFyIG1pbkJ1ZlsxICsgc2l6ZW9mKGkpICogM107Ci0gICAgICAgIHNucHJpbnRmKG1pbkJ1
Ziwgc2l6ZW9mKG1pbkJ1ZiksICIlZCIsIElOVF9NSU4pOwotICAgICAgICByZXR1cm4gVVN0cmlu
ZyhtaW5CdWYpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGJvb2wgbmVnYXRpdmUgPSBmYWxzZTsK
LSAgICAgICAgaWYgKGkgPCAwKSB7Ci0gICAgICAgICAgICBuZWdhdGl2ZSA9IHRydWU7Ci0gICAg
ICAgICAgICBpID0gLWk7Ci0gICAgICAgIH0KLSAgICAgICAgd2hpbGUgKGkpIHsKLSAgICAgICAg
ICAgICotLXAgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBzaG9ydD4oKGkgJSAxMCkgKyAnMCcpOwot
ICAgICAgICAgICAgaSAvPSAxMDsKLSAgICAgICAgfQotICAgICAgICBpZiAobmVnYXRpdmUpCi0g
ICAgICAgICAgICAqLS1wID0gJy0nOwotICAgIH0KLQotICAgIHJldHVybiBVU3RyaW5nKHAsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihlbmQgLSBwKSk7Ci19Ci0KLVVTdHJpbmcgVVN0cmluZzo6bnVt
YmVyKGxvbmcgbG9uZyBpKQotewotICAgIExDaGFyIGJ1ZlsxICsgc2l6ZW9mKGkpICogM107Ci0g
ICAgTENoYXIqIGVuZCA9IGJ1ZiArIFdURl9BUlJBWV9MRU5HVEgoYnVmKTsKLSAgICBMQ2hhciog
cCA9IGVuZDsKLQotICAgIGlmIChpID09IDApCi0gICAgICAgICotLXAgPSAnMCc7Ci0gICAgZWxz
ZSBpZiAoaSA9PSBzdGQ6Om51bWVyaWNfbGltaXRzPGxvbmcgbG9uZz46Om1pbigpKSB7Ci0gICAg
ICAgIGNoYXIgbWluQnVmWzEgKyBzaXplb2YoaSkgKiAzXTsKLSNpZiBPUyhXSU5ET1dTKQotICAg
ICAgICBzbnByaW50ZihtaW5CdWYsIHNpemVvZihtaW5CdWYpLCAiJUk2NGQiLCBzdGQ6Om51bWVy
aWNfbGltaXRzPGxvbmcgbG9uZz46Om1pbigpKTsKLSNlbHNlCi0gICAgICAgIHNucHJpbnRmKG1p
bkJ1Ziwgc2l6ZW9mKG1pbkJ1ZiksICIlbGxkIiwgc3RkOjpudW1lcmljX2xpbWl0czxsb25nIGxv
bmc+OjptaW4oKSk7Ci0jZW5kaWYKLSAgICAgICAgcmV0dXJuIFVTdHJpbmcobWluQnVmKTsKLSAg
ICB9IGVsc2UgewotICAgICAgICBib29sIG5lZ2F0aXZlID0gZmFsc2U7Ci0gICAgICAgIGlmIChp
IDwgMCkgewotICAgICAgICAgICAgbmVnYXRpdmUgPSB0cnVlOwotICAgICAgICAgICAgaSA9IC1p
OwotICAgICAgICB9Ci0gICAgICAgIHdoaWxlIChpKSB7Ci0gICAgICAgICAgICAqLS1wID0gc3Rh
dGljX2Nhc3Q8dW5zaWduZWQgc2hvcnQ+KChpICUgMTApICsgJzAnKTsKLSAgICAgICAgICAgIGkg
Lz0gMTA7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKG5lZ2F0aXZlKQotICAgICAgICAgICAgKi0t
cCA9ICctJzsKLSAgICB9Ci0KLSAgICByZXR1cm4gVVN0cmluZyhwLCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oZW5kIC0gcCkpOwotfQotCi1VU3RyaW5nIFVTdHJpbmc6Om51bWJlcih1bnNpZ25lZCB1
KQotewotICAgIExDaGFyIGJ1ZltzaXplb2YodSkgKiAzXTsKLSAgICBMQ2hhciogZW5kID0gYnVm
ICsgV1RGX0FSUkFZX0xFTkdUSChidWYpOwotICAgIExDaGFyKiBwID0gZW5kOwotCi0gICAgaWYg
KHUgPT0gMCkKLSAgICAgICAgKi0tcCA9ICcwJzsKLSAgICBlbHNlIHsKLSAgICAgICAgd2hpbGUg
KHUpIHsKLSAgICAgICAgICAgICotLXAgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBzaG9ydD4oKHUg
JSAxMCkgKyAnMCcpOwotICAgICAgICAgICAgdSAvPSAxMDsKLSAgICAgICAgfQotICAgIH0KLQot
ICAgIHJldHVybiBVU3RyaW5nKHAsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihlbmQgLSBwKSk7Ci19
Ci0KLVVTdHJpbmcgVVN0cmluZzo6bnVtYmVyKGxvbmcgbCkKLXsKLSAgICBMQ2hhciBidWZbMSAr
IHNpemVvZihsKSAqIDNdOwotICAgIExDaGFyKiBlbmQgPSBidWYgKyBXVEZfQVJSQVlfTEVOR1RI
KGJ1Zik7Ci0gICAgTENoYXIqIHAgPSBlbmQ7Ci0KLSAgICBpZiAobCA9PSAwKQotICAgICAgICAq
LS1wID0gJzAnOwotICAgIGVsc2UgaWYgKGwgPT0gTE9OR19NSU4pIHsKLSAgICAgICAgY2hhciBt
aW5CdWZbMSArIHNpemVvZihsKSAqIDNdOwotICAgICAgICBzbnByaW50ZihtaW5CdWYsIHNpemVv
ZihtaW5CdWYpLCAiJWxkIiwgTE9OR19NSU4pOwotICAgICAgICByZXR1cm4gVVN0cmluZyhtaW5C
dWYpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGJvb2wgbmVnYXRpdmUgPSBmYWxzZTsKLSAgICAg
ICAgaWYgKGwgPCAwKSB7Ci0gICAgICAgICAgICBuZWdhdGl2ZSA9IHRydWU7Ci0gICAgICAgICAg
ICBsID0gLWw7Ci0gICAgICAgIH0KLSAgICAgICAgd2hpbGUgKGwpIHsKLSAgICAgICAgICAgICot
LXAgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBzaG9ydD4oKGwgJSAxMCkgKyAnMCcpOwotICAgICAg
ICAgICAgbCAvPSAxMDsKLSAgICAgICAgfQotICAgICAgICBpZiAobmVnYXRpdmUpCi0gICAgICAg
ICAgICAqLS1wID0gJy0nOwotICAgIH0KLQotICAgIHJldHVybiBVU3RyaW5nKHAsIGVuZCAtIHAp
OwotfQotCiBVU3RyaW5nIFVTdHJpbmc6Om51bWJlcihkb3VibGUgZCkKIHsKICAgICBOdW1iZXJU
b1N0cmluZ0J1ZmZlciBidWZmZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9VU3RyaW5nLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9VU3RyaW5n
LmgKaW5kZXggNzY3NzE2MWEzNmE1Y2U0OTQyY2Q1M2E4MDlmOTk1OTU3YTRmN2ZjMS4uMTY5YmY0
YTM3MWZhNWUyZGE1ZTU0N2I0NjE0ZDQ5NDNjODJmMjkxYiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVVN0cmluZy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1VTdHJpbmcuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMp
IDE5OTktMjAwMCBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQotICogQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAw
OCwgMjAwOSwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CkBAIC0yMyw2ICsyMyw3IEBACiAjaWZuZGVmIFVTdHJpbmdfaAogI2RlZmluZSBVU3RyaW5nX2gK
IAorI2luY2x1ZGUgPHd0Zi90ZXh0L0ludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtMTEyLDEw
ICsxMTMsMTAgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9pbXBsLT5jaGFyYWN0ZXJzMTYo
KVtpbmRleF07CiAgICAgfQogCi0gICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFVTdHJpbmcg
bnVtYmVyKGludCk7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFVTdHJpbmcgbnVtYmVy
KHVuc2lnbmVkKTsKLSAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgVVN0cmluZyBudW1iZXIo
bG9uZyk7Ci0gICAgc3RhdGljIFVTdHJpbmcgbnVtYmVyKGxvbmcgbG9uZyk7CisgICAgc3RhdGlj
IFVTdHJpbmcgbnVtYmVyKGludCBpKSB7IHJldHVybiBXVEY6Om51bWJlclRvU3RyaW5nSW1wbChp
KTsgfQorICAgIHN0YXRpYyBVU3RyaW5nIG51bWJlcih1bnNpZ25lZCB1KSB7IHJldHVybiBXVEY6
Om51bWJlclRvU3RyaW5nSW1wbCh1KTsgfQorICAgIHN0YXRpYyBVU3RyaW5nIG51bWJlcihsb25n
IGkpIHsgcmV0dXJuIFdURjo6bnVtYmVyVG9TdHJpbmdJbXBsKGkpOyB9CisgICAgc3RhdGljIFVT
dHJpbmcgbnVtYmVyKGxvbmcgbG9uZyBpKSB7IHJldHVybiBXVEY6Om51bWJlclRvU3RyaW5nSW1w
bChpKTsgfQogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBVU3RyaW5nIG51bWJlcihkb3Vi
bGUpOwogCiAgICAgLy8gRmluZCBhIHNpbmdsZSBjaGFyYWN0ZXIgb3Igc3RyaW5nLCBhbHNvIHdp
dGggbWF0Y2ggZnVuY3Rpb24gJiBsYXRpbjEgZm9ybXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5k
ZXggN2MxMjNlNTM3NTU0YjE4NTdmYzlhOTI2NmI2YzIyNTMwNTk1Mzc3Ny4uMjI4M2ZlZDJjMmRm
Y2QxZDI4ZGViYTM1MzM5MjVlZjBlNjA1ZmIzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9HTlVt
YWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAt
MjA4LDYgKzIwOCw4IEBAIHd0Zl9zb3VyY2VzICs9IFwKICAgICBTb3VyY2UvV1RGL3d0Zi90ZXh0
L0Jhc2U2NC5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi90ZXh0L0NTdHJpbmcuY3BwIFwKICAgICBT
b3VyY2UvV1RGL3d0Zi90ZXh0L0NTdHJpbmcuaCBcCisgICAgU291cmNlL1dURi93dGYvdGV4dC9J
bnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmNwcCBcCisgICAgU291cmNlL1dURi93dGYvdGV4dC9J
bnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL3RleHQvU3Ry
aW5nQnVmZmVyLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVpbGRlci5jcHAg
XAogICAgIFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nQnVpbGRlci5oIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvV1RGLmd5cGkgYi9Tb3VyY2UvV1RGL1dURi5neXBpCmluZGV4IDUzMWI0Mzgx
ZDExZjRlZjkzYTRiMDlmNGM2ZmZjZTE3ZTUwNWNjY2UuLjZjZmNkNDIxYTdkYmI1NmNlNDMwYTg5
NTNjMmY3ZDZhZWEwNmEzNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLmd5cGkKKysrIGIv
U291cmNlL1dURi9XVEYuZ3lwaQpAQCAtMTEzLDYgKzExMyw3IEBACiAgICAgICAgICAgICAnd3Rm
L3RleHQvQXRvbWljU3RyaW5nSW1wbC5oJywKICAgICAgICAgICAgICd3dGYvdGV4dC9CYXNlNjQu
aCcsCiAgICAgICAgICAgICAnd3RmL3RleHQvQ1N0cmluZy5oJywKKyAgICAgICAgICAgICd3dGYv
dGV4dC9JbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmgnLAogICAgICAgICAgICAgJ3d0Zi90ZXh0
L1N0cmluZ0J1ZmZlci5oJywKICAgICAgICAgICAgICd3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmgn
LAogICAgICAgICAgICAgJ3d0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmgnLApAQCAtMjIzLDYg
KzIyNCw3IEBACiAgICAgICAgICAgICAnd3RmL3RleHQvQXRvbWljU3RyaW5nLmNwcCcsCiAgICAg
ICAgICAgICAnd3RmL3RleHQvQmFzZTY0LmNwcCcsCiAgICAgICAgICAgICAnd3RmL3RleHQvQ1N0
cmluZy5jcHAnLAorICAgICAgICAgICAgJ3d0Zi90ZXh0L0ludGVnZXJUb1N0cmluZ0NvbnZlcnNp
b24uY3BwJywKICAgICAgICAgICAgICd3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmNwcCcsCiAgICAg
ICAgICAgICAnd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAnLAogICAgICAgICAgICAgJ3d0Zi90ZXh0
L1N0cmluZ1N0YXRpY3MuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnBybyBiL1Nv
dXJjZS9XVEYvV1RGLnBybwppbmRleCBmODIyMzExMmRiNzUwOTlkMjUyZWQ5YzZiMTUzZjRiOTMy
YjY0Mjk5Li4xMDY4ODVkODM1NzRiZThiMmQyM2QyMGI5ODA4ZWY5YTg4Njk5NjFiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL1dURi5wcm8KKysrIGIvU291cmNlL1dURi9XVEYucHJvCkBAIC0xMzUs
NiArMTM1LDcgQEAgSEVBREVSUyArPSBcCiAgICAgdGV4dC9BdG9taWNTdHJpbmdJbXBsLmggXAog
ICAgIHRleHQvQmFzZTY0LmggXAogICAgIHRleHQvQ1N0cmluZy5oIFwKKyAgICB0ZXh0L0ludGVn
ZXJUb1N0cmluZ0NvbnZlcnNpb24uaCBcCiAgICAgdGV4dC9TdHJpbmdCdWZmZXIuaCBcCiAgICAg
dGV4dC9TdHJpbmdCdWlsZGVyLmggXAogICAgIHRleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaCBcCkBA
IC0yMTgsNiArMjE5LDcgQEAgU09VUkNFUyArPSBcCiAgICAgdGV4dC9BdG9taWNTdHJpbmcuY3Bw
IFwKICAgICB0ZXh0L0Jhc2U2NC5jcHAgXAogICAgIHRleHQvQ1N0cmluZy5jcHAgXAorICAgIHRl
eHQvSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5jcHAgXAogICAgIHRleHQvU3RyaW5nQnVpbGRl
ci5jcHAgXAogICAgIHRleHQvU3RyaW5nSW1wbC5jcHAgXAogICAgIHRleHQvU3RyaW5nU3RhdGlj
cy5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2ogYi9T
b3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagppbmRleCA5NTllZGFlMzRlYTQ4MDg4ZGFi
YWVmZDc1MWVmNjE0ZDJiNjc5NzA3Li5kNzgwMzc1ZjlmY2UyZmI0YjhlOGJlNjNhYzQ4NTc3ZDc0
Zjk2OGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagorKysg
Yi9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagpAQCAtNDI0LDYgKzQyNCwxNCBAQAog
CQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlx3dGZcdGV4
dFxJbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8
RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cd3RmXHRleHRcSW50ZWdlclRvU3RyaW5nQ29udmVy
c2lvbi5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIu
Llx3dGZcdGV4dFxTdHJpbmdCdWZmZXIuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dURi9X
VEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiMjY3ODRmMzI1OTk1Y2NiOTI1MzI1
NTlhZTdmMDQ0ZDE1ZWRhZjFiLi4yODhiZGZmNGY5YjQ4OTNiMDhmY2U2OTJiZDNmYTQ4MGQ3NGZi
NzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTExLDYg
KzExLDggQEAKIAkJMTQzRjYxMUYxNTY1RjBGOTAwREI1MTRBIC8qIFJBTVNpemUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQzRjYxMUQxNTY1RjBG
OTAwREI1MTRBIC8qIFJBTVNpemUuY3BwICovOyB9OwogCQkxNDNGNjEyMDE1NjVGMEY5MDBEQjUx
NEEgLyogUkFNU2l6ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMTQzRjYxMUUxNTY1RjBGOTAwREI1MTRBIC8qIFJBTVNpemUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxNEYzQjBGNzE1RTQ1RTQ2MDAy
MTAwNjkgLyogU2F0dXJhdGVkQXJpdGhtZXRpYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMTRGM0IwRjYxNUU0NUU0NjAwMjEwMDY5IC8qIFNhdHVyYXRl
ZEFyaXRobWV0aWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQkyNjE0N0IwOTE1RERDQ0RDMDBEREI5MDcgLyogSW50ZWdlclRvU3RyaW5nQ29udmVy
c2lvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
NjE0N0IwNzE1RERDQ0RDMDBEREI5MDcgLyogSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5jcHAg
Ki87IH07CisJCTI2MTQ3QjBBMTVERENDREMwMEREQjkwNyAvKiBJbnRlZ2VyVG9TdHJpbmdDb252
ZXJzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
NjE0N0IwODE1RERDQ0RDMDBEREI5MDcgLyogSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oICov
OyB9OwogCQkyQzA1Mzg1NDE1QkM4MTkwMDBGMjFCOTYgLyogR3JlZ29yaWFuRGF0ZVRpbWUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDMDUzODUzMTVC
QzgxOTAwMEYyMUI5NiAvKiBHcmVnb3JpYW5EYXRlVGltZS5oICovOyB9OwogCQkyQ0NEODkyQTE1
QzAzOTAyMDAyODUwODMgLyogR3JlZ29yaWFuRGF0ZVRpbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkNDRDg5MjkxNUMwMzkwMjAwMjg1MDgzIC8q
IEdyZWdvcmlhbkRhdGVUaW1lLmNwcCAqLzsgfTsKIAkJNDMzMEYzOEYxNTc0NUIwNTAwQUFGQThG
IC8qIFVSTFN0cmluZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MzMwRjM4RTE1NzQ1QjA1MDBBQUZBOEYgLyogVVJMU3RyaW5nLmNwcCAqLzsgfTsK
QEAgLTI1Niw2ICsyNTgsOCBAQAogCQkxNDNGNjExRDE1NjVGMEY5MDBEQjUxNEEgLyogUkFNU2l6
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSQU1TaXplLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQzRjYxMUUxNTY1RjBGOTAwREI1MTRBIC8q
IFJBTVNpemUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUkFNU2l6ZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNEYzQjBGNjE1RTQ1RTQ2MDAyMTAwNjkgLyog
U2F0dXJhdGVkQXJpdGhtZXRpYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
YXR1cmF0ZWRBcml0aG1ldGljLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI2MTQ3
QjA3MTVERENDREMwMEREQjkwNyAvKiBJbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEludGVnZXJUb1N0cmluZ0NvbnZlcnNp
b24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyNjE0N0IwODE1RERDQ0RDMDBE
REI5MDcgLyogSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBJbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTJDMDUzODUzMTVCQzgxOTAwMEYyMUI5NiAvKiBHcmVnb3JpYW5EYXRl
VGltZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmVnb3JpYW5EYXRlVGlt
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQ0NEODkyOTE1QzAzOTAyMDAyODUw
ODMgLyogR3JlZ29yaWFuRGF0ZVRpbWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gR3JlZ29yaWFuRGF0ZVRpbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MzMwRjM4RTE1NzQ1QjA1MDBBQUZBOEYgLyogVVJMU3RyaW5nLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVSTFN0cmluZy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC03OTEsNiArNzk1LDggQEAKIAkJCQk4MTM0MDEzNzE1QjA5MkZEMDAx
RkYwQjggLyogQmFzZTY0LmggKi8sCiAJCQkJQThBNDczMjExNTFBODI1QjAwNDEyM0ZGIC8qIENT
dHJpbmcuY3BwICovLAogCQkJCUE4QTQ3MzIyMTUxQTgyNUIwMDQxMjNGRiAvKiBDU3RyaW5nLmgg
Ki8sCisJCQkJMjYxNDdCMDcxNUREQ0NEQzAwRERCOTA3IC8qIEludGVnZXJUb1N0cmluZ0NvbnZl
cnNpb24uY3BwICovLAorCQkJCTI2MTQ3QjA4MTVERENDREMwMEREQjkwNyAvKiBJbnRlZ2VyVG9T
dHJpbmdDb252ZXJzaW9uLmggKi8sCiAJCQkJQThBNDczMjMxNTFBODI1QjAwNDEyM0ZGIC8qIFN0
cmluZ0J1ZmZlci5oICovLAogCQkJCUE4QTQ3MzI0MTUxQTgyNUIwMDQxMjNGRiAvKiBTdHJpbmdC
dWlsZGVyLmNwcCAqLywKIAkJCQlBOEE0NzMyNTE1MUE4MjVCMDA0MTIzRkYgLyogU3RyaW5nQnVp
bGRlci5oICovLApAQCAtOTU4LDYgKzk2NCw3IEBACiAJCQkJQThBNDczREUxNTFBODI1QjAwNDEy
M0ZGIC8qIEludDE2QXJyYXkuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3M0RGMTUxQTgyNUIw
MDQxMjNGRiAvKiBJbnQzMkFycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzNERDE1MUE4
MjVCMDA0MTIzRkYgLyogSW50OEFycmF5LmggaW4gSGVhZGVycyAqLywKKwkJCQkyNjE0N0IwQTE1
RERDQ0RDMDBEREI5MDcgLyogSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQThBNDczRTAxNTFBODI1QjAwNDEyM0ZGIC8qIEludGVncmFsVHlwZWRBcnJheUJh
c2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3M0UxMTUxQTgyNUIwMDQxMjNGRiAvKiBMaXN0
SGFzaFNldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczRTIxNTFBODI1QjAwNDEyM0ZGIC8q
IExpc3RSZWZQdHIuaCBpbiBIZWFkZXJzICovLApAQCAtMTE4MSw2ICsxMTg4LDcgQEAKIAkJCQlB
OEE0NzNCNTE1MUE4MjVCMDA0MTIzRkYgLyogZml4ZWQtZHRvYS5jYyBpbiBTb3VyY2VzICovLAog
CQkJCTJDQ0Q4OTJBMTVDMDM5MDIwMDI4NTA4MyAvKiBHcmVnb3JpYW5EYXRlVGltZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBOEE0NzNEODE1MUE4MjVCMDA0MTIzRkYgLyogSGFzaFRhYmxlLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTI2MTQ3QjA5MTVERENDREMwMEREQjkwNyAvKiBJbnRlZ2Vy
VG9TdHJpbmdDb252ZXJzaW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0U1MTUxQTgy
NUIwMDQxMjNGRiAvKiBNYWluVGhyZWFkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0U0
MTUxQTgyNUIwMDQxMjNGRiAvKiBNYWluVGhyZWFkTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
Q0Q1NDk3QUMxNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5jcHAgaW4gU291cmNlcyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dURi93
dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggNTQzNzU1OTA0ZjlkODU2ZDM5ZWViOGFkNGNjNTNjYWQ0
ZmYzY2FlNS4uMzIwYzg0YmU2ODhiMDM5OTEzMTFjN2RkNzA1YzQzMDdjZjk5YTAwMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dURi93dGYv
Q01ha2VMaXN0cy50eHQKQEAgLTEyMyw2ICsxMjMsNyBAQCBTRVQoV1RGX0hFQURFUlMKICAgICB0
ZXh0L0F0b21pY1N0cmluZ0ltcGwuaAogICAgIHRleHQvQmFzZTY0LmgKICAgICB0ZXh0L0NTdHJp
bmcuaAorICAgIHRleHQvSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oCiAgICAgdGV4dC9TdHJp
bmdCdWZmZXIuaAogICAgIHRleHQvU3RyaW5nSGFzaC5oCiAgICAgdGV4dC9TdHJpbmdJbXBsLmgK
QEAgLTE4Miw2ICsxODMsNyBAQCBTRVQoV1RGX1NPVVJDRVMKICAgICB0ZXh0L0F0b21pY1N0cmlu
Zy5jcHAKICAgICB0ZXh0L0Jhc2U2NC5jcHAKICAgICB0ZXh0L0NTdHJpbmcuY3BwCisgICAgdGV4
dC9JbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmNwcAogICAgIHRleHQvU3RyaW5nQnVpbGRlci5j
cHAKICAgICB0ZXh0L1N0cmluZ0ltcGwuY3BwCiAgICAgdGV4dC9TdHJpbmdTdGF0aWNzLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9JbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9u
LmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYTcyMTE3MjYwOTE2YTJiNzZhMzJiN2MzNTFmYmZjMjI0YTgzYTA2OAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvSW50ZWdlclRvU3RyaW5nQ29udmVy
c2lvbi5jcHAKQEAgLTAsMCArMSwxMTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBw
bGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24s
IE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaCIKKworI2luY2x1ZGUgPHd0Zi90ZXh0
L1N0cmluZ0ltcGwuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+
IHN0cnVjdCBVbnNpZ25lZEludGVnZXJUcmFpdDsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgVW5zaWdu
ZWRJbnRlZ2VyVHJhaXQ8c2hvcnQ+IHsKKyAgICB0eXBlZGVmIHVuc2lnbmVkIHNob3J0IFR5cGU7
Cit9OwordGVtcGxhdGU8PiBzdHJ1Y3QgVW5zaWduZWRJbnRlZ2VyVHJhaXQ8aW50PiB7CisgICAg
dHlwZWRlZiB1bnNpZ25lZCBpbnQgVHlwZTsKK307Cit0ZW1wbGF0ZTw+IHN0cnVjdCBVbnNpZ25l
ZEludGVnZXJUcmFpdDxsb25nPiB7CisgICAgdHlwZWRlZiB1bnNpZ25lZCBsb25nIFR5cGU7Cit9
OwordGVtcGxhdGU8PiBzdHJ1Y3QgVW5zaWduZWRJbnRlZ2VyVHJhaXQ8bG9uZyBsb25nPiB7Cisg
ICAgdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgVHlwZTsKK307CisKK3RlbXBsYXRlPHR5cGVu
YW1lIFNpZ25lZEludGVnZXJUeXBlPgorc3RhdGljIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gbnVt
YmVyVG9TdHJpbmdJbXBsU2lnbmVkKFNpZ25lZEludGVnZXJUeXBlIGludGVnZXIpCit7CisgICAg
TENoYXIgYnVmWzEgKyBzaXplb2YoU2lnbmVkSW50ZWdlclR5cGUpICogM107CisgICAgTENoYXIq
IGVuZCA9IGJ1ZiArIFdURl9BUlJBWV9MRU5HVEgoYnVmKTsKKyAgICBMQ2hhciogcCA9IGVuZDsK
KworICAgIGJvb2wgbmVnYXRpdmUgPSBmYWxzZTsKKyAgICB0eXBlbmFtZSBVbnNpZ25lZEludGVn
ZXJUcmFpdDxTaWduZWRJbnRlZ2VyVHlwZT46OlR5cGUgd29ya0ludGVnZXI7CisgICAgaWYgKGlu
dGVnZXIgPCAwKSB7CisgICAgICAgIG5lZ2F0aXZlID0gdHJ1ZTsKKyAgICAgICAgd29ya0ludGVn
ZXIgPSAtaW50ZWdlcjsKKyAgICB9IGVsc2UKKyAgICAgICAgd29ya0ludGVnZXIgPSBpbnRlZ2Vy
OworCisgICAgZG8geworICAgICAgICAqLS1wID0gc3RhdGljX2Nhc3Q8TENoYXI+KCh3b3JrSW50
ZWdlciAlIDEwKSArICcwJyk7CisgICAgICAgIHdvcmtJbnRlZ2VyIC89IDEwOworICAgIH0gd2hp
bGUgKHdvcmtJbnRlZ2VyKTsKKworICAgIGlmIChuZWdhdGl2ZSkKKyAgICAgICAgKi0tcCA9ICct
JzsKKworICAgIHJldHVybiBTdHJpbmdJbXBsOjpjcmVhdGUocCwgc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KGVuZCAtIHApKTsKK30KKworUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBudW1iZXJUb1N0cmlu
Z0ltcGwoaW50IGkpCit7CisgICAgcmV0dXJuIG51bWJlclRvU3RyaW5nSW1wbFNpZ25lZChpKTsK
K30KKworUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBudW1iZXJUb1N0cmluZ0ltcGwobG9uZyBpKQor
eworICAgIHJldHVybiBudW1iZXJUb1N0cmluZ0ltcGxTaWduZWQoaSk7Cit9CisKK1Bhc3NSZWZQ
dHI8U3RyaW5nSW1wbD4gbnVtYmVyVG9TdHJpbmdJbXBsKGxvbmcgbG9uZyBpKQoreworICAgIHJl
dHVybiBudW1iZXJUb1N0cmluZ0ltcGxTaWduZWQoaSk7Cit9CisKKwordGVtcGxhdGU8dHlwZW5h
bWUgVW5zaWduZWRJbnRlZ2VyVHlwZT4KK1Bhc3NSZWZQdHI8U3RyaW5nSW1wbD4gbnVtYmVyVG9T
dHJpbmdJbXBsVW5zaWduZWQoVW5zaWduZWRJbnRlZ2VyVHlwZSBpbnRlZ2VyKQoreworICAgIExD
aGFyIGJ1ZltzaXplb2YoVW5zaWduZWRJbnRlZ2VyVHlwZSkgKiAzXTsKKyAgICBMQ2hhciogZW5k
ID0gYnVmICsgV1RGX0FSUkFZX0xFTkdUSChidWYpOworICAgIExDaGFyKiBwID0gZW5kOworCisg
ICAgZG8geworICAgICAgICAqLS1wID0gc3RhdGljX2Nhc3Q8TENoYXI+KChpbnRlZ2VyICUgMTAp
ICsgJzAnKTsKKyAgICAgICAgaW50ZWdlciAvPSAxMDsKKyAgICB9IHdoaWxlIChpbnRlZ2VyKTsK
KyAgICByZXR1cm4gU3RyaW5nSW1wbDo6Y3JlYXRlKHAsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihl
bmQgLSBwKSk7Cit9CisKK1Bhc3NSZWZQdHI8U3RyaW5nSW1wbD4gbnVtYmVyVG9TdHJpbmdJbXBs
KHVuc2lnbmVkIHUpCit7CisgICAgcmV0dXJuIG51bWJlclRvU3RyaW5nSW1wbFVuc2lnbmVkKHUp
OworfQorCitQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IG51bWJlclRvU3RyaW5nSW1wbCh1bnNpZ25l
ZCBsb25nIHUpCit7CisgICAgcmV0dXJuIG51bWJlclRvU3RyaW5nSW1wbFVuc2lnbmVkKHUpOwor
fQorCitQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IG51bWJlclRvU3RyaW5nSW1wbCh1bnNpZ25lZCBs
b25nIGxvbmcgdSkKK3sKKyAgICByZXR1cm4gbnVtYmVyVG9TdHJpbmdJbXBsVW5zaWduZWQodSk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4
dC9JbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0ludGVn
ZXJUb1N0cmluZ0NvbnZlcnNpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMzI1MDU5YTQzMmU5ZmJhNmU1YjQ0
OTc1OTE4NjdhMDM0Y2EzOWQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvdGV4
dC9JbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmgKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZu
ZGVmIEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb25faAorI2RlZmluZSBJbnRlZ2VyVG9TdHJpbmdD
b252ZXJzaW9uX2gKKworI2luY2x1ZGUgIlN0cmluZ0ltcGwuaCIKKworbmFtZXNwYWNlIFdURiB7
CitXVEZfRVhQT1JUX1NUUklOR19BUEkgUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBudW1iZXJUb1N0
cmluZ0ltcGwoaW50KTsKK1dURl9FWFBPUlRfU1RSSU5HX0FQSSBQYXNzUmVmUHRyPFN0cmluZ0lt
cGw+IG51bWJlclRvU3RyaW5nSW1wbChsb25nKTsKK1dURl9FWFBPUlRfU1RSSU5HX0FQSSBQYXNz
UmVmUHRyPFN0cmluZ0ltcGw+IG51bWJlclRvU3RyaW5nSW1wbChsb25nIGxvbmcpOworCitXVEZf
RVhQT1JUX1NUUklOR19BUEkgUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBudW1iZXJUb1N0cmluZ0lt
cGwodW5zaWduZWQpOworV1RGX0VYUE9SVF9TVFJJTkdfQVBJIFBhc3NSZWZQdHI8U3RyaW5nSW1w
bD4gbnVtYmVyVG9TdHJpbmdJbXBsKHVuc2lnbmVkIGxvbmcpOworV1RGX0VYUE9SVF9TVFJJTkdf
QVBJIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gbnVtYmVyVG9TdHJpbmdJbXBsKHVuc2lnbmVkIGxv
bmcgbG9uZyk7Cit9CisKKyNlbmRpZiAvLyBJbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uX2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmNwcCBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvV1RGU3RyaW5nLmNwcAppbmRleCBmYTNkYWQ3MWYxZDc5MDJlZTM5NjZiMDM2MDMw
ZGM0NmY3Njk1ZjE2Li43MmIwNDhkNDBhMmJhYWY3NWNhMzAwMmM1Y2QyOTMxOWE4M2MxY2IxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5jcHAKKysrIGIvU291cmNl
L1dURi93dGYvdGV4dC9XVEZTdHJpbmcuY3BwCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiV1RGU3RyaW5nLmgiCiAKKyNpbmNsdWRlICJJbnRlZ2VyVG9T
dHJpbmdDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSA8c3RkYXJnLmg+CiAjaW5jbHVkZSA8d3RmL0FT
Q0lJQ1R5cGUuaD4KICNpbmNsdWRlIDx3dGYvRGF0YUxvZy5oPgpAQCAtNDE2LDU0ICs0MTcsNiBA
QCBTdHJpbmcgU3RyaW5nOjpmb3JtYXQoY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pCiAgICAgcmV0
dXJuIFN0cmluZ0ltcGw6OmNyZWF0ZShyZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oYnVm
ZmVyLmRhdGEoKSksIGxlbik7CiAjZW5kaWYKIH0KLQotU3RyaW5nIFN0cmluZzo6bnVtYmVyKHNo
b3J0IG4pCi17Ci0gICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCIlaGQiLCBuKTsKLX0KLQotU3Ry
aW5nIFN0cmluZzo6bnVtYmVyKHVuc2lnbmVkIHNob3J0IG4pCi17Ci0gICAgcmV0dXJuIFN0cmlu
Zzo6Zm9ybWF0KCIlaHUiLCBuKTsKLX0KLQotU3RyaW5nIFN0cmluZzo6bnVtYmVyKGludCBuKQot
ewotICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiJWQiLCBuKTsKLX0KLQotU3RyaW5nIFN0cmlu
Zzo6bnVtYmVyKHVuc2lnbmVkIG4pCi17Ci0gICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCIldSIs
IG4pOwotfQotCi1TdHJpbmcgU3RyaW5nOjpudW1iZXIobG9uZyBuKQotewotICAgIHJldHVybiBT
dHJpbmc6OmZvcm1hdCgiJWxkIiwgbik7Ci19Ci0KLVN0cmluZyBTdHJpbmc6Om51bWJlcih1bnNp
Z25lZCBsb25nIG4pCi17Ci0gICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCIlbHUiLCBuKTsKLX0K
LQotU3RyaW5nIFN0cmluZzo6bnVtYmVyKGxvbmcgbG9uZyBuKQotewotI2lmIE9TKFdJTkRPV1Mp
ICYmICFQTEFURk9STShRVCkKLSAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIiVJNjRpIiwgbik7
Ci0jZWxzZQotICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiJWxsaSIsIG4pOwotI2VuZGlmCi19
Ci0KLVN0cmluZyBTdHJpbmc6Om51bWJlcih1bnNpZ25lZCBsb25nIGxvbmcgbikKLXsKLSNpZiBP
UyhXSU5ET1dTKSAmJiAhUExBVEZPUk0oUVQpCi0gICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCIl
STY0dSIsIG4pOwotI2Vsc2UKLSAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIiVsbHUiLCBuKTsK
LSNlbmRpZgotfQogICAgIAogU3RyaW5nIFN0cmluZzo6bnVtYmVyKGRvdWJsZSBudW1iZXIsIHVu
c2lnbmVkIGZsYWdzLCB1bnNpZ25lZCBwcmVjaXNpb24pCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oIGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcu
aAppbmRleCBjNzgxYWUzZDJlYjliOGRhZTU4YTlkZmZkZjNkZjBhZjkyOWViMmQ4Li5jNTQzZDU2
MzkzNGFlNzY1ZWIxMmVkM2EwYzNiMmFjM2VjMjhmMzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L1dURlN0cmluZy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5n
LmgKQEAgLTEsNiArMSw2IEBACiAvKgogICogKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2Rl
Lm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAw
OSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yNiw2ICsyNiw3
IEBACiAvLyBvbiBzeXN0ZW1zIHdpdGhvdXQgY2FzZS1zZW5zaXRpdmUgZmlsZSBzeXN0ZW1zLgog
CiAjaW5jbHVkZSA8d3RmL3RleHQvQVNDSUlGYXN0UGF0aC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L0ludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJ
bXBsLmg+CiAKICNpZmRlZiBfX09CSkNfXwpAQCAtMjIwLDE0ICsyMjEsMTQgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gKCptX2ltcGwpW2luZGV4XTsKICAgICB9CiAKLSAgICBzdGF0aWMgU3Ry
aW5nIG51bWJlcihzaG9ydCk7Ci0gICAgV1RGX0VYUE9SVF9TVFJJTkdfQVBJIHN0YXRpYyBTdHJp
bmcgbnVtYmVyKHVuc2lnbmVkIHNob3J0KTsKLSAgICBXVEZfRVhQT1JUX1NUUklOR19BUEkgc3Rh
dGljIFN0cmluZyBudW1iZXIoaW50KTsKLSAgICBXVEZfRVhQT1JUX1NUUklOR19BUEkgc3RhdGlj
IFN0cmluZyBudW1iZXIodW5zaWduZWQpOwotICAgIFdURl9FWFBPUlRfU1RSSU5HX0FQSSBzdGF0
aWMgU3RyaW5nIG51bWJlcihsb25nKTsKLSAgICBXVEZfRVhQT1JUX1NUUklOR19BUEkgc3RhdGlj
IFN0cmluZyBudW1iZXIodW5zaWduZWQgbG9uZyk7Ci0gICAgV1RGX0VYUE9SVF9TVFJJTkdfQVBJ
IHN0YXRpYyBTdHJpbmcgbnVtYmVyKGxvbmcgbG9uZyk7Ci0gICAgV1RGX0VYUE9SVF9TVFJJTkdf
QVBJIHN0YXRpYyBTdHJpbmcgbnVtYmVyKHVuc2lnbmVkIGxvbmcgbG9uZyk7CisgICAgc3RhdGlj
IFN0cmluZyBudW1iZXIodW5zaWduZWQgc2hvcnQgbnVtYmVyKSB7IHJldHVybiBudW1iZXJUb1N0
cmluZ0ltcGwobnVtYmVyKTsgfQorICAgIHN0YXRpYyBTdHJpbmcgbnVtYmVyKGludCBudW1iZXIp
IHsgcmV0dXJuIG51bWJlclRvU3RyaW5nSW1wbChudW1iZXIpOyB9CisgICAgc3RhdGljIFN0cmlu
ZyBudW1iZXIodW5zaWduZWQgbnVtYmVyKSB7IHJldHVybiBudW1iZXJUb1N0cmluZ0ltcGwobnVt
YmVyKTsgfQorICAgIHN0YXRpYyBTdHJpbmcgbnVtYmVyKGxvbmcgbnVtYmVyKSB7IHJldHVybiBu
dW1iZXJUb1N0cmluZ0ltcGwobnVtYmVyKTsgfQorICAgIHN0YXRpYyBTdHJpbmcgbnVtYmVyKHVu
c2lnbmVkIGxvbmcgbnVtYmVyKSB7IHJldHVybiBudW1iZXJUb1N0cmluZ0ltcGwobnVtYmVyKTsg
fQorICAgIHN0YXRpYyBTdHJpbmcgbnVtYmVyKGxvbmcgbG9uZyBudW1iZXIpIHsgcmV0dXJuIG51
bWJlclRvU3RyaW5nSW1wbChudW1iZXIpOyB9CisgICAgc3RhdGljIFN0cmluZyBudW1iZXIodW5z
aWduZWQgbG9uZyBsb25nIG51bWJlcikgeyByZXR1cm4gbnVtYmVyVG9TdHJpbmdJbXBsKG51bWJl
cik7IH0KKwogICAgIFdURl9FWFBPUlRfU1RSSU5HX0FQSSBzdGF0aWMgU3RyaW5nIG51bWJlcihk
b3VibGUsIHVuc2lnbmVkID0gU2hvdWxkUm91bmRTaWduaWZpY2FudEZpZ3VyZXMgfCBTaG91bGRU
cnVuY2F0ZVRyYWlsaW5nWmVyb3MsIHVuc2lnbmVkIHByZWNpc2lvbiA9IDYpOwogCiAgICAgLy8g
RmluZCBhIHNpbmdsZSBjaGFyYWN0ZXIgb3Igc3RyaW5nLCBhbHNvIHdpdGggbWF0Y2ggZnVuY3Rp
b24gJiBsYXRpbjEgZm9ybXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0
Mi5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKaW5kZXggNWY2OGFiYzNhNmRj
MjA1Nzk4NGZjZWJjZjRjZDYwY2UyOTcxYjI0My4uMWJmMDc4ZjViN2UwYTYyODgyZjA0NTUzZDYz
MjU0NmQ4Y2JlOTcyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVm
CisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgpAQCAtMTk1LDggKzE5NSw4IEBA
IEVYUE9SVFMKICAgICAgICAgP2xhc3RDaGlsZEBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXJAV2Vi
Q29yZUBAUUFFWFhaCiAgICAgICAgID9uZXh0QENvbXBvc2VkU2hhZG93VHJlZVdhbGtlckBXZWJD
b3JlQEBRQUVYWFoKICAgICAgICAgP3ByZXZpb3VzQENvbXBvc2VkU2hhZG93VHJlZVdhbGtlckBX
ZWJDb3JlQEBRQUVYWFoKLSAgICAgICAgP251bWJlckBTdHJpbmdAV1RGQEBTQT9BVjEyQElAWgot
ICAgICAgICA/bnVtYmVyQFN0cmluZ0BXVEZAQFNBP0FWMTJASEBaCisgICAgICAgID9udW1iZXJU
b1N0cmluZ0ltcGxAV1RGQEBZQT9BVj8kUGFzc1JlZlB0ckBWU3RyaW5nSW1wbEBXVEZAQEAxQEhA
WgorICAgICAgICA/bnVtYmVyVG9TdHJpbmdJbXBsQFdURkBAWUE/QVY/JFBhc3NSZWZQdHJAVlN0
cmluZ0ltcGxAV1RGQEBAMUBJQFoKICAgICAgICAgP292ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1
YWdlc0BXZWJDb3JlQEBZQVhBQlY/JFZlY3RvckBWU3RyaW5nQFdURkBAJDBBQEBXVEZAQEBaCiAg
ICAgICAgID9udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuQE5vZGVAV2ViQ29yZUBAUUJF
SVhaCiAgICAgICAgID9wYWdlQERvY3VtZW50QFdlYkNvcmVAQFFCRVBBVlBhZ2VAMkBYWgpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGI5NjcxODk2
YzQxNzE2ZWFmYjBhYTRmZjQxODkzODYyMTEzNmJmYjkuLmY3ODQ3ZWEwNjk2MGZhZTI2NzJjNjdj
NDkwMGQzYzRhZjg1Y2Y3NTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wOC0yMyAgQmVuamFtaW4gUG91bGFp
biAgPGJwb3VsYWluQGFwcGxlLmNvbT4KKworICAgICAgICBVbmlmeSBOdW1iZXIgdG8gU3RyaW5n
SW1wbCBjb252ZXJzaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05NDg3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCB0ZXN0aW5nIGZvciB0aGUgbmV3IEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24u
CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvR05VbWFrZWZpbGUuYW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5jcHA6IEFkZGVkLgorCiAy
MDEyLTA4LTIzICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJl
cGxheSB0ZXN0cyB0YWtlIGZvcmV2ZXIgdG8gbG9hZApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9DTWFrZUxpc3RzLnR4dCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50
eHQKaW5kZXggNWFmYWRiYTJiNjI4YTJmOWI5ZWVjODBiMTgzNTVkNzE5NzM3OGRmMS4uNTEwMWYz
N2Y1MWUwN2U1MTc1ZDJhZDdjMTY5YjcxMjY1MjE2M2U5YiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtl
TGlzdHMudHh0CkBAIC03MSw2ICs3MSw3IEBAIEFERF9FWEVDVVRBQkxFKHRlc3Rfd3RmCiAgICAg
JHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL0NoZWNrZWRBcml0aG1ldGljT3BlcmF0aW9u
cy5jcHAKICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvRnVuY3Rpb25hbC5jcHAK
ICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvSGFzaE1hcC5jcHAKKyAgICAke1RF
U1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5jcHAK
ICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvTWV0YUFsbG9jYXRvci5jcHAKICAg
ICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvUmVkQmxhY2tUcmVlLmNwcAogICAgICR7
VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dURi9TYXR1cmF0ZWRBcml0aG1ldGljT3BlcmF0aW9u
cy5jcHAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvR05VbWFrZWZpbGUuYW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL0dOVW1ha2VmaWxlLmFtCmluZGV4IDU2ZjQzMDAwNmRmMzU3ZDA2
MGVhOTMwNGFiMDkzN2Q3NzVmNjNiYTQuLjU2NmQyNDVjNzcyYzg4MmFiZWQwMzNjYmExYjFmOGNl
MTBlNTg1NzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvR05VbWFrZWZpbGUuYW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9HTlVtYWtlZmlsZS5hbQpAQCAtNTUsNiArNTUsNyBA
QCBQcm9ncmFtc19UZXN0V2ViS2l0QVBJX1Rlc3RXVEZfU09VUkNFUyA9IFwKIAlUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dURi9DaGVja2VkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwIFwKIAlU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GdW5jdGlvbmFsLmNwcCBcCiAJVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvSGFzaE1hcC5jcHAgXAorCVRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL0ludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uY3BwIFwKIAlUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dURi9NZWRpYVRpbWUuY3BwIFwKIAlUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9SZWRCbGFja1RyZWUuY3BwIFwKIAlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9TYXR1cmF0ZWRBcml0aG1ldGljT3BlcmF0aW9ucy5jcHAgXApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA5NTc2MjUwZjI0ZjY4MmEyNThhNzJiMGVkNWU0NGY5NTYzNDc1MmQ5Li5mNzlhMzNl
N2YxNGMzYzJjZjdlOTRjNDVjZDZkNjY0MTMzOTliOTM2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMjQsNiArMjQsNyBAQAogCQkxQUVERTIyNjEzRTVFN0U3MDBFNjJGRTggLyogSW5qZWN0
ZWRCdW5kbGVDb250cm9sbGVyTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUFFREUyMjQxM0U1RTdBMDAwRTYyRkU4IC8qIEluamVjdGVkQnVuZGxl
Q29udHJvbGxlck1hYy5tbSAqLzsgfTsKIAkJMjYxNTE2RDYxNUIwRTYwNTAwQTJDMjAxIC8qIFNl
dEFuZFVwZGF0ZUNhY2hlTW9kZWwubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyNjE1MTZENTE1QjBFNjA1MDBBMkMyMDEgLyogU2V0QW5kVXBkYXRlQ2Fj
aGVNb2RlbC5tbSAqLzsgfTsKIAkJMjY1QUY1NTAxNUQxRTQ4QTAwQjBDQjRBIC8qIFdURlN0cmlu
Zy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjVB
RjU0RjE1RDFFNDhBMDBCMENCNEEgLyogV1RGU3RyaW5nLmNwcCAqLzsgfTsKKwkJMjY2RkFGRDMx
NUU1Nzc1MjAwRjYxRDVCIC8qIEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjY2RkFGRDIxNUU1Nzc1MjAw
RjYxRDVCIC8qIEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uY3BwICovOyB9OwogCQkyNkEyQzcy
RjE1RTJFNzNDMDA1QjFBMTQgLyogQ1N0cmluZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNkEyQzcyRTE1RTJFNzNDMDA1QjFBMTQgLyogQ1N0cmlu
Zy5jcHAgKi87IH07CiAJCTI2QjJERkY5MTVCREU1OTkwMDRGNjkxRCAvKiBIYXNoU2V0LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2QjJERkY4MTVC
REU1OTkwMDRGNjkxRCAvKiBIYXNoU2V0LmNwcCAqLzsgfTsKIAkJMjZERjVBNUUxNUEyOUJBQTAw
MzY4OUMyIC8qIENhbmNlbExvYWRGcm9tUmVzb3VyY2VMb2FkRGVsZWdhdGUubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNkRGNUE1RDE1QTI5QkFBMDAz
Njg5QzIgLyogQ2FuY2VsTG9hZEZyb21SZXNvdXJjZUxvYWREZWxlZ2F0ZS5tbSAqLzsgfTsKQEAg
LTI1Niw2ICsyNTcsNyBAQAogCQkxQUVERTIyNDEzRTVFN0EwMDBFNjJGRTggLyogSW5qZWN0ZWRC
dW5kbGVDb250cm9sbGVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkyNjE1MTZENTE1QjBFNjA1MDBBMkMyMDEgLyogU2V0QW5kVXBkYXRlQ2FjaGVN
b2RlbC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNldEFuZFVw
ZGF0ZUNhY2hlTW9kZWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2NUFGNTRG
MTVEMUU0OEEwMEIwQ0I0QSAvKiBXVEZTdHJpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gV1RGU3RyaW5nLmNwcDsgcGF0aCA9IFdURi9XVEZTdHJpbmcuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyNjZGQUZEMjE1RTU3NzUyMDBGNjFENUIgLyog
SW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBJbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmNwcDsgcGF0aCA9IFdURi9JbnRl
Z2VyVG9TdHJpbmdDb252ZXJzaW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MjZBMkM3MkUxNUUyRTczQzAwNUIxQTE0IC8qIENTdHJpbmcuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gQ1N0cmluZy5jcHA7IHBhdGggPSBXVEYvQ1N0cmluZy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2QjJERkY4MTVCREU1OTkwMDRGNjkxRCAv
KiBIYXNoU2V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEhhc2hT
ZXQuY3BwOyBwYXRoID0gV1RGL0hhc2hTZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkyNkRGNUE1RDE1QTI5QkFBMDAzNjg5QzIgLyogQ2FuY2VsTG9hZEZyb21SZXNvdXJjZUxv
YWREZWxlZ2F0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENh
bmNlbExvYWRGcm9tUmVzb3VyY2VMb2FkRGVsZWdhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC02NDEsNiArNjQzLDcgQEAKIAkJCQkwQkNEODMzNDE0ODU3Q0U0MDBFQTIwMDMg
LyogSGFzaE1hcC5jcHAgKi8sCiAJCQkJMjZCMkRGRjgxNUJERTU5OTAwNEY2OTFEIC8qIEhhc2hT
ZXQuY3BwICovLAogCQkJCTE0RjNCMTEyMTVFNDVFQUIwMDIxMDA2OSAvKiBTYXR1cmF0ZWRBcml0
aG1ldGljT3BlcmF0aW9ucy5jcHAgKi8sCisJCQkJMjY2RkFGRDIxNUU1Nzc1MjAwRjYxRDVCIC8q
IEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uY3BwICovLAogCQkJCTgxQjUwMTkyMTQwRjIzMjMw
MEQ5RUI1OCAvKiBTdHJpbmdCdWlsZGVyLmNwcCAqLywKIAkJCQkyNkYxQjQ0MzE1Q0E0MzRGMDBE
MUU0QkYgLyogU3RyaW5nSW1wbC5jcHAgKi8sCiAJCQkJQzAxMzYzQzcxM0MzOTk3MzAwRUYzOTY0
IC8qIFN0cmluZ09wZXJhdG9ycy5jcHAgKi8sCkBAIC05MTUsNiArOTE4LDcgQEAKIAkJCQlDNTA3
RThBNzE0QzY1NDVCMDA1RDZCM0IgLyogSW5zcGVjdG9yQmFyLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQzA4NTg3RkMxM0ZFQzM5QjAwMUVGNEU1IC8qIEluc3RhbmNlTWV0aG9kU3dpenpsZXIubW0g
aW4gU291cmNlcyAqLywKIAkJCQlDMDg1ODgwMDEzRkVDM0E2MDAxRUY0RTUgLyogSW5zdGFuY2VN
ZXRob2RTd2l6emxlci5tbSBpbiBTb3VyY2VzICovLAorCQkJCTI2NkZBRkQzMTVFNTc3NTIwMEY2
MUQ1QiAvKiBJbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUMwQURCRTdDMTJGQ0E0RDAwMEQyQzEyOSAvKiBKYXZhU2NyaXB0VGVzdC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlDMDgxMjI0MjEzRkMxNzI0MDBEQzM5QUUgLyogSmF2YVNjcmlwdFRlc3RNYWMu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk0NDBBMUQzOTE0QTAxMDNBMDA4QTY2RjIgLyogS1VSTC5j
cHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL0ludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTIwMWY0
MTI3NTU1MjNlYTMyYTA3NjRiODg3N2FiZWI5YjE2OWMwZgotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ludGVnZXJUb1N0cmluZ0NvbnZlcnNpb24uY3Bw
CkBAIC0wLDAgKzEsMTMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisj
aW5jbHVkZSA8bGltaXRzPgorI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvSW50ZWdlclRvU3RyaW5n
Q29udmVyc2lvbi5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCit0ZW1wbGF0
ZTx0eXBlbmFtZSBJbnRlZ2VyVHlwZT4gc3RydWN0IFByaW50ZkZvcm1hdFRyYWl0IHsgc3RhdGlj
IGNvbnN0IGNoYXIgZm9ybWF0W107IH07CisKK3RlbXBsYXRlPD4gc3RydWN0IFByaW50ZkZvcm1h
dFRyYWl0PHNob3J0PiB7IHN0YXRpYyBjb25zdCBjaGFyIGZvcm1hdFtdOyB9OworY29uc3QgY2hh
ciBQcmludGZGb3JtYXRUcmFpdDxzaG9ydD46OmZvcm1hdFtdID0gIiVoZCI7CisKK3RlbXBsYXRl
PD4gc3RydWN0IFByaW50ZkZvcm1hdFRyYWl0PGludD4geyBzdGF0aWMgY29uc3QgY2hhciBmb3Jt
YXRbXTsgfTsKK2NvbnN0IGNoYXIgUHJpbnRmRm9ybWF0VHJhaXQ8aW50Pjo6Zm9ybWF0W10gPSAi
JWQiOworCit0ZW1wbGF0ZTw+IHN0cnVjdCBQcmludGZGb3JtYXRUcmFpdDxsb25nPiB7IHN0YXRp
YyBjb25zdCBjaGFyIGZvcm1hdFtdOyB9OworY29uc3QgY2hhciBQcmludGZGb3JtYXRUcmFpdDxs
b25nPjo6Zm9ybWF0W10gPSAiJWxkIjsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgUHJpbnRmRm9ybWF0
VHJhaXQ8bG9uZyBsb25nPiB7IHN0YXRpYyBjb25zdCBjaGFyIGZvcm1hdFtdOyB9OworI2lmIE9T
KFdJTkRPV1MpICYmICFQTEFURk9STShRVCkKK2NvbnN0IGNoYXIgUHJpbnRmRm9ybWF0VHJhaXQ8
bG9uZyBsb25nPjo6Zm9ybWF0W10gPSAiJUk2NGkiOworI2Vsc2UKK2NvbnN0IGNoYXIgUHJpbnRm
Rm9ybWF0VHJhaXQ8bG9uZyBsb25nPjo6Zm9ybWF0W10gPSAiJWxsaSI7CisjZW5kaWYgLy8gT1Mo
V0lORE9XUykgJiYgIVBMQVRGT1JNKFFUKQorCit0ZW1wbGF0ZTw+IHN0cnVjdCBQcmludGZGb3Jt
YXRUcmFpdDx1bnNpZ25lZCBzaG9ydD4geyBzdGF0aWMgY29uc3QgY2hhciBmb3JtYXRbXTsgfTsK
K2NvbnN0IGNoYXIgUHJpbnRmRm9ybWF0VHJhaXQ8dW5zaWduZWQgc2hvcnQ+Ojpmb3JtYXRbXSA9
ICIlaHUiOworCit0ZW1wbGF0ZTw+IHN0cnVjdCBQcmludGZGb3JtYXRUcmFpdDx1bnNpZ25lZD4g
eyBzdGF0aWMgY29uc3QgY2hhciBmb3JtYXRbXTsgfTsKK2NvbnN0IGNoYXIgUHJpbnRmRm9ybWF0
VHJhaXQ8dW5zaWduZWQ+Ojpmb3JtYXRbXSA9ICIldSI7CisKK3RlbXBsYXRlPD4gc3RydWN0IFBy
aW50ZkZvcm1hdFRyYWl0PHVuc2lnbmVkIGxvbmc+IHsgc3RhdGljIGNvbnN0IGNoYXIgZm9ybWF0
W107IH07Citjb25zdCBjaGFyIFByaW50ZkZvcm1hdFRyYWl0PHVuc2lnbmVkIGxvbmc+Ojpmb3Jt
YXRbXSA9ICIlbHUiOworCit0ZW1wbGF0ZTw+IHN0cnVjdCBQcmludGZGb3JtYXRUcmFpdDx1bnNp
Z25lZCBsb25nIGxvbmc+IHsgc3RhdGljIGNvbnN0IGNoYXIgZm9ybWF0W107IH07CisjaWYgT1Mo
V0lORE9XUykgJiYgIVBMQVRGT1JNKFFUKQorY29uc3QgY2hhciBQcmludGZGb3JtYXRUcmFpdDx1
bnNpZ25lZCBsb25nIGxvbmc+Ojpmb3JtYXRbXSA9ICIlSTY0dSI7CisjZWxzZQorY29uc3QgY2hh
ciBQcmludGZGb3JtYXRUcmFpdDx1bnNpZ25lZCBsb25nIGxvbmc+Ojpmb3JtYXRbXSA9ICIlbGx1
IjsKKyNlbmRpZiAvLyBPUyhXSU5ET1dTKSAmJiAhUExBVEZPUk0oUVQpCisKKworLy8gRklYTUU6
IHVzZSBzbnByaW50ZiBmcm9tIFN0cmluZ0V4dHJhcy5oCit0ZW1wbGF0ZTx0eXBlbmFtZSBJbnRl
Z2VyVHlwZT4KK3ZvaWQgdGVzdEJvdW5kYXJpZXMoKQoreworICAgIGNvbnN0IHVuc2lnbmVkIGJ1
ZmZlclNpemUgPSAyNTY7CisgICAgVmVjdG9yPGNoYXIsIGJ1ZmZlclNpemU+IGJ1ZmZlcjsKKyAg
ICBidWZmZXIucmVzaXplKGJ1ZmZlclNpemUpOworCisgICAgY29uc3QgSW50ZWdlclR5cGUgbWlu
ID0gc3RkOjpudW1lcmljX2xpbWl0czxJbnRlZ2VyVHlwZT46Om1pbigpOworICAgIENTdHJpbmcg
bWluU3RyaW5nRGF0YSA9IFN0cmluZyhXVEY6Om51bWJlclRvU3RyaW5nSW1wbChtaW4pKS5sYXRp
bjEoKTsKKyAgICBzbnByaW50ZihidWZmZXIuZGF0YSgpLCBidWZmZXJTaXplLCBQcmludGZGb3Jt
YXRUcmFpdDxJbnRlZ2VyVHlwZT46OmZvcm1hdCwgbWluKTsKKyAgICBBU1NFUlRfU1RSRVEoYnVm
ZmVyLmRhdGEoKSwgbWluU3RyaW5nRGF0YS5kYXRhKCkpOworCisgICAgY29uc3QgSW50ZWdlclR5
cGUgbWF4ID0gc3RkOjpudW1lcmljX2xpbWl0czxJbnRlZ2VyVHlwZT46Om1heCgpOworICAgIENT
dHJpbmcgbWF4U3RyaW5nRGF0YSA9IFN0cmluZyhXVEY6Om51bWJlclRvU3RyaW5nSW1wbChtYXgp
KS5sYXRpbjEoKTsKKyAgICBzbnByaW50ZihidWZmZXIuZGF0YSgpLCBidWZmZXJTaXplLCBQcmlu
dGZGb3JtYXRUcmFpdDxJbnRlZ2VyVHlwZT46OmZvcm1hdCwgbWF4KTsKKyAgICBBU1NFUlRfU1RS
RVEoYnVmZmVyLmRhdGEoKSwgbWF4U3RyaW5nRGF0YS5kYXRhKCkpOworfQorCit0ZW1wbGF0ZTx0
eXBlbmFtZSBJbnRlZ2VyVHlwZT4KK3ZvaWQgdGVzdE51bWJlcnMoKQoreworICAgIGNvbnN0IHVu
c2lnbmVkIGJ1ZmZlclNpemUgPSAyNTY7CisgICAgVmVjdG9yPGNoYXIsIGJ1ZmZlclNpemU+IGJ1
ZmZlcjsKKyAgICBidWZmZXIucmVzaXplKGJ1ZmZlclNpemUpOworCisgICAgZm9yIChpbnQgaSA9
IC0xMDA7IGkgPCAxMDA7ICsraSkgeworICAgICAgICBjb25zdCBJbnRlZ2VyVHlwZSBudW1iZXIg
PSBzdGF0aWNfY2FzdDxJbnRlZ2VyVHlwZT4oaSk7CisgICAgICAgIENTdHJpbmcgbnVtYmVyU3Ry
aW5nRGF0YSA9IFN0cmluZyhXVEY6Om51bWJlclRvU3RyaW5nSW1wbChudW1iZXIpKS5sYXRpbjEo
KTsKKyAgICAgICAgc25wcmludGYoYnVmZmVyLmRhdGEoKSwgYnVmZmVyU2l6ZSwgUHJpbnRmRm9y
bWF0VHJhaXQ8SW50ZWdlclR5cGU+Ojpmb3JtYXQsIG51bWJlcik7CisgICAgICAgIEFTU0VSVF9T
VFJFUShidWZmZXIuZGF0YSgpLCBudW1iZXJTdHJpbmdEYXRhLmRhdGEoKSk7CisgICAgfQorfQor
CitURVNUKFdURiwgSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvblNpZ25lZEludGVnZXJCb3VuZGFy
aWVzKQoreworICAgIHRlc3RCb3VuZGFyaWVzPHNob3J0PigpOworICAgIHRlc3RCb3VuZGFyaWVz
PGludD4oKTsKKyAgICB0ZXN0Qm91bmRhcmllczxsb25nPigpOworICAgIHRlc3RCb3VuZGFyaWVz
PGxvbmcgbG9uZz4oKTsKK30KKworVEVTVChXVEYsIEludGVnZXJUb1N0cmluZ0NvbnZlcnNpb25T
aWduZWRJbnRlZ2VyUmVndWxhck51bWJlcnMpCit7CisgICAgdGVzdE51bWJlcnM8c2hvcnQ+KCk7
CisgICAgdGVzdE51bWJlcnM8aW50PigpOworICAgIHRlc3ROdW1iZXJzPGxvbmc+KCk7CisgICAg
dGVzdE51bWJlcnM8bG9uZyBsb25nPigpOworfQorCitURVNUKFdURiwgSW50ZWdlclRvU3RyaW5n
Q29udmVyc2lvblVuc2lnbmVkSW50ZWdlckJvdW5kYXJpZXMpCit7CisgICAgdGVzdEJvdW5kYXJp
ZXM8dW5zaWduZWQgc2hvcnQ+KCk7CisgICAgdGVzdEJvdW5kYXJpZXM8dW5zaWduZWQgaW50Pigp
OworICAgIHRlc3RCb3VuZGFyaWVzPHVuc2lnbmVkIGxvbmc+KCk7CisgICAgdGVzdEJvdW5kYXJp
ZXM8dW5zaWduZWQgbG9uZyBsb25nPigpOworfQorCitURVNUKFdURiwgSW50ZWdlclRvU3RyaW5n
Q29udmVyc2lvblVuc2lnbmVkSW50ZWdlclJlZ3VsYXJOdW1iZXJzKQoreworICAgIHRlc3ROdW1i
ZXJzPHVuc2lnbmVkIHNob3J0PigpOworICAgIHRlc3ROdW1iZXJzPHVuc2lnbmVkIGludD4oKTsK
KyAgICB0ZXN0TnVtYmVyczx1bnNpZ25lZCBsb25nPigpOworICAgIHRlc3ROdW1iZXJzPHVuc2ln
bmVkIGxvbmcgbG9uZz4oKTsKK30K
</data>
<flag name="review"
          id="170832"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>