<?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>194294</bug_id>
          
          <creation_ts>2019-02-05 10:51:20 -0800</creation_ts>
          <short_desc>Add a new DownloadMap type that manages taking an assertion automatically</short_desc>
          <delta_ts>2019-02-05 13:28:30 -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>WebKit Misc.</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="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1502426</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2019-02-05 10:51:20 -0800</bug_when>
    <thetext>Add a new DownloadMap type that manages taking an assertion automatically

This is to prevent mistakes in the future similar to https://bugs.webkit.org/show_bug.cgi?id=194239#c8</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502432</commentid>
    <comment_count>1</comment_count>
      <attachid>361200</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2019-02-05 10:53:58 -0800</bug_when>
    <thetext>Created attachment 361200
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502440</commentid>
    <comment_count>2</comment_count>
      <attachid>361203</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2019-02-05 11:04:45 -0800</bug_when>
    <thetext>Created attachment 361203
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502452</commentid>
    <comment_count>3</comment_count>
      <attachid>361203</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-02-05 11:59:16 -0800</bug_when>
    <thetext>Comment on attachment 361203
Patch

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

&gt; Source/WebKit/NetworkProcess/Downloads/DownloadMap.h:40
&gt; +#if !ENABLE(TAKE_DOWNLOAD_ASSERTION)
&gt; +typedef HashMap&lt;DownloadID, std::unique_ptr&lt;Download&gt;&gt; DownloadMap;
&gt; +#else
&gt; +
&gt; +class DownloadMap {

I think it would be nicer to always use the DownloadMap class, and only protect the parts about assertion taking with ENABLE(TAKE_DOWNLOAD_ASSERTION)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502462</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2019-02-05 12:27:24 -0800</bug_when>
    <thetext>(In reply to Alex Christensen from comment #3)
&gt; Comment on attachment 361203 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=361203&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/Downloads/DownloadMap.h:40
&gt; &gt; +#if !ENABLE(TAKE_DOWNLOAD_ASSERTION)
&gt; &gt; +typedef HashMap&lt;DownloadID, std::unique_ptr&lt;Download&gt;&gt; DownloadMap;
&gt; &gt; +#else
&gt; &gt; +
&gt; &gt; +class DownloadMap {
&gt; 
&gt; I think it would be nicer to always use the DownloadMap class, and only
&gt; protect the parts about assertion taking with ENABLE(TAKE_DOWNLOAD_ASSERTION)

Why? Always using it adds to size and runtime unnecessarily.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502464</commentid>
    <comment_count>5</comment_count>
      <attachid>361203</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-02-05 12:28:30 -0800</bug_when>
    <thetext>Comment on attachment 361203
Patch

That way we will be able to add functions to DownloadMap that are not in HashMap in the future.  We can also cross that bridge if/when we come to it.  r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502489</commentid>
    <comment_count>6</comment_count>
      <attachid>361203</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-05 13:27:27 -0800</bug_when>
    <thetext>Comment on attachment 361203
Patch

Clearing flags on attachment: 361203

Committed r240990: &lt;https://trac.webkit.org/changeset/240990&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502490</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-05 13:27:28 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502491</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-02-05 13:28:30 -0800</bug_when>
    <thetext>&lt;rdar://problem/47829082&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>361200</attachid>
            <date>2019-02-05 10:53:58 -0800</date>
            <delta_ts>2019-02-05 10:54:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194294-20190205105357.patch</filename>
            <type>text/plain</type>
            <size>16458</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwOTc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDlhNjZiYzE3OTg1ZTY4MDhj
YmQ2ZDNiMmI2NWQ0OWI3ZDhhYTViMjUuLjc0ZjAzNDhlZDA2N2NjZDFmYjg1YzQ1NTRjMTBlOTZk
YWM3NTNjMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjggQEAKKzIwMTktMDItMDUgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIG5ldyBEb3dubG9hZE1h
cCB0eXBlIHRoYXQgbWFuYWdlcyB0YWtpbmcgYW4gYXNzZXJ0aW9uIGF1dG9tYXRpY2FsbHkuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQyOTQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZiB3ZSBkb24n
dCBuZWVkIHRoZSBkb3dubG9hZCBhc3NlcnRpb24sIHdlIHVzZSBhIHZhbmlsbGEgSGFzaE1hcCBs
aWtlIHRvZGF5LgorICAgICAgICBJZiB3ZSBuZWVkIHRoZSBkb3dubG9hZCBhc3NlcnRpb24sIHdl
IHVzZSB0aGUgbmV3IERvd25sb2FkTWFwIGNsYXNzIGluc3RlYWQuCisKKyAgICAgICAgVGhlIG5l
dyBEb3dubG9hZE1hcCBpcyBhIHdyYXBwZXIgYXJvdW5kIGEgSGFzaE1hcCB0aGF0IGFsc28gY3Jl
YXRlcy9kZXN0cm95cyB0aGUgYXNzZXJ0aW9uIGFzIG5lZWRlZC4KKworICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpEb3dubG9hZE1hbmFnZXI6OmRhdGFUYXNrQmVjYW1lRG93bmxvYWRUYXNrKToKKyAgICAgICAg
KFdlYktpdDo6RG93bmxvYWRNYW5hZ2VyOjpkb3dubG9hZEZpbmlzaGVkKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmg6CisKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYXAuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6RG93bmxvYWRNYXA6OmdldCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkRvd25s
b2FkTWFwOjppc0VtcHR5IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRNYXA6OnNp
emUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZE1hcDo6Y29udGFpbnMgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZE1hcDo6YWRkKToKKyAgICAgICAgKFdlYktpdDo6
RG93bmxvYWRNYXA6OnJlbW92ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRz
L0Rvd25sb2FkTWFwLmg6IEFkZGVkLgorCisgICAgICAgICogU291cmNlcy50eHQ6CisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW06CisgICAgICAgIChXZWJL
aXQ6OlByb2Nlc3NBc3NlcnRpb246OlByb2Nlc3NBc3NlcnRpb24pOgorCisgICAgICAgICogV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKKzIwMTktMDItMDQgIEJyYWR5IEVpZHNv
biAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIFRha2UgYWRkaXRpb25hbCBwcm9jZXNz
IGFzc2VydGlvbiB3aGlsZSBkb3dubG9hZGluZy4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ3
NzQxMzU2PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDIz
OQorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAgIFdoZW4gdGhl
IGZpcnN0IGRvd25sb2FkIHN0YXJ0cywgZ3JhYiB0aGlzIG5ldyBhc3NlcnRpb24uCisgICAgICAg
IFdoZW4gdGhlIGxhc3QgZG93bmxvYWQgZW5kcywgcmVsZWFzZSBpdC4KKworICAgICAgICAqIENv
bmZpZ3VyYXRpb25zL05ldHdvcmstaU9TLmVudGl0bGVtZW50czoKKworICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpEb3dubG9hZE1hbmFnZXI6OmRhdGFUYXNrQmVjYW1lRG93bmxvYWRUYXNrKToKKyAgICAgICAg
KFdlYktpdDo6RG93bmxvYWRNYW5hZ2VyOjpkb3dubG9hZEZpbmlzaGVkKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmg6CisKKyAgICAgICAgKiBQ
bGF0Zm9ybS9zcGkvaW9zL0Fzc2VydGlvblNlcnZpY2VzU1BJLmg6CisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3Nl
cnRpb246OlByb2Nlc3NBc3NlcnRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Qcm9jZXNzQXNz
ZXJ0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRpb246OlByb2Nlc3NBc3Nl
cnRpb24pOgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZGlkU2V0QXNzZXJ0aW9uU3RhdGUpOgorCisg
ICAgICAgICogVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tOgorICAgICAgICAo
V2ViS2l0OjpmbGFnc0ZvclN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6cmVhc29uRm9yU3RhdGUp
OgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzQXNzZXJ0aW9uOjpQcm9jZXNzQXNzZXJ0aW9uKToK
KwogMjAxOS0wMi0wNSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFByb3RlY3QgZ2xvYmFsV2ViU29ja2V0U3RyZWFtTWFwIHdpdGggYSBMb2Nr
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3du
bG9hZE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMv
RG93bmxvYWRNYW5hZ2VyLmNwcAppbmRleCBkYTM3N2I4OTQ2OTk2MzMwNzIwNWZmZDAxZjZiMmI2
MWY3YjczOTY3Li40ZWJmMzJiNGUyOWJmZjMzNThiNjY4NWIwM2YzYmEwZWEzYTAxYTcwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1h
bmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rv
d25sb2FkTWFuYWdlci5jcHAKQEAgLTcxLDEzICs3MSw2IEBAIHZvaWQgRG93bmxvYWRNYW5hZ2Vy
OjpkYXRhVGFza0JlY2FtZURvd25sb2FkVGFzayhEb3dubG9hZElEIGRvd25sb2FkSUQsIHN0ZDo6
dW5pCiAgICAgQVNTRVJUKCFtX2Rvd25sb2Fkcy5jb250YWlucyhkb3dubG9hZElEKSk7CiAgICAg
bV9kb3dubG9hZHNBZnRlckRlc3RpbmF0aW9uRGVjaWRlZC5yZW1vdmUoZG93bmxvYWRJRCk7CiAg
ICAgbV9kb3dubG9hZHMuYWRkKGRvd25sb2FkSUQsIFdURk1vdmUoZG93bmxvYWQpKTsKLQotI2lm
IEVOQUJMRShUQUtFX0RPV05MT0FEX0FTU0VSVElPTikKLSAgICBpZiAobV9kb3dubG9hZHMuc2l6
ZSgpID09IDEpIHsKLSAgICAgICAgQVNTRVJUKCFtX2Rvd25sb2FkQXNzZXJ0aW9uKTsKLSAgICAg
ICAgbV9kb3dubG9hZEFzc2VydGlvbiA9IHN0ZDo6bWFrZV91bmlxdWU8UHJvY2Vzc0Fzc2VydGlv
bj4oZ2V0cGlkKCksICJXZWJLaXQgZG93bmxvYWRzIl9zLCBBc3NlcnRpb25TdGF0ZTo6RG93bmxv
YWQpOwotICAgIH0KLSNlbmRpZgogfQogCiB2b2lkIERvd25sb2FkTWFuYWdlcjo6Y29udGludWVX
aWxsU2VuZFJlcXVlc3QoRG93bmxvYWRJRCBkb3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmJiByZXF1ZXN0KQpAQCAtMTgwLDEyICsxNzMsNiBAQCB2b2lkIERvd25sb2FkTWFuYWdl
cjo6ZG93bmxvYWRGaW5pc2hlZChEb3dubG9hZCogZG93bmxvYWQpCiAgICAgQVNTRVJUKG1fZG93
bmxvYWRzLmNvbnRhaW5zKGRvd25sb2FkLT5kb3dubG9hZElEKCkpKTsKICAgICBtX2Rvd25sb2Fk
cy5yZW1vdmUoZG93bmxvYWQtPmRvd25sb2FkSUQoKSk7CiAgICAgCi0jaWYgRU5BQkxFKFRBS0Vf
RE9XTkxPQURfQVNTRVJUSU9OKQotICAgIGlmIChtX2Rvd25sb2Fkcy5pc0VtcHR5KCkpIHsKLSAg
ICAgICAgQVNTRVJUKG1fZG93bmxvYWRBc3NlcnRpb24pOwotICAgICAgICBtX2Rvd25sb2FkQXNz
ZXJ0aW9uID0gbnVsbHB0cjsKLSAgICB9Ci0jZW5kaWYKIH0KIAogdm9pZCBEb3dubG9hZE1hbmFn
ZXI6OmRpZENyZWF0ZURvd25sb2FkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmgKaW5kZXggZmZlMWFkMDQ1YTk1
ZjI0NmNlZmZjNjBhMzUzNTQ5Yjc1YjkyNmZlMy4uZmYxMWRmYjg2YTc0YjcxNmM5M2JlODcwMjZh
NmEyYTY1NDdhYTQ5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9E
b3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmgKQEAgLTI2LDkgKzI2LDkgQEAKICNwcmFn
bWEgb25jZQogCiAjaW5jbHVkZSAiRG93bmxvYWRJRC5oIgorI2luY2x1ZGUgIkRvd25sb2FkTWFw
LmgiCiAjaW5jbHVkZSAiTmV0d29ya0RhdGFUYXNrLmgiCiAjaW5jbHVkZSAiUGVuZGluZ0Rvd25s
b2FkLmgiCi0jaW5jbHVkZSAiUHJvY2Vzc0Fzc2VydGlvbi5oIgogI2luY2x1ZGUgIlNhbmRib3hF
eHRlbnNpb24uaCIKICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KQEAgLTExMywxMSArMTEzLDcgQEAgcHJpdmF0ZToKICAgICBIYXNo
TWFwPERvd25sb2FkSUQsIHN0ZDo6dW5pcXVlX3B0cjxQZW5kaW5nRG93bmxvYWQ+PiBtX3BlbmRp
bmdEb3dubG9hZHM7CiAgICAgSGFzaE1hcDxEb3dubG9hZElELCBzdGQ6OnBhaXI8UmVmUHRyPE5l
dHdvcmtEYXRhVGFzaz4sIFJlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXI+PiBtX2Rvd25sb2Fkc1dh
aXRpbmdGb3JEZXN0aW5hdGlvbjsKICAgICBIYXNoTWFwPERvd25sb2FkSUQsIFJlZlB0cjxOZXR3
b3JrRGF0YVRhc2s+PiBtX2Rvd25sb2Fkc0FmdGVyRGVzdGluYXRpb25EZWNpZGVkOwotICAgIEhh
c2hNYXA8RG93bmxvYWRJRCwgc3RkOjp1bmlxdWVfcHRyPERvd25sb2FkPj4gbV9kb3dubG9hZHM7
Ci0KLSNpZiBFTkFCTEUoVEFLRV9ET1dOTE9BRF9BU1NFUlRJT04pCi0gICAgc3RkOjp1bmlxdWVf
cHRyPFByb2Nlc3NBc3NlcnRpb24+IG1fZG93bmxvYWRBc3NlcnRpb247Ci0jZW5kaWYKKyAgICBE
b3dubG9hZE1hcCBtX2Rvd25sb2FkczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRN
YXAuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRN
YXAuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmIyYmFhMzMyNjMxOTNhYWY2NThhMjFkYmIzMDU1ODExYzczMzk3
MWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25s
b2Fkcy9Eb3dubG9hZE1hcC5jcHAKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEb3dubG9hZE1hcC5oIgorCisjaWYgRU5BQkxFKFRB
S0VfRE9XTkxPQURfQVNTRVJUSU9OKQorCisjaW5jbHVkZSAiRG93bmxvYWQuaCIKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKKworRG93bmxvYWQqIERvd25sb2FkTWFwOjpnZXQoRG93bmxvYWRJRCBk
b3dubG9hZElEKSBjb25zdAoreworICAgIHJldHVybiBtX2Rvd25sb2Fkcy5nZXQoZG93bmxvYWRJ
RCk7Cit9CisKK2Jvb2wgRG93bmxvYWRNYXA6OmlzRW1wdHkoKSBjb25zdAoreworICAgIHJldHVy
biBtX2Rvd25sb2Fkcy5pc0VtcHR5KCk7Cit9CisKK3VpbnQ2NF90IERvd25sb2FkTWFwOjpzaXpl
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9kb3dubG9hZHMuc2l6ZSgpOworfQorCitib29sIERv
d25sb2FkTWFwOjpjb250YWlucyhEb3dubG9hZElEIGRvd25sb2FkSUQpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fZG93bmxvYWRzLmNvbnRhaW5zKGRvd25sb2FkSUQpOworfQorCitEb3dubG9hZE1h
cDo6RG93bmxvYWRNYXBUeXBlOjpBZGRSZXN1bHQgRG93bmxvYWRNYXA6OmFkZChEb3dubG9hZElE
IGRvd25sb2FkSUQsIHN0ZDo6dW5pcXVlX3B0cjxEb3dubG9hZD4mJiBkb3dubG9hZCkKK3sKKyAg
ICBhdXRvIHJlc3VsdCA9IG1fZG93bmxvYWRzLmFkZChkb3dubG9hZElELCBXVEZNb3ZlKGRvd25s
b2FkKSk7CisgICAgaWYgKG1fZG93bmxvYWRzLnNpemUoKSA9PSAxKSB7CisgICAgICAgIEFTU0VS
VCghbV9kb3dubG9hZEFzc2VydGlvbik7CisgICAgICAgIG1fZG93bmxvYWRBc3NlcnRpb24gPSBz
dGQ6Om1ha2VfdW5pcXVlPFByb2Nlc3NBc3NlcnRpb24+KGdldHBpZCgpLCAiV2ViS2l0IGRvd25s
b2FkcyJfcywgQXNzZXJ0aW9uU3RhdGU6OkRvd25sb2FkKTsKKyAgICB9CisKKyAgICByZXR1cm4g
cmVzdWx0OworfQorCitib29sIERvd25sb2FkTWFwOjpyZW1vdmUoRG93bmxvYWRJRCBkb3dubG9h
ZElEKQoreworICAgIGF1dG8gcmVzdWx0ID0gbV9kb3dubG9hZHMucmVtb3ZlKGRvd25sb2FkSUQp
OworICAgIGlmIChtX2Rvd25sb2Fkcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgQVNTRVJUKG1fZG93
bmxvYWRBc3NlcnRpb24pOworICAgICAgICBtX2Rvd25sb2FkQXNzZXJ0aW9uID0gbnVsbHB0cjsK
KyAgICB9CisgICAgCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoVEFLRV9ET1dOTE9BRF9BU1NFUlRJT04pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hcC5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYXAuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45ODQzYTgzZDllOGJjYWQyM2E3MWQ1NTRkN2I1ZjdmZGJkYWNjMTc3Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93
bmxvYWRNYXAuaApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJEb3dubG9hZElELmgiCisjaW5jbHVkZSAiUHJvY2Vzc0Fzc2VydGlvbi5oIgor
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBE
b3dubG9hZDsKKworI2lmICFFTkFCTEUoVEFLRV9ET1dOTE9BRF9BU1NFUlRJT04pCit0eXBlZGVm
IEhhc2hNYXA8RG93bmxvYWRJRCwgc3RkOjp1bmlxdWVfcHRyPERvd25sb2FkPj4gRG93bmxvYWRN
YXA7CisjZWxzZQorCitjbGFzcyBEb3dubG9hZE1hcCB7CitwdWJsaWM6CisgICAgdHlwZWRlZiBI
YXNoTWFwPERvd25sb2FkSUQsIHN0ZDo6dW5pcXVlX3B0cjxEb3dubG9hZD4+IERvd25sb2FkTWFw
VHlwZTsKKworICAgIERvd25sb2FkKiBnZXQoRG93bmxvYWRJRCkgY29uc3Q7CisgICAgYm9vbCBp
c0VtcHR5KCkgY29uc3Q7CisgICAgdWludDY0X3Qgc2l6ZSgpIGNvbnN0OworICAgIGJvb2wgY29u
dGFpbnMoRG93bmxvYWRJRCkgY29uc3Q7CisKKyAgICBEb3dubG9hZE1hcFR5cGU6OkFkZFJlc3Vs
dCBhZGQoRG93bmxvYWRJRCwgc3RkOjp1bmlxdWVfcHRyPERvd25sb2FkPiYmKTsKKyAgICBib29s
IHJlbW92ZShEb3dubG9hZElEKTsKKworcHJpdmF0ZToKKyAgICBEb3dubG9hZE1hcFR5cGUgbV9k
b3dubG9hZHM7CisgICAgc3RkOjp1bmlxdWVfcHRyPFByb2Nlc3NBc3NlcnRpb24+IG1fZG93bmxv
YWRBc3NlcnRpb247Cit9OworCisjZW5kaWYgLy8gIUVOQUJMRShUQUtFX0RPV05MT0FEX0FTU0VS
VElPTikKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCBkMjU5NWQ3NmIz
ZTlkMjc0MDBjNTcwZjFlODFhZGFjMTA3MzExMzMyLi5iMzlkMjY0YzhmOGY2NTc2NDM5Y2RjZGFm
NDVjN2NhYTcxZTViOWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0Cisr
KyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTQ4LDYgKzQ4LDcgQEAgTmV0d29ya1By
b2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLmNwcAogCiBOZXR3b3JrUHJvY2Vzcy9Eb3du
bG9hZHMvRG93bmxvYWQuY3BwCiBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5h
Z2VyLmNwcAorTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFwLmNwcAogTmV0d29y
a1Byb2Nlc3MvRG93bmxvYWRzL1BlbmRpbmdEb3dubG9hZC5jcHAKIAogTmV0d29ya1Byb2Nlc3Mv
RmlsZUFQSS9OZXR3b3JrQmxvYlJlZ2lzdHJ5LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQppbmRleCA0MDg5OTVkOTRjNTQ5M2M0
NzRjMzliN2UyM2UxNmE2NTVlMTQzYjc3Li5hYzBkNmZjNjFiNDJjYTZkMzBmNGI5MDYxMjk3MTY0
ZWEzNTcxMDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vz
c0Fzc2VydGlvbklPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vz
c0Fzc2VydGlvbklPUy5tbQpAQCAtMTkyLDcgKzE5Miw3IEBAIFByb2Nlc3NBc3NlcnRpb246OlBy
b2Nlc3NBc3NlcnRpb24ocGlkX3QgcGlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIEFzc2VydGlvblN0
YXRlCiAgICAgICAgICAgICB9KTsKICAgICAgICAgfQogICAgIH07Ci0gICAgUkVMRUFTRV9MT0co
UHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFByb2Nlc3NBc3NlcnRpb24oKSBQSUQgJWQgYWNxdWly
aW5nIGFzc2VydGlvbiBmb3IgcHJvY2VzcyB3aXRoIFBJRCAlZCIsIHRoaXMsIGdldHBpZCgpLCBw
aWQpOworICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBQcm9jZXNzQXNz
ZXJ0aW9uKCkgUElEICVkIGFjcXVpcmluZyBhc3NlcnRpb24gZm9yIHByb2Nlc3Mgd2l0aCBQSUQg
JWQsIG5hbWUgJyVzJyIsIHRoaXMsIGdldHBpZCgpLCBwaWQsIG5hbWUudXRmOCgpLmRhdGEoKSk7
CiAgICAgCiAgICAgbV9hc3NlcnRpb24gPSBhZG9wdE5TKFtbQktTUHJvY2Vzc0Fzc2VydGlvbiBh
bGxvY10gaW5pdFdpdGhQSUQ6cGlkIGZsYWdzOmZsYWdzRm9yU3RhdGUoYXNzZXJ0aW9uU3RhdGUp
IHJlYXNvbjpyZWFzb25Gb3JTdGF0ZShhc3NlcnRpb25TdGF0ZSkgbmFtZTooTlNTdHJpbmcgKilu
YW1lIHdpdGhIYW5kbGVyOmhhbmRsZXJdKTsKICAgICBtX2Fzc2VydGlvbi5nZXQoKS5pbnZhbGlk
YXRpb25IYW5kbGVyID0gXigpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IGY0NTc3YjAxYzJkNjJhYzEzMjQ4Y2U4MjEzZjkyMGE0ZDZl
MDdkN2YuLjM0YzAxNmE4MzQyY2QwNzMxM2Y3M2MyYTFmYTYxNGMxZTZlZDdkNGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTIzLDYg
KzkyMyw3IEBACiAJCTUxMjEyN0M0MTkwODIzOUEwMERBRjM1QyAvKiBXZWJQYXN0ZWJvYXJkT3Zl
cnJpZGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTIxMjdDMjE5MDgyMzlBMDBEQUYzNUMgLyogV2ViUGFzdGVib2FyZE92ZXJyaWRlcy5oICovOyB9
OwogCQk1MTIxNzQ2MTE2NEMyMEUzMDAzN0E1QzEgLyogU2hhcmVhYmxlUmVzb3VyY2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMjE3NDVGMTY0QzIw
RTMwMDM3QTVDMSAvKiBTaGFyZWFibGVSZXNvdXJjZS5oICovOyB9OwogCQk1MTIzQ0YxQzEzM0Qy
NjBBMDA1NkY4MDAgLyogV0tJY29uRGF0YWJhc2VDRy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyM0NGMUExMzNEMjYwQTAwNTZGODAwIC8qIFdLSWNv
bkRhdGFiYXNlQ0cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQk1MTI0MEVCQTIyMEEwOEQyMDA1Q0ZDNjMgLyogRG93bmxvYWRNYXAuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMjQwRUI4MjIwQTA4Q0Ew
MDVDRkM2MyAvKiBEb3dubG9hZE1hcC5oICovOyB9OwogCQk1MTI5MzVEODEyODhEMTk0MDBBNEI2
OTUgLyogV2ViQ29udGV4dE1lbnVJdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MTI5MzVENjEyODhEMTk0MDBBNEI2OTUgLyogV2ViQ29udGV4dE1l
bnVJdGVtLmggKi87IH07CiAJCTUxMjkzNUU0MTI4OEQ5NzgwMEE0QjY5NSAvKiBJbmplY3RlZEJ1
bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTEyOTM1RTIxMjg4RDk3ODAwQTRCNjk1IC8qIEluamVjdGVkQnVu
ZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmggKi87IH07CiAJCTUxMkUzNEU1MTMwQjREMDUwMEFC
RDE5QSAvKiBXS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdBMzNCNDEzMEIzMDhDMDBGODBDQjUgLyogV0tB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC0zMTU2LDYgKzMxNTcsOCBAQAogCQk1MTIxNzQ1RjE2NEMyMEUz
MDAzN0E1QzEgLyogU2hhcmVhYmxlUmVzb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU2hhcmVhYmxlUmVzb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTEyM0NGMTkxMzNEMjYwQTAwNTZGODAwIC8qIFdLSWNvbkRhdGFiYXNlQ0cuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV0tJY29uRGF0YWJhc2VDRy5jcHA7IHBh
dGggPSBjZy9XS0ljb25EYXRhYmFzZUNHLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTEyM0NGMUExMzNEMjYwQTAwNTZGODAwIC8qIFdLSWNvbkRhdGFiYXNlQ0cuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tJY29uRGF0YWJhc2VDRy5oOyBwYXRoID0gY2cv
V0tJY29uRGF0YWJhc2VDRy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTI0MEVC
ODIyMEEwOENBMDA1Q0ZDNjMgLyogRG93bmxvYWRNYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRG93bmxvYWRNYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NTEyNDBFQjkyMjBBMDhDQTAwNUNGQzYzIC8qIERvd25sb2FkTWFwLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvd25sb2FkTWFwLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTEyOTM1RDUxMjg4RDE5NDAwQTRCNjk1IC8qIFdlYkNvbnRleHRNZW51
SXRlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb250ZXh0
TWVudUl0ZW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTI5MzVENjEyODhE
MTk0MDBBNEI2OTUgLyogV2ViQ29udGV4dE1lbnVJdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYkNvbnRleHRNZW51SXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MTI5MzVFMTEyODhEOTc4MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQYWdlQ29u
dGV4dE1lbnVDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNjgyNSw2ICs2ODI4LDggQEAKIAkJCQk1QzE0MjZGNzFDMjNGODQzMDBE
NDExODMgLyogRG93bmxvYWRJRC5oICovLAogCQkJCTVDMTQyNkY4MUMyM0Y4NDMwMEQ0MTE4MyAv
KiBEb3dubG9hZE1hbmFnZXIuY3BwICovLAogCQkJCTVDMTQyNkY5MUMyM0Y4NDMwMEQ0MTE4MyAv
KiBEb3dubG9hZE1hbmFnZXIuaCAqLywKKwkJCQk1MTI0MEVCOTIyMEEwOENBMDA1Q0ZDNjMgLyog
RG93bmxvYWRNYXAuY3BwICovLAorCQkJCTUxMjQwRUI4MjIwQTA4Q0EwMDVDRkM2MyAvKiBEb3du
bG9hZE1hcC5oICovLAogCQkJCTVDODVDNzg2MUMzRjIzQzUwMDYxQTRGQSAvKiBQZW5kaW5nRG93
bmxvYWQuY3BwICovLAogCQkJCTVDMjk4RDlFMUMzREVGMjkwMDQ3MEFGRSAvKiBQZW5kaW5nRG93
bmxvYWQuaCAqLywKIAkJCSk7CkBAIC05MDU4LDYgKzkwNjMsNyBAQAogCQkJCUExREY2MzEzMThF
MEI3QzgwMDNBM0UyQSAvKiBEb3dubG9hZENsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUMx
NDI3MDUxQzIzRjg0QzAwRDQxMTgzIC8qIERvd25sb2FkSUQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTVDMTQyNzA3MUMyM0Y4NEMwMEQ0MTE4MyAvKiBEb3dubG9hZE1hbmFnZXIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTUxMjQwRUJBMjIwQTA4RDIwMDVDRkM2MyAvKiBEb3dubG9hZE1hcC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUFCN0Q0Q0ExMjg4QUFBNzAwQ0ZEMDhDIC8qIERvd25sb2FkUHJveHku
aCBpbiBIZWFkZXJzICovLAogCQkJCTFBRDI1RTk2MTY3QUIwODEwMEVBOUJDRCAvKiBEb3dubG9h
ZFByb3h5TWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUI3RDYxQTEyODhCOUQ5MDBDRkQwOEMg
LyogRG93bmxvYWRQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>361203</attachid>
            <date>2019-02-05 11:04:45 -0800</date>
            <delta_ts>2019-02-05 13:27:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194294-20190205110444.patch</filename>
            <type>text/plain</type>
            <size>15289</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwOTg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDA5ZDAzZjRiYzBmYzdmNWZj
ZTkzNDg3ODBlZjg3YzU4MjY3ZjZlZjkuLmI4NmZmNWM2YTZlNzdhYjc4YmFjOTljZGUwYjlmMjQ0
OTU3MWRiZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTktMDItMDUgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIG5ldyBEb3dubG9hZE1h
cCB0eXBlIHRoYXQgbWFuYWdlcyB0YWtpbmcgYW4gYXNzZXJ0aW9uIGF1dG9tYXRpY2FsbHkuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQyOTQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZiB3ZSBkb24n
dCBuZWVkIHRoZSBkb3dubG9hZCBhc3NlcnRpb24sIHdlIHVzZSBhIHZhbmlsbGEgSGFzaE1hcCBs
aWtlIHRvZGF5LgorICAgICAgICBJZiB3ZSBuZWVkIHRoZSBkb3dubG9hZCBhc3NlcnRpb24sIHdl
IHVzZSB0aGUgbmV3IERvd25sb2FkTWFwIGNsYXNzIGluc3RlYWQuCisKKyAgICAgICAgVGhlIG5l
dyBEb3dubG9hZE1hcCBpcyBhIHdyYXBwZXIgYXJvdW5kIGEgSGFzaE1hcCB0aGF0IGFsc28gY3Jl
YXRlcy9kZXN0cm95cyB0aGUgYXNzZXJ0aW9uIGFzIG5lZWRlZC4KKworICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpEb3dubG9hZE1hbmFnZXI6OmRhdGFUYXNrQmVjYW1lRG93bmxvYWRUYXNrKToKKyAgICAgICAg
KFdlYktpdDo6RG93bmxvYWRNYW5hZ2VyOjpkb3dubG9hZEZpbmlzaGVkKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmg6CisKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYXAuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6RG93bmxvYWRNYXA6OmdldCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkRvd25s
b2FkTWFwOjppc0VtcHR5IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRNYXA6OnNp
emUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZE1hcDo6Y29udGFpbnMgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZE1hcDo6YWRkKToKKyAgICAgICAgKFdlYktpdDo6
RG93bmxvYWRNYXA6OnJlbW92ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRz
L0Rvd25sb2FkTWFwLmg6IEFkZGVkLgorCisgICAgICAgICogU291cmNlcy50eHQ6CisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW06CisgICAgICAgIChXZWJL
aXQ6OlByb2Nlc3NBc3NlcnRpb246OlByb2Nlc3NBc3NlcnRpb24pOgorCisgICAgICAgICogV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTktMDItMDUgIEFsZXggQ2hyaXN0
ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBTdG9wIHVzaW5nIGJs
b2JSZWdpc3RyeSBpbiBOZXR3b3JrUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5jcHAKaW5kZXggMjhl
ZmU5OGNmNTdhYTAxYmI0NzYwNWVlYjFmNDE0YmM0ZGZkZTFiZC4uZGE0MDNjNDBjMDY0YmNiMDBm
MGZhMWQ5NThiNGEyNDJmZWY5ZDkyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuY3BwCkBAIC03MSwxMyAr
NzEsNiBAQCB2b2lkIERvd25sb2FkTWFuYWdlcjo6ZGF0YVRhc2tCZWNhbWVEb3dubG9hZFRhc2so
RG93bmxvYWRJRCBkb3dubG9hZElELCBzdGQ6OnVuaQogICAgIEFTU0VSVCghbV9kb3dubG9hZHMu
Y29udGFpbnMoZG93bmxvYWRJRCkpOwogICAgIG1fZG93bmxvYWRzQWZ0ZXJEZXN0aW5hdGlvbkRl
Y2lkZWQucmVtb3ZlKGRvd25sb2FkSUQpOwogICAgIG1fZG93bmxvYWRzLmFkZChkb3dubG9hZElE
LCBXVEZNb3ZlKGRvd25sb2FkKSk7Ci0KLSNpZiBFTkFCTEUoVEFLRV9ET1dOTE9BRF9BU1NFUlRJ
T04pCi0gICAgaWYgKG1fZG93bmxvYWRzLnNpemUoKSA9PSAxKSB7Ci0gICAgICAgIEFTU0VSVCgh
bV9kb3dubG9hZEFzc2VydGlvbik7Ci0gICAgICAgIG1fZG93bmxvYWRBc3NlcnRpb24gPSBzdGQ6
Om1ha2VfdW5pcXVlPFByb2Nlc3NBc3NlcnRpb24+KGdldHBpZCgpLCAiV2ViS2l0IGRvd25sb2Fk
cyJfcywgQXNzZXJ0aW9uU3RhdGU6OkRvd25sb2FkKTsKLSAgICB9Ci0jZW5kaWYKIH0KIAogdm9p
ZCBEb3dubG9hZE1hbmFnZXI6OmNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KERvd25sb2FkSUQgZG93
bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkKQEAgLTE4MCwxMiAr
MTczLDYgQEAgdm9pZCBEb3dubG9hZE1hbmFnZXI6OmRvd25sb2FkRmluaXNoZWQoRG93bmxvYWQq
IGRvd25sb2FkKQogICAgIEFTU0VSVChtX2Rvd25sb2Fkcy5jb250YWlucyhkb3dubG9hZC0+ZG93
bmxvYWRJRCgpKSk7CiAgICAgbV9kb3dubG9hZHMucmVtb3ZlKGRvd25sb2FkLT5kb3dubG9hZElE
KCkpOwogICAgIAotI2lmIEVOQUJMRShUQUtFX0RPV05MT0FEX0FTU0VSVElPTikKLSAgICBpZiAo
bV9kb3dubG9hZHMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIEFTU0VSVChtX2Rvd25sb2FkQXNzZXJ0
aW9uKTsKLSAgICAgICAgbV9kb3dubG9hZEFzc2VydGlvbiA9IG51bGxwdHI7Ci0gICAgfQotI2Vu
ZGlmCiB9CiAKIHZvaWQgRG93bmxvYWRNYW5hZ2VyOjpkaWRDcmVhdGVEb3dubG9hZCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1h
bmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2Fk
TWFuYWdlci5oCmluZGV4IGZmZTFhZDA0NWE5NWYyNDZjZWZmYzYwYTM1MzU0OWI3NWI5MjZmZTMu
LmZmMTFkZmI4NmE3NGI3MTZjOTNiZTg3MDI2YTZhMmE2NTQ3YWE0OTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdl
ci5oCkBAIC0yNiw5ICsyNiw5IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkRvd25sb2Fk
SUQuaCIKKyNpbmNsdWRlICJEb3dubG9hZE1hcC5oIgogI2luY2x1ZGUgIk5ldHdvcmtEYXRhVGFz
ay5oIgogI2luY2x1ZGUgIlBlbmRpbmdEb3dubG9hZC5oIgotI2luY2x1ZGUgIlByb2Nlc3NBc3Nl
cnRpb24uaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC0xMTMsMTEg
KzExMyw3IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxEb3dubG9hZElELCBzdGQ6OnVuaXF1ZV9w
dHI8UGVuZGluZ0Rvd25sb2FkPj4gbV9wZW5kaW5nRG93bmxvYWRzOwogICAgIEhhc2hNYXA8RG93
bmxvYWRJRCwgc3RkOjpwYWlyPFJlZlB0cjxOZXR3b3JrRGF0YVRhc2s+LCBSZXNwb25zZUNvbXBs
ZXRpb25IYW5kbGVyPj4gbV9kb3dubG9hZHNXYWl0aW5nRm9yRGVzdGluYXRpb247CiAgICAgSGFz
aE1hcDxEb3dubG9hZElELCBSZWZQdHI8TmV0d29ya0RhdGFUYXNrPj4gbV9kb3dubG9hZHNBZnRl
ckRlc3RpbmF0aW9uRGVjaWRlZDsKLSAgICBIYXNoTWFwPERvd25sb2FkSUQsIHN0ZDo6dW5pcXVl
X3B0cjxEb3dubG9hZD4+IG1fZG93bmxvYWRzOwotCi0jaWYgRU5BQkxFKFRBS0VfRE9XTkxPQURf
QVNTRVJUSU9OKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxQcm9jZXNzQXNzZXJ0aW9uPiBtX2Rvd25s
b2FkQXNzZXJ0aW9uOwotI2VuZGlmCisgICAgRG93bmxvYWRNYXAgbV9kb3dubG9hZHM7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFwLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMmJhYTMzMjYz
MTkzYWFmNjU4YTIxZGJiMzA1NTgxMWM3MzM5NzFmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYXAuY3BwCkBAIC0wLDAg
KzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRG93
bmxvYWRNYXAuaCIKKworI2lmIEVOQUJMRShUQUtFX0RPV05MT0FEX0FTU0VSVElPTikKKworI2lu
Y2x1ZGUgIkRvd25sb2FkLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCisKK0Rvd25sb2FkKiBE
b3dubG9hZE1hcDo6Z2V0KERvd25sb2FkSUQgZG93bmxvYWRJRCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9kb3dubG9hZHMuZ2V0KGRvd25sb2FkSUQpOworfQorCitib29sIERvd25sb2FkTWFwOjpp
c0VtcHR5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9kb3dubG9hZHMuaXNFbXB0eSgpOworfQor
Cit1aW50NjRfdCBEb3dubG9hZE1hcDo6c2l6ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZG93
bmxvYWRzLnNpemUoKTsKK30KKworYm9vbCBEb3dubG9hZE1hcDo6Y29udGFpbnMoRG93bmxvYWRJ
RCBkb3dubG9hZElEKSBjb25zdAoreworICAgIHJldHVybiBtX2Rvd25sb2Fkcy5jb250YWlucyhk
b3dubG9hZElEKTsKK30KKworRG93bmxvYWRNYXA6OkRvd25sb2FkTWFwVHlwZTo6QWRkUmVzdWx0
IERvd25sb2FkTWFwOjphZGQoRG93bmxvYWRJRCBkb3dubG9hZElELCBzdGQ6OnVuaXF1ZV9wdHI8
RG93bmxvYWQ+JiYgZG93bmxvYWQpCit7CisgICAgYXV0byByZXN1bHQgPSBtX2Rvd25sb2Fkcy5h
ZGQoZG93bmxvYWRJRCwgV1RGTW92ZShkb3dubG9hZCkpOworICAgIGlmIChtX2Rvd25sb2Fkcy5z
aXplKCkgPT0gMSkgeworICAgICAgICBBU1NFUlQoIW1fZG93bmxvYWRBc3NlcnRpb24pOworICAg
ICAgICBtX2Rvd25sb2FkQXNzZXJ0aW9uID0gc3RkOjptYWtlX3VuaXF1ZTxQcm9jZXNzQXNzZXJ0
aW9uPihnZXRwaWQoKSwgIldlYktpdCBkb3dubG9hZHMiX3MsIEFzc2VydGlvblN0YXRlOjpEb3du
bG9hZCk7CisgICAgfQorCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworYm9vbCBEb3dubG9hZE1h
cDo6cmVtb3ZlKERvd25sb2FkSUQgZG93bmxvYWRJRCkKK3sKKyAgICBhdXRvIHJlc3VsdCA9IG1f
ZG93bmxvYWRzLnJlbW92ZShkb3dubG9hZElEKTsKKyAgICBpZiAobV9kb3dubG9hZHMuaXNFbXB0
eSgpKSB7CisgICAgICAgIEFTU0VSVChtX2Rvd25sb2FkQXNzZXJ0aW9uKTsKKyAgICAgICAgbV9k
b3dubG9hZEFzc2VydGlvbiA9IG51bGxwdHI7CisgICAgfQorICAgIAorICAgIHJldHVybiByZXN1
bHQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKFRBS0Vf
RE9XTkxPQURfQVNTRVJUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYXAuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvRG93bmxvYWRzL0Rvd25sb2FkTWFwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTg0M2E4M2Q5ZThiY2FkMjNh
NzFkNTU0ZDdiNWY3ZmRiZGFjYzE3NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFwLmgKQEAgLTAsMCArMSw1OSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRG93bmxvYWRJRC5oIgorI2lu
Y2x1ZGUgIlByb2Nlc3NBc3NlcnRpb24uaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgRG93bmxvYWQ7CisKKyNpZiAhRU5BQkxFKFRBS0Vf
RE9XTkxPQURfQVNTRVJUSU9OKQordHlwZWRlZiBIYXNoTWFwPERvd25sb2FkSUQsIHN0ZDo6dW5p
cXVlX3B0cjxEb3dubG9hZD4+IERvd25sb2FkTWFwOworI2Vsc2UKKworY2xhc3MgRG93bmxvYWRN
YXAgeworcHVibGljOgorICAgIHR5cGVkZWYgSGFzaE1hcDxEb3dubG9hZElELCBzdGQ6OnVuaXF1
ZV9wdHI8RG93bmxvYWQ+PiBEb3dubG9hZE1hcFR5cGU7CisKKyAgICBEb3dubG9hZCogZ2V0KERv
d25sb2FkSUQpIGNvbnN0OworICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0OworICAgIHVpbnQ2NF90
IHNpemUoKSBjb25zdDsKKyAgICBib29sIGNvbnRhaW5zKERvd25sb2FkSUQpIGNvbnN0OworCisg
ICAgRG93bmxvYWRNYXBUeXBlOjpBZGRSZXN1bHQgYWRkKERvd25sb2FkSUQsIHN0ZDo6dW5pcXVl
X3B0cjxEb3dubG9hZD4mJik7CisgICAgYm9vbCByZW1vdmUoRG93bmxvYWRJRCk7CisKK3ByaXZh
dGU6CisgICAgRG93bmxvYWRNYXBUeXBlIG1fZG93bmxvYWRzOworICAgIHN0ZDo6dW5pcXVlX3B0
cjxQcm9jZXNzQXNzZXJ0aW9uPiBtX2Rvd25sb2FkQXNzZXJ0aW9uOworfTsKKworI2VuZGlmIC8v
ICFFTkFCTEUoVEFLRV9ET1dOTE9BRF9BU1NFUlRJT04pCisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQv
U291cmNlcy50eHQKaW5kZXggZDI1OTVkNzZiM2U5ZDI3NDAwYzU3MGYxZTgxYWRhYzEwNzMxMTMz
Mi4uYjM5ZDI2NGM4ZjhmNjU3NjQzOWNkY2RhZjQ1YzdjYWE3MWU1YjliZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
CkBAIC00OCw2ICs0OCw3IEBAIE5ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdl
ci5jcHAKIAogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcAogTmV0d29ya1By
b2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5jcHAKK05ldHdvcmtQcm9jZXNzL0Rvd25s
b2Fkcy9Eb3dubG9hZE1hcC5jcHAKIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9QZW5kaW5nRG93
bmxvYWQuY3BwCiAKIE5ldHdvcmtQcm9jZXNzL0ZpbGVBUEkvTmV0d29ya0Jsb2JSZWdpc3RyeS5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0
aW9uSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25J
T1MubW0KaW5kZXggNDA4OTk1ZDk0YzU0OTNjNDc0YzM5YjdlMjNlMTZhNjU1ZTE0M2I3Ny4uYWMw
ZDZmYzYxYjQyY2E2ZDMwZjRiOTA2MTI5NzE2NGVhMzU3MTAwOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW0KQEAgLTE5Miw3ICsx
OTIsNyBAQCBQcm9jZXNzQXNzZXJ0aW9uOjpQcm9jZXNzQXNzZXJ0aW9uKHBpZF90IHBpZCwgY29u
c3QgU3RyaW5nJiBuYW1lLCBBc3NlcnRpb25TdGF0ZQogICAgICAgICAgICAgfSk7CiAgICAgICAg
IH0KICAgICB9OwotICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBQcm9j
ZXNzQXNzZXJ0aW9uKCkgUElEICVkIGFjcXVpcmluZyBhc3NlcnRpb24gZm9yIHByb2Nlc3Mgd2l0
aCBQSUQgJWQiLCB0aGlzLCBnZXRwaWQoKSwgcGlkKTsKKyAgICBSRUxFQVNFX0xPRyhQcm9jZXNz
U3VzcGVuc2lvbiwgIiVwIC0gUHJvY2Vzc0Fzc2VydGlvbigpIFBJRCAlZCBhY3F1aXJpbmcgYXNz
ZXJ0aW9uIGZvciBwcm9jZXNzIHdpdGggUElEICVkLCBuYW1lICclcyciLCB0aGlzLCBnZXRwaWQo
KSwgcGlkLCBuYW1lLnV0ZjgoKS5kYXRhKCkpOwogICAgIAogICAgIG1fYXNzZXJ0aW9uID0gYWRv
cHROUyhbW0JLU1Byb2Nlc3NBc3NlcnRpb24gYWxsb2NdIGluaXRXaXRoUElEOnBpZCBmbGFnczpm
bGFnc0ZvclN0YXRlKGFzc2VydGlvblN0YXRlKSByZWFzb246cmVhc29uRm9yU3RhdGUoYXNzZXJ0
aW9uU3RhdGUpIG5hbWU6KE5TU3RyaW5nICopbmFtZSB3aXRoSGFuZGxlcjpoYW5kbGVyXSk7CiAg
ICAgbV9hc3NlcnRpb24uZ2V0KCkuaW52YWxpZGF0aW9uSGFuZGxlciA9IF4oKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmNDU3N2Iw
MWMyZDYyYWMxMzI0OGNlODIxM2Y5MjBhNGQ2ZTA3ZDdmLi4zNGMwMTZhODM0MmNkMDczMTNmNzNj
MmExZmE2MTRjMWU2ZWQ3ZDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTkyMyw2ICs5MjMsNyBAQAogCQk1MTIxMjdDNDE5MDgyMzlB
MDBEQUYzNUMgLyogV2ViUGFzdGVib2FyZE92ZXJyaWRlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyMTI3QzIxOTA4MjM5QTAwREFGMzVDIC8qIFdl
YlBhc3RlYm9hcmRPdmVycmlkZXMuaCAqLzsgfTsKIAkJNTEyMTc0NjExNjRDMjBFMzAwMzdBNUMx
IC8qIFNoYXJlYWJsZVJlc291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTIxNzQ1RjE2NEMyMEUzMDAzN0E1QzEgLyogU2hhcmVhYmxlUmVzb3Vy
Y2UuaCAqLzsgfTsKIAkJNTEyM0NGMUMxMzNEMjYwQTAwNTZGODAwIC8qIFdLSWNvbkRhdGFiYXNl
Q0cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMjND
RjFBMTMzRDI2MEEwMDU2RjgwMCAvKiBXS0ljb25EYXRhYmFzZUNHLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTEyNDBFQkEyMjBBMDhEMjAwNUNG
QzYzIC8qIERvd25sb2FkTWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTI0MEVCODIyMEEwOENBMDA1Q0ZDNjMgLyogRG93bmxvYWRNYXAuaCAqLzsg
fTsKIAkJNTEyOTM1RDgxMjg4RDE5NDAwQTRCNjk1IC8qIFdlYkNvbnRleHRNZW51SXRlbS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyOTM1RDYxMjg4
RDE5NDAwQTRCNjk1IC8qIFdlYkNvbnRleHRNZW51SXRlbS5oICovOyB9OwogCQk1MTI5MzVFNDEy
ODhEOTc4MDBBNEI2OTUgLyogSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMjkzNUUyMTI4
OEQ5NzgwMEE0QjY5NSAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oICov
OyB9OwogCQk1MTJFMzRFNTEzMEI0RDA1MDBBQkQxOUEgLyogV0tBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3
QTMzQjQxMzBCMzA4QzAwRjgwQ0I1IC8qIFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMzE1Niw2ICsz
MTU3LDggQEAKIAkJNTEyMTc0NUYxNjRDMjBFMzAwMzdBNUMxIC8qIFNoYXJlYWJsZVJlc291cmNl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYXJlYWJsZVJlc291cmNlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMjNDRjE5MTMzRDI2MEEwMDU2RjgwMCAv
KiBXS0ljb25EYXRhYmFzZUNHLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IFdLSWNvbkRhdGFiYXNlQ0cuY3BwOyBwYXRoID0gY2cvV0tJY29uRGF0YWJhc2VDRy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMjNDRjFBMTMzRDI2MEEwMDU2RjgwMCAv
KiBXS0ljb25EYXRhYmFzZUNHLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdL
SWNvbkRhdGFiYXNlQ0cuaDsgcGF0aCA9IGNnL1dLSWNvbkRhdGFiYXNlQ0cuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEyNDBFQjgyMjBBMDhDQTAwNUNGQzYzIC8qIERvd25sb2Fk
TWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERvd25sb2FkTWFwLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMjQwRUI5MjIwQTA4Q0EwMDVDRkM2MyAvKiBE
b3dubG9hZE1hcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb3du
bG9hZE1hcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMjkzNUQ1MTI4OEQx
OTQwMEE0QjY5NSAvKiBXZWJDb250ZXh0TWVudUl0ZW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29udGV4dE1lbnVJdGVtLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTEyOTM1RDYxMjg4RDE5NDAwQTRCNjk1IC8qIFdlYkNvbnRleHRNZW51
SXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb250ZXh0TWVudUl0
ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEyOTM1RTExMjg4RDk3ODAwQTRC
Njk1IC8qIEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51
Q2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY4MjUsNiArNjgyOCw4
IEBACiAJCQkJNUMxNDI2RjcxQzIzRjg0MzAwRDQxMTgzIC8qIERvd25sb2FkSUQuaCAqLywKIAkJ
CQk1QzE0MjZGODFDMjNGODQzMDBENDExODMgLyogRG93bmxvYWRNYW5hZ2VyLmNwcCAqLywKIAkJ
CQk1QzE0MjZGOTFDMjNGODQzMDBENDExODMgLyogRG93bmxvYWRNYW5hZ2VyLmggKi8sCisJCQkJ
NTEyNDBFQjkyMjBBMDhDQTAwNUNGQzYzIC8qIERvd25sb2FkTWFwLmNwcCAqLywKKwkJCQk1MTI0
MEVCODIyMEEwOENBMDA1Q0ZDNjMgLyogRG93bmxvYWRNYXAuaCAqLywKIAkJCQk1Qzg1Qzc4NjFD
M0YyM0M1MDA2MUE0RkEgLyogUGVuZGluZ0Rvd25sb2FkLmNwcCAqLywKIAkJCQk1QzI5OEQ5RTFD
M0RFRjI5MDA0NzBBRkUgLyogUGVuZGluZ0Rvd25sb2FkLmggKi8sCiAJCQkpOwpAQCAtOTA1OCw2
ICs5MDYzLDcgQEAKIAkJCQlBMURGNjMxMzE4RTBCN0M4MDAzQTNFMkEgLyogRG93bmxvYWRDbGll
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDMTQyNzA1MUMyM0Y4NEMwMEQ0MTE4MyAvKiBEb3du
bG9hZElELmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzE0MjcwNzFDMjNGODRDMDBENDExODMgLyog
RG93bmxvYWRNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTI0MEVCQTIyMEEwOEQyMDA1
Q0ZDNjMgLyogRG93bmxvYWRNYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQjdENENBMTI4OEFB
QTcwMENGRDA4QyAvKiBEb3dubG9hZFByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUQyNUU5
NjE2N0FCMDgxMDBFQTlCQ0QgLyogRG93bmxvYWRQcm94eU1hcC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMUFCN0Q2MUExMjg4QjlEOTAwQ0ZEMDhDIC8qIERvd25sb2FkUHJveHlNZXNzYWdlcy5oIGlu
IEhlYWRlcnMgKi8sCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>