<?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>71034</bug_id>
          
          <creation_ts>2011-10-27 10:48:57 -0700</creation_ts>
          <short_desc>Remove need for virtual JSObject::unwrappedObject</short_desc>
          <delta_ts>2011-10-31 16:46:37 -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>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>
          
          <blocked>70960</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>mhahnenberg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>491711</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-10-27 10:48:57 -0700</bug_when>
    <thetext>Remove need for virtual JSObject::unwrappedObject</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491857</commentid>
    <comment_count>1</comment_count>
      <attachid>112738</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-10-27 13:09:37 -0700</bug_when>
    <thetext>Created attachment 112738
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493057</commentid>
    <comment_count>2</comment_count>
      <attachid>112996</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-10-30 12:12:03 -0700</bug_when>
    <thetext>Created attachment 112996
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493069</commentid>
    <comment_count>3</comment_count>
      <attachid>113000</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-10-30 13:17:20 -0700</bug_when>
    <thetext>Created attachment 113000
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493096</commentid>
    <comment_count>4</comment_count>
      <attachid>113000</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-10-30 16:35:14 -0700</bug_when>
    <thetext>Comment on attachment 113000
Patch

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

&gt; Source/JavaScriptCore/runtime/JSGlobalThis.cpp:33
&gt; +ASSERT_CLASS_FITS_IN_CELL(JSGlobalThis);

Is this needed, now that the GC can allocate things of any size?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493112</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-10-30 18:13:55 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 113000 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=113000&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/runtime/JSGlobalThis.cpp:33
&gt; &gt; +ASSERT_CLASS_FITS_IN_CELL(JSGlobalThis);
&gt; 
&gt; Is this needed, now that the GC can allocate things of any size?

I don&apos;t know, I moved it from JSDOMWindowShell. If it isn&apos;t, should we remove all of them?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493115</commentid>
    <comment_count>6</comment_count>
      <attachid>113000</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-10-30 18:25:37 -0700</bug_when>
    <thetext>Comment on attachment 113000
Patch

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

r=me

&gt; Source/JavaScriptCore/runtime/JSGlobalThis.h:51
&gt; +    JSObject* unwrappedObject();

Please make this return JSGlobalObject*, since it&apos;s not the case that we&apos;re capable of wrapping any kind of JSObject.

&gt; Source/JavaScriptCore/runtime/JSGlobalThis.h:68
&gt; +    WriteBarrier&lt;JSGlobalObject&gt; m_globalVariables;

Please change this name to match its accessor (&quot;unwrappedObject()&quot;).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493622</commentid>
    <comment_count>7</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-10-31 16:44:03 -0700</bug_when>
    <thetext>Committed r98909: &lt;http://trac.webkit.org/changeset/98909&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112738</attachid>
            <date>2011-10-27 13:09:37 -0700</date>
            <delta_ts>2011-10-30 12:12:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71034-20111027130936.patch</filename>
            <type>text/plain</type>
            <size>25880</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTg2MjIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzkgQEAK
KzIwMTEtMTAtMjcgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1v
dmUgbmVlZCBmb3IgdmlydHVhbCBKU09iamVjdDo6dW53cmFwcGVkT2JqZWN0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTAzNAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZXhw
OgorICAgICAgICBVcGRhdGUgZXhwb3J0cy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogSmF2YVNjcmlwdENvcmUu
ZXhwOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLmd5cGk6CisgICAgICAgICogSmF2YVNjcmlw
dENvcmUucHJvOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2o6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgQWRkIEpTR2xvYmFsVGhpcy5jcHAuCisKKyAg
ICAgICAgKiBydW50aW1lL0pTR2xvYmFsVGhpcy5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpK
U0dsb2JhbFRoaXM6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAoSlNDOjpKU0dsb2JhbFRoaXM6
OnVud3JhcHBlZE9iamVjdCk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbFRoaXMuaDoKKyAg
ICAgICAgKEpTQzo6SlNHbG9iYWxUaGlzOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICBNb3Zl
IHVuZGVybHlpbmcgb2JqZWN0IGZyb20gSlNET01XaW5kb3dTaGVsbCBkb3duIHRvIEpTR2xvYmFs
VGhpcworICAgICAgICBhbmQgY29ycmVzcG9uZGluZyB2aXNpdENoaWxkcmVuIG1ldGhvZC4KKwor
ICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6
dW53cmFwcGVkT2JqZWN0KToKKyAgICAgICAgQ2hhbmdlIHVud3JhcHBlZE9iamVjdCBmcm9tIHZp
cnR1YWwsIHRvIGp1c3QgbmVlZGluZyBhbiBpZiBjaGVjay4KKworICAgICAgICAqIHJ1bnRpbWUv
SlNPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmlzR2xvYmFsVGhpcyk6CisgICAg
ICAgICogcnVudGltZS9KU1R5cGUuaDoKKyAgICAgICAgQWRkIGlzR2xvYmFsVGhpcyBwcmVkaWNh
dGUgYW5kIHR5cGUuCisKIDIwMTEtMTAtMjcgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJn
QGFwcGxlLmNvbT4KIAogICAgICAgICBGaXhpbmcgd2luZG93cyBidWlsZApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gOTg1OTkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEyOCw2ICsxMjgs
NyBAQCBTRVQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIHJ1bnRpbWUvSlNHbG9iYWxEYXRh
LmNwcAogICAgIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCiAgICAgcnVudGltZS9KU0dsb2Jh
bE9iamVjdEZ1bmN0aW9ucy5jcHAKKyAgICBydW50aW1lL0pTR2xvYmFsVGhpcy5jcHAKICAgICBy
dW50aW1lL0pTTG9jay5jcHAKICAgICBydW50aW1lL0pTTm90QW5PYmplY3QuY3BwCiAgICAgcnVu
dGltZS9KU09iamVjdC5jcHAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCShyZXZpc2lvbiA5ODU5OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zNzMsNiArMzczLDcgQEAgamF2YXNj
cmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
bG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5oIFwKKwlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbFRoaXMuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bFRoaXMuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmNwcCBcCiAJ
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNMb2NrLmggXApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCShyZXZpc2lvbiA5ODU5OSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAJKHdvcmtpbmcgY29weSkKQEAgLTE0
NCw2ICsxNDQsOCBAQCBfX1pOM0pTQzEySlNHbG9iYWxEYXRhMjJjbGVhckJ1aWx0aW5TdHJ1CiBf
X1pOM0pTQzEySlNHbG9iYWxEYXRhMjNyZWxlYXNlRXhlY3V0YWJsZU1lbW9yeUV2CiBfX1pOM0pT
QzEySlNHbG9iYWxEYXRhNmNyZWF0ZUVOU18xNVRocmVhZFN0YWNrVHlwZUVOU184SGVhcFNpemVF
CiBfX1pOM0pTQzEySlNHbG9iYWxEYXRhRDFFdgorX19aTjNKU0MxMkpTR2xvYmFsVGhpczEzdmlz
aXRDaGlsZHJlbkVQTlNfNkpTQ2VsbEVSTlNfMTFTbG90VmlzaXRvckUKK19fWk4zSlNDMTJKU0ds
b2JhbFRoaXM2c19pbmZvRQogX19aTjNKU0MxMlJlZ0V4cE9iamVjdDE0ZmluaXNoQ3JlYXRpb25F
UE5TXzE0SlNHbG9iYWxPYmplY3RFCiBfX1pOM0pTQzEyUmVnRXhwT2JqZWN0NnNfaW5mb0UKIF9f
Wk4zSlNDMTJSZWdFeHBPYmplY3RDMUVQTlNfMTRKU0dsb2JhbE9iamVjdEVQTlNfOVN0cnVjdHVy
ZUVQTlNfNlJlZ0V4cEUKQEAgLTMwOCw3ICszMTAsNiBAQCBfX1pOM0pTQzhKU09iamVjdDEybG9v
a3VwU2V0dGVyRVBOU185RXhlCiBfX1pOM0pTQzhKU09iamVjdDEydG9UaGlzT2JqZWN0RVBOU182
SlNDZWxsRVBOU185RXhlY1N0YXRlRQogX19aTjNKU0M4SlNPYmplY3QxM3Zpc2l0Q2hpbGRyZW5F
UE5TXzZKU0NlbGxFUk5TXzExU2xvdFZpc2l0b3JFCiBfX1pOM0pTQzhKU09iamVjdDE0ZGVsZXRl
UHJvcGVydHlFUE5TXzZKU0NlbGxFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFCi1f
X1pOM0pTQzhKU09iamVjdDE1dW53cmFwcGVkT2JqZWN0RXYKIF9fWk4zSlNDOEpTT2JqZWN0MTZn
ZXRQcm9wZXJ0eU5hbWVzRVBOU185RXhlY1N0YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFycmF5RU5T
XzE1RW51bWVyYXRpb25Nb2RlRQogX19aTjNKU0M4SlNPYmplY3QxN2RlZmluZU93blByb3BlcnR5
RVBOU185RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xOFByb3BlcnR5RGVzY3JpcHRv
ckViCiBfX1pOM0pTQzhKU09iamVjdDE3cHJldmVudEV4dGVuc2lvbnNFUk5TXzEySlNHbG9iYWxE
YXRhRQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkJKHJl
dmlzaW9uIDk4NTk5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5
cGkJKHdvcmtpbmcgY29weSkKQEAgLTg3LDYgKzg3LDcgQEAKICAgICAgICAgICAgICdydW50aW1l
L0pTQm91bmRGdW5jdGlvbi5oJywKICAgICAgICAgICAgICdydW50aW1lL0pTR2xvYmFsRGF0YS5o
JywKICAgICAgICAgICAgICdydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgnLAorICAgICAgICAgICAg
J3J1bnRpbWUvSlNHbG9iYWxUaGlzLmgnLAogICAgICAgICAgICAgJ3J1bnRpbWUvSlNMb2NrLmgn
LAogICAgICAgICAgICAgJ3J1bnRpbWUvSlNPYmplY3QuaCcsCiAgICAgICAgICAgICAncnVudGlt
ZS9KU1N0cmluZy5oJywKQEAgLTQ4NCw2ICs0ODUsNyBAQAogICAgICAgICAgICAgJ3J1bnRpbWUv
SlNHbG9iYWxPYmplY3QuY3BwJywKICAgICAgICAgICAgICdydW50aW1lL0pTR2xvYmFsT2JqZWN0
RnVuY3Rpb25zLmNwcCcsCiAgICAgICAgICAgICAncnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0
aW9ucy5oJywKKyAgICAgICAgICAgICdydW50aW1lL0pTR2xvYmFsVGhpcy5jcHAnLAogICAgICAg
ICAgICAgJ3J1bnRpbWUvSlNMb2NrLmNwcCcsCiAgICAgICAgICAgICAncnVudGltZS9KU05vdEFu
T2JqZWN0LmNwcCcsCiAgICAgICAgICAgICAncnVudGltZS9KU05vdEFuT2JqZWN0LmgnLApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnBybwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUucHJvCShyZXZpc2lvbiA5ODU5
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5wcm8JKHdvcmtpbmcg
Y29weSkKQEAgLTE1OSw2ICsxNTksNyBAQCBTT1VSQ0VTICs9IFwKICAgICBydW50aW1lL0pTR2xv
YmFsRGF0YS5jcHAgXAogICAgIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIFwKICAgICBydW50
aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcCBcCisgICAgcnVudGltZS9KU0dsb2JhbFRo
aXMuY3BwIFwKICAgICBydW50aW1lL0pTTG9jay5jcHAgXAogICAgIHJ1bnRpbWUvSlNOb3RBbk9i
amVjdC5jcHAgXAogICAgIHJ1bnRpbWUvSlNPYmplY3QuY3BwIFwKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCShyZXZp
c2lvbiA5ODU5OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3By
b2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBA
IC04MzgsNiArODM4LDE0IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXC4uXHJ1bnRpbWVcSlNHbG9iYWxUaGlzLmNwcCIKKwkJCQk+CisJCQk8L0Zp
bGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccnVudGltZVxKU0dsb2JhbFRo
aXMuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5c
Li5ccnVudGltZVxKU0xvY2suY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA5ODU5OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC02MTMsNiArNjEzLDcgQEAKIAkJQkMzMDQ2MDcwRTFGNDk3RjAwMzIzMkNGIC8qIEVy
cm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzMw
NDYwNjBFMUY0OTdGMDAzMjMyQ0YgLyogRXJyb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzMxMzU2NDBGMzAyRkEzMDAzREZEM0EgLyogRGVi
dWdnZXJBY3RpdmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzMxMzU2MjBGMzAyRkEzMDAzREZEM0EgLyogRGVidWdnZXJBY3RpdmF0aW9uLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMzMTM1
NjUwRjMwMkZBMzAwM0RGRDNBIC8qIERlYnVnZ2VyQWN0aXZhdGlvbi5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzMxMzU2MzBGMzAyRkEzMDAzREZE
M0EgLyogRGVidWdnZXJBY3RpdmF0aW9uLmNwcCAqLzsgfTsKKwkJQkMzQzRDQTAxNDU4RjU0NTAw
MjVGQjYyIC8qIEpTR2xvYmFsVGhpcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzNDNEM5RjE0NThGNTQ1MDAyNUZCNjIgLyogSlNHbG9iYWxUaGlz
LmNwcCAqLzsgfTsKIAkJQkM1RjdCQkUxMTgyM0I1OTAwNTJDMDJDIC8qIEF0b21pY3MuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNUY3QkJCMTE4MjNC
NTkwMDUyQzAyQyAvKiBBdG9taWNzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJQkM1RjdCQkYxMTgyM0I1OTAwNTJDMDJDIC8qIFRocmVhZGluZ1By
aW1pdGl2ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDNUY3QkJDMTE4MjNCNTkwMDUyQzAyQyAvKiBUaHJlYWRpbmdQcmltaXRpdmVzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM1RjdCQzAxMTgy
M0I1OTAwNTJDMDJDIC8qIFRocmVhZFNhZmVSZWZDb3VudGVkLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzVGN0JCRDExODIzQjU5MDA1MkMwMkMgLyog
VGhyZWFkU2FmZVJlZkNvdW50ZWQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwpAQCAtMTMzOSw2ICsxMzQwLDcgQEAKIAkJQkMzMTM1NjMwRjMwMkZBMzAw
M0RGRDNBIC8qIERlYnVnZ2VyQWN0aXZhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBEZWJ1Z2dlckFjdGl2YXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCQzMzN0JERTBFMUFGMEI4MDA3NjkxOEEgLyogR2V0dGVyU2V0dGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdldHRlclNldHRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCQzMzN0JFQTBFMUIwMENCMDA3NjkxOEEgLyogRXJyb3IuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXJyb3IuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlCQzNDNEM5RjE0NThGNTQ1MDAyNUZCNjIgLyogSlNHbG9i
YWxUaGlzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTR2xvYmFs
VGhpcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNUY3QkJCMTE4MjNCNTkw
MDUyQzAyQyAvKiBBdG9taWNzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF0
b21pY3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1RjdCQkMxMTgyM0I1OTAw
NTJDMDJDIC8qIFRocmVhZGluZ1ByaW1pdGl2ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gVGhyZWFkaW5nUHJpbWl0aXZlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCQzVGN0JCRDExODIzQjU5MDA1MkMwMkMgLyogVGhyZWFkU2FmZVJlZkNvdW50ZWQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGhyZWFkU2FmZVJlZkNvdW50ZWQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxMjksNiArMjEzMSw3IEBACiAJCQkJQkM3
NTZGQzYwRTIwMzFCMjAwREU3RDEyIC8qIEpTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcCAqLywK
IAkJCQlCQzc1NkZDNzBFMjAzMUIyMDBERTdEMTIgLyogSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMu
aCAqLywKIAkJCQk4NjA0RjUwMzE0M0NFMUMxMDBCMjk1RjUgLyogSlNHbG9iYWxUaGlzLmggKi8s
CisJCQkJQkMzQzRDOUYxNDU4RjU0NTAwMjVGQjYyIC8qIEpTR2xvYmFsVGhpcy5jcHAgKi8sCiAJ
CQkJNjVFQTRDOTkwOTJBRjlFMjAwOTNEODAwIC8qIEpTTG9jay5jcHAgKi8sCiAJCQkJNjVFQTRD
OUEwOTJBRjlFMjAwOTNEODAwIC8qIEpTTG9jay5oICovLAogCQkJCUE3MjcwMDc4MERBQzYwNTYw
MEU1NDhENyAvKiBKU05vdEFuT2JqZWN0LmNwcCAqLywKQEAgLTM0MTYsNiArMzQxOSw3IEBACiAJ
CQkJODY4ODBGNEQxNDM1M0IyMTAwQjA4RDQyIC8qIERGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEZFMjI4RUUxNDM2QUIyQzAwMTk2QzQ4IC8qIEhldXJpc3RpY3Mu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY2MjAxNzkxNDNGQ0Q0ODAwNjhCNzdDIC8qIERGR0Fi
c3RyYWN0U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkMzQzRDQTAxNDU4RjU0NTAwMjVG
QjYyIC8qIEpTR2xvYmFsVGhpcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsVGhpcy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxUaGlzLmNwcAkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsVGhpcy5jcHAJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiSlNHbG9iYWxUaGlzLmgiCisKKyNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgor
CituYW1lc3BhY2UgSlNDIHsKKworQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChKU0dsb2JhbFRo
aXMpOworCitjb25zdCBDbGFzc0luZm8gSlNHbG9iYWxUaGlzOjpzX2luZm8gPSB7ICJKU0dsb2Jh
bFRoaXMiLCAmQmFzZTo6c19pbmZvLCAwLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTR2xvYmFs
VGhpcykgfTsKKwordm9pZCBKU0dsb2JhbFRoaXM6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxs
LCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3sKKyAgICBKU0dsb2JhbFRoaXMqIHRoaXNPYmplY3Qg
PSBzdGF0aWNfY2FzdDxKU0dsb2JhbFRoaXMqPihjZWxsKTsKKyAgICBBU1NFUlRfR0NfT0JKRUNU
X0lOSEVSSVRTKHRoaXNPYmplY3QsICZzX2luZm8pOworCisgICAgQ09NUElMRV9BU1NFUlQoU3Ry
dWN0dXJlRmxhZ3MgJiBPdmVycmlkZXNWaXNpdENoaWxkcmVuLCBPdmVycmlkZXNWaXNpdENoaWxk
cmVuV2l0aG91dFNldHRpbmdGbGFnKTsKKyAgICBBU1NFUlQodGhpc09iamVjdC0+c3RydWN0dXJl
KCktPnR5cGVJbmZvKCkub3ZlcnJpZGVzVmlzaXRDaGlsZHJlbigpKTsKKworICAgIEJhc2U6OnZp
c2l0Q2hpbGRyZW4odGhpc09iamVjdCwgdmlzaXRvcik7CisgICAgaWYgKHRoaXNPYmplY3QtPm1f
Z2xvYmFsVmFyaWFibGVzKQorICAgICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV9n
bG9iYWxWYXJpYWJsZXMpOworfQorCitKU09iamVjdCogSlNHbG9iYWxUaGlzOjp1bndyYXBwZWRP
YmplY3QoKQoreworICAgIHJldHVybiBtX2dsb2JhbFZhcmlhYmxlcy5nZXQoKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbFRoaXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbFRoaXMuaAkocmV2aXNpb24gOTg1OTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbFRoaXMuaAkod29ya2luZyBjb3B5KQpAQCAtNDEsNiArNDEsMTUgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gZ2xvYmFsVGhpczsKICAgICB9CiAKKyAgICBzdGF0aWMg
U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1Zh
bHVlIHByb3RvdHlwZSkgCisgICAgeworICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUo
Z2xvYmFsRGF0YSwgMCwgcHJvdG90eXBlLCBUeXBlSW5mbyhHbG9iYWxUaGlzVHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCAmc19pbmZvKTsgCisgICAgfQorCisgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xh
c3NJbmZvIHNfaW5mbzsKKworICAgIEpTT2JqZWN0KiB1bndyYXBwZWRPYmplY3QoKTsKKwogcHJv
dGVjdGVkOgogICAgIEpTR2xvYmFsVGhpcyhKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVj
dHVyZSogc3RydWN0dXJlKQogICAgICAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFsRGF0YSwg
c3RydWN0dXJlKQpAQCAtNTEsOCArNjAsMTQgQEAgcHJvdGVjdGVkOgogICAgIHsKICAgICAgICAg
QmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CiAgICAgfQorCisgICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8IEJh
c2U6OlN0cnVjdHVyZUZsYWdzOworCisgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0Nl
bGwqLCBTbG90VmlzaXRvciYpOworCisgICAgV3JpdGVCYXJyaWVyPEpTR2xvYmFsT2JqZWN0PiBt
X2dsb2JhbFZhcmlhYmxlczsKIH07CiAKLX0KK30gLy8gbmFtZXNwYWNlIEpTQwogCi0jZW5kaWYK
KyNlbmRpZiAvLyBKU0dsb2JhbFRoaXNfaApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTT2JqZWN0LmNwcAkocmV2aXNpb24gOTg1OTkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDEzICsyOSwx
NCBAQAogI2luY2x1ZGUgIkdldHRlclNldHRlci5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIK
ICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpTR2xvYmFsVGhpcy5oIgor
I2luY2x1ZGUgIkxvb2t1cC5oIgogI2luY2x1ZGUgIk5hdGl2ZUVycm9yQ29uc3RydWN0b3IuaCIK
KyNpbmNsdWRlICJOb2Rlcy5oIgogI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5oIgorI2luY2x1
ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQcm9wZXJ0eURlc2NyaXB0b3IuaCIKICNpbmNs
dWRlICJQcm9wZXJ0eU5hbWVBcnJheS5oIgotI2luY2x1ZGUgIkxvb2t1cC5oIgotI2luY2x1ZGUg
Ik5vZGVzLmgiCi0jaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPG1hdGguaD4KICNp
bmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogCkBAIC01NjQsNiArNTY1LDggQEAgSlNPYmplY3Qq
IEpTT2JqZWN0Ojp0b1RoaXNPYmplY3QoSlNDZWxsKgogCiBKU09iamVjdCogSlNPYmplY3Q6OnVu
d3JhcHBlZE9iamVjdCgpCiB7CisgICAgaWYgKGlzR2xvYmFsVGhpcygpKQorICAgICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8SlNHbG9iYWxUaGlzKj4odGhpcyktPnVud3JhcHBlZE9iamVjdCgpOwog
ICAgIHJldHVybiB0aGlzOwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU09iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0LmgJKHJldmlzaW9uIDk4NTk5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMTM2LDcgKzEzNiw3IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICBVU3RyaW5nIHRvU3RyaW5nKEV4ZWNTdGF0ZSopIGNvbnN0Owog
CiAgICAgICAgIHN0YXRpYyBKU09iamVjdCogdG9UaGlzT2JqZWN0KEpTQ2VsbCosIEV4ZWNTdGF0
ZSopOwotICAgICAgICB2aXJ0dWFsIEpTT2JqZWN0KiB1bndyYXBwZWRPYmplY3QoKTsKKyAgICAg
ICAgSlNPYmplY3QqIHVud3JhcHBlZE9iamVjdCgpOwogCiAgICAgICAgIGJvb2wgZ2V0UHJvcGVy
dHlTcGVjaWZpY1ZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU0NlbGwqJiBzcGVjaWZpY0Z1bmN0aW9uKSBjb25zdDsKIApAQCAtMTk1LDYgKzE5
NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNWYXJpYWJsZU9i
amVjdCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0Fj
dGl2YXRpb25PYmplY3QoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgICAgICB2aXJ0dWFs
IGJvb2wgaXNFcnJvckluc3RhbmNlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICAgICAg
Ym9vbCBpc0dsb2JhbFRoaXMoKSBjb25zdDsKIAogICAgICAgICB2b2lkIHNlYWwoSlNHbG9iYWxE
YXRhJik7CiAgICAgICAgIHZvaWQgZnJlZXplKEpTR2xvYmFsRGF0YSYpOwpAQCAtNzUxLDYgKzc1
MiwxMSBAQCBpbmxpbmUgSlNWYWx1ZSBKU09iamVjdDo6dG9QcmltaXRpdmUoRXhlCiAgICAgcmV0
dXJuIGRlZmF1bHRWYWx1ZShleGVjLCBwcmVmZXJyZWRUeXBlKTsKIH0KIAoraW5saW5lIGJvb2wg
SlNPYmplY3Q6OmlzR2xvYmFsVGhpcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN0cnVjdHVyZSgp
LT50eXBlSW5mbygpLnR5cGUoKSA9PSBHbG9iYWxUaGlzVHlwZTsKK30KKwogaW5saW5lIEpTVmFs
dWUgSlNWYWx1ZTo6Z2V0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lKSBjb25zdAogewogICAgIFByb3BlcnR5U2xvdCBzbG90KGFzVmFsdWUoKSk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaAkocmV2aXNpb24gOTg1OTkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaAkod29ya2luZyBjb3B5KQpA
QCAtNDIsNiArNDIsNyBAQCBlbnVtIEpTVHlwZSB7CiAgICAgRmluYWxPYmplY3RUeXBlICAgICA9
IDExLAogICAgIEpTRnVuY3Rpb25UeXBlICAgICAgPSAxMiwKICAgICBOdW1iZXJPYmplY3RUeXBl
ICAgID0gMTMsCisgICAgR2xvYmFsVGhpc1R5cGUgICAgICA9IDE0CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk4NjAzKQorKysgU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTEtMTAtMjcg
IFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgbmVlZCBmb3Ig
dmlydHVhbCBKU09iamVjdDo6dW53cmFwcGVkT2JqZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTAzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgdGhlIG1lbWJlciBjb250YWluaW5nIHRoZSBn
bG9iYWwgb2JqZWN0IGZyb20gdGhlIEpTRE9NV2luZG93U2hlbGwKKyAgICAgICAgZG93biB0byB0
aGUgSlNHbG9iYWxUaGlzIGNsYXNzLCBhbmQgdXBkYXRlIEpTRE9NV2luZG93U2hlbGwgdG8gZ28g
dGhyb3VnaAorICAgICAgICBhbiBpbmxpbmUgaGVscGVyICh3aGljaCBqdXN0IGNhc3RzKSB0byBn
ZXQgdGhlIHdpbmRvdy4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dTaGVsbDo6c2V0V2luZG93KToKKyAg
ICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93U2hlbGw6OmNsYXNzTmFtZSk6CisgICAgICAgIChX
ZWJDb3JlOjpKU0RPTVdpbmRvd1NoZWxsOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAo
V2ViQ29yZTo6SlNET01XaW5kb3dTaGVsbDo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93U2hlbGw6OnB1dCk6CisgICAgICAgIChXZWJDb3Jl
OjpKU0RPTVdpbmRvd1NoZWxsOjpwdXRXaXRoQXR0cmlidXRlcyk6CisgICAgICAgIChXZWJDb3Jl
OjpKU0RPTVdpbmRvd1NoZWxsOjpkZWZpbmVPd25Qcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3Jl
OjpKU0RPTVdpbmRvd1NoZWxsOjpkZWxldGVQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpK
U0RPTVdpbmRvd1NoZWxsOjpnZXRQcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkpT
RE9NV2luZG93U2hlbGw6OmdldE93blByb3BlcnR5TmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6
SlNET01XaW5kb3dTaGVsbDo6ZGVmaW5lR2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9N
V2luZG93U2hlbGw6OmRlZmluZVNldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRv
d1NoZWxsOjpsb29rdXBHZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dTaGVs
bDo6bG9va3VwU2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93U2hlbGw6Omlt
cGwpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkpTRE9NV2luZG93U2hlbGw6OndpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpK
U0RPTVdpbmRvd1NoZWxsOjpzZXRXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5k
b3dTaGVsbDo6Y3JlYXRlU3RydWN0dXJlKToKKwogMjAxMS0xMC0yNyAgTWlobmVhIE92aWRlbmll
ICA8bWlobmVhQGFkb2JlLmNvbT4KIAogICAgICAgICBbQ1NTUmVnaW9uc11GbGFnIHJlZ2lvbnMg
d2l0aCBjdXN0b20gc3R5bGluZwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01XaW5kb3dTaGVsbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XaW5kb3dTaGVsbC5jcHAJKHJldmlzaW9uIDk4NTk5KQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1
LDcgKzY1LDcgQEAgdm9pZCBKU0RPTVdpbmRvd1NoZWxsOjpzZXRXaW5kb3coUGFzc1JlZgogewog
ICAgIC8vIFJlcGxhY2luZyBKU0RPTVdpbmRvdyB2aWEgdGVsbGluZyBKU0RPTVdpbmRvd1NoZWxs
IHRvIHVzZSB0aGUgc2FtZSBET01XaW5kb3cgaXQgYWxyZWFkeSB1c2VzIG1ha2VzIG5vIHNlbnNl
LAogICAgIC8vIHNvIHdlJ2QgYmV0dGVyIG5ldmVyIHRyeSB0by4KLSAgICBBU1NFUlQoIW1fd2lu
ZG93IHx8IGRvbVdpbmRvdy5nZXQoKSAhPSBtX3dpbmRvdy0+aW1wbCgpKTsKKyAgICBBU1NFUlQo
IXdpbmRvdygpIHx8IGRvbVdpbmRvdy5nZXQoKSAhPSB3aW5kb3coKS0+aW1wbCgpKTsKICAgICAv
LyBFeHBsaWNpdGx5IHByb3RlY3QgdGhlIGdsb2JhbCBvYmplY3QncyBwcm90b3R5cGUgc28gaXQg
aXNuJ3QgY29sbGVjdGVkCiAgICAgLy8gd2hlbiB3ZSBhbGxvY2F0ZSB0aGUgZ2xvYmFsIG9iamVj
dC4gKE9uY2UgdGhlIGdsb2JhbCBvYmplY3QgaXMgZnVsbHkKICAgICAvLyBjb25zdHJ1Y3RlZCwg
aXQgY2FuIG1hcmsgaXRzIG93biBwcm90b3R5cGUuKQpAQCAtODQsODkgKzg0LDc0IEBAIHZvaWQg
SlNET01XaW5kb3dTaGVsbDo6c2V0V2luZG93KFBhc3NSZWYKIC8vIEpTT2JqZWN0IG1ldGhvZHMK
IC8vIC0tLS0KIAotdm9pZCBKU0RPTVdpbmRvd1NoZWxsOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCog
Y2VsbCwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgSlNET01XaW5kb3dTaGVsbCogdGhp
c09iamVjdCA9IHN0YXRpY19jYXN0PEpTRE9NV2luZG93U2hlbGwqPihjZWxsKTsKLSAgICBBU1NF
UlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsICZzX2luZm8pOwotICAgIENPTVBJTEVf
QVNTRVJUKFN0cnVjdHVyZUZsYWdzICYgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiwgT3ZlcnJpZGVz
VmlzaXRDaGlsZHJlbldpdGhvdXRTZXR0aW5nRmxhZyk7Ci0gICAgQVNTRVJUKHRoaXNPYmplY3Qt
PnN0cnVjdHVyZSgpLT50eXBlSW5mbygpLm92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4oKSk7Ci0gICAg
QmFzZTo6dmlzaXRDaGlsZHJlbih0aGlzT2JqZWN0LCB2aXNpdG9yKTsKLSAgICBpZiAodGhpc09i
amVjdC0+bV93aW5kb3cpCi0gICAgICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX3dp
bmRvdyk7Ci19Ci0KIFVTdHJpbmcgSlNET01XaW5kb3dTaGVsbDo6Y2xhc3NOYW1lKCkgY29uc3QK
IHsKLSAgICByZXR1cm4gbV93aW5kb3ctPmNsYXNzTmFtZSgpOworICAgIHJldHVybiB3aW5kb3co
KS0+Y2xhc3NOYW1lKCk7CiB9CiAKIGJvb2wgSlNET01XaW5kb3dTaGVsbDo6Z2V0T3duUHJvcGVy
dHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBKU0RPTVdpbmRvd1NoZWxs
KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNET01XaW5kb3dTaGVsbCo+KGNlbGwpOwotICAg
IHJldHVybiB0aGlzT2JqZWN0LT5tX3dpbmRvdy0+bWV0aG9kVGFibGUoKS0+Z2V0T3duUHJvcGVy
dHlTbG90KHRoaXNPYmplY3QtPm1fd2luZG93LmdldCgpLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpOworICAgIHJldHVybiB0aGlzT2JqZWN0LT53aW5kb3coKS0+bWV0aG9kVGFibGUoKS0+Z2V0
T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QtPndpbmRvdygpLCBleGVjLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpOwogfQogCiBib29sIEpTRE9NV2luZG93U2hlbGw6OmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQogewotICAgIHJldHVybiBtX3dpbmRvdy0+Z2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7Cisg
ICAgcmV0dXJuIHdpbmRvdygpLT5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJvcGVy
dHlOYW1lLCBkZXNjcmlwdG9yKTsKIH0KIAogdm9pZCBKU0RPTVdpbmRvd1NoZWxsOjpwdXQoSlND
ZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIEpTRE9NV2lu
ZG93U2hlbGwqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0RPTVdpbmRvd1NoZWxsKj4oY2Vs
bCk7Ci0gICAgdGhpc09iamVjdC0+bV93aW5kb3ctPm1ldGhvZFRhYmxlKCktPnB1dCh0aGlzT2Jq
ZWN0LT5tX3dpbmRvdy5nZXQoKSwgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7Cisg
ICAgdGhpc09iamVjdC0+d2luZG93KCktPm1ldGhvZFRhYmxlKCktPnB1dCh0aGlzT2JqZWN0LT53
aW5kb3coKSwgZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CiAKIHZvaWQgSlNE
T01XaW5kb3dTaGVsbDo6cHV0V2l0aEF0dHJpYnV0ZXMoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIHVuc2lnbmVkIGF0dHJpYnV0
ZXMpCiB7Ci0gICAgbV93aW5kb3ctPnB1dFdpdGhBdHRyaWJ1dGVzKGV4ZWMsIHByb3BlcnR5TmFt
ZSwgdmFsdWUsIGF0dHJpYnV0ZXMpOworICAgIHdpbmRvdygpLT5wdXRXaXRoQXR0cmlidXRlcyhl
eGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBhdHRyaWJ1dGVzKTsKIH0KIAogYm9vbCBKU0RPTVdp
bmRvd1NoZWxsOjpkZWZpbmVPd25Qcm9wZXJ0eShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJiBk
ZXNjcmlwdG9yLCBib29sIHNob3VsZFRocm93KQogewotICAgIHJldHVybiBtX3dpbmRvdy0+ZGVm
aW5lT3duUHJvcGVydHkoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yLCBzaG91bGRUaHJv
dyk7CisgICAgcmV0dXJuIHdpbmRvdygpLT5kZWZpbmVPd25Qcm9wZXJ0eShleGVjLCBwcm9wZXJ0
eU5hbWUsIGRlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKIH0KIAogYm9vbCBKU0RPTVdpbmRvd1No
ZWxsOjpkZWxldGVQcm9wZXJ0eShKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQogewogICAgIEpTRE9NV2luZG93U2hlbGwqIHRoaXNP
YmplY3QgPSBzdGF0aWNfY2FzdDxKU0RPTVdpbmRvd1NoZWxsKj4oY2VsbCk7Ci0gICAgcmV0dXJu
IHRoaXNPYmplY3QtPm1fd2luZG93LT5tZXRob2RUYWJsZSgpLT5kZWxldGVQcm9wZXJ0eSh0aGlz
T2JqZWN0LT5tX3dpbmRvdy5nZXQoKSwgZXhlYywgcHJvcGVydHlOYW1lKTsKKyAgICByZXR1cm4g
dGhpc09iamVjdC0+d2luZG93KCktPm1ldGhvZFRhYmxlKCktPmRlbGV0ZVByb3BlcnR5KHRoaXNP
YmplY3QtPndpbmRvdygpLCBleGVjLCBwcm9wZXJ0eU5hbWUpOwogfQogCiB2b2lkIEpTRE9NV2lu
ZG93U2hlbGw6OmdldFByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVB
cnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7Ci0gICAgbV93aW5k
b3ctPmdldFByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywgbW9kZSk7CisgICAgd2lu
ZG93KCktPmdldFByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAK
IHZvaWQgSlNET01XaW5kb3dTaGVsbDo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4
ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9k
ZSkKIHsKLSAgICBtX3dpbmRvdy0+Z2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5h
bWVzLCBtb2RlKTsKKyAgICB3aW5kb3coKS0+Z2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9w
ZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAogdm9pZCBKU0RPTVdpbmRvd1NoZWxsOjpkZWZpbmVHZXR0
ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTT2Jq
ZWN0KiBnZXR0ZXJGdW5jdGlvbiwgdW5zaWduZWQgYXR0cmlidXRlcykKIHsKLSAgICBtX3dpbmRv
dy0+ZGVmaW5lR2V0dGVyKGV4ZWMsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3Rpb24sIGF0dHJp
YnV0ZXMpOworICAgIHdpbmRvdygpLT5kZWZpbmVHZXR0ZXIoZXhlYywgcHJvcGVydHlOYW1lLCBn
ZXR0ZXJGdW5jdGlvbiwgYXR0cmlidXRlcyk7CiB9CiAKIHZvaWQgSlNET01XaW5kb3dTaGVsbDo6
ZGVmaW5lU2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBKU09iamVjdCogc2V0dGVyRnVuY3Rpb24sIHVuc2lnbmVkIGF0dHJpYnV0ZXMpCiB7Ci0g
ICAgbV93aW5kb3ctPmRlZmluZVNldHRlcihleGVjLCBwcm9wZXJ0eU5hbWUsIHNldHRlckZ1bmN0
aW9uLCBhdHRyaWJ1dGVzKTsKKyAgICB3aW5kb3coKS0+ZGVmaW5lU2V0dGVyKGV4ZWMsIHByb3Bl
cnR5TmFtZSwgc2V0dGVyRnVuY3Rpb24sIGF0dHJpYnV0ZXMpOwogfQogCiBKU1ZhbHVlIEpTRE9N
V2luZG93U2hlbGw6Omxvb2t1cEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSkKIHsKLSAgICByZXR1cm4gbV93aW5kb3ctPmxvb2t1cEdldHRlcihl
eGVjLCBwcm9wZXJ0eU5hbWUpOworICAgIHJldHVybiB3aW5kb3coKS0+bG9va3VwR2V0dGVyKGV4
ZWMsIHByb3BlcnR5TmFtZSk7CiB9CiAKIEpTVmFsdWUgSlNET01XaW5kb3dTaGVsbDo6bG9va3Vw
U2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQog
ewotICAgIHJldHVybiBtX3dpbmRvdy0+bG9va3VwU2V0dGVyKGV4ZWMsIHByb3BlcnR5TmFtZSk7
CisgICAgcmV0dXJuIHdpbmRvdygpLT5sb29rdXBTZXR0ZXIoZXhlYywgcHJvcGVydHlOYW1lKTsK
IH0KIAotSlNPYmplY3QqIEpTRE9NV2luZG93U2hlbGw6OnVud3JhcHBlZE9iamVjdCgpCi17Ci0g
ICAgcmV0dXJuIG1fd2luZG93LmdldCgpOwotfQogCiAvLyAtLS0tCiAvLyBKU0RPTVdpbmRvdyBt
ZXRob2RzCkBAIC0xNzQsNyArMTU5LDcgQEAgSlNPYmplY3QqIEpTRE9NV2luZG93U2hlbGw6OnVu
d3JhcHBlZE9iagogCiBET01XaW5kb3cqIEpTRE9NV2luZG93U2hlbGw6OmltcGwoKSBjb25zdAog
ewotICAgIHJldHVybiBtX3dpbmRvdy0+aW1wbCgpOworICAgIHJldHVybiB3aW5kb3coKS0+aW1w
bCgpOwogfQogCiB2b2lkKiBKU0RPTVdpbmRvd1NoZWxsOjpvcGVyYXRvciBuZXcoc2l6ZV90IHNp
emUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVs
bC5oCShyZXZpc2lvbiA5ODU5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V2luZG93U2hlbGwuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsMTEgKzQzLDExIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgSlNET01XaW5kb3dTaGVsbChQYXNzUmVmUHRyPERPTVdpbmRv
dz4sIEpTQzo6U3RydWN0dXJlKiwgRE9NV3JhcHBlcldvcmxkKik7CiAgICAgICAgIHZpcnR1YWwg
fkpTRE9NV2luZG93U2hlbGwoKTsKIAotICAgICAgICBKU0RPTVdpbmRvdyogd2luZG93KCkgY29u
c3QgeyByZXR1cm4gbV93aW5kb3cuZ2V0KCk7IH0KKyAgICAgICAgSlNET01XaW5kb3cqIHdpbmRv
dygpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEpTRE9NV2luZG93Kj4obV9nbG9iYWxWYXJp
YWJsZXMuZ2V0KCkpOyB9CiAgICAgICAgIHZvaWQgc2V0V2luZG93KEpTQzo6SlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBKU0RPTVdpbmRvdyogd2luZG93KQogICAgICAgICB7CiAgICAgICAgICAg
ICBBU1NFUlRfQVJHKHdpbmRvdywgd2luZG93KTsKLSAgICAgICAgICAgIG1fd2luZG93LnNldChn
bG9iYWxEYXRhLCB0aGlzLCB3aW5kb3cpOworICAgICAgICAgICAgbV9nbG9iYWxWYXJpYWJsZXMu
c2V0KGdsb2JhbERhdGEsIHRoaXMsIHdpbmRvdyk7CiAgICAgICAgICAgICBzZXRQcm90b3R5cGUo
Z2xvYmFsRGF0YSwgd2luZG93LT5wcm90b3R5cGUoKSk7CiAgICAgICAgIH0KICAgICAgICAgdm9p
ZCBzZXRXaW5kb3coUGFzc1JlZlB0cjxET01XaW5kb3c+KTsKQEAgLTY1LDcgKzY1LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRl
U3RydWN0dXJlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTVmFsdWUgcHJv
dG90eXBlKSAKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpj
cmVhdGUoZ2xvYmFsRGF0YSwgMCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0
VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsgCisgICAgICAgICAgICByZXR1cm4gSlND
OjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCAwLCBwcm90b3R5cGUsIEpTQzo6VHlwZUlu
Zm8oSlNDOjpHbG9iYWxUaGlzVHlwZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsgCiAgICAg
ICAgIH0KIAogICAgICAgICBET01XcmFwcGVyV29ybGQqIHdvcmxkKCkgeyByZXR1cm4gbV93b3Js
ZC5nZXQoKTsgfQpAQCAtNzYsOSArNzYsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBw
cml2YXRlOgogICAgICAgICB2b2lkKiBvcGVyYXRvciBuZXcoc2l6ZV90KTsKLSAgICAgICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpPdmVycmlkZXNHZXRPd25Q
cm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBKU0M6Ok92ZXJyaWRl
c0dldFByb3BlcnR5TmFtZXMgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKKyAgICAgICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9w
ZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBCYXNlOjpTdHJ1Y3R1
cmVGbGFnczsKIAotICAgICAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQzo6SlNDZWxs
KiwgSlNDOjpTbG90VmlzaXRvciYpOwogICAgICAgICB2aXJ0dWFsIEpTQzo6VVN0cmluZyBjbGFz
c05hbWUoKSBjb25zdDsKICAgICAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpT
Qzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93
blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpOwpAQCAtOTIsOSArOTEs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWZpbmVPd25Q
cm9wZXJ0eShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlO
YW1lLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYsIGJvb2wgc2hvdWxkVGhyb3cpOwogICAgICAg
ICB2aXJ0dWFsIEpTQzo6SlNWYWx1ZSBsb29rdXBHZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCBjb25z
dCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIHZpcnR1YWwgSlNDOjpK
U1ZhbHVlIGxvb2t1cFNldHRlcihKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lKTsKLSAgICAgICAgdmlydHVhbCBKU0M6OkpTT2JqZWN0KiB1bndyYXBw
ZWRPYmplY3QoKTsKIAotICAgICAgICBKU0M6OldyaXRlQmFycmllcjxKU0RPTVdpbmRvdz4gbV93
aW5kb3c7CiAgICAgICAgIFJlZlB0cjxET01XcmFwcGVyV29ybGQ+IG1fd29ybGQ7CiAgICAgfTsK
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112996</attachid>
            <date>2011-10-30 12:12:03 -0700</date>
            <delta_ts>2011-10-30 13:17:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71034-20111030121202.patch</filename>
            <type>text/plain</type>
            <size>27282</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTg4MjcpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzkgQEAK
KzIwMTEtMTAtMzAgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1v
dmUgbmVlZCBmb3IgdmlydHVhbCBKU09iamVjdDo6dW53cmFwcGVkT2JqZWN0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTAzNAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZXhw
OgorICAgICAgICBVcGRhdGUgZXhwb3J0cy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogSmF2YVNjcmlwdENvcmUu
ZXhwOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLmd5cGk6CisgICAgICAgICogSmF2YVNjcmlw
dENvcmUucHJvOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2o6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgQWRkIEpTR2xvYmFsVGhpcy5jcHAuCisKKyAg
ICAgICAgKiBydW50aW1lL0pTR2xvYmFsVGhpcy5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpK
U0dsb2JhbFRoaXM6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAoSlNDOjpKU0dsb2JhbFRoaXM6
OnVud3JhcHBlZE9iamVjdCk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbFRoaXMuaDoKKyAg
ICAgICAgKEpTQzo6SlNHbG9iYWxUaGlzOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICBNb3Zl
IHVuZGVybHlpbmcgb2JqZWN0IGZyb20gSlNET01XaW5kb3dTaGVsbCBkb3duIHRvIEpTR2xvYmFs
VGhpcworICAgICAgICBhbmQgY29ycmVzcG9uZGluZyB2aXNpdENoaWxkcmVuIG1ldGhvZC4KKwor
ICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6
dW53cmFwcGVkT2JqZWN0KToKKyAgICAgICAgQ2hhbmdlIHVud3JhcHBlZE9iamVjdCBmcm9tIHZp
cnR1YWwsIHRvIGp1c3QgbmVlZGluZyBhbiBpZiBjaGVjay4KKworICAgICAgICAqIHJ1bnRpbWUv
SlNPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmlzR2xvYmFsVGhpcyk6CisgICAg
ICAgICogcnVudGltZS9KU1R5cGUuaDoKKyAgICAgICAgQWRkIGlzR2xvYmFsVGhpcyBwcmVkaWNh
dGUgYW5kIHR5cGUuCisKIDIwMTEtMTAtMjggIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJn
QGFwcGxlLmNvbT4KIAogICAgICAgICBEZS12aXJ0dWFsaXplIGlzR2xvYmFsT2JqZWN0LCBpc1Zh
cmlhYmxlT2JqZWN0LCBpc0FjdGl2YXRpb25PYmplY3QsIGFuZCBpc0Vycm9ySW5zdGFuY2UgaW4g
SlNPYmplY3QKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9u
IDk4ODI3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0xMjgsNiArMTI4LDcgQEAgU0VUKEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAg
ICBydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAKICAgICBydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNw
cAogICAgIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCisgICAgcnVudGltZS9K
U0dsb2JhbFRoaXMuY3BwCiAgICAgcnVudGltZS9KU0xvY2suY3BwCiAgICAgcnVudGltZS9KU05v
dEFuT2JqZWN0LmNwcAogICAgIHJ1bnRpbWUvSlNPYmplY3QuY3BwCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24gOTg4MjcpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAt
MzczLDYgKzM3Myw3IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcCBcCiAJU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuaCBcCiAJU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBcCisJU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxUaGlzLmNwcCBcCiAJU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxUaGlzLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTTG9jay5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9j
ay5oIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAkocmV2
aXNpb24gOTg4MjcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhw
CSh3b3JraW5nIGNvcHkpCkBAIC0xNDQsNiArMTQ0LDggQEAgX19aTjNKU0MxMkpTR2xvYmFsRGF0
YTIyY2xlYXJCdWlsdGluU3RydQogX19aTjNKU0MxMkpTR2xvYmFsRGF0YTIzcmVsZWFzZUV4ZWN1
dGFibGVNZW1vcnlFdgogX19aTjNKU0MxMkpTR2xvYmFsRGF0YTZjcmVhdGVFTlNfMTVUaHJlYWRT
dGFja1R5cGVFTlNfOEhlYXBTaXplRQogX19aTjNKU0MxMkpTR2xvYmFsRGF0YUQxRXYKK19fWk4z
SlNDMTJKU0dsb2JhbFRoaXMxM3Zpc2l0Q2hpbGRyZW5FUE5TXzZKU0NlbGxFUk5TXzExU2xvdFZp
c2l0b3JFCitfX1pOM0pTQzEySlNHbG9iYWxUaGlzNnNfaW5mb0UKIF9fWk4zSlNDMTJSZWdFeHBP
YmplY3QxNGZpbmlzaENyZWF0aW9uRVBOU18xNEpTR2xvYmFsT2JqZWN0RQogX19aTjNKU0MxMlJl
Z0V4cE9iamVjdDZzX2luZm9FCiBfX1pOM0pTQzEyUmVnRXhwT2JqZWN0QzFFUE5TXzE0SlNHbG9i
YWxPYmplY3RFUE5TXzlTdHJ1Y3R1cmVFUE5TXzZSZWdFeHBFCkBAIC0zMDgsNyArMzEwLDYgQEAg
X19aTjNKU0M4SlNPYmplY3QxMmxvb2t1cFNldHRlckVQTlNfOUV4ZQogX19aTjNKU0M4SlNPYmpl
Y3QxMnRvVGhpc09iamVjdEVQTlNfNkpTQ2VsbEVQTlNfOUV4ZWNTdGF0ZUUKIF9fWk4zSlNDOEpT
T2JqZWN0MTN2aXNpdENoaWxkcmVuRVBOU182SlNDZWxsRVJOU18xMVNsb3RWaXNpdG9yRQogX19a
TjNKU0M4SlNPYmplY3QxNGRlbGV0ZVByb3BlcnR5RVBOU182SlNDZWxsRVBOU185RXhlY1N0YXRl
RVJLTlNfMTBJZGVudGlmaWVyRQotX19aTjNKU0M4SlNPYmplY3QxNXVud3JhcHBlZE9iamVjdEV2
CiBfX1pOM0pTQzhKU09iamVjdDE2Z2V0UHJvcGVydHlOYW1lc0VQTlNfOUV4ZWNTdGF0ZUVSTlNf
MTdQcm9wZXJ0eU5hbWVBcnJheUVOU18xNUVudW1lcmF0aW9uTW9kZUUKIF9fWk4zSlNDOEpTT2Jq
ZWN0MTdkZWZpbmVPd25Qcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVS
TlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFYgogX19aTjNKU0M4SlNPYmplY3QxN3ByZXZlbnRFeHRl
bnNpb25zRVJOU18xMkpTR2xvYmFsRGF0YUUKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5neXBpCShyZXZpc2lvbiA5ODgyNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC04Nyw2ICs4Nyw3IEBA
CiAgICAgICAgICAgICAncnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaCcsCiAgICAgICAgICAgICAn
cnVudGltZS9KU0dsb2JhbERhdGEuaCcsCiAgICAgICAgICAgICAncnVudGltZS9KU0dsb2JhbE9i
amVjdC5oJywKKyAgICAgICAgICAgICdydW50aW1lL0pTR2xvYmFsVGhpcy5oJywKICAgICAgICAg
ICAgICdydW50aW1lL0pTTG9jay5oJywKICAgICAgICAgICAgICdydW50aW1lL0pTT2JqZWN0Lmgn
LAogICAgICAgICAgICAgJ3J1bnRpbWUvSlNTdHJpbmcuaCcsCkBAIC00ODQsNiArNDg1LDcgQEAK
ICAgICAgICAgICAgICdydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCcsCiAgICAgICAgICAgICAn
cnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAnLAogICAgICAgICAgICAgJ3J1bnRp
bWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuaCcsCisgICAgICAgICAgICAncnVudGltZS9KU0ds
b2JhbFRoaXMuY3BwJywKICAgICAgICAgICAgICdydW50aW1lL0pTTG9jay5jcHAnLAogICAgICAg
ICAgICAgJ3J1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAnLAogICAgICAgICAgICAgJ3J1bnRpbWUv
SlNOb3RBbk9iamVjdC5oJywKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnBybwkocmV2aXNpb24gOTg4MjcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0xNTksNiArMTU5LDcgQEAgU09VUkNFUyAr
PSBcCiAgICAgcnVudGltZS9KU0dsb2JhbERhdGEuY3BwIFwKICAgICBydW50aW1lL0pTR2xvYmFs
T2JqZWN0LmNwcCBcCiAgICAgcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAgXAor
ICAgIHJ1bnRpbWUvSlNHbG9iYWxUaGlzLmNwcCBcCiAgICAgcnVudGltZS9KU0xvY2suY3BwIFwK
ICAgICBydW50aW1lL0pTTm90QW5PYmplY3QuY3BwIFwKICAgICBydW50aW1lL0pTT2JqZWN0LmNw
cCBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLmRlZgkocmV2aXNpb24gOTg4MjcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgkod29y
a2luZyBjb3B5KQpAQCAtMzUzLDcgKzM1Myw2IEBAIEVYUE9SVFMKICAgICA/dW5sb2NrQE11dGV4
QFdURkBAUUFFWFhaCiAgICAgP3VubG9ja0F0b21pY2FsbHlJbml0aWFsaXplZFN0YXRpY011dGV4
QFdURkBAWUFYWFoKICAgICA/dW5wcm90ZWN0QEhlYXBASlNDQEBRQUVfTlZKU1ZhbHVlQDJAQFoK
LSAgICA/dW53cmFwcGVkT2JqZWN0QEpTT2JqZWN0QEpTQ0BAVUFFUEFWMTJAWFoKICAgICA/dXRm
OEBVU3RyaW5nQEpTQ0BAUUJFP0FWQ1N0cmluZ0BXVEZAQF9OQFoKICAgICA/dmFsaWRhdGVATWFy
a1N0YWNrQEpTQ0BAS0FYUEFWSlNDZWxsQDJAQFoKICAgICA/dmlzaXRDaGlsZHJlbkBKU0dsb2Jh
bE9iamVjdEBKU0NAQFNBWFBBVkpTQ2VsbEAyQEFBVlNsb3RWaXNpdG9yQDJAQFoKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNw
cm9qCShyZXZpc2lvbiA5ODgyNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCSh3b3JraW5n
IGNvcHkpCkBAIC04MzgsNiArODM4LDE0IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUK
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHJ1bnRpbWVcSlNHbG9iYWxUaGlzLmNwcCIKKwkJCQk+
CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccnVudGltZVxK
U0dsb2JhbFRoaXMuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZl
UGF0aD0iLi5cLi5ccnVudGltZVxKU0xvY2suY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA5ODgyNykKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3
b3JraW5nIGNvcHkpCkBAIC02MTMsNiArNjEzLDcgQEAKIAkJQkMzMDQ2MDcwRTFGNDk3RjAwMzIz
MkNGIC8qIEVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzMwNDYwNjBFMUY0OTdGMDAzMjMyQ0YgLyogRXJyb3IuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzMxMzU2NDBGMzAyRkEzMDAzREZE
M0EgLyogRGVidWdnZXJBY3RpdmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzMxMzU2MjBGMzAyRkEzMDAzREZEM0EgLyogRGVidWdnZXJBY3Rp
dmF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQkMzMTM1NjUwRjMwMkZBMzAwM0RGRDNBIC8qIERlYnVnZ2VyQWN0aXZhdGlvbi5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzMxMzU2MzBGMzAy
RkEzMDAzREZEM0EgLyogRGVidWdnZXJBY3RpdmF0aW9uLmNwcCAqLzsgfTsKKwkJQkMzQzRDQTAx
NDU4RjU0NTAwMjVGQjYyIC8qIEpTR2xvYmFsVGhpcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzNDNEM5RjE0NThGNTQ1MDAyNUZCNjIgLyogSlNH
bG9iYWxUaGlzLmNwcCAqLzsgfTsKIAkJQkM1RjdCQkUxMTgyM0I1OTAwNTJDMDJDIC8qIEF0b21p
Y3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNUY3
QkJCMTE4MjNCNTkwMDUyQzAyQyAvKiBBdG9taWNzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM1RjdCQkYxMTgyM0I1OTAwNTJDMDJDIC8qIFRo
cmVhZGluZ1ByaW1pdGl2ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDNUY3QkJDMTE4MjNCNTkwMDUyQzAyQyAvKiBUaHJlYWRpbmdQcmltaXRpdmVz
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM1
RjdCQzAxMTgyM0I1OTAwNTJDMDJDIC8qIFRocmVhZFNhZmVSZWZDb3VudGVkLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzVGN0JCRDExODIzQjU5MDA1
MkMwMkMgLyogVGhyZWFkU2FmZVJlZkNvdW50ZWQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTMzOSw2ICsxMzQwLDcgQEAKIAkJQkMzMTM1NjMw
RjMwMkZBMzAwM0RGRDNBIC8qIERlYnVnZ2VyQWN0aXZhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZWJ1Z2dlckFjdGl2YXRpb24uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCQzMzN0JERTBFMUFGMEI4MDA3NjkxOEEgLyogR2V0dGVyU2V0
dGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdldHRlclNldHRlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzMzN0JFQTBFMUIwMENCMDA3NjkxOEEgLyog
RXJyb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXJyb3IuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzNDNEM5RjE0NThGNTQ1MDAyNUZCNjIg
LyogSlNHbG9iYWxUaGlzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTR2xvYmFsVGhpcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNUY3QkJC
MTE4MjNCNTkwMDUyQzAyQyAvKiBBdG9taWNzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEF0b21pY3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1RjdCQkMx
MTgyM0I1OTAwNTJDMDJDIC8qIFRocmVhZGluZ1ByaW1pdGl2ZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVGhyZWFkaW5nUHJpbWl0aXZlcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlCQzVGN0JCRDExODIzQjU5MDA1MkMwMkMgLyogVGhyZWFkU2FmZVJlZkNv
dW50ZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGhyZWFkU2FmZVJlZkNv
dW50ZWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxMjksNiArMjEzMSw3IEBA
CiAJCQkJQkM3NTZGQzYwRTIwMzFCMjAwREU3RDEyIC8qIEpTR2xvYmFsT2JqZWN0RnVuY3Rpb25z
LmNwcCAqLywKIAkJCQlCQzc1NkZDNzBFMjAzMUIyMDBERTdEMTIgLyogSlNHbG9iYWxPYmplY3RG
dW5jdGlvbnMuaCAqLywKIAkJCQk4NjA0RjUwMzE0M0NFMUMxMDBCMjk1RjUgLyogSlNHbG9iYWxU
aGlzLmggKi8sCisJCQkJQkMzQzRDOUYxNDU4RjU0NTAwMjVGQjYyIC8qIEpTR2xvYmFsVGhpcy5j
cHAgKi8sCiAJCQkJNjVFQTRDOTkwOTJBRjlFMjAwOTNEODAwIC8qIEpTTG9jay5jcHAgKi8sCiAJ
CQkJNjVFQTRDOUEwOTJBRjlFMjAwOTNEODAwIC8qIEpTTG9jay5oICovLAogCQkJCUE3MjcwMDc4
MERBQzYwNTYwMEU1NDhENyAvKiBKU05vdEFuT2JqZWN0LmNwcCAqLywKQEAgLTM0MTYsNiArMzQx
OSw3IEBACiAJCQkJODY4ODBGNEQxNDM1M0IyMTAwQjA4RDQyIC8qIERGR1NwZWN1bGF0aXZlSklU
NjQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFMjI4RUUxNDM2QUIyQzAwMTk2QzQ4IC8qIEhl
dXJpc3RpY3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY2MjAxNzkxNDNGQ0Q0ODAwNjhCNzdD
IC8qIERGR0Fic3RyYWN0U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkMzQzRDQTAxNDU4
RjU0NTAwMjVGQjYyIC8qIEpTR2xvYmFsVGhpcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsVGhpcy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxUaGlzLmNwcAkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsVGhpcy5jcHAJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiSlNHbG9iYWxUaGlzLmgiCisKKyNpbmNsdWRlICJKU0dsb2JhbE9i
amVjdC5oIgorCituYW1lc3BhY2UgSlNDIHsKKworQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChK
U0dsb2JhbFRoaXMpOworCitjb25zdCBDbGFzc0luZm8gSlNHbG9iYWxUaGlzOjpzX2luZm8gPSB7
ICJKU0dsb2JhbFRoaXMiLCAmQmFzZTo6c19pbmZvLCAwLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxF
KEpTR2xvYmFsVGhpcykgfTsKKwordm9pZCBKU0dsb2JhbFRoaXM6OnZpc2l0Q2hpbGRyZW4oSlND
ZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKK3sKKyAgICBKU0dsb2JhbFRoaXMqIHRo
aXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0dsb2JhbFRoaXMqPihjZWxsKTsKKyAgICBBU1NFUlRf
R0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsICZzX2luZm8pOworCisgICAgQ09NUElMRV9B
U1NFUlQoU3RydWN0dXJlRmxhZ3MgJiBPdmVycmlkZXNWaXNpdENoaWxkcmVuLCBPdmVycmlkZXNW
aXNpdENoaWxkcmVuV2l0aG91dFNldHRpbmdGbGFnKTsKKyAgICBBU1NFUlQodGhpc09iamVjdC0+
c3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3ZlcnJpZGVzVmlzaXRDaGlsZHJlbigpKTsKKworICAg
IEJhc2U6OnZpc2l0Q2hpbGRyZW4odGhpc09iamVjdCwgdmlzaXRvcik7CisgICAgaWYgKHRoaXNP
YmplY3QtPm1fZ2xvYmFsVmFyaWFibGVzKQorICAgICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09i
amVjdC0+bV9nbG9iYWxWYXJpYWJsZXMpOworfQorCitKU09iamVjdCogSlNHbG9iYWxUaGlzOjp1
bndyYXBwZWRPYmplY3QoKQoreworICAgIHJldHVybiBtX2dsb2JhbFZhcmlhYmxlcy5nZXQoKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbFRoaXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbFRoaXMuaAkocmV2aXNpb24gOTg4MjcpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0dsb2JhbFRoaXMuaAkod29ya2luZyBjb3B5KQpAQCAtNDEsNiAr
NDEsMTUgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gZ2xvYmFsVGhpczsKICAgICB9CiAKKyAg
ICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkgCisgICAgeworICAgICAgICByZXR1cm4gU3RydWN0dXJl
OjpjcmVhdGUoZ2xvYmFsRGF0YSwgMCwgcHJvdG90eXBlLCBUeXBlSW5mbyhHbG9iYWxUaGlzVHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCAmc19pbmZvKTsgCisgICAgfQorCisgICAgc3RhdGljIGNvbnN0
IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKKworICAgIEpTT2JqZWN0KiB1bndyYXBwZWRPYmplY3Qo
KTsKKwogcHJvdGVjdGVkOgogICAgIEpTR2xvYmFsVGhpcyhKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgICAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xv
YmFsRGF0YSwgc3RydWN0dXJlKQpAQCAtNTEsOCArNjAsMTQgQEAgcHJvdGVjdGVkOgogICAgIHsK
ICAgICAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CiAgICAgfQorCisgICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzVmlzaXRDaGls
ZHJlbiB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOworCisgICAgc3RhdGljIHZvaWQgdmlzaXRDaGls
ZHJlbihKU0NlbGwqLCBTbG90VmlzaXRvciYpOworCisgICAgV3JpdGVCYXJyaWVyPEpTR2xvYmFs
T2JqZWN0PiBtX2dsb2JhbFZhcmlhYmxlczsKIH07CiAKLX0KK30gLy8gbmFtZXNwYWNlIEpTQwog
Ci0jZW5kaWYKKyNlbmRpZiAvLyBKU0dsb2JhbFRoaXNfaApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAkocmV2aXNpb24gOTg4MjcpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5
LDEzICsyOSwxNCBAQAogI2luY2x1ZGUgIkdldHRlclNldHRlci5oIgogI2luY2x1ZGUgIkpTRnVu
Y3Rpb24uaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpTR2xvYmFs
VGhpcy5oIgorI2luY2x1ZGUgIkxvb2t1cC5oIgogI2luY2x1ZGUgIk5hdGl2ZUVycm9yQ29uc3Ry
dWN0b3IuaCIKKyNpbmNsdWRlICJOb2Rlcy5oIgogI2luY2x1ZGUgIk9iamVjdFByb3RvdHlwZS5o
IgorI2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJQcm9wZXJ0eURlc2NyaXB0b3Iu
aCIKICNpbmNsdWRlICJQcm9wZXJ0eU5hbWVBcnJheS5oIgotI2luY2x1ZGUgIkxvb2t1cC5oIgot
I2luY2x1ZGUgIk5vZGVzLmgiCi0jaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgPG1h
dGguaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogCkBAIC01NjQsNiArNTY1LDggQEAg
SlNPYmplY3QqIEpTT2JqZWN0Ojp0b1RoaXNPYmplY3QoSlNDZWxsKgogCiBKU09iamVjdCogSlNP
YmplY3Q6OnVud3JhcHBlZE9iamVjdCgpCiB7CisgICAgaWYgKGlzR2xvYmFsVGhpcygpKQorICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SlNHbG9iYWxUaGlzKj4odGhpcyktPnVud3JhcHBlZE9i
amVjdCgpOwogICAgIHJldHVybiB0aGlzOwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU09iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT2JqZWN0LmgJKHJldmlzaW9uIDk4ODI3KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMTM2LDcgKzEzNiw3
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBVU3RyaW5nIHRvU3RyaW5nKEV4ZWNTdGF0ZSop
IGNvbnN0OwogCiAgICAgICAgIHN0YXRpYyBKU09iamVjdCogdG9UaGlzT2JqZWN0KEpTQ2VsbCos
IEV4ZWNTdGF0ZSopOwotICAgICAgICB2aXJ0dWFsIEpTT2JqZWN0KiB1bndyYXBwZWRPYmplY3Qo
KTsKKyAgICAgICAgSlNPYmplY3QqIHVud3JhcHBlZE9iamVjdCgpOwogCiAgICAgICAgIGJvb2wg
Z2V0UHJvcGVydHlTcGVjaWZpY1ZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBKU0NlbGwqJiBzcGVjaWZpY0Z1bmN0aW9uKSBjb25zdDsKIApAQCAt
MTk1LDYgKzE5NSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBib29sIGlzVmFyaWFibGVP
YmplY3QoKSBjb25zdDsKICAgICAgICAgYm9vbCBpc0FjdGl2YXRpb25PYmplY3QoKSBjb25zdDsK
ICAgICAgICAgYm9vbCBpc0Vycm9ySW5zdGFuY2UoKSBjb25zdDsKKyAgICAgICAgYm9vbCBpc0ds
b2JhbFRoaXMoKSBjb25zdDsKIAogICAgICAgICB2b2lkIHNlYWwoSlNHbG9iYWxEYXRhJik7CiAg
ICAgICAgIHZvaWQgZnJlZXplKEpTR2xvYmFsRGF0YSYpOwpAQCAtNDI0LDYgKzQyNSwxMSBAQCBp
bmxpbmUgYm9vbCBKU09iamVjdDo6aXNFcnJvckluc3RhbmNlKCkgCiAgICAgcmV0dXJuIHN0cnVj
dHVyZSgpLT50eXBlSW5mbygpLnR5cGUoKSA9PSBFcnJvckluc3RhbmNlVHlwZTsKIH0KIAoraW5s
aW5lIGJvb2wgSlNPYmplY3Q6OmlzR2xvYmFsVGhpcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN0
cnVjdHVyZSgpLT50eXBlSW5mbygpLnR5cGUoKSA9PSBHbG9iYWxUaGlzVHlwZTsKK30KKwogaW5s
aW5lIEpTT2JqZWN0KiBjb25zdHJ1Y3RFbXB0eU9iamVjdChFeGVjU3RhdGUqIGV4ZWMsIFN0cnVj
dHVyZSogc3RydWN0dXJlKQogewogICAgIHJldHVybiBKU0ZpbmFsT2JqZWN0OjpjcmVhdGUoZXhl
Yywgc3RydWN0dXJlKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlw
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZS5o
CShyZXZpc2lvbiA5ODgyNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlw
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqICBDb3B5cmlnaHQgKEMp
IDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqICBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNDMs
MTEgKzQzLDEyIEBAIGVudW0gSlNUeXBlIHsKICAgICBKU0Z1bmN0aW9uVHlwZSAgICAgID0gMTIs
CiAgICAgTnVtYmVyT2JqZWN0VHlwZSAgICA9IDEzLAogICAgIEVycm9ySW5zdGFuY2VUeXBlICAg
PSAxNCwKKyAgICBHbG9iYWxUaGlzVHlwZSAgICAgID0gMTUsCiAKICAgICAvLyBWYXJpYWJsZU9i
amVjdFR5cGUgbXVzdCBiZSBsZXNzIHRoYW4gYWxsIG9mIHRoZSB0eXBlcyBvZiBpdHMgc3ViY2xh
c3NlcyBhbmQgb25seSBpdHMgc3ViY2xhc3Nlcy4KLSAgICBWYXJpYWJsZU9iamVjdFR5cGUgID0g
MTUsCi0gICAgR2xvYmFsT2JqZWN0VHlwZSAgICA9IDE2LAotICAgIEFjdGl2YXRpb25PYmplY3RU
eXBlID0gMTcsCisgICAgVmFyaWFibGVPYmplY3RUeXBlICA9IDE2LAorICAgIEdsb2JhbE9iamVj
dFR5cGUgICAgPSAxNywKKyAgICBBY3RpdmF0aW9uT2JqZWN0VHlwZSA9IDE4LAogfTsKIAogfSAv
LyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA5ODgyNykKKysrIFNvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDEx
LTEwLTMwICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIG5l
ZWQgZm9yIHZpcnR1YWwgSlNPYmplY3Q6OnVud3JhcHBlZE9iamVjdAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEwMzQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIHRoZSBtZW1iZXIgY29udGFpbmlu
ZyB0aGUgZ2xvYmFsIG9iamVjdCBmcm9tIHRoZSBKU0RPTVdpbmRvd1NoZWxsCisgICAgICAgIGRv
d24gdG8gdGhlIEpTR2xvYmFsVGhpcyBjbGFzcywgYW5kIHVwZGF0ZSBKU0RPTVdpbmRvd1NoZWxs
IHRvIGdvIHRocm91Z2gKKyAgICAgICAgYW4gaW5saW5lIGhlbHBlciAod2hpY2gganVzdCBjYXN0
cykgdG8gZ2V0IHRoZSB3aW5kb3cuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d1NoZWxsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93U2hlbGw6OnNldFdpbmRv
dyk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd1NoZWxsOjpjbGFzc05hbWUpOgorICAg
ICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dTaGVsbDo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAg
ICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93U2hlbGw6OmdldE93blByb3BlcnR5RGVzY3JpcHRv
cik6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd1NoZWxsOjpwdXQpOgorICAgICAgICAo
V2ViQ29yZTo6SlNET01XaW5kb3dTaGVsbDo6cHV0V2l0aEF0dHJpYnV0ZXMpOgorICAgICAgICAo
V2ViQ29yZTo6SlNET01XaW5kb3dTaGVsbDo6ZGVmaW5lT3duUHJvcGVydHkpOgorICAgICAgICAo
V2ViQ29yZTo6SlNET01XaW5kb3dTaGVsbDo6ZGVsZXRlUHJvcGVydHkpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNET01XaW5kb3dTaGVsbDo6Z2V0UHJvcGVydHlOYW1lcyk6CisgICAgICAgIChXZWJD
b3JlOjpKU0RPTVdpbmRvd1NoZWxsOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKFdl
YkNvcmU6OkpTRE9NV2luZG93U2hlbGw6OmRlZmluZUdldHRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpKU0RPTVdpbmRvd1NoZWxsOjpkZWZpbmVTZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6SlNE
T01XaW5kb3dTaGVsbDo6bG9va3VwR2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2lu
ZG93U2hlbGw6Omxvb2t1cFNldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd1No
ZWxsOjppbXBsKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd1NoZWxsOjp3aW5kb3cpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNET01XaW5kb3dTaGVsbDo6c2V0V2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkpT
RE9NV2luZG93U2hlbGw6OmNyZWF0ZVN0cnVjdHVyZSk6CisKIDIwMTEtMTAtMjkgIE1hcnRpbiBS
b2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFN3aXRjaCB0
byBhIGJhY2tpbmcgc3RvcmUgYXBwcm9hY2ggZm9yIHBhaW50aW5nIFdlYktpdFdlYlZpZXcKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3Bw
CShyZXZpc2lvbiA5ODgyNykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93U2hlbGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2NSw3IEBAIHZvaWQgSlNET01X
aW5kb3dTaGVsbDo6c2V0V2luZG93KFBhc3NSZWYKIHsKICAgICAvLyBSZXBsYWNpbmcgSlNET01X
aW5kb3cgdmlhIHRlbGxpbmcgSlNET01XaW5kb3dTaGVsbCB0byB1c2UgdGhlIHNhbWUgRE9NV2lu
ZG93IGl0IGFscmVhZHkgdXNlcyBtYWtlcyBubyBzZW5zZSwKICAgICAvLyBzbyB3ZSdkIGJldHRl
ciBuZXZlciB0cnkgdG8uCi0gICAgQVNTRVJUKCFtX3dpbmRvdyB8fCBkb21XaW5kb3cuZ2V0KCkg
IT0gbV93aW5kb3ctPmltcGwoKSk7CisgICAgQVNTRVJUKCF3aW5kb3coKSB8fCBkb21XaW5kb3cu
Z2V0KCkgIT0gd2luZG93KCktPmltcGwoKSk7CiAgICAgLy8gRXhwbGljaXRseSBwcm90ZWN0IHRo
ZSBnbG9iYWwgb2JqZWN0J3MgcHJvdG90eXBlIHNvIGl0IGlzbid0IGNvbGxlY3RlZAogICAgIC8v
IHdoZW4gd2UgYWxsb2NhdGUgdGhlIGdsb2JhbCBvYmplY3QuIChPbmNlIHRoZSBnbG9iYWwgb2Jq
ZWN0IGlzIGZ1bGx5CiAgICAgLy8gY29uc3RydWN0ZWQsIGl0IGNhbiBtYXJrIGl0cyBvd24gcHJv
dG90eXBlLikKQEAgLTg0LDg5ICs4NCw3NCBAQCB2b2lkIEpTRE9NV2luZG93U2hlbGw6OnNldFdp
bmRvdyhQYXNzUmVmCiAvLyBKU09iamVjdCBtZXRob2RzCiAvLyAtLS0tCiAKLXZvaWQgSlNET01X
aW5kb3dTaGVsbDo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNp
dG9yKQotewotICAgIEpTRE9NV2luZG93U2hlbGwqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxK
U0RPTVdpbmRvd1NoZWxsKj4oY2VsbCk7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0
aGlzT2JqZWN0LCAmc19pbmZvKTsKLSAgICBDT01QSUxFX0FTU0VSVChTdHJ1Y3R1cmVGbGFncyAm
IE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4sIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW5XaXRob3V0U2V0
dGluZ0ZsYWcpOwotICAgIEFTU0VSVCh0aGlzT2JqZWN0LT5zdHJ1Y3R1cmUoKS0+dHlwZUluZm8o
KS5vdmVycmlkZXNWaXNpdENoaWxkcmVuKCkpOwotICAgIEJhc2U6OnZpc2l0Q2hpbGRyZW4odGhp
c09iamVjdCwgdmlzaXRvcik7Ci0gICAgaWYgKHRoaXNPYmplY3QtPm1fd2luZG93KQotICAgICAg
ICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV93aW5kb3cpOwotfQotCiBVU3RyaW5nIEpT
RE9NV2luZG93U2hlbGw6OmNsYXNzTmFtZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fd2luZG93
LT5jbGFzc05hbWUoKTsKKyAgICByZXR1cm4gd2luZG93KCktPmNsYXNzTmFtZSgpOwogfQogCiBi
b29sIEpTRE9NV2luZG93U2hlbGw6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNs
b3QmIHNsb3QpCiB7CiAgICAgSlNET01XaW5kb3dTaGVsbCogdGhpc09iamVjdCA9IHN0YXRpY19j
YXN0PEpTRE9NV2luZG93U2hlbGwqPihjZWxsKTsKLSAgICByZXR1cm4gdGhpc09iamVjdC0+bV93
aW5kb3ctPm1ldGhvZFRhYmxlKCktPmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LT5tX3dp
bmRvdy5nZXQoKSwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICByZXR1cm4gdGhpc09i
amVjdC0+d2luZG93KCktPm1ldGhvZFRhYmxlKCktPmdldE93blByb3BlcnR5U2xvdCh0aGlzT2Jq
ZWN0LT53aW5kb3coKSwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU0RP
TVdpbmRvd1NoZWxsOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3Jp
cHRvcikKIHsKLSAgICByZXR1cm4gbV93aW5kb3ctPmdldE93blByb3BlcnR5RGVzY3JpcHRvcihl
eGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOworICAgIHJldHVybiB3aW5kb3coKS0+Z2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGV4ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9
CiAKIHZvaWQgSlNET01XaW5kb3dTaGVsbDo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFBy
b3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBKU0RPTVdpbmRvd1NoZWxsKiB0aGlzT2JqZWN0ID0g
c3RhdGljX2Nhc3Q8SlNET01XaW5kb3dTaGVsbCo+KGNlbGwpOwotICAgIHRoaXNPYmplY3QtPm1f
d2luZG93LT5tZXRob2RUYWJsZSgpLT5wdXQodGhpc09iamVjdC0+bV93aW5kb3cuZ2V0KCksIGV4
ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpOworICAgIHRoaXNPYmplY3QtPndpbmRvdygp
LT5tZXRob2RUYWJsZSgpLT5wdXQodGhpc09iamVjdC0+d2luZG93KCksIGV4ZWMsIHByb3BlcnR5
TmFtZSwgdmFsdWUsIHNsb3QpOwogfQogCiB2b2lkIEpTRE9NV2luZG93U2hlbGw6OnB1dFdpdGhB
dHRyaWJ1dGVzKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBKU1ZhbHVlIHZhbHVlLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQogewotICAgIG1fd2luZG93LT5w
dXRXaXRoQXR0cmlidXRlcyhleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBhdHRyaWJ1dGVzKTsK
KyAgICB3aW5kb3coKS0+cHV0V2l0aEF0dHJpYnV0ZXMoZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1
ZSwgYXR0cmlidXRlcyk7CiB9CiAKIGJvb2wgSlNET01XaW5kb3dTaGVsbDo6ZGVmaW5lT3duUHJv
cGVydHkoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvciwgYm9vbCBzaG91bGRU
aHJvdykKIHsKLSAgICByZXR1cm4gbV93aW5kb3ctPmRlZmluZU93blByb3BlcnR5KGV4ZWMsIHBy
b3BlcnR5TmFtZSwgZGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOworICAgIHJldHVybiB3aW5kb3co
KS0+ZGVmaW5lT3duUHJvcGVydHkoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yLCBzaG91
bGRUaHJvdyk7CiB9CiAKIGJvb2wgSlNET01XaW5kb3dTaGVsbDo6ZGVsZXRlUHJvcGVydHkoSlND
ZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSkKIHsKICAgICBKU0RPTVdpbmRvd1NoZWxsKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNE
T01XaW5kb3dTaGVsbCo+KGNlbGwpOwotICAgIHJldHVybiB0aGlzT2JqZWN0LT5tX3dpbmRvdy0+
bWV0aG9kVGFibGUoKS0+ZGVsZXRlUHJvcGVydHkodGhpc09iamVjdC0+bV93aW5kb3cuZ2V0KCks
IGV4ZWMsIHByb3BlcnR5TmFtZSk7CisgICAgcmV0dXJuIHRoaXNPYmplY3QtPndpbmRvdygpLT5t
ZXRob2RUYWJsZSgpLT5kZWxldGVQcm9wZXJ0eSh0aGlzT2JqZWN0LT53aW5kb3coKSwgZXhlYywg
cHJvcGVydHlOYW1lKTsKIH0KIAogdm9pZCBKU0RPTVdpbmRvd1NoZWxsOjpnZXRQcm9wZXJ0eU5h
bWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVu
dW1lcmF0aW9uTW9kZSBtb2RlKQogewotICAgIG1fd2luZG93LT5nZXRQcm9wZXJ0eU5hbWVzKGV4
ZWMsIHByb3BlcnR5TmFtZXMsIG1vZGUpOworICAgIHdpbmRvdygpLT5nZXRQcm9wZXJ0eU5hbWVz
KGV4ZWMsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCiB2b2lkIEpTRE9NV2luZG93U2hlbGw6
OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYg
cHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7Ci0gICAgbV93aW5kb3ctPmdl
dE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywgbW9kZSk7CisgICAgd2luZG93
KCktPmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAK
IHZvaWQgSlNET01XaW5kb3dTaGVsbDo6ZGVmaW5lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU09iamVjdCogZ2V0dGVyRnVuY3Rpb24sIHVu
c2lnbmVkIGF0dHJpYnV0ZXMpCiB7Ci0gICAgbV93aW5kb3ctPmRlZmluZUdldHRlcihleGVjLCBw
cm9wZXJ0eU5hbWUsIGdldHRlckZ1bmN0aW9uLCBhdHRyaWJ1dGVzKTsKKyAgICB3aW5kb3coKS0+
ZGVmaW5lR2V0dGVyKGV4ZWMsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3Rpb24sIGF0dHJpYnV0
ZXMpOwogfQogCiB2b2lkIEpTRE9NV2luZG93U2hlbGw6OmRlZmluZVNldHRlcihFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNPYmplY3QqIHNldHRlckZ1
bmN0aW9uLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQogewotICAgIG1fd2luZG93LT5kZWZpbmVTZXR0
ZXIoZXhlYywgcHJvcGVydHlOYW1lLCBzZXR0ZXJGdW5jdGlvbiwgYXR0cmlidXRlcyk7CisgICAg
d2luZG93KCktPmRlZmluZVNldHRlcihleGVjLCBwcm9wZXJ0eU5hbWUsIHNldHRlckZ1bmN0aW9u
LCBhdHRyaWJ1dGVzKTsKIH0KIAogSlNWYWx1ZSBKU0RPTVdpbmRvd1NoZWxsOjpsb29rdXBHZXR0
ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiB7Ci0g
ICAgcmV0dXJuIG1fd2luZG93LT5sb29rdXBHZXR0ZXIoZXhlYywgcHJvcGVydHlOYW1lKTsKKyAg
ICByZXR1cm4gd2luZG93KCktPmxvb2t1cEdldHRlcihleGVjLCBwcm9wZXJ0eU5hbWUpOwogfQog
CiBKU1ZhbHVlIEpTRE9NV2luZG93U2hlbGw6Omxvb2t1cFNldHRlcihFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKIHsKLSAgICByZXR1cm4gbV93aW5kb3ct
Pmxvb2t1cFNldHRlcihleGVjLCBwcm9wZXJ0eU5hbWUpOworICAgIHJldHVybiB3aW5kb3coKS0+
bG9va3VwU2V0dGVyKGV4ZWMsIHByb3BlcnR5TmFtZSk7CiB9CiAKLUpTT2JqZWN0KiBKU0RPTVdp
bmRvd1NoZWxsOjp1bndyYXBwZWRPYmplY3QoKQotewotICAgIHJldHVybiBtX3dpbmRvdy5nZXQo
KTsKLX0KIAogLy8gLS0tLQogLy8gSlNET01XaW5kb3cgbWV0aG9kcwpAQCAtMTc0LDcgKzE1OSw3
IEBAIEpTT2JqZWN0KiBKU0RPTVdpbmRvd1NoZWxsOjp1bndyYXBwZWRPYmoKIAogRE9NV2luZG93
KiBKU0RPTVdpbmRvd1NoZWxsOjppbXBsKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV93aW5kb3ct
PmltcGwoKTsKKyAgICByZXR1cm4gd2luZG93KCktPmltcGwoKTsKIH0KIAogdm9pZCogSlNET01X
aW5kb3dTaGVsbDo6b3BlcmF0b3IgbmV3KHNpemVfdCBzaXplKQpJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaAkocmV2aXNpb24gOTg4MjcpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQzLDExICs0MywxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEpT
RE9NV2luZG93U2hlbGwoUGFzc1JlZlB0cjxET01XaW5kb3c+LCBKU0M6OlN0cnVjdHVyZSosIERP
TVdyYXBwZXJXb3JsZCopOwogICAgICAgICB2aXJ0dWFsIH5KU0RPTVdpbmRvd1NoZWxsKCk7CiAK
LSAgICAgICAgSlNET01XaW5kb3cqIHdpbmRvdygpIGNvbnN0IHsgcmV0dXJuIG1fd2luZG93Lmdl
dCgpOyB9CisgICAgICAgIEpTRE9NV2luZG93KiB3aW5kb3coKSBjb25zdCB7IHJldHVybiBzdGF0
aWNfY2FzdDxKU0RPTVdpbmRvdyo+KG1fZ2xvYmFsVmFyaWFibGVzLmdldCgpKTsgfQogICAgICAg
ICB2b2lkIHNldFdpbmRvdyhKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNET01XaW5k
b3cqIHdpbmRvdykKICAgICAgICAgewogICAgICAgICAgICAgQVNTRVJUX0FSRyh3aW5kb3csIHdp
bmRvdyk7Ci0gICAgICAgICAgICBtX3dpbmRvdy5zZXQoZ2xvYmFsRGF0YSwgdGhpcywgd2luZG93
KTsKKyAgICAgICAgICAgIG1fZ2xvYmFsVmFyaWFibGVzLnNldChnbG9iYWxEYXRhLCB0aGlzLCB3
aW5kb3cpOwogICAgICAgICAgICAgc2V0UHJvdG90eXBlKGdsb2JhbERhdGEsIHdpbmRvdy0+cHJv
dG90eXBlKCkpOwogICAgICAgICB9CiAgICAgICAgIHZvaWQgc2V0V2luZG93KFBhc3NSZWZQdHI8
RE9NV2luZG93Pik7CkBAIC02NSw3ICs2NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAg
ICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkgCiAgICAgICAgIHsKLSAg
ICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIDAsIHBy
b3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
JnNfaW5mbyk7IAorICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUoZ2xv
YmFsRGF0YSwgMCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6R2xvYmFsVGhpc1R5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7IAogICAgICAgICB9CiAKICAgICAgICAgRE9NV3Jh
cHBlcldvcmxkKiB3b3JsZCgpIHsgcmV0dXJuIG1fd29ybGQuZ2V0KCk7IH0KQEAgLTc2LDkgKzc2
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgcHJpdmF0ZToKICAgICAgICAgdm9pZCog
b3BlcmF0b3IgbmV3KHNpemVfdCk7Ci0gICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1
Y3R1cmVGbGFncyA9IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVy
cmlkZXNWaXNpdENoaWxkcmVuIHwgSlNDOjpPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgQmFz
ZTo6U3RydWN0dXJlRmxhZ3M7CisgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSlNDOjpPdmVycmlk
ZXNHZXRQcm9wZXJ0eU5hbWVzIHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7CiAKLSAgICAgICAgc3Rh
dGljIHZvaWQgdmlzaXRDaGlsZHJlbihKU0M6OkpTQ2VsbCosIEpTQzo6U2xvdFZpc2l0b3ImKTsK
ICAgICAgICAgdmlydHVhbCBKU0M6OlVTdHJpbmcgY2xhc3NOYW1lKCkgY29uc3Q7CiAgICAgICAg
IHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0
YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlT
bG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlND
OjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQ
cm9wZXJ0eURlc2NyaXB0b3ImKTsKQEAgLTkyLDkgKzkxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICB2aXJ0dWFsIGJvb2wgZGVmaW5lT3duUHJvcGVydHkoSlNDOjpFeGVjU3RhdGUq
LCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2Ny
aXB0b3ImLCBib29sIHNob3VsZFRocm93KTsKICAgICAgICAgdmlydHVhbCBKU0M6OkpTVmFsdWUg
bG9va3VwR2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUpOwogICAgICAgICB2aXJ0dWFsIEpTQzo6SlNWYWx1ZSBsb29rdXBTZXR0ZXIoSlND
OjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7Ci0gICAg
ICAgIHZpcnR1YWwgSlNDOjpKU09iamVjdCogdW53cmFwcGVkT2JqZWN0KCk7CiAKLSAgICAgICAg
SlNDOjpXcml0ZUJhcnJpZXI8SlNET01XaW5kb3c+IG1fd2luZG93OwogICAgICAgICBSZWZQdHI8
RE9NV3JhcHBlcldvcmxkPiBtX3dvcmxkOwogICAgIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113000</attachid>
            <date>2011-10-30 13:17:20 -0700</date>
            <delta_ts>2011-10-30 18:25:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71034-20111030131719.patch</filename>
            <type>text/plain</type>
            <size>27538</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTg4MjcpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzkgQEAK
KzIwMTEtMTAtMzAgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1v
dmUgbmVlZCBmb3IgdmlydHVhbCBKU09iamVjdDo6dW53cmFwcGVkT2JqZWN0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTAzNAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZXhw
OgorICAgICAgICBVcGRhdGUgZXhwb3J0cy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogSmF2YVNjcmlwdENvcmUu
ZXhwOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLmd5cGk6CisgICAgICAgICogSmF2YVNjcmlw
dENvcmUucHJvOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2o6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgQWRkIEpTR2xvYmFsVGhpcy5jcHAuCisKKyAg
ICAgICAgKiBydW50aW1lL0pTR2xvYmFsVGhpcy5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpK
U0dsb2JhbFRoaXM6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAgICAoSlNDOjpKU0dsb2JhbFRoaXM6
OnVud3JhcHBlZE9iamVjdCk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbFRoaXMuaDoKKyAg
ICAgICAgKEpTQzo6SlNHbG9iYWxUaGlzOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICBNb3Zl
IHVuZGVybHlpbmcgb2JqZWN0IGZyb20gSlNET01XaW5kb3dTaGVsbCBkb3duIHRvIEpTR2xvYmFs
VGhpcworICAgICAgICBhbmQgY29ycmVzcG9uZGluZyB2aXNpdENoaWxkcmVuIG1ldGhvZC4KKwor
ICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6
dW53cmFwcGVkT2JqZWN0KToKKyAgICAgICAgQ2hhbmdlIHVud3JhcHBlZE9iamVjdCBmcm9tIHZp
cnR1YWwsIHRvIGp1c3QgbmVlZGluZyBhbiBpZiBjaGVjay4KKworICAgICAgICAqIHJ1bnRpbWUv
SlNPYmplY3QuaDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6OmlzR2xvYmFsVGhpcyk6CisgICAg
ICAgICogcnVudGltZS9KU1R5cGUuaDoKKyAgICAgICAgQWRkIGlzR2xvYmFsVGhpcyBwcmVkaWNh
dGUgYW5kIHR5cGUuCisKIDIwMTEtMTAtMjggIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJn
QGFwcGxlLmNvbT4KIAogICAgICAgICBEZS12aXJ0dWFsaXplIGlzR2xvYmFsT2JqZWN0LCBpc1Zh
cmlhYmxlT2JqZWN0LCBpc0FjdGl2YXRpb25PYmplY3QsIGFuZCBpc0Vycm9ySW5zdGFuY2UgaW4g
SlNPYmplY3QKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9u
IDk4ODI3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0xMjgsNiArMTI4LDcgQEAgU0VUKEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAg
ICBydW50aW1lL0pTR2xvYmFsRGF0YS5jcHAKICAgICBydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNw
cAogICAgIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCisgICAgcnVudGltZS9K
U0dsb2JhbFRoaXMuY3BwCiAgICAgcnVudGltZS9KU0xvY2suY3BwCiAgICAgcnVudGltZS9KU05v
dEFuT2JqZWN0LmNwcAogICAgIHJ1bnRpbWUvSlNPYmplY3QuY3BwCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24gOTg4MjcpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAt
MzczLDYgKzM3Myw3IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcCBcCiAJU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuaCBcCiAJU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaCBcCisJU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxUaGlzLmNwcCBcCiAJU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxUaGlzLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTTG9jay5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTG9j
ay5oIFwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAkocmV2
aXNpb24gOTg4MjcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhw
CSh3b3JraW5nIGNvcHkpCkBAIC0xNDQsNiArMTQ0LDggQEAgX19aTjNKU0MxMkpTR2xvYmFsRGF0
YTIyY2xlYXJCdWlsdGluU3RydQogX19aTjNKU0MxMkpTR2xvYmFsRGF0YTIzcmVsZWFzZUV4ZWN1
dGFibGVNZW1vcnlFdgogX19aTjNKU0MxMkpTR2xvYmFsRGF0YTZjcmVhdGVFTlNfMTVUaHJlYWRT
dGFja1R5cGVFTlNfOEhlYXBTaXplRQogX19aTjNKU0MxMkpTR2xvYmFsRGF0YUQxRXYKK19fWk4z
SlNDMTJKU0dsb2JhbFRoaXMxM3Zpc2l0Q2hpbGRyZW5FUE5TXzZKU0NlbGxFUk5TXzExU2xvdFZp
c2l0b3JFCitfX1pOM0pTQzEySlNHbG9iYWxUaGlzNnNfaW5mb0UKIF9fWk4zSlNDMTJSZWdFeHBP
YmplY3QxNGZpbmlzaENyZWF0aW9uRVBOU18xNEpTR2xvYmFsT2JqZWN0RQogX19aTjNKU0MxMlJl
Z0V4cE9iamVjdDZzX2luZm9FCiBfX1pOM0pTQzEyUmVnRXhwT2JqZWN0QzFFUE5TXzE0SlNHbG9i
YWxPYmplY3RFUE5TXzlTdHJ1Y3R1cmVFUE5TXzZSZWdFeHBFCkBAIC0zMDgsNyArMzEwLDYgQEAg
X19aTjNKU0M4SlNPYmplY3QxMmxvb2t1cFNldHRlckVQTlNfOUV4ZQogX19aTjNKU0M4SlNPYmpl
Y3QxMnRvVGhpc09iamVjdEVQTlNfNkpTQ2VsbEVQTlNfOUV4ZWNTdGF0ZUUKIF9fWk4zSlNDOEpT
T2JqZWN0MTN2aXNpdENoaWxkcmVuRVBOU182SlNDZWxsRVJOU18xMVNsb3RWaXNpdG9yRQogX19a
TjNKU0M4SlNPYmplY3QxNGRlbGV0ZVByb3BlcnR5RVBOU182SlNDZWxsRVBOU185RXhlY1N0YXRl
RVJLTlNfMTBJZGVudGlmaWVyRQotX19aTjNKU0M4SlNPYmplY3QxNXVud3JhcHBlZE9iamVjdEV2
CiBfX1pOM0pTQzhKU09iamVjdDE2Z2V0UHJvcGVydHlOYW1lc0VQTlNfOUV4ZWNTdGF0ZUVSTlNf
MTdQcm9wZXJ0eU5hbWVBcnJheUVOU18xNUVudW1lcmF0aW9uTW9kZUUKIF9fWk4zSlNDOEpTT2Jq
ZWN0MTdkZWZpbmVPd25Qcm9wZXJ0eUVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVS
TlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFYgogX19aTjNKU0M4SlNPYmplY3QxN3ByZXZlbnRFeHRl
bnNpb25zRVJOU18xMkpTR2xvYmFsRGF0YUUKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5neXBpCShyZXZpc2lvbiA5ODgyNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC04Nyw2ICs4Nyw3IEBA
CiAgICAgICAgICAgICAncnVudGltZS9KU0JvdW5kRnVuY3Rpb24uaCcsCiAgICAgICAgICAgICAn
cnVudGltZS9KU0dsb2JhbERhdGEuaCcsCiAgICAgICAgICAgICAncnVudGltZS9KU0dsb2JhbE9i
amVjdC5oJywKKyAgICAgICAgICAgICdydW50aW1lL0pTR2xvYmFsVGhpcy5oJywKICAgICAgICAg
ICAgICdydW50aW1lL0pTTG9jay5oJywKICAgICAgICAgICAgICdydW50aW1lL0pTT2JqZWN0Lmgn
LAogICAgICAgICAgICAgJ3J1bnRpbWUvSlNTdHJpbmcuaCcsCkBAIC00ODQsNiArNDg1LDcgQEAK
ICAgICAgICAgICAgICdydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcCcsCiAgICAgICAgICAgICAn
cnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAnLAogICAgICAgICAgICAgJ3J1bnRp
bWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuaCcsCisgICAgICAgICAgICAncnVudGltZS9KU0ds
b2JhbFRoaXMuY3BwJywKICAgICAgICAgICAgICdydW50aW1lL0pTTG9jay5jcHAnLAogICAgICAg
ICAgICAgJ3J1bnRpbWUvSlNOb3RBbk9iamVjdC5jcHAnLAogICAgICAgICAgICAgJ3J1bnRpbWUv
SlNOb3RBbk9iamVjdC5oJywKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnBybwkocmV2aXNpb24gOTg4MjcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0xNTksNiArMTU5LDcgQEAgU09VUkNFUyAr
PSBcCiAgICAgcnVudGltZS9KU0dsb2JhbERhdGEuY3BwIFwKICAgICBydW50aW1lL0pTR2xvYmFs
T2JqZWN0LmNwcCBcCiAgICAgcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAgXAor
ICAgIHJ1bnRpbWUvSlNHbG9iYWxUaGlzLmNwcCBcCiAgICAgcnVudGltZS9KU0xvY2suY3BwIFwK
ICAgICBydW50aW1lL0pTTm90QW5PYmplY3QuY3BwIFwKICAgICBydW50aW1lL0pTT2JqZWN0LmNw
cCBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLmRlZgkocmV2aXNpb24gOTg4MjcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgkod29y
a2luZyBjb3B5KQpAQCAtMzUzLDEwICszNTMsMTAgQEAgRVhQT1JUUwogICAgID91bmxvY2tATXV0
ZXhAV1RGQEBRQUVYWFoKICAgICA/dW5sb2NrQXRvbWljYWxseUluaXRpYWxpemVkU3RhdGljTXV0
ZXhAV1RGQEBZQVhYWgogICAgID91bnByb3RlY3RASGVhcEBKU0NAQFFBRV9OVkpTVmFsdWVAMkBA
WgotICAgID91bndyYXBwZWRPYmplY3RASlNPYmplY3RASlNDQEBVQUVQQVYxMkBYWgogICAgID91
dGY4QFVTdHJpbmdASlNDQEBRQkU/QVZDU3RyaW5nQFdURkBAX05AWgogICAgID92YWxpZGF0ZUBN
YXJrU3RhY2tASlNDQEBLQVhQQVZKU0NlbGxAMkBAWgogICAgID92aXNpdENoaWxkcmVuQEpTR2xv
YmFsT2JqZWN0QEpTQ0BAU0FYUEFWSlNDZWxsQDJAQUFWU2xvdFZpc2l0b3JAMkBAWgorICAgID92
aXNpdENoaWxkcmVuQEpTR2xvYmFsVGhpc0BKU0NAQEtBWFBBVkpTQ2VsbEAyQEFBVlNsb3RWaXNp
dG9yQDJAQFoKICAgICA/dmlzaXRDaGlsZHJlbkBKU09iamVjdEBKU0NAQFNBWFBBVkpTQ2VsbEAy
QEFBVlNsb3RWaXNpdG9yQDJAQFoKICAgICA/dnRhYmxlQW5jaG9yQEludGVybmFsRnVuY3Rpb25A
SlNDQEBFQUVYWFoKICAgICA/d2FpdEBUaHJlYWRDb25kaXRpb25AV1RGQEBRQUVYQUFWTXV0ZXhA
MkBAWgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS52Y3Byb2oJKHJldmlzaW9uIDk4ODI3KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52
Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTgzOCw2ICs4MzgsMTQgQEAKIAkJCQk+CiAJCQk8L0Zp
bGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccnVudGltZVxKU0dsb2JhbFRo
aXMuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIu
LlwuLlxydW50aW1lXEpTR2xvYmFsVGhpcy5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxl
CiAJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxydW50aW1lXEpTTG9jay5jcHAiCiAJCQkJPgogCQkJ
PC9GaWxlPgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDk4ODI3
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTYxMyw2ICs2MTMsNyBAQAogCQlCQzMwNDYw
NzBFMUY0OTdGMDAzMjMyQ0YgLyogRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDMzA0NjA2MEUxRjQ5N0YwMDMyMzJDRiAvKiBFcnJvci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDMzEzNTY0
MEYzMDJGQTMwMDNERkQzQSAvKiBEZWJ1Z2dlckFjdGl2YXRpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMzEzNTYyMEYzMDJGQTMwMDNERkQzQSAv
KiBEZWJ1Z2dlckFjdGl2YXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlCQzMxMzU2NTBGMzAyRkEzMDAzREZEM0EgLyogRGVidWdnZXJBY3Rp
dmF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDMzEzNTYzMEYzMDJGQTMwMDNERkQzQSAvKiBEZWJ1Z2dlckFjdGl2YXRpb24uY3BwICovOyB9
OworCQlCQzNDNENBMDE0NThGNTQ1MDAyNUZCNjIgLyogSlNHbG9iYWxUaGlzLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDM0M0QzlGMTQ1OEY1NDUw
MDI1RkI2MiAvKiBKU0dsb2JhbFRoaXMuY3BwICovOyB9OwogCQlCQzVGN0JCRTExODIzQjU5MDA1
MkMwMkMgLyogQXRvbWljcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkM1RjdCQkIxMTgyM0I1OTAwNTJDMDJDIC8qIEF0b21pY3MuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzVGN0JCRjExODIzQjU5
MDA1MkMwMkMgLyogVGhyZWFkaW5nUHJpbWl0aXZlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1RjdCQkMxMTgyM0I1OTAwNTJDMDJDIC8qIFRocmVh
ZGluZ1ByaW1pdGl2ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlCQzVGN0JDMDExODIzQjU5MDA1MkMwMkMgLyogVGhyZWFkU2FmZVJlZkNvdW50
ZWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNUY3
QkJEMTE4MjNCNTkwMDUyQzAyQyAvKiBUaHJlYWRTYWZlUmVmQ291bnRlZC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMzM5LDYgKzEzNDAsNyBA
QAogCQlCQzMxMzU2MzBGMzAyRkEzMDAzREZEM0EgLyogRGVidWdnZXJBY3RpdmF0aW9uLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERlYnVnZ2VyQWN0aXZhdGlvbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMzM3QkRFMEUxQUYwQjgwMDc2OTE4
QSAvKiBHZXR0ZXJTZXR0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2V0
dGVyU2V0dGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMzM3QkVBMEUxQjAw
Q0IwMDc2OTE4QSAvKiBFcnJvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBFcnJvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDM0M0QzlGMTQ1
OEY1NDUwMDI1RkI2MiAvKiBKU0dsb2JhbFRoaXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNHbG9iYWxUaGlzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQkM1RjdCQkIxMTgyM0I1OTAwNTJDMDJDIC8qIEF0b21pY3MuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQXRvbWljcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCQzVGN0JCQzExODIzQjU5MDA1MkMwMkMgLyogVGhyZWFkaW5nUHJpbWl0aXZlcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUaHJlYWRpbmdQcmltaXRpdmVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNUY3QkJEMTE4MjNCNTkwMDUyQzAyQyAvKiBU
aHJlYWRTYWZlUmVmQ291bnRlZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBU
aHJlYWRTYWZlUmVmQ291bnRlZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjEy
OSw2ICsyMTMxLDcgQEAKIAkJCQlCQzc1NkZDNjBFMjAzMUIyMDBERTdEMTIgLyogSlNHbG9iYWxP
YmplY3RGdW5jdGlvbnMuY3BwICovLAogCQkJCUJDNzU2RkM3MEUyMDMxQjIwMERFN0QxMiAvKiBK
U0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5oICovLAogCQkJCTg2MDRGNTAzMTQzQ0UxQzEwMEIyOTVG
NSAvKiBKU0dsb2JhbFRoaXMuaCAqLywKKwkJCQlCQzNDNEM5RjE0NThGNTQ1MDAyNUZCNjIgLyog
SlNHbG9iYWxUaGlzLmNwcCAqLywKIAkJCQk2NUVBNEM5OTA5MkFGOUUyMDA5M0Q4MDAgLyogSlNM
b2NrLmNwcCAqLywKIAkJCQk2NUVBNEM5QTA5MkFGOUUyMDA5M0Q4MDAgLyogSlNMb2NrLmggKi8s
CiAJCQkJQTcyNzAwNzgwREFDNjA1NjAwRTU0OEQ3IC8qIEpTTm90QW5PYmplY3QuY3BwICovLApA
QCAtMzQxNiw2ICszNDE5LDcgQEAKIAkJCQk4Njg4MEY0RDE0MzUzQjIxMDBCMDhENDIgLyogREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkUyMjhFRTE0MzZBQjJD
MDAxOTZDNDggLyogSGV1cmlzdGljcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjYyMDE3OTE0
M0ZDRDQ4MDA2OEI3N0MgLyogREZHQWJzdHJhY3RTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlCQzNDNENBMDE0NThGNTQ1MDAyNUZCNjIgLyogSlNHbG9iYWxUaGlzLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxUaGlzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbFRo
aXMuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
bG9iYWxUaGlzLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU0dsb2JhbFRoaXMuaCIKKworI2luY2x1
ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCisKK25hbWVzcGFjZSBKU0MgeworCitBU1NFUlRfQ0xBU1Nf
RklUU19JTl9DRUxMKEpTR2xvYmFsVGhpcyk7CisKK2NvbnN0IENsYXNzSW5mbyBKU0dsb2JhbFRo
aXM6OnNfaW5mbyA9IHsgIkpTR2xvYmFsVGhpcyIsICZCYXNlOjpzX2luZm8sIDAsIDAsIENSRUFU
RV9NRVRIT0RfVEFCTEUoSlNHbG9iYWxUaGlzKSB9OworCit2b2lkIEpTR2xvYmFsVGhpczo6dmlz
aXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQoreworICAgIEpT
R2xvYmFsVGhpcyogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTR2xvYmFsVGhpcyo+KGNlbGwp
OworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgJnNfaW5mbyk7CisK
KyAgICBDT01QSUxFX0FTU0VSVChTdHJ1Y3R1cmVGbGFncyAmIE92ZXJyaWRlc1Zpc2l0Q2hpbGRy
ZW4sIE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW5XaXRob3V0U2V0dGluZ0ZsYWcpOworICAgIEFTU0VS
VCh0aGlzT2JqZWN0LT5zdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS5vdmVycmlkZXNWaXNpdENoaWxk
cmVuKCkpOworCisgICAgQmFzZTo6dmlzaXRDaGlsZHJlbih0aGlzT2JqZWN0LCB2aXNpdG9yKTsK
KyAgICBpZiAodGhpc09iamVjdC0+bV9nbG9iYWxWYXJpYWJsZXMpCisgICAgICAgIHZpc2l0b3Iu
YXBwZW5kKCZ0aGlzT2JqZWN0LT5tX2dsb2JhbFZhcmlhYmxlcyk7Cit9CisKK0pTT2JqZWN0KiBK
U0dsb2JhbFRoaXM6OnVud3JhcHBlZE9iamVjdCgpCit7CisgICAgcmV0dXJuIG1fZ2xvYmFsVmFy
aWFibGVzLmdldCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsVGhpcy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsVGhpcy5oCShyZXZpc2lvbiA5ODgyNykKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsVGhpcy5oCSh3b3JraW5nIGNv
cHkpCkBAIC00MSw2ICs0MSwxNSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBnbG9iYWxUaGlz
OwogICAgIH0KIAorICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKSAKKyAgICB7CisgICAgICAgIHJl
dHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCAwLCBwcm90b3R5cGUsIFR5cGVJbmZv
KEdsb2JhbFRoaXNUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOyAKKyAgICB9CisKKyAg
ICBzdGF0aWMgSlNfRVhQT1JUREFUQSBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CisKKyAg
ICBKU09iamVjdCogdW53cmFwcGVkT2JqZWN0KCk7CisKIHByb3RlY3RlZDoKICAgICBKU0dsb2Jh
bFRoaXMoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAg
ICAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkKQEAgLTUxLDgg
KzYwLDE0IEBAIHByb3RlY3RlZDoKICAgICB7CiAgICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9u
KGdsb2JhbERhdGEpOwogICAgIH0KKworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsK
KworICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsK
KworICAgIFdyaXRlQmFycmllcjxKU0dsb2JhbE9iamVjdD4gbV9nbG9iYWxWYXJpYWJsZXM7CiB9
OwogCi19Cit9IC8vIG5hbWVzcGFjZSBKU0MKIAotI2VuZGlmCisjZW5kaWYgLy8gSlNHbG9iYWxU
aGlzX2gKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAJ
KHJldmlzaW9uIDk4ODI3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmpl
Y3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxMyArMjksMTQgQEAKICNpbmNsdWRlICJHZXR0
ZXJTZXR0ZXIuaCIKICNpbmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxP
YmplY3QuaCIKKyNpbmNsdWRlICJKU0dsb2JhbFRoaXMuaCIKKyNpbmNsdWRlICJMb29rdXAuaCIK
ICNpbmNsdWRlICJOYXRpdmVFcnJvckNvbnN0cnVjdG9yLmgiCisjaW5jbHVkZSAiTm9kZXMuaCIK
ICNpbmNsdWRlICJPYmplY3RQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJPcGVyYXRpb25zLmgiCiAj
aW5jbHVkZSAiUHJvcGVydHlEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiUHJvcGVydHlOYW1lQXJy
YXkuaCIKLSNpbmNsdWRlICJMb29rdXAuaCIKLSNpbmNsdWRlICJOb2Rlcy5oIgotI2luY2x1ZGUg
Ik9wZXJhdGlvbnMuaCIKICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlv
bnMuaD4KIApAQCAtNTY0LDYgKzU2NSw4IEBAIEpTT2JqZWN0KiBKU09iamVjdDo6dG9UaGlzT2Jq
ZWN0KEpTQ2VsbCoKIAogSlNPYmplY3QqIEpTT2JqZWN0Ojp1bndyYXBwZWRPYmplY3QoKQogewor
ICAgIGlmIChpc0dsb2JhbFRoaXMoKSkKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEpTR2xv
YmFsVGhpcyo+KHRoaXMpLT51bndyYXBwZWRPYmplY3QoKTsKICAgICByZXR1cm4gdGhpczsKIH0K
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCShyZXZpc2lv
biA5ODgyNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgJKHdv
cmtpbmcgY29weSkKQEAgLTEzNiw3ICsxMzYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
VVN0cmluZyB0b1N0cmluZyhFeGVjU3RhdGUqKSBjb25zdDsKIAogICAgICAgICBzdGF0aWMgSlNP
YmplY3QqIHRvVGhpc09iamVjdChKU0NlbGwqLCBFeGVjU3RhdGUqKTsKLSAgICAgICAgdmlydHVh
bCBKU09iamVjdCogdW53cmFwcGVkT2JqZWN0KCk7CisgICAgICAgIEpTT2JqZWN0KiB1bndyYXBw
ZWRPYmplY3QoKTsKIAogICAgICAgICBib29sIGdldFByb3BlcnR5U3BlY2lmaWNWYWx1ZShFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDZWxsKiYgc3Bl
Y2lmaWNGdW5jdGlvbikgY29uc3Q7CiAKQEAgLTE5NSw2ICsxOTUsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgYm9vbCBpc1ZhcmlhYmxlT2JqZWN0KCkgY29uc3Q7CiAgICAgICAgIGJvb2wg
aXNBY3RpdmF0aW9uT2JqZWN0KCkgY29uc3Q7CiAgICAgICAgIGJvb2wgaXNFcnJvckluc3RhbmNl
KCkgY29uc3Q7CisgICAgICAgIGJvb2wgaXNHbG9iYWxUaGlzKCkgY29uc3Q7CiAKICAgICAgICAg
dm9pZCBzZWFsKEpTR2xvYmFsRGF0YSYpOwogICAgICAgICB2b2lkIGZyZWV6ZShKU0dsb2JhbERh
dGEmKTsKQEAgLTQyNCw2ICs0MjUsMTEgQEAgaW5saW5lIGJvb2wgSlNPYmplY3Q6OmlzRXJyb3JJ
bnN0YW5jZSgpIAogICAgIHJldHVybiBzdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS50eXBlKCkgPT0g
RXJyb3JJbnN0YW5jZVR5cGU7CiB9CiAKK2lubGluZSBib29sIEpTT2JqZWN0Ojppc0dsb2JhbFRo
aXMoKSBjb25zdAoreworICAgIHJldHVybiBzdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS50eXBlKCkg
PT0gR2xvYmFsVGhpc1R5cGU7Cit9CisKIGlubGluZSBKU09iamVjdCogY29uc3RydWN0RW1wdHlP
YmplY3QoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKIHsKICAgICByZXR1
cm4gSlNGaW5hbE9iamVjdDo6Y3JlYXRlKGV4ZWMsIHN0cnVjdHVyZSk7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaAkocmV2aXNpb24gOTg4MjcpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcs
IDIwMDgsIDIwMDksIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTQzLDExICs0MywxMiBAQCBlbnVtIEpTVHlwZSB7CiAg
ICAgSlNGdW5jdGlvblR5cGUgICAgICA9IDEyLAogICAgIE51bWJlck9iamVjdFR5cGUgICAgPSAx
MywKICAgICBFcnJvckluc3RhbmNlVHlwZSAgID0gMTQsCisgICAgR2xvYmFsVGhpc1R5cGUgICAg
ICA9IDE1LAogCiAgICAgLy8gVmFyaWFibGVPYmplY3RUeXBlIG11c3QgYmUgbGVzcyB0aGFuIGFs
bCBvZiB0aGUgdHlwZXMgb2YgaXRzIHN1YmNsYXNzZXMgYW5kIG9ubHkgaXRzIHN1YmNsYXNzZXMu
Ci0gICAgVmFyaWFibGVPYmplY3RUeXBlICA9IDE1LAotICAgIEdsb2JhbE9iamVjdFR5cGUgICAg
PSAxNiwKLSAgICBBY3RpdmF0aW9uT2JqZWN0VHlwZSA9IDE3LAorICAgIFZhcmlhYmxlT2JqZWN0
VHlwZSAgPSAxNiwKKyAgICBHbG9iYWxPYmplY3RUeXBlICAgID0gMTcsCisgICAgQWN0aXZhdGlv
bk9iamVjdFR5cGUgPSAxOCwKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwkocmV2aXNpb24gOTg4MjcpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwzNSBAQAorMjAxMS0xMC0zMCAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJr
aXQub3JnPgorCisgICAgICAgIFJlbW92ZSBuZWVkIGZvciB2aXJ0dWFsIEpTT2JqZWN0Ojp1bndy
YXBwZWRPYmplY3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTcxMDM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTW92ZSB0aGUgbWVtYmVyIGNvbnRhaW5pbmcgdGhlIGdsb2JhbCBvYmplY3QgZnJvbSB0aGUg
SlNET01XaW5kb3dTaGVsbAorICAgICAgICBkb3duIHRvIHRoZSBKU0dsb2JhbFRoaXMgY2xhc3Ms
IGFuZCB1cGRhdGUgSlNET01XaW5kb3dTaGVsbCB0byBnbyB0aHJvdWdoCisgICAgICAgIGFuIGlu
bGluZSBoZWxwZXIgKHdoaWNoIGp1c3QgY2FzdHMpIHRvIGdldCB0aGUgd2luZG93LgorCisgICAg
ICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpKU0RPTVdpbmRvd1NoZWxsOjpzZXRXaW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01X
aW5kb3dTaGVsbDo6Y2xhc3NOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93U2hl
bGw6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd1No
ZWxsOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01X
aW5kb3dTaGVsbDo6cHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93U2hlbGw6OnB1
dFdpdGhBdHRyaWJ1dGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93U2hlbGw6OmRl
ZmluZU93blByb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93U2hlbGw6OmRl
bGV0ZVByb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93U2hlbGw6OmdldFBy
b3BlcnR5TmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dTaGVsbDo6Z2V0T3du
UHJvcGVydHlOYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd1NoZWxsOjpkZWZp
bmVHZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dTaGVsbDo6ZGVmaW5lU2V0
dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93U2hlbGw6Omxvb2t1cEdldHRlcik6
CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd1NoZWxsOjpsb29rdXBTZXR0ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dTaGVsbDo6aW1wbCk6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNET01XaW5kb3dTaGVsbC5oOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dT
aGVsbDo6d2luZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93U2hlbGw6OnNldFdp
bmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd1NoZWxsOjpjcmVhdGVTdHJ1Y3R1
cmUpOgorCiAyMDExLTEwLTI5ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNv
bT4KIAogICAgICAgICBbR1RLXSBTd2l0Y2ggdG8gYSBiYWNraW5nIHN0b3JlIGFwcHJvYWNoIGZv
ciBwYWludGluZyBXZWJLaXRXZWJWaWV3CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd1NoZWxsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcAkocmV2aXNpb24gOTg4MjcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNjUsNyArNjUsNyBAQCB2b2lkIEpTRE9NV2luZG93U2hlbGw6OnNldFdpbmRvdyhQYXNzUmVm
CiB7CiAgICAgLy8gUmVwbGFjaW5nIEpTRE9NV2luZG93IHZpYSB0ZWxsaW5nIEpTRE9NV2luZG93
U2hlbGwgdG8gdXNlIHRoZSBzYW1lIERPTVdpbmRvdyBpdCBhbHJlYWR5IHVzZXMgbWFrZXMgbm8g
c2Vuc2UsCiAgICAgLy8gc28gd2UnZCBiZXR0ZXIgbmV2ZXIgdHJ5IHRvLgotICAgIEFTU0VSVCgh
bV93aW5kb3cgfHwgZG9tV2luZG93LmdldCgpICE9IG1fd2luZG93LT5pbXBsKCkpOworICAgIEFT
U0VSVCghd2luZG93KCkgfHwgZG9tV2luZG93LmdldCgpICE9IHdpbmRvdygpLT5pbXBsKCkpOwog
ICAgIC8vIEV4cGxpY2l0bHkgcHJvdGVjdCB0aGUgZ2xvYmFsIG9iamVjdCdzIHByb3RvdHlwZSBz
byBpdCBpc24ndCBjb2xsZWN0ZWQKICAgICAvLyB3aGVuIHdlIGFsbG9jYXRlIHRoZSBnbG9iYWwg
b2JqZWN0LiAoT25jZSB0aGUgZ2xvYmFsIG9iamVjdCBpcyBmdWxseQogICAgIC8vIGNvbnN0cnVj
dGVkLCBpdCBjYW4gbWFyayBpdHMgb3duIHByb3RvdHlwZS4pCkBAIC04NCw4OSArODQsNzQgQEAg
dm9pZCBKU0RPTVdpbmRvd1NoZWxsOjpzZXRXaW5kb3coUGFzc1JlZgogLy8gSlNPYmplY3QgbWV0
aG9kcwogLy8gLS0tLQogCi12b2lkIEpTRE9NV2luZG93U2hlbGw6OnZpc2l0Q2hpbGRyZW4oSlND
ZWxsKiBjZWxsLCBTbG90VmlzaXRvciYgdmlzaXRvcikKLXsKLSAgICBKU0RPTVdpbmRvd1NoZWxs
KiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNET01XaW5kb3dTaGVsbCo+KGNlbGwpOwotICAg
IEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgJnNfaW5mbyk7Ci0gICAgQ09N
UElMRV9BU1NFUlQoU3RydWN0dXJlRmxhZ3MgJiBPdmVycmlkZXNWaXNpdENoaWxkcmVuLCBPdmVy
cmlkZXNWaXNpdENoaWxkcmVuV2l0aG91dFNldHRpbmdGbGFnKTsKLSAgICBBU1NFUlQodGhpc09i
amVjdC0+c3RydWN0dXJlKCktPnR5cGVJbmZvKCkub3ZlcnJpZGVzVmlzaXRDaGlsZHJlbigpKTsK
LSAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHRoaXNPYmplY3QsIHZpc2l0b3IpOwotICAgIGlmICh0
aGlzT2JqZWN0LT5tX3dpbmRvdykKLSAgICAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3Qt
Pm1fd2luZG93KTsKLX0KLQogVVN0cmluZyBKU0RPTVdpbmRvd1NoZWxsOjpjbGFzc05hbWUoKSBj
b25zdAogewotICAgIHJldHVybiBtX3dpbmRvdy0+Y2xhc3NOYW1lKCk7CisgICAgcmV0dXJuIHdp
bmRvdygpLT5jbGFzc05hbWUoKTsKIH0KIAogYm9vbCBKU0RPTVdpbmRvd1NoZWxsOjpnZXRPd25Q
cm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIEpTRE9NV2luZG93
U2hlbGwqIHRoaXNPYmplY3QgPSBzdGF0aWNfY2FzdDxKU0RPTVdpbmRvd1NoZWxsKj4oY2VsbCk7
Ci0gICAgcmV0dXJuIHRoaXNPYmplY3QtPm1fd2luZG93LT5tZXRob2RUYWJsZSgpLT5nZXRPd25Q
cm9wZXJ0eVNsb3QodGhpc09iamVjdC0+bV93aW5kb3cuZ2V0KCksIGV4ZWMsIHByb3BlcnR5TmFt
ZSwgc2xvdCk7CisgICAgcmV0dXJuIHRoaXNPYmplY3QtPndpbmRvdygpLT5tZXRob2RUYWJsZSgp
LT5nZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdC0+d2luZG93KCksIGV4ZWMsIHByb3BlcnR5
TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNET01XaW5kb3dTaGVsbDo6Z2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7Ci0gICAgcmV0dXJuIG1fd2luZG93
LT5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9y
KTsKKyAgICByZXR1cm4gd2luZG93KCktPmdldE93blByb3BlcnR5RGVzY3JpcHRvcihleGVjLCBw
cm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IpOwogfQogCiB2b2lkIEpTRE9NV2luZG93U2hlbGw6OnB1
dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgSlNE
T01XaW5kb3dTaGVsbCogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTRE9NV2luZG93U2hlbGwq
PihjZWxsKTsKLSAgICB0aGlzT2JqZWN0LT5tX3dpbmRvdy0+bWV0aG9kVGFibGUoKS0+cHV0KHRo
aXNPYmplY3QtPm1fd2luZG93LmdldCgpLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90
KTsKKyAgICB0aGlzT2JqZWN0LT53aW5kb3coKS0+bWV0aG9kVGFibGUoKS0+cHV0KHRoaXNPYmpl
Y3QtPndpbmRvdygpLCBleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KTsKIH0KIAogdm9p
ZCBKU0RPTVdpbmRvd1NoZWxsOjpwdXRXaXRoQXR0cmlidXRlcyhFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgdW5zaWduZWQgYXR0
cmlidXRlcykKIHsKLSAgICBtX3dpbmRvdy0+cHV0V2l0aEF0dHJpYnV0ZXMoZXhlYywgcHJvcGVy
dHlOYW1lLCB2YWx1ZSwgYXR0cmlidXRlcyk7CisgICAgd2luZG93KCktPnB1dFdpdGhBdHRyaWJ1
dGVzKGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIGF0dHJpYnV0ZXMpOwogfQogCiBib29sIEpT
RE9NV2luZG93U2hlbGw6OmRlZmluZU93blByb3BlcnR5KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBj
b25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0
b3ImIGRlc2NyaXB0b3IsIGJvb2wgc2hvdWxkVGhyb3cpCiB7Ci0gICAgcmV0dXJuIG1fd2luZG93
LT5kZWZpbmVPd25Qcm9wZXJ0eShleGVjLCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IsIHNob3Vs
ZFRocm93KTsKKyAgICByZXR1cm4gd2luZG93KCktPmRlZmluZU93blByb3BlcnR5KGV4ZWMsIHBy
b3BlcnR5TmFtZSwgZGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOwogfQogCiBib29sIEpTRE9NV2lu
ZG93U2hlbGw6OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgSlNET01XaW5kb3dTaGVsbCog
dGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTRE9NV2luZG93U2hlbGwqPihjZWxsKTsKLSAgICBy
ZXR1cm4gdGhpc09iamVjdC0+bV93aW5kb3ctPm1ldGhvZFRhYmxlKCktPmRlbGV0ZVByb3BlcnR5
KHRoaXNPYmplY3QtPm1fd2luZG93LmdldCgpLCBleGVjLCBwcm9wZXJ0eU5hbWUpOworICAgIHJl
dHVybiB0aGlzT2JqZWN0LT53aW5kb3coKS0+bWV0aG9kVGFibGUoKS0+ZGVsZXRlUHJvcGVydHko
dGhpc09iamVjdC0+d2luZG93KCksIGV4ZWMsIHByb3BlcnR5TmFtZSk7CiB9CiAKIHZvaWQgSlNE
T01XaW5kb3dTaGVsbDo6Z2V0UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5
TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKLSAgICBt
X3dpbmRvdy0+Z2V0UHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKKyAg
ICB3aW5kb3coKS0+Z2V0UHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsK
IH0KIAogdm9pZCBKU0RPTVdpbmRvd1NoZWxsOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0
ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9k
ZSBtb2RlKQogewotICAgIG1fd2luZG93LT5nZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3Bl
cnR5TmFtZXMsIG1vZGUpOworICAgIHdpbmRvdygpLT5nZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMs
IHByb3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCiB2b2lkIEpTRE9NV2luZG93U2hlbGw6OmRlZmlu
ZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
SlNPYmplY3QqIGdldHRlckZ1bmN0aW9uLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKQogewotICAgIG1f
d2luZG93LT5kZWZpbmVHZXR0ZXIoZXhlYywgcHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5jdGlvbiwg
YXR0cmlidXRlcyk7CisgICAgd2luZG93KCktPmRlZmluZUdldHRlcihleGVjLCBwcm9wZXJ0eU5h
bWUsIGdldHRlckZ1bmN0aW9uLCBhdHRyaWJ1dGVzKTsKIH0KIAogdm9pZCBKU0RPTVdpbmRvd1No
ZWxsOjpkZWZpbmVTZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTT2JqZWN0KiBzZXR0ZXJGdW5jdGlvbiwgdW5zaWduZWQgYXR0cmlidXRlcykK
IHsKLSAgICBtX3dpbmRvdy0+ZGVmaW5lU2V0dGVyKGV4ZWMsIHByb3BlcnR5TmFtZSwgc2V0dGVy
RnVuY3Rpb24sIGF0dHJpYnV0ZXMpOworICAgIHdpbmRvdygpLT5kZWZpbmVTZXR0ZXIoZXhlYywg
cHJvcGVydHlOYW1lLCBzZXR0ZXJGdW5jdGlvbiwgYXR0cmlidXRlcyk7CiB9CiAKIEpTVmFsdWUg
SlNET01XaW5kb3dTaGVsbDo6bG9va3VwR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lKQogewotICAgIHJldHVybiBtX3dpbmRvdy0+bG9va3VwR2V0
dGVyKGV4ZWMsIHByb3BlcnR5TmFtZSk7CisgICAgcmV0dXJuIHdpbmRvdygpLT5sb29rdXBHZXR0
ZXIoZXhlYywgcHJvcGVydHlOYW1lKTsKIH0KIAogSlNWYWx1ZSBKU0RPTVdpbmRvd1NoZWxsOjps
b29rdXBTZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUpCiB7Ci0gICAgcmV0dXJuIG1fd2luZG93LT5sb29rdXBTZXR0ZXIoZXhlYywgcHJvcGVydHlO
YW1lKTsKKyAgICByZXR1cm4gd2luZG93KCktPmxvb2t1cFNldHRlcihleGVjLCBwcm9wZXJ0eU5h
bWUpOwogfQogCi1KU09iamVjdCogSlNET01XaW5kb3dTaGVsbDo6dW53cmFwcGVkT2JqZWN0KCkK
LXsKLSAgICByZXR1cm4gbV93aW5kb3cuZ2V0KCk7Ci19CiAKIC8vIC0tLS0KIC8vIEpTRE9NV2lu
ZG93IG1ldGhvZHMKQEAgLTE3NCw3ICsxNTksNyBAQCBKU09iamVjdCogSlNET01XaW5kb3dTaGVs
bDo6dW53cmFwcGVkT2JqCiAKIERPTVdpbmRvdyogSlNET01XaW5kb3dTaGVsbDo6aW1wbCgpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIG1fd2luZG93LT5pbXBsKCk7CisgICAgcmV0dXJuIHdpbmRvdygp
LT5pbXBsKCk7CiB9CiAKIHZvaWQqIEpTRE9NV2luZG93U2hlbGw6Om9wZXJhdG9yIG5ldyhzaXpl
X3Qgc2l6ZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hl
bGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d1NoZWxsLmgJKHJldmlzaW9uIDk4ODI3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dTaGVsbC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MywxMSArNDMsMTEgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBKU0RPTVdpbmRvd1NoZWxsKFBhc3NSZWZQdHI8RE9N
V2luZG93PiwgSlNDOjpTdHJ1Y3R1cmUqLCBET01XcmFwcGVyV29ybGQqKTsKICAgICAgICAgdmly
dHVhbCB+SlNET01XaW5kb3dTaGVsbCgpOwogCi0gICAgICAgIEpTRE9NV2luZG93KiB3aW5kb3co
KSBjb25zdCB7IHJldHVybiBtX3dpbmRvdy5nZXQoKTsgfQorICAgICAgICBKU0RPTVdpbmRvdyog
d2luZG93KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SlNET01XaW5kb3cqPihtX2dsb2Jh
bFZhcmlhYmxlcy5nZXQoKSk7IH0KICAgICAgICAgdm9pZCBzZXRXaW5kb3coSlNDOjpKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIEpTRE9NV2luZG93KiB3aW5kb3cpCiAgICAgICAgIHsKICAgICAg
ICAgICAgIEFTU0VSVF9BUkcod2luZG93LCB3aW5kb3cpOwotICAgICAgICAgICAgbV93aW5kb3cu
c2V0KGdsb2JhbERhdGEsIHRoaXMsIHdpbmRvdyk7CisgICAgICAgICAgICBtX2dsb2JhbFZhcmlh
Ymxlcy5zZXQoZ2xvYmFsRGF0YSwgdGhpcywgd2luZG93KTsKICAgICAgICAgICAgIHNldFByb3Rv
dHlwZShnbG9iYWxEYXRhLCB3aW5kb3ctPnByb3RvdHlwZSgpKTsKICAgICAgICAgfQogICAgICAg
ICB2b2lkIHNldFdpbmRvdyhQYXNzUmVmUHRyPERPTVdpbmRvdz4pOwpAQCAtNjUsNyArNjUsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBj
cmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNWYWx1
ZSBwcm90b3R5cGUpIAogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1
cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCAwLCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpP
YmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOyAKKyAgICAgICAgICAgIHJldHVy
biBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIDAsIHByb3RvdHlwZSwgSlNDOjpU
eXBlSW5mbyhKU0M6Okdsb2JhbFRoaXNUeXBlLCBTdHJ1Y3R1cmVGbGFncyksICZzX2luZm8pOyAK
ICAgICAgICAgfQogCiAgICAgICAgIERPTVdyYXBwZXJXb3JsZCogd29ybGQoKSB7IHJldHVybiBt
X3dvcmxkLmdldCgpOyB9CkBAIC03Niw5ICs3Niw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
ICAgIHByaXZhdGU6CiAgICAgICAgIHZvaWQqIG9wZXJhdG9yIG5ldyhzaXplX3QpOwotICAgICAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6Ok92ZXJyaWRlc0dl
dE93blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8IEpTQzo6T3Zl
cnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOworICAgICAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6Ok92ZXJyaWRlc0dldE93
blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEJhc2U6OlN0
cnVjdHVyZUZsYWdzOwogCi0gICAgICAgIHN0YXRpYyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDOjpK
U0NlbGwqLCBKU0M6OlNsb3RWaXNpdG9yJik7CiAgICAgICAgIHZpcnR1YWwgSlNDOjpVU3RyaW5n
IGNsYXNzTmFtZSgpIGNvbnN0OwogICAgICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYg
cHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wg
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CkBAIC05Miw5
ICs5MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBib29sIGRlZmlu
ZU93blByb3BlcnR5KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJiwgYm9vbCBzaG91bGRUaHJvdyk7CiAg
ICAgICAgIHZpcnR1YWwgSlNDOjpKU1ZhbHVlIGxvb2t1cEdldHRlcihKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKICAgICAgICAgdmlydHVhbCBK
U0M6OkpTVmFsdWUgbG9va3VwU2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwotICAgICAgICB2aXJ0dWFsIEpTQzo6SlNPYmplY3QqIHVu
d3JhcHBlZE9iamVjdCgpOwogCi0gICAgICAgIEpTQzo6V3JpdGVCYXJyaWVyPEpTRE9NV2luZG93
PiBtX3dpbmRvdzsKICAgICAgICAgUmVmUHRyPERPTVdyYXBwZXJXb3JsZD4gbV93b3JsZDsKICAg
ICB9OwogCg==
</data>
<flag name="review"
          id="111221"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>