<?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>180141</bug_id>
          
          <creation_ts>2017-11-29 08:13:50 -0800</creation_ts>
          <short_desc>[CoordGraphics] Move CoordinatedGraphicsLayer painting behind Nicosia::PaintingEngine</short_desc>
          <delta_ts>2017-11-30 07:14:22 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1375816</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-11-29 08:13:50 -0800</bug_when>
    <thetext>[CoordGraphics] Move CoordinatedGraphicsLayer painting behind Nicosia::PaintingEngine</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1375826</commentid>
    <comment_count>1</comment_count>
      <attachid>327856</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-11-29 08:38:00 -0800</bug_when>
    <thetext>Created attachment 327856
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1375829</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2017-11-29 08:40:14 -0800</bug_when>
    <thetext>Attachment 327856 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:977:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1376217</commentid>
    <comment_count>3</comment_count>
      <attachid>327856</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-11-29 22:43:55 -0800</bug_when>
    <thetext>Comment on attachment 327856
Patch

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

&gt; Source/WebCore/ChangeLog:25
&gt; +        The Nicosia::PaintingEngine::create() function returns a new
&gt; +        PaintingEngine object. For now it defaults to PaintingEngineBasic, but
&gt; +        it could be configured at configure-time or even runtime in the future
&gt; +        to return a more advanced engine implementation.

If possible I would make this configurable at runtime, I&apos;m sure we will want to compare output between engines at some point.

&gt; Source/WebCore/platform/graphics/nicosia/NicosiaPaintingEngine.h:44
&gt; +class PaintingEngine {
&gt; +public:

WTF_MAKE_FAST_ALLOCATED?

&gt; Source/WebCore/platform/graphics/nicosia/NicosiaPaintingEngineBasic.cpp:62
&gt; +    return true;

Why is it bool if it always returns true? Do you expect other implementations might fail somehow? If that&apos;s the case I would probably change it when needed eventually.

&gt; Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:56
&gt; +    virtual Nicosia::PaintingEngine&amp; getPaintingEngine() = 0;

getPaintingEngine -&gt; paintingEngine</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1376291</commentid>
    <comment_count>4</comment_count>
      <attachid>327856</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-11-30 06:24:05 -0800</bug_when>
    <thetext>Comment on attachment 327856
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/nicosia/NicosiaPaintingEngine.h:44
&gt;&gt; +public:
&gt; 
&gt; WTF_MAKE_FAST_ALLOCATED?

OK.

&gt;&gt; Source/WebCore/platform/graphics/nicosia/NicosiaPaintingEngineBasic.cpp:62
&gt;&gt; +    return true;
&gt; 
&gt; Why is it bool if it always returns true? Do you expect other implementations might fail somehow? If that&apos;s the case I would probably change it when needed eventually.

Yes, other implementations will possibly fail here, that&apos;s why it returns a boolean value already.

&gt;&gt; Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:56
&gt;&gt; +    virtual Nicosia::PaintingEngine&amp; getPaintingEngine() = 0;
&gt; 
&gt; getPaintingEngine -&gt; paintingEngine

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1376293</commentid>
    <comment_count>5</comment_count>
      <attachid>327973</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-11-30 06:32:24 -0800</bug_when>
    <thetext>Created attachment 327973
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1376294</commentid>
    <comment_count>6</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2017-11-30 06:33:31 -0800</bug_when>
    <thetext>Attachment 327973 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:977:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1376309</commentid>
    <comment_count>7</comment_count>
      <attachid>327973</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-11-30 07:13:01 -0800</bug_when>
    <thetext>Comment on attachment 327973
Patch for landing

Clearing flags on attachment: 327973

Committed r225328: &lt;https://trac.webkit.org/changeset/225328&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1376310</commentid>
    <comment_count>8</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-11-30 07:13:05 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1376311</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-30 07:14:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/35771883&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327856</attachid>
            <date>2017-11-29 08:38:00 -0800</date>
            <delta_ts>2017-11-30 06:32:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180141-20171129173759.patch</filename>
            <type>text/plain</type>
            <size>20760</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1MjY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTZiMDg0MTNkMmMzNTFm
YjUzZjdiYjNiMmQ1M2M3MzI1ZTZjYzM0Mi4uY2Q4NDVjNDk3ZjBmNTI0NjA0N2IzMzkwMGVjZDU1
OTg1YzhhNWU4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ0IEBACiAyMDE3LTExLTI5ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAorICAgICAgICBbQ29vcmRHcmFwaGlj
c10gTW92ZSBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIgcGFpbnRpbmcgYmVoaW5kIE5pY29zaWE6
OlBhaW50aW5nRW5naW5lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODAxNDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbnRyb2R1Y2UgYSBwYWludGluZyBlbmdpbmUgY29uY2VwdCB0aGF0J3MgdXNlZCB0
byBwZXJmb3JtIHBhaW50aW5nCisgICAgICAgIGZvciBhIGdpdmVuIEdyYXBoaWNzTGF5ZXIgb2Jq
ZWN0LgorCisgICAgICAgIFRoZSBOaWNvc2lhOjpQYWludGluZ0VuZ2luZSBvYmplY3QgaXMgbGV2
ZXJhZ2VkIGluIHRoZQorICAgICAgICBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnVwZGF0ZUNv
bnRlbnRCdWZmZXJzKCkgbWV0aG9kLiBJdCdzIHJldHJpZXZlZAorICAgICAgICB0aHJvdWdoIHRo
ZSBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQgaW50ZXJmYWNlLCB3aXRoIGEgbmV3IG1l
dGhvZAorICAgICAgICBpbnRyb2R1Y2VkIHRoZXJlIGZvciB0aGlzIHB1cnBvc2UuCisKKyAgICAg
ICAgVGhlIE5pY29zaWE6OlBhaW50aW5nRW5naW5lIGludGVyZmFjZSBpcyBrZXB0IHNpbXBsZSBm
b3Igbm93LCB3aXRoIG9ubHkKKyAgICAgICAgYSBzaW5nbGUgcGFpbnQoKSBtZXRob2QuIFRoZSBv
bmx5IGN1cnJlbnQgaW1wbGVtZW50YXRpb24gaXMgdGhlCisgICAgICAgIFBhaW50aW5nRW5naW5l
QmFzaWMgY2xhc3MsIHdoaWNoIHNpbXBseSByZXVzZXMgdGhlIGNvZGUgdGhhdCB3YXMKKyAgICAg
ICAgcHJldmlvdXNseSBpbiBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnVwZGF0ZUNvbnRlbnRC
dWZmZXJzKCksCisgICAgICAgIG1haW50YWluaW5nIHRoZSBjdXJyZW50IGZ1bmN0aW9uYWxpdHku
CisKKyAgICAgICAgVGhlIE5pY29zaWE6OlBhaW50aW5nRW5naW5lOjpjcmVhdGUoKSBmdW5jdGlv
biByZXR1cm5zIGEgbmV3CisgICAgICAgIFBhaW50aW5nRW5naW5lIG9iamVjdC4gRm9yIG5vdyBp
dCBkZWZhdWx0cyB0byBQYWludGluZ0VuZ2luZUJhc2ljLCBidXQKKyAgICAgICAgaXQgY291bGQg
YmUgY29uZmlndXJlZCBhdCBjb25maWd1cmUtdGltZSBvciBldmVuIHJ1bnRpbWUgaW4gdGhlIGZ1
dHVyZQorICAgICAgICB0byByZXR1cm4gYSBtb3JlIGFkdmFuY2VkIGVuZ2luZSBpbXBsZW1lbnRh
dGlvbi4KKworICAgICAgICBObyBuZXcgdGVzdHMgLS0gbm8gY2hhbmdlIGluIGJlaGF2aW9yLgor
CisgICAgICAgICogcGxhdGZvcm0vVGV4dHVyZU1hcHBlci5jbWFrZToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9uaWNvc2lhL05pY29zaWFQYWludGluZ0VuZ2luZS5jcHA6IEFkZGVkLgor
ICAgICAgICAoTmljb3NpYTo6UGFpbnRpbmdFbmdpbmU6OmNyZWF0ZSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9OaWNvc2lhUGFpbnRpbmdFbmdpbmUuaDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9OaWNvc2lhUGFpbnRpbmdFbmdpbmVC
YXNpYy5jcHA6IEFkZGVkLgorICAgICAgICAoTmljb3NpYTo6UGFpbnRpbmdFbmdpbmVCYXNpYzo6
cGFpbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYVBhaW50
aW5nRW5naW5lQmFzaWMuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnVwZGF0ZUNvbnRlbnRCdWZmZXJzKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyLmg6CisKKzIwMTctMTEtMjkgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNl
a0BpZ2FsaWEuY29tPgorCiAgICAgICAgIFtDb29yZEdyYXBoaWNzXSBSZW5hbWUgQ29vcmRpbmF0
ZWRCdWZmZXIgdG8gTmljb3NpYTo6QnVmZmVyCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xODAxMzUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3MDM4OTUxNDlmMTMxYzNj
ZTMwNmQ5ZmFjMjliNDUzMTc2Y2RiZmIxLi5jY2FlMjkyNWVmNGI0MGIwNmFiNzQwMmY3YmY1NjU3
NjZhNTZhYjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI0IEBACiAyMDE3LTExLTI5ICBaYW4gRG9i
ZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAorICAgICAgICBbQ29vcmRHcmFwaGljc10g
TW92ZSBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIgcGFpbnRpbmcgYmVoaW5kIE5pY29zaWE6OlBh
aW50aW5nRW5naW5lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODAxNDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yIG11c3QgaW1wbGVtZW50IHRoZSBnZXRQYWludGlu
Z0VuZ2luZSgpIG1ldGhvZCBub3cKKyAgICAgICAgdGhhdCB0aGUgbWV0aG9kJ3MgYmVlbiBhZGRl
ZCB0byB0aGUgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50CisgICAgICAgIGludGVyZmFj
ZS4gVGhlIENvbXBvc2l0aW5nQ29vcmRpbmF0b3IgbWFuYWdlcyB0aGUgTmljb3NpYTo6UGFpbnRp
bmdFbmdpbmUKKyAgICAgICAgb2JqZWN0IHRocm91Z2ggdGhlIG5ldyBtX3BhaW50aW5nRW5naW5l
IG1lbWJlciB2YXJpYWJsZSwgYW5kIHJldHVybnMgdGhlCisgICAgICAgIHJlZmVyZW5jZSB0byB0
aGlzIG9iamVjdCBpbiB0aGUgZ2V0UGFpbnRpbmdFbmdpbmUoKSBtZXRob2QuCisKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3Jk
aW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q29tcG9zaXRpbmdDb29yZGluYXRvcjo6Q29t
cG9zaXRpbmdDb29yZGluYXRvcik6CisgICAgICAgIChXZWJLaXQ6OkNvbXBvc2l0aW5nQ29vcmRp
bmF0b3I6OmdldFBhaW50aW5nRW5naW5lKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmg6CisgICAgICAgIERy
b3AgdW5uZWNlc3NhcnkgdHlwZWRlZnMuCisKKzIwMTctMTEtMjkgIFphbiBEb2JlcnNlayAgPHpk
b2JlcnNla0BpZ2FsaWEuY29tPgorCiAgICAgICAgIFtDb29yZEdyYXBoaWNzXSBSZW5hbWUgQ29v
cmRpbmF0ZWRCdWZmZXIgdG8gTmljb3NpYTo6QnVmZmVyCiAgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODAxMzUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vVGV4dHVyZU1hcHBlci5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1RleHR1cmVNYXBwZXIuY21ha2UKaW5kZXggZmIyYjUwNDYwMWU0Yzc4OWI0YWUxZjQ4MTg0
YzExZWU4MGJjNmJjMC4uY2M0ODliZjkyNzhkZjhmNjc4NTYzM2M2MWU2MTgzMWFlYTFkNWE5NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGV4dHVyZU1hcHBlci5jbWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UZXh0dXJlTWFwcGVyLmNtYWtlCkBAIC00Nyw2
ICs0Nyw4IEBAIGlmIChVU0VfQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAgICAgKQogICAgIGxpc3Qo
QVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lh
L05pY29zaWFCdWZmZXIuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmlj
b3NpYVBhaW50aW5nRW5naW5lLmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lh
L05pY29zaWFQYWludGluZ0VuZ2luZUJhc2ljLmNwcAogICAgICkKIGVsc2UgKCkKICAgICBsaXN0
KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYVBhaW50aW5nRW5naW5lLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYVBhaW50aW5nRW5naW5lLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42ZGUzNTA5YTg0Y2ZmNmFlMjU4Zjg2YWYwNmFjZGJhZmVhYjllYTU1Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3Np
YS9OaWNvc2lhUGFpbnRpbmdFbmdpbmUuY3BwCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTcgTWV0cm9sb2dpY2FsIEdyb3VwIEIuVi4KKyAqIENvcHlyaWdodCAoQykg
MjAxNyBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAg
ZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkCisgKiAgICB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIEhPTERFUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk5pY29zaWFQYWludGluZ0VuZ2luZS5oIgorCisjaW5j
bHVkZSAiTmljb3NpYVBhaW50aW5nRW5naW5lQmFzaWMuaCIKKworbmFtZXNwYWNlIE5pY29zaWEg
eworCitzdGQ6OnVuaXF1ZV9wdHI8UGFpbnRpbmdFbmdpbmU+IFBhaW50aW5nRW5naW5lOjpjcmVh
dGUoKQoreworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8UGFpbnRpbmdFbmdpbmU+KG5ldyBQ
YWludGluZ0VuZ2luZUJhc2ljKTsKK30KKworfSAvLyBuYW1lc3BhY2UgTmljb3NpYQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9OaWNvc2lhUGFp
bnRpbmdFbmdpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEv
Tmljb3NpYVBhaW50aW5nRW5naW5lLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2MxM2ExZGJiNTJlMzQzOTZkMzBi
ZDkxZmM0ZTA2NDU2MDI0YWIzZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYVBhaW50aW5nRW5naW5lLmgKQEAgLTAsMCAr
MSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBNZXRyb2xvZ2ljYWwgR3JvdXAgQi5W
LgorICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQKKyAqICAgIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorICogSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisg
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRl
IDx3dGYvUmVmLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEdyYXBoaWNzTGF5ZXI7
CitjbGFzcyBJbnRSZWN0OworfQorCituYW1lc3BhY2UgTmljb3NpYSB7CisKK2NsYXNzIEJ1ZmZl
cjsKKworY2xhc3MgUGFpbnRpbmdFbmdpbmUgeworcHVibGljOgorICAgIHN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8UGFpbnRpbmdFbmdpbmU+IGNyZWF0ZSgpOworCisgICAgdmlydHVhbCB+UGFpbnRp
bmdFbmdpbmUoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIGJvb2wgcGFpbnQoV2ViQ29yZTo6
R3JhcGhpY3NMYXllciYsIFJlZjxCdWZmZXI+JiYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGZsb2F0KSA9
IDA7Cit9OworCit9IC8vLyBuYW1lc3BhY2UgTmljb3NpYQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9OaWNvc2lhUGFpbnRpbmdFbmdpbmVCYXNp
Yy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL05pY29zaWFQ
YWludGluZ0VuZ2luZUJhc2ljLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZmY0MTJjOTM2NTFkYzMzMDk1YmVl
MGMwODRiM2M0NWZlZTU4YWQ0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9OaWNvc2lhUGFpbnRpbmdFbmdpbmVCYXNpYy5jcHAKQEAg
LTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBNZXRyb2xvZ2ljYWwgR3Jv
dXAgQi5WLgorICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQKKyAqICAgIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTmljb3Np
YVBhaW50aW5nRW5naW5lQmFzaWMuaCIKKworI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgor
I2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKKyNpbmNsdWRlICJOaWNvc2lhQnVmZmVyLmgiCisK
K25hbWVzcGFjZSBOaWNvc2lhIHsKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1BhaW50
aW5nRW5naW5lQmFzaWM6OlBhaW50aW5nRW5naW5lQmFzaWMoKSA9IGRlZmF1bHQ7CitQYWludGlu
Z0VuZ2luZUJhc2ljOjp+UGFpbnRpbmdFbmdpbmVCYXNpYygpID0gZGVmYXVsdDsKKworYm9vbCBQ
YWludGluZ0VuZ2luZUJhc2ljOjpwYWludChHcmFwaGljc0xheWVyJiBsYXllciwgUmVmPEJ1ZmZl
cj4mJiBidWZmZXIsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFJlY3QmIG1h
cHBlZFNvdXJjZVJlY3QsIGNvbnN0IEludFJlY3QmIHRhcmdldFJlY3QsIGZsb2F0IGNvbnRlbnRz
U2NhbGUpCit7CisgICAgYXV0byYgY29udGV4dCA9IGJ1ZmZlci0+Y29udGV4dCgpOworICAgIGNv
bnRleHQuc2F2ZSgpOworICAgIGNvbnRleHQuY2xpcCh0YXJnZXRSZWN0KTsKKyAgICBjb250ZXh0
LnRyYW5zbGF0ZSh0YXJnZXRSZWN0LngoKSwgdGFyZ2V0UmVjdC55KCkpOworCisgICAgaWYgKGJ1
ZmZlci0+c3VwcG9ydHNBbHBoYSgpKSB7CisgICAgICAgIGNvbnRleHQuc2V0Q29tcG9zaXRlT3Bl
cmF0aW9uKENvbXBvc2l0ZUNvcHkpOworICAgICAgICBjb250ZXh0LmZpbGxSZWN0KEludFJlY3Qo
SW50UG9pbnQ6Onplcm8oKSwgc291cmNlUmVjdC5zaXplKCkpLCBDb2xvcjo6dHJhbnNwYXJlbnQp
OworICAgICAgICBjb250ZXh0LnNldENvbXBvc2l0ZU9wZXJhdGlvbihDb21wb3NpdGVTb3VyY2VP
dmVyKTsKKyAgICB9CisKKyAgICBjb250ZXh0LnRyYW5zbGF0ZSgtc291cmNlUmVjdC54KCksIC1z
b3VyY2VSZWN0LnkoKSk7CisgICAgY29udGV4dC5zY2FsZShGbG9hdFNpemUoY29udGVudHNTY2Fs
ZSwgY29udGVudHNTY2FsZSkpOworCisgICAgbGF5ZXIucGFpbnRHcmFwaGljc0xheWVyQ29udGVu
dHMoY29udGV4dCwgbWFwcGVkU291cmNlUmVjdCk7CisKKyAgICBjb250ZXh0LnJlc3RvcmUoKTsK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgTmljb3NpYQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9OaWNvc2lhUGFpbnRp
bmdFbmdpbmVCYXNpYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3Np
YS9OaWNvc2lhUGFpbnRpbmdFbmdpbmVCYXNpYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2ZjM3ZWE3ZGFmZDUy
YjIxMGZjM2UxMjA1MDk5ODVlNDAxYjM4YTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL05pY29zaWFQYWludGluZ0VuZ2luZUJhc2lj
LmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBNZXRyb2xvZ2lj
YWwgR3JvdXAgQi5WLgorICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQKKyAqICAgIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorICogSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIk5pY29z
aWFQYWludGluZ0VuZ2luZS5oIgorCituYW1lc3BhY2UgTmljb3NpYSB7CisKK2NsYXNzIFBhaW50
aW5nRW5naW5lQmFzaWMgZmluYWwgOiBwdWJsaWMgUGFpbnRpbmdFbmdpbmUgeworcHVibGljOgor
ICAgIFBhaW50aW5nRW5naW5lQmFzaWMoKTsKKyAgICB2aXJ0dWFsIH5QYWludGluZ0VuZ2luZUJh
c2ljKCk7CisKK3ByaXZhdGU6CisgICAgYm9vbCBwYWludChXZWJDb3JlOjpHcmFwaGljc0xheWVy
JiwgUmVmPEJ1ZmZlcj4mJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgZmxvYXQpIG92ZXJyaWRlOworfTsK
KworfSAvLyBuYW1lc3BhY2UgTmljb3NpYQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXll
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcAppbmRleCAwZTY5YzZlN2NlYjkwZDM5ZjBk
NzYwNjc4MmI3MWM3MWVhZDBkMmY5Li4yN2ExZjc0YTVmYzNlYjhjYjVkNzNlODc4NDk0NWM3MTY1
NDdkNjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkdyYXBoaWNzQ29u
dGV4dC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKICNpbmNsdWRlICJHcmFwaGljc0xh
eWVyRmFjdG9yeS5oIgorI2luY2x1ZGUgIk5pY29zaWFQYWludGluZ0VuZ2luZS5oIgogI2luY2x1
ZGUgIlNjcm9sbGFibGVBcmVhLmgiCiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5
ZXJQcm94eVByb3ZpZGVyLmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CkBAIC05NzIs
MjYgKzk3MywxMSBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6dXBkYXRlQ29udGVu
dEJ1ZmZlcnMoKQogICAgICAgICAgICAgYXV0byBjb29yZGluYXRlZEJ1ZmZlciA9IG1fY29vcmRp
bmF0b3ItPmdldENvb3JkaW5hdGVkQnVmZmVyKGRpcnR5UmVjdC5zaXplKCksCiAgICAgICAgICAg
ICAgICAgY29udGVudHNPcGFxdWUoKSA/IE5pY29zaWE6OkJ1ZmZlcjo6Tm9GbGFncyA6IE5pY29z
aWE6OkJ1ZmZlcjo6U3VwcG9ydHNBbHBoYSwKICAgICAgICAgICAgICAgICB1cGRhdGVJbmZvLmF0
bGFzSUQsIHRhcmdldFJlY3QpOwotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCA9IGNvb3JkaW5hdGVkQnVmZmVyLT5jb250ZXh0KCk7Ci0gICAg
ICAgICAgICAgICAgY29udGV4dC5zYXZlKCk7Ci0gICAgICAgICAgICAgICAgY29udGV4dC5jbGlw
KHRhcmdldFJlY3QpOwotICAgICAgICAgICAgICAgIGNvbnRleHQudHJhbnNsYXRlKHRhcmdldFJl
Y3QueCgpLCB0YXJnZXRSZWN0LnkoKSk7Ci0KLSAgICAgICAgICAgICAgICBpZiAoY29vcmRpbmF0
ZWRCdWZmZXItPnN1cHBvcnRzQWxwaGEoKSkgewotICAgICAgICAgICAgICAgICAgICBjb250ZXh0
LnNldENvbXBvc2l0ZU9wZXJhdGlvbihDb21wb3NpdGVDb3B5KTsKLSAgICAgICAgICAgICAgICAg
ICAgY29udGV4dC5maWxsUmVjdChJbnRSZWN0KEludFBvaW50Ojp6ZXJvKCksIGRpcnR5UmVjdC5z
aXplKCkpLCBDb2xvcjo6dHJhbnNwYXJlbnQpOwotICAgICAgICAgICAgICAgICAgICBjb250ZXh0
LnNldENvbXBvc2l0ZU9wZXJhdGlvbihDb21wb3NpdGVTb3VyY2VPdmVyKTsKLSAgICAgICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgICAgICBjb250ZXh0LnRyYW5zbGF0ZSgtZGlydHlSZWN0Lngo
KSwgLWRpcnR5UmVjdC55KCkpOwotICAgICAgICAgICAgICAgIGZsb2F0IGJhY2tpbmdTdG9yZVNj
YWxlID0gbV9tYWluQmFja2luZ1N0b3JlLT5jb250ZW50c1NjYWxlKCk7Ci0gICAgICAgICAgICAg
ICAgY29udGV4dC5zY2FsZShGbG9hdFNpemUoYmFja2luZ1N0b3JlU2NhbGUsIGJhY2tpbmdTdG9y
ZVNjYWxlKSk7Ci0KLSAgICAgICAgICAgICAgICBwYWludEdyYXBoaWNzTGF5ZXJDb250ZW50cyhj
b250ZXh0LCBtX21haW5CYWNraW5nU3RvcmUtPm1hcFRvQ29udGVudHMoZGlydHlSZWN0KSk7Ci0K
LSAgICAgICAgICAgICAgICBjb250ZXh0LnJlc3RvcmUoKTsKLSAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgaWYgKCFtX2Nvb3JkaW5hdG9yLT5nZXRQYWludGluZ0VuZ2luZSgpLnBhaW50KCp0
aGlzLCBXVEZNb3ZlKGNvb3JkaW5hdGVkQnVmZmVyKSwKKyAgICAgICAgICAgICAgICBkaXJ0eVJl
Y3QsIG1fbWFpbkJhY2tpbmdTdG9yZS0+bWFwVG9Db250ZW50cyhkaXJ0eVJlY3QpLAorICAgICAg
ICAgICAgICAgIHRhcmdldFJlY3QsIG1fbWFpbkJhY2tpbmdTdG9yZS0+Y29udGVudHNTY2FsZSgp
KSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICAgICAgdXBkYXRlSW5mby5z
dXJmYWNlT2Zmc2V0ID0gdGFyZ2V0UmVjdC5sb2NhdGlvbigpOwogICAgICAgICAgICAgdXBkYXRl
SW5mby51cGRhdGVSZWN0ID0gZGlydHlSZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NM
YXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5h
dGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCmluZGV4IDA4OGNlMzZjNDNmZjUxOWZhZmIw
MTVmM2ZiMmY0NmM5ZTBjNjJjNjYuLmI0ZGMyMTg2YWMyMjNlOGVjOTg2ZDQ1Njg1OGNlODI0NjUx
YWRkNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyLmgKQEAgLTM3LDYgKzM3LDEwIEBACiAjaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25N
YXRyaXguaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKK25hbWVzcGFjZSBO
aWNvc2lhIHsKK2NsYXNzIFBhaW50aW5nRW5naW5lOworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBjbGFzcyBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI7CiBjbGFzcyBUZXh0dXJlTWFwcGVyQW5p
bWF0aW9uczsKQEAgLTQ5LDYgKzUzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUmVmPENvb3Jk
aW5hdGVkSW1hZ2VCYWNraW5nPiBjcmVhdGVJbWFnZUJhY2tpbmdJZk5lZWRlZChJbWFnZSYpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoTGF5ZXIoQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
KikgPSAwOwogICAgIHZpcnR1YWwgUmVmPE5pY29zaWE6OkJ1ZmZlcj4gZ2V0Q29vcmRpbmF0ZWRC
dWZmZXIoY29uc3QgSW50U2l6ZSYsIE5pY29zaWE6OkJ1ZmZlcjo6RmxhZ3MsIHVpbnQzMl90Jiwg
SW50UmVjdCYpID0gMDsKKyAgICB2aXJ0dWFsIE5pY29zaWE6OlBhaW50aW5nRW5naW5lJiBnZXRQ
YWludGluZ0VuZ2luZSgpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBzeW5jTGF5ZXJTdGF0ZShD
b29yZGluYXRlZExheWVySUQsIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJikgPSAwOwog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0
b3IuY3BwCmluZGV4IGY3YWMxYWZkZmIzOTY2ZjY3NTI0NGZjZDQ5MzE5OWU4MWYzNGQ3YjguLjEx
ZmI1N2E3OTc5OTVkZTVmMWFlZDBiOTM5NDg2NzEyN2ExOTMyMWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRp
bmdDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcApAQCAtMzUsNiAr
MzUsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9JbnNwZWN0b3JDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NYWluRnJh
bWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL05pY29zaWFQYWludGluZ0VuZ2luZS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIu
aD4KICNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KQEAgLTUwLDYgKzUxLDcgQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpDb21wb3NpdGluZ0Nvb3JkaW5h
dG9yKFBhZ2UqIHBhZ2UsIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OkNsaWVudCYgY2xpZW50KQog
ICAgIDogbV9wYWdlKHBhZ2UpCiAgICAgLCBtX2NsaWVudChjbGllbnQpCisgICAgLCBtX3BhaW50
aW5nRW5naW5lKE5pY29zaWE6OlBhaW50aW5nRW5naW5lOjpjcmVhdGUoKSkKICAgICAsIG1fcmVs
ZWFzZUluYWN0aXZlQXRsYXNlc1RpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJkNvbXBvc2l0
aW5nQ29vcmRpbmF0b3I6OnJlbGVhc2VJbmFjdGl2ZUF0bGFzZXNUaW1lckZpcmVkKQogewogI2lm
IFVTRShHTElCX0VWRU5UX0xPT1ApCkBAIC0zOTcsNiArMzk5LDExIEBAIFJlZjxOaWNvc2lhOjpC
dWZmZXI+IENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OmdldENvb3JkaW5hdGVkQnVmZmVyKGNvbnN0
IEludFNpemUmCiAgICAgcmV0dXJuICpidWZmZXI7CiB9CiAKK05pY29zaWE6OlBhaW50aW5nRW5n
aW5lJiBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpnZXRQYWludGluZ0VuZ2luZSgpCit7CisgICAg
cmV0dXJuICptX3BhaW50aW5nRW5naW5lOworfQorCiBjb25zdCBTZWNvbmRzIHJlbGVhc2VJbmFj
dGl2ZUF0bGFzZXNUaW1lckludGVydmFsIHsgNTAwX21zIH07CiAKIHZvaWQgQ29tcG9zaXRpbmdD
b29yZGluYXRvcjo6c2NoZWR1bGVSZWxlYXNlSW5hY3RpdmVBdGxhc2VzKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29t
cG9zaXRpbmdDb29yZGluYXRvci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggOWI3NWU4
MWFmODkyZmIxMTg2ZTdkZWRkMDE4Yzc3ODVkOGM1NGY5OS4uMDAzYjI2MjlkZjA0Njc3ZDY5MTUx
YmQ1N2I2NmZkZjY3Mjc2NTJkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b21wb3NpdGluZ0Nvb3JkaW5hdG9yLmgKQEAgLTM5LDYgKzM5LDEwIEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9JbnRSZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OaWNvc2lhQnVmZmVyLmg+CiAKK25h
bWVzcGFjZSBOaWNvc2lhIHsKK2NsYXNzIFBhaW50aW5nRW5naW5lOworfQorCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiBjbGFzcyBHcmFwaGljc0xheWVyOwpA
QCAtMTE0LDYgKzExOCw3IEBAIHByaXZhdGU6CiAgICAgUmVmPFdlYkNvcmU6OkNvb3JkaW5hdGVk
SW1hZ2VCYWNraW5nPiBjcmVhdGVJbWFnZUJhY2tpbmdJZk5lZWRlZChXZWJDb3JlOjpJbWFnZSYp
IG92ZXJyaWRlOwogICAgIHZvaWQgZGV0YWNoTGF5ZXIoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyKikgb3ZlcnJpZGU7CiAgICAgUmVmPE5pY29zaWE6OkJ1ZmZlcj4gZ2V0Q29vcmRp
bmF0ZWRCdWZmZXIoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIE5pY29zaWE6OkJ1ZmZlcjo6Rmxh
Z3MsIHVpbnQzMl90JiwgV2ViQ29yZTo6SW50UmVjdCYpIG92ZXJyaWRlOworICAgIE5pY29zaWE6
OlBhaW50aW5nRW5naW5lJiBnZXRQYWludGluZ0VuZ2luZSgpIG92ZXJyaWRlOwogICAgIHZvaWQg
c3luY0xheWVyU3RhdGUoV2ViQ29yZTo6Q29vcmRpbmF0ZWRMYXllcklELCBXZWJDb3JlOjpDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYpIG92ZXJyaWRlOwogCiAgICAgLy8gVXBkYXRlQXRs
YXM6OkNsaWVudApAQCAtMTQ0LDEwICsxNDksMTAgQEAgcHJpdmF0ZToKIAogICAgIFdlYkNvcmU6
OkNvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZSBtX3N0YXRlOwogCi0gICAgdHlwZWRlZiBIYXNoTWFw
PFdlYkNvcmU6OkNvb3JkaW5hdGVkTGF5ZXJJRCwgV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyKj4gTGF5ZXJNYXA7Ci0gICAgTGF5ZXJNYXAgbV9yZWdpc3RlcmVkTGF5ZXJzOwotICAg
IHR5cGVkZWYgSGFzaE1hcDxXZWJDb3JlOjpDb29yZGluYXRlZEltYWdlQmFja2luZ0lELCBSZWZQ
dHI8V2ViQ29yZTo6Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc+ID4gSW1hZ2VCYWNraW5nTWFwOwot
ICAgIEltYWdlQmFja2luZ01hcCBtX2ltYWdlQmFja2luZ3M7CisgICAgSGFzaE1hcDxXZWJDb3Jl
OjpDb29yZGluYXRlZExheWVySUQsIFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcio+
IG1fcmVnaXN0ZXJlZExheWVyczsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OkNvb3JkaW5hdGVkSW1h
Z2VCYWNraW5nSUQsIFJlZlB0cjxXZWJDb3JlOjpDb29yZGluYXRlZEltYWdlQmFja2luZz4+IG1f
aW1hZ2VCYWNraW5nczsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxOaWNvc2lhOjpQYWludGluZ0Vu
Z2luZT4gbV9wYWludGluZ0VuZ2luZTsKICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPFVwZGF0
ZUF0bGFzPj4gbV91cGRhdGVBdGxhc2VzOwogICAgIFZlY3Rvcjx1aW50MzJfdD4gbV9hdGxhc2Vz
VG9SZW1vdmU7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327973</attachid>
            <date>2017-11-30 06:32:24 -0800</date>
            <delta_ts>2017-11-30 06:32:24 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-180141-20171130153223.patch</filename>
            <type>text/plain</type>
            <size>20718</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1MzI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzA1NzVmNjQyOTIxYTM0
NDU1OGMwN2ZlY2QxMTE1ZWRlMWVmYzc1MS4uZDkxYWViMmQ2YzkzMjY1MGM0NjQwMjFlN2UzMDY5
NWFhYjBkMDA1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE3LTExLTMwICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBbQ29vcmRHcmFwaGlj
c10gTW92ZSBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIgcGFpbnRpbmcgYmVoaW5kIE5pY29zaWE6
OlBhaW50aW5nRW5naW5lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODAxNDEKKworICAgICAgICBSZXZpZXdlZCBieSBDYXJsb3MgR2FyY2lhIENhbXBv
cy4KKworICAgICAgICBJbnRyb2R1Y2UgYSBwYWludGluZyBlbmdpbmUgY29uY2VwdCB0aGF0J3Mg
dXNlZCB0byBwZXJmb3JtIHBhaW50aW5nCisgICAgICAgIGZvciBhIGdpdmVuIEdyYXBoaWNzTGF5
ZXIgb2JqZWN0LgorCisgICAgICAgIFRoZSBOaWNvc2lhOjpQYWludGluZ0VuZ2luZSBvYmplY3Qg
aXMgbGV2ZXJhZ2VkIGluIHRoZQorICAgICAgICBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnVw
ZGF0ZUNvbnRlbnRCdWZmZXJzKCkgbWV0aG9kLiBJdCdzIHJldHJpZXZlZAorICAgICAgICB0aHJv
dWdoIHRoZSBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQgaW50ZXJmYWNlLCB3aXRoIGEg
bmV3IG1ldGhvZAorICAgICAgICBpbnRyb2R1Y2VkIHRoZXJlIGZvciB0aGlzIHB1cnBvc2UuCisK
KyAgICAgICAgVGhlIE5pY29zaWE6OlBhaW50aW5nRW5naW5lIGludGVyZmFjZSBpcyBrZXB0IHNp
bXBsZSBmb3Igbm93LCB3aXRoIG9ubHkKKyAgICAgICAgYSBzaW5nbGUgcGFpbnQoKSBtZXRob2Qu
IFRoZSBvbmx5IGN1cnJlbnQgaW1wbGVtZW50YXRpb24gaXMgdGhlCisgICAgICAgIFBhaW50aW5n
RW5naW5lQmFzaWMgY2xhc3MsIHdoaWNoIHNpbXBseSByZXVzZXMgdGhlIGNvZGUgdGhhdCB3YXMK
KyAgICAgICAgcHJldmlvdXNseSBpbiBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnVwZGF0ZUNv
bnRlbnRCdWZmZXJzKCksCisgICAgICAgIG1haW50YWluaW5nIHRoZSBjdXJyZW50IGZ1bmN0aW9u
YWxpdHkuCisKKyAgICAgICAgVGhlIE5pY29zaWE6OlBhaW50aW5nRW5naW5lOjpjcmVhdGUoKSBm
dW5jdGlvbiByZXR1cm5zIGEgbmV3CisgICAgICAgIFBhaW50aW5nRW5naW5lIG9iamVjdC4gRm9y
IG5vdyBpdCBkZWZhdWx0cyB0byBQYWludGluZ0VuZ2luZUJhc2ljLCBidXQKKyAgICAgICAgaXQg
Y291bGQgYmUgY29uZmlndXJlZCBhdCBjb25maWd1cmUtdGltZSBvciBldmVuIHJ1bnRpbWUgaW4g
dGhlIGZ1dHVyZQorICAgICAgICB0byByZXR1cm4gYSBtb3JlIGFkdmFuY2VkIGVuZ2luZSBpbXBs
ZW1lbnRhdGlvbi4KKworICAgICAgICBObyBuZXcgdGVzdHMgLS0gbm8gY2hhbmdlIGluIGJlaGF2
aW9yLgorCisgICAgICAgICogcGxhdGZvcm0vVGV4dHVyZU1hcHBlci5jbWFrZToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL05pY29zaWFQYWludGluZ0VuZ2luZS5jcHA6IEFk
ZGVkLgorICAgICAgICAoTmljb3NpYTo6UGFpbnRpbmdFbmdpbmU6OmNyZWF0ZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9OaWNvc2lhUGFpbnRpbmdFbmdpbmUuaDogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9OaWNvc2lhUGFpbnRpbmdF
bmdpbmVCYXNpYy5jcHA6IEFkZGVkLgorICAgICAgICAoTmljb3NpYTo6UGFpbnRpbmdFbmdpbmVC
YXNpYzo6cGFpbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3Np
YVBhaW50aW5nRW5naW5lQmFzaWMuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnVwZGF0ZUNvbnRlbnRCdWZm
ZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyLmg6CisKIDIwMTctMTEtMzAgIEFkcmlhbiBQZXJleiBkZSBD
YXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXSBCdWlsZHMg
ZmFpbHMgd2l0aCBFTkFCTEVfVklERU89T0ZGIGR1ZSB0byBHU3RyZWFtZXIgdXNhZ2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggYTkzNTE5NGRiYzZkYWUzODhmNTE5NGI5ZjE2MmJmNGM3ZmZmNzkzOS4uNmRjN2U2Mzg3
N2NiNjc1ZGI5MzA4Yzg4MjcxNDMyMjI1Yjk4YWI4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBA
QAorMjAxNy0xMS0zMCAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgW0Nvb3JkR3JhcGhpY3NdIE1vdmUgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyIHBhaW50
aW5nIGJlaGluZCBOaWNvc2lhOjpQYWludGluZ0VuZ2luZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwMTQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Q2FybG9zIEdhcmNpYSBDYW1wb3MuCisKKyAgICAgICAgQ29tcG9zaXRpbmdDb29yZGluYXRvciBt
dXN0IGltcGxlbWVudCB0aGUgcGFpbnRpbmdFbmdpbmUoKSBtZXRob2Qgbm93CisgICAgICAgIHRo
YXQgdGhlIG1ldGhvZCdzIGJlZW4gYWRkZWQgdG8gdGhlIENvb3JkaW5hdGVkR3JhcGhpY3NMYXll
ckNsaWVudAorICAgICAgICBpbnRlcmZhY2UuIFRoZSBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yIG1h
bmFnZXMgdGhlIE5pY29zaWE6OlBhaW50aW5nRW5naW5lCisgICAgICAgIG9iamVjdCB0aHJvdWdo
IHRoZSBuZXcgbV9wYWludGluZ0VuZ2luZSBtZW1iZXIgdmFyaWFibGUsIGFuZCByZXR1cm5zIHRo
ZQorICAgICAgICByZWZlcmVuY2UgdG8gdGhpcyBvYmplY3QgaW4gdGhlIHBhaW50aW5nRW5naW5l
KCkgbWV0aG9kLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNvbXBv
c2l0aW5nQ29vcmRpbmF0b3I6OkNvbXBvc2l0aW5nQ29vcmRpbmF0b3IpOgorICAgICAgICAoV2Vi
S2l0OjpDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpwYWludGluZ0VuZ2luZSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdDb29yZGlu
YXRvci5oOgorICAgICAgICBEcm9wIHVubmVjZXNzYXJ5IHR5cGVkZWZzLgorCiAyMDE3LTExLTI5
ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtBdHRh
Y2htZW50IFN1cHBvcnRdIEltcGxlbWVudCBTUEkgZm9yIGNsaWVudHMgdG8gbWFrZSBhbiBhdHRh
Y2htZW50IGVsZW1lbnQgZGlzcGxheSBpbi1wbGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vVGV4dHVyZU1hcHBlci5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1RleHR1cmVNYXBwZXIuY21ha2UKaW5kZXggZmIyYjUwNDYwMWU0Yzc4OWI0YWUxZjQ4MTg0YzEx
ZWU4MGJjNmJjMC4uY2M0ODliZjkyNzhkZjhmNjc4NTYzM2M2MWU2MTgzMWFlYTFkNWE5NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGV4dHVyZU1hcHBlci5jbWFrZQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UZXh0dXJlTWFwcGVyLmNtYWtlCkBAIC00Nyw2ICs0
Nyw4IEBAIGlmIChVU0VfQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAgICAgKQogICAgIGxpc3QoQVBQ
RU5EIFdlYkNvcmVfU09VUkNFUwogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL05p
Y29zaWFCdWZmZXIuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3Np
YVBhaW50aW5nRW5naW5lLmNwcAorICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL05p
Y29zaWFQYWludGluZ0VuZ2luZUJhc2ljLmNwcAogICAgICkKIGVsc2UgKCkKICAgICBsaXN0KEFQ
UEVORCBXZWJDb3JlX1NPVVJDRVMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL25pY29zaWEvTmljb3NpYVBhaW50aW5nRW5naW5lLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYVBhaW50aW5nRW5naW5lLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42ZGUzNTA5YTg0Y2ZmNmFlMjU4Zjg2YWYwNmFjZGJhZmVhYjllYTU1Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9O
aWNvc2lhUGFpbnRpbmdFbmdpbmUuY3BwCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTcgTWV0cm9sb2dpY2FsIEdyb3VwIEIuVi4KKyAqIENvcHlyaWdodCAoQykgMjAx
NyBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlz
Y2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkCisgKiAgICB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIEhPTERFUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIk5pY29zaWFQYWludGluZ0VuZ2luZS5oIgorCisjaW5jbHVk
ZSAiTmljb3NpYVBhaW50aW5nRW5naW5lQmFzaWMuaCIKKworbmFtZXNwYWNlIE5pY29zaWEgewor
CitzdGQ6OnVuaXF1ZV9wdHI8UGFpbnRpbmdFbmdpbmU+IFBhaW50aW5nRW5naW5lOjpjcmVhdGUo
KQoreworICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8UGFpbnRpbmdFbmdpbmU+KG5ldyBQYWlu
dGluZ0VuZ2luZUJhc2ljKTsKK30KKworfSAvLyBuYW1lc3BhY2UgTmljb3NpYQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9OaWNvc2lhUGFpbnRp
bmdFbmdpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvTmlj
b3NpYVBhaW50aW5nRW5naW5lLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2U1Yzk0OTQ1MjliZDVmMjljOTM5ZWUw
MTc1MTkwNmMzZTZiZTBiYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL25pY29zaWEvTmljb3NpYVBhaW50aW5nRW5naW5lLmgKQEAgLTAsMCArMSw1
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBNZXRyb2xvZ2ljYWwgR3JvdXAgQi5WLgor
ICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQKKyAqICAgIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorICogSE9MREVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx3
dGYvUmVmLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEdyYXBoaWNzTGF5ZXI7Citj
bGFzcyBJbnRSZWN0OworfQorCituYW1lc3BhY2UgTmljb3NpYSB7CisKK2NsYXNzIEJ1ZmZlcjsK
KworY2xhc3MgUGFpbnRpbmdFbmdpbmUgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwor
cHVibGljOgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UGFpbnRpbmdFbmdpbmU+IGNyZWF0
ZSgpOworCisgICAgdmlydHVhbCB+UGFpbnRpbmdFbmdpbmUoKSA9IGRlZmF1bHQ7CisKKyAgICB2
aXJ0dWFsIGJvb2wgcGFpbnQoV2ViQ29yZTo6R3JhcGhpY3NMYXllciYsIFJlZjxCdWZmZXI+JiYs
IGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYsIGZsb2F0KSA9IDA7Cit9OworCit9IC8vLyBuYW1lc3BhY2UgTmlj
b3NpYQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3Np
YS9OaWNvc2lhUGFpbnRpbmdFbmdpbmVCYXNpYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9uaWNvc2lhL05pY29zaWFQYWludGluZ0VuZ2luZUJhc2ljLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40ZmY0MTJjOTM2NTFkYzMzMDk1YmVlMGMwODRiM2M0NWZlZTU4YWQ0Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9OaWNvc2lh
UGFpbnRpbmdFbmdpbmVCYXNpYy5jcHAKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNyBNZXRyb2xvZ2ljYWwgR3JvdXAgQi5WLgorICogQ29weXJpZ2h0IChDKSAyMDE3
IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNj
bGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQKKyAqICAgIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogSE9MREVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiTmljb3NpYVBhaW50aW5nRW5naW5lQmFzaWMuaCIKKworI2lu
Y2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKKyNp
bmNsdWRlICJOaWNvc2lhQnVmZmVyLmgiCisKK25hbWVzcGFjZSBOaWNvc2lhIHsKKwordXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CisKK1BhaW50aW5nRW5naW5lQmFzaWM6OlBhaW50aW5nRW5naW5l
QmFzaWMoKSA9IGRlZmF1bHQ7CitQYWludGluZ0VuZ2luZUJhc2ljOjp+UGFpbnRpbmdFbmdpbmVC
YXNpYygpID0gZGVmYXVsdDsKKworYm9vbCBQYWludGluZ0VuZ2luZUJhc2ljOjpwYWludChHcmFw
aGljc0xheWVyJiBsYXllciwgUmVmPEJ1ZmZlcj4mJiBidWZmZXIsIGNvbnN0IEludFJlY3QmIHNv
dXJjZVJlY3QsIGNvbnN0IEludFJlY3QmIG1hcHBlZFNvdXJjZVJlY3QsIGNvbnN0IEludFJlY3Qm
IHRhcmdldFJlY3QsIGZsb2F0IGNvbnRlbnRzU2NhbGUpCit7CisgICAgYXV0byYgY29udGV4dCA9
IGJ1ZmZlci0+Y29udGV4dCgpOworICAgIGNvbnRleHQuc2F2ZSgpOworICAgIGNvbnRleHQuY2xp
cCh0YXJnZXRSZWN0KTsKKyAgICBjb250ZXh0LnRyYW5zbGF0ZSh0YXJnZXRSZWN0LngoKSwgdGFy
Z2V0UmVjdC55KCkpOworCisgICAgaWYgKGJ1ZmZlci0+c3VwcG9ydHNBbHBoYSgpKSB7CisgICAg
ICAgIGNvbnRleHQuc2V0Q29tcG9zaXRlT3BlcmF0aW9uKENvbXBvc2l0ZUNvcHkpOworICAgICAg
ICBjb250ZXh0LmZpbGxSZWN0KEludFJlY3QoSW50UG9pbnQ6Onplcm8oKSwgc291cmNlUmVjdC5z
aXplKCkpLCBDb2xvcjo6dHJhbnNwYXJlbnQpOworICAgICAgICBjb250ZXh0LnNldENvbXBvc2l0
ZU9wZXJhdGlvbihDb21wb3NpdGVTb3VyY2VPdmVyKTsKKyAgICB9CisKKyAgICBjb250ZXh0LnRy
YW5zbGF0ZSgtc291cmNlUmVjdC54KCksIC1zb3VyY2VSZWN0LnkoKSk7CisgICAgY29udGV4dC5z
Y2FsZShGbG9hdFNpemUoY29udGVudHNTY2FsZSwgY29udGVudHNTY2FsZSkpOworCisgICAgbGF5
ZXIucGFpbnRHcmFwaGljc0xheWVyQ29udGVudHMoY29udGV4dCwgbWFwcGVkU291cmNlUmVjdCk7
CisKKyAgICBjb250ZXh0LnJlc3RvcmUoKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAvLyBu
YW1lc3BhY2UgTmljb3NpYQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvbmljb3NpYS9OaWNvc2lhUGFpbnRpbmdFbmdpbmVCYXNpYy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS9OaWNvc2lhUGFpbnRpbmdFbmdpbmVCYXNpYy5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmI2ZjM3ZWE3ZGFmZDUyYjIxMGZjM2UxMjA1MDk5ODVlNDAxYjM4YTMKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lh
L05pY29zaWFQYWludGluZ0VuZ2luZUJhc2ljLmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNyBNZXRyb2xvZ2ljYWwgR3JvdXAgQi5WLgorICogQ29weXJpZ2h0IChD
KSAyMDE3IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAg
ICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQKKyAqICAgIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogSE9MREVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgIk5pY29zaWFQYWludGluZ0VuZ2luZS5oIgorCituYW1lc3Bh
Y2UgTmljb3NpYSB7CisKK2NsYXNzIFBhaW50aW5nRW5naW5lQmFzaWMgZmluYWwgOiBwdWJsaWMg
UGFpbnRpbmdFbmdpbmUgeworcHVibGljOgorICAgIFBhaW50aW5nRW5naW5lQmFzaWMoKTsKKyAg
ICB2aXJ0dWFsIH5QYWludGluZ0VuZ2luZUJhc2ljKCk7CisKK3ByaXZhdGU6CisgICAgYm9vbCBw
YWludChXZWJDb3JlOjpHcmFwaGljc0xheWVyJiwgUmVmPEJ1ZmZlcj4mJiwgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiwgZmxvYXQpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgTmljb3NpYQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5h
dGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNw
cAppbmRleCAwZTY5YzZlN2NlYjkwZDM5ZjBkNzYwNjc4MmI3MWM3MWVhZDBkMmY5Li5jZGM3MGYx
ZGUzYmIwODA4MWIyMGQwY2Y2YTVlZTAzYzEzNzVlZDI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcApAQCAtMzAsNiArMzAs
NyBAQAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzTGF5
ZXIuaCIKICNpbmNsdWRlICJHcmFwaGljc0xheWVyRmFjdG9yeS5oIgorI2luY2x1ZGUgIk5pY29z
aWFQYWludGluZ0VuZ2luZS5oIgogI2luY2x1ZGUgIlNjcm9sbGFibGVBcmVhLmgiCiAjaW5jbHVk
ZSAiVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJQcm94eVByb3ZpZGVyLmgiCiAjaW5jbHVkZSA8
d3RmL0N1cnJlbnRUaW1lLmg+CkBAIC05NzIsMjYgKzk3MywxMSBAQCB2b2lkIENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcjo6dXBkYXRlQ29udGVudEJ1ZmZlcnMoKQogICAgICAgICAgICAgYXV0byBj
b29yZGluYXRlZEJ1ZmZlciA9IG1fY29vcmRpbmF0b3ItPmdldENvb3JkaW5hdGVkQnVmZmVyKGRp
cnR5UmVjdC5zaXplKCksCiAgICAgICAgICAgICAgICAgY29udGVudHNPcGFxdWUoKSA/IE5pY29z
aWE6OkJ1ZmZlcjo6Tm9GbGFncyA6IE5pY29zaWE6OkJ1ZmZlcjo6U3VwcG9ydHNBbHBoYSwKICAg
ICAgICAgICAgICAgICB1cGRhdGVJbmZvLmF0bGFzSUQsIHRhcmdldFJlY3QpOwotICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCA9IGNvb3JkaW5h
dGVkQnVmZmVyLT5jb250ZXh0KCk7Ci0gICAgICAgICAgICAgICAgY29udGV4dC5zYXZlKCk7Ci0g
ICAgICAgICAgICAgICAgY29udGV4dC5jbGlwKHRhcmdldFJlY3QpOwotICAgICAgICAgICAgICAg
IGNvbnRleHQudHJhbnNsYXRlKHRhcmdldFJlY3QueCgpLCB0YXJnZXRSZWN0LnkoKSk7Ci0KLSAg
ICAgICAgICAgICAgICBpZiAoY29vcmRpbmF0ZWRCdWZmZXItPnN1cHBvcnRzQWxwaGEoKSkgewot
ICAgICAgICAgICAgICAgICAgICBjb250ZXh0LnNldENvbXBvc2l0ZU9wZXJhdGlvbihDb21wb3Np
dGVDb3B5KTsKLSAgICAgICAgICAgICAgICAgICAgY29udGV4dC5maWxsUmVjdChJbnRSZWN0KElu
dFBvaW50Ojp6ZXJvKCksIGRpcnR5UmVjdC5zaXplKCkpLCBDb2xvcjo6dHJhbnNwYXJlbnQpOwot
ICAgICAgICAgICAgICAgICAgICBjb250ZXh0LnNldENvbXBvc2l0ZU9wZXJhdGlvbihDb21wb3Np
dGVTb3VyY2VPdmVyKTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBjb250
ZXh0LnRyYW5zbGF0ZSgtZGlydHlSZWN0LngoKSwgLWRpcnR5UmVjdC55KCkpOwotICAgICAgICAg
ICAgICAgIGZsb2F0IGJhY2tpbmdTdG9yZVNjYWxlID0gbV9tYWluQmFja2luZ1N0b3JlLT5jb250
ZW50c1NjYWxlKCk7Ci0gICAgICAgICAgICAgICAgY29udGV4dC5zY2FsZShGbG9hdFNpemUoYmFj
a2luZ1N0b3JlU2NhbGUsIGJhY2tpbmdTdG9yZVNjYWxlKSk7Ci0KLSAgICAgICAgICAgICAgICBw
YWludEdyYXBoaWNzTGF5ZXJDb250ZW50cyhjb250ZXh0LCBtX21haW5CYWNraW5nU3RvcmUtPm1h
cFRvQ29udGVudHMoZGlydHlSZWN0KSk7Ci0KLSAgICAgICAgICAgICAgICBjb250ZXh0LnJlc3Rv
cmUoKTsKLSAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCFtX2Nvb3JkaW5hdG9yLT5w
YWludGluZ0VuZ2luZSgpLnBhaW50KCp0aGlzLCBXVEZNb3ZlKGNvb3JkaW5hdGVkQnVmZmVyKSwK
KyAgICAgICAgICAgICAgICBkaXJ0eVJlY3QsIG1fbWFpbkJhY2tpbmdTdG9yZS0+bWFwVG9Db250
ZW50cyhkaXJ0eVJlY3QpLAorICAgICAgICAgICAgICAgIHRhcmdldFJlY3QsIG1fbWFpbkJhY2tp
bmdTdG9yZS0+Y29udGVudHNTY2FsZSgpKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKIAog
ICAgICAgICAgICAgdXBkYXRlSW5mby5zdXJmYWNlT2Zmc2V0ID0gdGFyZ2V0UmVjdC5sb2NhdGlv
bigpOwogICAgICAgICAgICAgdXBkYXRlSW5mby51cGRhdGVSZWN0ID0gZGlydHlSZWN0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5h
dGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCmlu
ZGV4IDA4OGNlMzZjNDNmZjUxOWZhZmIwMTVmM2ZiMmY0NmM5ZTBjNjJjNjYuLjY2NmE5NjgyNGVm
ZDA2ZTBjZmVmYjU4OGYxNjZjZGJkNWNkODRjZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNz
TGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29v
cmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKQEAgLTM3LDYgKzM3LDEwIEBACiAj
aW5jbHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdIYXNoLmg+CiAKK25hbWVzcGFjZSBOaWNvc2lhIHsKK2NsYXNzIFBhaW50aW5nRW5naW5lOwor
fQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI7
CiBjbGFzcyBUZXh0dXJlTWFwcGVyQW5pbWF0aW9uczsKQEAgLTQ5LDYgKzUzLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgUmVmPENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nPiBjcmVhdGVJbWFnZUJh
Y2tpbmdJZk5lZWRlZChJbWFnZSYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoTGF5ZXIo
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKikgPSAwOwogICAgIHZpcnR1YWwgUmVmPE5pY29zaWE6
OkJ1ZmZlcj4gZ2V0Q29vcmRpbmF0ZWRCdWZmZXIoY29uc3QgSW50U2l6ZSYsIE5pY29zaWE6OkJ1
ZmZlcjo6RmxhZ3MsIHVpbnQzMl90JiwgSW50UmVjdCYpID0gMDsKKyAgICB2aXJ0dWFsIE5pY29z
aWE6OlBhaW50aW5nRW5naW5lJiBwYWludGluZ0VuZ2luZSgpID0gMDsKIAogICAgIHZpcnR1YWwg
dm9pZCBzeW5jTGF5ZXJTdGF0ZShDb29yZGluYXRlZExheWVySUQsIENvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllclN0YXRlJikgPSAwOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNz
L0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCmluZGV4IGY3YWMxYWZkZmIzOTY2ZjY3NTI0NGZj
ZDQ5MzE5OWU4MWYzNGQ3YjguLjc1M2NlYzQwMDY1YjA0Mzc2ZGQ4Mzk4MjBmN2Q0MDUyNjU4ODRk
MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3Jk
aW5hdG9yLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3ND
b250ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnNwZWN0b3JDb250cm9sbGVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9NYWluRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL05pY29zaWFQYWlu
dGluZ0VuZ2luZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPHd0Zi9N
ZW1vcnlQcmVzc3VyZUhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KQEAg
LTUwLDYgKzUxLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBDb21wb3NpdGluZ0Nvb3JkaW5hdG9y
OjpDb21wb3NpdGluZ0Nvb3JkaW5hdG9yKFBhZ2UqIHBhZ2UsIENvbXBvc2l0aW5nQ29vcmRpbmF0
b3I6OkNsaWVudCYgY2xpZW50KQogICAgIDogbV9wYWdlKHBhZ2UpCiAgICAgLCBtX2NsaWVudChj
bGllbnQpCisgICAgLCBtX3BhaW50aW5nRW5naW5lKE5pY29zaWE6OlBhaW50aW5nRW5naW5lOjpj
cmVhdGUoKSkKICAgICAsIG1fcmVsZWFzZUluYWN0aXZlQXRsYXNlc1RpbWVyKFJ1bkxvb3A6Om1h
aW4oKSwgdGhpcywgJkNvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OnJlbGVhc2VJbmFjdGl2ZUF0bGFz
ZXNUaW1lckZpcmVkKQogewogI2lmIFVTRShHTElCX0VWRU5UX0xPT1ApCkBAIC0zOTcsNiArMzk5
LDExIEBAIFJlZjxOaWNvc2lhOjpCdWZmZXI+IENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OmdldENv
b3JkaW5hdGVkQnVmZmVyKGNvbnN0IEludFNpemUmCiAgICAgcmV0dXJuICpidWZmZXI7CiB9CiAK
K05pY29zaWE6OlBhaW50aW5nRW5naW5lJiBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpwYWludGlu
Z0VuZ2luZSgpCit7CisgICAgcmV0dXJuICptX3BhaW50aW5nRW5naW5lOworfQorCiBjb25zdCBT
ZWNvbmRzIHJlbGVhc2VJbmFjdGl2ZUF0bGFzZXNUaW1lckludGVydmFsIHsgNTAwX21zIH07CiAK
IHZvaWQgQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6c2NoZWR1bGVSZWxlYXNlSW5hY3RpdmVBdGxh
c2VzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3JkaW5h
dG9yLmgKaW5kZXggOWI3NWU4MWFmODkyZmIxMTg2ZTdkZWRkMDE4Yzc3ODVkOGM1NGY5OS4uNzdm
MTcyODM3NDBjNWRlMjMzMjNlMDljYmM4MDQ0NDBlYjk2YWJhZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGlu
Z0Nvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmgKQEAgLTM5LDYgKzM5LDEw
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9OaWNv
c2lhQnVmZmVyLmg+CiAKK25hbWVzcGFjZSBOaWNvc2lhIHsKK2NsYXNzIFBhaW50aW5nRW5naW5l
OworfQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiBjbGFz
cyBHcmFwaGljc0xheWVyOwpAQCAtMTE0LDYgKzExOCw3IEBAIHByaXZhdGU6CiAgICAgUmVmPFdl
YkNvcmU6OkNvb3JkaW5hdGVkSW1hZ2VCYWNraW5nPiBjcmVhdGVJbWFnZUJhY2tpbmdJZk5lZWRl
ZChXZWJDb3JlOjpJbWFnZSYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGV0YWNoTGF5ZXIoV2ViQ29y
ZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CiAgICAgUmVmPE5pY29zaWE6
OkJ1ZmZlcj4gZ2V0Q29vcmRpbmF0ZWRCdWZmZXIoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIE5p
Y29zaWE6OkJ1ZmZlcjo6RmxhZ3MsIHVpbnQzMl90JiwgV2ViQ29yZTo6SW50UmVjdCYpIG92ZXJy
aWRlOworICAgIE5pY29zaWE6OlBhaW50aW5nRW5naW5lJiBwYWludGluZ0VuZ2luZSgpIG92ZXJy
aWRlOwogICAgIHZvaWQgc3luY0xheWVyU3RhdGUoV2ViQ29yZTo6Q29vcmRpbmF0ZWRMYXllcklE
LCBXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYpIG92ZXJyaWRlOwogCiAg
ICAgLy8gVXBkYXRlQXRsYXM6OkNsaWVudApAQCAtMTQ0LDEwICsxNDksMTAgQEAgcHJpdmF0ZToK
IAogICAgIFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZSBtX3N0YXRlOwogCi0gICAg
dHlwZWRlZiBIYXNoTWFwPFdlYkNvcmU6OkNvb3JkaW5hdGVkTGF5ZXJJRCwgV2ViQ29yZTo6Q29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyKj4gTGF5ZXJNYXA7Ci0gICAgTGF5ZXJNYXAgbV9yZWdpc3Rl
cmVkTGF5ZXJzOwotICAgIHR5cGVkZWYgSGFzaE1hcDxXZWJDb3JlOjpDb29yZGluYXRlZEltYWdl
QmFja2luZ0lELCBSZWZQdHI8V2ViQ29yZTo6Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc+ID4gSW1h
Z2VCYWNraW5nTWFwOwotICAgIEltYWdlQmFja2luZ01hcCBtX2ltYWdlQmFja2luZ3M7CisgICAg
SGFzaE1hcDxXZWJDb3JlOjpDb29yZGluYXRlZExheWVySUQsIFdlYkNvcmU6OkNvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcio+IG1fcmVnaXN0ZXJlZExheWVyczsKKyAgICBIYXNoTWFwPFdlYkNvcmU6
OkNvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQsIFJlZlB0cjxXZWJDb3JlOjpDb29yZGluYXRlZElt
YWdlQmFja2luZz4+IG1faW1hZ2VCYWNraW5nczsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxOaWNv
c2lhOjpQYWludGluZ0VuZ2luZT4gbV9wYWludGluZ0VuZ2luZTsKICAgICBWZWN0b3I8c3RkOjp1
bmlxdWVfcHRyPFVwZGF0ZUF0bGFzPj4gbV91cGRhdGVBdGxhc2VzOwogICAgIFZlY3Rvcjx1aW50
MzJfdD4gbV9hdGxhc2VzVG9SZW1vdmU7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>