<?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>80699</bug_id>
          
          <creation_ts>2012-03-09 06:28:54 -0800</creation_ts>
          <short_desc>MediaStream API (JSEP): Introducing IceCandidate</short_desc>
          <delta_ts>2012-03-14 12:53:47 -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>gustavo</cc>
    
    <cc>harald</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>574854</commentid>
    <comment_count>0</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-03-09 06:28:54 -0800</bug_when>
    <thetext>Patch #2 in a series of patches to change the PeerConnection from ROAP to JSEP, see bug 80589 for more information.
Adding the JS object IceCandidate and its WebCore/platform sibling IceCandidateDescriptor. This object will be created both from JS and the embedder.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574857</commentid>
    <comment_count>1</comment_count>
      <attachid>131035</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-03-09 06:35:51 -0800</bug_when>
    <thetext>Created attachment 131035
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574896</commentid>
    <comment_count>2</comment_count>
      <attachid>131035</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-03-09 08:06:54 -0800</bug_when>
    <thetext>Comment on attachment 131035
Patch

Attachment 131035 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11906598</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574959</commentid>
    <comment_count>3</comment_count>
      <attachid>131035</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-09 09:41:38 -0800</bug_when>
    <thetext>Comment on attachment 131035
Patch

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

&gt; Source/WebCore/Modules/mediastream/IceCandidate.h:54
&gt; +    String label();
&gt; +    String candidateLine();
&gt; +
&gt; +    String toSdp();

Should these be &quot;const String&amp;&quot; ?

&gt; Source/WebCore/platform/mediastream/IceCandidateDescriptor.h:48
&gt; +    String label() { return m_label; }
&gt; +    String candidateLine() { return m_candidateLine; }

const String&amp;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574960</commentid>
    <comment_count>4</comment_count>
      <attachid>131035</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-09 09:42:47 -0800</bug_when>
    <thetext>Comment on attachment 131035
Patch

Looks like you&apos;ve got build problem on GTK.  This patch generally looks fine, but I&apos;d like to resolve Bug 80692 (or at least come to agreement there with Adam) before we start landing these patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576040</commentid>
    <comment_count>5</comment_count>
      <attachid>131306</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-03-12 03:07:08 -0700</bug_when>
    <thetext>Created attachment 131306
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576042</commentid>
    <comment_count>6</comment_count>
      <attachid>131035</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-03-12 03:08:55 -0700</bug_when>
    <thetext>Comment on attachment 131035
Patch

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

&gt;&gt; Source/WebCore/Modules/mediastream/IceCandidate.h:54
&gt;&gt; +    String toSdp();
&gt; 
&gt; Should these be &quot;const String&amp;&quot; ?

toSdp will return a generated string and therefore can&apos;t return a const String&amp; but the two accessors have been fixed.

&gt;&gt; Source/WebCore/platform/mediastream/IceCandidateDescriptor.h:48
&gt;&gt; +    String candidateLine() { return m_candidateLine; }
&gt; 
&gt; const String&amp;

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576043</commentid>
    <comment_count>7</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-03-12 03:10:37 -0700</bug_when>
    <thetext>Sure thing, just uploaded an uploaded an patch to see if I fixed GTK (which btw I can&apos;t build either on my Ubuntu box or Mac for some strange reason)

(In reply to comment #4)
&gt; (From update of attachment 131035 [details])
&gt; Looks like you&apos;ve got build problem on GTK.  This patch generally looks fine, but I&apos;d like to resolve Bug 80692 (or at least come to agreement there with Adam) before we start landing these patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576318</commentid>
    <comment_count>8</comment_count>
      <attachid>131306</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-12 11:31:28 -0700</bug_when>
    <thetext>Comment on attachment 131306
Patch

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

&gt; Source/WebCore/platform/mediastream/IceCandidateDescriptor.cpp:58
&gt; +    return MediaStreamCenter::instance().doConstructSdp(this);

doConstructSdp -&gt; constructSdp (WebKit doesn&apos;t use the prefix &quot;do&quot;.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576319</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-12 11:32:31 -0700</bug_when>
    <thetext>We can move forward with these patches why we give Adam a chance to respond on Bug 80692 as long as we don&apos;t have a dependency on the final names for the PeerConnection object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577262</commentid>
    <comment_count>10</comment_count>
      <attachid>131602</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-03-13 06:37:43 -0700</bug_when>
    <thetext>Created attachment 131602
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577263</commentid>
    <comment_count>11</comment_count>
      <attachid>131306</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-03-13 06:38:58 -0700</bug_when>
    <thetext>Comment on attachment 131306
Patch

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

&gt;&gt; Source/WebCore/platform/mediastream/IceCandidateDescriptor.cpp:58
&gt;&gt; +    return MediaStreamCenter::instance().doConstructSdp(this);
&gt; 
&gt; doConstructSdp -&gt; constructSdp (WebKit doesn&apos;t use the prefix &quot;do&quot;.)

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577519</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-13 10:38:05 -0700</bug_when>
    <thetext>Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577646</commentid>
    <comment_count>13</comment_count>
      <attachid>131602</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-13 12:14:15 -0700</bug_when>
    <thetext>Comment on attachment 131602
Patch

Rejecting attachment 131602 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
 to file Source/WebCore/WebCore.gypi.rej
patching file Source/WebCore/platform/mediastream/IceCandidateDescriptor.cpp
patching file Source/WebCore/platform/mediastream/IceCandidateDescriptor.h
patching file Source/WebCore/platform/mediastream/MediaStreamCenter.cpp
patching file Source/WebCore/platform/mediastream/MediaStreamCenter.h

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;, u&apos;--reviewer&apos;, u&apos;Adam Barth&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue/

Full output: http://queues.webkit.org/results/11942657</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578278</commentid>
    <comment_count>14</comment_count>
      <attachid>131815</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-03-14 02:52:17 -0700</bug_when>
    <thetext>Created attachment 131815
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578279</commentid>
    <comment_count>15</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-03-14 02:53:37 -0700</bug_when>
    <thetext>Just merge fixes of the makefiles, no code changes att all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578673</commentid>
    <comment_count>16</comment_count>
      <attachid>131815</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-14 12:53:41 -0700</bug_when>
    <thetext>Comment on attachment 131815
Patch

Clearing flags on attachment: 131815

Committed r110735: &lt;http://trac.webkit.org/changeset/110735&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578674</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-14 12:53:47 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131035</attachid>
            <date>2012-03-09 06:35:51 -0800</date>
            <delta_ts>2012-03-12 03:08:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80699-20120309153549.patch</filename>
            <type>text/plain</type>
            <size>20785</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwMjc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjZmZDRlMmI3M2FmMGNl
MWYxYjQ3MWJlMzNhZmU0OTI1MzE3MzI4Zi4uZWEyMGE3MTczY2RjOGVmZmIxMDRmMzMwNDAxNGMz
ZTk2ODJhYTJiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTAzLTA5ICBUb21t
eSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFt
IEFQSSAoSlNFUCk6IEludHJvZHVjaW5nIEljZUNhbmRpZGF0ZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA2OTkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXRjaCAjMiBpbiBhIHNlcmllcyBvZiBwYXRj
aGVzIHRvIGNoYW5nZSB0aGUgUGVlckNvbm5lY3Rpb24gZnJvbSBST0FQIHRvIEpTRVAsCisgICAg
ICAgIHNlZSBidWcgODA1ODkgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgICAgICAgIEFkZGluZyB0
aGUgSlMgb2JqZWN0IEljZUNhbmRpZGF0ZSBhbmQgaXRzIFdlYkNvcmUvcGxhdGZvcm0gc2libGlu
ZyBJY2VDYW5kaWRhdGVEZXNjcmlwdG9yLgorICAgICAgICBUaGlzIG9iamVjdCB3aWxsIGJlIGNy
ZWF0ZWQgYm90aCBmcm9tIEpTIGFuZCB0aGUgZW1iZWRkZXIuCisKKyAgICAgICAgTm90IHBvc3Np
YmxlIHRvIHRlc3QgdW50aWwgdGhlIGVudGlyZSBKU0VQIGZlYXR1cmUgaXMgY29tbWl0ZWQuCisK
KyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vSWNlQ2FuZGlkYXRlLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIuY3BwLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpJY2VDYW5kaWRhdGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpJY2VDYW5kaWRhdGU6OkljZUNhbmRpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJY2VD
YW5kaWRhdGU6On5JY2VDYW5kaWRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SWNlQ2FuZGlkYXRl
OjpsYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpJY2VDYW5kaWRhdGU6OmNhbmRpZGF0ZUxpbmUp
OgorICAgICAgICAoV2ViQ29yZTo6SWNlQ2FuZGlkYXRlOjp0b1NkcCk6CisgICAgICAgIChXZWJD
b3JlOjpJY2VDYW5kaWRhdGU6OmRlc2NyaXB0b3IpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vSWNlQ2FuZGlkYXRlLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2VudGVyLmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoSWNlQ2FuZGlkYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL0lj
ZUNhbmRpZGF0ZS5pZGw6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGVEZXNjcmlwdG9yLmNwcDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50
ZXIuY3BwLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJY2VDYW5kaWRh
dGVEZXNjcmlwdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SWNlQ2FuZGlkYXRlRGVz
Y3JpcHRvcjo6SWNlQ2FuZGlkYXRlRGVzY3JpcHRvcik6CisgICAgICAgIChXZWJDb3JlOjpJY2VD
YW5kaWRhdGVEZXNjcmlwdG9yOjp+SWNlQ2FuZGlkYXRlRGVzY3JpcHRvcik6CisgICAgICAgIChX
ZWJDb3JlOjpJY2VDYW5kaWRhdGVEZXNjcmlwdG9yOjp0b1NkcCk6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNlbnRlci5jcHAuCisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEljZUNhbmRpZGF0ZURlc2NyaXB0b3IpOgorICAg
ICAgICAoV2ViQ29yZTo6SWNlQ2FuZGlkYXRlRGVzY3JpcHRvcjo6bGFiZWwpOgorICAgICAgICAo
V2ViQ29yZTo6SWNlQ2FuZGlkYXRlRGVzY3JpcHRvcjo6Y2FuZGlkYXRlTGluZSk6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTdHJlYW1DZW50ZXI6OmRvQ29uc3RydWN0U2RwKToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2VudGVy
Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE1lZGlhU3RyZWFtQ2VudGVyKToKKwog
MjAxMi0wMy0wOSAgTWFyamEgSMO2bHR0w6QgIDxtYXJqYUBnb29nbGUuY29tPgogCiAgICAgICAg
IEZpbGVJbnB1dFR5cGUgZG9lc24ndCBzdXBwb3J0IChzYXZlfHJlc3RvcmUpRm9ybUNvbnRyb2xT
dGF0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMzQ3ODJiZjgzNzlkOWY3MTU5
ZDdlOGE3NWY3ZjljYTU4OWE3OTRkMS4uZGYzZmIxYjNlODUyYzA4OWNmOGU3YzE3NjRiY2ZhMmIx
NGI5ZWI1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zNDIsNiArMzQyLDgg
QEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
SFRNTFVMaXN0RWxlbWVudC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFZpZGVv
RWxlbWVudC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MVmlkZW9FbGVtZW50
LmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNJY2VDYW5kaWRhdGUuY3BwIFwKKwlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTSWNlQ2FuZGlkYXRlLmggXAogCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNJbWFnZURhdGEuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSW1hZ2VE
YXRhLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNJbmplY3RlZFNjcmlwdEhvc3QuY3Bw
IFwKQEAgLTY1OSw2ICs2NjEsNyBAQCBkb21fYmluZGluZ19pZGxzICs9IFwKIAkkKFdlYkNvcmUp
L01vZHVsZXMvZ2VvbG9jYXRpb24vUG9zaXRpb25FcnJvci5pZGwgXAogCSQoV2ViQ29yZSkvTW9k
dWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yQ2FsbGJhY2suaWRsIFwKIAkkKFdlYkNvcmUp
L01vZHVsZXMvbWVkaWFzdHJlYW0vRE9NV2luZG93TWVkaWFTdHJlYW0uaWRsIFwKKwkkKFdlYkNv
cmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlLmlkbCBcCiAJJChXZWJDb3JlKS9N
b2R1bGVzL21lZGlhc3RyZWFtL0xvY2FsTWVkaWFTdHJlYW0uaWRsIFwKIAkkKFdlYkNvcmUpL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1FdmVudC5pZGwgXApAQCAtMzMyNCw2ICszMzI3LDggQEAg
d2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNv
ZGVycy93ZWJwL1dFQlBJbWFnZURlY29kZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW1hZ2UtZGVjb2RlcnMvcG5nL1BOR0ltYWdlRGVjb2Rlci5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3BuZy9QTkdJbWFnZURlY29kZXIuaCBcCisJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5jcHAg
XAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0ljZUNhbmRpZGF0ZURlc2Ny
aXB0b3IuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1DZW50ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbUNlbnRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbUNvbXBvbmVudC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zM2RmZTc0M2VmNGQ1Y2M4
MDgyYWVlYzAzNmRlZTZmOGFmOGEzNGQ3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGUuY3BwCkBAIC0wLDAgKzEsODIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogICAgaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorICogICAgZGlzdHJpYnV0aW9uLgorICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcworICogICAg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQor
CisjaW5jbHVkZSAiSWNlQ2FuZGlkYXRlLmgiCisKKyNpbmNsdWRlICJJY2VDYW5kaWRhdGVEZXNj
cmlwdG9yLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxJY2VDYW5kaWRh
dGU+IEljZUNhbmRpZGF0ZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFN0cmlu
ZyYgY2FuZGlkYXRlTGluZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEljZUNhbmRpZGF0
ZShJY2VDYW5kaWRhdGVEZXNjcmlwdG9yOjpjcmVhdGUobGFiZWwsIGNhbmRpZGF0ZUxpbmUpKSk7
Cit9CisKK1Bhc3NSZWZQdHI8SWNlQ2FuZGlkYXRlPiBJY2VDYW5kaWRhdGU6OmNyZWF0ZShQYXNz
UmVmUHRyPEljZUNhbmRpZGF0ZURlc2NyaXB0b3I+IGRlc2NyaXB0b3IpCit7CisgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBJY2VDYW5kaWRhdGUoZGVzY3JpcHRvcikpOworfQorCitJY2VDYW5kaWRh
dGU6OkljZUNhbmRpZGF0ZShQYXNzUmVmUHRyPEljZUNhbmRpZGF0ZURlc2NyaXB0b3I+IGRlc2Ny
aXB0b3IpCisgICAgOiBtX2Rlc2NyaXB0b3IoZGVzY3JpcHRvcikKK3sKK30KKworSWNlQ2FuZGlk
YXRlOjp+SWNlQ2FuZGlkYXRlKCkKK3sKK30KKworU3RyaW5nIEljZUNhbmRpZGF0ZTo6bGFiZWwo
KQoreworICAgIHJldHVybiBtX2Rlc2NyaXB0b3ItPmxhYmVsKCk7Cit9CisKK1N0cmluZyBJY2VD
YW5kaWRhdGU6OmNhbmRpZGF0ZUxpbmUoKQoreworICAgIHJldHVybiBtX2Rlc2NyaXB0b3ItPmNh
bmRpZGF0ZUxpbmUoKTsKK30KKworU3RyaW5nIEljZUNhbmRpZGF0ZTo6dG9TZHAoKQoreworICAg
IHJldHVybiBtX2Rlc2NyaXB0b3ItPnRvU2RwKCk7Cit9CisKK0ljZUNhbmRpZGF0ZURlc2NyaXB0
b3IqIEljZUNhbmRpZGF0ZTo6ZGVzY3JpcHRvcigpCit7CisgICAgcmV0dXJuIG1fZGVzY3JpcHRv
ci5nZXQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vSWNlQ2FuZGlkYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L0ljZUNhbmRpZGF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0NDg2NGNjYzJjNGI5MmE2MTI5YTM1Yjk0NDVl
ZjYzYzgyZDc2NmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL0ljZUNhbmRpZGF0ZS5oCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJp
YnV0aW9uLgorICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcworICogICAgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IEljZUNhbmRpZGF0ZV9oCisjZGVmaW5lIEljZUNhbmRpZGF0ZV9oCisKKyNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQorCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBJY2VDYW5kaWRh
dGVEZXNjcmlwdG9yOworCitjbGFzcyBJY2VDYW5kaWRhdGUgOiBwdWJsaWMgUmVmQ291bnRlZDxJ
Y2VDYW5kaWRhdGU+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJY2VDYW5kaWRh
dGU+IGNyZWF0ZShjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBTdHJpbmcmIGNhbmRpZGF0ZUxp
bmUpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEljZUNhbmRpZGF0ZT4gY3JlYXRlKFBhc3NSZWZQ
dHI8SWNlQ2FuZGlkYXRlRGVzY3JpcHRvcj4pOworICAgIHZpcnR1YWwgfkljZUNhbmRpZGF0ZSgp
OworCisgICAgU3RyaW5nIGxhYmVsKCk7CisgICAgU3RyaW5nIGNhbmRpZGF0ZUxpbmUoKTsKKwor
ICAgIFN0cmluZyB0b1NkcCgpOworCisgICAgSWNlQ2FuZGlkYXRlRGVzY3JpcHRvciogZGVzY3Jp
cHRvcigpOworCitwcml2YXRlOgorICAgIEljZUNhbmRpZGF0ZShQYXNzUmVmUHRyPEljZUNhbmRp
ZGF0ZURlc2NyaXB0b3I+KTsKKworICAgIFJlZlB0cjxJY2VDYW5kaWRhdGVEZXNjcmlwdG9yPiBt
X2Rlc2NyaXB0b3I7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoTUVESUFfU1RSRUFNKQorCisjZW5kaWYgLy8gSWNlQ2FuZGlkYXRlX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlLmlkbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lMWM0MmZhMjYzYzVmN2M5MWNkY2Y2MzBhMjkzNDUxMmQwNTc2N2VmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9JY2VDYW5kaWRh
dGUuaWRsCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJpYnV0aW9uLgorICogMy4gTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmli
dXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20gdGhpcworICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgcDJwIHsKKworICAgIGludGVy
ZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwKKyAgICAgICAgQ29uc3Ry
dWN0b3IoaW4gRE9NU3RyaW5nIGxhYmVsLCBpbiBET01TdHJpbmcgY2FuZGlkYXRlTGluZSkKKyAg
ICBdIEljZUNhbmRpZGF0ZSB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcg
bGFiZWw7CisKKyAgICAgICAgRE9NU3RyaW5nIHRvU2RwKCk7CisgICAgfTsKKworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCmluZGV4IDA2YjlmNjEyNmIzZDkwZWFmYzBmYzY3N2E2YWM5OTZiZjdhZDA3N2EuLjkw
NGJiM2VhMGM3MjdmY2M3N2FhZjI1OTA0NDFlMDA0NTI0OTk3NjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
QEAgLTQxNSw2ICs0MTUsOCBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9XZWJDb3JlU3lz
dGVtSW50ZXJmYWNlLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9XZWJDb3JlVmlldy5o
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMvV2ViRm9udENhY2hlLmgnLAorICAgICAgICAg
ICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFtL0ljZUNhbmRpZGF0ZURlc2NyaXB0b3IuY3BwJywKKyAg
ICAgICAgICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGVEZXNjcmlwdG9yLmgn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2VudGVyLmNw
cCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIu
aCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Db21wb25l
bnQuaCcsCkBAIC03NTAsNiArNzUyLDcgQEAKICAgICAgICAgICAgICdNb2R1bGVzL2ludGVudHMv
SW50ZW50UmVzdWx0Q2FsbGJhY2suaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL2ludGVudHMv
TmF2aWdhdG9ySW50ZW50cy5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0v
RE9NV2luZG93TWVkaWFTdHJlYW0uaWRsJywKKyAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3Ry
ZWFtL0ljZUNhbmRpZGF0ZS5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0v
TG9jYWxNZWRpYVN0cmVhbS5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW0uaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtRXZlbnQuaWRsJywKQEAgLTEzNzksNiArMTM4Miw4IEBACiAgICAgICAgICAgICAnTW9k
dWxlcy9pbnRlbnRzL0ludGVudFJlc3VsdENhbGxiYWNrLmgnLAogICAgICAgICAgICAgJ01vZHVs
ZXMvaW50ZW50cy9OYXZpZ2F0b3JJbnRlbnRzLmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9p
bnRlbnRzL05hdmlnYXRvckludGVudHMuaCcsCisgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0
cmVhbS9JY2VDYW5kaWRhdGUuY3BwJywKKyAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFt
L0ljZUNhbmRpZGF0ZS5oJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL0xvY2Fs
TWVkaWFTdHJlYW0uY3BwJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL0xvY2Fs
TWVkaWFTdHJlYW0uaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbS5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGVEZXNjcmlwdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzFlNDQ3
NjFlOWJiMTBjYWZjYzI5MWZlODFjNWIwY2JhNTJkMzA5Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5j
cHAKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5j
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
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJJY2VDYW5kaWRhdGVEZXNjcmlwdG9yLmgi
CisKKyNpbmNsdWRlICJNZWRpYVN0cmVhbUNlbnRlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK1Bhc3NSZWZQdHI8SWNlQ2FuZGlkYXRlRGVzY3JpcHRvcj4gSWNlQ2FuZGlkYXRlRGVzY3Jp
cHRvcjo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFN0cmluZyYgY2FuZGlkYXRl
TGluZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEljZUNhbmRpZGF0ZURlc2NyaXB0b3Io
bGFiZWwsIGNhbmRpZGF0ZUxpbmUpKTsKK30KKworSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcjo6SWNl
Q2FuZGlkYXRlRGVzY3JpcHRvcihjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBTdHJpbmcmIGNh
bmRpZGF0ZUxpbmUpCisgICAgOiBtX2xhYmVsKGxhYmVsKQorICAgICwgbV9jYW5kaWRhdGVMaW5l
KGNhbmRpZGF0ZUxpbmUpCit7Cit9CisKK0ljZUNhbmRpZGF0ZURlc2NyaXB0b3I6On5JY2VDYW5k
aWRhdGVEZXNjcmlwdG9yKCkKK3sKK30KKworU3RyaW5nIEljZUNhbmRpZGF0ZURlc2NyaXB0b3I6
OnRvU2RwKCkKK3sKKyAgICByZXR1cm4gTWVkaWFTdHJlYW1DZW50ZXI6Omluc3RhbmNlKCkuZG9D
b25zdHJ1Y3RTZHAodGhpcyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGVEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGVEZXNjcmlwdG9yLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOWY2N2NjOTE3MDUyYTM0MzZmNDYyYzFlZWNjOWQwZmQzYWRiNTkwOAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0ljZUNhbmRpZGF0ZURl
c2NyaXB0b3IuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKyAqICAgIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqICAgIGRpc3RyaWJ1dGlvbi4KKyAqIDMu
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29u
dHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tIHRoaXMKKyAqICAgIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBJY2VDYW5kaWRhdGVE
ZXNjcmlwdG9yX2gKKyNkZWZpbmUgSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcl9oCisKKyNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEljZUNhbmRpZGF0ZURlc2NyaXB0b3IgOiBwdWJs
aWMgUmVmQ291bnRlZDxJY2VDYW5kaWRhdGVEZXNjcmlwdG9yPiB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8SWNlQ2FuZGlkYXRlRGVzY3JpcHRvcj4gY3JlYXRlKGNvbnN0IFN0cmlu
ZyYgbGFiZWwsIGNvbnN0IFN0cmluZyYgY2FuZGlkYXRlTGluZSk7CisgICAgdmlydHVhbCB+SWNl
Q2FuZGlkYXRlRGVzY3JpcHRvcigpOworCisgICAgU3RyaW5nIGxhYmVsKCkgeyByZXR1cm4gbV9s
YWJlbDsgfQorICAgIFN0cmluZyBjYW5kaWRhdGVMaW5lKCkgeyByZXR1cm4gbV9jYW5kaWRhdGVM
aW5lOyB9CisKKyAgICBTdHJpbmcgdG9TZHAoKTsKKworcHJpdmF0ZToKKyAgICBJY2VDYW5kaWRh
dGVEZXNjcmlwdG9yKGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFN0cmluZyYgY2FuZGlkYXRl
TGluZSk7CisKKyAgICBTdHJpbmcgbV9sYWJlbDsKKyAgICBTdHJpbmcgbV9jYW5kaWRhdGVMaW5l
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElB
X1NUUkVBTSkKKworI2VuZGlmIC8vIEljZUNhbmRpZGF0ZURlc2NyaXB0b3JfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50
ZXIuY3BwCmluZGV4IGFiY2NmNWI5YmMzYjk1NzlkM2I4YjUyYzYwMmJjZTIzYTJkZTgwMTQuLjNk
ZTUzZWUxZjhkZjExMTJkZGU2ZjFjOTNkYTcxZTcxNzMwZmRhMzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2VudGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNlbnRlci5j
cHAKQEAgLTU1LDYgKzU1LDExIEBAIHZvaWQgTWVkaWFTdHJlYW1DZW50ZXI6OmVuZExvY2FsTWVk
aWFTdHJlYW0oTWVkaWFTdHJlYW1EZXNjcmlwdG9yKiBzdHJlYW1EZXNjcmlwCiAgICAgICAgIHN0
cmVhbURlc2NyaXB0b3ItPnNldEVuZGVkKCk7CiB9CiAKK1N0cmluZyBNZWRpYVN0cmVhbUNlbnRl
cjo6ZG9Db25zdHJ1Y3RTZHAoSWNlQ2FuZGlkYXRlRGVzY3JpcHRvciopCit7CisgICAgcmV0dXJu
ICIiOworfQorCiAjaWYgIVBMQVRGT1JNKENIUk9NSVVNKQogCiAvLyBFbXB0eSBpbXBsZW1lbnRh
dGlvbnMgZm9yIHBvcnRzIHRoYXQgYnVpbGQgd2l0aCBNRURJQV9TVFJFQU0gZW5hYmxlZCBieSBk
ZWZhdWx0LCBidXQgaGF2ZW4ndCB5ZXQgaW1wbGVtZW50ZWQgTWVkaWFTdHJlYW1DZW50ZXIuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bUNlbnRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1DZW50ZXIuaAppbmRleCBhMzdkNjZhMjZjNzY1MWJjZGJhMWM3Yzg3ZmM0YzJhYzBhOGY2MTg5
Li5mYzdmNWMzZTRkZjIxZWJiZGU0ZDBhMGFlNzRhNWE2YTg5NWQwZGQzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNlbnRlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2VudGVy
LmgKQEAgLTQyLDYgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgTWVkaWFTdHJl
YW1DZW50ZXJJbnRlcm5hbDsKICNlbmRpZgogCitjbGFzcyBJY2VDYW5kaWRhdGVEZXNjcmlwdG9y
OwogY2xhc3MgTWVkaWFTdHJlYW1Db21wb25lbnQ7CiBjbGFzcyBNZWRpYVN0cmVhbURlc2NyaXB0
b3I7CiAKQEAgLTc0LDYgKzc1LDggQEAgcHVibGljOgogICAgIHZvaWQgZGlkU3RvcExvY2FsTWVk
aWFTdHJlYW0oTWVkaWFTdHJlYW1EZXNjcmlwdG9yKik7CiAgICAgdm9pZCBkaWRDb25zdHJ1Y3RN
ZWRpYVN0cmVhbShNZWRpYVN0cmVhbURlc2NyaXB0b3IqKTsKIAorICAgIFN0cmluZyBkb0NvbnN0
cnVjdFNkcChJY2VDYW5kaWRhdGVEZXNjcmlwdG9yKik7CisKICAgICAvLyBDYWxscyBmcm9tIHRo
ZSBwbGF0Zm9ybSB0byB1cGRhdGUgdGhlIERPTSBvYmplY3RzCiAgICAgdm9pZCBlbmRMb2NhbE1l
ZGlhU3RyZWFtKE1lZGlhU3RyZWFtRGVzY3JpcHRvciopOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131306</attachid>
            <date>2012-03-12 03:07:08 -0700</date>
            <delta_ts>2012-03-13 06:38:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80699-20120312110706.patch</filename>
            <type>text/plain</type>
            <size>21348</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWI1MWVhOGMzMmMwM2Jl
YmVlNWU1MzQwNGRhZDJlZGE3OTc4YjA5Ny4uM2M5MTczYjk5ZDBiMjk0NjMxZTVhYTEwZTk2Yzkx
ZDg2YjQ1NDYyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTAzLTA5ICBUb21t
eSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFt
IEFQSSAoSlNFUCk6IEludHJvZHVjaW5nIEljZUNhbmRpZGF0ZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA2OTkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXRjaCAjMiBpbiBhIHNlcmllcyBvZiBwYXRj
aGVzIHRvIGNoYW5nZSB0aGUgUGVlckNvbm5lY3Rpb24gZnJvbSBST0FQIHRvIEpTRVAsCisgICAg
ICAgIHNlZSBidWcgODA1ODkgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgICAgICAgIEFkZGluZyB0
aGUgSlMgb2JqZWN0IEljZUNhbmRpZGF0ZSBhbmQgaXRzIFdlYkNvcmUvcGxhdGZvcm0gc2libGlu
ZyBJY2VDYW5kaWRhdGVEZXNjcmlwdG9yLgorICAgICAgICBUaGlzIG9iamVjdCB3aWxsIGJlIGNy
ZWF0ZWQgYm90aCBmcm9tIEpTIGFuZCB0aGUgZW1iZWRkZXIuCisKKyAgICAgICAgTm90IHBvc3Np
YmxlIHRvIHRlc3QgdW50aWwgdGhlIGVudGlyZSBKU0VQIGZlYXR1cmUgaXMgY29tbWl0ZWQuCisK
KyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vSWNlQ2FuZGlkYXRlLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIuY3BwLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpJY2VDYW5kaWRhdGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpJY2VDYW5kaWRhdGU6OkljZUNhbmRpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJY2VD
YW5kaWRhdGU6On5JY2VDYW5kaWRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SWNlQ2FuZGlkYXRl
OjpsYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpJY2VDYW5kaWRhdGU6OmNhbmRpZGF0ZUxpbmUp
OgorICAgICAgICAoV2ViQ29yZTo6SWNlQ2FuZGlkYXRlOjp0b1NkcCk6CisgICAgICAgIChXZWJD
b3JlOjpJY2VDYW5kaWRhdGU6OmRlc2NyaXB0b3IpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vSWNlQ2FuZGlkYXRlLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2VudGVyLmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoSWNlQ2FuZGlkYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL0lj
ZUNhbmRpZGF0ZS5pZGw6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGVEZXNjcmlwdG9yLmNwcDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50
ZXIuY3BwLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJY2VDYW5kaWRh
dGVEZXNjcmlwdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SWNlQ2FuZGlkYXRlRGVz
Y3JpcHRvcjo6SWNlQ2FuZGlkYXRlRGVzY3JpcHRvcik6CisgICAgICAgIChXZWJDb3JlOjpJY2VD
YW5kaWRhdGVEZXNjcmlwdG9yOjp+SWNlQ2FuZGlkYXRlRGVzY3JpcHRvcik6CisgICAgICAgIChX
ZWJDb3JlOjpJY2VDYW5kaWRhdGVEZXNjcmlwdG9yOjp0b1NkcCk6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNlbnRlci5jcHAuCisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEljZUNhbmRpZGF0ZURlc2NyaXB0b3IpOgorICAg
ICAgICAoV2ViQ29yZTo6SWNlQ2FuZGlkYXRlRGVzY3JpcHRvcjo6bGFiZWwpOgorICAgICAgICAo
V2ViQ29yZTo6SWNlQ2FuZGlkYXRlRGVzY3JpcHRvcjo6Y2FuZGlkYXRlTGluZSk6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTdHJlYW1DZW50ZXI6OmRvQ29uc3RydWN0U2RwKToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2VudGVy
Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE1lZGlhU3RyZWFtQ2VudGVyKToKKwog
MjAxMi0wMy0xMiAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
VXNlIElDVSBDIEFQSSBpbnN0ZWFkIG9mIEMrKyBBUEkgaW4gTG9jYWxpemVkTnVtYmVySUNVCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAyYmQxZjY1NGM5MGRjNzI1OWFiOTI2Mzc1
M2ViYmQ3MzIzMzFiZDFiLi41NmUwOWRkM2Q4YzllMzEzOWJlZDAxMDY3MjExZDUyZTFjZDQ4Nzll
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTM0Miw2ICszNDIsOCBAQCB3ZWJj
b3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MVUxp
c3RFbGVtZW50LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MVmlkZW9FbGVtZW50
LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxWaWRlb0VsZW1lbnQuaCBcCisJ
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ljZUNhbmRpZGF0ZS5jcHAgXAorCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNJY2VDYW5kaWRhdGUuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0ltYWdlRGF0YS5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNJbWFnZURhdGEuaCBc
CiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0luamVjdGVkU2NyaXB0SG9zdC5jcHAgXApAQCAt
NjU5LDYgKzY2MSw3IEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAogCSQoV2ViQ29yZSkvTW9kdWxl
cy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL2dl
b2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxl
cy9tZWRpYXN0cmVhbS9ET01XaW5kb3dNZWRpYVN0cmVhbS5pZGwgXAorCSQoV2ViQ29yZSkvTW9k
dWxlcy9tZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGUuaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMv
bWVkaWFzdHJlYW0vTG9jYWxNZWRpYVN0cmVhbS5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbUV2ZW50LmlkbCBcCkBAIC0xMDMxLDYgKzEwMzQsOCBAQCB3ZWJjb3Jl
X3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL1BhZ2VHcm91
cEluZGV4ZWREYXRhYmFzZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9X
b3JrZXJDb250ZXh0SW5kZXhlZERhdGFiYXNlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvV29ya2VyQ29udGV4dEluZGV4ZWREYXRhYmFzZS5oIFwKKwlTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0ljZUNhbmRpZGF0ZS5jcHAgXAorCVNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlLmggXAogCVNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTG9jYWxNZWRpYVN0cmVhbS5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTG9jYWxNZWRpYVN0cmVhbS5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcCBcCkBAIC0zMzI0LDYgKzMz
MjksOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lt
YWdlLWRlY29kZXJzL3dlYnAvV0VCUEltYWdlRGVjb2Rlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9wbmcvUE5HSW1hZ2VEZWNvZGVyLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvcG5nL1BOR0ltYWdlRGVjb2Rlci5oIFwK
KwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGVEZXNjcmlw
dG9yLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vSWNlQ2FuZGlk
YXRlRGVzY3JpcHRvci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbUNlbnRlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtQ2VudGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtQ29tcG9uZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYwY2U0MWU5
Yzg3YTUzZjQzYmQ0NzliNzM2OTFkNjJiYmRlNDE5NmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0ljZUNhbmRpZGF0ZS5jcHAKQEAgLTAsMCAr
MSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisg
KiAgICBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCisgKiAgICBkaXN0cmlidXRpb24uCisgKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlz
CisgKiAgICBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCisKKyNpbmNsdWRlICJJY2VDYW5kaWRhdGUuaCIKKworI2luY2x1ZGUgIkljZUNhbmRp
ZGF0ZURlc2NyaXB0b3IuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPElj
ZUNhbmRpZGF0ZT4gSWNlQ2FuZGlkYXRlOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBsYWJlbCwgY29u
c3QgU3RyaW5nJiBjYW5kaWRhdGVMaW5lKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSWNl
Q2FuZGlkYXRlKEljZUNhbmRpZGF0ZURlc2NyaXB0b3I6OmNyZWF0ZShsYWJlbCwgY2FuZGlkYXRl
TGluZSkpKTsKK30KKworUGFzc1JlZlB0cjxJY2VDYW5kaWRhdGU+IEljZUNhbmRpZGF0ZTo6Y3Jl
YXRlKFBhc3NSZWZQdHI8SWNlQ2FuZGlkYXRlRGVzY3JpcHRvcj4gZGVzY3JpcHRvcikKK3sKKyAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEljZUNhbmRpZGF0ZShkZXNjcmlwdG9yKSk7Cit9CisKK0lj
ZUNhbmRpZGF0ZTo6SWNlQ2FuZGlkYXRlKFBhc3NSZWZQdHI8SWNlQ2FuZGlkYXRlRGVzY3JpcHRv
cj4gZGVzY3JpcHRvcikKKyAgICA6IG1fZGVzY3JpcHRvcihkZXNjcmlwdG9yKQoreworfQorCitJ
Y2VDYW5kaWRhdGU6On5JY2VDYW5kaWRhdGUoKQoreworfQorCitjb25zdCBTdHJpbmcmIEljZUNh
bmRpZGF0ZTo6bGFiZWwoKQoreworICAgIHJldHVybiBtX2Rlc2NyaXB0b3ItPmxhYmVsKCk7Cit9
CisKK2NvbnN0IFN0cmluZyYgSWNlQ2FuZGlkYXRlOjpjYW5kaWRhdGVMaW5lKCkKK3sKKyAgICBy
ZXR1cm4gbV9kZXNjcmlwdG9yLT5jYW5kaWRhdGVMaW5lKCk7Cit9CisKK1N0cmluZyBJY2VDYW5k
aWRhdGU6OnRvU2RwKCkKK3sKKyAgICByZXR1cm4gbV9kZXNjcmlwdG9yLT50b1NkcCgpOworfQor
CitJY2VDYW5kaWRhdGVEZXNjcmlwdG9yKiBJY2VDYW5kaWRhdGU6OmRlc2NyaXB0b3IoKQorewor
ICAgIHJldHVybiBtX2Rlc2NyaXB0b3IuZ2V0KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0ljZUNhbmRpZGF0ZS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNWVmMTIw
YjE0OWY5ZTJhMGM1Zjc4YjA4NTE1ZWVlMGMxM2QyYmYyCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGUuaApAQCAtMCwwICsx
LDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
ICAgIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyAqICAgIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMK
KyAqICAgIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBJY2VDYW5kaWRhdGVfaAorI2RlZmluZSBJY2VDYW5kaWRh
dGVfaAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgPHd0Zi9QYXNzUmVm
UHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcjsKKworY2xhc3MgSWNlQ2FuZGlkYXRl
IDogcHVibGljIFJlZkNvdW50ZWQ8SWNlQ2FuZGlkYXRlPiB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8SWNlQ2FuZGlkYXRlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBsYWJlbCwgY29u
c3QgU3RyaW5nJiBjYW5kaWRhdGVMaW5lKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJY2VDYW5k
aWRhdGU+IGNyZWF0ZShQYXNzUmVmUHRyPEljZUNhbmRpZGF0ZURlc2NyaXB0b3I+KTsKKyAgICB2
aXJ0dWFsIH5JY2VDYW5kaWRhdGUoKTsKKworICAgIGNvbnN0IFN0cmluZyYgbGFiZWwoKTsKKyAg
ICBjb25zdCBTdHJpbmcmIGNhbmRpZGF0ZUxpbmUoKTsKKworICAgIFN0cmluZyB0b1NkcCgpOwor
CisgICAgSWNlQ2FuZGlkYXRlRGVzY3JpcHRvciogZGVzY3JpcHRvcigpOworCitwcml2YXRlOgor
ICAgIEljZUNhbmRpZGF0ZShQYXNzUmVmUHRyPEljZUNhbmRpZGF0ZURlc2NyaXB0b3I+KTsKKwor
ICAgIFJlZlB0cjxJY2VDYW5kaWRhdGVEZXNjcmlwdG9yPiBtX2Rlc2NyaXB0b3I7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQor
CisjZW5kaWYgLy8gSWNlQ2FuZGlkYXRlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMWM0MmZhMjYzYzVm
N2M5MWNkY2Y2MzBhMjkzNDUxMmQwNTc2N2VmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGUuaWRsCkBAIC0wLDAgKzEsNDIg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogICAg
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQorICogICAgZGlzdHJpYnV0aW9uLgorICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAqICAgIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcworICog
ICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCittb2R1bGUgcDJwIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRp
dGlvbmFsPU1FRElBX1NUUkVBTSwKKyAgICAgICAgQ29uc3RydWN0b3IoaW4gRE9NU3RyaW5nIGxh
YmVsLCBpbiBET01TdHJpbmcgY2FuZGlkYXRlTGluZSkKKyAgICBdIEljZUNhbmRpZGF0ZSB7Cisg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbGFiZWw7CisKKyAgICAgICAgRE9N
U3RyaW5nIHRvU2RwKCk7CisgICAgfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDc2ODU3MjY3
NGYxNWViM2M5YTAwMjEzMWJkMDczZmVjMTExNGRlN2UuLjk4ZjcxYzdlODhmYWFhMmZlYTBmZTMy
OGYwYTM2MDAxM2ZhMjlhYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTQxNyw2ICs0MTcsOCBAQAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL21hYy9XZWJDb3JlVmlldy5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9tYWMvV2ViRm9udENhY2hlLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL0ljZUNhbmRpZGF0ZURlc2NyaXB0b3IuY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGVEZXNjcmlwdG9yLmgnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2VudGVyLmNwcCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIuaCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Db21wb25lbnQuaCcsCkBAIC03NTIsNiArNzU0
LDcgQEAKICAgICAgICAgICAgICdNb2R1bGVzL2ludGVudHMvSW50ZW50UmVzdWx0Q2FsbGJhY2su
aWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL2ludGVudHMvTmF2aWdhdG9ySW50ZW50cy5pZGwn
LAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vRE9NV2luZG93TWVkaWFTdHJlYW0u
aWRsJywKKyAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL0ljZUNhbmRpZGF0ZS5pZGwn
LAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vTG9jYWxNZWRpYVN0cmVhbS5pZGwn
LAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaWRsJywKICAg
ICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtRXZlbnQuaWRsJywKQEAg
LTEzODMsNiArMTM4Niw4IEBACiAgICAgICAgICAgICAnTW9kdWxlcy9pbnRlbnRzL0ludGVudFJl
c3VsdENhbGxiYWNrLmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW50ZW50cy9OYXZpZ2F0b3JJ
bnRlbnRzLmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbnRlbnRzL05hdmlnYXRvckludGVu
dHMuaCcsCisgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGUuY3Bw
JywKKyAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL0ljZUNhbmRpZGF0ZS5oJywKICAg
ICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL0xvY2FsTWVkaWFTdHJlYW0uY3BwJywKICAg
ICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL0xvY2FsTWVkaWFTdHJlYW0uaCcsCiAgICAg
ICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAnLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlRGVzY3Jp
cHRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9JY2VDYW5kaWRh
dGVEZXNjcmlwdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzFlNDQ3NjFlOWJiMTBjYWZjYzI5MWZlODFj
NWIwY2JhNTJkMzA5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5jcHAKQEAgLTAsMCArMSw2MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiAgICBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
CisgKiAgICBkaXN0cmlidXRpb24uCisgKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzCisgKiAgICBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisK
KyNpbmNsdWRlICJJY2VDYW5kaWRhdGVEZXNjcmlwdG9yLmgiCisKKyNpbmNsdWRlICJNZWRpYVN0
cmVhbUNlbnRlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8SWNlQ2Fu
ZGlkYXRlRGVzY3JpcHRvcj4gSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcjo6Y3JlYXRlKGNvbnN0IFN0
cmluZyYgbGFiZWwsIGNvbnN0IFN0cmluZyYgY2FuZGlkYXRlTGluZSkKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYobmV3IEljZUNhbmRpZGF0ZURlc2NyaXB0b3IobGFiZWwsIGNhbmRpZGF0ZUxpbmUp
KTsKK30KKworSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcjo6SWNlQ2FuZGlkYXRlRGVzY3JpcHRvcihj
b25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBTdHJpbmcmIGNhbmRpZGF0ZUxpbmUpCisgICAgOiBt
X2xhYmVsKGxhYmVsKQorICAgICwgbV9jYW5kaWRhdGVMaW5lKGNhbmRpZGF0ZUxpbmUpCit7Cit9
CisKK0ljZUNhbmRpZGF0ZURlc2NyaXB0b3I6On5JY2VDYW5kaWRhdGVEZXNjcmlwdG9yKCkKK3sK
K30KKworU3RyaW5nIEljZUNhbmRpZGF0ZURlc2NyaXB0b3I6OnRvU2RwKCkKK3sKKyAgICByZXR1
cm4gTWVkaWFTdHJlYW1DZW50ZXI6Omluc3RhbmNlKCkuZG9Db25zdHJ1Y3RTZHAodGhpcyk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJF
QU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9JY2VD
YW5kaWRhdGVEZXNjcmlwdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9JY2VDYW5kaWRhdGVEZXNjcmlwdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjhiY2NmMGM5YzUyYzFiYWNm
NWMxOGNlOWNmYjAyN2EwY2UzOWY1YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL0ljZUNhbmRpZGF0ZURlc2NyaXB0b3IuaApAQCAtMCwwICsx
LDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
ICAgIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyAqICAgIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMK
KyAqICAgIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBJY2VDYW5kaWRhdGVEZXNjcmlwdG9yX2gKKyNkZWZpbmUg
SWNlQ2FuZGlkYXRlRGVzY3JpcHRvcl9oCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIEljZUNhbmRpZGF0ZURlc2NyaXB0b3IgOiBwdWJsaWMgUmVmQ291bnRlZDxJY2VDYW5k
aWRhdGVEZXNjcmlwdG9yPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SWNlQ2Fu
ZGlkYXRlRGVzY3JpcHRvcj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFN0cmlu
ZyYgY2FuZGlkYXRlTGluZSk7CisgICAgdmlydHVhbCB+SWNlQ2FuZGlkYXRlRGVzY3JpcHRvcigp
OworCisgICAgY29uc3QgU3RyaW5nJiBsYWJlbCgpIHsgcmV0dXJuIG1fbGFiZWw7IH0KKyAgICBj
b25zdCBTdHJpbmcmIGNhbmRpZGF0ZUxpbmUoKSB7IHJldHVybiBtX2NhbmRpZGF0ZUxpbmU7IH0K
KworICAgIFN0cmluZyB0b1NkcCgpOworCitwcml2YXRlOgorICAgIEljZUNhbmRpZGF0ZURlc2Ny
aXB0b3IoY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgU3RyaW5nJiBjYW5kaWRhdGVMaW5lKTsK
KworICAgIFN0cmluZyBtX2xhYmVsOworICAgIFN0cmluZyBtX2NhbmRpZGF0ZUxpbmU7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFN
KQorCisjZW5kaWYgLy8gSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcl9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNlbnRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNlbnRlci5jcHAK
aW5kZXggYWJjY2Y1YjliYzNiOTU3OWQzYjhiNTJjNjAyYmNlMjNhMmRlODAxNC4uM2RlNTNlZTFm
OGRmMTExMmRkZTZmMWM5M2RhNzFlNzE3MzBmZGEzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2VudGVyLmNwcApAQCAt
NTUsNiArNTUsMTEgQEAgdm9pZCBNZWRpYVN0cmVhbUNlbnRlcjo6ZW5kTG9jYWxNZWRpYVN0cmVh
bShNZWRpYVN0cmVhbURlc2NyaXB0b3IqIHN0cmVhbURlc2NyaXAKICAgICAgICAgc3RyZWFtRGVz
Y3JpcHRvci0+c2V0RW5kZWQoKTsKIH0KIAorU3RyaW5nIE1lZGlhU3RyZWFtQ2VudGVyOjpkb0Nv
bnN0cnVjdFNkcChJY2VDYW5kaWRhdGVEZXNjcmlwdG9yKikKK3sKKyAgICByZXR1cm4gIiI7Cit9
CisKICNpZiAhUExBVEZPUk0oQ0hST01JVU0pCiAKIC8vIEVtcHR5IGltcGxlbWVudGF0aW9ucyBm
b3IgcG9ydHMgdGhhdCBidWlsZCB3aXRoIE1FRElBX1NUUkVBTSBlbmFibGVkIGJ5IGRlZmF1bHQs
IGJ1dCBoYXZlbid0IHlldCBpbXBsZW1lbnRlZCBNZWRpYVN0cmVhbUNlbnRlci4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2VudGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNlbnRl
ci5oCmluZGV4IGEzN2Q2NmEyNmM3NjUxYmNkYmExYzdjODdmYzRjMmFjMGE4ZjYxODkuLmZjN2Y1
YzNlNGRmMjFlYmJkZTRkMGEwYWU3NGE1YTZhODk1ZDBkZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2VudGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIuaApAQCAt
NDIsNiArNDIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBNZWRpYVN0cmVhbUNlbnRl
ckludGVybmFsOwogI2VuZGlmCiAKK2NsYXNzIEljZUNhbmRpZGF0ZURlc2NyaXB0b3I7CiBjbGFz
cyBNZWRpYVN0cmVhbUNvbXBvbmVudDsKIGNsYXNzIE1lZGlhU3RyZWFtRGVzY3JpcHRvcjsKIApA
QCAtNzQsNiArNzUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRTdG9wTG9jYWxNZWRpYVN0cmVh
bShNZWRpYVN0cmVhbURlc2NyaXB0b3IqKTsKICAgICB2b2lkIGRpZENvbnN0cnVjdE1lZGlhU3Ry
ZWFtKE1lZGlhU3RyZWFtRGVzY3JpcHRvciopOwogCisgICAgU3RyaW5nIGRvQ29uc3RydWN0U2Rw
KEljZUNhbmRpZGF0ZURlc2NyaXB0b3IqKTsKKwogICAgIC8vIENhbGxzIGZyb20gdGhlIHBsYXRm
b3JtIHRvIHVwZGF0ZSB0aGUgRE9NIG9iamVjdHMKICAgICB2b2lkIGVuZExvY2FsTWVkaWFTdHJl
YW0oTWVkaWFTdHJlYW1EZXNjcmlwdG9yKik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131602</attachid>
            <date>2012-03-13 06:37:43 -0700</date>
            <delta_ts>2012-03-14 02:52:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80699-20120313143741.patch</filename>
            <type>text/plain</type>
            <size>21354</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTg0NTBlNDkwZWE3YmU1
MTc1YTE0ZjE3OTY2NzNlNzdiMTYxNGU2ZS4uOWY1NDBkOGY0MDRjYmRkMGI3ODI3ODVkM2Y5YTFm
ZTdhNjkxZGFlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTAzLTA5ICBUb21t
eSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFt
IEFQSSAoSlNFUCk6IEludHJvZHVjaW5nIEljZUNhbmRpZGF0ZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA2OTkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXRjaCAjMiBpbiBhIHNlcmllcyBvZiBwYXRj
aGVzIHRvIGNoYW5nZSB0aGUgUGVlckNvbm5lY3Rpb24gZnJvbSBST0FQIHRvIEpTRVAsCisgICAg
ICAgIHNlZSBidWcgODA1ODkgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgICAgICAgIEFkZGluZyB0
aGUgSlMgb2JqZWN0IEljZUNhbmRpZGF0ZSBhbmQgaXRzIFdlYkNvcmUvcGxhdGZvcm0gc2libGlu
ZyBJY2VDYW5kaWRhdGVEZXNjcmlwdG9yLgorICAgICAgICBUaGlzIG9iamVjdCB3aWxsIGJlIGNy
ZWF0ZWQgYm90aCBmcm9tIEpTIGFuZCB0aGUgZW1iZWRkZXIuCisKKyAgICAgICAgTm90IHBvc3Np
YmxlIHRvIHRlc3QgdW50aWwgdGhlIGVudGlyZSBKU0VQIGZlYXR1cmUgaXMgY29tbWl0ZWQuCisK
KyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vSWNlQ2FuZGlkYXRlLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIuY3BwLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpJY2VDYW5kaWRhdGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpJY2VDYW5kaWRhdGU6OkljZUNhbmRpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJY2VD
YW5kaWRhdGU6On5JY2VDYW5kaWRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SWNlQ2FuZGlkYXRl
OjpsYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpJY2VDYW5kaWRhdGU6OmNhbmRpZGF0ZUxpbmUp
OgorICAgICAgICAoV2ViQ29yZTo6SWNlQ2FuZGlkYXRlOjp0b1NkcCk6CisgICAgICAgIChXZWJD
b3JlOjpJY2VDYW5kaWRhdGU6OmRlc2NyaXB0b3IpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vSWNlQ2FuZGlkYXRlLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2VudGVyLmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoSWNlQ2FuZGlkYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL0lj
ZUNhbmRpZGF0ZS5pZGw6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGVEZXNjcmlwdG9yLmNwcDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50
ZXIuY3BwLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJY2VDYW5kaWRh
dGVEZXNjcmlwdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SWNlQ2FuZGlkYXRlRGVz
Y3JpcHRvcjo6SWNlQ2FuZGlkYXRlRGVzY3JpcHRvcik6CisgICAgICAgIChXZWJDb3JlOjpJY2VD
YW5kaWRhdGVEZXNjcmlwdG9yOjp+SWNlQ2FuZGlkYXRlRGVzY3JpcHRvcik6CisgICAgICAgIChX
ZWJDb3JlOjpJY2VDYW5kaWRhdGVEZXNjcmlwdG9yOjp0b1NkcCk6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNlbnRlci5jcHAuCisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEljZUNhbmRpZGF0ZURlc2NyaXB0b3IpOgorICAg
ICAgICAoV2ViQ29yZTo6SWNlQ2FuZGlkYXRlRGVzY3JpcHRvcjo6bGFiZWwpOgorICAgICAgICAo
V2ViQ29yZTo6SWNlQ2FuZGlkYXRlRGVzY3JpcHRvcjo6Y2FuZGlkYXRlTGluZSk6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTdHJlYW1DZW50ZXI6OmNvbnN0cnVjdFNkcCk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNlbnRlci5o
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChNZWRpYVN0cmVhbUNlbnRlcik6CisKIDIw
MTItMDMtMTMgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCBpbnNwZWN0b3IgY29tcGlsYXRpb24gbW9kdWxlIG5hbWUgZml4IGFmdGVy
IHIxMTA1NTAuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
IGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBmYTJkNjkxMzQ3ZjVj
YzNlMmRiMTVlNWJkZjdlZGYxN2MxZGZjNTQ0Li44YmI5NjAwNTU1ODcwNzVhNDI0OWZmNjEyMjgy
NWVmZTZhYTE4ODRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTM0Miw2ICsz
NDIsOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNIVE1MVUxpc3RFbGVtZW50LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1M
VmlkZW9FbGVtZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxWaWRlb0Vs
ZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ljZUNhbmRpZGF0ZS5jcHAgXAor
CURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNJY2VDYW5kaWRhdGUuaCBcCiAJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0ltYWdlRGF0YS5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNJ
bWFnZURhdGEuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0luamVjdGVkU2NyaXB0SG9z
dC5jcHAgXApAQCAtNjU5LDYgKzY2MSw3IEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAogCSQoV2Vi
Q29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9Qb3NpdGlvbkVycm9yLmlkbCBcCiAJJChXZWJDb3Jl
KS9Nb2R1bGVzL2dlb2xvY2F0aW9uL1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5pZGwgXAogCSQoV2Vi
Q29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9ET01XaW5kb3dNZWRpYVN0cmVhbS5pZGwgXAorCSQo
V2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGUuaWRsIFwKIAkkKFdlYkNv
cmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vTG9jYWxNZWRpYVN0cmVhbS5pZGwgXAogCSQoV2ViQ29y
ZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5pZGwgXAogCSQoV2ViQ29yZSkvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUV2ZW50LmlkbCBcCkBAIC0xMDMxLDYgKzEwMzQs
OCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL1BhZ2VHcm91cEluZGV4ZWREYXRhYmFzZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9Xb3JrZXJDb250ZXh0SW5kZXhlZERhdGFiYXNlLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvV29ya2VyQ29udGV4dEluZGV4ZWREYXRhYmFzZS5oIFwK
KwlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0ljZUNhbmRpZGF0ZS5jcHAgXAor
CVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlLmggXAogCVNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTG9jYWxNZWRpYVN0cmVhbS5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTG9jYWxNZWRpYVN0cmVhbS5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcCBcCkBA
IC0zMzI0LDYgKzMzMjksOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3dlYnAvV0VCUEltYWdlRGVjb2Rlci5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9wbmcvUE5HSW1hZ2VEZWNvZGVyLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvcG5nL1BOR0ltYWdl
RGVjb2Rlci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9JY2VDYW5k
aWRhdGVEZXNjcmlwdG9yLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNlbnRlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2VudGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ29tcG9uZW50LmggXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmYwY2U0MWU5Yzg3YTUzZjQzYmQ0NzliNzM2OTFkNjJiYmRlNDE5NmIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0ljZUNhbmRpZGF0ZS5j
cHAKQEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5j
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
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJJY2VDYW5kaWRhdGUuaCIKKworI2luY2x1
ZGUgIkljZUNhbmRpZGF0ZURlc2NyaXB0b3IuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQ
YXNzUmVmUHRyPEljZUNhbmRpZGF0ZT4gSWNlQ2FuZGlkYXRlOjpjcmVhdGUoY29uc3QgU3RyaW5n
JiBsYWJlbCwgY29uc3QgU3RyaW5nJiBjYW5kaWRhdGVMaW5lKQoreworICAgIHJldHVybiBhZG9w
dFJlZihuZXcgSWNlQ2FuZGlkYXRlKEljZUNhbmRpZGF0ZURlc2NyaXB0b3I6OmNyZWF0ZShsYWJl
bCwgY2FuZGlkYXRlTGluZSkpKTsKK30KKworUGFzc1JlZlB0cjxJY2VDYW5kaWRhdGU+IEljZUNh
bmRpZGF0ZTo6Y3JlYXRlKFBhc3NSZWZQdHI8SWNlQ2FuZGlkYXRlRGVzY3JpcHRvcj4gZGVzY3Jp
cHRvcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEljZUNhbmRpZGF0ZShkZXNjcmlwdG9y
KSk7Cit9CisKK0ljZUNhbmRpZGF0ZTo6SWNlQ2FuZGlkYXRlKFBhc3NSZWZQdHI8SWNlQ2FuZGlk
YXRlRGVzY3JpcHRvcj4gZGVzY3JpcHRvcikKKyAgICA6IG1fZGVzY3JpcHRvcihkZXNjcmlwdG9y
KQoreworfQorCitJY2VDYW5kaWRhdGU6On5JY2VDYW5kaWRhdGUoKQoreworfQorCitjb25zdCBT
dHJpbmcmIEljZUNhbmRpZGF0ZTo6bGFiZWwoKQoreworICAgIHJldHVybiBtX2Rlc2NyaXB0b3It
PmxhYmVsKCk7Cit9CisKK2NvbnN0IFN0cmluZyYgSWNlQ2FuZGlkYXRlOjpjYW5kaWRhdGVMaW5l
KCkKK3sKKyAgICByZXR1cm4gbV9kZXNjcmlwdG9yLT5jYW5kaWRhdGVMaW5lKCk7Cit9CisKK1N0
cmluZyBJY2VDYW5kaWRhdGU6OnRvU2RwKCkKK3sKKyAgICByZXR1cm4gbV9kZXNjcmlwdG9yLT50
b1NkcCgpOworfQorCitJY2VDYW5kaWRhdGVEZXNjcmlwdG9yKiBJY2VDYW5kaWRhdGU6OmRlc2Ny
aXB0b3IoKQoreworICAgIHJldHVybiBtX2Rlc2NyaXB0b3IuZ2V0KCk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0ljZUNhbmRpZGF0ZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGUuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jNWVmMTIwYjE0OWY5ZTJhMGM1Zjc4YjA4NTE1ZWVlMGMxM2QyYmYyCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGUu
aApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqICAgIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqICAgIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3Jz
CisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tIHRoaXMKKyAqICAgIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBJY2VDYW5kaWRhdGVfaAorI2RlZmlu
ZSBJY2VDYW5kaWRhdGVfaAorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcjsKKworY2xhc3Mg
SWNlQ2FuZGlkYXRlIDogcHVibGljIFJlZkNvdW50ZWQ8SWNlQ2FuZGlkYXRlPiB7CitwdWJsaWM6
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SWNlQ2FuZGlkYXRlPiBjcmVhdGUoY29uc3QgU3RyaW5n
JiBsYWJlbCwgY29uc3QgU3RyaW5nJiBjYW5kaWRhdGVMaW5lKTsKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxJY2VDYW5kaWRhdGU+IGNyZWF0ZShQYXNzUmVmUHRyPEljZUNhbmRpZGF0ZURlc2NyaXB0
b3I+KTsKKyAgICB2aXJ0dWFsIH5JY2VDYW5kaWRhdGUoKTsKKworICAgIGNvbnN0IFN0cmluZyYg
bGFiZWwoKTsKKyAgICBjb25zdCBTdHJpbmcmIGNhbmRpZGF0ZUxpbmUoKTsKKworICAgIFN0cmlu
ZyB0b1NkcCgpOworCisgICAgSWNlQ2FuZGlkYXRlRGVzY3JpcHRvciogZGVzY3JpcHRvcigpOwor
Citwcml2YXRlOgorICAgIEljZUNhbmRpZGF0ZShQYXNzUmVmUHRyPEljZUNhbmRpZGF0ZURlc2Ny
aXB0b3I+KTsKKworICAgIFJlZlB0cjxJY2VDYW5kaWRhdGVEZXNjcmlwdG9yPiBtX2Rlc2NyaXB0
b3I7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVE
SUFfU1RSRUFNKQorCisjZW5kaWYgLy8gSWNlQ2FuZGlkYXRlX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlLmlkbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
MWM0MmZhMjYzYzVmN2M5MWNkY2Y2MzBhMjkzNDUxMmQwNTc2N2VmCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGUuaWRsCkBA
IC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJpYnV0aW9uLgorICogMy4gTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKKyAq
ICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20gdGhpcworICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgcDJwIHsKKworICAgIGludGVyZmFjZSBbCisg
ICAgICAgIENvbmRpdGlvbmFsPU1FRElBX1NUUkVBTSwKKyAgICAgICAgQ29uc3RydWN0b3IoaW4g
RE9NU3RyaW5nIGxhYmVsLCBpbiBET01TdHJpbmcgY2FuZGlkYXRlTGluZSkKKyAgICBdIEljZUNh
bmRpZGF0ZSB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbGFiZWw7CisK
KyAgICAgICAgRE9NU3RyaW5nIHRvU2RwKCk7CisgICAgfTsKKworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmlu
ZGV4IDg3OGM0NjVlYmZkZDI5Y2RjYWZlOTY2ODEwYWZhYjZlZmFkY2QyMWEuLjhkZmUzOGJiOGE2
YWExZTVkOGI1ZTViMGQzYmExODA5MDczOWMyMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTQxNyw2
ICs0MTcsOCBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJm
YWNlLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9XZWJDb3JlVmlldy5oJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9tYWMvV2ViRm9udENhY2hlLmgnLAorICAgICAgICAgICAgJ3BsYXRm
b3JtL21lZGlhc3RyZWFtL0ljZUNhbmRpZGF0ZURlc2NyaXB0b3IuY3BwJywKKyAgICAgICAgICAg
ICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGVEZXNjcmlwdG9yLmgnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2VudGVyLmNwcCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIuaCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Db21wb25lbnQuaCcsCkBA
IC03NTIsNiArNzU0LDcgQEAKICAgICAgICAgICAgICdNb2R1bGVzL2ludGVudHMvSW50ZW50UmVz
dWx0Q2FsbGJhY2suaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL2ludGVudHMvTmF2aWdhdG9y
SW50ZW50cy5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vRE9NV2luZG93
TWVkaWFTdHJlYW0uaWRsJywKKyAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL0ljZUNh
bmRpZGF0ZS5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vTG9jYWxNZWRp
YVN0cmVhbS5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW0uaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtRXZl
bnQuaWRsJywKQEAgLTEzODQsNiArMTM4Nyw4IEBACiAgICAgICAgICAgICAnTW9kdWxlcy9pbnRl
bnRzL0ludGVudFJlc3VsdENhbGxiYWNrLmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW50ZW50
cy9OYXZpZ2F0b3JJbnRlbnRzLmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbnRlbnRzL05h
dmlnYXRvckludGVudHMuaCcsCisgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9JY2VD
YW5kaWRhdGUuY3BwJywKKyAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL0ljZUNhbmRp
ZGF0ZS5oJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL0xvY2FsTWVkaWFTdHJl
YW0uY3BwJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL0xvY2FsTWVkaWFTdHJl
YW0uaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAn
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vSWNlQ2Fu
ZGlkYXRlRGVzY3JpcHRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9JY2VDYW5kaWRhdGVEZXNjcmlwdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMzI1NzZmMTVhMzQ5MTEw
MDg1MDViNmZhOTI1NWNmN2NkMDJiMDA2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5jcHAKQEAgLTAs
MCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
CisgKiAgICBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisgKiAgICBkaXN0cmlidXRpb24uCisgKiAzLiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycworICogICAg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0
aGlzCisgKiAgICBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCisKKyNpbmNsdWRlICJJY2VDYW5kaWRhdGVEZXNjcmlwdG9yLmgiCisKKyNpbmNs
dWRlICJNZWRpYVN0cmVhbUNlbnRlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NS
ZWZQdHI8SWNlQ2FuZGlkYXRlRGVzY3JpcHRvcj4gSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcjo6Y3Jl
YXRlKGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFN0cmluZyYgY2FuZGlkYXRlTGluZSkKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEljZUNhbmRpZGF0ZURlc2NyaXB0b3IobGFiZWwsIGNh
bmRpZGF0ZUxpbmUpKTsKK30KKworSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcjo6SWNlQ2FuZGlkYXRl
RGVzY3JpcHRvcihjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBTdHJpbmcmIGNhbmRpZGF0ZUxp
bmUpCisgICAgOiBtX2xhYmVsKGxhYmVsKQorICAgICwgbV9jYW5kaWRhdGVMaW5lKGNhbmRpZGF0
ZUxpbmUpCit7Cit9CisKK0ljZUNhbmRpZGF0ZURlc2NyaXB0b3I6On5JY2VDYW5kaWRhdGVEZXNj
cmlwdG9yKCkKK3sKK30KKworU3RyaW5nIEljZUNhbmRpZGF0ZURlc2NyaXB0b3I6OnRvU2RwKCkK
K3sKKyAgICByZXR1cm4gTWVkaWFTdHJlYW1DZW50ZXI6Omluc3RhbmNlKCkuY29uc3RydWN0U2Rw
KHRoaXMpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
TUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4YmNjZjBj
OWM1MmMxYmFjZjVjMThjZTljZmIwMjdhMGNlMzlmNWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGVEZXNjcmlwdG9yLmgK
QEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisgKiAgICBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisgKiAgICBkaXN0cmlidXRpb24uCisgKiAzLiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycwor
ICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbSB0aGlzCisgKiAgICBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcl9o
CisjZGVmaW5lIEljZUNhbmRpZGF0ZURlc2NyaXB0b3JfaAorCisjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKKworI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBJY2VDYW5kaWRhdGVEZXNjcmlwdG9yIDogcHVibGljIFJlZkNvdW50
ZWQ8SWNlQ2FuZGlkYXRlRGVzY3JpcHRvcj4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEljZUNhbmRpZGF0ZURlc2NyaXB0b3I+IGNyZWF0ZShjb25zdCBTdHJpbmcmIGxhYmVsLCBj
b25zdCBTdHJpbmcmIGNhbmRpZGF0ZUxpbmUpOworICAgIHZpcnR1YWwgfkljZUNhbmRpZGF0ZURl
c2NyaXB0b3IoKTsKKworICAgIGNvbnN0IFN0cmluZyYgbGFiZWwoKSB7IHJldHVybiBtX2xhYmVs
OyB9CisgICAgY29uc3QgU3RyaW5nJiBjYW5kaWRhdGVMaW5lKCkgeyByZXR1cm4gbV9jYW5kaWRh
dGVMaW5lOyB9CisKKyAgICBTdHJpbmcgdG9TZHAoKTsKKworcHJpdmF0ZToKKyAgICBJY2VDYW5k
aWRhdGVEZXNjcmlwdG9yKGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFN0cmluZyYgY2FuZGlk
YXRlTGluZSk7CisKKyAgICBTdHJpbmcgbV9sYWJlbDsKKyAgICBTdHJpbmcgbV9jYW5kaWRhdGVM
aW5lOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1F
RElBX1NUUkVBTSkKKworI2VuZGlmIC8vIEljZUNhbmRpZGF0ZURlc2NyaXB0b3JfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1D
ZW50ZXIuY3BwCmluZGV4IGFiY2NmNWI5YmMzYjk1NzlkM2I4YjUyYzYwMmJjZTIzYTJkZTgwMTQu
LjlkYjNkMGM1ZTY3NDIzZDFjYmYzMjgzMmQ4MDU4YjZhNDk2ZTBjMTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2VudGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNlbnRl
ci5jcHAKQEAgLTU1LDYgKzU1LDExIEBAIHZvaWQgTWVkaWFTdHJlYW1DZW50ZXI6OmVuZExvY2Fs
TWVkaWFTdHJlYW0oTWVkaWFTdHJlYW1EZXNjcmlwdG9yKiBzdHJlYW1EZXNjcmlwCiAgICAgICAg
IHN0cmVhbURlc2NyaXB0b3ItPnNldEVuZGVkKCk7CiB9CiAKK1N0cmluZyBNZWRpYVN0cmVhbUNl
bnRlcjo6Y29uc3RydWN0U2RwKEljZUNhbmRpZGF0ZURlc2NyaXB0b3IqKQoreworICAgIHJldHVy
biAiIjsKK30KKwogI2lmICFQTEFURk9STShDSFJPTUlVTSkKIAogLy8gRW1wdHkgaW1wbGVtZW50
YXRpb25zIGZvciBwb3J0cyB0aGF0IGJ1aWxkIHdpdGggTUVESUFfU1RSRUFNIGVuYWJsZWQgYnkg
ZGVmYXVsdCwgYnV0IGhhdmVuJ3QgeWV0IGltcGxlbWVudGVkIE1lZGlhU3RyZWFtQ2VudGVyLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1DZW50ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtQ2VudGVyLmgKaW5kZXggYTM3ZDY2YTI2Yzc2NTFiY2RiYTFjN2M4N2ZjNGMyYWMwYThmNjE4
OS4uZGNiOTU5NDlhMTRiMTc4MzAyODAwMGNiMjdjNmY2ODRkYzhkNDI3ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNlbnRl
ci5oCkBAIC00Miw2ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIE1lZGlhU3Ry
ZWFtQ2VudGVySW50ZXJuYWw7CiAjZW5kaWYKIAorY2xhc3MgSWNlQ2FuZGlkYXRlRGVzY3JpcHRv
cjsKIGNsYXNzIE1lZGlhU3RyZWFtQ29tcG9uZW50OwogY2xhc3MgTWVkaWFTdHJlYW1EZXNjcmlw
dG9yOwogCkBAIC03NCw2ICs3NSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFN0b3BMb2NhbE1l
ZGlhU3RyZWFtKE1lZGlhU3RyZWFtRGVzY3JpcHRvciopOwogICAgIHZvaWQgZGlkQ29uc3RydWN0
TWVkaWFTdHJlYW0oTWVkaWFTdHJlYW1EZXNjcmlwdG9yKik7CiAKKyAgICBTdHJpbmcgY29uc3Ry
dWN0U2RwKEljZUNhbmRpZGF0ZURlc2NyaXB0b3IqKTsKKwogICAgIC8vIENhbGxzIGZyb20gdGhl
IHBsYXRmb3JtIHRvIHVwZGF0ZSB0aGUgRE9NIG9iamVjdHMKICAgICB2b2lkIGVuZExvY2FsTWVk
aWFTdHJlYW0oTWVkaWFTdHJlYW1EZXNjcmlwdG9yKik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131815</attachid>
            <date>2012-03-14 02:52:17 -0700</date>
            <delta_ts>2012-03-14 12:53:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80699-20120314105215.patch</filename>
            <type>text/plain</type>
            <size>21437</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNjc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWYxYTBjZjI3NTQ1ODE3
ZDE0YTQ0NjUyMDcxNDIyZjA5NzIwYWRhNC4uNTk0ZDI0MGFiMGU2YmQyN2RhZTk3N2E5ZDEyN2I0
NWY2MDE4ZjRhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTAzLTA5ICBUb21t
eSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFt
IEFQSSAoSlNFUCk6IEludHJvZHVjaW5nIEljZUNhbmRpZGF0ZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA2OTkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXRjaCAjMiBpbiBhIHNlcmllcyBvZiBwYXRj
aGVzIHRvIGNoYW5nZSB0aGUgUGVlckNvbm5lY3Rpb24gZnJvbSBST0FQIHRvIEpTRVAsCisgICAg
ICAgIHNlZSBidWcgODA1ODkgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgICAgICAgIEFkZGluZyB0
aGUgSlMgb2JqZWN0IEljZUNhbmRpZGF0ZSBhbmQgaXRzIFdlYkNvcmUvcGxhdGZvcm0gc2libGlu
ZyBJY2VDYW5kaWRhdGVEZXNjcmlwdG9yLgorICAgICAgICBUaGlzIG9iamVjdCB3aWxsIGJlIGNy
ZWF0ZWQgYm90aCBmcm9tIEpTIGFuZCB0aGUgZW1iZWRkZXIuCisKKyAgICAgICAgTm90IHBvc3Np
YmxlIHRvIHRlc3QgdW50aWwgdGhlIGVudGlyZSBKU0VQIGZlYXR1cmUgaXMgY29tbWl0ZWQuCisK
KyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vSWNlQ2FuZGlkYXRlLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIuY3BwLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpJY2VDYW5kaWRhdGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpJY2VDYW5kaWRhdGU6OkljZUNhbmRpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJY2VD
YW5kaWRhdGU6On5JY2VDYW5kaWRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SWNlQ2FuZGlkYXRl
OjpsYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpJY2VDYW5kaWRhdGU6OmNhbmRpZGF0ZUxpbmUp
OgorICAgICAgICAoV2ViQ29yZTo6SWNlQ2FuZGlkYXRlOjp0b1NkcCk6CisgICAgICAgIChXZWJD
b3JlOjpJY2VDYW5kaWRhdGU6OmRlc2NyaXB0b3IpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFz
dHJlYW0vSWNlQ2FuZGlkYXRlLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2VudGVyLmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoSWNlQ2FuZGlkYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL0lj
ZUNhbmRpZGF0ZS5pZGw6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGVEZXNjcmlwdG9yLmNwcDogQ29waWVk
IGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50
ZXIuY3BwLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJY2VDYW5kaWRh
dGVEZXNjcmlwdG9yOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SWNlQ2FuZGlkYXRlRGVz
Y3JpcHRvcjo6SWNlQ2FuZGlkYXRlRGVzY3JpcHRvcik6CisgICAgICAgIChXZWJDb3JlOjpJY2VD
YW5kaWRhdGVEZXNjcmlwdG9yOjp+SWNlQ2FuZGlkYXRlRGVzY3JpcHRvcik6CisgICAgICAgIChX
ZWJDb3JlOjpJY2VDYW5kaWRhdGVEZXNjcmlwdG9yOjp0b1NkcCk6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNlbnRlci5jcHAuCisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEljZUNhbmRpZGF0ZURlc2NyaXB0b3IpOgorICAg
ICAgICAoV2ViQ29yZTo6SWNlQ2FuZGlkYXRlRGVzY3JpcHRvcjo6bGFiZWwpOgorICAgICAgICAo
V2ViQ29yZTo6SWNlQ2FuZGlkYXRlRGVzY3JpcHRvcjo6Y2FuZGlkYXRlTGluZSk6CisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTdHJlYW1DZW50ZXI6OmNvbnN0cnVjdFNkcCk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNlbnRlci5o
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChNZWRpYVN0cmVhbUNlbnRlcik6CisKIDIw
MTItMDMtMTQgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMTA2NzMuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQppbmRleCA0YjFlOGI3Njc0ZDNiZGI5ZWRjYTExMjA2NThkYzAzOTkxODRkMjYw
Li4wNTc2ODU5NDMyM2QxNWVlNDRiN2JmZGNkMjJlMmY3Yjc0Y2I3NmEwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KQEAgLTM0NCw2ICszNDQsOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJj
ZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MVUxpc3RFbGVtZW50LmggXAog
CURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MVmlkZW9FbGVtZW50LmNwcCBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0hUTUxWaWRlb0VsZW1lbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0ljZUNhbmRpZGF0ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNJ
Y2VDYW5kaWRhdGUuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ltYWdlRGF0YS5jcHAg
XAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNJbWFnZURhdGEuaCBcCiAJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0luamVjdGVkU2NyaXB0SG9zdC5jcHAgXApAQCAtNjYwLDYgKzY2Miw3IEBA
IGRvbV9iaW5kaW5nX2lkbHMgKz0gXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9nZW9sb2NhdGlvbi9Q
b3NpdGlvbkVycm9yQ2FsbGJhY2suaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvbWVkaWFzdHJl
YW0vRGVwcmVjYXRlZFBlZXJDb25uZWN0aW9uLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL0RPTVdpbmRvd01lZGlhU3RyZWFtLmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVz
L21lZGlhc3RyZWFtL0ljZUNhbmRpZGF0ZS5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRp
YXN0cmVhbS9Mb2NhbE1lZGlhU3RyZWFtLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtRXZlbnQuaWRsIFwKQEAgLTEwMzMsNiArMTAzNiw4IEBAIHdlYmNvcmVfc291
cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvV29ya2VyQ29udGV4
dEluZGV4ZWREYXRhYmFzZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L0RlcHJlY2F0ZWRQZWVyQ29ubmVjdGlvbi5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vRGVwcmVjYXRlZFBlZXJDb25uZWN0aW9uLmggXAorCVNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlLmNwcCBcCisJU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGUuaCBcCiAJU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9Mb2NhbE1lZGlhU3RyZWFtLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9Mb2NhbE1lZGlhU3RyZWFtLmggXAogCVNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwIFwKQEAgLTMzMjIsNiArMzMyNyw4
IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2Ut
ZGVjb2RlcnMvcG5nL1BOR0ltYWdlRGVjb2Rlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9EZXByZWNhdGVkUGVlckNvbm5lY3Rpb25IYW5kbGVyLmggXAogCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0RlcHJlY2F0ZWRQZWVyQ29ubmVjdGlvbkhh
bmRsZXJDbGllbnQuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vSWNl
Q2FuZGlkYXRlRGVzY3JpcHRvci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL0ljZUNhbmRpZGF0ZURlc2NyaXB0b3IuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNlbnRlci5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNvbXBvbmVudC5oIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mMGNlNDFlOWM4N2E1M2Y0M2JkNDc5YjczNjkxZDYyYmJkZTQxOTZiCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9JY2VDYW5kaWRh
dGUuY3BwCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgorICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogICAgZGlzdHJpYnV0aW9uLgorICogMy4gTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmli
dXRvcnMKKyAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20gdGhpcworICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiSWNlQ2FuZGlkYXRlLmgiCisKKyNp
bmNsdWRlICJJY2VDYW5kaWRhdGVEZXNjcmlwdG9yLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworUGFzc1JlZlB0cjxJY2VDYW5kaWRhdGU+IEljZUNhbmRpZGF0ZTo6Y3JlYXRlKGNvbnN0IFN0
cmluZyYgbGFiZWwsIGNvbnN0IFN0cmluZyYgY2FuZGlkYXRlTGluZSkKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYobmV3IEljZUNhbmRpZGF0ZShJY2VDYW5kaWRhdGVEZXNjcmlwdG9yOjpjcmVhdGUo
bGFiZWwsIGNhbmRpZGF0ZUxpbmUpKSk7Cit9CisKK1Bhc3NSZWZQdHI8SWNlQ2FuZGlkYXRlPiBJ
Y2VDYW5kaWRhdGU6OmNyZWF0ZShQYXNzUmVmUHRyPEljZUNhbmRpZGF0ZURlc2NyaXB0b3I+IGRl
c2NyaXB0b3IpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJY2VDYW5kaWRhdGUoZGVzY3Jp
cHRvcikpOworfQorCitJY2VDYW5kaWRhdGU6OkljZUNhbmRpZGF0ZShQYXNzUmVmUHRyPEljZUNh
bmRpZGF0ZURlc2NyaXB0b3I+IGRlc2NyaXB0b3IpCisgICAgOiBtX2Rlc2NyaXB0b3IoZGVzY3Jp
cHRvcikKK3sKK30KKworSWNlQ2FuZGlkYXRlOjp+SWNlQ2FuZGlkYXRlKCkKK3sKK30KKworY29u
c3QgU3RyaW5nJiBJY2VDYW5kaWRhdGU6OmxhYmVsKCkKK3sKKyAgICByZXR1cm4gbV9kZXNjcmlw
dG9yLT5sYWJlbCgpOworfQorCitjb25zdCBTdHJpbmcmIEljZUNhbmRpZGF0ZTo6Y2FuZGlkYXRl
TGluZSgpCit7CisgICAgcmV0dXJuIG1fZGVzY3JpcHRvci0+Y2FuZGlkYXRlTGluZSgpOworfQor
CitTdHJpbmcgSWNlQ2FuZGlkYXRlOjp0b1NkcCgpCit7CisgICAgcmV0dXJuIG1fZGVzY3JpcHRv
ci0+dG9TZHAoKTsKK30KKworSWNlQ2FuZGlkYXRlRGVzY3JpcHRvciogSWNlQ2FuZGlkYXRlOjpk
ZXNjcmlwdG9yKCkKK3sKKyAgICByZXR1cm4gbV9kZXNjcmlwdG9yLmdldCgpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGUu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzVlZjEyMGIxNDlmOWUyYTBjNWY3OGIwODUxNWVlZTBjMTNkMmJmMgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vSWNlQ2FuZGlk
YXRlLmgKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisgKiAgICBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiAgICBkaXN0cmlidXRpb24uCisgKiAzLiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1
dG9ycworICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbSB0aGlzCisgKiAgICBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSWNlQ2FuZGlkYXRlX2gKKyNk
ZWZpbmUgSWNlQ2FuZGlkYXRlX2gKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEljZUNhbmRpZGF0ZURlc2NyaXB0b3I7CisKK2Ns
YXNzIEljZUNhbmRpZGF0ZSA6IHB1YmxpYyBSZWZDb3VudGVkPEljZUNhbmRpZGF0ZT4geworcHVi
bGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEljZUNhbmRpZGF0ZT4gY3JlYXRlKGNvbnN0IFN0
cmluZyYgbGFiZWwsIGNvbnN0IFN0cmluZyYgY2FuZGlkYXRlTGluZSk7CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8SWNlQ2FuZGlkYXRlPiBjcmVhdGUoUGFzc1JlZlB0cjxJY2VDYW5kaWRhdGVEZXNj
cmlwdG9yPik7CisgICAgdmlydHVhbCB+SWNlQ2FuZGlkYXRlKCk7CisKKyAgICBjb25zdCBTdHJp
bmcmIGxhYmVsKCk7CisgICAgY29uc3QgU3RyaW5nJiBjYW5kaWRhdGVMaW5lKCk7CisKKyAgICBT
dHJpbmcgdG9TZHAoKTsKKworICAgIEljZUNhbmRpZGF0ZURlc2NyaXB0b3IqIGRlc2NyaXB0b3Io
KTsKKworcHJpdmF0ZToKKyAgICBJY2VDYW5kaWRhdGUoUGFzc1JlZlB0cjxJY2VDYW5kaWRhdGVE
ZXNjcmlwdG9yPik7CisKKyAgICBSZWZQdHI8SWNlQ2FuZGlkYXRlRGVzY3JpcHRvcj4gbV9kZXNj
cmlwdG9yOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KE1FRElBX1NUUkVBTSkKKworI2VuZGlmIC8vIEljZUNhbmRpZGF0ZV9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0ljZUNhbmRpZGF0ZS5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0ljZUNhbmRpZGF0ZS5pZGwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZTFjNDJmYTI2M2M1ZjdjOTFjZGNmNjMwYTI5MzQ1MTJkMDU3NjdlZgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlLmlk
bApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqICAgIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqICAgIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3Jz
CisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tIHRoaXMKKyAqICAgIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIHAycCB7CisKKyAgICBpbnRlcmZhY2Ug
WworICAgICAgICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sCisgICAgICAgIENvbnN0cnVjdG9y
KGluIERPTVN0cmluZyBsYWJlbCwgaW4gRE9NU3RyaW5nIGNhbmRpZGF0ZUxpbmUpCisgICAgXSBJ
Y2VDYW5kaWRhdGUgeworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxhYmVs
OworCisgICAgICAgIERPTVN0cmluZyB0b1NkcCgpOworICAgIH07CisKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQppbmRleCA1NzEyZmQ0NDFiNTFjMjQ2ZmJmOTFlYWZhMThkOGEyOWM0MTFiOGRlLi5jNzlmNjU1
Y2RmN2RkYWMwNTRlMjQwMzU3ZGQ3NzE2MDEyNDQwOGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC00
MTksNiArNDE5LDggQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMvV2ViRm9udENhY2hlLmgn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFtL0RlcHJlY2F0ZWRQZWVyQ29ubmVj
dGlvbkhhbmRsZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vRGVwcmVj
YXRlZFBlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudC5oJywKKyAgICAgICAgICAgICdwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGVEZXNjcmlwdG9yLmNwcCcsCisgICAgICAgICAgICAn
cGxhdGZvcm0vbWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5oJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNlbnRlci5jcHAnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2VudGVyLmgnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ29tcG9uZW50LmgnLApAQCAt
NzUzLDYgKzc1NSw3IEBACiAgICAgICAgICAgICAnTW9kdWxlcy9pbnRlbnRzL05hdmlnYXRvcklu
dGVudHMuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL0RlcHJlY2F0ZWRQ
ZWVyQ29ubmVjdGlvbi5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vRE9N
V2luZG93TWVkaWFTdHJlYW0uaWRsJywKKyAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFt
L0ljZUNhbmRpZGF0ZS5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vTG9j
YWxNZWRpYVN0cmVhbS5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW0uaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtRXZlbnQuaWRsJywKQEAgLTEzODYsNiArMTM4OSw4IEBACiAgICAgICAgICAgICAnTW9kdWxl
cy9pbnRlbnRzL05hdmlnYXRvckludGVudHMuaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRp
YXN0cmVhbS9EZXByZWNhdGVkUGVlckNvbm5lY3Rpb24uY3BwJywKICAgICAgICAgICAgICdNb2R1
bGVzL21lZGlhc3RyZWFtL0RlcHJlY2F0ZWRQZWVyQ29ubmVjdGlvbi5oJywKKyAgICAgICAgICAg
ICdNb2R1bGVzL21lZGlhc3RyZWFtL0ljZUNhbmRpZGF0ZS5jcHAnLAorICAgICAgICAgICAgJ01v
ZHVsZXMvbWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlLmgnLAogICAgICAgICAgICAgJ01vZHVsZXMv
bWVkaWFzdHJlYW0vTG9jYWxNZWRpYVN0cmVhbS5jcHAnLAogICAgICAgICAgICAgJ01vZHVsZXMv
bWVkaWFzdHJlYW0vTG9jYWxNZWRpYVN0cmVhbS5oJywKICAgICAgICAgICAgICdNb2R1bGVzL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGVEZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0ljZUNhbmRpZGF0ZURlc2NyaXB0b3IuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjMzMjU3NmYxNWEzNDkxMTAwODUwNWI2ZmE5MjU1Y2Y3Y2QwMmIwMDYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9JY2VDYW5k
aWRhdGVEZXNjcmlwdG9yLmNwcApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqICAgIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqICAgIGRpc3RyaWJ1dGlv
bi4KKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMKKyAqICAgIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIkljZUNhbmRp
ZGF0ZURlc2NyaXB0b3IuaCIKKworI2luY2x1ZGUgIk1lZGlhU3RyZWFtQ2VudGVyLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxJY2VDYW5kaWRhdGVEZXNjcmlwdG9yPiBJ
Y2VDYW5kaWRhdGVEZXNjcmlwdG9yOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3Qg
U3RyaW5nJiBjYW5kaWRhdGVMaW5lKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSWNlQ2Fu
ZGlkYXRlRGVzY3JpcHRvcihsYWJlbCwgY2FuZGlkYXRlTGluZSkpOworfQorCitJY2VDYW5kaWRh
dGVEZXNjcmlwdG9yOjpJY2VDYW5kaWRhdGVEZXNjcmlwdG9yKGNvbnN0IFN0cmluZyYgbGFiZWws
IGNvbnN0IFN0cmluZyYgY2FuZGlkYXRlTGluZSkKKyAgICA6IG1fbGFiZWwobGFiZWwpCisgICAg
LCBtX2NhbmRpZGF0ZUxpbmUoY2FuZGlkYXRlTGluZSkKK3sKK30KKworSWNlQ2FuZGlkYXRlRGVz
Y3JpcHRvcjo6fkljZUNhbmRpZGF0ZURlc2NyaXB0b3IoKQoreworfQorCitTdHJpbmcgSWNlQ2Fu
ZGlkYXRlRGVzY3JpcHRvcjo6dG9TZHAoKQoreworICAgIHJldHVybiBNZWRpYVN0cmVhbUNlbnRl
cjo6aW5zdGFuY2UoKS5jb25zdHJ1Y3RTZHAodGhpcyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGVEZXNjcmlwdG9yLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGVEZXNjcmlw
dG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYjhiY2NmMGM5YzUyYzFiYWNmNWMxOGNlOWNmYjAyN2EwY2UzOWY1
YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L0ljZUNhbmRpZGF0ZURlc2NyaXB0b3IuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqICAgIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqICAgIGRpc3Ry
aWJ1dGlvbi4KKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMKKyAqICAgIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBJY2VDYW5kaWRhdGVEZXNjcmlwdG9yX2gKKyNkZWZpbmUgSWNlQ2FuZGlkYXRlRGVzY3JpcHRv
cl9oCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEljZUNhbmRpZGF0ZURl
c2NyaXB0b3IgOiBwdWJsaWMgUmVmQ291bnRlZDxJY2VDYW5kaWRhdGVEZXNjcmlwdG9yPiB7Citw
dWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SWNlQ2FuZGlkYXRlRGVzY3JpcHRvcj4gY3Jl
YXRlKGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFN0cmluZyYgY2FuZGlkYXRlTGluZSk7Cisg
ICAgdmlydHVhbCB+SWNlQ2FuZGlkYXRlRGVzY3JpcHRvcigpOworCisgICAgY29uc3QgU3RyaW5n
JiBsYWJlbCgpIHsgcmV0dXJuIG1fbGFiZWw7IH0KKyAgICBjb25zdCBTdHJpbmcmIGNhbmRpZGF0
ZUxpbmUoKSB7IHJldHVybiBtX2NhbmRpZGF0ZUxpbmU7IH0KKworICAgIFN0cmluZyB0b1NkcCgp
OworCitwcml2YXRlOgorICAgIEljZUNhbmRpZGF0ZURlc2NyaXB0b3IoY29uc3QgU3RyaW5nJiBs
YWJlbCwgY29uc3QgU3RyaW5nJiBjYW5kaWRhdGVMaW5lKTsKKworICAgIFN0cmluZyBtX2xhYmVs
OworICAgIFN0cmluZyBtX2NhbmRpZGF0ZUxpbmU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQorCisjZW5kaWYgLy8gSWNlQ2Fu
ZGlkYXRlRGVzY3JpcHRvcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNlbnRlci5jcHAKaW5kZXggYWJjY2Y1YjliYzNiOTU3
OWQzYjhiNTJjNjAyYmNlMjNhMmRlODAxNC4uOWRiM2QwYzVlNjc0MjNkMWNiZjMyODMyZDgwNThi
NmE0OTZlMGMxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1DZW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2VudGVyLmNwcApAQCAtNTUsNiArNTUsMTEgQEAgdm9pZCBN
ZWRpYVN0cmVhbUNlbnRlcjo6ZW5kTG9jYWxNZWRpYVN0cmVhbShNZWRpYVN0cmVhbURlc2NyaXB0
b3IqIHN0cmVhbURlc2NyaXAKICAgICAgICAgc3RyZWFtRGVzY3JpcHRvci0+c2V0RW5kZWQoKTsK
IH0KIAorU3RyaW5nIE1lZGlhU3RyZWFtQ2VudGVyOjpjb25zdHJ1Y3RTZHAoSWNlQ2FuZGlkYXRl
RGVzY3JpcHRvciopCit7CisgICAgcmV0dXJuICIiOworfQorCiAjaWYgIVBMQVRGT1JNKENIUk9N
SVVNKQogCiAvLyBFbXB0eSBpbXBsZW1lbnRhdGlvbnMgZm9yIHBvcnRzIHRoYXQgYnVpbGQgd2l0
aCBNRURJQV9TVFJFQU0gZW5hYmxlZCBieSBkZWZhdWx0LCBidXQgaGF2ZW4ndCB5ZXQgaW1wbGVt
ZW50ZWQgTWVkaWFTdHJlYW1DZW50ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNlbnRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIuaAppbmRleCBhMzdkNjZhMjZjNzY1
MWJjZGJhMWM3Yzg3ZmM0YzJhYzBhOGY2MTg5Li5kY2I5NTk0OWExNGIxNzgzMDI4MDAwY2IyN2M2
ZjY4NGRjOGQ0MjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbUNlbnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2VudGVyLmgKQEAgLTQyLDYgKzQyLDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogY2xhc3MgTWVkaWFTdHJlYW1DZW50ZXJJbnRlcm5hbDsKICNlbmRpZgogCitj
bGFzcyBJY2VDYW5kaWRhdGVEZXNjcmlwdG9yOwogY2xhc3MgTWVkaWFTdHJlYW1Db21wb25lbnQ7
CiBjbGFzcyBNZWRpYVN0cmVhbURlc2NyaXB0b3I7CiAKQEAgLTc0LDYgKzc1LDggQEAgcHVibGlj
OgogICAgIHZvaWQgZGlkU3RvcExvY2FsTWVkaWFTdHJlYW0oTWVkaWFTdHJlYW1EZXNjcmlwdG9y
Kik7CiAgICAgdm9pZCBkaWRDb25zdHJ1Y3RNZWRpYVN0cmVhbShNZWRpYVN0cmVhbURlc2NyaXB0
b3IqKTsKIAorICAgIFN0cmluZyBjb25zdHJ1Y3RTZHAoSWNlQ2FuZGlkYXRlRGVzY3JpcHRvciop
OworCiAgICAgLy8gQ2FsbHMgZnJvbSB0aGUgcGxhdGZvcm0gdG8gdXBkYXRlIHRoZSBET00gb2Jq
ZWN0cwogICAgIHZvaWQgZW5kTG9jYWxNZWRpYVN0cmVhbShNZWRpYVN0cmVhbURlc2NyaXB0b3Iq
KTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>