<?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>208597</bug_id>
          
          <creation_ts>2020-03-04 13:40:00 -0800</creation_ts>
          <short_desc>Canvas drawing commands have to be flushed to the GPUProcess in batches</short_desc>
          <delta_ts>2020-03-08 05:17:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Canvas</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="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>jonlee</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1625751</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-03-04 13:40:00 -0800</bug_when>
    <thetext>For GPU canvas rendering, the drawing commands are recorded in a DisplayList. These drawing commands are flushed out to the backend in the GPUProcess only when the backend pixels are needed. Delaying the flushing makes us lose the parallelization that CoreGraphics does when the drawing commands are issued directly to the GraphicsContext.

Flushing the drawing commands earlier makes the commit time to get the pixels updated shorter. But a tradeoff has to be made between sending many messages and delaying the flushing. So we need to send the drawing commands to the GPU Process in &quot;batches&quot;. The goal is to make CoreGraphics starts its work earlier but not to encode, decode and send many messages.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625767</commentid>
    <comment_count>1</comment_count>
      <attachid>392479</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-03-04 14:10:28 -0800</bug_when>
    <thetext>Created attachment 392479
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627060</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-06 18:11:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/60178756&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627187</commentid>
    <comment_count>3</comment_count>
      <attachid>392479</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-03-07 00:20:16 -0800</bug_when>
    <thetext>Comment on attachment 392479
Patch

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

Elegant.

&gt; Source/WebCore/platform/graphics/displaylists/DisplayListObserver.h:31
&gt; +class Observer {

Calling this by the general name DisplayList::Observer seems misleading as it really only observes the recorder. Please consider either giving it a longer name, or making it an inner class (DisplayList::Recorder::Observer).

Personally, I prefer DisplayList::Recorder::Observer because it keeps the two classes close together, rather than being spread to two separate files.

&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteImageBuffer.h:85
&gt; +            RemoteImageBufferMessageHandler::flushDrawingContextAndWaitCommit(displayList);

I like the design of this better than what I was doing in https://bugs.webkit.org/show_bug.cgi?id=208560. I&apos;ve updated that patch to match this design.

&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteImageBuffer.h:94
&gt; +        if (displayList.itemCount() &gt;= DisplayListBatchSize) {

This doesn&apos;t really matter much, but shouldn&apos;t this condition be checked after the item gets appended? The action of appending the item is the trigger which can cause this condition to become true.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627489</commentid>
    <comment_count>4</comment_count>
      <attachid>392945</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-03-08 03:29:37 -0700</bug_when>
    <thetext>Created attachment 392945
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627491</commentid>
    <comment_count>5</comment_count>
      <attachid>392479</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-03-08 03:58:54 -0700</bug_when>
    <thetext>Comment on attachment 392479
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/displaylists/DisplayListObserver.h:31
&gt;&gt; +class Observer {
&gt; 
&gt; Calling this by the general name DisplayList::Observer seems misleading as it really only observes the recorder. Please consider either giving it a longer name, or making it an inner class (DisplayList::Recorder::Observer).
&gt; 
&gt; Personally, I prefer DisplayList::Recorder::Observer because it keeps the two classes close together, rather than being spread to two separate files.

I made Observer an inner class of DisplayList::Recorder.

&gt;&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteImageBuffer.h:94
&gt;&gt; +        if (displayList.itemCount() &gt;= DisplayListBatchSize) {
&gt; 
&gt; This doesn&apos;t really matter much, but shouldn&apos;t this condition be checked after the item gets appended? The action of appending the item is the trigger which can cause this condition to become true.

I wanted to ensure there is a least one DisplayList::Item left after the batching flush context message is sent. This item will guarantee flushDrawingContextAndWaitCommit() is going to be called by flushDrawingContext(). If I make this condition be checked after the item gets appended and this item is the last item, we will need to call flushDrawingContextAndWaitCommit() even if displayList is empty.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627497</commentid>
    <comment_count>6</comment_count>
      <attachid>392945</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-08 05:17:41 -0700</bug_when>
    <thetext>Comment on attachment 392945
Patch

Clearing flags on attachment: 392945

Committed r258104: &lt;https://trac.webkit.org/changeset/258104&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1627498</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-08 05:17:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392479</attachid>
            <date>2020-03-04 14:10:28 -0800</date>
            <delta_ts>2020-03-08 03:29:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208597-20200304141027.patch</filename>
            <type>text/plain</type>
            <size>25522</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3ODE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTA3Y2E2ZGQwMmI5ODA5
OTI0OTYyMzdmNmEzZWIxZGNlM2Q5ZmQ3OC4uYTk5ODVlYjJiZWYxNTQxNDYwNzMxYjEzNzhlMTA2
YjYyODYzOTRmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIwLTAzLTA0ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQ2FudmFz
IGRyYXdpbmcgY29tbWFuZHMgaGF2ZSB0byBiZSBmbHVzaGVkIHRvIHRoZSBHUFVQcm9jZXNzIGlu
IGJhdGNoZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwODU5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE1ha2UgRGlzcGxheUxpc3Q6OkltYWdlQnVmZmVyIGFuIG9ic2VydmVyIG9mIERpc3BsYXlMaXN0
OjpSZWNvcmRlci4KKyAgICAgICAgSXQgY2FuIHRyYWNrIGFkZGluZyBhbiBpdGVtIHRvIHRoZSBy
ZWNvZGVkIERpc3BsYXlMaXN0LgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdERyYXdpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0
OjpEcmF3aW5nQ29udGV4dDo6RHJhd2luZ0NvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SW1hZ2VCdWZmZXIu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZm
ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dE9ic2VydmVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Ok9ic2Vy
dmVyOjp3aWxsQXBwZW5kSXRlbSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OlJlY29yZGVyOjpSZWNvcmRlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6UmVjb3JkZXI6OndpbGxBcHBlbmRJdGVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oOgorCiAyMDIwLTAzLTAzICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0ludGVybmFsc10gSW50cm9k
dWNlIEludGVybmFsczo6dXBkYXRlTGF5b3V0QW5kU3R5bGVSZWN1cnNpdmVseQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCBiZTIyNjNlNWQ4Y2U2ZTdkOWQxMDMxYjU0MmM5ZjFiNGJkYmY0YTc4Li43NDJhYzAxN2Y3NTdi
OGExNWY5YTM1N2M0MmVkMmM3Y2NkOTQwNjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisy
MDIwLTAzLTA0ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisK
KyAgICAgICAgQ2FudmFzIGRyYXdpbmcgY29tbWFuZHMgaGF2ZSB0byBiZSBmbHVzaGVkIHRvIHRo
ZSBHUFVQcm9jZXNzIGluIGJhdGNoZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwODU5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFJlbW90ZUltYWdlQnVmZmVyLCB3aGljaCBpcyBhIHN1cGVyY2xhc3Mg
b2YgRGlzcGxheUxpc3Q6OkltYWdlQnVmZmVyLCB3aWxsCisgICAgICAgIHByZXZlbnQgZ3Jvd2lu
ZyBpdHMgRGlzcGxheUxpc3QgbW9yZSB0aGFuIHNvbWUgbGltaXQgKDUxMiBmb3Igbm93KS4KKyAg
ICAgICAgV2hlbiB0aGlzIGxpbWl0IGlzIHJlYWNoZWQsIHRoZSByZWNvZGVkIERpc3BsYXlMaXN0
SXRlbXMgd2lsbCBiZSBmbHVzaGVkIHRvCisgICAgICAgIHRoZSBHUFVQcm9jZXNzIGluIGEgYmF0
Y2guIEZsdXNoaW5nIHRoaXMgYmF0Y2ggd291bGQgbm90IHJlcXVpcmUgR1BVUHJvY2VzcworICAg
ICAgICB0byByZXBseSBiYWNrLiBSZW1vdGVJbWFnZUJ1ZmZlciB3aWxsIGhhdmUgdG8gcnVuIGEg
ZnVsbCBmbHVzaCBhbnl3YXkKKyAgICAgICAgd2hlbiB0aGUgcGl4ZWxzIGFyZSBuZWVkZWQgYmVj
YXVzZSB0aGUgYmF0Y2ggZmx1c2hpbmcgZG9lcyBub3QgaW5jbHVkZSB0aGUKKyAgICAgICAgY3Vy
cmVudCBEaXNwbGF5TGlzdDo6SXRlbS4KKworICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5Lmg6CisgICAgICAgICogR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmg6CisgICAgICAgICogR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZsdXNoSW1hZ2VCdWZmZXJEcmF3
aW5nQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eTo6Zmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0QW5kQ29tbWl0KToKKyAgICAgICAgKiBH
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oOgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVm
ZmVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZm
ZXJNZXNzYWdlSGFuZGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlQnVmZmVy
TWVzc2FnZUhhbmRsZXI6OmZsdXNoRHJhd2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpmbHVzaERyYXdpbmdDb250ZXh0QW5kV2Fp
dENvbW1pdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VC
dWZmZXJNZXNzYWdlSGFuZGxlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50
OjpjcmVhdGVJbWFnZUJ1ZmZlciBjb25zdCk6CisKIDIwMjAtMDMtMDMgIFJvc3MgS2lyc2xpbmcg
IDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIEZpeCBXaW5D
YWlybyBidWlsZCBmb2xsb3dpbmcgcjI1NzgwMS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkZjAyM2ViZDRlZGRiZjY5MzQwNTcy
MzY5N2FkZTliZjUzOTY4NTg5Li5jNmM5NTkwNGZlNmNiNmE2ZDNmZjdmN2Q5ZmRmMThhMjNiY2Yz
ODUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0yMTM3LDYgKzIxMzcsNyBAQAogCQk3MUVGQ0VEQzIwMkIzOEE5MDBEN0M0MTEg
LyogQW5pbWF0aW9uRWZmZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA3MUVGQ0VENzIwMkIzODhEMDBEN0M0MTEgLyogQW5pbWF0aW9uRWZmZWN0Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzIxNDQz
MzMyMjNFQzhCMDAwRjEyRkY3IC8qIFNWR1Byb3BlcnR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NUVFNTM2MzIyM0IyQTI0MDBGQkE5NDQgLyogU1ZH
UHJvcGVydHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk3MjE0NDMzNDIyM0VDOTE2MDBGMTJGRjcgLyogU1ZHUHJvcGVydHlPd25lci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTVFRTUzNjAyMjNCMkEy
MTAwRkJBOTQ0IC8qIFNWR1Byb3BlcnR5T3duZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3MjI3ODAyMjI0MEY5QkFBMDA3RDM3NkIgLyogRGlz
cGxheUxpc3RPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzIyNzgwMjAyNDBGMzc2NzAwN0QzNzZCIC8qIERpc3BsYXlMaXN0T2JzZXJ2ZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MjI4
M0YwRTIzMEIyNjhDMDBGNUQ4MjggLyogSW1hZ2VQYWludGluZ09wdGlvbnMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyQzE4QTNGMjMwQjA0QjcwMDY4
NDdDNyAvKiBJbWFnZVBhaW50aW5nT3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyNEVEMzMyMUEzQThCMjMwMEY1RjEzQyAvKiBKU0VY
VEJsZW5kTWluTWF4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3MjRFRDMzMDFBM0E4QjIzMDBGNUYxM0MgLyogSlNFWFRCbGVuZE1pbk1heC5oICovOyB9
OwogCQk3MjRFRTU1MDFEQzgwRDdGMDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI0RUU1NEUxREM3RjI1QjAw
QTkxRkZCIC8qIEFjdGl2aXR5U3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtOTU5NSw2ICs5NTk2LDcgQEAKIAkJNzFGRjg1MTgyMkEzRjgx
RjAwNUQ1OTU5IC8qIE5hdmlnYXRvck1heFRvdWNoUG9pbnRzLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBOYXZpZ2F0b3JNYXhUb3VjaFBvaW50cy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTcyMTQ0MzQ1MjI0MEM4QkEwMEYxMkZGNyAvKiBTVkdBbmltYXRlZFZhbHVlUHJv
cGVydHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0ZWRWYWx1ZVByb3BlcnR5Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyMTQ0MzQ2MjI0MENBRDIwMEYxMkZGNyAvKiBTVkdW
YWx1ZVByb3BlcnR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1ZhbHVlUHJvcGVydHkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzIyNzgwMjAyNDBGMzc2NzAwN0QzNzZCIC8qIERpc3Bs
YXlMaXN0T2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzcGxheUxpc3RPYnNlcnZlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjRFRDMyOTFBM0E3RTU0MDBGNUYxM0MgLyog
RVhUQmxlbmRNaW5NYXguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RVhUQmxlbmRNaW5NYXguY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjRFRDMy
QTFBM0E3RTU0MDBGNUYxM0MgLyogRVhUQmxlbmRNaW5NYXguaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRVhUQmxlbmRNaW5NYXguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNzI0RUQzMkIxQTNBN0U1NDAwRjVGMTNDIC8qIEVYVEJsZW5kTWluTWF4LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBFWFRCbGVuZE1pbk1heC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xNjcyNCw2ICsxNjcyNiw3IEBACiAJCQkJNzJFQTA5RjcyM0ZDQ0IzRDAw
ODUwNEE1IC8qIERpc3BsYXlMaXN0SW1hZ2VCdWZmZXIuaCAqLywKIAkJCQkwRkU1RkJDQzFDM0RE
NTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3RJdGVtcy5jcHAgKi8sCiAJCQkJMEZFNUZCQ0QxQzNE
RDUxRTAwMDdBMkNBIC8qIERpc3BsYXlMaXN0SXRlbXMuaCAqLywKKwkJCQk3MjI3ODAyMDI0MEYz
NzY3MDA3RDM3NkIgLyogRGlzcGxheUxpc3RPYnNlcnZlci5oICovLAogCQkJCTBGRTVGQkNFMUMz
REQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdFJlY29yZGVyLmNwcCAqLywKIAkJCQkwRkU1RkJD
RjFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3RSZWNvcmRlci5oICovLAogCQkJCTBGRTVG
QkQwMUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdFJlcGxheWVyLmNwcCAqLywKQEAgLTI5
NzI0LDYgKzI5NzI3LDcgQEAKIAkJCQk1NUFEMDk0MDI0MDg5NjQwMDBERTREMkYgLyogRGlzcGxh
eUxpc3REcmF3aW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTVBRDA5M0UyNDA4OTYz
NTAwREU0RDJGIC8qIERpc3BsYXlMaXN0SW1hZ2VCdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGRTVGQkQ1MUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdEl0ZW1zLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk3MjI3ODAyMjI0MEY5QkFBMDA3RDM3NkIgLyogRGlzcGxheUxpc3RPYnNlcnZl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFNUZCRDcxQzNERDUxRTAwMDdBMkNBIC8qIERpc3Bs
YXlMaXN0UmVjb3JkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTVGQkQ5MUMzREQ1MUUwMDA3
QTJDQSAvKiBEaXNwbGF5TGlzdFJlcGxheWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2Rjc3ODY4
ODIzNDkxQUQ4MDA0RDk2MzYgLyogRGlzcGxheVBhaW50ZXIuaCBpbiBIZWFkZXJzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuY3BwCmluZGV4IGUx
YzY5YjUxYTRiZjg1ZmVmZTFlN2QxYmQ0NTk5NTQ3NDdhYTE5MjkuLmVlM2QxZDY0NTlkZThlOTA5
MmNiMmQxMzdhY2NkYzc5YTk4NzliMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3REcmF3aW5nQ29udGV4dC5jcHAKQEAgLTMzLDkgKzMzLDkgQEAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIG5hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CiAKLURyYXdpbmdDb250ZXh0OjpEcmF3aW5n
Q29udGV4dChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplKQorRHJhd2luZ0NvbnRleHQ6OkRy
YXdpbmdDb250ZXh0KGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIE9ic2VydmVyKiBvYnNl
cnZlcikKICAgICA6IG1fY29udGV4dChbJl0oR3JhcGhpY3NDb250ZXh0JiBkaXNwbGF5TGlzdENv
bnRleHQpIHsKLSAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8UmVjb3JkZXI+KGRpc3BsYXlMaXN0
Q29udGV4dCwgbV9kaXNwbGF5TGlzdCwgR3JhcGhpY3NDb250ZXh0U3RhdGUoKSwgRmxvYXRSZWN0
KHsgfSwgbG9naWNhbFNpemUpLCBBZmZpbmVUcmFuc2Zvcm0oKSk7CisgICAgICAgIHJldHVybiBt
YWtlVW5pcXVlPFJlY29yZGVyPihkaXNwbGF5TGlzdENvbnRleHQsIG1fZGlzcGxheUxpc3QsIEdy
YXBoaWNzQ29udGV4dFN0YXRlKCksIEZsb2F0UmVjdCh7IH0sIGxvZ2ljYWxTaXplKSwgQWZmaW5l
VHJhbnNmb3JtKCksIG9ic2VydmVyKTsKICAgICB9KQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2lu
Z0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmgKaW5kZXggNWQzODVhYWJkMDRhOTRlY2Y4MTAx
NTE2OTI0MDU3YzY5MzM3MzM2NC4uMzVmZmJkZDAxYjkyOGVkZTE2MGYxZDI5YmU2ODY1OWExMzMz
MmU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5o
CkBAIC0zMSw5ICszMSwxMSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIERpc3Bs
YXlMaXN0IHsKIAorY2xhc3MgT2JzZXJ2ZXI7CisKIGNsYXNzIERyYXdpbmdDb250ZXh0IHsKIHB1
YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBEcmF3aW5nQ29udGV4dChjb25zdCBGbG9hdFNpemUm
IGxvZ2ljYWxTaXplKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBEcmF3aW5nQ29udGV4dChjb25zdCBG
bG9hdFNpemUmIGxvZ2ljYWxTaXplLCBPYnNlcnZlciopOwogCiAgICAgR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0KCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxEcmF3aW5nQ29udGV4dCY+KCp0
aGlzKS5tX2NvbnRleHQ7IH0KICAgICBEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QoKSB7IHJldHVy
biBtX2Rpc3BsYXlMaXN0OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SW1hZ2VCdWZm
ZXIuaAppbmRleCBhMDI4N2Y4NWRkYjYwZDdiZGMwMDFmYmJhZTQ3NjRhYWFlM2Q0ZjAwLi5iNDgw
N2NiMGIyNGQ4YjM0ZmYyOGZkNGVlYmY2ZGVjMzExYzYyNTljIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1
ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdEltYWdlQnVmZmVyLmgKQEAgLTI3LDEyICsyNywxMyBAQAogCiAjaW5jbHVk
ZSAiQ29uY3JldGVJbWFnZUJ1ZmZlci5oIgogI2luY2x1ZGUgIkRpc3BsYXlMaXN0RHJhd2luZ0Nv
bnRleHQuaCIKKyNpbmNsdWRlICJEaXNwbGF5TGlzdE9ic2VydmVyLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIG5hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEJh
Y2tlbmRUeXBlPgotY2xhc3MgSW1hZ2VCdWZmZXIgOiBwdWJsaWMgQ29uY3JldGVJbWFnZUJ1ZmZl
cjxCYWNrZW5kVHlwZT4geworY2xhc3MgSW1hZ2VCdWZmZXIgOiBwdWJsaWMgQ29uY3JldGVJbWFn
ZUJ1ZmZlcjxCYWNrZW5kVHlwZT4sIHB1YmxpYyBPYnNlcnZlciB7CiAgICAgdXNpbmcgQmFzZUNv
bmNyZXRlSW1hZ2VCdWZmZXIgPSBDb25jcmV0ZUltYWdlQnVmZmVyPEJhY2tlbmRUeXBlPjsKIAog
cHVibGljOgpAQCAtNDgsMTIgKzQ5LDEyIEBAIHB1YmxpYzoKIAogICAgIEltYWdlQnVmZmVyKHN0
ZDo6dW5pcXVlX3B0cjxCYWNrZW5kVHlwZT4mJiBkYXRhQmFja2VuZCwgY29uc3QgRmxvYXRTaXpl
JiBzaXplKQogICAgICAgICA6IEJhc2VDb25jcmV0ZUltYWdlQnVmZmVyKFdURk1vdmUoZGF0YUJh
Y2tlbmQpKQotICAgICAgICAsIG1fZHJhd2luZ0NvbnRleHQoc2l6ZSkKKyAgICAgICAgLCBtX2Ry
YXdpbmdDb250ZXh0KHNpemUsIHRoaXMpCiAgICAgewogICAgIH0KIAogICAgIEltYWdlQnVmZmVy
KGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSkKLSAgICAgICAgOiBtX2RyYXdpbmdDb250ZXh0KHNpemUp
CisgICAgICAgIDogbV9kcmF3aW5nQ29udGV4dChzaXplLCB0aGlzKQogICAgIHsKICAgICB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdE9ic2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RPYnNlcnZlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkxMzQyZTRj
MDliODFkYmMwY2RiNmVmYzA2ZDZlYmQzNzJiNmFiYmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RPYnNl
cnZlci5oCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNw
YWNlIERpc3BsYXlMaXN0IHsKKworY2xhc3MgT2JzZXJ2ZXIgeworcHVibGljOgorICAgIHZpcnR1
YWwgfk9ic2VydmVyKCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgdm9pZCB3aWxsQXBwZW5kSXRl
bShjb25zdCBJdGVtJikgeyB9OworCitwcm90ZWN0ZWQ6CisgICAgT2JzZXJ2ZXIoKSA9IGRlZmF1
bHQ7Cit9OworCit9IC8vIERpc3BsYXlMaXN0Cit9IC8vIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJl
Y29yZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAppbmRleCAzY2FkMTg4NjEwZmNhMDFmZjg1N2QzMmNm
NmQ2ZWU1MmI2YmFhMzNlLi5jNzM3MzI3NjZlMWI4YzUyYjg5NzNmMDYyNTM5M2U4Yjg5MmRlZWJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCkBAIC0yOCw2ICsy
OCw3IEBACiAKICNpbmNsdWRlICJEaXNwbGF5TGlzdC5oIgogI2luY2x1ZGUgIkRpc3BsYXlMaXN0
SXRlbXMuaCIKKyNpbmNsdWRlICJEaXNwbGF5TGlzdE9ic2VydmVyLmgiCiAjaW5jbHVkZSAiR3Jh
cGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgPHd0Zi9NYXRo
RXh0cmFzLmg+CkBAIC0zNiw5ICszNywxMCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNw
YWNlIERpc3BsYXlMaXN0IHsKIAotUmVjb3JkZXI6OlJlY29yZGVyKEdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCwgRGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBjb25zdCBHcmFwaGljc0NvbnRleHRT
dGF0ZSYgc3RhdGUsIGNvbnN0IEZsb2F0UmVjdCYgaW5pdGlhbENsaXAsIGNvbnN0IEFmZmluZVRy
YW5zZm9ybSYgYmFzZUNUTSkKK1JlY29yZGVyOjpSZWNvcmRlcihHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQsIERpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgY29uc3QgR3JhcGhpY3NDb250ZXh0U3Rh
dGUmIHN0YXRlLCBjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25zdCBBZmZpbmVUcmFu
c2Zvcm0mIGJhc2VDVE0sIE9ic2VydmVyKiBvYnNlcnZlcikKICAgICA6IEdyYXBoaWNzQ29udGV4
dEltcGwoY29udGV4dCwgaW5pdGlhbENsaXAsIGJhc2VDVE0pCiAgICAgLCBtX2Rpc3BsYXlMaXN0
KGRpc3BsYXlMaXN0KQorICAgICwgbV9vYnNlcnZlcihvYnNlcnZlcikKIHsKICAgICBMT0dfV0lU
SF9TVFJFQU0oRGlzcGxheUxpc3RzLCBzdHJlYW0gPDwgIlxuUmVjb3JkaW5nIHdpdGggY2xpcCAi
IDw8IGluaXRpYWxDbGlwKTsKICAgICBtX3N0YXRlU3RhY2suYXBwZW5kKENvbnRleHRTdGF0ZShz
dGF0ZSwgYmFzZUNUTSwgaW5pdGlhbENsaXApKTsKQEAgLTUyLDYgKzU0LDkgQEAgUmVjb3JkZXI6
On5SZWNvcmRlcigpCiAKIHZvaWQgUmVjb3JkZXI6OndpbGxBcHBlbmRJdGVtKGNvbnN0IEl0ZW0m
IGl0ZW0pCiB7CisgICAgaWYgKG1fb2JzZXJ2ZXIpCisgICAgICAgIG1fb2JzZXJ2ZXItPndpbGxB
cHBlbmRJdGVtKGl0ZW0pOworCiAgICAgaWYgKGl0ZW0uaXNEcmF3aW5nSXRlbSgpCiAjaWYgVVNF
KENHKQogICAgICAgICB8fCBpdGVtLnR5cGUoKSA9PSBJdGVtVHlwZTo6QXBwbHlTdHJva2VQYXR0
ZXJuIHx8IGl0ZW0udHlwZSgpID09IEl0ZW1UeXBlOjpBcHBseVN0cm9rZVBhdHRlcm4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdFJlY29yZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNw
bGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oCmluZGV4IGJmNmNhNTVhOWNhNWUxNDM2MTQx
M2FmZmUyYTM4YzA5ODlkZjM0N2QuLjM1MWNhMzRiZTYxNGYzMjFiMTdjMGIyZjRmMDUyMGJhZWMy
M2Q5YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaApAQCAtNDYsMTIg
KzQ2LDEzIEBAIHN0cnVjdCBJbWFnZVBhaW50aW5nT3B0aW9uczsKIG5hbWVzcGFjZSBEaXNwbGF5
TGlzdCB7CiAKIGNsYXNzIERyYXdpbmdJdGVtOworY2xhc3MgT2JzZXJ2ZXI7CiAKIGNsYXNzIFJl
Y29yZGVyIDogcHVibGljIEdyYXBoaWNzQ29udGV4dEltcGwgewogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFJlY29yZGVyKTsKIHB1YmxpYzoK
LSAgICBXRUJDT1JFX0VYUE9SVCBSZWNvcmRlcihHcmFwaGljc0NvbnRleHQmLCBEaXNwbGF5TGlz
dCYsIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiwgY29uc3QgRmxvYXRSZWN0JiBpbml0aWFs
Q2xpcCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJik7CisgICAgV0VCQ09SRV9FWFBPUlQgUmVjb3Jk
ZXIoR3JhcGhpY3NDb250ZXh0JiwgRGlzcGxheUxpc3QmLCBjb25zdCBHcmFwaGljc0NvbnRleHRT
dGF0ZSYsIGNvbnN0IEZsb2F0UmVjdCYgaW5pdGlhbENsaXAsIGNvbnN0IEFmZmluZVRyYW5zZm9y
bSYsIE9ic2VydmVyKiA9IG51bGxwdHIpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgflJl
Y29yZGVyKCk7CiAKICAgICBzaXplX3QgaXRlbUNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9kaXNw
bGF5TGlzdC5pdGVtQ291bnQoKTsgfQpAQCAtMTczLDYgKzE3NCw3IEBAIHByaXZhdGU6CiAgICAg
Q29udGV4dFN0YXRlJiBjdXJyZW50U3RhdGUoKTsKIAogICAgIERpc3BsYXlMaXN0JiBtX2Rpc3Bs
YXlMaXN0OworICAgIE9ic2VydmVyKiBtX29ic2VydmVyOwogCiAgICAgVmVjdG9yPENvbnRleHRT
dGF0ZSwgMzI+IG1fc3RhdGVTdGFjazsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNz
YWdlSGFuZGxlclByb3h5LmgKaW5kZXggMzhmY2RiYmYwYWRhY2RkM2Y5NWExMWQwY2MwNTRjNmI0
NWViMjRhNC4uMTk4NDU4ZTUxYmY1YjBmYmJkY2M0NTVjOTcyNjUxM2ExOTJkMDZlMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVy
TWVzc2FnZUhhbmRsZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuaApAQCAtNDIsNyArNDIs
OCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxl
clByb3h5KCkgPSBkZWZhdWx0OwogCiAgICAgLy8gTWVzc2FnZXMgdG8gYmUgcmVjZWl2ZWQuIFNl
ZSBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW4uCi0gICAgdmlydHVhbCB2
b2lkIGZsdXNoRHJhd2luZ0NvbnRleHQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3Bs
YXlMaXN0JiwgSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZmx1c2hEcmF3aW5nQ29udGV4dChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxh
eUxpc3QmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGZsdXNoRHJhd2luZ0NvbnRleHRBbmRDb21t
aXQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiwgSW1hZ2VCdWZmZXJG
bHVzaElkZW50aWZpZXIpID0gMDsKIAogcHJvdGVjdGVkOgogICAgIFJlbW90ZUltYWdlQnVmZmVy
TWVzc2FnZUhhbmRsZXJQcm94eShSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkmLCBJbWFnZUJ1
ZmZlcklkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKaW5kZXggMDA2MWQ3N2U5Y2Y0NGNh
YmQ0MmM5M2E5NDk2ZjRiYTdkNWE4OGExOS4uNGRjMzNiZGFjMzU2ODJiOTk2ZmRlZmQxNTVlY2I2
MzY3ZmE0YjA5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCkBAIC01NCwxMiArNTQsMTcgQEAgcHVi
bGljOgogcHJpdmF0ZToKICAgICB1c2luZyBCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6Zmx1c2hE
cmF3aW5nQ29udGV4dDsKIAotICAgIHZvaWQgZmx1c2hEcmF3aW5nQ29udGV4dChjb25zdCBXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBJbWFnZUJ1ZmZlckZs
dXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIpIG92ZXJyaWRlCisgICAgdm9pZCBmbHVzaERy
YXdpbmdDb250ZXh0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlz
cGxheUxpc3QpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBpZiAoZGlzcGxheUxpc3QuaXRlbUNv
dW50KCkpIHsKICAgICAgICAgICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZXBsYXllciByZXBs
YXllcihCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6Y29udGV4dCgpLCBkaXNwbGF5TGlzdCk7CiAg
ICAgICAgICAgICByZXBsYXllci5yZXBsYXkoKTsKICAgICAgICAgfQorICAgIH0KKworICAgIHZv
aWQgZmx1c2hEcmF3aW5nQ29udGV4dEFuZENvbW1pdChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBm
bHVzaElkZW50aWZpZXIpIG92ZXJyaWRlCisgICAgeworICAgICAgICBmbHVzaERyYXdpbmdDb250
ZXh0KGRpc3BsYXlMaXN0KTsKICAgICAgICAgbV9iYWNrZW5kLT5mbHVzaENvbnRleHQoKTsKICAg
ICAgICAgY29tbWl0Rmx1c2hDb250ZXh0KGZsdXNoSWRlbnRpZmllcik7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAppbmRleCBlNDMxNzA2YjBlOGZmMDkyZmY4NmYyNjNl
ZGU1NjNlMmRiMTQ2YTIzLi4yMDQxYjRlYjU5ODYxZmFjYmJjNDc5NDM4NzUxNWYyZDFhMzdhN2Qz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcApAQCAtMTAwLDEwICsxMDAsMTYg
QEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJlbGVhc2VJbWFnZUJ1ZmZlcihJ
bWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2UKICAgICBBU1NFUlRfVU5VU0VEKGZvdW5kLCBmb3Vu
ZCk7CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpmbHVzaEltYWdlQnVm
ZmVyRHJhd2luZ0NvbnRleHQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0
JiBkaXNwbGF5TGlzdCwgSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVy
LCBJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQordm9pZCBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dChj
b25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBJbWFn
ZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQogewogICAgIGlmIChhdXRv
IGltYWdlQnVmZmVyID0gbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwLmdldChpbWFnZUJ1
ZmZlcklkZW50aWZpZXIpKQotICAgICAgICBpbWFnZUJ1ZmZlci0+Zmx1c2hEcmF3aW5nQ29udGV4
dChkaXNwbGF5TGlzdCwgZmx1c2hJZGVudGlmaWVyKTsKKyAgICAgICAgaW1hZ2VCdWZmZXItPmZs
dXNoRHJhd2luZ0NvbnRleHQoZGlzcGxheUxpc3QpOworfQorCit2b2lkIFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eTo6Zmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0QW5kQ29tbWl0KGNv
bnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIEltYWdl
QnVmZmVyRmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllciwgSW1hZ2VCdWZmZXJJZGVudGlm
aWVyIGltYWdlQnVmZmVySWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byBpbWFnZUJ1ZmZlciA9
IG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcC5nZXQoaW1hZ2VCdWZmZXJJZGVudGlmaWVy
KSkKKyAgICAgICAgaW1hZ2VCdWZmZXItPmZsdXNoRHJhd2luZ0NvbnRleHRBbmRDb21taXQoZGlz
cGxheUxpc3QsIGZsdXNoSWRlbnRpZmllcik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCmluZGV4IDRmOGE4OWFmYzcyYzE4ZDg0ZjRkYTNh
YTRjZjllZTg4OTI2N2JmZDMuLmVmZDE1ZTY4ZWZlNTE5MjUyODM4NzM0ZmMyNDNiNDJlM2YyOTc5
YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgKQEAgLTY3LDcgKzY3LDggQEAgcHJp
dmF0ZToKICAgICAvLyBNZXNzYWdlcyB0byBiZSByZWNlaXZlZC4KICAgICB2b2lkIGNyZWF0ZUlt
YWdlQnVmZmVyKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIFdlYkNvcmU6
OlJlbmRlcmluZ01vZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFj
ZSwgSW1hZ2VCdWZmZXJJZGVudGlmaWVyKTsKICAgICB2b2lkIHJlbGVhc2VJbWFnZUJ1ZmZlcihJ
bWFnZUJ1ZmZlcklkZW50aWZpZXIpOwotICAgIHZvaWQgZmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdD
b250ZXh0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYsIEltYWdlQnVm
ZmVyRmx1c2hJZGVudGlmaWVyLCBJbWFnZUJ1ZmZlcklkZW50aWZpZXIpOworICAgIHZvaWQgZmx1
c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpE
aXNwbGF5TGlzdCYsIEltYWdlQnVmZmVySWRlbnRpZmllcik7CisgICAgdm9pZCBmbHVzaEltYWdl
QnVmZmVyRHJhd2luZ0NvbnRleHRBbmRDb21taXQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6
OkRpc3BsYXlMaXN0JiwgSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIsIEltYWdlQnVmZmVySWRl
bnRpZmllcik7CiAKICAgICB1c2luZyBJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwID0gSGFz
aE1hcDxJbWFnZUJ1ZmZlcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVJbWFnZUJ1
ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHk+PjsKICAgICBJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVy
TWFwIG1faW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlck1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDY1YThkOTBhNjZmODVlOGY4ODNjMTVl
NGIwZTNiZjgwYzY5NGNjMTguLmZjYjMyZDlmMGJhZjg4NDhjMDZlZDU1M2U1NDMwM2QzYjllZTEx
M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbgpA
QCAtMjUsNyArMjUsOCBAQAogbWVzc2FnZXMgLT4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
IE5vdFJlZkNvdW50ZWQgewogICAgIHZvaWQgQ3JlYXRlSW1hZ2VCdWZmZXIoV2ViQ29yZTo6Rmxv
YXRTaXplIGxvZ2ljYWxTaXplLCBXZWJDb3JlOjpSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUs
IGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSBjb2xvclNwYWNlLCBX
ZWJLaXQ6OkltYWdlQnVmZmVySWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIpCiAgICAg
dm9pZCBSZWxlYXNlSW1hZ2VCdWZmZXIoV2ViS2l0OjpJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1h
Z2VCdWZmZXJJZGVudGlmaWVyKQotICAgIHZvaWQgRmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250
ZXh0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCBkaXNwbGF5TGlzdCwgV2ViS2l0
OjpJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFdlYktpdDo6SW1h
Z2VCdWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllcikKKyAgICB2b2lkIEZsdXNo
SW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxp
c3QgZGlzcGxheUxpc3QsIFdlYktpdDo6SW1hZ2VCdWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVy
SWRlbnRpZmllcikKKyAgICB2b2lkIEZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dEFuZENv
bW1pdChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QgZGlzcGxheUxpc3QsIFdlYktp
dDo6SW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyLCBXZWJLaXQ6Oklt
YWdlQnVmZmVySWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIpCiB9CiAKICNlbmRpZiAv
LyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKaW5kZXggYjdjMGU5YjQ1ZjBk
NzAyNjQ5NGUzY2UwOTVjNDY1NGM5NzlmMjhjOS4uN2EwMWQ2MWRkZTQ0MWQwMDY1MGY1YmQ0NmQ1
MTdkN2I0NDhmOWFjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaApAQCAtODIsOCArODIsMTcgQEAgcHJv
dGVjdGVkOgogICAgIHsKICAgICAgICAgYXV0byYgZGlzcGxheUxpc3QgPSBtX2RyYXdpbmdDb250
ZXh0LmRpc3BsYXlMaXN0KCk7CiAgICAgICAgIGlmIChkaXNwbGF5TGlzdC5pdGVtQ291bnQoKSkg
eworICAgICAgICAgICAgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcjo6Zmx1c2hEcmF3
aW5nQ29udGV4dEFuZFdhaXRDb21taXQoZGlzcGxheUxpc3QpOworICAgICAgICAgICAgZGlzcGxh
eUxpc3QuY2xlYXIoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICB2b2lkIHdpbGxBcHBl
bmRJdGVtKGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtJikgb3ZlcnJpZGUKKyAgICB7
CisgICAgICAgIGNvbnN0ZXhwciBzaXplX3QgRGlzcGxheUxpc3RCYXRjaFNpemUgPSA1MTI7Cisg
ICAgICAgIGF1dG8mIGRpc3BsYXlMaXN0ID0gbV9kcmF3aW5nQ29udGV4dC5kaXNwbGF5TGlzdCgp
OworICAgICAgICBpZiAoZGlzcGxheUxpc3QuaXRlbUNvdW50KCkgPj0gRGlzcGxheUxpc3RCYXRj
aFNpemUpIHsKICAgICAgICAgICAgIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OmZs
dXNoRHJhd2luZ0NvbnRleHQoZGlzcGxheUxpc3QpOwotICAgICAgICAgICAgUmVtb3RlSW1hZ2VC
dWZmZXJNZXNzYWdlSGFuZGxlcjo6d2FpdEZvckNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0
KCk7CiAgICAgICAgICAgICBkaXNwbGF5TGlzdC5jbGVhcigpOwogICAgICAgICB9CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJ
bWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5jcHAKaW5kZXggNWUw
ZDVmNTVmM2UwYzg4ZmJlNWUwZDQ5NTFmZTE5OTJjNjRmZWMwMy4uZmY2YjFhZWY2YTJjY2EyMjRl
OTNjZWI5ZDM3ZGZjMjZlZjUyNTA5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVy
TWVzc2FnZUhhbmRsZXIuY3BwCkBAIC02MiwxMSArNjIsMTkgQEAgdm9pZCBSZW1vdGVJbWFnZUJ1
ZmZlck1lc3NhZ2VIYW5kbGVyOjp3YWl0Rm9yQ29tbWl0SW1hZ2VCdWZmZXJGbHVzaENvbnRleHQo
KQogfQogCiB2b2lkIFJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OmZsdXNoRHJhd2lu
Z0NvbnRleHQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5
TGlzdCkKK3sKKyAgICBpZiAoIW1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKKyAgICAgICAgcmV0
dXJuOworICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+c2VuZChNZXNzYWdlczo6UmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5OjpGbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHQoZGlz
cGxheUxpc3QsIG1faW1hZ2VCdWZmZXJJZGVudGlmaWVyKSwgbV9yZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLT5yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcigpKTsKK30KKwordm9pZCBSZW1vdGVJbWFn
ZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpmbHVzaERyYXdpbmdDb250ZXh0QW5kV2FpdENvbW1pdChj
b25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0KQogewog
ICAgIGlmICghbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kKQogICAgICAgICByZXR1cm47CiAgICAg
bV9zZW50Rmx1c2hJZGVudGlmaWVyID0gSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXI6OmdlbmVy
YXRlKCk7Ci0gICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5zZW5kKE1lc3NhZ2VzOjpSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OkZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dChk
aXNwbGF5TGlzdCwgbV9zZW50Rmx1c2hJZGVudGlmaWVyLCBtX2ltYWdlQnVmZmVySWRlbnRpZmll
ciksIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+cmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIo
KSk7CisgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHk6OkZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dEFuZENv
bW1pdChkaXNwbGF5TGlzdCwgbV9zZW50Rmx1c2hJZGVudGlmaWVyLCBtX2ltYWdlQnVmZmVySWRl
bnRpZmllciksIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+cmVuZGVyaW5nQmFja2VuZElkZW50
aWZpZXIoKSk7CisgICAgd2FpdEZvckNvbW1pdEltYWdlQnVmZmVyRmx1c2hDb250ZXh0KCk7CiB9
CiAKIHZvaWQgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcjo6Y29tbWl0Rmx1c2hDb250
ZXh0KEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllcikKQEAgLTc3LDQg
Kzg1LDMgQEAgdm9pZCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyOjpjb21taXRGbHVz
aENvbnRleHQoSW1hZ2VCdWZmZXJGbHVzaElkZW50aWYKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAog
CiAjZW5kaWYgLy8gRU5BQkxFKEdQVV9QUk9DRVNTKQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRs
ZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VC
dWZmZXJNZXNzYWdlSGFuZGxlci5oCmluZGV4IDNhZTFhOTg3OWVmZDE5M2E5Y2E3MGY4ZDRhM2I5
ODVlNzNhZjM1NjUuLjdmZjVjNzJmMzk4M2IwNDVlZmNkOWJlZTllMzg4ODZkM2MwNTA2MjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1h
Z2VCdWZmZXJNZXNzYWdlSGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlci5oCkBAIC02MCw2ICs2
MCw3IEBAIHByb3RlY3RlZDoKIAogICAgIC8vIE1lc3NhZ2VzIHRvIGJlIHNlbnQuIFNlZSBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVzc2FnZXMuaW4uCiAgICAgdm9pZCBmbHVzaERyYXdp
bmdDb250ZXh0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYpOworICAg
IHZvaWQgZmx1c2hEcmF3aW5nQ29udGV4dEFuZFdhaXRDb21taXQoY29uc3QgV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OkRpc3BsYXlMaXN0Jik7CiAKIHByaXZhdGU6CiAgICAgV2Vha1B0cjxSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kPiBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392945</attachid>
            <date>2020-03-08 03:29:37 -0700</date>
            <delta_ts>2020-03-08 05:17:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208597-20200308032936.patch</filename>
            <type>text/plain</type>
            <size>19082</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4MTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjRlY2FhOTVhM2E0OTI0
MTcxMzhhZmEwOGZkOTJhODNmNTNkMmRlMS4uMTkyNjAxNDVhYjU1YTRmMDFlNzRjNTdhZWJjNjYx
MjRmYTM4NjFlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIwLTAzLTA4ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQ2FudmFz
IGRyYXdpbmcgY29tbWFuZHMgaGF2ZSB0byBiZSBmbHVzaGVkIHRvIHRoZSBHUFVQcm9jZXNzIGlu
IGJhdGNoZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwODU5NworCisgICAgICAgIFJldmlld2VkIGJ5IE15bGVzIEMuIE1heGZpZWxkLgorCisgICAg
ICAgIE1ha2UgRGlzcGxheUxpc3Q6OkltYWdlQnVmZmVyIGFuIG9ic2VydmVyIG9mIERpc3BsYXlM
aXN0OjpSZWNvcmRlci4KKyAgICAgICAgSXQgY2FuIHRyYWNrIGFkZGluZyBhbiBpdGVtIHRvIHRo
ZSByZWNvZGVkIERpc3BsYXlMaXN0LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OkRyYXdpbmdDb250ZXh0OjpEcmF3aW5nQ29udGV4dCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRl
eHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RJbWFnZUJ1ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkltYWdlQnVm
ZmVyOjpJbWFnZUJ1ZmZlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxp
c3Q6OlJlY29yZGVyOjpSZWNvcmRlcik6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
UmVjb3JkZXI6OndpbGxBcHBlbmRJdGVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5oOgorICAgICAgICAoV2ViQ29yZTo6RGlz
cGxheUxpc3Q6OlJlY29yZGVyOjpPYnNlcnZlcjo6fk9ic2VydmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6T2JzZXJ2ZXI6OndpbGxBcHBlbmRJdGVtKToKKwog
MjAyMC0wMy0wNyAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAg
ICBDcmVhdGUgYSBmbGFnIHRvIGRpc2FibGUgaW4tYXBwIGJyb3dzZXIgcXVpcmtzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IDJmOTBmZTQ0NDAxMjcwODY3ODQ3ZDgxMmFhNTRlNDUxMTBhYzdhMmYuLmRiMGE0ZDg3YzQ0
M2U3NTBiMmZhMTliNzhkZDM1MDVlMDRmNjI1YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAK
KzIwMjAtMDMtMDggIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4K
KworICAgICAgICBDYW52YXMgZHJhd2luZyBjb21tYW5kcyBoYXZlIHRvIGJlIGZsdXNoZWQgdG8g
dGhlIEdQVVByb2Nlc3MgaW4gYmF0Y2hlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA4NTk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTXlsZXMgQy4g
TWF4ZmllbGQuCisKKyAgICAgICAgUmVtb3RlSW1hZ2VCdWZmZXIsIHdoaWNoIGlzIGEgc3VwZXJj
bGFzcyBvZiBEaXNwbGF5TGlzdDo6SW1hZ2VCdWZmZXIsIHdpbGwKKyAgICAgICAgcHJldmVudCBn
cm93aW5nIGl0cyBEaXNwbGF5TGlzdCBtb3JlIHRoYW4gc29tZSBsaW1pdCAoNTEyIGZvciBub3cp
LgorICAgICAgICBXaGVuIHRoaXMgbGltaXQgaXMgcmVhY2hlZCwgdGhlIHJlY29kZWQgRGlzcGxh
eUxpc3RJdGVtcyB3aWxsIGJlIGZsdXNoZWQgdG8KKyAgICAgICAgdGhlIEdQVVByb2Nlc3MgaW4g
YSBiYXRjaC4gRmx1c2hpbmcgdGhpcyBiYXRjaCB3b3VsZCBub3QgcmVxdWlyZSBHUFVQcm9jZXNz
CisgICAgICAgIHRvIHJlcGx5IGJhY2suIFJlbW90ZUltYWdlQnVmZmVyIHdpbGwgaGF2ZSB0byBy
dW4gYSBmdWxsIGZsdXNoIGFueXdheQorICAgICAgICB3aGVuIHRoZSBwaXhlbHMgYXJlIG5lZWRl
ZCBiZWNhdXNlIHRoZSBiYXRjaCBmbHVzaGluZyBkb2VzIG5vdCBpbmNsdWRlIHRoZQorICAgICAg
ICBjdXJyZW50IERpc3BsYXlMaXN0OjpJdGVtLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuaDoKKyAgICAgICAgKiBH
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaDoKKyAgICAgICAgKiBH
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Zmx1c2hJbWFnZUJ1ZmZl
ckRyYXdpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5OjpmbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHRBbmRDb21taXQpOgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lmg6Cisg
ICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHku
bWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1h
Z2VCdWZmZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFn
ZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VC
dWZmZXJNZXNzYWdlSGFuZGxlcjo6Zmx1c2hEcmF3aW5nQ29udGV4dCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXI6OmZsdXNoRHJhd2luZ0NvbnRleHRB
bmRXYWl0Q29tbWl0KToKKwogMjAyMC0wMy0wNyAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFw
cGxlLmNvbT4KIAogICAgICAgICBDcmVhdGUgYSBmbGFnIHRvIGRpc2FibGUgaW4tYXBwIGJyb3dz
ZXIgcXVpcmtzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3aW5nQ29udGV4
dC5jcHAKaW5kZXggOWUwODY0MjdkMDI2ZDc4MjBkMWY0MDdjOGRmZjU5Y2M2NTA3ZmE0NC4uYTgz
NmYxMDUyOTBjN2NlZTBlZDY1NjQzM2QzMTJhMDQxMDIwZDMzNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2lu
Z0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmNwcApAQCAtMzMsOSArMzMsOSBAQAog
bmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKIAotRHJhd2luZ0Nv
bnRleHQ6OkRyYXdpbmdDb250ZXh0KGNvbnN0IEZsb2F0U2l6ZSYgbG9naWNhbFNpemUpCitEcmF3
aW5nQ29udGV4dDo6RHJhd2luZ0NvbnRleHQoY29uc3QgRmxvYXRTaXplJiBsb2dpY2FsU2l6ZSwg
UmVjb3JkZXI6Ok9ic2VydmVyKiBvYnNlcnZlcikKICAgICA6IG1fY29udGV4dChbJl0oR3JhcGhp
Y3NDb250ZXh0JiBkaXNwbGF5TGlzdENvbnRleHQpIHsKLSAgICAgICAgcmV0dXJuIG1ha2VVbmlx
dWU8UmVjb3JkZXI+KGRpc3BsYXlMaXN0Q29udGV4dCwgbV9kaXNwbGF5TGlzdCwgR3JhcGhpY3ND
b250ZXh0U3RhdGUoKSwgRmxvYXRSZWN0KHsgfSwgbG9naWNhbFNpemUpLCBBZmZpbmVUcmFuc2Zv
cm0oKSk7CisgICAgICAgIHJldHVybiBtYWtlVW5pcXVlPFJlY29yZGVyPihkaXNwbGF5TGlzdENv
bnRleHQsIG1fZGlzcGxheUxpc3QsIEdyYXBoaWNzQ29udGV4dFN0YXRlKCksIEZsb2F0UmVjdCh7
IH0sIGxvZ2ljYWxTaXplKSwgQWZmaW5lVHJhbnNmb3JtKCksIG9ic2VydmVyKTsKICAgICB9KQog
ewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdERyYXdpbmdDb250ZXh0LmgKaW5k
ZXggYzU3YzEyMmQ0ZDJiMDk1MzliNzkwMDc0N2M1Mzg0Yzc1MGU1NWM5Zi4uZWRmYTMxZWI2Nzg3
MmJjYTFhZTM2OWMzM2E0MzgyNmFmY2U2Y2QxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3REcmF3aW5nQ29udGV4dC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UK
IAogI2luY2x1ZGUgIkRpc3BsYXlMaXN0LmgiCisjaW5jbHVkZSAiRGlzcGxheUxpc3RSZWNvcmRl
ci5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC0zMyw3ICszNCw3IEBAIG5hbWVzcGFjZSBEaXNwbGF5TGlzdCB7CiAKIGNsYXNzIERyYXdp
bmdDb250ZXh0IHsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBEcmF3aW5nQ29udGV4dChj
b25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBEcmF3aW5n
Q29udGV4dChjb25zdCBGbG9hdFNpemUmIGxvZ2ljYWxTaXplLCBSZWNvcmRlcjo6T2JzZXJ2ZXIq
KTsKIAogICAgIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIGNvbnN0
X2Nhc3Q8RHJhd2luZ0NvbnRleHQmPigqdGhpcykubV9jb250ZXh0OyB9CiAgICAgV0VCQ09SRV9F
WFBPUlQgUmVjb3JkZXImIHJlY29yZGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
SW1hZ2VCdWZmZXIuaAppbmRleCBhMDI4N2Y4NWRkYjYwZDdiZGMwMDFmYmJhZTQ3NjRhYWFlM2Q0
ZjAwLi43N2FhMGM4YTk0NDlmYzgwZGRmZWM4ZWI1N2M0MmU2MzA0ZTYyNzM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxp
c3RJbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdEltYWdlQnVmZmVyLmgKQEAgLTMyLDcgKzMyLDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKIAogdGVtcGxhdGU8dHlw
ZW5hbWUgQmFja2VuZFR5cGU+Ci1jbGFzcyBJbWFnZUJ1ZmZlciA6IHB1YmxpYyBDb25jcmV0ZUlt
YWdlQnVmZmVyPEJhY2tlbmRUeXBlPiB7CitjbGFzcyBJbWFnZUJ1ZmZlciA6IHB1YmxpYyBDb25j
cmV0ZUltYWdlQnVmZmVyPEJhY2tlbmRUeXBlPiwgcHVibGljIFJlY29yZGVyOjpPYnNlcnZlciB7
CiAgICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1hZ2VCdWZmZXIgPSBDb25jcmV0ZUltYWdlQnVmZmVy
PEJhY2tlbmRUeXBlPjsKIAogcHVibGljOgpAQCAtNDgsMTIgKzQ4LDEyIEBAIHB1YmxpYzoKIAog
ICAgIEltYWdlQnVmZmVyKHN0ZDo6dW5pcXVlX3B0cjxCYWNrZW5kVHlwZT4mJiBkYXRhQmFja2Vu
ZCwgY29uc3QgRmxvYXRTaXplJiBzaXplKQogICAgICAgICA6IEJhc2VDb25jcmV0ZUltYWdlQnVm
ZmVyKFdURk1vdmUoZGF0YUJhY2tlbmQpKQotICAgICAgICAsIG1fZHJhd2luZ0NvbnRleHQoc2l6
ZSkKKyAgICAgICAgLCBtX2RyYXdpbmdDb250ZXh0KHNpemUsIHRoaXMpCiAgICAgewogICAgIH0K
IAogICAgIEltYWdlQnVmZmVyKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSkKLSAgICAgICAgOiBtX2Ry
YXdpbmdDb250ZXh0KHNpemUpCisgICAgICAgIDogbV9kcmF3aW5nQ29udGV4dChzaXplLCB0aGlz
KQogICAgIHsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNw
cAppbmRleCAyMGJhMDY5YTcwZTA5NGVjMzYxNTVmYzU1YTY3ZGE1ZDM1OWFiYWRiLi41ZTJlMThi
N2U0MzNjMGU3NWIzMjY2NjhiYTlkNGVlYTFlNzg5MDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0UmVjb3JkZXIuY3BwCkBAIC0zNiw5ICszNiwxMCBAQAogbmFtZXNwYWNlIFdlYkNv
cmUgewogbmFtZXNwYWNlIERpc3BsYXlMaXN0IHsKIAotUmVjb3JkZXI6OlJlY29yZGVyKEdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCwgRGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBjb25zdCBHcmFw
aGljc0NvbnRleHRTdGF0ZSYgc3RhdGUsIGNvbnN0IEZsb2F0UmVjdCYgaW5pdGlhbENsaXAsIGNv
bnN0IEFmZmluZVRyYW5zZm9ybSYgYmFzZUNUTSkKK1JlY29yZGVyOjpSZWNvcmRlcihHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQsIERpc3BsYXlMaXN0JiBkaXNwbGF5TGlzdCwgY29uc3QgR3JhcGhp
Y3NDb250ZXh0U3RhdGUmIHN0YXRlLCBjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25z
dCBBZmZpbmVUcmFuc2Zvcm0mIGJhc2VDVE0sIE9ic2VydmVyKiBvYnNlcnZlcikKICAgICA6IEdy
YXBoaWNzQ29udGV4dEltcGwoY29udGV4dCwgaW5pdGlhbENsaXAsIGJhc2VDVE0pCiAgICAgLCBt
X2Rpc3BsYXlMaXN0KGRpc3BsYXlMaXN0KQorICAgICwgbV9vYnNlcnZlcihvYnNlcnZlcikKIHsK
ICAgICBMT0dfV0lUSF9TVFJFQU0oRGlzcGxheUxpc3RzLCBzdHJlYW0gPDwgIlxuUmVjb3JkaW5n
IHdpdGggY2xpcCAiIDw8IGluaXRpYWxDbGlwKTsKICAgICBtX3N0YXRlU3RhY2suYXBwZW5kKENv
bnRleHRTdGF0ZShzdGF0ZSwgYmFzZUNUTSwgaW5pdGlhbENsaXApKTsKQEAgLTU3LDYgKzU4LDkg
QEAgdm9pZCBSZWNvcmRlcjo6cHV0SW1hZ2VEYXRhKFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGlj
YXRpb24gaW5wdXRGb3JtYXQsIGNvbnN0IFcKIAogdm9pZCBSZWNvcmRlcjo6d2lsbEFwcGVuZEl0
ZW0oY29uc3QgSXRlbSYgaXRlbSkKIHsKKyAgICBpZiAobV9vYnNlcnZlcikKKyAgICAgICAgbV9v
YnNlcnZlci0+d2lsbEFwcGVuZEl0ZW0oaXRlbSk7CisKICAgICBpZiAoaXRlbS5pc0RyYXdpbmdJ
dGVtKCkKICNpZiBVU0UoQ0cpCiAgICAgICAgIHx8IGl0ZW0udHlwZSgpID09IEl0ZW1UeXBlOjpB
cHBseVN0cm9rZVBhdHRlcm4gfHwgaXRlbS50eXBlKCkgPT0gSXRlbVR5cGU6OkFwcGx5U3Ryb2tl
UGF0dGVybgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmgKaW5kZXggMzRkOWFi
ZTBmMDc2MWFiZDYyNDVmOGFmYzE5MjVlZjU1OTY2Y2RmMC4uMDNlMDI1ZTVjZTQ4ZGM5MTRjZWRh
NGRmOGNlOWE3NTJiMjZhNTU1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRl
ci5oCkBAIC01MywxMyArNTMsMjAgQEAgY2xhc3MgUmVjb3JkZXIgOiBwdWJsaWMgR3JhcGhpY3ND
b250ZXh0SW1wbCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoUmVjb3JkZXIpOwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIFJlY29y
ZGVyKEdyYXBoaWNzQ29udGV4dCYsIERpc3BsYXlMaXN0JiwgY29uc3QgR3JhcGhpY3NDb250ZXh0
U3RhdGUmLCBjb25zdCBGbG9hdFJlY3QmIGluaXRpYWxDbGlwLCBjb25zdCBBZmZpbmVUcmFuc2Zv
cm0mKTsKKyAgICBjbGFzcyBPYnNlcnZlcjsKKyAgICBXRUJDT1JFX0VYUE9SVCBSZWNvcmRlcihH
cmFwaGljc0NvbnRleHQmLCBEaXNwbGF5TGlzdCYsIGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRl
JiwgY29uc3QgRmxvYXRSZWN0JiBpbml0aWFsQ2xpcCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwg
T2JzZXJ2ZXIqID0gbnVsbHB0cik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+UmVjb3Jk
ZXIoKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcHV0SW1hZ2VEYXRhKEFscGhhUHJlbXVs
dGlwbGljYXRpb24gaW5wdXRGb3JtYXQsIGNvbnN0IEltYWdlRGF0YSYsIGNvbnN0IEludFJlY3Qm
IHNyY1JlY3QsIGNvbnN0IEludFBvaW50JiBkZXN0UG9pbnQpOwogCiAgICAgc2l6ZV90IGl0ZW1D
b3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzcGxheUxpc3QuaXRlbUNvdW50KCk7IH0KIAorICAg
IGNsYXNzIE9ic2VydmVyIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgfk9ic2VydmVy
KCkgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsQXBwZW5kSXRlbShjb25zdCBJdGVtJikg
eyB9OworICAgIH07CisKIHByaXZhdGU6CiAgICAgYm9vbCBoYXNQbGF0Zm9ybUNvbnRleHQoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIFBsYXRmb3JtR3JhcGhpY3NDb250
ZXh0KiBwbGF0Zm9ybUNvbnRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9
CkBAIC0xNzUsNiArMTgyLDcgQEAgcHJpdmF0ZToKICAgICBDb250ZXh0U3RhdGUmIGN1cnJlbnRT
dGF0ZSgpOwogCiAgICAgRGlzcGxheUxpc3QmIG1fZGlzcGxheUxpc3Q7CisgICAgT2JzZXJ2ZXIq
IG1fb2JzZXJ2ZXI7CiAKICAgICBWZWN0b3I8Q29udGV4dFN0YXRlLCAzMj4gbV9zdGF0ZVN0YWNr
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkuaAppbmRl
eCBjNGE0OThhYjhkYWIzNjU2NTU0NTU1NTUyZGY4Njg2YTg1ZjRjMTdmLi5mYWUyODdmNjMyNjU3
MTBmZDkxY2E0ZGE3MDRlOWYxZWQyYTljYzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlclByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVy
TWVzc2FnZUhhbmRsZXJQcm94eS5oCkBAIC00Nyw3ICs0Nyw4IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIH5SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyUHJveHkoKSA9IGRlZmF1bHQ7CiAK
ICAgICAvLyBNZXNzYWdlcyB0byBiZSByZWNlaXZlZC4gU2VlIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eS5tZXNzYWdlcy5pbi4KLSAgICB2aXJ0dWFsIHZvaWQgZmx1c2hEcmF3aW5nQ29udGV4
dChjb25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmLCBJbWFnZUJ1ZmZlckZs
dXNoSWRlbnRpZmllcikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBmbHVzaERyYXdpbmdDb250ZXh0
KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgZmx1c2hEcmF3aW5nQ29udGV4dEFuZENvbW1pdChjb25zdCBXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6RGlzcGxheUxpc3QmLCBJbWFnZUJ1ZmZlckZsdXNoSWRlbnRpZmllcikgPSAwOwog
ICAgIHZpcnR1YWwgUmVmUHRyPFdlYkNvcmU6OkltYWdlRGF0YT4gZ2V0SW1hZ2VEYXRhKFdlYkNv
cmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiBzcmNSZWN0KSBjb25zdCA9IDA7CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94
eS5oCmluZGV4IGRmNDMxMDIzYTEzOWJhMTVhZGIyMWQwMTg5OWYyOTdkZjMxNTU5YjIuLjZjOTZj
ZWI4YWUwNTU2ZWZkMGFhOGMwNDIwMjc4YTMxZGNmMzk5M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHku
aApAQCAtNTUsMTIgKzU1LDE3IEBAIHByaXZhdGU6CiAgICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1h
Z2VCdWZmZXI6OmZsdXNoRHJhd2luZ0NvbnRleHQ7CiAgICAgdXNpbmcgQmFzZUNvbmNyZXRlSW1h
Z2VCdWZmZXI6OnB1dEltYWdlRGF0YTsKIAotICAgIHZvaWQgZmx1c2hEcmF3aW5nQ29udGV4dChj
b25zdCBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBJbWFn
ZUJ1ZmZlckZsdXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIpIG92ZXJyaWRlCisgICAgdm9p
ZCBmbHVzaERyYXdpbmdDb250ZXh0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5
TGlzdCYgZGlzcGxheUxpc3QpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBpZiAoZGlzcGxheUxp
c3QuaXRlbUNvdW50KCkpIHsKICAgICAgICAgICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZXBs
YXllciByZXBsYXllcihCYXNlQ29uY3JldGVJbWFnZUJ1ZmZlcjo6Y29udGV4dCgpLCBkaXNwbGF5
TGlzdCwgdGhpcyk7CiAgICAgICAgICAgICByZXBsYXllci5yZXBsYXkoKTsKICAgICAgICAgfQor
ICAgIH0KKworICAgIHZvaWQgZmx1c2hEcmF3aW5nQ29udGV4dEFuZENvbW1pdChjb25zdCBXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBJbWFnZUJ1ZmZlckZs
dXNoSWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIpIG92ZXJyaWRlCisgICAgeworICAgICAgICBm
bHVzaERyYXdpbmdDb250ZXh0KGRpc3BsYXlMaXN0KTsKICAgICAgICAgbV9iYWNrZW5kLT5mbHVz
aENvbnRleHQoKTsKICAgICAgICAgY29tbWl0Rmx1c2hDb250ZXh0KGZsdXNoSWRlbnRpZmllcik7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAppbmRleCAzOWNjYTg3Njg0
ZWM2Y2Q2ZmI5OTQyODM5ZGQ3ZjcxMDc4MTc1ZTBjLi4wYzlhZjk3NDJiZmI0ZGFkNmU0OTA1MmYx
MWE4ZmU0ZjBkYTVhZmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcApAQCAt
MTA4LDEwICsxMDgsMTYgQEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OmdldElt
YWdlRGF0YShXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIG8KICAgICB9CiB9CiAKLXZv
aWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpmbHVzaEltYWdlQnVmZmVyRHJhd2luZ0Nv
bnRleHQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBkaXNwbGF5TGlz
dCwgSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIgZmx1c2hJZGVudGlmaWVyLCBJbWFnZUJ1ZmZl
cklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQordm9pZCBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHk6OmZsdXNoSW1hZ2VCdWZmZXJEcmF3aW5nQ29udGV4dChjb25zdCBXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QmIGRpc3BsYXlMaXN0LCBJbWFnZUJ1ZmZlcklkZW50
aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQogewogICAgIGlmIChhdXRvIGltYWdlQnVmZmVy
ID0gbV9pbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyTWFwLmdldChpbWFnZUJ1ZmZlcklkZW50aWZp
ZXIpKQotICAgICAgICBpbWFnZUJ1ZmZlci0+Zmx1c2hEcmF3aW5nQ29udGV4dChkaXNwbGF5TGlz
dCwgZmx1c2hJZGVudGlmaWVyKTsKKyAgICAgICAgaW1hZ2VCdWZmZXItPmZsdXNoRHJhd2luZ0Nv
bnRleHQoZGlzcGxheUxpc3QpOworfQorCit2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eTo6Zmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0QW5kQ29tbWl0KGNvbnN0IFdlYkNvcmU6
OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYgZGlzcGxheUxpc3QsIEltYWdlQnVmZmVyRmx1c2hJ
ZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllciwgSW1hZ2VCdWZmZXJJZGVudGlmaWVyIGltYWdlQnVm
ZmVySWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byBpbWFnZUJ1ZmZlciA9IG1faW1hZ2VCdWZm
ZXJNZXNzYWdlSGFuZGxlck1hcC5nZXQoaW1hZ2VCdWZmZXJJZGVudGlmaWVyKSkKKyAgICAgICAg
aW1hZ2VCdWZmZXItPmZsdXNoRHJhd2luZ0NvbnRleHRBbmRDb21taXQoZGlzcGxheUxpc3QsIGZs
dXNoSWRlbnRpZmllcik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eS5oCmluZGV4IDIzMjJkZGU0YjRiYTg3MjA5MGJkZmZhMzViMWQ4NzllMmI5
N2IxZTguLjhmNzZmYTBmYTNmNTMwYmM0MzA3YWE3NTk3NWQ3NzU4YzU2Mzk2NjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5LmgKQEAgLTY5LDcgKzY5LDggQEAgcHJpdmF0ZToKICAgICAv
LyBNZXNzYWdlcyB0byBiZSByZWNlaXZlZC4KICAgICB2b2lkIGNyZWF0ZUltYWdlQnVmZmVyKGNv
bnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgbG9naWNhbFNpemUsIFdlYkNvcmU6OlJlbmRlcmluZ01v
ZGUsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgV2ViQ29yZTo6Q29sb3JTcGFjZSwgSW1hZ2VCdWZm
ZXJJZGVudGlmaWVyKTsKICAgICB2b2lkIHJlbGVhc2VJbWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlcklk
ZW50aWZpZXIpOwotICAgIHZvaWQgZmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0KGNvbnN0
IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYsIEltYWdlQnVmZmVyRmx1c2hJZGVu
dGlmaWVyLCBJbWFnZUJ1ZmZlcklkZW50aWZpZXIpOworICAgIHZvaWQgZmx1c2hJbWFnZUJ1ZmZl
ckRyYXdpbmdDb250ZXh0KGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCYs
IEltYWdlQnVmZmVySWRlbnRpZmllcik7CisgICAgdm9pZCBmbHVzaEltYWdlQnVmZmVyRHJhd2lu
Z0NvbnRleHRBbmRDb21taXQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0
JiwgSW1hZ2VCdWZmZXJGbHVzaElkZW50aWZpZXIsIEltYWdlQnVmZmVySWRlbnRpZmllcik7CiAg
ICAgdm9pZCBnZXRJbWFnZURhdGEoV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBvdXRw
dXRGb3JtYXQsIFdlYkNvcmU6OkludFJlY3Qgc3JjUmVjdCwgSW1hZ2VCdWZmZXJJZGVudGlmaWVy
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKElQQzo6SW1hZ2VEYXRhUmVmZXJlbmNlJiYpPiYmKTsK
IAogICAgIHVzaW5nIEltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXJNYXAgPSBIYXNoTWFwPEltYWdl
QnVmZmVySWRlbnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUltYWdlQnVmZmVyTWVzc2Fn
ZUhhbmRsZXJQcm94eT4+OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkubWVz
c2FnZXMuaW4KaW5kZXggOWEzMWEwNGVmZjBkZTM5ODE1NzIxNzBiNjk3MzQyM2Q1ZmMxNjE1YS4u
Nzk4YzhiNGVkYjU3ZjVhZDA4MmJhODFjMTAwOGIwZGNkZWZkZjE4YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNSw3ICsyNSw4IEBACiBt
ZXNzYWdlcyAtPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkgTm90UmVmQ291bnRlZCB7CiAg
ICAgdm9pZCBDcmVhdGVJbWFnZUJ1ZmZlcihXZWJDb3JlOjpGbG9hdFNpemUgbG9naWNhbFNpemUs
IFdlYkNvcmU6OlJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSwgZmxvYXQgcmVzb2x1dGlvblNj
YWxlLCBXZWJDb3JlOjpDb2xvclNwYWNlIGNvbG9yU3BhY2UsIFdlYktpdDo6SW1hZ2VCdWZmZXJJ
ZGVudGlmaWVyIGltYWdlQnVmZmVySWRlbnRpZmllcikKICAgICB2b2lkIFJlbGVhc2VJbWFnZUJ1
ZmZlcihXZWJLaXQ6OkltYWdlQnVmZmVySWRlbnRpZmllciBpbWFnZUJ1ZmZlcklkZW50aWZpZXIp
Ci0gICAgdm9pZCBGbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHQoV2ViQ29yZTo6RGlzcGxh
eUxpc3Q6OkRpc3BsYXlMaXN0IGRpc3BsYXlMaXN0LCBXZWJLaXQ6OkltYWdlQnVmZmVyRmx1c2hJ
ZGVudGlmaWVyIGZsdXNoSWRlbnRpZmllciwgV2ViS2l0OjpJbWFnZUJ1ZmZlcklkZW50aWZpZXIg
aW1hZ2VCdWZmZXJJZGVudGlmaWVyKQorICAgIHZvaWQgRmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdD
b250ZXh0KFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdCBkaXNwbGF5TGlzdCwgV2Vi
S2l0OjpJbWFnZUJ1ZmZlcklkZW50aWZpZXIgaW1hZ2VCdWZmZXJJZGVudGlmaWVyKQorICAgIHZv
aWQgRmx1c2hJbWFnZUJ1ZmZlckRyYXdpbmdDb250ZXh0QW5kQ29tbWl0KFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpEaXNwbGF5TGlzdCBkaXNwbGF5TGlzdCwgV2ViS2l0OjpJbWFnZUJ1ZmZlckZsdXNo
SWRlbnRpZmllciBmbHVzaElkZW50aWZpZXIsIFdlYktpdDo6SW1hZ2VCdWZmZXJJZGVudGlmaWVy
IGltYWdlQnVmZmVySWRlbnRpZmllcikKICAgICBHZXRJbWFnZURhdGEoZW51bTp1aW50OF90IFdl
YkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gb3V0cHV0Rm9ybWF0LCBXZWJDb3JlOjpJbnRS
ZWN0IHNyY1JlY3QsIFdlYktpdDo6SW1hZ2VCdWZmZXJJZGVudGlmaWVyIGltYWdlQnVmZmVySWRl
bnRpZmllcikgLT4gKElQQzo6SW1hZ2VEYXRhUmVmZXJlbmNlIGltYWdlRGF0YSkgU3luY2hyb25v
dXMKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9SZW1vdGVJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oCmluZGV4IGQ2NDBmZWU4NzNmOWQ0ZmU4YjE4MDIzZTUx
Y2I3ZGVkMWRlN2UzYTkuLmVmZTAxNzQ5NmNhY2I1MGJjMjI5NTI5ZDhmM2E0MzAwYWZlN2FhZTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
SW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L1JlbW90ZUltYWdlQnVmZmVyLmgKQEAgLTEwNCw2ICsxMDQsMTYgQEAgcHJvdGVjdGVkOgogICAg
ICAgICAgICAgZGlzcGxheUxpc3QuY2xlYXIoKTsKICAgICAgICAgfQogICAgIH0KKyAgICAKKyAg
ICB2b2lkIHdpbGxBcHBlbmRJdGVtKGNvbnN0IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtJikg
b3ZlcnJpZGUKKyAgICB7CisgICAgICAgIGNvbnN0ZXhwciBzaXplX3QgRGlzcGxheUxpc3RCYXRj
aFNpemUgPSA1MTI7CisgICAgICAgIGF1dG8mIGRpc3BsYXlMaXN0ID0gbV9kcmF3aW5nQ29udGV4
dC5kaXNwbGF5TGlzdCgpOworICAgICAgICBpZiAoZGlzcGxheUxpc3QuaXRlbUNvdW50KCkgPj0g
RGlzcGxheUxpc3RCYXRjaFNpemUpIHsKKyAgICAgICAgICAgIFJlbW90ZUltYWdlQnVmZmVyTWVz
c2FnZUhhbmRsZXI6OmZsdXNoRHJhd2luZ0NvbnRleHQoZGlzcGxheUxpc3QpOworICAgICAgICAg
ICAgZGlzcGxheUxpc3QuY2xlYXIoKTsKKyAgICAgICAgfQorICAgIH0KIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxl
ci5jcHAKaW5kZXggMWI4NjE4NTFjOWI3YTZlYTYyODI1NzExNjQ3OWZlY2QyMDQ1MjE2ZS4uMzIy
MDgxZTAyODA4Y2JjNTM4MTE2MzVkZjQzMDQyNjdkNGZlZDViNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlck1lc3NhZ2VI
YW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZUltYWdlQnVmZmVyTWVzc2FnZUhhbmRsZXIuY3BwCkBAIC03Myw3ICs3Myw4IEBAIHZvaWQg
UmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcjo6Zmx1c2hEcmF3aW5nQ29udGV4dChjb25z
dCBXZWJDb3JlOjpEaXNwbGF5CiB7CiAgICAgaWYgKCFtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQp
CiAgICAgICAgIHJldHVybjsKLSAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPnNlbmQoTWVz
c2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Rmx1c2hJbWFnZUJ1ZmZlckRyYXdp
bmdDb250ZXh0KGRpc3BsYXlMaXN0LCBtX3NlbnRGbHVzaElkZW50aWZpZXIsIG1faW1hZ2VCdWZm
ZXJJZGVudGlmaWVyKSwgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kLT5yZW5kZXJpbmdCYWNrZW5k
SWRlbnRpZmllcigpKTsKKyAgICAKKyAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPnNlbmQo
TWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6Rmx1c2hJbWFnZUJ1ZmZlckRy
YXdpbmdDb250ZXh0KGRpc3BsYXlMaXN0LCBtX2ltYWdlQnVmZmVySWRlbnRpZmllciksIG1fcmVt
b3RlUmVuZGVyaW5nQmFja2VuZC0+cmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIoKSk7CiB9CiAK
IHZvaWQgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcjo6Zmx1c2hEcmF3aW5nQ29udGV4
dEFuZFdhaXRDb21taXQoY29uc3QgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRpc3BsYXlMaXN0JiBk
aXNwbGF5TGlzdCkKQEAgLTgxLDcgKzgyLDcgQEAgdm9pZCBSZW1vdGVJbWFnZUJ1ZmZlck1lc3Nh
Z2VIYW5kbGVyOjpmbHVzaERyYXdpbmdDb250ZXh0QW5kV2FpdENvbW1pdChjb25zdCBXZWIKICAg
ICBpZiAoIW1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZCkKICAgICAgICAgcmV0dXJuOwogICAgIG1f
c2VudEZsdXNoSWRlbnRpZmllciA9IEltYWdlQnVmZmVyRmx1c2hJZGVudGlmaWVyOjpnZW5lcmF0
ZSgpOwotICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+c2VuZChNZXNzYWdlczo6UmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5OjpGbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHQoZGlz
cGxheUxpc3QsIG1fc2VudEZsdXNoSWRlbnRpZmllciwgbV9pbWFnZUJ1ZmZlcklkZW50aWZpZXIp
LCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPnJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKCkp
OworICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZC0+c2VuZChNZXNzYWdlczo6UmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5OjpGbHVzaEltYWdlQnVmZmVyRHJhd2luZ0NvbnRleHRBbmRDb21t
aXQoZGlzcGxheUxpc3QsIG1fc2VudEZsdXNoSWRlbnRpZmllciwgbV9pbWFnZUJ1ZmZlcklkZW50
aWZpZXIpLCBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmQtPnJlbmRlcmluZ0JhY2tlbmRJZGVudGlm
aWVyKCkpOwogICAgIHdhaXRGb3JDb21taXRJbWFnZUJ1ZmZlckZsdXNoQ29udGV4dCgpOwogfQog
CkBAIC05Myw0ICs5NCwzIEBAIHZvaWQgUmVtb3RlSW1hZ2VCdWZmZXJNZXNzYWdlSGFuZGxlcjo6
Y29tbWl0Rmx1c2hDb250ZXh0KEltYWdlQnVmZmVyRmx1c2hJZGVudGlmCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShHUFVfUFJPQ0VTUykKLQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>