<?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>22814</bug_id>
          
          <creation_ts>2008-12-11 16:23:07 -0800</creation_ts>
          <short_desc>Add WML &lt;img&gt; element support</short_desc>
          <delta_ts>2008-12-11 18:02:58 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>XML</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</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>20393</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>102291</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2008-12-11 16:23:07 -0800</bug_when>
    <thetext>Adding &lt;img&gt; support is trivial, as there already exists a common ImageLoader class, and SVG/HTMLImage{Element/Loader} already share as much code as possible.

Only difference for WML is that there exists a second source attribute called &apos;localsrc&apos; - that takes precedence over the &apos;src&apos; attribute. If loading &apos;localsrc&apos; fails, &apos;src&apos; should be tried instead - crazy :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102299</commentid>
    <comment_count>1</comment_count>
      <attachid>25967</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2008-12-11 16:51:08 -0800</bug_when>
    <thetext>Created attachment 25967
Initial patch

Patch contains a sorted version of WebCore.xcodeproj/project.pbxproj, that enlarges the patch a bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102300</commentid>
    <comment_count>2</comment_count>
      <attachid>25968</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2008-12-11 16:51:30 -0800</bug_when>
    <thetext>Created attachment 25968
LayoutTests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102305</commentid>
    <comment_count>3</comment_count>
      <attachid>25968</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2008-12-11 17:25:34 -0800</bug_when>
    <thetext>Comment on attachment 25968
LayoutTests

This looks sane.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102306</commentid>
    <comment_count>4</comment_count>
      <attachid>25969</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2008-12-11 17:30:12 -0800</bug_when>
    <thetext>Created attachment 25969
Updated patch

Incorporated Holgers comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102309</commentid>
    <comment_count>5</comment_count>
      <attachid>25969</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2008-12-11 17:51:00 -0800</bug_when>
    <thetext>Comment on attachment 25969
Updated patch


&gt; Index: WebCore.xcodeproj/project.pbxproj
&gt; ===================================================================
&gt; --- WebCore.xcodeproj/project.pbxproj	(revision 39224)
&gt; +++ WebCore.xcodeproj/project.pbxproj	(working copy)

changing the order is okay according to Niko.


&gt; Index: rendering/HitTestResult.cpp
&gt; ===================================================================
&gt; --- rendering/HitTestResult.cpp	(revision 39224)
&gt; +++ rendering/HitTestResult.cpp	(working copy)

&gt;      if (!m_innerNonSharedNode)
&gt;          return String();
&gt; -    
&gt; +
&gt;      if (m_innerNonSharedNode-&gt;hasTagName(imgTag)) {
&gt;          HTMLImageElement* image = static_cast&lt;HTMLImageElement*&gt;(m_innerNonSharedNode.get());
&gt;          return displayString(image-&gt;alt(), m_innerNonSharedNode.get());
&gt;      }
&gt; -    
&gt; +
&gt;      if (m_innerNonSharedNode-&gt;hasTagName(inputTag)) {
&gt;          HTMLInputElement* input = static_cast&lt;HTMLInputElement*&gt;(m_innerNonSharedNode.get());
&gt;          return displayString(input-&gt;alt(), m_innerNonSharedNode.get());
&gt;      }
&gt; -    
&gt; +

please land without these whitespace changes. rs=me if you want to fix the bogus space.



&gt; @@ -232,11 +240,14 @@ KURL HitTestResult::absoluteImageURL() c
&gt;      AtomicString urlString;
&gt;      if (m_innerNonSharedNode-&gt;hasTagName(imgTag) || m_innerNonSharedNode-&gt;hasTagName(inputTag))
&gt;          urlString = static_cast&lt;Element*&gt;(m_innerNonSharedNode.get())-&gt;getAttribute(srcAttr);
&gt; +    else if (m_innerNonSharedNode-&gt;hasTagName(embedTag)
&gt;  #if ENABLE(SVG)
&gt; -    else if (m_innerNonSharedNode-&gt;hasTagName(SVGNames::imageTag))
&gt; -        urlString = static_cast&lt;Element*&gt;(m_innerNonSharedNode.get())-&gt;getAttribute(XLinkNames::hrefAttr);
&gt; +             || m_innerNonSharedNode-&gt;hasTagName(SVGNames::imageTag)
&gt; +#endif
&gt; +#if ENABLE(WML)
&gt; +             || m_innerNonSharedNode-&gt;hasTagName(WMLNames::imgTag)
&gt;  #endif
&gt; -    else if (m_innerNonSharedNode-&gt;hasTagName(embedTag) || m_innerNonSharedNode-&gt;hasTagName(objectTag)) {
&gt; +             || m_innerNonSharedNode-&gt;hasTagName(objectTag)) {


yes, I checked, SVGImageElement returns XLinkNames::hrefAttr for imageSourceAttributeName...so it could be correct.


&gt; +        imageObj-&gt;setCachedImage(m_imageLoader.image());
&gt; +
&gt; +        // If we have no image at all because we have no src attribute, set
&gt; +        // image height and width for the alt text instead.
&gt; +        if (!m_imageLoader.image() &amp;&amp; !imageObj-&gt;cachedImage())
&gt; +            imageObj-&gt;setImageSizeForAltText();


I see this is from HTMLImageElement. But after the above setCachedImage the following assert should be true. ASSERT(imageObj-&gt;cachedImage() == m_imageLoader.image())? If that is the case checking for m_imageLoader.image() or imageObj-&gt;cachedImage would be enough... but this can be cleaned up later.



&gt; +    // WML doesn&apos;t fire any events.
&gt; +    if (haveFiredLoadEvent())
&gt; +        return;
&gt; +
&gt; +    setHaveFiredLoadEvent(true);

hehe...


&gt; +void WMLImageLoader::notifyFinished(CachedResource* image)
&gt; +{

yes, this should fallback to src when the loading failed and there is a HTMLNames::srcAttr on the WMLImageElement. Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102311</commentid>
    <comment_count>6</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2008-12-11 18:02:58 -0800</bug_when>
    <thetext>Thanks, Holger. Fixed your comments.

Except the one affecting HTMLImageLoader, it should be fixed alltogether in a seperated patch.
Landed in r39225.
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25967</attachid>
            <date>2008-12-11 16:51:08 -0800</date>
            <delta_ts>2008-12-11 17:30:12 -0800</delta_ts>
            <desc>Initial patch</desc>
            <filename>AddImgSupport.diff</filename>
            <type>text/plain</type>
            <size>31290</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzOTIyMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDkgQEAKKzIwMDgtMTItMTEgIE5pa29sYXMgWmltbWVybWFubiAgPG5pa29sYXMu
emltbWVybWFubkB0b3JjaG1vYmlsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRml4ZXM6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjgxNAorCisgICAgICAgIEFkZCA8d21sPiBpbWFnZSBlbGVtZW50IHN1cHBv
cnQuIEJhc2VkIG9uIEhUTUwvU1ZHSW1hZ2V7RWxlbWVudC9Mb2FkZXJ9LCB3aXRoCisgICAgICAg
IHRoZSBvbmx5IGRpZmZlcmVuY2UgdGhhdCBXTUwgZGVmaW5lcyBhIHNlY29uZCBzb3VyY2UgYXR0
cmlidXRlICdsb2NhbHNyYycsIHRoYXQKKyAgICAgICAgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIHRo
ZSAnc3JjJyBhdHRyaWJ1dGUuIElmIGxvYWRpbmcgdGhlICdsb2NhbHNyYycgYXR0cmlidXRlCisg
ICAgICAgIGZhaWxzLCB0aGUgdXNlciBhZ2VudCBzaG91bGQgdHJ5IGxvYWRpbmcgdGhlICdzcmMn
IGF0dHJpYnV0ZS4gSWYgYm90aCBmYWlsIHRoZQorICAgICAgICAnYWx0JyBmYWxsYmFjayBjb250
ZW50IHdpbGwgYmUgdXNlZCAtIGp1c3QgbGlrZSBpbiBIVE1MLgorCisgICAgICAgIEZpeGVzOiBm
YXN0L3dtbC9pbWctbG9jYWxzcmMud21sICg8aW1nPiBhbmQgJ2xvY2Fsc3JjJyBhdHRyaWJ1dGUp
CisgICAgICAgICAgICAgICBmYXN0L3dtbC9pbWctc3JjLWxvY2Fsc3JjLWFsdC53bWwgKCdsb2Nh
bHNyYycvJ3NyYycgZmFsbGJhY2sgaGFuZGxpbmcpCisgICAgICAgICAgICAgICBmYXN0L3dtbC9p
bWctc3JjLndtbCAoPGltZz4gYW5kICdzcmMnIGF0dHJpYnV0ZSkKKworICAgICAgICAqIEdOVW1h
a2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiByZW5k
ZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0
OjphYnNvbHV0ZUltYWdlVVJMKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6OnVwZGF0ZUFsdFRleHQpOgorICAgICAg
ICAqIHdtbC9XTUxJbWFnZUVsZW1lbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldN
TEltYWdlRWxlbWVudDo6V01MSW1hZ2VFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OldNTElt
YWdlRWxlbWVudDo6fldNTEltYWdlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpXTUxJbWFn
ZUVsZW1lbnQ6Om1hcFRvRW50cnkpOgorICAgICAgICAoV2ViQ29yZTo6V01MSW1hZ2VFbGVtZW50
OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXTUxJbWFnZUVsZW1l
bnQ6OmF0dGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpXTUxJbWFnZUVsZW1lbnQ6OmNyZWF0ZVJl
bmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6OldNTEltYWdlRWxlbWVudDo6aW5zZXJ0ZWRJbnRv
RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6V01MSW1hZ2VFbGVtZW50Ojppc1VSTEF0dHJp
YnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXTUxJbWFnZUVsZW1lbnQ6OmltYWdlU291cmNlQXR0
cmlidXRlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXTUxJbWFnZUVsZW1lbnQ6OmFsdFRleHQp
OgorICAgICAgICAqIHdtbC9XTUxJbWFnZUVsZW1lbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpXTUxJbWFnZUVsZW1lbnQ6OnVzZUZhbGxiYWNrQXR0cmlidXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OldNTEltYWdlRWxlbWVudDo6c2V0VXNlRmFsbGJhY2tBdHRyaWJ1dGUpOgorICAgICAg
ICAqIHdtbC9XTUxJbWFnZUxvYWRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V01M
SW1hZ2VMb2FkZXI6OldNTEltYWdlTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldNTEltYWdl
TG9hZGVyOjp+V01MSW1hZ2VMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6V01MSW1hZ2VMb2Fk
ZXI6OmRpc3BhdGNoTG9hZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OldNTEltYWdlTG9hZGVy
Ojpzb3VyY2VVUkkpOgorICAgICAgICAoV2ViQ29yZTo6V01MSW1hZ2VMb2FkZXI6Om5vdGlmeUZp
bmlzaGVkKToKKyAgICAgICAgKiB3bWwvV01MSW1hZ2VMb2FkZXIuaDogQWRkZWQuCisgICAgICAg
ICogd21sL1dNTFRhZ05hbWVzLmluOgorCiAyMDA4LTEyLTExICBIb2xnZXIgSGFucyBQZXRlciBG
cmV5dGhlciAgPHplY2tlQHNlbGZpc2gub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmlu
IEFkbGVyLgpJbmRleDogV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL0dOVW1ha2VmaWxlLmFtCShyZXZpc2lvbiAzOTIyMikKKysrIFdlYkNvcmUvR05VbWFrZWZp
bGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTIxODMsNiArMjE4Myw4IEBAIHdlYmNvcmVfc291cmNl
cyArPSBcCiAJV2ViQ29yZS93bWwvV01MRXJyb3JIYW5kbGluZy5jcHAgXAogCVdlYkNvcmUvd21s
L1dNTEV2ZW50SGFuZGxpbmdFbGVtZW50LmNwcCBcCiAJV2ViQ29yZS93bWwvV01MR29FbGVtZW50
LmNwcCBcCisJV2ViQ29yZS93bWwvV01MSW1hZ2VFbGVtZW50LmNwcCBcCisJV2ViQ29yZS93bWwv
V01MSW1hZ2VMb2FkZXIuY3BwIFwKIAlXZWJDb3JlL3dtbC9XTUxJbnRyaW5zaWNFdmVudC5jcHAg
XAogCVdlYkNvcmUvd21sL1dNTEludHJpbnNpY0V2ZW50SGFuZGxlci5jcHAgXAogCVdlYkNvcmUv
d21sL1dNTE5vb3BFbGVtZW50LmNwcCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oJKHJldmlzaW9uIDM5MjIyKQorKysgV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMTY4OTgsNiArMTY4OTgsMjIgQEAKIAkJCQk+
DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cd21sXFdNTElt
YWdlRWxlbWVudC5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlx3bWxcV01MSW1hZ2VFbGVtZW50LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+
DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlx3bWxcV01MSW1hZ2VMb2FkZXIuY3Bw
Ig0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5c
d21sXFdNTEltYWdlTG9hZGVyLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJ
CQkJUmVsYXRpdmVQYXRoPSIuLlx3bWxcV01MSW50cmluc2ljRXZlbnQuY3BwIg0KIAkJCQk+DQog
CQkJPC9GaWxlPg0KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCShyZXZpc2lvbiAzOTIyMikKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC05MCw2ICs5MCwxMCBAQAogCQkwOEE0ODQ3NzBF
NTI3MkM1MDBDM0ZFNzYgLyogU2NyaXB0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwOEE0ODQ3NTBFNTI3MkM1MDBDM0ZFNzYgLyogU2Ny
aXB0RWxlbWVudC5jcHAgKi87IH07CiAJCTA4QTQ4NDc4MEU1MjcyQzUwMEMzRkU3NiAvKiBTY3Jp
cHRFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwOEE0ODQ3NjBFNTI3MkM1MDBDM0ZFNzYgLyogU2NyaXB0RWxlbWVudC5oICovOyB9OwogCQkw
OEE0OEE2RTBFODZDRjZEMDBFMjI1REQgLyogSlNTVkdFbGVtZW50SW5zdGFuY2VDdXN0b20uY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDhBNDhBNkQw
RTg2Q0Y2RDAwRTIyNUREIC8qIEpTU1ZHRWxlbWVudEluc3RhbmNlQ3VzdG9tLmNwcCAqLzsgfTsK
KwkJMDhDNEM1MTgwRUYxOUE0MDAwRTQ4NDBGIC8qIFdNTEltYWdlRWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwOEM0QzUxNDBFRjE5QTQw
MDBFNDg0MEYgLyogV01MSW1hZ2VFbGVtZW50LmNwcCAqLzsgfTsKKwkJMDhDNEM1MTkwRUYxOUE0
MDAwRTQ4NDBGIC8qIFdNTEltYWdlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMDhDNEM1MTUwRUYxOUE0MDAwRTQ4NDBGIC8qIFdNTEltYWdl
RWxlbWVudC5oICovOyB9OworCQkwOEM0QzUxQTBFRjE5QTQwMDBFNDg0MEYgLyogV01MSW1hZ2VM
b2FkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDhDNEM1MTYwRUYxOUE0MDAwRTQ4NDBGIC8qIFdNTEltYWdlTG9hZGVyLmNwcCAqLzsgfTsKKwkJ
MDhDNEM1MUIwRUYxOUE0MDAwRTQ4NDBGIC8qIFdNTEltYWdlTG9hZGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwOEM0QzUxNzBFRjE5QTQwMDBFNDg0
MEYgLyogV01MSW1hZ2VMb2FkZXIuaCAqLzsgfTsKIAkJMDhDRDYxQkMwRUQzOTI5QzAwMkRERjUx
IC8qIFdNTFRhc2tFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDA4Q0Q2MUI4MEVEMzkyOUMwMDJEREY1MSAvKiBXTUxUYXNrRWxlbWVudC5j
cHAgKi87IH07CiAJCTA4Q0Q2MUJEMEVEMzkyOUMwMDJEREY1MSAvKiBXTUxUYXNrRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDhDRDYxQjkw
RUQzOTI5QzAwMkRERjUxIC8qIFdNTFRhc2tFbGVtZW50LmggKi87IH07CiAJCTA4RTE5MjUzMEVE
RTBDM0EwMDg3Qjc4MCAvKiBXTUxFcnJvckhhbmRsaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4RTE5MjUxMEVERTBDMzkwMDg3Qjc4MCAvKiBX
TUxFcnJvckhhbmRsaW5nLmNwcCAqLzsgfTsKQEAgLTQ4NzAsNiArNDg3NCwxMCBAQAogCQkwOEE0
ODQ3NTBFNTI3MkM1MDBDM0ZFNzYgLyogU2NyaXB0RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMDhBNDg0NzYwRTUyNzJDNTAwQzNGRTc2IC8qIFNjcmlwdEVsZW1lbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0RWxlbWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwOEE0OEE2RDBFODZDRjZEMDBFMjI1REQgLyogSlNT
VkdFbGVtZW50SW5zdGFuY2VDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNTVkdFbGVtZW50SW5zdGFuY2VDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkwOEM0QzUxNDBFRjE5QTQwMDBFNDg0MEYgLyogV01MSW1hZ2VFbGVtZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdNTEltYWdlRWxlbWVu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA4QzRDNTE1MEVGMTlBNDAwMEU0
ODQwRiAvKiBXTUxJbWFnZUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV01MSW1hZ2VFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA4QzRD
NTE2MEVGMTlBNDAwMEU0ODQwRiAvKiBXTUxJbWFnZUxvYWRlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXTUxJbWFnZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTA4QzRDNTE3MEVGMTlBNDAwMEU0ODQwRiAvKiBXTUxJbWFnZUxvYWRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXTUxJbWFnZUxvYWRlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwOENENjFCODBFRDM5MjlDMDAyRERGNTEgLyog
V01MVGFza0VsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V01MVGFza0VsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwOENENjFC
OTBFRDM5MjlDMDAyRERGNTEgLyogV01MVGFza0VsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV01MVGFza0VsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMDhFMTkyNTEwRURFMEMzOTAwODdCNzgwIC8qIFdNTEVycm9ySGFuZGxpbmcuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV01MRXJyb3JIYW5kbGluZy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05NTczLDYgKzk1ODEsMTAgQEAKIAkJCQkw
ODE4QUVFMTBFREI4NkJDMDA2NDdCNjYgLyogV01MRXZlbnRIYW5kbGluZ0VsZW1lbnQuaCAqLywK
IAkJCQkwODgwN0I2QTBFRDcwOUFCMDAzRjY5NzUgLyogV01MR29FbGVtZW50LmNwcCAqLywKIAkJ
CQkwODgwN0I2QjBFRDcwOUFCMDAzRjY5NzUgLyogV01MR29FbGVtZW50LmggKi8sCisJCQkJMDhD
NEM1MTQwRUYxOUE0MDAwRTQ4NDBGIC8qIFdNTEltYWdlRWxlbWVudC5jcHAgKi8sCisJCQkJMDhD
NEM1MTUwRUYxOUE0MDAwRTQ4NDBGIC8qIFdNTEltYWdlRWxlbWVudC5oICovLAorCQkJCTA4QzRD
NTE2MEVGMTlBNDAwMEU0ODQwRiAvKiBXTUxJbWFnZUxvYWRlci5jcHAgKi8sCisJCQkJMDhDNEM1
MTcwRUYxOUE0MDAwRTQ4NDBGIC8qIFdNTEltYWdlTG9hZGVyLmggKi8sCiAJCQkJMDgwQUVDN0Qw
RUQ4NzA4QTAwREY0Q0NFIC8qIFdNTEludHJpbnNpY0V2ZW50LmNwcCAqLywKIAkJCQkwODBBRUM3
RTBFRDg3MDhCMDBERjRDQ0UgLyogV01MSW50cmluc2ljRXZlbnQuaCAqLywKIAkJCQkwODBBRUM3
RjBFRDg3MDhCMDBERjRDQ0UgLyogV01MSW50cmluc2ljRXZlbnRIYW5kbGVyLmNwcCAqLywKQEAg
LTEyNzYwLDggKzEyNzcyLDggQEAKIAkJCQlBODBENjcwNzBFOUU5REVCMDBFNDIwRjAgLyogR3Jh
cGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlQ0cuaCAqLywKIAkJCQlCMkExMEI5MzBCMzgxOEQ3
MDAwOTlBQTQgLyogSW1hZ2VCdWZmZXJDRy5jcHAgKi8sCiAJCQkJQjI3NTM1MzAwQjA1MzgxNDAw
MkNFNjRGIC8qIEltYWdlQ0cuY3BwICovLAotCQkJCTRCMzQ4MDkyMEVFRjUwRDQwMEFDMUI0MSAv
KiBJbWFnZVNvdXJjZUNHLmggKi8sCiAJCQkJQjI3NTM1MzEwQjA1MzgxNDAwMkNFNjRGIC8qIElt
YWdlU291cmNlQ0cuY3BwICovLAorCQkJCTRCMzQ4MDkyMEVFRjUwRDQwMEFDMUI0MSAvKiBJbWFn
ZVNvdXJjZUNHLmggKi8sCiAJCQkJNEIzNDgwOTEwRUVGNTBENDAwQUMxQjQxIC8qIEltYWdlU291
cmNlQ0dNYWMubW0gKi8sCiAJCQkJQjI3NTM1MzIwQjA1MzgxNDAwMkNFNjRGIC8qIEludFBvaW50
Q0cuY3BwICovLAogCQkJCUIyNzUzNTMzMEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRSZWN0Q0cuY3Bw
ICovLApAQCAtMTMwNjQsMTAgKzEzMDc2LDEwIEBACiAJCQkJQkNFOTlFQzIwRENBNjI0MTAwMTgy
NjgzIC8qIEpTWFNMVFByb2Nlc3NvckNvbnN0cnVjdG9yLmggKi8sCiAJCQkJQkNBMzc4QkEwRDE1
RjY0MjAwQjc5M0Q2IC8qIFNjaGVkdWxlZEFjdGlvbi5jcHAgKi8sCiAJCQkJQkNBMzc4QkIwRDE1
RjY0MjAwQjc5M0Q2IC8qIFNjaGVkdWxlZEFjdGlvbi5oICovLAotCQkJCTQxNkU3NUM5MEVERjkw
QzcwMDM2MEUxRCAvKiBTY3JpcHRDYWxsRnJhbWUuaCAqLywKIAkJCQk0MTZFNzVDQTBFREY5MEM3
MDAzNjBFMUQgLyogU2NyaXB0Q2FsbEZyYW1lLmNwcCAqLywKLQkJCQk0MTZFNzVCQzBFREY4RkQ3
MDAzNjBFMUQgLyogU2NyaXB0Q2FsbFN0YWNrLmggKi8sCisJCQkJNDE2RTc1QzkwRURGOTBDNzAw
MzYwRTFEIC8qIFNjcmlwdENhbGxGcmFtZS5oICovLAogCQkJCTQxNkU3NUJEMEVERjhGRDcwMDM2
MEUxRCAvKiBTY3JpcHRDYWxsU3RhY2suY3BwICovLAorCQkJCTQxNkU3NUJDMEVERjhGRDcwMDM2
MEUxRCAvKiBTY3JpcHRDYWxsU3RhY2suaCAqLywKIAkJCQk5M0I3MEQ1MzA5RUIwQzdDMDA5RDg0
NjggLyogU2NyaXB0Q29udHJvbGxlci5jcHAgKi8sCiAJCQkJOTNCNzBENTQwOUVCMEM3QzAwOUQ4
NDY4IC8qIFNjcmlwdENvbnRyb2xsZXIuaCAqLywKIAkJCQlBODNFMUM3MjBFNDkwNDJCMDAxNDBC
OUMgLyogU2NyaXB0Q29udHJvbGxlck1hYy5tbSAqLywKQEAgLTE1MzY0LDYgKzE1Mzc2LDcgQEAK
IAkJCQkwODk1ODI1NjBFODU3QTdFMDBGODJDODMgLyogSW1hZ2VMb2FkZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDN0Y0NEE4MEI5RTMyNEUwMEE5RDA4MSAvKiBJbWFnZU9ic2VydmVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCMjc1MzU3MTBCMDUzODE0MDAyQ0U2NEYgLyogSW1hZ2VTb3VyY2Uu
aCBpbiBIZWFkZXJzICovLAorCQkJCTRCMzQ4MDk0MEVFRjUwRDQwMEFDMUI0MSAvKiBJbWFnZVNv
dXJjZUNHLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTExODBFNkUxREE3MDBCRjYwODggLyog
SW1wbGljaXRBbmltYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCURCMjNDMkNDMEE1MDhEMjkw
MDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThD
RkY1RTUwQTE1NUEwNTAwMEE0MjM0IC8qIElubGluZUJveC5oIGluIEhlYWRlcnMgKi8sCkBAIC0x
NTcxNCw2ICsxNTcyNyw3IEBACiAJCQkJRTFDQTVDRDMwRThDREU4MDAwRThFRjkwIC8qIEpTV29y
a2VyQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQzM2RDM1MEVCMEEwOTQwMDc0
MTBCQyAvKiBKU1dvcmtlckNvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQzM2MkVGMEVB
RjJBQTkwMDc0MTBCQyAvKiBKU1dvcmtlckxvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQlF
MTI3MUE1ODBFRUVDREU0MDBGNjEyMTMgLyogSlNXb3JrZXJOYXZpZ2F0b3IuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMzQ4QkQ0MERCN0Y4MDQwMDRBQkFCOSAvKiBKU1hNTEh0dHBSZXF1ZXN0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzM0OEJFQTBEQjgwMzU0MDA0QUJBQjkgLyogSlNYTUxIdHRw
UmVxdWVzdENvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzYwREEzQTBEMkEzMDI4
MDBCOTkxOEYgLyogSlNYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBA
IC0xNTc5Miw2ICsxNTgwNiw3IEBACiAJCQkJRTEwQjlCNkMwQjc0NzU5OTAwM0VEODkwIC8qIE5h
dGl2ZVhQYXRoTlNSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNDQ0YwMjcwQUY2QzUy
OTAwMDE4RTg5IC8qIE5hdmlnYXRpb25BY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUE5QzZF
NUE2MEQ3NDY0NTgwMDY0NDJFOSAvKiBOYXZpZ2F0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCUUx
MjcxOUM3MEVFRUMxNjgwMEY2MTIxMyAvKiBOYXZpZ2F0b3JCYXNlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk2NTZEMzc0MzBBREJBNURFMDBBNDU1NEQgLyogTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2Fk
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBN0ZBNjE5MEREQTNCM0EwMDI4RjhBNSAvKiBOZXR3
b3JrU3RhdGVOb3RpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFRjQzREQwRTY3NDAxMjAw
MUMxMjg3IC8qIE5pbmVQaWVjZUltYWdlLmggaW4gSGVhZGVycyAqLywKQEAgLTE2MTQ2LDggKzE2
MTYxLDggQEAKIAkJCQkxQ0VGQzlCOTBENzhEQzhDMDA3RDI1NzkgLyogU2NoZWR1bGVQYWlyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1REZFOEY1NzBEMTY0NzdDMDA3NkU5MzcgLyogU2NoZWR1bGVk
QWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0VDMDFCRTBDMjc0REFDMDA5RjRFQzkgLyog
U2NyZWVuLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTZFNzVCRTBFREY4RkQ3MDAzNjBFMUQgLyog
U2NyaXB0Q2FsbFN0YWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTZFNzVDQjBFREY5MEM3MDAz
NjBFMUQgLyogU2NyaXB0Q2FsbEZyYW1lLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTZFNzVCRTBF
REY4RkQ3MDAzNjBFMUQgLyogU2NyaXB0Q2FsbFN0YWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
M0I3MEQ3MDA5RUIwQzdDMDA5RDg0NjggLyogU2NyaXB0Q29udHJvbGxlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMDhBNDg0NzgwRTUyNzJDNTAwQzNGRTc2IC8qIFNjcmlwdEVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUUxMUM5RDlCMEVCMzY4MTIwMEU0MDlEQiAvKiBTY3JpcHRFeGVjdXRp
b25Db250ZXh0LmggaW4gSGVhZGVycyAqLywKQEAgLTE2MzAyLDYgKzE2MzE3LDggQEAKIAkJCQkw
OEUxOTI1NDBFREUwQzNBMDA4N0I3ODAgLyogV01MRXJyb3JIYW5kbGluZy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMDgxOEFFRTMwRURCODZCQzAwNjQ3QjY2IC8qIFdNTEV2ZW50SGFuZGxpbmdFbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODgwN0I3NzBFRDcwOUFCMDAzRjY5NzUgLyogV01M
R29FbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkwOEM0QzUxOTBFRjE5QTQwMDBFNDg0MEYg
LyogV01MSW1hZ2VFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkwOEM0QzUxQjBFRjE5QTQw
MDBFNDg0MEYgLyogV01MSW1hZ2VMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4MEFFQzgy
MEVEODcwOEIwMERGNENDRSAvKiBXTUxJbnRyaW5zaWNFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMDgwQUVDODQwRUQ4NzA4QjAwREY0Q0NFIC8qIFdNTEludHJpbnNpY0V2ZW50SGFuZGxlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMDg4Qzk3MTMwRUNCNkQ5RDAwMDUzNEJBIC8qIFdNTE5hbWVz
LmggaW4gSGVhZGVycyAqLywKQEAgLTE2MzQ2LDYgKzE2MzYzLDcgQEAKIAkJCQlFMUMyQzQzRTBF
QUQwMTMzMDA3RTYxRkIgLyogV29ya2VyQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFD
MzYzMDEwRUFGMkNDNjAwNzQxMEJDIC8qIFdvcmtlckxvY2F0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQlFMTQ3OTlBNzBFQ0RFM0E0MDAyOTJCRjMgLyogV29ya2VyTWVzc2FnaW5nUHJveHkuaCBp
biBIZWFkZXJzICovLAorCQkJCUUxMjcxQTBCMEVFRUM3N0EwMEY2MTIxMyAvKiBXb3JrZXJOYXZp
Z2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQTY0M0YyMEVDMDk3MjUwMDc3OTY2OCAvKiBX
b3JrZXJTY3JpcHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTA4MjI0QjBFQzMx
NTNBMDBFOTM5NTMgLyogV29ya2VyVGFzay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFDMkM0MjQw
RUFDRTBCQzAwN0U2MUZCIC8qIFdvcmtlclRocmVhZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNjQx
MiwxMCArMTY0MzAsNiBAQAogCQkJCTFBNTY5RDIzMEQ3RTJCODIwMDdDMzk4MyAvKiBydW50aW1l
X29iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE1NjlEMjUwRDdFMkI4MjAwN0MzOTgzIC8q
IHJ1bnRpbWVfcm9vdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFMUUwOTlFNjQ5MjAwNTZF
NTgxIC8qIHZpc2libGVfdW5pdHMuaCBpbiBIZWFkZXJzICovLAotCQkJCTRCMzQ4MDk0MEVFRjUw
RDQwMEFDMUI0MSAvKiBJbWFnZVNvdXJjZUNHLmggaW4gSGVhZGVycyAqLywKLQkJCQlFMTI3MTlD
NzBFRUVDMTY4MDBGNjEyMTMgLyogTmF2aWdhdG9yQmFzZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
RTEyNzFBMEIwRUVFQzc3QTAwRjYxMjEzIC8qIFdvcmtlck5hdmlnYXRvci5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJRTEyNzFBNTgwRUVFQ0RFNDAwRjYxMjEzIC8qIEpTV29ya2VyTmF2aWdhdG9yLmgg
aW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJfTsKQEAgLTE2NTAwLDYgKzE2NTE0LDcgQEAKIAkJCQkwODhDOTc1NTBFQ0I2
RTI4MDAwNTM0QkEgLyogV01MQXR0cmlidXRlTmFtZXMuaW4gaW4gUmVzb3VyY2VzICovLAogCQkJ
CTA4OEM5NzdDMEVDQjZFMjkwMDA1MzRCQSAvKiBXTUxUYWdOYW1lcy5pbiBpbiBSZXNvdXJjZXMg
Ki8sCiAJCQkJRTFDMzYyQkMwRUFGMjlGQjAwNzQxMEJDIC8qIFdvcmtlckxvY2F0aW9uLmlkbCBp
biBSZXNvdXJjZXMgKi8sCisJCQkJRTEyNzFBNTIwRUVFQ0QxQzAwRjYxMjEzIC8qIFdvcmtlck5h
dmlnYXRvci5pZGwgaW4gUmVzb3VyY2VzICovLAogCQkJCTQ2RjlENUREMEIwRDYwMTcwMDI4RUUz
NiAvKiBhbGlhc0N1cnNvci5wbmcgaW4gUmVzb3VyY2VzICovLAogCQkJCTQ2RDRGMjQ5MEFGOTdF
ODEwMDM1Mzg1QSAvKiBjZWxsQ3Vyc29yLnBuZyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJNDZENEYy
NEEwQUY5N0U4MTAwMzUzODVBIC8qIGNvbnRleHRNZW51Q3Vyc29yLnBuZyBpbiBSZXNvdXJjZXMg
Ki8sCkBAIC0xNjUzMyw3ICsxNjU0OCw2IEBACiAJCQkJODUxMzZDQTgwQUVENjY1OTAwRjkwQTNE
IC8qIHdlc3RSZXNpemVDdXJzb3IucG5nIGluIFJlc291cmNlcyAqLywKIAkJCQkxQUIxQUU3QTBD
MDUxRkRFMDAxMzlGNEYgLyogem9vbUluQ3Vyc29yLnBuZyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJ
MUFCMUFFN0IwQzA1MUZERTAwMTM5RjRGIC8qIHpvb21PdXRDdXJzb3IucG5nIGluIFJlc291cmNl
cyAqLywKLQkJCQlFMTI3MUE1MjBFRUVDRDFDMDBGNjEyMTMgLyogV29ya2VyTmF2aWdhdG9yLmlk
bCBpbiBSZXNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CkBAIC0xNzMwOCw2ICsxNzMyMiw3IEBACiAJCQkJMDg5NTgyNTUw
RTg1N0E3RTAwRjgyQzgzIC8qIEltYWdlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIy
NzUzNTdCMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CUIyNzUzNTVGMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZVNvdXJjZUNHLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTRCMzQ4MDkzMEVFRjUwRDQwMEFDMUI0MSAvKiBJbWFnZVNvdXJjZUNHTWFjLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJMzE2RkUxMTcwRTZFMURBNzAwQkY2MDg4IC8qIEltcGxpY2l0
QW5pbWF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURCMjNDMkNCMEE1MDhEMjkwMDI0ODlF
QiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOENGRjVF
NjBBMTU1QTA1MDAwQTQyMzQgLyogSW5saW5lQm94LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTc3
MTQsNiArMTc3MjksNyBAQAogCQkJCUUxQzM2RDM0MEVCMEEwOTQwMDc0MTBCQyAvKiBKU1dvcmtl
ckNvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFDQTVDQkMwRThDRENBRjAwRThFRjkw
IC8qIEpTV29ya2VyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxQzM2MkYwMEVBRjJB
QTkwMDc0MTBCQyAvKiBKU1dvcmtlckxvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUx
MjcxQTU5MEVFRUNERTQwMEY2MTIxMyAvKiBKU1dvcmtlck5hdmlnYXRvci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQzM0OEJEMzBEQjdGODA0MDA0QUJBQjkgLyogSlNYTUxIdHRwUmVxdWVzdC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzM0OEJFOTBEQjgwMzU0MDA0QUJBQjkgLyogSlNYTUxI
dHRwUmVxdWVzdENvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMzQ4QkJFMERC
N0Y1MzEwMDRBQkFCOSAvKiBKU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICov
LApAQCAtMTc3OTMsNiArMTc4MDksNyBAQAogCQkJCUUxMEI5QjZEMEI3NDc1OTkwMDNFRDg5MCAv
KiBOYXRpdmVYUGF0aE5TUmVzb2x2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNDQ0YwNjAw
QUY2Q0E3NjAwMDE4RTg5IC8qIE5hdmlnYXRpb25BY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTlDNkU1QTUwRDc0NjQ1ODAwNjQ0MkU5IC8qIE5hdmlnYXRvci5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQlFMTI3MTlDQTBFRUVDMjEzMDBGNjEyMTMgLyogTmF2aWdhdG9yQmFzZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk1RDg3NEYxMzBEMTYxRDMyMDA3OTZDM0IgLyogTmV0c2NhcGVQbHVn
SW5TdHJlYW1Mb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE3RkE2MUIwRERBM0JCRTAw
MjhGOEE1IC8qIE5ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFB
N0ZBNjQ5MEREQTNDQkEwMDI4RjhBNSAvKiBOZXR3b3JrU3RhdGVOb3RpZmllck1hYy5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTE4MTIyLDggKzE4MTM5LDggQEAKIAkJCQkxQ0UyNEY5NzBEN0NBRjBF
MDA3RTA0QzIgLyogU2NoZWR1bGVQYWlyTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNURGRThG
NTYwRDE2NDc3QjAwNzZFOTM3IC8qIFNjaGVkdWxlZEFjdGlvbi5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQ0VDMDFCRDBDMjc0REFDMDA5RjRFQzkgLyogU2NyZWVuLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCTQxNkU3NUJGMEVERjhGRDcwMDM2MEUxRCAvKiBTY3JpcHRDYWxsU3RhY2suY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDE2RTc1Q0MwRURGOTBDNzAwMzYwRTFEIC8qIFNjcmlwdENhbGxG
cmFtZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0MTZFNzVCRjBFREY4RkQ3MDAzNjBFMUQgLyog
U2NyaXB0Q2FsbFN0YWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzQjcwRDZGMDlFQjBDN0Mw
MDlEODQ2OCAvKiBTY3JpcHRDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4M0Ux
Qzc0MEU0OTA0MkMwMDE0MEI5QyAvKiBTY3JpcHRDb250cm9sbGVyTWFjLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMDhBNDg0NzcwRTUyNzJDNTAwQzNGRTc2IC8qIFNjcmlwdEVsZW1lbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC0xODI1OSw2ICsxODI3Niw4IEBACiAJCQkJMDhFMTkyNTMwRURFMEMz
QTAwODdCNzgwIC8qIFdNTEVycm9ySGFuZGxpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDgx
OEFFRTIwRURCODZCQzAwNjQ3QjY2IC8qIFdNTEV2ZW50SGFuZGxpbmdFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTA4ODA3Qjc2MEVENzA5QUIwMDNGNjk3NSAvKiBXTUxHb0VsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMDhDNEM1MTgwRUYxOUE0MDAwRTQ4NDBGIC8qIFdNTElt
YWdlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwOEM0QzUxQTBFRjE5QTQwMDBFNDg0
MEYgLyogV01MSW1hZ2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDgwQUVDODEwRUQ4
NzA4QjAwREY0Q0NFIC8qIFdNTEludHJpbnNpY0V2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTA4MEFFQzgzMEVEODcwOEIwMERGNENDRSAvKiBXTUxJbnRyaW5zaWNFdmVudEhhbmRsZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMDg4Qzk3MTIwRUNCNkQ5MjAwMDUzNEJBIC8qIFdNTE5hbWVz
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTgzMDAsNiArMTgzMTksNyBAQAogCQkJCUUxQzJDNDQy
MEVBRDAxN0IwMDdFNjFGQiAvKiBXb3JrZXJDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUUxQzM2MzA2MEVBRjJEMDcwMDc0MTBCQyAvKiBXb3JrZXJMb2NhdGlvbi5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlFMTQ3OTlCNDBFQ0RFOUQ4MDAyOTJCRjMgLyogV29ya2VyTWVzc2FnaW5nUHJv
eHkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTEyNzFBMTQwRUVFQzgwNDAwRjYxMjEzIC8qIFdv
cmtlck5hdmlnYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUE2NDNGRDBFQzA5N0EwMDA3
Nzk2NjggLyogV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlF
MTA4MjI0RjBFQzMxNTY3MDBFOTM5NTMgLyogV29ya2VyVGFzay5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlFMUMyQzQyOTBFQUNFMEUwMDA3RTYxRkIgLyogV29ya2VyVGhyZWFkLmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtMTgzNTgsMTAgKzE4Mzc4LDYgQEAKIAkJCQkxQTU2OUQyMjBEN0UyQjgyMDA3
QzM5ODMgLyogcnVudGltZV9vYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE1NjlEMjQw
RDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfcm9vdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5
MzMwOUUxRDA5OUU2NDkyMDA1NkU1ODEgLyogdmlzaWJsZV91bml0cy5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQk0QjM0ODA5MzBFRUY1MEQ0MDBBQzFCNDEgLyogSW1hZ2VTb3VyY2VDR01hYy5tbSBp
biBTb3VyY2VzICovLAotCQkJCUUxMjcxOUNBMEVFRUMyMTMwMEY2MTIxMyAvKiBOYXZpZ2F0b3JC
YXNlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUUxMjcxQTE0MEVFRUM4MDQwMEY2MTIxMyAvKiBX
b3JrZXJOYXZpZ2F0b3IuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRTEyNzFBNTkwRUVFQ0RFNDAw
RjYxMjEzIC8qIEpTV29ya2VyTmF2aWdhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTcyNjI2
RTAyMEVGMDIyRkUwMEEwN0UyMCAvKiBGb250RmFzdFBhdGguY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CkluZGV4OiBX
ZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcAkocmV2aXNpb24gMzkyMjIpCisrKyBXZWJDb3Jl
L3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjM2LDYgKzIz
NiwxMCBAQCBLVVJMIEhpdFRlc3RSZXN1bHQ6OmFic29sdXRlSW1hZ2VVUkwoKSBjCiAgICAgZWxz
ZSBpZiAobV9pbm5lck5vblNoYXJlZE5vZGUtPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmltYWdlVGFn
KSkKICAgICAgICAgdXJsU3RyaW5nID0gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG1faW5uZXJOb25T
aGFyZWROb2RlLmdldCgpKS0+Z2V0QXR0cmlidXRlKFhMaW5rTmFtZXM6OmhyZWZBdHRyKTsKICNl
bmRpZgorI2lmIEVOQUJMRShXTUwpCisgICAgZWxzZSBpZiAobV9pbm5lck5vblNoYXJlZE5vZGUt
Pmhhc1RhZ05hbWUoV01MTmFtZXM6OmltZ1RhZykpCisgICAgICAgIHVybFN0cmluZyA9IHN0YXRp
Y19jYXN0PEVsZW1lbnQqPihtX2lubmVyTm9uU2hhcmVkTm9kZS5nZXQoKSktPmdldEF0dHJpYnV0
ZShzcmNBdHRyKTsKKyNlbmRpZgogICAgIGVsc2UgaWYgKG1faW5uZXJOb25TaGFyZWROb2RlLT5o
YXNUYWdOYW1lKGVtYmVkVGFnKSB8fCBtX2lubmVyTm9uU2hhcmVkTm9kZS0+aGFzVGFnTmFtZShv
YmplY3RUYWcpKSB7CiAgICAgICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBzdGF0aWNfY2FzdDxFbGVt
ZW50Kj4obV9pbm5lck5vblNoYXJlZE5vZGUuZ2V0KCkpOwogICAgICAgICB1cmxTdHJpbmcgPSBl
bGVtZW50LT5nZXRBdHRyaWJ1dGUoZWxlbWVudC0+aW1hZ2VTb3VyY2VBdHRyaWJ1dGVOYW1lKCkp
OwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAkocmV2aXNpb24gMzkyMjIpCisrKyBX
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDYg
KzM4LDExIEBACiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlN5c3RlbVRpbWUu
aCIKIAorI2lmIEVOQUJMRShXTUwpCisjaW5jbHVkZSAiV01MSW1hZ2VFbGVtZW50LmgiCisjaW5j
bHVkZSAiV01MTmFtZXMuaCIKKyNlbmRpZgorCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC00MzIsNiArNDM3LDEwIEBAIHZvaWQgUmVuZGVySW1hZ2U6OnVw
ZGF0ZUFsdFRleHQoKQogICAgICAgICBtX2FsdFRleHQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRF
bGVtZW50Kj4oZWxlbWVudCgpKS0+YWx0VGV4dCgpOwogICAgIGVsc2UgaWYgKGVsZW1lbnQoKS0+
aGFzVGFnTmFtZShpbWdUYWcpKQogICAgICAgICBtX2FsdFRleHQgPSBzdGF0aWNfY2FzdDxIVE1M
SW1hZ2VFbGVtZW50Kj4oZWxlbWVudCgpKS0+YWx0VGV4dCgpOworI2lmIEVOQUJMRShXTUwpCisg
ICAgZWxzZSBpZiAoZWxlbWVudCgpLT5oYXNUYWdOYW1lKFdNTE5hbWVzOjppbWdUYWcpKQorICAg
ICAgICBtX2FsdFRleHQgPSBzdGF0aWNfY2FzdDxXTUxJbWFnZUVsZW1lbnQqPihlbGVtZW50KCkp
LT5hbHRUZXh0KCk7CisjZW5kaWYKIH0KIAogYm9vbCBSZW5kZXJJbWFnZTo6aXNXaWR0aFNwZWNp
ZmllZCgpIGNvbnN0CkluZGV4OiBXZWJDb3JlL3dtbC9XTUxJbWFnZUVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvd21sL1dNTEltYWdlRWxlbWVudC5jcHAJKHJldmlzaW9uIDApCisr
KyBXZWJDb3JlL3dtbC9XTUxJbWFnZUVsZW1lbnQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDE0OSBAQAorLyoqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggVG9yY2ggTW9iaWxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqICAgICAgICAgICAgICAgaHR0cDovL3d3dy50b3JjaG1vYmls
ZS5jb20vCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
ICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoV01MKQorI2luY2x1
ZGUgIldNTEltYWdlRWxlbWVudC5oIgorCisjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgor
I2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKKyNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIlJlbmRlckltYWdlLmgiCisjaW5jbHVk
ZSAiV01MTmFtZXMuaCIKKyNpbmNsdWRlICJXTUxWYXJpYWJsZXMuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgV01MTmFtZXM7CisKK1dNTEltYWdlRWxlbWVudDo6
V01MSW1hZ2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBk
b2MpCisgICAgOiBXTUxFbGVtZW50KHRhZ05hbWUsIGRvYykKKyAgICAsIG1faW1hZ2VMb2FkZXIo
dGhpcykKKyAgICAsIG1fdXNlRmFsbGJhY2tBdHRyaWJ1dGUoZmFsc2UpCit7Cit9CisKK1dNTElt
YWdlRWxlbWVudDo6fldNTEltYWdlRWxlbWVudCgpCit7Cit9CisKK2Jvb2wgV01MSW1hZ2VFbGVt
ZW50OjptYXBUb0VudHJ5KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lLCBNYXBwZWRBdHRy
aWJ1dGVFbnRyeSYgcmVzdWx0KSBjb25zdAoreworICAgIGlmIChhdHRyTmFtZSA9PSBIVE1MTmFt
ZXM6OndpZHRoQXR0ciB8fAorICAgICAgICBhdHRyTmFtZSA9PSBIVE1MTmFtZXM6OmhlaWdodEF0
dHIgfHwKKyAgICAgICAgYXR0ck5hbWUgPT0gSFRNTE5hbWVzOjp2c3BhY2VBdHRyIHx8CisgICAg
ICAgIGF0dHJOYW1lID09IEhUTUxOYW1lczo6aHNwYWNlQXR0cikgeworICAgICAgICByZXN1bHQg
PSBlVW5pdmVyc2FsOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKGF0
dHJOYW1lID09IEhUTUxOYW1lczo6YWxpZ25BdHRyKSB7CisgICAgICAgIHJlc3VsdCA9IGVSZXBs
YWNlZDsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiBXTUxFbGVt
ZW50OjptYXBUb0VudHJ5KGF0dHJOYW1lLCByZXN1bHQpOworfQorCit2b2lkIFdNTEltYWdlRWxl
bWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlKiBhdHRyKQoreworICAg
IGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lID0gYXR0ci0+bmFtZSgpOworCisgICAgaWYg
KGF0dHJOYW1lID09IEhUTUxOYW1lczo6YWx0QXR0cikgeworICAgICAgICBpZiAocmVuZGVyZXIo
KSAmJiByZW5kZXJlcigpLT5pc0ltYWdlKCkpCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxSZW5k
ZXJJbWFnZSo+KHJlbmRlcmVyKCkpLT51cGRhdGVBbHRUZXh0KCk7CisgICAgfSBlbHNlIGlmIChh
dHRyTmFtZSA9PSBIVE1MTmFtZXM6OnNyY0F0dHIgfHwgYXR0ck5hbWUgPT0gbG9jYWxzcmNBdHRy
KQorICAgICAgICBtX2ltYWdlTG9hZGVyLnVwZGF0ZUZyb21FbGVtZW50SWdub3JpbmdQcmV2aW91
c0Vycm9yKCk7CisgICAgZWxzZSBpZiAoYXR0ck5hbWUgPT0gSFRNTE5hbWVzOjp3aWR0aEF0dHIp
CisgICAgICAgIGFkZENTU0xlbmd0aChhdHRyLCBDU1NQcm9wZXJ0eVdpZHRoLCBhdHRyLT52YWx1
ZSgpKTsKKyAgICBlbHNlIGlmIChhdHRyTmFtZSA9PSBIVE1MTmFtZXM6OmhlaWdodEF0dHIpCisg
ICAgICAgIGFkZENTU0xlbmd0aChhdHRyLCBDU1NQcm9wZXJ0eUhlaWdodCwgYXR0ci0+dmFsdWUo
KSk7CisgICAgZWxzZSBpZiAoYXR0ck5hbWUgPT0gSFRNTE5hbWVzOjp2c3BhY2VBdHRyKSB7Cisg
ICAgICAgIGFkZENTU0xlbmd0aChhdHRyLCBDU1NQcm9wZXJ0eU1hcmdpblRvcCwgYXR0ci0+dmFs
dWUoKSk7CisgICAgICAgIGFkZENTU0xlbmd0aChhdHRyLCBDU1NQcm9wZXJ0eU1hcmdpbkJvdHRv
bSwgYXR0ci0+dmFsdWUoKSk7CisgICAgfSBlbHNlIGlmIChhdHRyTmFtZSA9PSBIVE1MTmFtZXM6
OmhzcGFjZUF0dHIpIHsKKyAgICAgICAgYWRkQ1NTTGVuZ3RoKGF0dHIsIENTU1Byb3BlcnR5TWFy
Z2luTGVmdCwgYXR0ci0+dmFsdWUoKSk7CisgICAgICAgIGFkZENTU0xlbmd0aChhdHRyLCBDU1NQ
cm9wZXJ0eU1hcmdpblJpZ2h0LCBhdHRyLT52YWx1ZSgpKTsKKyAgICB9IGVsc2UgaWYgKGF0dHJO
YW1lID09IEhUTUxOYW1lczo6YWxpZ25BdHRyKQorICAgICAgICBIVE1MRWxlbWVudDo6YWRkSFRN
TEFsaWdubWVudFRvU3R5bGVkRWxlbWVudCh0aGlzLCBhdHRyKTsKKyAgICBlbHNlCisgICAgICAg
IFdNTEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpOworfQorCit2b2lkIFdNTElt
YWdlRWxlbWVudDo6YXR0YWNoKCkKK3sKKyAgICBXTUxFbGVtZW50OjphdHRhY2goKTsKKworICAg
IGlmIChyZW5kZXJlcigpICYmIHJlbmRlcmVyKCktPmlzSW1hZ2UoKSkgeworICAgICAgICBSZW5k
ZXJJbWFnZSogaW1hZ2VPYmogPSBzdGF0aWNfY2FzdDxSZW5kZXJJbWFnZSo+KHJlbmRlcmVyKCkp
OworICAgICAgICBpZiAoaW1hZ2VPYmotPmhhc0ltYWdlKCkpCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgaW1hZ2VPYmotPnNldENhY2hlZEltYWdlKG1faW1hZ2VMb2FkZXIuaW1hZ2Uo
KSk7CisKKyAgICAgICAgLy8gSWYgd2UgaGF2ZSBubyBpbWFnZSBhdCBhbGwgYmVjYXVzZSB3ZSBo
YXZlIG5vIHNyYyBhdHRyaWJ1dGUsIHNldAorICAgICAgICAvLyBpbWFnZSBoZWlnaHQgYW5kIHdp
ZHRoIGZvciB0aGUgYWx0IHRleHQgaW5zdGVhZC4KKyAgICAgICAgaWYgKCFtX2ltYWdlTG9hZGVy
LmltYWdlKCkgJiYgIWltYWdlT2JqLT5jYWNoZWRJbWFnZSgpKQorICAgICAgICAgICAgaW1hZ2VP
YmotPnNldEltYWdlU2l6ZUZvckFsdFRleHQoKTsKKyAgICB9Cit9CisKK1JlbmRlck9iamVjdCog
V01MSW1hZ2VFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRl
clN0eWxlKikKK3sKKyAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVySW1hZ2UodGhpcyk7Cit9
CisKK3ZvaWQgV01MSW1hZ2VFbGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVudCgpCit7CisgICAg
Ly8gSWYgd2UgaGF2ZSBiZWVuIGluc2VydGVkIGZyb20gYSByZW5kZXJlci1sZXNzIGRvY3VtZW50
LAorICAgIC8vIG91ciBsb2FkZXIgbWF5IGhhdmUgbm90IGZldGNoZWQgdGhlIGltYWdlLCBzbyBk
byBpdCBub3cuCisgICAgaWYgKCFtX2ltYWdlTG9hZGVyLmltYWdlKCkpCisgICAgICAgIG1faW1h
Z2VMb2FkZXIudXBkYXRlRnJvbUVsZW1lbnQoKTsKKworICAgIFdNTEVsZW1lbnQ6Omluc2VydGVk
SW50b0RvY3VtZW50KCk7Cit9CisKK2Jvb2wgV01MSW1hZ2VFbGVtZW50Ojppc1VSTEF0dHJpYnV0
ZShBdHRyaWJ1dGUqIGF0dHIpIGNvbnN0Cit7CisgICAgcmV0dXJuIGF0dHItPm5hbWUoKSA9PSBI
VE1MTmFtZXM6OnNyY0F0dHIKKyAgICAgICAgICAgfHwgYXR0ci0+bmFtZSgpID09IGxvY2Fsc3Jj
QXR0cjsKK30KKworY29uc3QgUXVhbGlmaWVkTmFtZSYgV01MSW1hZ2VFbGVtZW50OjppbWFnZVNv
dXJjZUF0dHJpYnV0ZU5hbWUoKSBjb25zdAoreworICAgIC8vIFNwZWM6IEFueSAnbG9jYWxzcmMn
IHBhcmFtZXRlciBzcGVjaWZpZWQgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIHRoZSAKKyAgICAvLyBp
bWFnZSBzcGVjaWZpZWQgaW4gdGhlIHNyYyBwYXJhbWV0ZXIuCisgICAgaWYgKGhhc0F0dHJpYnV0
ZShsb2NhbHNyY0F0dHIpICYmICFtX3VzZUZhbGxiYWNrQXR0cmlidXRlKQorICAgICAgICByZXR1
cm4gbG9jYWxzcmNBdHRyOworCisgICAgcmV0dXJuIEhUTUxOYW1lczo6c3JjQXR0cjsKK30KKwor
U3RyaW5nIFdNTEltYWdlRWxlbWVudDo6YWx0VGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN1
YnN0aXR1dGVWYXJpYWJsZVJlZmVyZW5jZXMoZ2V0QXR0cmlidXRlKEhUTUxOYW1lczo6YWx0QXR0
ciksIGRvY3VtZW50KCkpOworfQorCit9CisKKyNlbmRpZgpJbmRleDogV2ViQ29yZS93bWwvV01M
SW1hZ2VFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93bWwvV01MSW1hZ2VFbGVtZW50
LmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3dtbC9XTUxJbWFnZUVsZW1lbnQuaAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw1OSBAQAorLyoqCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggVG9yY2gg
TW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICAgICAgICAgICAgICAgaHR0cDov
L3d3dy50b3JjaG1vYmlsZS5jb20vCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIFdNTEltYWdlRWxlbWVudF9oCisjZGVm
aW5lIFdNTEltYWdlRWxlbWVudF9oCisKKyNpZiBFTkFCTEUoV01MKQorI2luY2x1ZGUgIldNTEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJXTUxJbWFnZUxvYWRlci5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIFdNTEltYWdlRWxlbWVudCA6IHB1YmxpYyBXTUxFbGVtZW50IHsKK3B1Ymxp
YzoKKyAgICBXTUxJbWFnZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQqKTsKKyAgICB2aXJ0dWFsIH5XTUxJbWFnZUVsZW1lbnQoKTsKKworICAgIHZpcnR1YWwg
Ym9vbCBtYXBUb0VudHJ5KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBNYXBwZWRBdHRyaWJ1dGVFbnRy
eSYpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRB
dHRyaWJ1dGUqKTsKKworICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKTsKKyAgICB2aXJ0dWFsIFJl
bmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOwor
CisgICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50b0RvY3VtZW50KCk7CisgICAgdmlydHVhbCBi
b29sIGlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSopIGNvbnN0OworICAgIHZpcnR1YWwgY29uc3Qg
UXVhbGlmaWVkTmFtZSYgaW1hZ2VTb3VyY2VBdHRyaWJ1dGVOYW1lKCkgY29uc3Q7CisKKyAgICBT
dHJpbmcgYWx0VGV4dCgpIGNvbnN0OworCisgICAgYm9vbCB1c2VGYWxsYmFja0F0dHJpYnV0ZSgp
IHsgcmV0dXJuIG1fdXNlRmFsbGJhY2tBdHRyaWJ1dGU7IH0KKyAgICB2b2lkIHNldFVzZUZhbGxi
YWNrQXR0cmlidXRlKGJvb2wgdmFsdWUpIHsgbV91c2VGYWxsYmFja0F0dHJpYnV0ZSA9IHZhbHVl
OyB9CisKK3ByaXZhdGU6CisgICAgV01MSW1hZ2VMb2FkZXIgbV9pbWFnZUxvYWRlcjsKKyAgICBi
b29sIG1fdXNlRmFsbGJhY2tBdHRyaWJ1dGU7Cit9OworCit9CisKKyNlbmRpZgorI2VuZGlmCklu
ZGV4OiBXZWJDb3JlL3dtbC9XTUxJbWFnZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS93bWwvV01MSW1hZ2VMb2FkZXIuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS93bWwvV01M
SW1hZ2VMb2FkZXIuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDgzIEBACisvKioKKyAqIENv
cHlyaWdodCAoQykgMjAwOCBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogICAgICAgICAgICAgICBodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICog
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXTUwpCisjaW5jbHVkZSAiV01MSW1hZ2VMb2FkZXIu
aCIKKworI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCisjaW5jbHVkZSAiQ1NTSGVscGVyLmgiCisj
aW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiV01MSW1hZ2VFbGVtZW50LmgiCisjaW5j
bHVkZSAiV01MTmFtZXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3Bh
Y2UgV01MTmFtZXM7CisKK1dNTEltYWdlTG9hZGVyOjpXTUxJbWFnZUxvYWRlcihXTUxJbWFnZUVs
ZW1lbnQqIGVsZW1lbnQpCisgICAgOiBJbWFnZUxvYWRlcihlbGVtZW50KQoreworfQorCitXTUxJ
bWFnZUxvYWRlcjo6fldNTEltYWdlTG9hZGVyKCkKK3sKK30KKwordm9pZCBXTUxJbWFnZUxvYWRl
cjo6ZGlzcGF0Y2hMb2FkRXZlbnQoKQoreworICAgIC8vIFdNTCBkb2Vzbid0IGZpcmUgYW55IGV2
ZW50cy4KKyAgICBpZiAoaGF2ZUZpcmVkTG9hZEV2ZW50KCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIHNldEhhdmVGaXJlZExvYWRFdmVudCh0cnVlKTsKK30KKworU3RyaW5nIFdNTEltYWdlTG9h
ZGVyOjpzb3VyY2VVUkkoY29uc3QgQXRvbWljU3RyaW5nJiBhdHRyKSBjb25zdAoreworICAgIHJl
dHVybiBwYXJzZVVSTChLVVJMKGVsZW1lbnQoKS0+YmFzZVVSSSgpLCBhdHRyKS5zdHJpbmcoKSk7
Cit9CisKK3ZvaWQgV01MSW1hZ2VMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNl
KiBpbWFnZSkKK3sKKyAgICBJbWFnZUxvYWRlcjo6bm90aWZ5RmluaXNoZWQoaW1hZ2UpOworCisg
ICAgaWYgKCFpbWFnZS0+ZXJyb3JPY2N1cnJlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBX
TUxJbWFnZUVsZW1lbnQqIGltYWdlRWxlbWVudCA9IHN0YXRpY19jYXN0PFdNTEltYWdlRWxlbWVu
dCo+KGVsZW1lbnQoKSk7CisgICAgQVNTRVJUKGltYWdlRWxlbWVudCk7CisKKyAgICAvLyBMb2Fk
aW5nIGJvdGggJ2xvY2Fsc3JjJyBhbmQgJ3NyYycgZmFpbGVkLiBJZ25vcmUgdGhpcyBpbWFnZS4K
KyAgICBpZiAoaW1hZ2VFbGVtZW50LT51c2VGYWxsYmFja0F0dHJpYnV0ZSgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBpZiAoIWltYWdlRWxlbWVudC0+aGFzQXR0cmlidXRlKGxvY2Fsc3JjQXR0
cikgJiYgIWltYWdlRWxlbWVudC0+aGFzQXR0cmlidXRlKEhUTUxOYW1lczo6c3JjQXR0cikpCisg
ICAgICAgIHJldHVybjsKKworICAgIGltYWdlRWxlbWVudC0+c2V0VXNlRmFsbGJhY2tBdHRyaWJ1
dGUodHJ1ZSk7CisgICAgdXBkYXRlRnJvbUVsZW1lbnRJZ25vcmluZ1ByZXZpb3VzRXJyb3IoKTsK
K30KKworfQorCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvd21sL1dNTEltYWdlTG9hZGVyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS93bWwvV01MSW1hZ2VMb2FkZXIuaAkocmV2aXNpb24gMCkKKysr
IFdlYkNvcmUvd21sL1dNTEltYWdlTG9hZGVyLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDYg
QEAKKy8qKgorICogQ29weXJpZ2h0IChDKSAyMDA4IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiAgICAgICAgICAgICAgIGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29t
LworICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisg
Ki8KKworI2lmbmRlZiBXTUxJbWFnZUxvYWRlcl9oCisjZGVmaW5lIFdNTEltYWdlTG9hZGVyX2gK
KworI2lmIEVOQUJMRShXTUwpCisjaW5jbHVkZSAiSW1hZ2VMb2FkZXIuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBXTUxJbWFnZUVsZW1lbnQ7CisKK2NsYXNzIFdNTEltYWdlTG9h
ZGVyIDogcHVibGljIEltYWdlTG9hZGVyIHsKK3B1YmxpYzoKKyAgICBXTUxJbWFnZUxvYWRlcihX
TUxJbWFnZUVsZW1lbnQqKTsKKyAgICB2aXJ0dWFsIH5XTUxJbWFnZUxvYWRlcigpOworCisgICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoTG9hZEV2ZW50KCk7CisgICAgdmlydHVhbCBTdHJpbmcgc291
cmNlVVJJKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0OworCisgICAgdmlydHVhbCB2b2lkIG5v
dGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKik7Cit9OworCit9CisKKyNlbmRpZgorI2VuZGlm
CkluZGV4OiBXZWJDb3JlL3dtbC9XTUxUYWdOYW1lcy5pbgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3dtbC9XTUxUYWdOYW1lcy5pbgkocmV2aXNpb24gMzkyMjIpCisrKyBXZWJDb3JlL3dtbC9XTUxU
YWdOYW1lcy5pbgkod29ya2luZyBjb3B5KQpAQCAtOSw2ICs5LDcgQEAgYnIgaW50ZXJmYWNlTmFt
ZT1XTUxCUkVsZW1lbnQKIGNhcmQKIGRvCiBnbworaW1nIGludGVyZmFjZU5hbWU9V01MSW1hZ2VF
bGVtZW50CiBub29wCiBvbmV2ZW50IGludGVyZmFjZU5hbWU9V01MT25FdmVudEVsZW1lbnQKIHAK
QEAgLTI2LDUgKzI3LDUgQEAgdGltZXIKIAogI2lmIDAKICMgVGhlc2UgZWxlbWVudHMgaGF2ZSBh
IGNvcnJlc3BvbmRpbmcgSFRNTCpFbGVtZW50IGNsYXNzLCB0aGF0IHdlIHdhbnQgdG8gc2hhcmUg
Y29kZSB3aXRoLgotIyBmaWVsZHNldCwgaGVhZCwgaW1nLCBpbnB1dCwgbWV0YSwgb3B0Z3JvdXAs
IG9wdGlvbiwgc2VsZWN0LCB0YWJsZSwgdGQsIHRyCisjIGZpZWxkc2V0LCBoZWFkLCBpbnB1dCwg
bWV0YSwgb3B0Z3JvdXAsIG9wdGlvbiwgc2VsZWN0LCB0YWJsZSwgdGQsIHRyCiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25968</attachid>
            <date>2008-12-11 16:51:30 -0800</date>
            <delta_ts>2008-12-11 17:25:34 -0800</delta_ts>
            <desc>LayoutTests</desc>
            <filename>AddImgSupportTests.diff</filename>
            <type>text/plain</type>
            <size>15276</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDM5MjIyKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMDgtMTItMTEgIE5pa29sYXMgWmltbWVybWFu
biAgPG5pa29sYXMuemltbWVybWFubkB0b3JjaG1vYmlsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IFdNTCBpbWFnZSBsYXlvdXQgdGVz
dHMgdG8gbm90IHJlbHkgb24gZXh0ZXJuYWwgcmVzb3VyY2VzLgorICAgICAgICBVcGRhdGUgcmVz
dWx0cyBhZnRlciBhZGRpbmcgPGltZz4gc3VwcG9ydC4KKworICAgICAgICAqIGZhc3Qvd21sL2lt
Zy1sb2NhbHNyYy53bWw6CisgICAgICAgICogZmFzdC93bWwvaW1nLXNyYy1sb2NhbHNyYy1hbHQu
d21sOgorICAgICAgICAqIGZhc3Qvd21sL2ltZy1zcmMud21sOgorICAgICAgICAqIGZhc3Qvd21s
L3Jlc291cmNlczogQWRkZWQuCisgICAgICAgICogZmFzdC93bWwvcmVzb3VyY2VzL2ZhaWwucG5n
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3dtbC9yZXNvdXJjZXMvcGFzcy5wbmc6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L3dtbC9pbWctbG9jYWxzcmMtZXhwZWN0ZWQuY2hl
Y2tzdW06CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3Qvd21sL2ltZy1sb2NhbHNyYy1leHBl
Y3RlZC5wbmc6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3Qvd21sL2ltZy1sb2NhbHNyYy1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3Qvd21sL2ltZy1zcmMtZXhw
ZWN0ZWQuY2hlY2tzdW06CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3Qvd21sL2ltZy1zcmMt
ZXhwZWN0ZWQucG5nOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L3dtbC9pbWctc3JjLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC93bWwvaW1nLXNyYy1sb2Nh
bHNyYy1hbHQtZXhwZWN0ZWQuY2hlY2tzdW06CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3Qv
d21sL2ltZy1zcmMtbG9jYWxzcmMtYWx0LWV4cGVjdGVkLnBuZzoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvZmFzdC93bWwvaW1nLXNyYy1sb2NhbHNyYy1hbHQtZXhwZWN0ZWQudHh0OgorCiAyMDA4
LTEyLTEwICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgQWRlbGUgUGV0ZXJzb24uCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3dtbC9pbWctc3Jj
LndtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3dtbC9pbWctc3JjLndtbAkocmV2
aXNpb24gMzkyMjIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3dtbC9pbWctc3JjLndtbAkod29ya2lu
ZyBjb3B5KQpAQCAtNSw5ICs1LDkgQEAKICA8cD4gVGVzdCBmb3IgaW1nIGVsZW1lbnQgaW4gV01M
IDwvcD4KICA8cD4gVGhpcyBpbWFnZSBpcyBzcGVjaWZpZWQgYnkgc3JjIGF0dHJpYnV0ZSBvZiBp
bWcgZWxlbWVudDwvcD4KICB0ZXN0IGNvZGU6PCFbQ0RBVEFbCi0gPHA+TmV0d29yayA8aW1nIGhl
aWdodD0iNjAiIHdpZHRoPSI0MCIgdnNwYWNlPSI0MCIgaHNwYWNlPSI2MCIgYWxpZ249Im1pZGRs
ZSIgc3JjPSJodHRwOi8vd2FwLmJhaWR1LmNvbS9sb2dvLmdpZiIgYWx0PSJzbWlsZSIvPkltYWdl
PC9wPgorIDxwPk5ldHdvcmsgPGltZyBoZWlnaHQ9IjYwIiB3aWR0aD0iNDAiIHZzcGFjZT0iNDAi
IGhzcGFjZT0iNjAiIGFsaWduPSJtaWRkbGUiIHNyYz0icmVzb3VyY2VzL3Bhc3MucG5nIiBhbHQ9
InNtaWxlIi8+SW1hZ2U8L3A+CiAgXV0+CiAgPGJyLz4KLSA8cD5OZXR3b3JrIDxpbWcgaGVpZ2h0
PSI2MCIgd2lkdGg9IjQwIiB2c3BhY2U9IjQwIiBoc3BhY2U9IjYwIiBhbGlnbj0ibWlkZGxlIiBz
cmM9Imh0dHA6Ly93YXAuYmFpZHUuY29tL2xvZ28uZ2lmIiBhbHQ9InNtaWxlIi8+SW1hZ2U8L3A+
CisgPHA+TmV0d29yayA8aW1nIGhlaWdodD0iNjAiIHdpZHRoPSI0MCIgdnNwYWNlPSI0MCIgaHNw
YWNlPSI2MCIgYWxpZ249Im1pZGRsZSIgc3JjPSJyZXNvdXJjZXMvcGFzcy5wbmciIGFsdD0ic21p
bGUiLz5JbWFnZTwvcD4KICA8L2NhcmQ+CiA8L3dtbD4gCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L3dtbC9yZXNvdXJjZXMvcGFzcy5wbmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBt
YXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGFwcGxpY2F0aW9uL29jdGV0
LXN0cmVhbQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvZmFzdC93bWwvcmVzb3Vy
Y2VzL3Bhc3MucG5nCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICArIGFwcGxpY2F0
aW9uL29jdGV0LXN0cmVhbQoKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvd21sL3Jlc291cmNlcy9m
YWlsLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFy
eSB0eXBlLgpzdm46bWltZS10eXBlID0gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgpQcm9wZXJ0
eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9mYXN0L3dtbC9yZXNvdXJjZXMvZmFpbC5wbmcKX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFt
CgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC93bWwvaW1nLWxvY2Fsc3JjLndtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3dtbC9pbWctbG9jYWxzcmMud21sCShyZXZpc2lvbiAzOTIy
MikKKysrIExheW91dFRlc3RzL2Zhc3Qvd21sL2ltZy1sb2NhbHNyYy53bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTUsOSArNSw5IEBACiAgPHA+IFRlc3QgZm9yIGltZyBlbGVtZW50IGluIFdNTCA8L3A+
CiAgPHA+IFRoaXMgaW1hZ2UgaXMgc3BlY2lmaWVkIGJ5IGxvY2Fsc3JjIGF0dHJpYnV0ZSBvZiBp
bWcgZWxlbWVudDwvcD4KICB0ZXN0IGNvZGU6PCFbQ0RBVEFbCi0gPHA+TG9jYWw8aW1nIGhlaWdo
dD0iNjAiIHdpZHRoPSI0MCIgdnNwYWNlPSI0MCIgaHNwYWNlPSI2MCIgYWxpZ249Im1pZGRsZSIg
bG9jYWxzcmM9InJlc291cmNlcy9zbWlsZS5naWYiIGFsdD0ic21pbGUiLz5JbWFnZTwvcD4KKyA8
cD5Mb2NhbDxpbWcgaGVpZ2h0PSI2MCIgd2lkdGg9IjQwIiB2c3BhY2U9IjQwIiBoc3BhY2U9IjYw
IiBhbGlnbj0ibWlkZGxlIiBsb2NhbHNyYz0icmVzb3VyY2VzL3Bhc3MucG5nIiBhbHQ9InNtaWxl
Ii8+SW1hZ2U8L3A+CiAgXV0+CiAgPGJyLz4KLSA8cD5Mb2NhbDxpbWcgaGVpZ2h0PSI2MCIgd2lk
dGg9IjQwIiB2c3BhY2U9IjQwIiBoc3BhY2U9IjYwIiBhbGlnbj0ibWlkZGxlIiBsb2NhbHNyYz0i
cmVzb3VyY2VzL3NtaWxlLmdpZiIgYWx0PSJzbWlsZSIvPkltYWdlPC9wPgorIDxwPkxvY2FsPGlt
ZyBoZWlnaHQ9IjYwIiB3aWR0aD0iNDAiIHZzcGFjZT0iNDAiIGhzcGFjZT0iNjAiIGFsaWduPSJt
aWRkbGUiIGxvY2Fsc3JjPSJyZXNvdXJjZXMvcGFzcy5wbmciIGFsdD0ic21pbGUiLz5JbWFnZTwv
cD4KICA8L2NhcmQ+CiA8L3dtbD4gCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3dtbC9pbWctc3Jj
LWxvY2Fsc3JjLWFsdC53bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC93bWwvaW1n
LXNyYy1sb2NhbHNyYy1hbHQud21sCShyZXZpc2lvbiAzOTIyMikKKysrIExheW91dFRlc3RzL2Zh
c3Qvd21sL2ltZy1zcmMtbG9jYWxzcmMtYWx0LndtbAkod29ya2luZyBjb3B5KQpAQCAtNSwxMyAr
NSwxMyBAQAogIDxwPiBUZXN0IGZvciBpbWcgZWxlbWVudCBpbiBXTUwgPC9wPgogIDxwPiBUaGlz
IGltYWdlIGNhbiBiZSBzcGVjaWZpZWQgYnkgYm90aCBzcmMgYW5kIGxvY2Fsc3JjIGF0dHJpYnV0
ZXMgb2YgaW1nIGVsZW1lbnQ8L3A+CiAgPHA+IDEpIGxvY2Fsc3JjIHRha2VzIHByZWNlZGVuY2Ug
b3ZlciBzcmMgYXR0cmlidXRlIDxici8+Ci0gSW1hZ2U8aW1nIHNyYz0iaHR0cDovL3d3dy5iYWlk
dS5jb20vaW1nL2JhaWR1LmdpZiIgbG9jYWxzcmM9InJlc291cmNlcy9zbWlsZS5naWYiIGFsdD0i
SU1BR0UiLz5JbWFnZQorIEltYWdlPGltZyBzcmM9InJlc291cmNlcy9mYWlsLnBuZyIgbG9jYWxz
cmM9InJlc291cmNlcy9wYXNzLnBuZyIgYWx0PSJJTUFHRSIvPkltYWdlCiAgPGJyLz4KICAyKSBs
b2NhbHNyYyBjYW4ndCBsb2NhdGUgdGhlIGltYWdlLCBzcmMgd29ya3MgPGJyLz4KLSBJbWFnZTxp
bWcgc3JjPSJodHRwOi8vd3d3LmJhaWR1LmNvbS9pbWcvYmFpZHUuZ2lmIiBsb2NhbHNyYz0id3Jv
bmdwYXRoL3NtaWxlLmdpZiIgYWx0PSJJTUFHRSIvPkltYWdlCisgSW1hZ2U8aW1nIHNyYz0icmVz
b3VyY2VzL3Bhc3MucG5nIiBsb2NhbHNyYz0id3JvbmdwYXRoL2ZhaWwucG5nIiBhbHQ9IklNQUdF
Ii8+SW1hZ2UKICA8YnIvPgogIDMpIG5laXRoZXIgbG9jYWxzcmMgbm9yIHNyYyBjYW4gbG9jYXRl
IHRoZSBpbWFnZSwgYWx0IHdvcmtzIDxici8+Ci0gSW1hZ2U8aW1nIHNyYz0iaHR0cDovL3d3dy5i
YWlkdS5jb20vd3JvbmdwYXRoL2JhaWR1LmdpZiIgbG9jYWxzcmM9Indyb25ncGF0aC9zbWlsZS5n
aWYiIGFsdD0iSU1BR0UiLz5JbWFnZQorIEltYWdlPGltZyBzcmM9Indyb25ncGF0aC9mYWlsLnBu
ZyIgbG9jYWxzcmM9Indyb25ncGF0aC9mYWlsLnBuZyIgYWx0PSJQQVNTIi8+SW1hZ2UKICA8L3A+
CiAgPC9jYXJkPgogPC93bWw+IApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qv
d21sL2ltZy1sb2NhbHNyYy1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTog
ZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGFwcGxpY2F0aW9u
L29jdGV0LXN0cmVhbQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvd21sL2lt
Zy1zcmMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9mYXN0L3dtbC9pbWctc3JjLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMzkyMjIpCisrKyBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC93bWwvaW1nLXNyYy1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTEsOCArMSw4IEBACiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAg
UmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAw
eDE3MAotICBSZW5kZXJCbG9jayB7d21sfSBhdCAoMCwwKSBzaXplIDgwMHgxNzAKLSAgICBSZW5k
ZXJCbG9jayB7Y2FyZH0gYXQgKDgsMTYpIHNpemUgNzg0eDEzOAorbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA4MDB4MjkyCisgIFJlbmRlckJsb2NrIHt3bWx9IGF0ICgwLDApIHNpemUgODAweDI5MgorICAg
IFJlbmRlckJsb2NrIHtjYXJkfSBhdCAoOCwxNikgc2l6ZSA3ODR4MjYwCiAgICAgICBSZW5kZXJC
bG9jayB7cH0gYXQgKDAsMCkgc2l6ZSA3ODR4MTgKICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgwLDApIHNpemUgMTg5eDE4CiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGgg
MTg5OiAiVGVzdCBmb3IgaW1nIGVsZW1lbnQgaW4gV01MIgpAQCAtMTIsMTUgKzEyLDE1IEBACiAg
ICAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoMCw2OCkgc2l6ZSA3ODR4MzYKICAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNTl4MTgKICAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMCwwKSB3aWR0aCA1OTogInRlc3QgY29kZToiCi0gICAgICAgIFJlbmRlclRleHQg
eyNjZGF0YS1zZWN0aW9ufSBhdCAoNTksMCkgc2l6ZSA2MTZ4MzYKKyAgICAgICAgUmVuZGVyVGV4
dCB7I2NkYXRhLXNlY3Rpb259IGF0ICg1OSwwKSBzaXplIDc3OXgzNgogICAgICAgICAgIHRleHQg
cnVuIGF0ICg1OSwwKSB3aWR0aCA0OiAiICIKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoNjMsMCkg
d2lkdGggNTUzOiAiPHA+TmV0d29yayA8aW1nIGhlaWdodD1cIjYwXCIgd2lkdGg9XCI0MFwiIHZz
cGFjZT1cIjQwXCIgaHNwYWNlPVwiNjBcIiBhbGlnbj1cIm1pZGRsZVwiIgotICAgICAgICAgIHRl
eHQgcnVuIGF0ICgwLDE4KSB3aWR0aCAzODg6ICJzcmM9XCJodHRwOi8vd2FwLmJhaWR1LmNvbS9s
b2dvLmdpZlwiIGFsdD1cInNtaWxlXCIvPkltYWdlPC9wPiAiCisgICAgICAgICAgdGV4dCBydW4g
YXQgKDYzLDApIHdpZHRoIDcxNjogIjxwPk5ldHdvcmsgPGltZyBoZWlnaHQ9XCI2MFwiIHdpZHRo
PVwiNDBcIiB2c3BhY2U9XCI0MFwiIGhzcGFjZT1cIjYwXCIgYWxpZ249XCJtaWRkbGVcIiBzcmM9
XCJyZXNvdXJjZXMvcGFzcy5wbmdcIiIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxOCkgd2lk
dGggMTU3OiAiYWx0PVwic21pbGVcIi8+SW1hZ2U8L3A+ICIKICAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCiAgICAgICAgIFJlbmRlckJSIHticn0gYXQgKDAsMCkg
c2l6ZSAweDAKLSAgICAgIFJlbmRlckJsb2NrIHtwfSBhdCAoMCwxMjApIHNpemUgNzg0eDE4Ci0g
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDYweDE4Ci0gICAgICAgICAg
dGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNjA6ICJOZXR3b3JrICIKLSAgICAgICAgUmVuZGVySW5s
aW5lIHtpbWd9IGF0ICgwLDApIHNpemUgMHgxOAotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDYwLDApIHNpemUgMzl4MTgKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoNjAsMCkgd2lkdGgg
Mzk6ICJJbWFnZSIKKyAgICAgIFJlbmRlckJsb2NrIHtwfSBhdCAoMCwxMjApIHNpemUgNzg0eDE0
MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsNTYpIHNpemUgNjB4MTgKKyAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMCw1Nikgd2lkdGggNjA6ICJOZXR3b3JrICIKKyAgICAgICAgUmVu
ZGVySW1hZ2Uge2ltZ30gYXQgKDEyMCw0MCkgc2l6ZSA0MHg2MAorICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDIyMCw1Nikgc2l6ZSAzOXgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgy
MjAsNTYpIHdpZHRoIDM5OiAiSW1hZ2UiCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
ZmFzdC93bWwvaW1nLXNyYy1sb2NhbHNyYy1hbHQtZXhwZWN0ZWQuY2hlY2tzdW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvd21sL2ltZy1zcmMtbG9jYWxzcmMt
YWx0LWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAzOTIyMikKKysrIExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9mYXN0L3dtbC9pbWctc3JjLWxvY2Fsc3JjLWFsdC1leHBlY3RlZC5jaGVja3N1
bQkod29ya2luZyBjb3B5KQpAQCAtMSArMSBAQAotY2RmN2FmMzNkYjE3OGI3Mzg1MGFmYmY4MjYz
MTU4ZWIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCis2ZGNmM2RiYWY2ODA0NmM3ZmRhYjZk
OWJkZDQ5Zjg3YQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9mYXN0L3dtbC9pbWctc3JjLWV4cGVjdGVkLmNoZWNrc3VtCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3dtbC9pbWctc3JjLWV4cGVjdGVk
LmNoZWNrc3VtCShyZXZpc2lvbiAzOTIyMikKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9m
YXN0L3dtbC9pbWctc3JjLWV4cGVjdGVkLmNoZWNrc3VtCSh3b3JraW5nIGNvcHkpCkBAIC0xICsx
IEBACi1iOWJkY2Q2ZDAxMjRiOTAyYWE2Y2QyM2NhMDEzOTRkMQpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKKzhmYzQ1NTkyNjdkYWUzZWY3N2ZkNWM2NjgzYWJkYjFiClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvd21sL2lt
Zy1zcmMtZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2Vk
IGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBhcHBsaWNhdGlvbi9vY3RldC1zdHJl
YW0KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3dtbC9pbWctc3JjLWxvY2Fs
c3JjLWFsdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Zhc3Qvd21sL2ltZy1zcmMtbG9jYWxzcmMtYWx0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MzkyMjIpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC93bWwvaW1nLXNyYy1sb2Nh
bHNyYy1hbHQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDM4ICsxLDM4IEBACiBs
YXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDIwOAotICBSZW5kZXJCbG9jayB7d21sfSBh
dCAoMCwwKSBzaXplIDgwMHgyMDgKLSAgICBSZW5kZXJCbG9jayB7Y2FyZH0gYXQgKDgsMTYpIHNp
emUgNzg0eDE3NgorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4Mzg2CisgIFJlbmRlckJsb2NrIHt3
bWx9IGF0ICgwLDApIHNpemUgODAweDM4NgorICAgIFJlbmRlckJsb2NrIHtjYXJkfSBhdCAoOCwx
Nikgc2l6ZSA3ODR4MzU0CiAgICAgICBSZW5kZXJCbG9jayB7cH0gYXQgKDAsMCkgc2l6ZSA3ODR4
MTgKICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMTg5eDE4CiAgICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMTg5OiAiVGVzdCBmb3IgaW1nIGVsZW1lbnQg
aW4gV01MIgogICAgICAgUmVuZGVyQmxvY2sge3B9IGF0ICgwLDM0KSBzaXplIDc4NHgxOAogICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0ODd4MTgKICAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0ODc6ICJUaGlzIGltYWdlIGNhbiBiZSBzcGVjaWZpZWQg
YnkgYm90aCBzcmMgYW5kIGxvY2Fsc3JjIGF0dHJpYnV0ZXMgb2YgaW1nIGVsZW1lbnQiCi0gICAg
ICBSZW5kZXJCbG9jayB7cH0gYXQgKDAsNjgpIHNpemUgNzg0eDEwOAorICAgICAgUmVuZGVyQmxv
Y2sge3B9IGF0ICgwLDY4KSBzaXplIDc4NHgyODYKICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgwLDApIHNpemUgMjg5eDE4CiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGgg
Mjg5OiAiMSkgbG9jYWxzcmMgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIHNyYyBhdHRyaWJ1dGUgIgog
ICAgICAgICBSZW5kZXJCUiB7YnJ9IGF0ICgyODksMCkgc2l6ZSAweDE4Ci0gICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMCwxOCkgc2l6ZSAzOXgxOAotICAgICAgICAgIHRleHQgcnVuIGF0
ICgwLDE4KSB3aWR0aCAzOTogIkltYWdlIgotICAgICAgICBSZW5kZXJJbmxpbmUge2ltZ30gYXQg
KDAsMCkgc2l6ZSAweDE4Ci0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMzksMTgpIHNp
emUgNDN4MTgKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMzksMTgpIHdpZHRoIDQzOiAiSW1hZ2Ug
IgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMTA0KSBzaXplIDM5eDE4CisgICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMTA0KSB3aWR0aCAzOTogIkltYWdlIgorICAgICAgICBSZW5k
ZXJJbWFnZSB7aW1nfSBhdCAoMzksMTgpIHNpemUgMTAweDEwMAorICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDEzOSwxMDQpIHNpemUgNDN4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MTM5LDEwNCkgd2lkdGggNDM6ICJJbWFnZSAiCiAgICAgICAgIFJlbmRlckJSIHticn0gYXQgKDAs
MCkgc2l6ZSAweDAKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDM2KSBzaXplIDI3
N3gxOAotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDM2KSB3aWR0aCAyNzc6ICIyKSBsb2NhbHNy
YyBjYW4ndCBsb2NhdGUgdGhlIGltYWdlLCBzcmMgd29ya3MgIgotICAgICAgICBSZW5kZXJCUiB7
YnJ9IGF0ICgyNzcsMzYpIHNpemUgMHgxOAotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDAsNTQpIHNpemUgMzl4MTgKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCw1NCkgd2lkdGggMzk6
ICJJbWFnZSIKLSAgICAgICAgUmVuZGVySW5saW5lIHtpbWd9IGF0ICgwLDApIHNpemUgMHgxOAot
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDM5LDU0KSBzaXplIDQzeDE4Ci0gICAgICAg
ICAgdGV4dCBydW4gYXQgKDM5LDU0KSB3aWR0aCA0MzogIkltYWdlICIKKyAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgwLDEyMikgc2l6ZSAyNzd4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMCwxMjIpIHdpZHRoIDI3NzogIjIpIGxvY2Fsc3JjIGNhbid0IGxvY2F0ZSB0aGUgaW1hZ2Us
IHNyYyB3b3JrcyAiCisgICAgICAgIFJlbmRlckJSIHticn0gYXQgKDI3NywxMjIpIHNpemUgMHgx
OAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMjI2KSBzaXplIDM5eDE4CisgICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMjI2KSB3aWR0aCAzOTogIkltYWdlIgorICAgICAgICBSZW5k
ZXJJbWFnZSB7aW1nfSBhdCAoMzksMTQwKSBzaXplIDEwMHgxMDAKKyAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgxMzksMjI2KSBzaXplIDQzeDE4CisgICAgICAgICAgdGV4dCBydW4gYXQg
KDEzOSwyMjYpIHdpZHRoIDQzOiAiSW1hZ2UgIgogICAgICAgICBSZW5kZXJCUiB7YnJ9IGF0ICgw
LDApIHNpemUgMHgwCi0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCw3Mikgc2l6ZSAz
NjF4MTgKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCw3Mikgd2lkdGggMzYxOiAiMykgbmVpdGhl
ciBsb2NhbHNyYyBub3Igc3JjIGNhbiBsb2NhdGUgdGhlIGltYWdlLCBhbHQgd29ya3MgIgotICAg
ICAgICBSZW5kZXJCUiB7YnJ9IGF0ICgzNjEsNzIpIHNpemUgMHgxOAotICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsOTApIHNpemUgMzl4MTgKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MCw5MCkgd2lkdGggMzk6ICJJbWFnZSIKLSAgICAgICAgUmVuZGVySW5saW5lIHtpbWd9IGF0ICgw
LDApIHNpemUgMHgxOAotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDM5LDkwKSBzaXpl
IDM5eDE4Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDM5LDkwKSB3aWR0aCAzOTogIkltYWdlIgor
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMjQ0KSBzaXplIDM2MXgxOAorICAgICAg
ICAgIHRleHQgcnVuIGF0ICgwLDI0NCkgd2lkdGggMzYxOiAiMykgbmVpdGhlciBsb2NhbHNyYyBu
b3Igc3JjIGNhbiBsb2NhdGUgdGhlIGltYWdlLCBhbHQgd29ya3MgIgorICAgICAgICBSZW5kZXJC
UiB7YnJ9IGF0ICgzNjEsMjQ0KSBzaXplIDB4MTgKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgwLDI2OCkgc2l6ZSAzOXgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDI2OCkgd2lk
dGggMzk6ICJJbWFnZSIKKyAgICAgICAgUmVuZGVySW1hZ2Uge2ltZ30gYXQgKDM5LDI2Mikgc2l6
ZSAzOXgyMAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDc4LDI2OCkgc2l6ZSAzOXgx
OAorICAgICAgICAgIHRleHQgcnVuIGF0ICg3OCwyNjgpIHdpZHRoIDM5OiAiSW1hZ2UiCkluZGV4
OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC93bWwvaW1nLWxvY2Fsc3JjLWV4cGVjdGVk
LmNoZWNrc3VtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3dt
bC9pbWctbG9jYWxzcmMtZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDM5MjIyKQorKysgTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvd21sL2ltZy1sb2NhbHNyYy1leHBlY3RlZC5jaGVj
a3N1bQkod29ya2luZyBjb3B5KQpAQCAtMSArMSBAQAotYmUwOWQ3OTYwZmEzNzY4NTc2MzA2YTY1
ZGMyZDlhNzUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCis0NzhiMGZhYzc1MjdmMGY3MWVh
ZjQ1ZTY3MzA1NGY2ZApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9mYXN0L3dtbC9pbWctbG9jYWxzcmMtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3dtbC9pbWctbG9jYWxzcmMt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAzOTIyMikKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9mYXN0L3dtbC9pbWctbG9jYWxzcmMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0x
LDggKzEsOCBAQAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclZpZXcgYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHgxNzAKLSAgUmVuZGVy
QmxvY2sge3dtbH0gYXQgKDAsMCkgc2l6ZSA4MDB4MTcwCi0gICAgUmVuZGVyQmxvY2sge2NhcmR9
IGF0ICg4LDE2KSBzaXplIDc4NHgxMzgKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDI5MgorICBS
ZW5kZXJCbG9jayB7d21sfSBhdCAoMCwwKSBzaXplIDgwMHgyOTIKKyAgICBSZW5kZXJCbG9jayB7
Y2FyZH0gYXQgKDgsMTYpIHNpemUgNzg0eDI2MAogICAgICAgUmVuZGVyQmxvY2sge3B9IGF0ICgw
LDApIHNpemUgNzg0eDE4CiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDE4OXgxOAogICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDE4OTogIlRlc3QgZm9y
IGltZyBlbGVtZW50IGluIFdNTCIKQEAgLTEyLDE1ICsxMiwxNSBAQAogICAgICAgUmVuZGVyQmxv
Y2sgKGFub255bW91cykgYXQgKDAsNjgpIHNpemUgNzg0eDM2CiAgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDU5eDE4CiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkg
d2lkdGggNTk6ICJ0ZXN0IGNvZGU6IgotICAgICAgICBSZW5kZXJUZXh0IHsjY2RhdGEtc2VjdGlv
bn0gYXQgKDU5LDApIHNpemUgNzg0eDM2CisgICAgICAgIFJlbmRlclRleHQgeyNjZGF0YS1zZWN0
aW9ufSBhdCAoNTksMCkgc2l6ZSA1OTJ4MzYKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNTksMCkg
d2lkdGggNDogIiAiCi0gICAgICAgICAgdGV4dCBydW4gYXQgKDYzLDApIHdpZHRoIDcyMTogIjxw
PkxvY2FsPGltZyBoZWlnaHQ9XCI2MFwiIHdpZHRoPVwiNDBcIiB2c3BhY2U9XCI0MFwiIGhzcGFj
ZT1cIjYwXCIgYWxpZ249XCJtaWRkbGVcIiBsb2NhbHNyYz1cInJlc291cmNlcy9zbWlsZS5naWZc
IiIKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxOCkgd2lkdGggMTU3OiAiYWx0PVwic21pbGVc
Ii8+SW1hZ2U8L3A+ICIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoNjMsMCkgd2lkdGggNTI5OiAi
PHA+TG9jYWw8aW1nIGhlaWdodD1cIjYwXCIgd2lkdGg9XCI0MFwiIHZzcGFjZT1cIjQwXCIgaHNw
YWNlPVwiNjBcIiBhbGlnbj1cIm1pZGRsZVwiIgorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE4
KSB3aWR0aCAzNTA6ICJsb2NhbHNyYz1cInJlc291cmNlcy9wYXNzLnBuZ1wiIGFsdD1cInNtaWxl
XCIvPkltYWdlPC9wPiAiCiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDB4MAogICAgICAgICBSZW5kZXJCUiB7YnJ9IGF0ICgwLDApIHNpemUgMHgwCi0gICAgICBSZW5k
ZXJCbG9jayB7cH0gYXQgKDAsMTIwKSBzaXplIDc4NHgxOAotICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSAzNngxOAotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDM2OiAiTG9jYWwiCi0gICAgICAgIFJlbmRlcklubGluZSB7aW1nfSBhdCAoMCwwKSBzaXpl
IDB4MTgKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgzNiwwKSBzaXplIDM5eDE4Ci0g
ICAgICAgICAgdGV4dCBydW4gYXQgKDM2LDApIHdpZHRoIDM5OiAiSW1hZ2UiCisgICAgICBSZW5k
ZXJCbG9jayB7cH0gYXQgKDAsMTIwKSBzaXplIDc4NHgxNDAKKyAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgwLDU2KSBzaXplIDM2eDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNTYp
IHdpZHRoIDM2OiAiTG9jYWwiCisgICAgICAgIFJlbmRlckltYWdlIHtpbWd9IGF0ICg5Niw0MCkg
c2l6ZSA0MHg2MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDE5Niw1Nikgc2l6ZSAz
OXgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgxOTYsNTYpIHdpZHRoIDM5OiAiSW1hZ2UiCklu
ZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC93bWwvaW1nLXNyYy1sb2NhbHNyYy1h
bHQtZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFz
IGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0K
</data>
<flag name="review"
          id="12209"
          type_id="1"
          status="+"
          setter="zecke"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25969</attachid>
            <date>2008-12-11 17:30:12 -0800</date>
            <delta_ts>2008-12-11 17:51:00 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>AddImgSupport.diff</filename>
            <type>text/plain</type>
            <size>32437</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDM5MjI0
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTAgQEAKKzIwMDgtMTIt
MTEgIE5pa29sYXMgWmltbWVybWFubiAgPG5pa29sYXMuemltbWVybWFubkB0b3JjaG1vYmlsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSG9sZ2VyIEZyZXl0aGVyLgorCisgICAgICAgIEZp
eGVzOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4MTQKKworICAg
ICAgICBBZGQgPHdtbD4gaW1hZ2UgZWxlbWVudCBzdXBwb3J0LiBCYXNlZCBvbiBIVE1ML1NWR0lt
YWdle0VsZW1lbnQvTG9hZGVyfSwgd2l0aAorICAgICAgICB0aGUgb25seSBkaWZmZXJlbmNlIHRo
YXQgV01MIGRlZmluZXMgYSBzZWNvbmQgc291cmNlIGF0dHJpYnV0ZSAnbG9jYWxzcmMnLCB0aGF0
CisgICAgICAgIHRha2VzIHByZWNlZGVuY2Ugb3ZlciB0aGUgJ3NyYycgYXR0cmlidXRlLiBJZiBs
b2FkaW5nIHRoZSAnbG9jYWxzcmMnIGF0dHJpYnV0ZQorICAgICAgICBmYWlscywgdGhlIHVzZXIg
YWdlbnQgc2hvdWxkIHRyeSBsb2FkaW5nIHRoZSAnc3JjJyBhdHRyaWJ1dGUuIElmIGJvdGggZmFp
bCB0aGUKKyAgICAgICAgJ2FsdCcgZmFsbGJhY2sgY29udGVudCB3aWxsIGJlIHVzZWQgLSBqdXN0
IGxpa2UgaW4gSFRNTC4KKworICAgICAgICBGaXhlczogZmFzdC93bWwvaW1nLWxvY2Fsc3JjLndt
bCAoPGltZz4gYW5kICdsb2NhbHNyYycgYXR0cmlidXRlKQorICAgICAgICAgICAgICAgZmFzdC93
bWwvaW1nLXNyYy1sb2NhbHNyYy1hbHQud21sICgnbG9jYWxzcmMnLydzcmMnIGZhbGxiYWNrIGhh
bmRsaW5nKQorICAgICAgICAgICAgICAgZmFzdC93bWwvaW1nLXNyYy53bWwgKDxpbWc+IGFuZCAn
c3JjJyBhdHRyaWJ1dGUpCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBX
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJlc3VsdDo6YWx0RGlzcGxheVN0cmluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0OjphYnNvbHV0ZUltYWdlVVJMKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
SW1hZ2U6OnVwZGF0ZUFsdFRleHQpOgorICAgICAgICAqIHdtbC9XTUxJbWFnZUVsZW1lbnQuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldNTEltYWdlRWxlbWVudDo6V01MSW1hZ2VFbGVt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OldNTEltYWdlRWxlbWVudDo6fldNTEltYWdlRWxlbWVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpXTUxJbWFnZUVsZW1lbnQ6Om1hcFRvRW50cnkpOgorICAg
ICAgICAoV2ViQ29yZTo6V01MSW1hZ2VFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXTUxJbWFnZUVsZW1lbnQ6OmF0dGFjaCk6CisgICAgICAgIChXZWJD
b3JlOjpXTUxJbWFnZUVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OldNTEltYWdlRWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6V01MSW1hZ2VFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpX
TUxJbWFnZUVsZW1lbnQ6OmltYWdlU291cmNlQXR0cmlidXRlTmFtZSk6CisgICAgICAgIChXZWJD
b3JlOjpXTUxJbWFnZUVsZW1lbnQ6OmFsdFRleHQpOgorICAgICAgICAqIHdtbC9XTUxJbWFnZUVs
ZW1lbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXTUxJbWFnZUVsZW1lbnQ6OnVzZUZh
bGxiYWNrQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldNTEltYWdlRWxlbWVudDo6c2V0
VXNlRmFsbGJhY2tBdHRyaWJ1dGUpOgorICAgICAgICAqIHdtbC9XTUxJbWFnZUxvYWRlci5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V01MSW1hZ2VMb2FkZXI6OldNTEltYWdlTG9hZGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OldNTEltYWdlTG9hZGVyOjp+V01MSW1hZ2VMb2FkZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6V01MSW1hZ2VMb2FkZXI6OmRpc3BhdGNoTG9hZEV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OldNTEltYWdlTG9hZGVyOjpzb3VyY2VVUkkpOgorICAgICAgICAoV2Vi
Q29yZTo6V01MSW1hZ2VMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKiB3bWwvV01M
SW1hZ2VMb2FkZXIuaDogQWRkZWQuCisgICAgICAgICogd21sL1dNTFRhZ05hbWVzLmluOgorCiAy
MDA4LTEyLTExICBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlciAgPHplY2tlQHNlbGZpc2gub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogR05VbWFrZWZpbGUu
YW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDM5MjI0KQorKysgR05V
bWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTIxODMsNiArMjE4Myw4IEBAIHdlYmNvcmVf
c291cmNlcyArPSBcCiAJV2ViQ29yZS93bWwvV01MRXJyb3JIYW5kbGluZy5jcHAgXAogCVdlYkNv
cmUvd21sL1dNTEV2ZW50SGFuZGxpbmdFbGVtZW50LmNwcCBcCiAJV2ViQ29yZS93bWwvV01MR29F
bGVtZW50LmNwcCBcCisJV2ViQ29yZS93bWwvV01MSW1hZ2VFbGVtZW50LmNwcCBcCisJV2ViQ29y
ZS93bWwvV01MSW1hZ2VMb2FkZXIuY3BwIFwKIAlXZWJDb3JlL3dtbC9XTUxJbnRyaW5zaWNFdmVu
dC5jcHAgXAogCVdlYkNvcmUvd21sL1dNTEludHJpbnNpY0V2ZW50SGFuZGxlci5jcHAgXAogCVdl
YkNvcmUvd21sL1dNTE5vb3BFbGVtZW50LmNwcCBcCkluZGV4OiBXZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagko
cmV2aXNpb24gMzkyMjQpCisrKyBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29ya2lu
ZyBjb3B5KQpAQCAtMTY4OTgsNiArMTY4OTgsMjIgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJ
CTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cd21sXFdNTEltYWdlRWxlbWVudC5jcHAiDQor
CQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlx3bWxc
V01MSW1hZ2VFbGVtZW50LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJ
UmVsYXRpdmVQYXRoPSIuLlx3bWxcV01MSW1hZ2VMb2FkZXIuY3BwIg0KKwkJCQk+DQorCQkJPC9G
aWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cd21sXFdNTEltYWdlTG9hZGVy
LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIu
Llx3bWxcV01MSW50cmluc2ljRXZlbnQuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KSW5kZXg6
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDM5MjI0KQorKysgV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC05MCw2ICs5MCwxMCBA
QAogCQkwOEE0ODQ3NzBFNTI3MkM1MDBDM0ZFNzYgLyogU2NyaXB0RWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwOEE0ODQ3NTBFNTI3MkM1
MDBDM0ZFNzYgLyogU2NyaXB0RWxlbWVudC5jcHAgKi87IH07CiAJCTA4QTQ4NDc4MEU1MjcyQzUw
MEMzRkU3NiAvKiBTY3JpcHRFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwOEE0ODQ3NjBFNTI3MkM1MDBDM0ZFNzYgLyogU2NyaXB0RWxlbWVu
dC5oICovOyB9OwogCQkwOEE0OEE2RTBFODZDRjZEMDBFMjI1REQgLyogSlNTVkdFbGVtZW50SW5z
dGFuY2VDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDhBNDhBNkQwRTg2Q0Y2RDAwRTIyNUREIC8qIEpTU1ZHRWxlbWVudEluc3RhbmNlQ3Vz
dG9tLmNwcCAqLzsgfTsKKwkJMDhDNEM1MTgwRUYxOUE0MDAwRTQ4NDBGIC8qIFdNTEltYWdlRWxl
bWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
OEM0QzUxNDBFRjE5QTQwMDBFNDg0MEYgLyogV01MSW1hZ2VFbGVtZW50LmNwcCAqLzsgfTsKKwkJ
MDhDNEM1MTkwRUYxOUE0MDAwRTQ4NDBGIC8qIFdNTEltYWdlRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDhDNEM1MTUwRUYxOUE0MDAwRTQ4
NDBGIC8qIFdNTEltYWdlRWxlbWVudC5oICovOyB9OworCQkwOEM0QzUxQTBFRjE5QTQwMDBFNDg0
MEYgLyogV01MSW1hZ2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDhDNEM1MTYwRUYxOUE0MDAwRTQ4NDBGIC8qIFdNTEltYWdlTG9hZGVy
LmNwcCAqLzsgfTsKKwkJMDhDNEM1MUIwRUYxOUE0MDAwRTQ4NDBGIC8qIFdNTEltYWdlTG9hZGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwOEM0QzUx
NzBFRjE5QTQwMDBFNDg0MEYgLyogV01MSW1hZ2VMb2FkZXIuaCAqLzsgfTsKIAkJMDhDRDYxQkMw
RUQzOTI5QzAwMkRERjUxIC8qIFdNTFRhc2tFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4Q0Q2MUI4MEVEMzkyOUMwMDJEREY1MSAvKiBX
TUxUYXNrRWxlbWVudC5jcHAgKi87IH07CiAJCTA4Q0Q2MUJEMEVEMzkyOUMwMDJEREY1MSAvKiBX
TUxUYXNrRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMDhDRDYxQjkwRUQzOTI5QzAwMkRERjUxIC8qIFdNTFRhc2tFbGVtZW50LmggKi87IH07
CiAJCTA4RTE5MjUzMEVERTBDM0EwMDg3Qjc4MCAvKiBXTUxFcnJvckhhbmRsaW5nLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4RTE5MjUxMEVERTBD
MzkwMDg3Qjc4MCAvKiBXTUxFcnJvckhhbmRsaW5nLmNwcCAqLzsgfTsKQEAgLTQ4NzAsNiArNDg3
NCwxMCBAQAogCQkwOEE0ODQ3NTBFNTI3MkM1MDBDM0ZFNzYgLyogU2NyaXB0RWxlbWVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRFbGVtZW50LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDhBNDg0NzYwRTUyNzJDNTAwQzNGRTc2IC8q
IFNjcmlwdEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0
RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwOEE0OEE2RDBFODZDRjZE
MDBFMjI1REQgLyogSlNTVkdFbGVtZW50SW5zdGFuY2VDdXN0b20uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTVkdFbGVtZW50SW5zdGFuY2VDdXN0b20uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwOEM0QzUxNDBFRjE5QTQwMDBFNDg0MEYgLyog
V01MSW1hZ2VFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdNTEltYWdlRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA4QzRD
NTE1MEVGMTlBNDAwMEU0ODQwRiAvKiBXTUxJbWFnZUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV01MSW1hZ2VFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTA4QzRDNTE2MEVGMTlBNDAwMEU0ODQwRiAvKiBXTUxJbWFnZUxvYWRlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXTUxJbWFnZUxvYWRlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA4QzRDNTE3MEVGMTlBNDAwMEU0ODQwRiAv
KiBXTUxJbWFnZUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXTUxJ
bWFnZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwOENENjFCODBFRDM5
MjlDMDAyRERGNTEgLyogV01MVGFza0VsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV01MVGFza0VsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwOENENjFCOTBFRDM5MjlDMDAyRERGNTEgLyogV01MVGFza0VsZW1lbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV01MVGFza0VsZW1lbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDhFMTkyNTEwRURFMEMzOTAwODdCNzgwIC8qIFdNTEVycm9y
SGFuZGxpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV01MRXJy
b3JIYW5kbGluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05NTczLDYgKzk1
ODEsMTAgQEAKIAkJCQkwODE4QUVFMTBFREI4NkJDMDA2NDdCNjYgLyogV01MRXZlbnRIYW5kbGlu
Z0VsZW1lbnQuaCAqLywKIAkJCQkwODgwN0I2QTBFRDcwOUFCMDAzRjY5NzUgLyogV01MR29FbGVt
ZW50LmNwcCAqLywKIAkJCQkwODgwN0I2QjBFRDcwOUFCMDAzRjY5NzUgLyogV01MR29FbGVtZW50
LmggKi8sCisJCQkJMDhDNEM1MTQwRUYxOUE0MDAwRTQ4NDBGIC8qIFdNTEltYWdlRWxlbWVudC5j
cHAgKi8sCisJCQkJMDhDNEM1MTUwRUYxOUE0MDAwRTQ4NDBGIC8qIFdNTEltYWdlRWxlbWVudC5o
ICovLAorCQkJCTA4QzRDNTE2MEVGMTlBNDAwMEU0ODQwRiAvKiBXTUxJbWFnZUxvYWRlci5jcHAg
Ki8sCisJCQkJMDhDNEM1MTcwRUYxOUE0MDAwRTQ4NDBGIC8qIFdNTEltYWdlTG9hZGVyLmggKi8s
CiAJCQkJMDgwQUVDN0QwRUQ4NzA4QTAwREY0Q0NFIC8qIFdNTEludHJpbnNpY0V2ZW50LmNwcCAq
LywKIAkJCQkwODBBRUM3RTBFRDg3MDhCMDBERjRDQ0UgLyogV01MSW50cmluc2ljRXZlbnQuaCAq
LywKIAkJCQkwODBBRUM3RjBFRDg3MDhCMDBERjRDQ0UgLyogV01MSW50cmluc2ljRXZlbnRIYW5k
bGVyLmNwcCAqLywKQEAgLTEyNzYwLDggKzEyNzcyLDggQEAKIAkJCQlBODBENjcwNzBFOUU5REVC
MDBFNDIwRjAgLyogR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlQ0cuaCAqLywKIAkJCQlC
MkExMEI5MzBCMzgxOEQ3MDAwOTlBQTQgLyogSW1hZ2VCdWZmZXJDRy5jcHAgKi8sCiAJCQkJQjI3
NTM1MzAwQjA1MzgxNDAwMkNFNjRGIC8qIEltYWdlQ0cuY3BwICovLAotCQkJCTRCMzQ4MDkyMEVF
RjUwRDQwMEFDMUI0MSAvKiBJbWFnZVNvdXJjZUNHLmggKi8sCiAJCQkJQjI3NTM1MzEwQjA1Mzgx
NDAwMkNFNjRGIC8qIEltYWdlU291cmNlQ0cuY3BwICovLAorCQkJCTRCMzQ4MDkyMEVFRjUwRDQw
MEFDMUI0MSAvKiBJbWFnZVNvdXJjZUNHLmggKi8sCiAJCQkJNEIzNDgwOTEwRUVGNTBENDAwQUMx
QjQxIC8qIEltYWdlU291cmNlQ0dNYWMubW0gKi8sCiAJCQkJQjI3NTM1MzIwQjA1MzgxNDAwMkNF
NjRGIC8qIEludFBvaW50Q0cuY3BwICovLAogCQkJCUIyNzUzNTMzMEIwNTM4MTQwMDJDRTY0RiAv
KiBJbnRSZWN0Q0cuY3BwICovLApAQCAtMTMwNjQsMTAgKzEzMDc2LDEwIEBACiAJCQkJQkNFOTlF
QzIwRENBNjI0MTAwMTgyNjgzIC8qIEpTWFNMVFByb2Nlc3NvckNvbnN0cnVjdG9yLmggKi8sCiAJ
CQkJQkNBMzc4QkEwRDE1RjY0MjAwQjc5M0Q2IC8qIFNjaGVkdWxlZEFjdGlvbi5jcHAgKi8sCiAJ
CQkJQkNBMzc4QkIwRDE1RjY0MjAwQjc5M0Q2IC8qIFNjaGVkdWxlZEFjdGlvbi5oICovLAotCQkJ
CTQxNkU3NUM5MEVERjkwQzcwMDM2MEUxRCAvKiBTY3JpcHRDYWxsRnJhbWUuaCAqLywKIAkJCQk0
MTZFNzVDQTBFREY5MEM3MDAzNjBFMUQgLyogU2NyaXB0Q2FsbEZyYW1lLmNwcCAqLywKLQkJCQk0
MTZFNzVCQzBFREY4RkQ3MDAzNjBFMUQgLyogU2NyaXB0Q2FsbFN0YWNrLmggKi8sCisJCQkJNDE2
RTc1QzkwRURGOTBDNzAwMzYwRTFEIC8qIFNjcmlwdENhbGxGcmFtZS5oICovLAogCQkJCTQxNkU3
NUJEMEVERjhGRDcwMDM2MEUxRCAvKiBTY3JpcHRDYWxsU3RhY2suY3BwICovLAorCQkJCTQxNkU3
NUJDMEVERjhGRDcwMDM2MEUxRCAvKiBTY3JpcHRDYWxsU3RhY2suaCAqLywKIAkJCQk5M0I3MEQ1
MzA5RUIwQzdDMDA5RDg0NjggLyogU2NyaXB0Q29udHJvbGxlci5jcHAgKi8sCiAJCQkJOTNCNzBE
NTQwOUVCMEM3QzAwOUQ4NDY4IC8qIFNjcmlwdENvbnRyb2xsZXIuaCAqLywKIAkJCQlBODNFMUM3
MjBFNDkwNDJCMDAxNDBCOUMgLyogU2NyaXB0Q29udHJvbGxlck1hYy5tbSAqLywKQEAgLTE1MzY0
LDYgKzE1Mzc2LDcgQEAKIAkJCQkwODk1ODI1NjBFODU3QTdFMDBGODJDODMgLyogSW1hZ2VMb2Fk
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDN0Y0NEE4MEI5RTMyNEUwMEE5RDA4MSAvKiBJbWFn
ZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjc1MzU3MTBCMDUzODE0MDAyQ0U2NEYg
LyogSW1hZ2VTb3VyY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTRCMzQ4MDk0MEVFRjUwRDQwMEFD
MUI0MSAvKiBJbWFnZVNvdXJjZUNHLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTExODBFNkUx
REE3MDBCRjYwODggLyogSW1wbGljaXRBbmltYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCURC
MjNDMkNDMEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQThDRkY1RTUwQTE1NUEwNTAwMEE0MjM0IC8qIElubGluZUJveC5oIGluIEhl
YWRlcnMgKi8sCkBAIC0xNTcxNCw2ICsxNTcyNyw3IEBACiAJCQkJRTFDQTVDRDMwRThDREU4MDAw
RThFRjkwIC8qIEpTV29ya2VyQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQzM2
RDM1MEVCMEEwOTQwMDc0MTBCQyAvKiBKU1dvcmtlckNvbnRleHQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUUxQzM2MkVGMEVBRjJBQTkwMDc0MTBCQyAvKiBKU1dvcmtlckxvY2F0aW9uLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlFMTI3MUE1ODBFRUVDREU0MDBGNjEyMTMgLyogSlNXb3JrZXJOYXZpZ2F0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMzQ4QkQ0MERCN0Y4MDQwMDRBQkFCOSAvKiBKU1hN
TEh0dHBSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzM0OEJFQTBEQjgwMzU0MDA0QUJB
QjkgLyogSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzYwREEzQTBEMkEzMDI4MDBCOTkxOEYgLyogSlNYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0xNTc5Miw2ICsxNTgwNiw3IEBACiAJCQkJRTEwQjlCNkMwQjc0NzU5
OTAwM0VEODkwIC8qIE5hdGl2ZVhQYXRoTlNSZXNvbHZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTNDQ0YwMjcwQUY2QzUyOTAwMDE4RTg5IC8qIE5hdmlnYXRpb25BY3Rpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE5QzZFNUE2MEQ3NDY0NTgwMDY0NDJFOSAvKiBOYXZpZ2F0b3IuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUUxMjcxOUM3MEVFRUMxNjgwMEY2MTIxMyAvKiBOYXZpZ2F0b3JCYXNlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk2NTZEMzc0MzBBREJBNURFMDBBNDU1NEQgLyogTmV0c2NhcGVQ
bHVnSW5TdHJlYW1Mb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBN0ZBNjE5MEREQTNCM0Ew
MDI4RjhBNSAvKiBOZXR3b3JrU3RhdGVOb3RpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNF
RjQzREQwRTY3NDAxMjAwMUMxMjg3IC8qIE5pbmVQaWVjZUltYWdlLmggaW4gSGVhZGVycyAqLywK
QEAgLTE2MTQ2LDggKzE2MTYxLDggQEAKIAkJCQkxQ0VGQzlCOTBENzhEQzhDMDA3RDI1NzkgLyog
U2NoZWR1bGVQYWlyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1REZFOEY1NzBEMTY0NzdDMDA3NkU5
MzcgLyogU2NoZWR1bGVkQWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0VDMDFCRTBDMjc0
REFDMDA5RjRFQzkgLyogU2NyZWVuLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTZFNzVCRTBFREY4
RkQ3MDAzNjBFMUQgLyogU2NyaXB0Q2FsbFN0YWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTZF
NzVDQjBFREY5MEM3MDAzNjBFMUQgLyogU2NyaXB0Q2FsbEZyYW1lLmggaW4gSGVhZGVycyAqLywK
KwkJCQk0MTZFNzVCRTBFREY4RkQ3MDAzNjBFMUQgLyogU2NyaXB0Q2FsbFN0YWNrLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5M0I3MEQ3MDA5RUIwQzdDMDA5RDg0NjggLyogU2NyaXB0Q29udHJvbGxl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDhBNDg0NzgwRTUyNzJDNTAwQzNGRTc2IC8qIFNjcmlw
dEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMUM5RDlCMEVCMzY4MTIwMEU0MDlEQiAv
KiBTY3JpcHRFeGVjdXRpb25Db250ZXh0LmggaW4gSGVhZGVycyAqLywKQEAgLTE2MzAyLDYgKzE2
MzE3LDggQEAKIAkJCQkwOEUxOTI1NDBFREUwQzNBMDA4N0I3ODAgLyogV01MRXJyb3JIYW5kbGlu
Zy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDgxOEFFRTMwRURCODZCQzAwNjQ3QjY2IC8qIFdNTEV2
ZW50SGFuZGxpbmdFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODgwN0I3NzBFRDcwOUFC
MDAzRjY5NzUgLyogV01MR29FbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkwOEM0QzUxOTBF
RjE5QTQwMDBFNDg0MEYgLyogV01MSW1hZ2VFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkw
OEM0QzUxQjBFRjE5QTQwMDBFNDg0MEYgLyogV01MSW1hZ2VMb2FkZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTA4MEFFQzgyMEVEODcwOEIwMERGNENDRSAvKiBXTUxJbnRyaW5zaWNFdmVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMDgwQUVDODQwRUQ4NzA4QjAwREY0Q0NFIC8qIFdNTEludHJpbnNp
Y0V2ZW50SGFuZGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg4Qzk3MTMwRUNCNkQ5RDAwMDUz
NEJBIC8qIFdNTE5hbWVzLmggaW4gSGVhZGVycyAqLywKQEAgLTE2MzQ2LDYgKzE2MzYzLDcgQEAK
IAkJCQlFMUMyQzQzRTBFQUQwMTMzMDA3RTYxRkIgLyogV29ya2VyQ29udGV4dC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRTFDMzYzMDEwRUFGMkNDNjAwNzQxMEJDIC8qIFdvcmtlckxvY2F0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlFMTQ3OTlBNzBFQ0RFM0E0MDAyOTJCRjMgLyogV29ya2VyTWVz
c2FnaW5nUHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxMjcxQTBCMEVFRUM3N0EwMEY2MTIx
MyAvKiBXb3JrZXJOYXZpZ2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQTY0M0YyMEVDMDk3
MjUwMDc3OTY2OCAvKiBXb3JrZXJTY3JpcHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlFMTA4MjI0QjBFQzMxNTNBMDBFOTM5NTMgLyogV29ya2VyVGFzay5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRTFDMkM0MjQwRUFDRTBCQzAwN0U2MUZCIC8qIFdvcmtlclRocmVhZC5oIGluIEhlYWRl
cnMgKi8sCkBAIC0xNjQxMiwxMCArMTY0MzAsNiBAQAogCQkJCTFBNTY5RDIzMEQ3RTJCODIwMDdD
Mzk4MyAvKiBydW50aW1lX29iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE1NjlEMjUwRDdF
MkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfcm9vdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlF
MUUwOTlFNjQ5MjAwNTZFNTgxIC8qIHZpc2libGVfdW5pdHMuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTRCMzQ4MDk0MEVFRjUwRDQwMEFDMUI0MSAvKiBJbWFnZVNvdXJjZUNHLmggaW4gSGVhZGVycyAq
LywKLQkJCQlFMTI3MTlDNzBFRUVDMTY4MDBGNjEyMTMgLyogTmF2aWdhdG9yQmFzZS5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJRTEyNzFBMEIwRUVFQzc3QTAwRjYxMjEzIC8qIFdvcmtlck5hdmlnYXRv
ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTEyNzFBNTgwRUVFQ0RFNDAwRjYxMjEzIC8qIEpTV29y
a2VyTmF2aWdhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTE2NTAwLDYgKzE2NTE0LDcgQEAKIAkJ
CQkwODhDOTc1NTBFQ0I2RTI4MDAwNTM0QkEgLyogV01MQXR0cmlidXRlTmFtZXMuaW4gaW4gUmVz
b3VyY2VzICovLAogCQkJCTA4OEM5NzdDMEVDQjZFMjkwMDA1MzRCQSAvKiBXTUxUYWdOYW1lcy5p
biBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJRTFDMzYyQkMwRUFGMjlGQjAwNzQxMEJDIC8qIFdvcmtl
ckxvY2F0aW9uLmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJRTEyNzFBNTIwRUVFQ0QxQzAwRjYx
MjEzIC8qIFdvcmtlck5hdmlnYXRvci5pZGwgaW4gUmVzb3VyY2VzICovLAogCQkJCTQ2RjlENURE
MEIwRDYwMTcwMDI4RUUzNiAvKiBhbGlhc0N1cnNvci5wbmcgaW4gUmVzb3VyY2VzICovLAogCQkJ
CTQ2RDRGMjQ5MEFGOTdFODEwMDM1Mzg1QSAvKiBjZWxsQ3Vyc29yLnBuZyBpbiBSZXNvdXJjZXMg
Ki8sCiAJCQkJNDZENEYyNEEwQUY5N0U4MTAwMzUzODVBIC8qIGNvbnRleHRNZW51Q3Vyc29yLnBu
ZyBpbiBSZXNvdXJjZXMgKi8sCkBAIC0xNjUzMyw3ICsxNjU0OCw2IEBACiAJCQkJODUxMzZDQTgw
QUVENjY1OTAwRjkwQTNEIC8qIHdlc3RSZXNpemVDdXJzb3IucG5nIGluIFJlc291cmNlcyAqLywK
IAkJCQkxQUIxQUU3QTBDMDUxRkRFMDAxMzlGNEYgLyogem9vbUluQ3Vyc29yLnBuZyBpbiBSZXNv
dXJjZXMgKi8sCiAJCQkJMUFCMUFFN0IwQzA1MUZERTAwMTM5RjRGIC8qIHpvb21PdXRDdXJzb3Iu
cG5nIGluIFJlc291cmNlcyAqLywKLQkJCQlFMTI3MUE1MjBFRUVDRDFDMDBGNjEyMTMgLyogV29y
a2VyTmF2aWdhdG9yLmlkbCBpbiBSZXNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRl
cGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0xNzMwOCw2ICsxNzMyMiw3IEBA
CiAJCQkJMDg5NTgyNTUwRTg1N0E3RTAwRjgyQzgzIC8qIEltYWdlTG9hZGVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUIyNzUzNTdCMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZU1hYy5tbSBpbiBT
b3VyY2VzICovLAogCQkJCUIyNzUzNTVGMEIwNTM4MTQwMDJDRTY0RiAvKiBJbWFnZVNvdXJjZUNH
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTRCMzQ4MDkzMEVFRjUwRDQwMEFDMUI0MSAvKiBJbWFn
ZVNvdXJjZUNHTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzE2RkUxMTcwRTZFMURBNzAwQkY2
MDg4IC8qIEltcGxpY2l0QW5pbWF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURCMjNDMkNC
MEE1MDhEMjkwMDI0ODlFQiAvKiBJbmRlbnRPdXRkZW50Q29tbWFuZC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBOENGRjVFNjBBMTU1QTA1MDAwQTQyMzQgLyogSW5saW5lQm94LmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtMTc3MTQsNiArMTc3MjksNyBAQAogCQkJCUUxQzM2RDM0MEVCMEEwOTQwMDc0
MTBCQyAvKiBKU1dvcmtlckNvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFDQTVDQkMw
RThDRENBRjAwRThFRjkwIC8qIEpTV29ya2VyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUUxQzM2MkYwMEVBRjJBQTkwMDc0MTBCQyAvKiBKU1dvcmtlckxvY2F0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUUxMjcxQTU5MEVFRUNERTQwMEY2MTIxMyAvKiBKU1dvcmtlck5hdmlnYXRv
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzM0OEJEMzBEQjdGODA0MDA0QUJBQjkgLyogSlNY
TUxIdHRwUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzM0OEJFOTBEQjgwMzU0MDA0
QUJBQjkgLyogSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUJDMzQ4QkJFMERCN0Y1MzEwMDRBQkFCOSAvKiBKU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMTc3OTMsNiArMTc4MDksNyBAQAogCQkJCUUxMEI5QjZEMEI3
NDc1OTkwMDNFRDg5MCAvKiBOYXRpdmVYUGF0aE5TUmVzb2x2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJOTNDQ0YwNjAwQUY2Q0E3NjAwMDE4RTg5IC8qIE5hdmlnYXRpb25BY3Rpb24uY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTlDNkU1QTUwRDc0NjQ1ODAwNjQ0MkU5IC8qIE5hdmlnYXRvci5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlFMTI3MTlDQTBFRUVDMjEzMDBGNjEyMTMgLyogTmF2aWdh
dG9yQmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1RDg3NEYxMzBEMTYxRDMyMDA3OTZDM0Ig
LyogTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE3
RkE2MUIwRERBM0JCRTAwMjhGOEE1IC8qIE5ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTFBN0ZBNjQ5MEREQTNDQkEwMDI4RjhBNSAvKiBOZXR3b3JrU3RhdGVOb3Rp
Zmllck1hYy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTE4MTIyLDggKzE4MTM5LDggQEAKIAkJCQkx
Q0UyNEY5NzBEN0NBRjBFMDA3RTA0QzIgLyogU2NoZWR1bGVQYWlyTWFjLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNURGRThGNTYwRDE2NDc3QjAwNzZFOTM3IC8qIFNjaGVkdWxlZEFjdGlvbi5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQ0VDMDFCRDBDMjc0REFDMDA5RjRFQzkgLyogU2NyZWVuLmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCTQxNkU3NUJGMEVERjhGRDcwMDM2MEUxRCAvKiBTY3JpcHRD
YWxsU3RhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE2RTc1Q0MwRURGOTBDNzAwMzYwRTFE
IC8qIFNjcmlwdENhbGxGcmFtZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0MTZFNzVCRjBFREY4
RkQ3MDAzNjBFMUQgLyogU2NyaXB0Q2FsbFN0YWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkz
QjcwRDZGMDlFQjBDN0MwMDlEODQ2OCAvKiBTY3JpcHRDb250cm9sbGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE4M0UxQzc0MEU0OTA0MkMwMDE0MEI5QyAvKiBTY3JpcHRDb250cm9sbGVyTWFj
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMDhBNDg0NzcwRTUyNzJDNTAwQzNGRTc2IC8qIFNjcmlw
dEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xODI1OSw2ICsxODI3Niw4IEBACiAJCQkJ
MDhFMTkyNTMwRURFMEMzQTAwODdCNzgwIC8qIFdNTEVycm9ySGFuZGxpbmcuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMDgxOEFFRTIwRURCODZCQzAwNjQ3QjY2IC8qIFdNTEV2ZW50SGFuZGxpbmdF
bGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA4ODA3Qjc2MEVENzA5QUIwMDNGNjk3NSAv
KiBXTUxHb0VsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMDhDNEM1MTgwRUYxOUE0MDAw
RTQ4NDBGIC8qIFdNTEltYWdlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwOEM0QzUx
QTBFRjE5QTQwMDBFNDg0MEYgLyogV01MSW1hZ2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMDgwQUVDODEwRUQ4NzA4QjAwREY0Q0NFIC8qIFdNTEludHJpbnNpY0V2ZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTA4MEFFQzgzMEVEODcwOEIwMERGNENDRSAvKiBXTUxJbnRyaW5zaWNF
dmVudEhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDg4Qzk3MTIwRUNCNkQ5MjAwMDUz
NEJBIC8qIFdNTE5hbWVzLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTgzMDAsNiArMTgzMTksNyBA
QAogCQkJCUUxQzJDNDQyMEVBRDAxN0IwMDdFNjFGQiAvKiBXb3JrZXJDb250ZXh0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUUxQzM2MzA2MEVBRjJEMDcwMDc0MTBCQyAvKiBXb3JrZXJMb2NhdGlv
bi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTQ3OTlCNDBFQ0RFOUQ4MDAyOTJCRjMgLyogV29y
a2VyTWVzc2FnaW5nUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTEyNzFBMTQwRUVFQzgw
NDAwRjYxMjEzIC8qIFdvcmtlck5hdmlnYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUE2
NDNGRDBFQzA5N0EwMDA3Nzk2NjggLyogV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlFMTA4MjI0RjBFQzMxNTY3MDBFOTM5NTMgLyogV29ya2VyVGFzay5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlFMUMyQzQyOTBFQUNFMEUwMDA3RTYxRkIgLyogV29ya2VyVGhy
ZWFkLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTgzNTgsMTAgKzE4Mzc4LDYgQEAKIAkJCQkxQTU2
OUQyMjBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGltZV9vYmplY3QuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMUE1NjlEMjQwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfcm9vdC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk5MzMwOUUxRDA5OUU2NDkyMDA1NkU1ODEgLyogdmlzaWJsZV91bml0cy5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQk0QjM0ODA5MzBFRUY1MEQ0MDBBQzFCNDEgLyogSW1hZ2VT
b3VyY2VDR01hYy5tbSBpbiBTb3VyY2VzICovLAotCQkJCUUxMjcxOUNBMEVFRUMyMTMwMEY2MTIx
MyAvKiBOYXZpZ2F0b3JCYXNlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUUxMjcxQTE0MEVFRUM4
MDQwMEY2MTIxMyAvKiBXb3JrZXJOYXZpZ2F0b3IuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRTEy
NzFBNTkwRUVFQ0RFNDAwRjYxMjEzIC8qIEpTV29ya2VyTmF2aWdhdG9yLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTcyNjI2RTAyMEVGMDIyRkUwMEEwN0UyMCAvKiBGb250RmFzdFBhdGguY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CkluZGV4OiByZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
cmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwCShyZXZpc2lvbiAzOTIyNCkKKysrIHJlbmRlcmlu
Zy9IaXRUZXN0UmVzdWx0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsNiArMzcsNyBAQAogI2Vu
ZGlmCiAKICNpZiBFTkFCTEUoV01MKQorI2luY2x1ZGUgIldNTEltYWdlRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIldNTE5hbWVzLmgiCiAjZW5kaWYKIApAQCAtMTg1LDE3ICsxODYsMjQgQEAgU3RyaW5n
IEhpdFRlc3RSZXN1bHQ6OmFsdERpc3BsYXlTdHJpbmcoKQogewogICAgIGlmICghbV9pbm5lck5v
blNoYXJlZE5vZGUpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKLSAgICAKKwogICAgIGlmICht
X2lubmVyTm9uU2hhcmVkTm9kZS0+aGFzVGFnTmFtZShpbWdUYWcpKSB7CiAgICAgICAgIEhUTUxJ
bWFnZUVsZW1lbnQqIGltYWdlID0gc3RhdGljX2Nhc3Q8SFRNTEltYWdlRWxlbWVudCo+KG1faW5u
ZXJOb25TaGFyZWROb2RlLmdldCgpKTsKICAgICAgICAgcmV0dXJuIGRpc3BsYXlTdHJpbmcoaW1h
Z2UtPmFsdCgpLCBtX2lubmVyTm9uU2hhcmVkTm9kZS5nZXQoKSk7CiAgICAgfQotICAgIAorCiAg
ICAgaWYgKG1faW5uZXJOb25TaGFyZWROb2RlLT5oYXNUYWdOYW1lKGlucHV0VGFnKSkgewogICAg
ICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1l
bnQqPihtX2lubmVyTm9uU2hhcmVkTm9kZS5nZXQoKSk7CiAgICAgICAgIHJldHVybiBkaXNwbGF5
U3RyaW5nKGlucHV0LT5hbHQoKSwgbV9pbm5lck5vblNoYXJlZE5vZGUuZ2V0KCkpOwogICAgIH0K
LSAgICAKKworI2lmIEVOQUJMRShXTUwpCisgICAgaWYgKG1faW5uZXJOb25TaGFyZWROb2RlLT5o
YXNUYWdOYW1lKFdNTE5hbWVzOjppbWdUYWcpKSB7CisgICAgICAgIFdNTEltYWdlRWxlbWVudCog
aW1hZ2UgPSBzdGF0aWNfY2FzdDxXTUxJbWFnZUVsZW1lbnQqPihtX2lubmVyTm9uU2hhcmVkTm9k
ZS5nZXQoKSk7CisgICAgICAgIHJldHVybiBkaXNwbGF5U3RyaW5nKGltYWdlLT5hbHRUZXh0KCks
IG1faW5uZXJOb25TaGFyZWROb2RlLmdldCgpKTsKKyAgICB9CisjZW5kaWYKKwogICAgIHJldHVy
biBTdHJpbmcoKTsKIH0KIApAQCAtMjMyLDExICsyNDAsMTQgQEAgS1VSTCBIaXRUZXN0UmVzdWx0
OjphYnNvbHV0ZUltYWdlVVJMKCkgYwogICAgIEF0b21pY1N0cmluZyB1cmxTdHJpbmc7CiAgICAg
aWYgKG1faW5uZXJOb25TaGFyZWROb2RlLT5oYXNUYWdOYW1lKGltZ1RhZykgfHwgbV9pbm5lck5v
blNoYXJlZE5vZGUtPmhhc1RhZ05hbWUoaW5wdXRUYWcpKQogICAgICAgICB1cmxTdHJpbmcgPSBz
dGF0aWNfY2FzdDxFbGVtZW50Kj4obV9pbm5lck5vblNoYXJlZE5vZGUuZ2V0KCkpLT5nZXRBdHRy
aWJ1dGUoc3JjQXR0cik7CisgICAgZWxzZSBpZiAobV9pbm5lck5vblNoYXJlZE5vZGUtPmhhc1Rh
Z05hbWUoZW1iZWRUYWcpCiAjaWYgRU5BQkxFKFNWRykKLSAgICBlbHNlIGlmIChtX2lubmVyTm9u
U2hhcmVkTm9kZS0+aGFzVGFnTmFtZShTVkdOYW1lczo6aW1hZ2VUYWcpKQotICAgICAgICB1cmxT
dHJpbmcgPSBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obV9pbm5lck5vblNoYXJlZE5vZGUuZ2V0KCkp
LT5nZXRBdHRyaWJ1dGUoWExpbmtOYW1lczo6aHJlZkF0dHIpOworICAgICAgICAgICAgIHx8IG1f
aW5uZXJOb25TaGFyZWROb2RlLT5oYXNUYWdOYW1lKFNWR05hbWVzOjppbWFnZVRhZykKKyNlbmRp
ZgorI2lmIEVOQUJMRShXTUwpCisgICAgICAgICAgICAgfHwgbV9pbm5lck5vblNoYXJlZE5vZGUt
Pmhhc1RhZ05hbWUoV01MTmFtZXM6OmltZ1RhZykKICNlbmRpZgotICAgIGVsc2UgaWYgKG1faW5u
ZXJOb25TaGFyZWROb2RlLT5oYXNUYWdOYW1lKGVtYmVkVGFnKSB8fCBtX2lubmVyTm9uU2hhcmVk
Tm9kZS0+aGFzVGFnTmFtZShvYmplY3RUYWcpKSB7CisgICAgICAgICAgICAgfHwgbV9pbm5lck5v
blNoYXJlZE5vZGUtPmhhc1RhZ05hbWUob2JqZWN0VGFnKSkgewogICAgICAgICBFbGVtZW50KiBl
bGVtZW50ID0gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG1faW5uZXJOb25TaGFyZWROb2RlLmdldCgp
KTsKICAgICAgICAgdXJsU3RyaW5nID0gZWxlbWVudC0+Z2V0QXR0cmlidXRlKGVsZW1lbnQtPmlt
YWdlU291cmNlQXR0cmlidXRlTmFtZSgpKTsKICAgICB9IGVsc2UKSW5kZXg6IHJlbmRlcmluZy9S
ZW5kZXJJbWFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAko
cmV2aXNpb24gMzkyMjQpCisrKyByZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zOCw2ICszOCwxMSBAQAogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRl
ICJTeXN0ZW1UaW1lLmgiCiAKKyNpZiBFTkFCTEUoV01MKQorI2luY2x1ZGUgIldNTEltYWdlRWxl
bWVudC5oIgorI2luY2x1ZGUgIldNTE5hbWVzLmgiCisjZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNl
IHN0ZDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDMyLDYgKzQzNywxMCBAQCB2b2lkIFJl
bmRlckltYWdlOjp1cGRhdGVBbHRUZXh0KCkKICAgICAgICAgbV9hbHRUZXh0ID0gc3RhdGljX2Nh
c3Q8SFRNTElucHV0RWxlbWVudCo+KGVsZW1lbnQoKSktPmFsdFRleHQoKTsKICAgICBlbHNlIGlm
IChlbGVtZW50KCktPmhhc1RhZ05hbWUoaW1nVGFnKSkKICAgICAgICAgbV9hbHRUZXh0ID0gc3Rh
dGljX2Nhc3Q8SFRNTEltYWdlRWxlbWVudCo+KGVsZW1lbnQoKSktPmFsdFRleHQoKTsKKyNpZiBF
TkFCTEUoV01MKQorICAgIGVsc2UgaWYgKGVsZW1lbnQoKS0+aGFzVGFnTmFtZShXTUxOYW1lczo6
aW1nVGFnKSkKKyAgICAgICAgbV9hbHRUZXh0ID0gc3RhdGljX2Nhc3Q8V01MSW1hZ2VFbGVtZW50
Kj4oZWxlbWVudCgpKS0+YWx0VGV4dCgpOworI2VuZGlmCiB9CiAKIGJvb2wgUmVuZGVySW1hZ2U6
OmlzV2lkdGhTcGVjaWZpZWQoKSBjb25zdApJbmRleDogd21sL1dNTEltYWdlRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gd21sL1dNTEltYWdlRWxlbWVudC5jcHAJKHJldmlzaW9uIDApCisrKyB3
bWwvV01MSW1hZ2VFbGVtZW50LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNDkgQEAKKy8q
KgorICogQ29weXJpZ2h0IChDKSAyMDA4IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiAgICAgICAgICAgICAgIGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLworICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFdNTCkKKyNpbmNsdWRlICJXTUxJbWFn
ZUVsZW1lbnQuaCIKKworI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKKyNpbmNsdWRlICJD
U1NWYWx1ZUtleXdvcmRzLmgiCisjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKKyNpbmNsdWRlICJI
VE1MTmFtZXMuaCIKKyNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgorI2luY2x1ZGUgIldNTE5hbWVz
LmgiCisjaW5jbHVkZSAiV01MVmFyaWFibGVzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
dXNpbmcgbmFtZXNwYWNlIFdNTE5hbWVzOworCitXTUxJbWFnZUVsZW1lbnQ6OldNTEltYWdlRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jKQorICAgIDog
V01MRWxlbWVudCh0YWdOYW1lLCBkb2MpCisgICAgLCBtX2ltYWdlTG9hZGVyKHRoaXMpCisgICAg
LCBtX3VzZUZhbGxiYWNrQXR0cmlidXRlKGZhbHNlKQoreworfQorCitXTUxJbWFnZUVsZW1lbnQ6
On5XTUxJbWFnZUVsZW1lbnQoKQoreworfQorCitib29sIFdNTEltYWdlRWxlbWVudDo6bWFwVG9F
bnRyeShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSwgTWFwcGVkQXR0cmlidXRlRW50cnkm
IHJlc3VsdCkgY29uc3QKK3sKKyAgICBpZiAoYXR0ck5hbWUgPT0gSFRNTE5hbWVzOjp3aWR0aEF0
dHIgfHwKKyAgICAgICAgYXR0ck5hbWUgPT0gSFRNTE5hbWVzOjpoZWlnaHRBdHRyIHx8CisgICAg
ICAgIGF0dHJOYW1lID09IEhUTUxOYW1lczo6dnNwYWNlQXR0ciB8fAorICAgICAgICBhdHRyTmFt
ZSA9PSBIVE1MTmFtZXM6OmhzcGFjZUF0dHIpIHsKKyAgICAgICAgcmVzdWx0ID0gZVVuaXZlcnNh
bDsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGlmIChhdHRyTmFtZSA9PSBI
VE1MTmFtZXM6OmFsaWduQXR0cikgeworICAgICAgICByZXN1bHQgPSBlUmVwbGFjZWQ7CisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gV01MRWxlbWVudDo6bWFwVG9F
bnRyeShhdHRyTmFtZSwgcmVzdWx0KTsKK30KKwordm9pZCBXTUxJbWFnZUVsZW1lbnQ6OnBhcnNl
TWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSogYXR0cikKK3sKKyAgICBjb25zdCBRdWFs
aWZpZWROYW1lJiBhdHRyTmFtZSA9IGF0dHItPm5hbWUoKTsKKworICAgIGlmIChhdHRyTmFtZSA9
PSBIVE1MTmFtZXM6OmFsdEF0dHIpIHsKKyAgICAgICAgaWYgKHJlbmRlcmVyKCkgJiYgcmVuZGVy
ZXIoKS0+aXNJbWFnZSgpKQorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UmVuZGVySW1hZ2UqPihy
ZW5kZXJlcigpKS0+dXBkYXRlQWx0VGV4dCgpOworICAgIH0gZWxzZSBpZiAoYXR0ck5hbWUgPT0g
SFRNTE5hbWVzOjpzcmNBdHRyIHx8IGF0dHJOYW1lID09IGxvY2Fsc3JjQXR0cikKKyAgICAgICAg
bV9pbWFnZUxvYWRlci51cGRhdGVGcm9tRWxlbWVudElnbm9yaW5nUHJldmlvdXNFcnJvcigpOwor
ICAgIGVsc2UgaWYgKGF0dHJOYW1lID09IEhUTUxOYW1lczo6d2lkdGhBdHRyKQorICAgICAgICBh
ZGRDU1NMZW5ndGgoYXR0ciwgQ1NTUHJvcGVydHlXaWR0aCwgYXR0ci0+dmFsdWUoKSk7CisgICAg
ZWxzZSBpZiAoYXR0ck5hbWUgPT0gSFRNTE5hbWVzOjpoZWlnaHRBdHRyKQorICAgICAgICBhZGRD
U1NMZW5ndGgoYXR0ciwgQ1NTUHJvcGVydHlIZWlnaHQsIGF0dHItPnZhbHVlKCkpOworICAgIGVs
c2UgaWYgKGF0dHJOYW1lID09IEhUTUxOYW1lczo6dnNwYWNlQXR0cikgeworICAgICAgICBhZGRD
U1NMZW5ndGgoYXR0ciwgQ1NTUHJvcGVydHlNYXJnaW5Ub3AsIGF0dHItPnZhbHVlKCkpOworICAg
ICAgICBhZGRDU1NMZW5ndGgoYXR0ciwgQ1NTUHJvcGVydHlNYXJnaW5Cb3R0b20sIGF0dHItPnZh
bHVlKCkpOworICAgIH0gZWxzZSBpZiAoYXR0ck5hbWUgPT0gSFRNTE5hbWVzOjpoc3BhY2VBdHRy
KSB7CisgICAgICAgIGFkZENTU0xlbmd0aChhdHRyLCBDU1NQcm9wZXJ0eU1hcmdpbkxlZnQsIGF0
dHItPnZhbHVlKCkpOworICAgICAgICBhZGRDU1NMZW5ndGgoYXR0ciwgQ1NTUHJvcGVydHlNYXJn
aW5SaWdodCwgYXR0ci0+dmFsdWUoKSk7CisgICAgfSBlbHNlIGlmIChhdHRyTmFtZSA9PSBIVE1M
TmFtZXM6OmFsaWduQXR0cikKKyAgICAgICAgSFRNTEVsZW1lbnQ6OmFkZEhUTUxBbGlnbm1lbnRU
b1N0eWxlZEVsZW1lbnQodGhpcywgYXR0cik7CisgICAgZWxzZQorICAgICAgICBXTUxFbGVtZW50
OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKTsKK30KKwordm9pZCBXTUxJbWFnZUVsZW1lbnQ6
OmF0dGFjaCgpCit7CisgICAgV01MRWxlbWVudDo6YXR0YWNoKCk7CisKKyAgICBpZiAocmVuZGVy
ZXIoKSAmJiByZW5kZXJlcigpLT5pc0ltYWdlKCkpIHsKKyAgICAgICAgUmVuZGVySW1hZ2UqIGlt
YWdlT2JqID0gc3RhdGljX2Nhc3Q8UmVuZGVySW1hZ2UqPihyZW5kZXJlcigpKTsKKyAgICAgICAg
aWYgKGltYWdlT2JqLT5oYXNJbWFnZSgpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
IGltYWdlT2JqLT5zZXRDYWNoZWRJbWFnZShtX2ltYWdlTG9hZGVyLmltYWdlKCkpOworCisgICAg
ICAgIC8vIElmIHdlIGhhdmUgbm8gaW1hZ2UgYXQgYWxsIGJlY2F1c2Ugd2UgaGF2ZSBubyBzcmMg
YXR0cmlidXRlLCBzZXQKKyAgICAgICAgLy8gaW1hZ2UgaGVpZ2h0IGFuZCB3aWR0aCBmb3IgdGhl
IGFsdCB0ZXh0IGluc3RlYWQuCisgICAgICAgIGlmICghbV9pbWFnZUxvYWRlci5pbWFnZSgpICYm
ICFpbWFnZU9iai0+Y2FjaGVkSW1hZ2UoKSkKKyAgICAgICAgICAgIGltYWdlT2JqLT5zZXRJbWFn
ZVNpemVGb3JBbHRUZXh0KCk7CisgICAgfQorfQorCitSZW5kZXJPYmplY3QqIFdNTEltYWdlRWxl
bWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZSopCit7
CisgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlckltYWdlKHRoaXMpOworfQorCit2b2lkIFdN
TEltYWdlRWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKQoreworICAgIC8vIElmIHdlIGhh
dmUgYmVlbiBpbnNlcnRlZCBmcm9tIGEgcmVuZGVyZXItbGVzcyBkb2N1bWVudCwKKyAgICAvLyBv
dXIgbG9hZGVyIG1heSBoYXZlIG5vdCBmZXRjaGVkIHRoZSBpbWFnZSwgc28gZG8gaXQgbm93Lgor
ICAgIGlmICghbV9pbWFnZUxvYWRlci5pbWFnZSgpKQorICAgICAgICBtX2ltYWdlTG9hZGVyLnVw
ZGF0ZUZyb21FbGVtZW50KCk7CisKKyAgICBXTUxFbGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVu
dCgpOworfQorCitib29sIFdNTEltYWdlRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRl
KiBhdHRyKSBjb25zdAoreworICAgIHJldHVybiBhdHRyLT5uYW1lKCkgPT0gSFRNTE5hbWVzOjpz
cmNBdHRyCisgICAgICAgICAgIHx8IGF0dHItPm5hbWUoKSA9PSBsb2NhbHNyY0F0dHI7Cit9CisK
K2NvbnN0IFF1YWxpZmllZE5hbWUmIFdNTEltYWdlRWxlbWVudDo6aW1hZ2VTb3VyY2VBdHRyaWJ1
dGVOYW1lKCkgY29uc3QKK3sKKyAgICAvLyBTcGVjOiBBbnkgJ2xvY2Fsc3JjJyBwYXJhbWV0ZXIg
c3BlY2lmaWVkIHRha2VzIHByZWNlZGVuY2Ugb3ZlciB0aGUgCisgICAgLy8gaW1hZ2Ugc3BlY2lm
aWVkIGluIHRoZSBzcmMgcGFyYW1ldGVyLgorICAgIGlmIChoYXNBdHRyaWJ1dGUobG9jYWxzcmNB
dHRyKSAmJiAhbV91c2VGYWxsYmFja0F0dHJpYnV0ZSkKKyAgICAgICAgcmV0dXJuIGxvY2Fsc3Jj
QXR0cjsKKworICAgIHJldHVybiBIVE1MTmFtZXM6OnNyY0F0dHI7Cit9CisKK1N0cmluZyBXTUxJ
bWFnZUVsZW1lbnQ6OmFsdFRleHQoKSBjb25zdAoreworICAgIHJldHVybiBzdWJzdGl0dXRlVmFy
aWFibGVSZWZlcmVuY2VzKGdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmFsdEF0dHIpLCBkb2N1bWVu
dCgpKTsKK30KKworfQorCisjZW5kaWYKSW5kZXg6IHdtbC9XTUxJbWFnZUVsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSB3bWwvV01MSW1hZ2VFbGVtZW50LmgJKHJldmlzaW9uIDApCisrKyB3bWwvV01M
SW1hZ2VFbGVtZW50LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTkgQEAKKy8qKgorICogQ29w
eXJpZ2h0IChDKSAyMDA4IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiAgICAgICAgICAgICAgIGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLworICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2lmbmRlZiBX
TUxJbWFnZUVsZW1lbnRfaAorI2RlZmluZSBXTUxJbWFnZUVsZW1lbnRfaAorCisjaWYgRU5BQkxF
KFdNTCkKKyNpbmNsdWRlICJXTUxFbGVtZW50LmgiCisjaW5jbHVkZSAiV01MSW1hZ2VMb2FkZXIu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXTUxJbWFnZUVsZW1lbnQgOiBwdWJs
aWMgV01MRWxlbWVudCB7CitwdWJsaWM6CisgICAgV01MSW1hZ2VFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Kik7CisgICAgdmlydHVhbCB+V01MSW1hZ2VFbGVt
ZW50KCk7CisKKyAgICB2aXJ0dWFsIGJvb2wgbWFwVG9FbnRyeShjb25zdCBRdWFsaWZpZWROYW1l
JiwgTWFwcGVkQXR0cmlidXRlRW50cnkmKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgcGFyc2VN
YXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlKik7CisKKyAgICB2aXJ0dWFsIHZvaWQgYXR0
YWNoKCk7CisgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFy
ZW5hKiwgUmVuZGVyU3R5bGUqKTsKKworICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRlZEludG9Eb2N1
bWVudCgpOworICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShBdHRyaWJ1dGUqKSBjb25z
dDsKKyAgICB2aXJ0dWFsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGltYWdlU291cmNlQXR0cmlidXRl
TmFtZSgpIGNvbnN0OworCisgICAgU3RyaW5nIGFsdFRleHQoKSBjb25zdDsKKworICAgIGJvb2wg
dXNlRmFsbGJhY2tBdHRyaWJ1dGUoKSB7IHJldHVybiBtX3VzZUZhbGxiYWNrQXR0cmlidXRlOyB9
CisgICAgdm9pZCBzZXRVc2VGYWxsYmFja0F0dHJpYnV0ZShib29sIHZhbHVlKSB7IG1fdXNlRmFs
bGJhY2tBdHRyaWJ1dGUgPSB2YWx1ZTsgfQorCitwcml2YXRlOgorICAgIFdNTEltYWdlTG9hZGVy
IG1faW1hZ2VMb2FkZXI7CisgICAgYm9vbCBtX3VzZUZhbGxiYWNrQXR0cmlidXRlOworfTsKKwor
fQorCisjZW5kaWYKKyNlbmRpZgpJbmRleDogd21sL1dNTEltYWdlTG9hZGVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSB3bWwvV01MSW1hZ2VMb2FkZXIuY3BwCShyZXZpc2lvbiAwKQorKysgd21sL1dNTElt
YWdlTG9hZGVyLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4MyBAQAorLyoqCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDggVG9yY2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
ICAgICAgICAgICAgICAgaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisKKyNpZiBFTkFCTEUoV01MKQorI2luY2x1ZGUgIldNTEltYWdlTG9hZGVyLmgi
CisKKyNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgorI2luY2x1ZGUgIkNTU0hlbHBlci5oIgorI2lu
Y2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIldNTEltYWdlRWxlbWVudC5oIgorI2luY2x1
ZGUgIldNTE5hbWVzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNl
IFdNTE5hbWVzOworCitXTUxJbWFnZUxvYWRlcjo6V01MSW1hZ2VMb2FkZXIoV01MSW1hZ2VFbGVt
ZW50KiBlbGVtZW50KQorICAgIDogSW1hZ2VMb2FkZXIoZWxlbWVudCkKK3sKK30KKworV01MSW1h
Z2VMb2FkZXI6On5XTUxJbWFnZUxvYWRlcigpCit7Cit9CisKK3ZvaWQgV01MSW1hZ2VMb2FkZXI6
OmRpc3BhdGNoTG9hZEV2ZW50KCkKK3sKKyAgICAvLyBXTUwgZG9lc24ndCBmaXJlIGFueSBldmVu
dHMuCisgICAgaWYgKGhhdmVGaXJlZExvYWRFdmVudCgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBzZXRIYXZlRmlyZWRMb2FkRXZlbnQodHJ1ZSk7Cit9CisKK1N0cmluZyBXTUxJbWFnZUxvYWRl
cjo6c291cmNlVVJJKGNvbnN0IEF0b21pY1N0cmluZyYgYXR0cikgY29uc3QKK3sKKyAgICByZXR1
cm4gcGFyc2VVUkwoS1VSTChlbGVtZW50KCktPmJhc2VVUkkoKSwgYXR0cikuc3RyaW5nKCkpOwor
fQorCit2b2lkIFdNTEltYWdlTG9hZGVyOjpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSog
aW1hZ2UpCit7CisgICAgSW1hZ2VMb2FkZXI6Om5vdGlmeUZpbmlzaGVkKGltYWdlKTsKKworICAg
IGlmICghaW1hZ2UtPmVycm9yT2NjdXJyZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgV01M
SW1hZ2VFbGVtZW50KiBpbWFnZUVsZW1lbnQgPSBzdGF0aWNfY2FzdDxXTUxJbWFnZUVsZW1lbnQq
PihlbGVtZW50KCkpOworICAgIEFTU0VSVChpbWFnZUVsZW1lbnQpOworCisgICAgLy8gTG9hZGlu
ZyBib3RoICdsb2NhbHNyYycgYW5kICdzcmMnIGZhaWxlZC4gSWdub3JlIHRoaXMgaW1hZ2UuCisg
ICAgaWYgKGltYWdlRWxlbWVudC0+dXNlRmFsbGJhY2tBdHRyaWJ1dGUoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgaWYgKCFpbWFnZUVsZW1lbnQtPmhhc0F0dHJpYnV0ZShsb2NhbHNyY0F0dHIp
ICYmICFpbWFnZUVsZW1lbnQtPmhhc0F0dHJpYnV0ZShIVE1MTmFtZXM6OnNyY0F0dHIpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBpbWFnZUVsZW1lbnQtPnNldFVzZUZhbGxiYWNrQXR0cmlidXRl
KHRydWUpOworICAgIHVwZGF0ZUZyb21FbGVtZW50SWdub3JpbmdQcmV2aW91c0Vycm9yKCk7Cit9
CisKK30KKworI2VuZGlmCkluZGV4OiB3bWwvV01MSW1hZ2VMb2FkZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSB3bWwvV01MSW1hZ2VMb2FkZXIuaAkocmV2aXNpb24gMCkKKysrIHdtbC9XTUxJbWFnZUxvYWRl
ci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ2IEBACisvKioKKyAqIENvcHlyaWdodCAoQykg
MjAwOCBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogICAgICAgICAg
ICAgICBodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpZm5kZWYgV01MSW1hZ2VMb2Fk
ZXJfaAorI2RlZmluZSBXTUxJbWFnZUxvYWRlcl9oCisKKyNpZiBFTkFCTEUoV01MKQorI2luY2x1
ZGUgIkltYWdlTG9hZGVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV01MSW1h
Z2VFbGVtZW50OworCitjbGFzcyBXTUxJbWFnZUxvYWRlciA6IHB1YmxpYyBJbWFnZUxvYWRlciB7
CitwdWJsaWM6CisgICAgV01MSW1hZ2VMb2FkZXIoV01MSW1hZ2VFbGVtZW50Kik7CisgICAgdmly
dHVhbCB+V01MSW1hZ2VMb2FkZXIoKTsKKworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaExvYWRF
dmVudCgpOworICAgIHZpcnR1YWwgU3RyaW5nIHNvdXJjZVVSSShjb25zdCBBdG9taWNTdHJpbmcm
KSBjb25zdDsKKworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJj
ZSopOworfTsKKworfQorCisjZW5kaWYKKyNlbmRpZgpJbmRleDogd21sL1dNTFRhZ05hbWVzLmlu
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIHdtbC9XTUxUYWdOYW1lcy5pbgkocmV2aXNpb24gMzkyMjQpCisrKyB3
bWwvV01MVGFnTmFtZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTksNiArOSw3IEBAIGJyIGludGVy
ZmFjZU5hbWU9V01MQlJFbGVtZW50CiBjYXJkCiBkbwogZ28KK2ltZyBpbnRlcmZhY2VOYW1lPVdN
TEltYWdlRWxlbWVudAogbm9vcAogb25ldmVudCBpbnRlcmZhY2VOYW1lPVdNTE9uRXZlbnRFbGVt
ZW50CiBwCkBAIC0yNiw1ICsyNyw1IEBAIHRpbWVyCiAKICNpZiAwCiAjIFRoZXNlIGVsZW1lbnRz
IGhhdmUgYSBjb3JyZXNwb25kaW5nIEhUTUwqRWxlbWVudCBjbGFzcywgdGhhdCB3ZSB3YW50IHRv
IHNoYXJlIGNvZGUgd2l0aC4KLSMgZmllbGRzZXQsIGhlYWQsIGltZywgaW5wdXQsIG1ldGEsIG9w
dGdyb3VwLCBvcHRpb24sIHNlbGVjdCwgdGFibGUsIHRkLCB0cgorIyBmaWVsZHNldCwgaGVhZCwg
aW5wdXQsIG1ldGEsIG9wdGdyb3VwLCBvcHRpb24sIHNlbGVjdCwgdGFibGUsIHRkLCB0cgogI2Vu
ZGlmCg==
</data>
<flag name="review"
          id="12210"
          type_id="1"
          status="+"
          setter="zecke"
    />
          </attachment>
      

    </bug>

</bugzilla>