<?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>81206</bug_id>
          
          <creation_ts>2012-03-15 04:22:39 -0700</creation_ts>
          <short_desc>MediaStream API (JSEP): Introducing SessionDescription</short_desc>
          <delta_ts>2012-03-15 21:19:25 -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>WebKit API</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>80589</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tommy Widenflycht">tommyw</reporter>
          <assigned_to name="Tommy Widenflycht">tommyw</assigned_to>
          <cc>abarth</cc>
    
    <cc>harald</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>579267</commentid>
    <comment_count>0</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-03-15 04:22:39 -0700</bug_when>
    <thetext>Adding the SessionDescription JS object and its platform counterpart SessionDescriptionDescriptor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579286</commentid>
    <comment_count>1</comment_count>
      <attachid>132020</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-03-15 04:57:11 -0700</bug_when>
    <thetext>Created attachment 132020
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579310</commentid>
    <comment_count>2</comment_count>
      <attachid>132030</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-03-15 06:17:23 -0700</bug_when>
    <thetext>Created attachment 132030
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579517</commentid>
    <comment_count>3</comment_count>
      <attachid>132030</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-15 10:58:27 -0700</bug_when>
    <thetext>Comment on attachment 132030
Patch

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

&gt; Source/WebCore/Modules/mediastream/SessionDescription.idl:41
&gt; +        // adds the specified candidate to the description
&gt; +        void addCandidate(in IceCandidate candidate);
&gt; +
&gt; +        // serializes the description to SDP
&gt; +        DOMString toSdp();

Please remove these comments.  Folks should read the spec if they want to know what these functions do.

&gt; Source/WebCore/platform/mediastream/SessionDescriptionDescriptor.h:57
&gt; +    SessionDescriptionDescriptor(const String&amp; sdp);

One-argument constructors should have the &quot;explicit&quot; keyword.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579520</commentid>
    <comment_count>4</comment_count>
      <attachid>132030</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-15 11:00:09 -0700</bug_when>
    <thetext>Comment on attachment 132030
Patch

Please consider addressing these nits in a follow-up patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580103</commentid>
    <comment_count>5</comment_count>
      <attachid>132030</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-15 21:19:21 -0700</bug_when>
    <thetext>Comment on attachment 132030
Patch

Clearing flags on attachment: 132030

Committed r110943: &lt;http://trac.webkit.org/changeset/110943&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580104</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-15 21:19:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132020</attachid>
            <date>2012-03-15 04:57:11 -0700</date>
            <delta_ts>2012-03-15 06:17:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81206-20120315125708.patch</filename>
            <type>text/plain</type>
            <size>22674</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwODMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTk2NjZmZTVmNjE4MDVk
NWI1ODI0YmYzZTYxODg3MmMwNjQxNWQzNS4uNjAyMDgwNTI3Yjk1MTNmOTUzZDYyOTJhMTQwZDBh
ZjQ5MGJlN2Q5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTAzLTE1ICBUb21t
eSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFt
IEFQSSAoSlNFUCk6IEludHJvZHVjaW5nIFNlc3Npb25EZXNjcmlwdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODEyMDYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXRjaCAjMyBpbiBhIHNlcmllcyBv
ZiBwYXRjaGVzIHRvIGNoYW5nZSB0aGUgUGVlckNvbm5lY3Rpb24gZnJvbSBST0FQIHRvIEpTRVAs
CisgICAgICAgIHNlZSBidWcgODA1ODkgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgICAgICAgIEFk
ZGluZyB0aGUgU2Vzc2lvbkRlc2NyaXB0aW9uIEpTIG9iamVjdCBhbmQgaXRzIHBsYXRmb3JtIGNv
dW50ZXJwYXJ0IFNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuCisKKyAgICAgICAgTm90IHBv
c3NpYmxlIHRvIHRlc3QgdW50aWwgdGhlIGVudGlyZSBKU0VQIGZlYXR1cmUgaXMgY29tbWl0ZWQu
CisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIuY3BwLgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXNzaW9uRGVzY3JpcHRpb246OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTZXNzaW9uRGVzY3JpcHRpb246OlNlc3Npb25EZXNjcmlwdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpTZXNzaW9uRGVzY3JpcHRpb246On5TZXNzaW9uRGVzY3Jp
cHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Vzc2lvbkRlc2NyaXB0aW9uOjphZGRDYW5kaWRh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Vzc2lvbkRlc2NyaXB0aW9uOjp0b1NkcCk6CisgICAg
ICAgIChXZWJDb3JlOjpTZXNzaW9uRGVzY3JpcHRpb246OmRlc2NyaXB0b3IpOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmg6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2VudGVyLmNwcC4K
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoU2Vzc2lvbkRlc2NyaXB0aW9uKToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbi5pZGw6IEFkZGVkLgor
ICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbUNlbnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbUNlbnRl
cjo6Y29uc3RydWN0U2RwKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2VudGVyLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKE1lZGlhU3RyZWFtQ2VudGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9TZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIuY3BwLgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlw
dG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3Jp
cHRvcjo6U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcik6CisgICAgICAgIChXZWJDb3JlOjpT
ZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yOjp+U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRv
cik6CisgICAgICAgIChXZWJDb3JlOjpTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yOjphZGRD
YW5kaWRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRv
cjo6dG9TZHApOgorICAgICAgICAoV2ViQ29yZTo6U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRv
cjo6bnVtYmVyT2ZBZGRlZENhbmRpZGF0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2Vzc2lvbkRl
c2NyaXB0aW9uRGVzY3JpcHRvcjo6Y2FuZGlkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlc3Np
b25EZXNjcmlwdGlvbkRlc2NyaXB0b3I6OmluaXRpYWxTZHApOgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaDogQ29waWVkIGZyb20g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIuY3Bw
LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlw
dG9yKToKKwogMjAxMi0wMy0xNCAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29t
PgogCiAgICAgICAgIEFYRGVzY3JpcHRpb24gZm9yIEhUTUw1IGZvb3RlcgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KaW5kZXggOWI1OGM5NTJhYmU3MDk1NjY4NTMwN2EyNGM4OGFlN2U1NGEy
YjU2My4uNWQ5ZjgxYTk5ZDI0MjBhZDNiNjk0NWNkZDgyNmI0MDBkZDNiYmJmOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC00NjgsNiArNDY4LDggQEAgd2ViY29yZV9idWlsdF9z
b3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2NyaXB0UHJvZmlsZS5oIFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2NyaXB0UHJvZmlsZU5vZGUuY3BwIFwKIAlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTU2NyaXB0UHJvZmlsZU5vZGUuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNTZXNzaW9uRGVzY3JpcHRpb24uaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U1NoYWRvd1Jvb3QuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2hhZG93Um9vdC5o
IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2hhcmVkV29ya2VyQ29udGV4dC5jcHAgXApA
QCAtNjczLDYgKzY3NSw3IEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAogCSQoV2ViQ29yZSkvTW9k
dWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWFFcnJvci5pZGwgXAogCSQoV2ViQ29y
ZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrLmlk
bCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYVN1
Y2Nlc3NDYWxsYmFjay5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9TZXNz
aW9uRGVzY3JpcHRpb24uaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vU2ln
bmFsaW5nQ2FsbGJhY2suaWRsIFwKIAkkKFdlYkNvcmUpL2Nzcy9DU1NDaGFyc2V0UnVsZS5pZGwg
XAogCSQoV2ViQ29yZSkvY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwgXApAQCAtMzMzNCw2ICszMzM3
LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbUNvbXBvbmVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbURlc2NyaXB0b3IuaCBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Tb3VyY2UuaCBcCisJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5jcHAg
XAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlv
bkRlc2NyaXB0b3IuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0
cmVhbWVyL0RlcHJlY2F0ZWRQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmgg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9TZXNzaW9u
RGVzY3JpcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9TZXNz
aW9uRGVzY3JpcHRpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3ZDIyYjZlMGFjYTNkNTY2N2YyMGMzM2U0
NmVkYTllYmJjNTI2ZjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAKQEAgLTAsMCArMSw4MCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiAgICBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisg
KiAgICBkaXN0cmlidXRpb24uCisgKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzCisgKiAgICBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNp
bmNsdWRlICJTZXNzaW9uRGVzY3JpcHRpb24uaCIKKworI2luY2x1ZGUgIkljZUNhbmRpZGF0ZS5o
IgorI2luY2x1ZGUgIkljZUNhbmRpZGF0ZURlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJNZWRpYVN0
cmVhbUNlbnRlci5oIgorI2luY2x1ZGUgIlNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPFNlc3Npb25EZXNjcmlwdGlvbj4g
U2Vzc2lvbkRlc2NyaXB0aW9uOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBzZHApCit7CisgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBTZXNzaW9uRGVzY3JpcHRpb24oU2Vzc2lvbkRlc2NyaXB0aW9uRGVz
Y3JpcHRvcjo6Y3JlYXRlKHNkcCkpKTsKK30KKworUGFzc1JlZlB0cjxTZXNzaW9uRGVzY3JpcHRp
b24+IFNlc3Npb25EZXNjcmlwdGlvbjo6Y3JlYXRlKFBhc3NSZWZQdHI8U2Vzc2lvbkRlc2NyaXB0
aW9uRGVzY3JpcHRvcj4gZGVzY3JpcHRvcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNl
c3Npb25EZXNjcmlwdGlvbihkZXNjcmlwdG9yKSk7Cit9CisKK1Nlc3Npb25EZXNjcmlwdGlvbjo6
U2Vzc2lvbkRlc2NyaXB0aW9uKFBhc3NSZWZQdHI8U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRv
cj4gZGVzY3JpcHRvcikKKyAgICA6IG1fZGVzY3JpcHRvcihkZXNjcmlwdG9yKQoreworfQorCitT
ZXNzaW9uRGVzY3JpcHRpb246On5TZXNzaW9uRGVzY3JpcHRpb24oKQoreworfQorCit2b2lkIFNl
c3Npb25EZXNjcmlwdGlvbjo6YWRkQ2FuZGlkYXRlKFBhc3NSZWZQdHI8SWNlQ2FuZGlkYXRlPiBj
YW5kaWRhdGUpCit7CisgICAgbV9kZXNjcmlwdG9yLT5hZGRDYW5kaWRhdGUoY2FuZGlkYXRlLT5k
ZXNjcmlwdG9yKCkpOworfQorCitTdHJpbmcgU2Vzc2lvbkRlc2NyaXB0aW9uOjp0b1NkcCgpCit7
CisgICAgcmV0dXJuIG1fZGVzY3JpcHRvci0+dG9TZHAoKTsKK30KKworU2Vzc2lvbkRlc2NyaXB0
aW9uRGVzY3JpcHRvciogU2Vzc2lvbkRlc2NyaXB0aW9uOjpkZXNjcmlwdG9yKCkKK3sKKyAgICBy
ZXR1cm4gbV9kZXNjcmlwdG9yLmdldCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NmE1MTkwMWYwYmUwZjk1ZjJhYzcyY2M1NTAzY2E3NzBiMWQ2NWY5OQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9u
LmgKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisgKiAgICBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiAgICBkaXN0cmlidXRpb24uCisgKiAzLiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9y
cworICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbSB0aGlzCisgKiAgICBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU2Vzc2lvbkRlc2NyaXB0aW9uX2gK
KyNkZWZpbmUgU2Vzc2lvbkRlc2NyaXB0aW9uX2gKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CisKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgSWNlQ2FuZGlkYXRlOworY2xhc3MgU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3Jp
cHRvcjsKKworY2xhc3MgU2Vzc2lvbkRlc2NyaXB0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8U2Vz
c2lvbkRlc2NyaXB0aW9uPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U2Vzc2lv
bkRlc2NyaXB0aW9uPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBzZHApOworICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFNlc3Npb25EZXNjcmlwdGlvbj4gY3JlYXRlKFBhc3NSZWZQdHI8U2Vzc2lvbkRlc2Ny
aXB0aW9uRGVzY3JpcHRvcj4pOworICAgIHZpcnR1YWwgflNlc3Npb25EZXNjcmlwdGlvbigpOwor
CisgICAgdm9pZCBhZGRDYW5kaWRhdGUoUGFzc1JlZlB0cjxJY2VDYW5kaWRhdGU+KTsKKyAgICBT
dHJpbmcgdG9TZHAoKTsKKworICAgIFNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IqIGRlc2Ny
aXB0b3IoKTsKKworcHJpdmF0ZToKKyAgICBTZXNzaW9uRGVzY3JpcHRpb24oUGFzc1JlZlB0cjxT
ZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPik7CisKKyAgICBSZWZQdHI8U2Vzc2lvbkRlc2Ny
aXB0aW9uRGVzY3JpcHRvcj4gbV9kZXNjcmlwdG9yOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2VuZGlmIC8vIFNlc3Np
b25EZXNjcmlwdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbi5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjkyMzE4YzhlMWMz
NzIyNGE0Nzc4YTkxZWQwYzJkZGNjZjE2NTJhNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmlkbApAQCAtMCww
ICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyAqICAgIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqICAgIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRo
aXMKKyAqICAgIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworbW9kdWxlIHAycCB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAg
ICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sCisgICAgICAgIENvbnN0cnVjdG9yKGluIERPTVN0
cmluZyBzZHApCisgICAgXSBTZXNzaW9uRGVzY3JpcHRpb24geworICAgICAgICAvLyBhZGRzIHRo
ZSBzcGVjaWZpZWQgY2FuZGlkYXRlIHRvIHRoZSBkZXNjcmlwdGlvbgorICAgICAgICB2b2lkIGFk
ZENhbmRpZGF0ZShpbiBJY2VDYW5kaWRhdGUgY2FuZGlkYXRlKTsKKworICAgICAgICAvLyBzZXJp
YWxpemVzIHRoZSBkZXNjcmlwdGlvbiB0byBTRFAKKyAgICAgICAgRE9NU3RyaW5nIHRvU2RwKCk7
CisgICAgfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDc1ZjBjOGYwNWJjY2Y0ZWI4OTJhYmI4
MGJmMjdkYjY5MmQyMGYxY2UuLjUwOWI4ZWRjMWIwNzgwOWQ0NzhmZWU5ZjFmNjU4ZmY0MTY2ZjNj
MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTQyNiw2ICs0MjYsOCBAQAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ29tcG9uZW50LmgnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtRGVzY3JpcHRvci5oJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVNvdXJjZS5oJywKKyAgICAgICAg
ICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmNw
cCcsCisgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9u
RGVzY3JpcHRvci5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tb2NrL0RldmljZU9yaWVudGF0
aW9uQ2xpZW50TW9jay5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9u
Q2xpZW50TW9jay5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9uZXR3b3JrL0F1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlQmFzZS5oJywKQEAgLTc2Niw2ICs3NjgsNyBAQAogICAgICAgICAgICAgJ01v
ZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhRXJyb3IuaWRsJywKICAgICAgICAg
ICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2su
aWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRp
YVN1Y2Nlc3NDYWxsYmFjay5pZGwnLAorICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0v
U2Vzc2lvbkRlc2NyaXB0aW9uLmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVh
bS9TaWduYWxpbmdDYWxsYmFjay5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvc3BlZWNoL0RP
TVdpbmRvd1NwZWVjaC5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvc3BlZWNoL1NwZWVjaEdy
YW1tYXIuaWRsJywKQEAgLTE0MTAsNiArMTQxMyw4IEBACiAgICAgICAgICAgICAnTW9kdWxlcy9t
ZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWFFcnJvci5oJywKICAgICAgICAgICAgICdNb2R1
bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2suaCcsCiAgICAg
ICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2Fs
bGJhY2suaCcsCisgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3Jp
cHRpb24uY3BwJywKKyAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNj
cmlwdGlvbi5oJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1NpZ25hbGluZ0Nh
bGxiYWNrLmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ2xp
ZW50LmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJv
bGxlci5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1DZW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIuY3BwCmluZGV4IDlkYjNkMGM1ZTY3NDIzZDFjYmYzMjgz
MmQ4MDU4YjZhNDk2ZTBjMTUuLjY1OWYyYWQ0Njk5MGFiMzZmZTcyOTAyYWE5ODE0NTc5MzYzNzMw
NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtQ2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbUNlbnRlci5jcHAKQEAgLTM0LDggKzM0LDEwIEBACiAKICNpbmNsdWRlICJN
ZWRpYVN0cmVhbUNlbnRlci5oIgogCisjaW5jbHVkZSAiSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5o
IgogI2luY2x1ZGUgIk1haW5UaHJlYWQuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbURlc2NyaXB0
b3IuaCIKKyNpbmNsdWRlICJTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApAQCAtNjAsNiArNjIsMTEgQEAgU3RyaW5nIE1lZGlhU3RyZWFtQ2Vu
dGVyOjpjb25zdHJ1Y3RTZHAoSWNlQ2FuZGlkYXRlRGVzY3JpcHRvciopCiAgICAgcmV0dXJuICIi
OwogfQogCitTdHJpbmcgTWVkaWFTdHJlYW1DZW50ZXI6OmNvbnN0cnVjdFNkcChTZXNzaW9uRGVz
Y3JpcHRpb25EZXNjcmlwdG9yKikKK3sKKyAgICByZXR1cm4gIiI7Cit9CisKICNpZiAhUExBVEZP
Uk0oQ0hST01JVU0pCiAKIC8vIEVtcHR5IGltcGxlbWVudGF0aW9ucyBmb3IgcG9ydHMgdGhhdCBi
dWlsZCB3aXRoIE1FRElBX1NUUkVBTSBlbmFibGVkIGJ5IGRlZmF1bHQsIGJ1dCBoYXZlbid0IHll
dCBpbXBsZW1lbnRlZCBNZWRpYVN0cmVhbUNlbnRlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2VudGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNlbnRlci5oCmluZGV4IGRjYjk1
OTQ5YTE0YjE3ODMwMjgwMDBjYjI3YzZmNjg0ZGM4ZDQyN2YuLjY2NjRlMjM0ZjZhYWY2OTNkNDA3
NTBlMWI0MmFhNDdiZmQ1N2Q2ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2VudGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIuaApAQCAtMSw1ICsxLDYgQEAKIC8q
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDUsNiArNDYsNyBAQCBjbGFzcyBN
ZWRpYVN0cmVhbUNlbnRlckludGVybmFsOwogY2xhc3MgSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcjsK
IGNsYXNzIE1lZGlhU3RyZWFtQ29tcG9uZW50OwogY2xhc3MgTWVkaWFTdHJlYW1EZXNjcmlwdG9y
OworY2xhc3MgU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcjsKIAogY2xhc3MgTWVkaWFTdHJl
YW1Tb3VyY2VzUXVlcnlDbGllbnQgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVN0cmVhbVNvdXJj
ZXNRdWVyeUNsaWVudD4gewogcHVibGljOgpAQCAtNzYsNiArNzgsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBkaWRDb25zdHJ1Y3RNZWRpYVN0cmVhbShNZWRpYVN0cmVhbURlc2NyaXB0b3IqKTsKIAog
ICAgIFN0cmluZyBjb25zdHJ1Y3RTZHAoSWNlQ2FuZGlkYXRlRGVzY3JpcHRvciopOworICAgIFN0
cmluZyBjb25zdHJ1Y3RTZHAoU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvciopOwogCiAgICAg
Ly8gQ2FsbHMgZnJvbSB0aGUgcGxhdGZvcm0gdG8gdXBkYXRlIHRoZSBET00gb2JqZWN0cwogICAg
IHZvaWQgZW5kTG9jYWxNZWRpYVN0cmVhbShNZWRpYVN0cmVhbURlc2NyaXB0b3IqKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlw
dGlvbkRlc2NyaXB0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGE0ZjM3OTUxZTdj
MGQxYmRlNDlhYzA2MDVmNTg0NTExNDA0NTBkMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3Iu
Y3BwCkBAIC0wLDAgKzEsODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJpYnV0aW9uLgorICogMy4gTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRv
cnMKKyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20gdGhpcworICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3Jp
cHRvci5oIgorCisjaW5jbHVkZSAiSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5oIgorI2luY2x1ZGUg
Ik1lZGlhU3RyZWFtQ2VudGVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0
cjxTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPiBTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlw
dG9yOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBzZHApCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yKHNkcCkpOworfQorCitTZXNzaW9uRGVzY3Jp
cHRpb25EZXNjcmlwdG9yOjpTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yKGNvbnN0IFN0cmlu
ZyYgc2RwKQorICAgIDogbV9pbml0aWFsU2RwKHNkcCkKK3sKK30KKworU2Vzc2lvbkRlc2NyaXB0
aW9uRGVzY3JpcHRvcjo6flNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IoKQoreworfQorCit2
b2lkIFNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I6OmFkZENhbmRpZGF0ZShQYXNzUmVmUHRy
PEljZUNhbmRpZGF0ZURlc2NyaXB0b3I+IGNhbmRpZGF0ZSkKK3sKKyAgICBtX2NhbmRpZGF0ZXMu
YXBwZW5kKGNhbmRpZGF0ZSk7Cit9CisKK1N0cmluZyBTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlw
dG9yOjp0b1NkcCgpCit7CisgICAgcmV0dXJuIE1lZGlhU3RyZWFtQ2VudGVyOjppbnN0YW5jZSgp
LmNvbnN0cnVjdFNkcCh0aGlzKTsKK30KKworc2l6ZV90IFNlc3Npb25EZXNjcmlwdGlvbkRlc2Ny
aXB0b3I6Om51bWJlck9mQWRkZWRDYW5kaWRhdGVzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9j
YW5kaWRhdGVzLnNpemUoKTsKK30KKworSWNlQ2FuZGlkYXRlRGVzY3JpcHRvciogU2Vzc2lvbkRl
c2NyaXB0aW9uRGVzY3JpcHRvcjo6Y2FuZGlkYXRlKHNpemVfdCBpbmRleCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9jYW5kaWRhdGVzW2luZGV4XS5nZXQoKTsKK30KKworY29uc3QgU3RyaW5nJiBT
ZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yOjppbml0aWFsU2RwKCkKK3sKKyAgICByZXR1cm4g
bV9pbml0aWFsU2RwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjlkMTI1Yzg1YjJhZjUxZTQzZTMxMGJjNjYyOGQ3MmMwOTFkYzVlNmYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9TZXNzaW9u
RGVzY3JpcHRpb25EZXNjcmlwdG9yLmgKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiAgICBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiAgICBkaXN0cmli
dXRpb24uCisgKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzCisgKiAgICBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisg
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcl9oCisjZGVmaW5lIFNlc3Npb25EZXNjcmlwdGlv
bkRlc2NyaXB0b3JfaAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBJY2VD
YW5kaWRhdGVEZXNjcmlwdG9yOworCitjbGFzcyBTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9y
IDogcHVibGljIFJlZkNvdW50ZWQ8U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4geworcHVi
bGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+
IGNyZWF0ZShjb25zdCBTdHJpbmcmIHNkcCk7CisgICAgdmlydHVhbCB+U2Vzc2lvbkRlc2NyaXB0
aW9uRGVzY3JpcHRvcigpOworCisgICAgdm9pZCBhZGRDYW5kaWRhdGUoUGFzc1JlZlB0cjxJY2VD
YW5kaWRhdGVEZXNjcmlwdG9yPik7CisgICAgU3RyaW5nIHRvU2RwKCk7CisKKyAgICBzaXplX3Qg
bnVtYmVyT2ZBZGRlZENhbmRpZGF0ZXMoKSBjb25zdDsKKyAgICBJY2VDYW5kaWRhdGVEZXNjcmlw
dG9yKiBjYW5kaWRhdGUoc2l6ZV90IGluZGV4KSBjb25zdDsKKyAgICBjb25zdCBTdHJpbmcmIGlu
aXRpYWxTZHAoKTsKKworcHJpdmF0ZToKKyAgICBTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9y
KGNvbnN0IFN0cmluZyYgc2RwKTsKKworICAgIFN0cmluZyBtX2luaXRpYWxTZHA7CisgICAgVmVj
dG9yPFJlZlB0cjxJY2VDYW5kaWRhdGVEZXNjcmlwdG9yPiA+IG1fY2FuZGlkYXRlczsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0p
CisKKyNlbmRpZiAvLyBTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yX2gK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132030</attachid>
            <date>2012-03-15 06:17:23 -0700</date>
            <delta_ts>2012-03-15 21:19:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81206-20120315141721.patch</filename>
            <type>text/plain</type>
            <size>23229</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwODMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTk2NjZmZTVmNjE4MDVk
NWI1ODI0YmYzZTYxODg3MmMwNjQxNWQzNS4uNjAyMDgwNTI3Yjk1MTNmOTUzZDYyOTJhMTQwZDBh
ZjQ5MGJlN2Q5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTAzLTE1ICBUb21t
eSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFt
IEFQSSAoSlNFUCk6IEludHJvZHVjaW5nIFNlc3Npb25EZXNjcmlwdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODEyMDYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXRjaCAjMyBpbiBhIHNlcmllcyBv
ZiBwYXRjaGVzIHRvIGNoYW5nZSB0aGUgUGVlckNvbm5lY3Rpb24gZnJvbSBST0FQIHRvIEpTRVAs
CisgICAgICAgIHNlZSBidWcgODA1ODkgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgICAgICAgIEFk
ZGluZyB0aGUgU2Vzc2lvbkRlc2NyaXB0aW9uIEpTIG9iamVjdCBhbmQgaXRzIHBsYXRmb3JtIGNv
dW50ZXJwYXJ0IFNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuCisKKyAgICAgICAgTm90IHBv
c3NpYmxlIHRvIHRlc3QgdW50aWwgdGhlIGVudGlyZSBKU0VQIGZlYXR1cmUgaXMgY29tbWl0ZWQu
CisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIuY3BwLgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXNzaW9uRGVzY3JpcHRpb246OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTZXNzaW9uRGVzY3JpcHRpb246OlNlc3Npb25EZXNjcmlwdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpTZXNzaW9uRGVzY3JpcHRpb246On5TZXNzaW9uRGVzY3Jp
cHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Vzc2lvbkRlc2NyaXB0aW9uOjphZGRDYW5kaWRh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Vzc2lvbkRlc2NyaXB0aW9uOjp0b1NkcCk6CisgICAg
ICAgIChXZWJDb3JlOjpTZXNzaW9uRGVzY3JpcHRpb246OmRlc2NyaXB0b3IpOgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmg6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2VudGVyLmNwcC4K
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoU2Vzc2lvbkRlc2NyaXB0aW9uKToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbi5pZGw6IEFkZGVkLgor
ICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbUNlbnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbUNlbnRl
cjo6Y29uc3RydWN0U2RwKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2VudGVyLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKE1lZGlhU3RyZWFtQ2VudGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9TZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIuY3BwLgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlw
dG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3Jp
cHRvcjo6U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcik6CisgICAgICAgIChXZWJDb3JlOjpT
ZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yOjp+U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRv
cik6CisgICAgICAgIChXZWJDb3JlOjpTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yOjphZGRD
YW5kaWRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRv
cjo6dG9TZHApOgorICAgICAgICAoV2ViQ29yZTo6U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRv
cjo6bnVtYmVyT2ZBZGRlZENhbmRpZGF0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2Vzc2lvbkRl
c2NyaXB0aW9uRGVzY3JpcHRvcjo6Y2FuZGlkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlc3Np
b25EZXNjcmlwdGlvbkRlc2NyaXB0b3I6OmluaXRpYWxTZHApOgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaDogQ29waWVkIGZyb20g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIuY3Bw
LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlw
dG9yKToKKwogMjAxMi0wMy0xNCAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29t
PgogCiAgICAgICAgIEFYRGVzY3JpcHRpb24gZm9yIEhUTUw1IGZvb3RlcgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KaW5kZXggOWI1OGM5NTJhYmU3MDk1NjY4NTMwN2EyNGM4OGFlN2U1NGEy
YjU2My4uY2U3NmM5MjQ5YTM0OGEwZjJlZDZiNGVmYmQ2ZDRiYjkyZDkxZGEwZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC00NjgsNiArNDY4LDggQEAgd2ViY29yZV9idWlsdF9z
b3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2NyaXB0UHJvZmlsZS5oIFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2NyaXB0UHJvZmlsZU5vZGUuY3BwIFwKIAlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTU2NyaXB0UHJvZmlsZU5vZGUuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNTZXNzaW9uRGVzY3JpcHRpb24uaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U1NoYWRvd1Jvb3QuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2hhZG93Um9vdC5o
IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2hhcmVkV29ya2VyQ29udGV4dC5jcHAgXApA
QCAtNjczLDYgKzY3NSw3IEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAogCSQoV2ViQ29yZSkvTW9k
dWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWFFcnJvci5pZGwgXAogCSQoV2ViQ29y
ZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrLmlk
bCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYVN1
Y2Nlc3NDYWxsYmFjay5pZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9TZXNz
aW9uRGVzY3JpcHRpb24uaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vU2ln
bmFsaW5nQ2FsbGJhY2suaWRsIFwKIAkkKFdlYkNvcmUpL2Nzcy9DU1NDaGFyc2V0UnVsZS5pZGwg
XAogCSQoV2ViQ29yZSkvY3NzL0NTU0ZvbnRGYWNlUnVsZS5pZGwgXApAQCAtMTA1Nyw2ICsxMDYw
LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYUVycm9yLmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhRXJyb3JDYWxsYmFjay5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3ND
YWxsYmFjay5oIFwKKwlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Nlc3Npb25E
ZXNjcmlwdGlvbi5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vU2Vz
c2lvbkRlc2NyaXB0aW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
U2lnbmFsaW5nQ2FsbGJhY2suaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9Vc2VyTWVkaWFDbGllbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9Vc2VyTWVkaWFDb250cm9sbGVyLmggXApAQCAtMzMzNCw2ICszMzM5LDggQEAgd2ViY29yZV9z
b3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbUNvbXBvbmVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbURlc2NyaXB0b3IuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1Tb3VyY2UuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5jcHAgXAorCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaCBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0RlcHJlY2F0
ZWRQZWVyQ29ubmVjdGlvbkhhbmRsZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svRGV2aWNlT3JpZW50YXRpb25DbGllbnRNb2NrLmggXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb24u
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjY3ZDIyYjZlMGFjYTNkNTY2N2YyMGMzM2U0NmVkYTllYmJjNTI2ZjEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Nl
c3Npb25EZXNjcmlwdGlvbi5jcHAKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiAgICBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiAgICBkaXN0cmlidXRp
b24uCisgKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzCisgKiAgICBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJTZXNzaW9u
RGVzY3JpcHRpb24uaCIKKworI2luY2x1ZGUgIkljZUNhbmRpZGF0ZS5oIgorI2luY2x1ZGUgIklj
ZUNhbmRpZGF0ZURlc2NyaXB0b3IuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbUNlbnRlci5oIgor
I2luY2x1ZGUgIlNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitQYXNzUmVmUHRyPFNlc3Npb25EZXNjcmlwdGlvbj4gU2Vzc2lvbkRlc2NyaXB0
aW9uOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBzZHApCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBTZXNzaW9uRGVzY3JpcHRpb24oU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcjo6Y3JlYXRl
KHNkcCkpKTsKK30KKworUGFzc1JlZlB0cjxTZXNzaW9uRGVzY3JpcHRpb24+IFNlc3Npb25EZXNj
cmlwdGlvbjo6Y3JlYXRlKFBhc3NSZWZQdHI8U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4g
ZGVzY3JpcHRvcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlc3Npb25EZXNjcmlwdGlv
bihkZXNjcmlwdG9yKSk7Cit9CisKK1Nlc3Npb25EZXNjcmlwdGlvbjo6U2Vzc2lvbkRlc2NyaXB0
aW9uKFBhc3NSZWZQdHI8U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4gZGVzY3JpcHRvcikK
KyAgICA6IG1fZGVzY3JpcHRvcihkZXNjcmlwdG9yKQoreworfQorCitTZXNzaW9uRGVzY3JpcHRp
b246On5TZXNzaW9uRGVzY3JpcHRpb24oKQoreworfQorCit2b2lkIFNlc3Npb25EZXNjcmlwdGlv
bjo6YWRkQ2FuZGlkYXRlKFBhc3NSZWZQdHI8SWNlQ2FuZGlkYXRlPiBjYW5kaWRhdGUpCit7Cisg
ICAgbV9kZXNjcmlwdG9yLT5hZGRDYW5kaWRhdGUoY2FuZGlkYXRlLT5kZXNjcmlwdG9yKCkpOwor
fQorCitTdHJpbmcgU2Vzc2lvbkRlc2NyaXB0aW9uOjp0b1NkcCgpCit7CisgICAgcmV0dXJuIG1f
ZGVzY3JpcHRvci0+dG9TZHAoKTsKK30KKworU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvciog
U2Vzc2lvbkRlc2NyaXB0aW9uOjpkZXNjcmlwdG9yKCkKK3sKKyAgICByZXR1cm4gbV9kZXNjcmlw
dG9yLmdldCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmE1MTkwMWYwYmUwZjk1
ZjJhYzcyY2M1NTAzY2E3NzBiMWQ2NWY5OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmgKQEAgLTAsMCArMSw2
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiAg
ICBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisgKiAgICBkaXN0cmlidXRpb24uCisgKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzCisg
KiAgICBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgU2Vzc2lvbkRlc2NyaXB0aW9uX2gKKyNkZWZpbmUgU2Vzc2lv
bkRlc2NyaXB0aW9uX2gKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSWNl
Q2FuZGlkYXRlOworY2xhc3MgU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcjsKKworY2xhc3Mg
U2Vzc2lvbkRlc2NyaXB0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8U2Vzc2lvbkRlc2NyaXB0aW9u
PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U2Vzc2lvbkRlc2NyaXB0aW9uPiBj
cmVhdGUoY29uc3QgU3RyaW5nJiBzZHApOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlc3Npb25E
ZXNjcmlwdGlvbj4gY3JlYXRlKFBhc3NSZWZQdHI8U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRv
cj4pOworICAgIHZpcnR1YWwgflNlc3Npb25EZXNjcmlwdGlvbigpOworCisgICAgdm9pZCBhZGRD
YW5kaWRhdGUoUGFzc1JlZlB0cjxJY2VDYW5kaWRhdGU+KTsKKyAgICBTdHJpbmcgdG9TZHAoKTsK
KworICAgIFNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IqIGRlc2NyaXB0b3IoKTsKKworcHJp
dmF0ZToKKyAgICBTZXNzaW9uRGVzY3JpcHRpb24oUGFzc1JlZlB0cjxTZXNzaW9uRGVzY3JpcHRp
b25EZXNjcmlwdG9yPik7CisKKyAgICBSZWZQdHI8U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRv
cj4gbV9kZXNjcmlwdG9yOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2VuZGlmIC8vIFNlc3Npb25EZXNjcmlwdGlvbl9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Nlc3Npb25E
ZXNjcmlwdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Nlc3Np
b25EZXNjcmlwdGlvbi5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjkyMzE4YzhlMWMzNzIyNGE0Nzc4YTkxZWQw
YzJkZGNjZjE2NTJhNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmlkbApAQCAtMCwwICsxLDQ0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqICAgIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
ICAgIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMKKyAqICAgIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworbW9kdWxlIHAycCB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1N
RURJQV9TVFJFQU0sCisgICAgICAgIENvbnN0cnVjdG9yKGluIERPTVN0cmluZyBzZHApCisgICAg
XSBTZXNzaW9uRGVzY3JpcHRpb24geworICAgICAgICAvLyBhZGRzIHRoZSBzcGVjaWZpZWQgY2Fu
ZGlkYXRlIHRvIHRoZSBkZXNjcmlwdGlvbgorICAgICAgICB2b2lkIGFkZENhbmRpZGF0ZShpbiBJ
Y2VDYW5kaWRhdGUgY2FuZGlkYXRlKTsKKworICAgICAgICAvLyBzZXJpYWxpemVzIHRoZSBkZXNj
cmlwdGlvbiB0byBTRFAKKyAgICAgICAgRE9NU3RyaW5nIHRvU2RwKCk7CisgICAgfTsKKworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCmluZGV4IDc1ZjBjOGYwNWJjY2Y0ZWI4OTJhYmI4MGJmMjdkYjY5MmQyMGYx
Y2UuLjUwOWI4ZWRjMWIwNzgwOWQ0NzhmZWU5ZjFmNjU4ZmY0MTY2ZjNjMGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKQEAgLTQyNiw2ICs0MjYsOCBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtQ29tcG9uZW50LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtRGVzY3JpcHRvci5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVNvdXJjZS5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmNwcCcsCisgICAgICAgICAg
ICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9tb2NrL0RldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jay5o
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tb2NrL0dlb2xvY2F0aW9uQ2xpZW50TW9jay5oJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9uZXR3b3JrL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFz
ZS5oJywKQEAgLTc2Niw2ICs3NjgsNyBAQAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJl
YW0vTmF2aWdhdG9yVXNlck1lZGlhRXJyb3IuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL21l
ZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2suaWRsJywKICAgICAgICAg
ICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFj
ay5pZGwnLAorICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0
aW9uLmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9TaWduYWxpbmdDYWxs
YmFjay5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvc3BlZWNoL0RPTVdpbmRvd1NwZWVjaC5p
ZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvc3BlZWNoL1NwZWVjaEdyYW1tYXIuaWRsJywKQEAg
LTE0MTAsNiArMTQxMyw4IEBACiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZp
Z2F0b3JVc2VyTWVkaWFFcnJvci5oJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFt
L05hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2suaCcsCiAgICAgICAgICAgICAnTW9kdWxl
cy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWFTdWNjZXNzQ2FsbGJhY2suaCcsCisgICAg
ICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb24uY3BwJywKKyAg
ICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbi5oJywKICAg
ICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL1NpZ25hbGluZ0NhbGxiYWNrLmgnLAogICAg
ICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ2xpZW50LmgnLAogICAgICAg
ICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJvbGxlci5jcHAnLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1D
ZW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1DZW50ZXIuY3BwCmluZGV4IDlkYjNkMGM1ZTY3NDIzZDFjYmYzMjgzMmQ4MDU4YjZhNDk2ZTBj
MTUuLjY1OWYyYWQ0Njk5MGFiMzZmZTcyOTAyYWE5ODE0NTc5MzYzNzMwNzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2VudGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNl
bnRlci5jcHAKQEAgLTM0LDggKzM0LDEwIEBACiAKICNpbmNsdWRlICJNZWRpYVN0cmVhbUNlbnRl
ci5oIgogCisjaW5jbHVkZSAiSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIk1h
aW5UaHJlYWQuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbURlc2NyaXB0b3IuaCIKKyNpbmNsdWRl
ICJTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtNjAsNiArNjIsMTEgQEAgU3RyaW5nIE1lZGlhU3RyZWFtQ2VudGVyOjpjb25zdHJ1Y3RT
ZHAoSWNlQ2FuZGlkYXRlRGVzY3JpcHRvciopCiAgICAgcmV0dXJuICIiOwogfQogCitTdHJpbmcg
TWVkaWFTdHJlYW1DZW50ZXI6OmNvbnN0cnVjdFNkcChTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlw
dG9yKikKK3sKKyAgICByZXR1cm4gIiI7Cit9CisKICNpZiAhUExBVEZPUk0oQ0hST01JVU0pCiAK
IC8vIEVtcHR5IGltcGxlbWVudGF0aW9ucyBmb3IgcG9ydHMgdGhhdCBidWlsZCB3aXRoIE1FRElB
X1NUUkVBTSBlbmFibGVkIGJ5IGRlZmF1bHQsIGJ1dCBoYXZlbid0IHlldCBpbXBsZW1lbnRlZCBN
ZWRpYVN0cmVhbUNlbnRlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2VudGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNlbnRlci5oCmluZGV4IGRjYjk1OTQ5YTE0YjE3ODMwMjgw
MDBjYjI3YzZmNjg0ZGM4ZDQyN2YuLjY2NjRlMjM0ZjZhYWY2OTNkNDA3NTBlMWI0MmFhNDdiZmQ1
N2Q2ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtQ2VudGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1DZW50ZXIuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtNDUsNiArNDYsNyBAQCBjbGFzcyBNZWRpYVN0cmVhbUNlbnRl
ckludGVybmFsOwogY2xhc3MgSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcjsKIGNsYXNzIE1lZGlhU3Ry
ZWFtQ29tcG9uZW50OwogY2xhc3MgTWVkaWFTdHJlYW1EZXNjcmlwdG9yOworY2xhc3MgU2Vzc2lv
bkRlc2NyaXB0aW9uRGVzY3JpcHRvcjsKIAogY2xhc3MgTWVkaWFTdHJlYW1Tb3VyY2VzUXVlcnlD
bGllbnQgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVN0cmVhbVNvdXJjZXNRdWVyeUNsaWVudD4g
ewogcHVibGljOgpAQCAtNzYsNiArNzgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRDb25zdHJ1
Y3RNZWRpYVN0cmVhbShNZWRpYVN0cmVhbURlc2NyaXB0b3IqKTsKIAogICAgIFN0cmluZyBjb25z
dHJ1Y3RTZHAoSWNlQ2FuZGlkYXRlRGVzY3JpcHRvciopOworICAgIFN0cmluZyBjb25zdHJ1Y3RT
ZHAoU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvciopOwogCiAgICAgLy8gQ2FsbHMgZnJvbSB0
aGUgcGxhdGZvcm0gdG8gdXBkYXRlIHRoZSBET00gb2JqZWN0cwogICAgIHZvaWQgZW5kTG9jYWxN
ZWRpYVN0cmVhbShNZWRpYVN0cmVhbURlc2NyaXB0b3IqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0
aW9uRGVzY3JpcHRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGE0ZjM3OTUxZTdjMGQxYmRlNDlhYzA2MDVm
NTg0NTExNDA0NTBkMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuY3BwCkBAIC0wLDAgKzEs
ODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICog
ICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorICogICAgZGlzdHJpYnV0aW9uLgorICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcwor
ICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisg
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQorCisjaW5jbHVkZSAiU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oIgorCisjaW5j
bHVkZSAiSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5oIgorI2luY2x1ZGUgIk1lZGlhU3RyZWFtQ2Vu
dGVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxTZXNzaW9uRGVzY3Jp
cHRpb25EZXNjcmlwdG9yPiBTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yOjpjcmVhdGUoY29u
c3QgU3RyaW5nJiBzZHApCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXNzaW9uRGVzY3Jp
cHRpb25EZXNjcmlwdG9yKHNkcCkpOworfQorCitTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9y
OjpTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yKGNvbnN0IFN0cmluZyYgc2RwKQorICAgIDog
bV9pbml0aWFsU2RwKHNkcCkKK3sKK30KKworU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcjo6
flNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IoKQoreworfQorCit2b2lkIFNlc3Npb25EZXNj
cmlwdGlvbkRlc2NyaXB0b3I6OmFkZENhbmRpZGF0ZShQYXNzUmVmUHRyPEljZUNhbmRpZGF0ZURl
c2NyaXB0b3I+IGNhbmRpZGF0ZSkKK3sKKyAgICBtX2NhbmRpZGF0ZXMuYXBwZW5kKGNhbmRpZGF0
ZSk7Cit9CisKK1N0cmluZyBTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yOjp0b1NkcCgpCit7
CisgICAgcmV0dXJuIE1lZGlhU3RyZWFtQ2VudGVyOjppbnN0YW5jZSgpLmNvbnN0cnVjdFNkcCh0
aGlzKTsKK30KKworc2l6ZV90IFNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I6Om51bWJlck9m
QWRkZWRDYW5kaWRhdGVzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jYW5kaWRhdGVzLnNpemUo
KTsKK30KKworSWNlQ2FuZGlkYXRlRGVzY3JpcHRvciogU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3Jp
cHRvcjo6Y2FuZGlkYXRlKHNpemVfdCBpbmRleCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jYW5k
aWRhdGVzW2luZGV4XS5nZXQoKTsKK30KKworY29uc3QgU3RyaW5nJiBTZXNzaW9uRGVzY3JpcHRp
b25EZXNjcmlwdG9yOjppbml0aWFsU2RwKCkKK3sKKyAgICByZXR1cm4gbV9pbml0aWFsU2RwOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RS
RUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vU2Vz
c2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlkMTI1
Yzg1YjJhZjUxZTQzZTMxMGJjNjYyOGQ3MmMwOTFkYzVlNmYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb25EZXNj
cmlwdG9yLmgKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisgKiAgICBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiAgICBkaXN0cmlidXRpb24uCisgKiAzLiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRy
aWJ1dG9ycworICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbSB0aGlzCisgKiAgICBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU2Vzc2lvbkRlc2NyaXB0
aW9uRGVzY3JpcHRvcl9oCisjZGVmaW5lIFNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3JfaAor
CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBJY2VDYW5kaWRhdGVEZXNjcmlw
dG9yOworCitjbGFzcyBTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yIDogcHVibGljIFJlZkNv
dW50ZWQ8U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4geworcHVibGljOgorICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+IGNyZWF0ZShjb25zdCBT
dHJpbmcmIHNkcCk7CisgICAgdmlydHVhbCB+U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcigp
OworCisgICAgdm9pZCBhZGRDYW5kaWRhdGUoUGFzc1JlZlB0cjxJY2VDYW5kaWRhdGVEZXNjcmlw
dG9yPik7CisgICAgU3RyaW5nIHRvU2RwKCk7CisKKyAgICBzaXplX3QgbnVtYmVyT2ZBZGRlZENh
bmRpZGF0ZXMoKSBjb25zdDsKKyAgICBJY2VDYW5kaWRhdGVEZXNjcmlwdG9yKiBjYW5kaWRhdGUo
c2l6ZV90IGluZGV4KSBjb25zdDsKKyAgICBjb25zdCBTdHJpbmcmIGluaXRpYWxTZHAoKTsKKwor
cHJpdmF0ZToKKyAgICBTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yKGNvbnN0IFN0cmluZyYg
c2RwKTsKKworICAgIFN0cmluZyBtX2luaXRpYWxTZHA7CisgICAgVmVjdG9yPFJlZlB0cjxJY2VD
YW5kaWRhdGVEZXNjcmlwdG9yPiA+IG1fY2FuZGlkYXRlczsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNlbmRpZiAvLyBT
ZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yX2gK
</data>

          </attachment>
      

    </bug>

</bugzilla>