<?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>142251</bug_id>
          
          <creation_ts>2015-03-03 17:58:59 -0800</creation_ts>
          <short_desc>[Content Filtering] Separate unblock handling into its own class</short_desc>
          <delta_ts>2015-03-03 19:36:33 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>128858</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>japhet</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1073906</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-03-03 17:58:59 -0800</bug_when>
    <thetext>[Content Filtering] Separate unblock handling into its own class</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073918</commentid>
    <comment_count>1</comment_count>
      <attachid>247825</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-03-03 18:23:12 -0800</bug_when>
    <thetext>Created attachment 247825
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073920</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-03 18:25:31 -0800</bug_when>
    <thetext>Attachment 247825 did not pass style-queue:


ERROR: Source/WebCore/platform/ContentFilterUnblockHandler.h:45:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/WebCore/platform/cocoa/ContentFilterUnblockHandlerCocoa.mm:55:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebCore/platform/cocoa/ContentFilterUnblockHandlerCocoa.mm:55:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/platform/cocoa/ContentFilterUnblockHandlerCocoa.mm:80:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 4 in 23 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073932</commentid>
    <comment_count>3</comment_count>
      <attachid>247825</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-03-03 19:24:09 -0800</bug_when>
    <thetext>Comment on attachment 247825
Patch

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

r=me

&gt; Source/WebCore/platform/cocoa/ContentFilterUnblockHandlerCocoa.mm:66
&gt; +    static const char contentFilterScheme[] = &quot;x-apple-content-filter&quot;;
&gt; +    return contentFilterScheme;

return &quot;x-apple-content-filter&quot;;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073936</commentid>
    <comment_count>4</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-03-03 19:36:33 -0800</bug_when>
    <thetext>Committed r180985: &lt;http://trac.webkit.org/changeset/180985&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247825</attachid>
            <date>2015-03-03 18:23:12 -0800</date>
            <delta_ts>2015-03-03 19:24:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142251-20150303182254.patch</filename>
            <type>text/plain</type>
            <size>43841</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwODcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmQ5YjA4MDU5NDlhMGYz
ZjY5YWNhYTZkZDYzZTFlNTEzMWFjNDEzYi4uMmI5ODI1NzM0MTE1NTk3ZmU1MGJmNDJlYmJmZTE2
NTQ4MWRkZmEwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE1LTAzLTAzICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29udGVudCBGaWx0ZXJpbmdd
IFNlcGFyYXRlIHVuYmxvY2sgaGFuZGxpbmcgaW50byBpdHMgb3duIGNsYXNzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDIyNTEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVbmJsb2NrIGhhbmRsaW5nIGlz
IGN1cnJlbnRseSBzdXBwb3J0ZWQgb25seSBmb3Igb25lIHR5cGUgb2YgY29udGVudCBmaWx0ZXIg
KFdlYkZpbHRlckV2YWx1YXRvcikgb24gb25lCisgICAgICAgIHBsYXRmb3JtIChpT1MpLiBIYXZp
bmcgaXRzIGltcGxlbWVudGF0aW9uIGluIENvbnRlbnRGaWx0ZXIgaXMgbWFraW5nIGl0IGRpZmZp
Y3VsdCB0byBzdXBwb3J0IG90aGVyIGZpbHRlcnMgYW5kCisgICAgICAgIHBsYXRmb3Jtcywgc28g
bGV0J3Mgc2VwYXJhdGUgdW5ibG9jayBoYW5kbGluZyBpbnRvIGl0cyBvd24gY2xhc3MgY2FsbGVk
IENvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlci4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OmZpbmlzaGVkTG9hZGluZyk6IFBh
c3NlZCBhIENvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciB0byBGcmFtZUxvYWRlckNsaWVudDo6
Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9h
ZGVyOjpkYXRhUmVjZWl2ZWQpOiBEaXR0by4KKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJD
bGllbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Db250ZW50RmlsdGVyLmg6CisgICAgICAgICog
cGxhdGZvcm0vQ29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyLmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9Db250ZW50RmlsdGVySU9TLm1tLgorICAgICAgICAoV2Vi
Q29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyOjpjbGVhcik6CisgICAgICAgICogcGxh
dGZvcm0vY29jb2EvQ29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyQ29jb2EubW06IFJlbmFtZWQg
ZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvQ29udGVudEZpbHRlcklPUy5tbS4KKyAg
ICAgICAgKFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcjo6Q29udGVudEZpbHRl
clVuYmxvY2tIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2Nr
SGFuZGxlcjo6ZW5jb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2Nr
SGFuZGxlcjo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OnNjaGVtZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXI6OmhhbmRsZVVuYmxvY2tSZXF1ZXN0
QW5kRGlzcGF0Y2hJZlN1Y2Nlc3NmdWwpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Db250ZW50
RmlsdGVyTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEZpbHRlcjo6dW5ibG9ja0hh
bmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEZpbHRlcjo6Q29udGVudEZpbHRlcik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RmlsdGVyOjplbmNvZGUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEZpbHRlcjo6ZGVjb2RlKTogRGVsZXRlZC4K
KwogMjAxNS0wMi0yNiAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAg
W0NvbnRlbnQgRmlsdGVyaW5nXSBNb3ZlIGFub3RoZXIgZGVjbGFyYXRpb24gdG8gV2ViRmlsdGVy
RXZhbHVhdG9yU1BJLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBmN2M3ZmE0YjdiY2VkY2I1YmJlOTM0
ODY2ZjY4MGFlY2NiNGUyZDIxLi5jNzcyMTBlYzY4ZWU2OTI3ODdlMTM2YTg4MmVmMTQ0MGMwZTk5
ZGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTUtMDMtMDMgIEFuZHkg
RXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtDb250ZW50IEZpbHRlcmluZ10g
U2VwYXJhdGUgdW5ibG9jayBoYW5kbGluZyBpbnRvIGl0cyBvd24gY2xhc3MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjI1MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgQWRvcHRlZCBDb250
ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlk
U3RhcnRQcm92aXNpb25hbExvYWQpOgorICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06Cisg
ICAgICAgICgtW1dlYkZyYW1lIF9jb250ZW50RmlsdGVyRGlkSGFuZGxlTmF2aWdhdGlvbkFjdGlv
bjpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaDoKKwogMjAxNS0wMy0w
MSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgTm90aWZp
Y2F0aW9uQ2VudGVyIC8gTm90aWZpY2F0aW9uIHN1c3BlbmRhYmxlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjU5
YjU4ZjBkNzFmYzhjMTY0MmIwY2E4N2Q4YzU4YTY5OWFlMjdkNS4uNjM4MzgxNmIxNjA4YmVlZmMx
M2I0Y2Y2Nzg3MDM4OWZmNTdmNzgyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE1
LTAzLTAzICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29udGVu
dCBGaWx0ZXJpbmddIFNlcGFyYXRlIHVuYmxvY2sgaGFuZGxpbmcgaW50byBpdHMgb3duIGNsYXNz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDIyNTEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZG9wdGVk
IENvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlci4KKworICAgICAgICAqIFNoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENv
ZGVyc01hYy5tbToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDb250ZW50RmlsdGVyVW5i
bG9ja0hhbmRsZXI+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENvbnRl
bnRGaWx0ZXJVbmJsb2NrSGFuZGxlcj46OmRlY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50
Q29kZXI8Q29udGVudEZpbHRlcj46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8Q29udGVudEZpbHRlcj46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZSk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFt
ZVByb3h5OjpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZy
YW1lUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRIYW5kbGVOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFt
ZVByb3h5OjpzZXRDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIpOgorICAgICAgICAoV2ViS2l0
OjpXZWJGcmFtZVByb3h5OjpzZXRDb250ZW50RmlsdGVyRm9yQmxvY2tlZExvYWQpOiBEZWxldGVk
LgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJG
cmFtZUxvYWRlckNsaWVudDo6Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorCiAyMDE1
LTAzLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBO
b3RpZmljYXRpb25DZW50ZXIgLyBOb3RpZmljYXRpb24gc3VzcGVuZGFibGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjMGVkMTZi
YTFmNzM1MDJlMGUyNDkzYWJhNDE3YTgxMWUxOWQ3YjNmLi5lZjU3NjY4YzUwNWVkMmU4ZWI1YjZj
MmJmMWU0OGE4NDc5M2ZhMzYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDQ0LDEyICsxMDQ0LDExIEBACiAJCTI2RkFFNENE
MTg1MkUzQTUwMDRDOEM0NiAvKiBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNkZBRTRD
OTE4NTJFM0E1MDA0QzhDNDYgLyogUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0
ZS5oICovOyB9OwogCQkyNkZBRTRDRTE4NTJFM0E1MDA0QzhDNDYgLyogU3luY2hyb25vdXNSZXNv
dXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2RkFFNENBMTg1MkUzQTUwMDRDOEM0NiAvKiBT
eW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuY3BwICovOyB9
OwogCQkyNkZBRTRDRjE4NTJFM0E1MDA0QzhDNDYgLyogU3luY2hyb25vdXNSZXNvdXJjZUhhbmRs
ZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyNkZBRTRDQjE4NTJFM0E1MDA0QzhDNDYgLyogU3luY2hyb25vdXNS
ZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmggKi87IH07Ci0JCTI5MDM3MTY1
MTZCQTExQkMwMEZFRkRGMCAvKiBDb250ZW50RmlsdGVySU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjkwMzcxNjQxNkJBMTFCQzAwRkVGREYwIC8q
IENvbnRlbnRGaWx0ZXJJT1MubW0gKi87IH07CiAJCTI5MTdCNTYxMTQ3MzQ5NkMwMDUyQzlEMCAv
KiBMYXllckZsdXNoU2NoZWR1bGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDI5MTdCNTVFMTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNoU2No
ZWR1bGVyLmNwcCAqLzsgfTsKIAkJMjkxN0I1NjIxNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1
c2hTY2hlZHVsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDI5MTdCNTVGMTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNoU2NoZWR1bGVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMjkxN0I1NjMx
NDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5MTdCNTYwMTQ3MzQ5NkMwMDUy
QzlEMCAvKiBMYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMjkxN0I1NjYxNDczNDk5NTAwNTJDOUQwIC8q
IExheWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMjkxN0I1NjUxNDczNDk5NTAwNTJDOUQwIC8qIExheWVyRmx1c2hT
Y2hlZHVsZXJNYWMuY3BwICovOyB9OwotCQkyOTE5QTFFOTE2QjMzNzY2MDA3ODcyMTMgLyogQ29u
dGVudEZpbHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMjkxOUExRTgxNkIzMzc2NjAwNzg3MjEzIC8qIENvbnRlbnRGaWx0ZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkyOTE5QTFFOTE2QjMzNzY2
MDA3ODcyMTMgLyogQ29udGVudEZpbHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMjkxOUExRTgxNkIzMzc2NjAwNzg3MjEzIC8qIENvbnRlbnRGaWx0
ZXIuaCAqLzsgfTsKIAkJMjkxOUExRUIxNkIzMzc4OTAwNzg3MjEzIC8qIENvbnRlbnRGaWx0ZXJN
YWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOTE5
QTFFQTE2QjMzNzg5MDA3ODcyMTMgLyogQ29udGVudEZpbHRlck1hYy5tbSAqLzsgfTsKIAkJMjkz
NDk0MEExNkMwMkMwNzAwOTAxMzE4IC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVm9pY2UuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjUyN0NDOTMx
NkJGOTJFQzAwOUREQUMwIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVm9pY2UuY3BwICovOyB9
OwogCQkyOTM0OTQwQjE2QzAyQzBBMDA5MDEzMTggLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNV
dHRlcmFuY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMjUyN0NDOTUxNkJGOTVERDAwOUREQUMwIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0
ZXJhbmNlLmNwcCAqLzsgfTsKQEAgLTM3NjMsNiArMzc2Miw4IEBACiAJCUExMkExMDUwMTY2NDQ0
RkQwMDhGQTMxMSAvKiBHcmlkVHJhY2tTaXplLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBMTJBMTA0RTE2NjQ0NERDMDA4RkEzMTEgLyogR3JpZFRyYWNr
U2l6ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUExMzZBMDBDMTEzNERCRDIwMENDOEQ1MCAvKiBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRU
aHJvdHRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBMTM2QTAwQTExMzREQkQyMDBDQzhENTAgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50
VGhyb3R0bGUuY3BwICovOyB9OwogCQlBMTM2QTAwRDExMzREQkQyMDBDQzhENTAgLyogWE1MSHR0
cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMzZBMDBCMTEzNERCRDIwMENDOEQ1MCAvKiBYTUxIdHRw
UmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5oICovOyB9OworCQlBMTQwOTBGQjFBQTUxRTFE
MDA5MTE5MUEgLyogQ29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyQ29jb2EubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTQwOTBGQTFBQTUxRTFEMDA5
MTE5MUEgLyogQ29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyQ29jb2EubW0gKi87IH07CisJCUEx
NDA5MEZEMUFBNTFFNDgwMDkxMTkxQSAvKiBDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExNDA5MEZDMUFB
NTFFNDgwMDkxMTkxQSAvKiBDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMTQ4MzJCMDE4N0Y2MThE
MDBEQTYzQTYgLyogV0FLQXBwS2l0U3R1YnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEExNDgzMjhDMTg3RjUwODcwMERBNjNBNiAvKiBXQUtBcHBLaXRT
dHVicy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUExNDgzMkIxMTg3RjYxRTEwMERBNjNBNiAvKiBXQUtBcHBLaXRTdHVicy5tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE0ODMyOEQxODdGNTA4NzAwREE2
M0E2IC8qIFdBS0FwcEtpdFN0dWJzLm0gKi87IH07CiAJCUExNDgzMkIyMTg3RjYxRUQwMERBNjNB
NiAvKiBXQUtDbGlwVmlldy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTE0ODMyOEUxODdGNTA4NzAwREE2M0E2IC8qIFdBS0NsaXBWaWV3LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTgwODUsNyArODA4
Niw2IEBACiAJCTI2RkFFNEM5MTg1MkUzQTUwMDRDOEM0NiAvKiBSZXNvdXJjZUhhbmRsZUNGVVJM
Q29ubmVjdGlvbkRlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
c291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMjZGQUU0Q0ExODUyRTNBNTAwNEM4QzQ2IC8qIFN5bmNocm9ub3VzUmVzb3Vy
Y2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTeW5jaHJvbm91c1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9u
RGVsZWdhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNkZBRTRDQjE4NTJF
M0E1MDA0QzhDNDYgLyogU3luY2hyb25vdXNSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRl
bGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN5bmNocm9ub3VzUmVz
b3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQkyOTAzNzE2NDE2QkExMUJDMDBGRUZERjAgLyogQ29udGVudEZpbHRlcklPUy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IENvbnRlbnRGaWx0ZXJJ
T1MubW07IHBhdGggPSBpb3MvQ29udGVudEZpbHRlcklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMjkxN0I1NUUxNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVs
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTGF5ZXJGbHVzaFNj
aGVkdWxlci5jcHA7IHBhdGggPSBjYS9MYXllckZsdXNoU2NoZWR1bGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjkxN0I1NUYxNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1
c2hTY2hlZHVsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTGF5ZXJGbHVz
aFNjaGVkdWxlci5oOyBwYXRoID0gY2EvTGF5ZXJGbHVzaFNjaGVkdWxlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyOTE3QjU2MDE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVz
aFNjaGVkdWxlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMYXll
ckZsdXNoU2NoZWR1bGVyQ2xpZW50Lmg7IHBhdGggPSBjYS9MYXllckZsdXNoU2NoZWR1bGVyQ2xp
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDk4Miw2ICsxMDk4Miw4IEBA
CiAJCUExMkExMDRFMTY2NDQ0REMwMDhGQTMxMSAvKiBHcmlkVHJhY2tTaXplLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEdyaWRUcmFja1NpemUuaDsgcGF0aCA9IHN0eWxlL0dy
aWRUcmFja1NpemUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEzNkEwMEExMTM0
REJEMjAwQ0M4RDUwIC8qIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jl
c3NFdmVudFRocm90dGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEzNkEw
MEIxMTM0REJEMjAwQ0M4RDUwIC8qIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jl
c3NFdmVudFRocm90dGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExNDA5MEZB
MUFBNTFFMUQwMDkxMTkxQSAvKiBDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXJDb2NvYS5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENvbnRlbnRGaWx0ZXJVbmJs
b2NrSGFuZGxlckNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTQwOTBG
QzFBQTUxRTQ4MDA5MTE5MUEgLyogQ29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTQ4MzI4QzE4N0Y1MDg3MDBEQTYzQTYg
LyogV0FLQXBwS2l0U3R1YnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0FL
QXBwS2l0U3R1YnMuaDsgcGF0aCA9IGlvcy93YWsvV0FLQXBwS2l0U3R1YnMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTE0ODMyOEQxODdGNTA4NzAwREE2M0E2IC8qIFdBS0FwcEtp
dFN0dWJzLm0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMub2JqYzsgbmFtZSA9IFdBS0FwcEtpdFN0
dWJzLm07IHBhdGggPSBpb3Mvd2FrL1dBS0FwcEtpdFN0dWJzLm07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUExNDgzMjhFMTg3RjUwODcwMERBNjNBNiAvKiBXQUtDbGlwVmlldy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXQUtDbGlwVmlldy5oOyBwYXRoID0gaW9z
L3dhay9XQUtDbGlwVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg2MTcs
NyArMTg2MTksNiBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlB
MTQ4MzI4QjE4N0Y1MDY4MDBEQTYzQTYgLyogd2FrICovLAotCQkJCTI5MDM3MTY0MTZCQTExQkMw
MEZFRkRGMCAvKiBDb250ZW50RmlsdGVySU9TLm1tICovLAogCQkJCTI2NTU0MTRCMTQ4OUFBMkIw
MDBERkM1RCAvKiBDdXJzb3JJT1MuY3BwICovLAogCQkJCTMxRUFGOTdDMTIxNDM1QTQwMEU3QzFC
RiAvKiBEZXZpY2VNb3Rpb25DbGllbnRJT1MuaCAqLywKIAkJCQkzMUVBRjk3RDEyMTQzNUE0MDBF
N0MxQkYgLyogRGV2aWNlTW90aW9uQ2xpZW50SU9TLm1tICovLApAQCAtMTg2OTAsNiArMTg2OTEs
NyBAQAogCQlBNUM5NzRDRTExNDg1RkRBMDA2NkYyQUIgLyogY29jb2EgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUExNDA5MEZBMUFBNTFFMUQwMDkxMTkx
QSAvKiBDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXJDb2NvYS5tbSAqLywKIAkJCQk1RDhDNERC
RDE0MjgyMjJDMDAyNkNFNzIgLyogRGlzcGxheVNsZWVwRGlzYWJsZXJDb2NvYS5jcHAgKi8sCiAJ
CQkJNUQ4QzREQkUxNDI4MjIyQzAwMjZDRTcyIC8qIERpc3BsYXlTbGVlcERpc2FibGVyQ29jb2Eu
aCAqLywKIAkJCQkxQTQ4MzJCMjFBOTUzQkE2MDA4QjRERkUgLyogTG9jYWxpemVkU3RyaW5nc0Nv
Y29hLm1tICovLApAQCAtMjE0NzMsNiArMjE0NzUsNyBAQAogCQkJCUMzN0NERUJDMTQ5RUYyMDMw
MDQyMDkwRCAvKiBDb2xvckNob29zZXJDbGllbnQuaCAqLywKIAkJCQlCQ0M4Q0ZDQTA5ODZDRDI0
MDAxNDBCRjIgLyogQ29sb3JEYXRhLmdwZXJmICovLAogCQkJCTI5MTlBMUU4MTZCMzM3NjYwMDc4
NzIxMyAvKiBDb250ZW50RmlsdGVyLmggKi8sCisJCQkJQTE0MDkwRkMxQUE1MUU0ODAwOTExOTFB
IC8qIENvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlci5oICovLAogCQkJCTQxRDAxNUM5MEY0QjVD
NzEwMDRBNjYyRiAvKiBDb250ZW50VHlwZS5jcHAgKi8sCiAJCQkJNDFEMDE1QzgwRjRCNUM3MTAw
NEE2NjJGIC8qIENvbnRlbnRUeXBlLmggKi8sCiAJCQkJOTNCNkEwRTUwQjBCQ0E1QzAwRjUwMjdB
IC8qIENvbnRleHRNZW51LmggKi8sCkBAIC0yNDE3NSw2ICsyNDE3OCw3IEBACiAJCQkJODVFNzEx
QzEwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxQYXJhZ3JhcGhFbGVtZW50SW50ZXJuYWwuaCBp
biBIZWFkZXJzICovLAogCQkJCTg1RUNCRUY3MEFBNzYyNjkwMDU0NEYwQiAvKiBET01IVE1MUGFy
YW1FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUU3MTFDMjBBQzVENTM1MDA1MzI3MEYg
LyogRE9NSFRNTFBhcmFtRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQlBMTQw
OTBGRDFBQTUxRTQ4MDA5MTE5MUEgLyogQ29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4NTE4M0I0ODBBQTY5MjYxMDBGMTlGQTMgLyogRE9NSFRNTFByZUVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1RTcxMUMzMEFDNUQ1MzUwMDUzMjcwRiAvKiBE
T01IVE1MUHJlRWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNDIyNkU5NTEx
NjNENzNBMDA4QjgzOTcgLyogRE9NSFRNTFByb2dyZXNzRWxlbWVudC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yNzQxNiw2ICsyNzQyMCw3IEBACiAJCQkJQUJBRjIyMDgwQzAzQjFDNzAwQjBCQ0YwIC8q
IENocm9tZU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTRBQ0JDMEJFMTI3MTNDQkQwMDk0RjlC
MiAvKiBDbGFzc0xpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM5MDRCNzYwRDEwOTk4RjAw
NjgwRDMyIC8qIENsYXNzTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTE0MDkwRkIx
QUE1MUUxRDAwOTExOTFBIC8qIENvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlckNvY29hLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkNDMDY1N0QwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3Qu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNDMDY1ODAwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVu
dFJlY3RMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1MDMxQjNGMEE0NEVGQzcwMEY5OTJF
MCAvKiBDbGlwYm9hcmRFdmVudC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI3NDQyLDcgKzI3NDQ3
LDYgQEAKIAkJCQlBN0E3OENENTE1MzJCQTYyMDA2QzIxRTQgLyogQ29udGFpbmVyTm9kZUFsZ29y
aXRobXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1RUI5ODAwRTgyMDcyNTAwQjI1OTY1IC8q
IENvbnRlbnREYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3Qjc5MUEzMTRDNkE2MjkwMEYy
MDJEMSAvKiBDb250ZW50RGlzdHJpYnV0b3IuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMjkwMzcx
NjUxNkJBMTFCQzAwRkVGREYwIC8qIENvbnRlbnRGaWx0ZXJJT1MubW0gaW4gU291cmNlcyAqLywK
IAkJCQkyOTE5QTFFQjE2QjMzNzg5MDA3ODcyMTMgLyogQ29udGVudEZpbHRlck1hYy5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTk3QzQ3MURCMTJGOTI1QkQwMDg2MzU0QiAvKiBDb250ZW50U2VjdXJp
dHlQb2xpY3kuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFEMDE1Q0IwRjRCNUM3MTAwNEE2NjJG
IC8qIENvbnRlbnRUeXBlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudExvYWRlci5jcHAKaW5kZXggYWY0MmIwMDRmNzhmMWIyMDMwZDdiY2I0ZDk3NTYwZDg4
MjI3MTg4Mi4uYTMzMzhkNTI2Y2MyZTA2ZTk1OTM0MTA2YzI3MmFlYzY1ZDAxZDliOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC00MTIsOCArNDEyLDEwIEBA
IHZvaWQgRG9jdW1lbnRMb2FkZXI6OmZpbmlzaGVkTG9hZGluZyhkb3VibGUgZmluaXNoVGltZSkK
ICAgICAgICAgaWYgKGRhdGEpCiAgICAgICAgICAgICBkYXRhUmVjZWl2ZWQobV9tYWluUmVzb3Vy
Y2UuZ2V0KCksIGRhdGEsIGxlbmd0aCk7CiAKLSAgICAgICAgaWYgKG1fY29udGVudEZpbHRlci0+
ZGlkQmxvY2tEYXRhKCkpCi0gICAgICAgICAgICBmcmFtZUxvYWRlcigpLT5jbGllbnQoKS5jb250
ZW50RmlsdGVyRGlkQmxvY2tMb2FkKFdURjo6bW92ZShtX2NvbnRlbnRGaWx0ZXIpKTsKKyAgICAg
ICAgaWYgKG1fY29udGVudEZpbHRlci0+ZGlkQmxvY2tEYXRhKCkpIHsKKyAgICAgICAgICAgIGZy
YW1lTG9hZGVyKCktPmNsaWVudCgpLmNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWQobV9jb250ZW50
RmlsdGVyLT51bmJsb2NrSGFuZGxlcigpKTsKKyAgICAgICAgICAgIG1fY29udGVudEZpbHRlciA9
IG51bGxwdHI7CisgICAgICAgIH0KICAgICB9CiAjZW5kaWYKIApAQCAtODc0LDggKzg3NiwxMCBA
QCB2b2lkIERvY3VtZW50TG9hZGVyOjpkYXRhUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291
cmNlLCBjb25zdCBjaGFyKiBkYXRhLCBpbgogICAgICAgICBkYXRhID0gbV9jb250ZW50RmlsdGVy
LT5nZXRSZXBsYWNlbWVudERhdGEobGVuZ3RoKTsKICAgICAgICAgbG9hZFdhc0Jsb2NrZWRCZWZv
cmVGaW5pc2hpbmcgPSBtX2NvbnRlbnRGaWx0ZXItPmRpZEJsb2NrRGF0YSgpOwogCi0gICAgICAg
IGlmIChsb2FkV2FzQmxvY2tlZEJlZm9yZUZpbmlzaGluZykKLSAgICAgICAgICAgIGZyYW1lTG9h
ZGVyKCktPmNsaWVudCgpLmNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWQoV1RGOjptb3ZlKG1fY29u
dGVudEZpbHRlcikpOworICAgICAgICBpZiAobG9hZFdhc0Jsb2NrZWRCZWZvcmVGaW5pc2hpbmcp
IHsKKyAgICAgICAgICAgIGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLmNvbnRlbnRGaWx0ZXJEaWRC
bG9ja0xvYWQobV9jb250ZW50RmlsdGVyLT51bmJsb2NrSGFuZGxlcigpKTsKKyAgICAgICAgICAg
IG1fY29udGVudEZpbHRlciA9IG51bGxwdHI7CisgICAgICAgIH0KICAgICB9CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBmYzc4NGVlNDcz
MjI4YzY1ZDJhNjE4MmZjYjg0MjU5ZTJlYTI3MDg2Li4yOWY4YmMwY2NlOGMyZmFlNWYzNTFiMjY2
YjdiNTdhNzU3Y2FhNThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGll
bnQuaApAQCAtMzgsNiArMzgsMTAgQEAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KIAorI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKKyNpbmNs
dWRlICJDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIuaCIKKyNlbmRpZgorCiAjaWYgUExBVEZP
Uk0oQ09DT0EpCiAjaWZkZWYgX19PQkpDX18gCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRp
b24uaD4KQEAgLTk4LDEwICsxMDIsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3Mg
UXVpY2tMb29rSGFuZGxlOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcp
Ci0gICAgY2xhc3MgQ29udGVudEZpbHRlcjsKLSNlbmRpZgotCiAgICAgdHlwZWRlZiBzdGQ6OmZ1
bmN0aW9uPHZvaWQgKFBvbGljeUFjdGlvbik+IEZyYW1lUG9saWN5RnVuY3Rpb247CiAKICAgICBj
bGFzcyBXRUJDT1JFX0VYUE9SVCBGcmFtZUxvYWRlckNsaWVudCB7CkBAIC0zMzksNyArMzM5LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxU
RVJJTkcpCi0gICAgICAgIHZpcnR1YWwgdm9pZCBjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkKHN0
ZDo6dW5pcXVlX3B0cjxDb250ZW50RmlsdGVyPikgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBj
b250ZW50RmlsdGVyRGlkQmxvY2tMb2FkKENvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcikgeyB9
CiAjZW5kaWYKICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9D
b250ZW50RmlsdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZW50RmlsdGVyLmgK
aW5kZXggMDRiNDY3ODQ3ZDEyNzc1MzdjOWFhOWI5OTI3ZDM0ZDA3YTRjNTFmNS4uYTYwZTg3MWVk
NTNjZDBhYjhiZjg5MWJkYzU4ZWZkZjgyNzc4YzljNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vQ29udGVudEZpbHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0NvbnRlbnRGaWx0ZXIuaApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKENPTlRFTlRf
RklMVEVSSU5HKQogCisjaW5jbHVkZSAiQ29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyLmgiCiAj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAK
QEAgLTM3LDggKzM4LDYgQEAKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogT0JKQ19DTEFTUyBOU0Rh
dGE7Ci1PQkpDX0NMQVNTIE5TS2V5ZWRBcmNoaXZlcjsKLU9CSkNfQ0xBU1MgTlNLZXllZFVuYXJj
aGl2ZXI7CiBPQkpDX0NMQVNTIFdlYkZpbHRlckV2YWx1YXRvcjsKICNlbmRpZgogCkBAIC02Nywx
NiArNjYsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBuZWVkc01vcmVEYXRhKCkgY29uc3Q7CiAgICAg
Ym9vbCBkaWRCbG9ja0RhdGEoKSBjb25zdDsKICAgICBjb25zdCBjaGFyKiBnZXRSZXBsYWNlbWVu
dERhdGEoaW50JiBsZW5ndGgpIGNvbnN0OwotCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgV0VC
Q09SRV9FWFBPUlQgQ29udGVudEZpbHRlcigpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZW5j
b2RlKE5TS2V5ZWRBcmNoaXZlciAqKSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
Ym9vbCBkZWNvZGUoTlNLZXllZFVuYXJjaGl2ZXIgKiwgQ29udGVudEZpbHRlciYpOwotI2VuZGlm
Ci0KLSNpZiBQTEFURk9STShJT1MpCi0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYW5kbGVVbmJs
b2NrUmVxdWVzdEFuZERpc3BhdGNoSWZTdWNjZXNzZnVsKGNvbnN0IFJlc291cmNlUmVxdWVzdCYs
IHN0ZDo6ZnVuY3Rpb248dm9pZCgpPik7Ci0jZW5kaWYKKyAgICBDb250ZW50RmlsdGVyVW5ibG9j
a0hhbmRsZXIgdW5ibG9ja0hhbmRsZXIoKSBjb25zdDsKIAogcHJpdmF0ZToKICNpZiBQTEFURk9S
TShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRlbnRGaWx0
ZXJVbmJsb2NrSGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGVudEZpbHRl
clVuYmxvY2tIYW5kbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODc1MTRiNjFiNzM5OGY1N2Q0MGVkYjJjOGZh
NDQ2NjdkODdmZmRmZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0NvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlci5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIENvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcl9oCisjZGVmaW5lIENvbnRl
bnRGaWx0ZXJVbmJsb2NrSGFuZGxlcl9oCisKKyNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcp
CisKKyNpbmNsdWRlIDxmdW5jdGlvbmFsPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKwor
T0JKQ19DTEFTUyBOU0tleWVkQXJjaGl2ZXI7CitPQkpDX0NMQVNTIE5TS2V5ZWRVbmFyY2hpdmVy
OworT0JKQ19DTEFTUyBXZWJGaWx0ZXJFdmFsdWF0b3I7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OworCitjbGFzcyBDb250ZW50RmlsdGVyVW5ibG9ja0hh
bmRsZXIgeworcHVibGljOgorICAgIENvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcigpID0gZGVm
YXVsdDsKKyAgICBleHBsaWNpdCBDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIoV2ViRmlsdGVy
RXZhbHVhdG9yICpldmFsdWF0b3IpIDogbV93ZWJGaWx0ZXJFdmFsdWF0b3IgeyBldmFsdWF0b3Ig
fSB7IH0KKworICAgIHZvaWQgY2xlYXIoKSB7IG1fd2ViRmlsdGVyRXZhbHVhdG9yID0gbnVsbHB0
cjsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZW5jb2RlKE5TS2V5ZWRBcmNoaXZlciAqKSBj
b25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBkZWNvZGUoTlNLZXllZFVuYXJj
aGl2ZXIgKiwgQ29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJik7CisKKyNpZiBQTEFURk9STShJ
T1MpCisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYW5kbGVVbmJsb2NrUmVxdWVzdEFuZERpc3Bh
dGNoSWZTdWNjZXNzZnVsKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIHN0ZDo6ZnVuY3Rpb248dm9p
ZCgpPik7CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBSZXRhaW5QdHI8V2ViRmlsdGVyRXZhbHVh
dG9yPiBtX3dlYkZpbHRlckV2YWx1YXRvcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKKworI2VuZGlmIC8vIENvbnRl
bnRGaWx0ZXJVbmJsb2NrSGFuZGxlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9Db250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXJDb2NvYS5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL0NvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlckNvY29hLm1t
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjEyNTQ1NzY2YzhlOGYzNjkwMDZjYmQwY2ZlZjZhNWVkMzMzN2E2YmMKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9Db250ZW50Rmls
dGVyVW5ibG9ja0hhbmRsZXJDb2NvYS5tbQpAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIu
aCIKKworI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKKworI2ltcG9ydCAiUmVzb3VyY2VS
ZXF1ZXN0LmgiCisjaW1wb3J0ICJTb2Z0TGlua2luZy5oIgorI2ltcG9ydCAiV2ViRmlsdGVyRXZh
bHVhdG9yU1BJLmgiCisjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KKworU09GVF9MSU5LX1BSSVZB
VEVfRlJBTUVXT1JLKFdlYkNvbnRlbnRBbmFseXNpcyk7CitTT0ZUX0xJTktfQ0xBU1MoV2ViQ29u
dGVudEFuYWx5c2lzLCBXZWJGaWx0ZXJFdmFsdWF0b3IpOworCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3N0YXRpYyBOU1N0cmluZyAqIGNvbnN0IHBsYXRmb3JtQ29udGVudEZpbHRlcktleSA9IEAi
cGxhdGZvcm1Db250ZW50RmlsdGVyIjsKKwordm9pZCBDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRs
ZXI6OmVuY29kZShOU0tleWVkQXJjaGl2ZXIgKmFyY2hpdmVyKSBjb25zdAoreworICAgIGlmIChb
Z2V0V2ViRmlsdGVyRXZhbHVhdG9yQ2xhc3MoKSBjb25mb3Jtc1RvUHJvdG9jb2w6QHByb3RvY29s
KE5TU2VjdXJlQ29kaW5nKV0pCisgICAgICAgIFthcmNoaXZlciBlbmNvZGVPYmplY3Q6bV93ZWJG
aWx0ZXJFdmFsdWF0b3IuZ2V0KCkgZm9yS2V5OnBsYXRmb3JtQ29udGVudEZpbHRlcktleV07Cit9
CisKK2Jvb2wgQ29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyOjpkZWNvZGUoTlNLZXllZFVuYXJj
aGl2ZXIgKnVuYXJjaGl2ZXIsIENvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciYgdW5ibG9ja0hh
bmRsZXIpCit7CisgICAgQHRyeSB7CisgICAgICAgIGlmIChbZ2V0V2ViRmlsdGVyRXZhbHVhdG9y
Q2xhc3MoKSBjb25mb3Jtc1RvUHJvdG9jb2w6QHByb3RvY29sKE5TU2VjdXJlQ29kaW5nKV0pCisg
ICAgICAgICAgICB1bmJsb2NrSGFuZGxlci5tX3dlYkZpbHRlckV2YWx1YXRvciA9IChXZWJGaWx0
ZXJFdmFsdWF0b3IgKilbdW5hcmNoaXZlciBkZWNvZGVPYmplY3RPZkNsYXNzOmdldFdlYkZpbHRl
ckV2YWx1YXRvckNsYXNzKCkgZm9yS2V5OnBsYXRmb3JtQ29udGVudEZpbHRlcktleV07CisgICAg
ICAgIHJldHVybiB0cnVlOworICAgIH0gQGNhdGNoIChOU0V4Y2VwdGlvbiAqZXhjZXB0aW9uKSB7
CisgICAgICAgIExPR19FUlJPUigiVGhlIHBsYXRmb3JtIGNvbnRlbnQgZmlsdGVyIGJlaW5nIGRl
Y29kZWQgaXMgbm90IGEgV2ViRmlsdGVyRXZhbHVhdG9yLiIpOworICAgIH0KKyAgICAKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKKyNpZiBQTEFURk9STShJT1MpCitzdGF0aWMgaW5saW5lIGNvbnN0
IGNoYXIqIHNjaGVtZSgpCit7CisgICAgc3RhdGljIGNvbnN0IGNoYXIgY29udGVudEZpbHRlclNj
aGVtZVtdID0gIngtYXBwbGUtY29udGVudC1maWx0ZXIiOworICAgIHJldHVybiBjb250ZW50Rmls
dGVyU2NoZW1lOworfQorCitib29sIENvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcjo6aGFuZGxl
VW5ibG9ja1JlcXVlc3RBbmREaXNwYXRjaElmU3VjY2Vzc2Z1bChjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBmdW5jdGlvbikKK3sKKyAgICBpZiAo
IW1fd2ViRmlsdGVyRXZhbHVhdG9yKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAo
IXJlcXVlc3QudXJsKCkucHJvdG9jb2xJcyhzY2hlbWUoKSkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIGlmICghZXF1YWxJZ25vcmluZ0Nhc2UocmVxdWVzdC51cmwoKS5ob3N0KCksICJ1
bmJsb2NrIikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFttX3dlYkZpbHRlckV2YWx1
YXRvciB1bmJsb2NrV2l0aENvbXBsZXRpb246XihCT09MIHVuYmxvY2tlZCwgTlNFcnJvciAqKSB7
CisgICAgICAgIGlmICh1bmJsb2NrZWQpCisgICAgICAgICAgICBmdW5jdGlvbigpOworICAgIH1d
OworICAgIHJldHVybiB0cnVlOworfQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIFBMQVRGT1JNKElPUykgJiYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0NvbnRlbnRGaWx0ZXJJT1Mu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvQ29udGVudEZpbHRlcklPUy5tbQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjRiN2ZlOWNjY2FiZTNiYzZmNmFkNWEzMjRhMTI3
ZjZiMzI4OTk2Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvQ29udGVudEZpbHRlcklPUy5tbQorKysgL2Rl
di9udWxsCkBAIC0xLDYwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIK
LSNpbXBvcnQgIkNvbnRlbnRGaWx0ZXIuaCIKLQotI2lmIFBMQVRGT1JNKElPUykgJiYgRU5BQkxF
KENPTlRFTlRfRklMVEVSSU5HKQotCi0jaW1wb3J0ICJSZXNvdXJjZVJlcXVlc3QuaCIKLSNpbXBv
cnQgIldlYkNvcmVUaHJlYWRSdW4uaCIKLSNpbXBvcnQgIldlYkZpbHRlckV2YWx1YXRvclNQSS5o
IgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXN0YXRpYyBpbmxpbmUgY29uc3QgY2hhciogc2No
ZW1lKCkKLXsKLSAgICBzdGF0aWMgY29uc3QgY2hhciBjb250ZW50RmlsdGVyU2NoZW1lW10gPSAi
eC1hcHBsZS1jb250ZW50LWZpbHRlciI7Ci0gICAgcmV0dXJuIGNvbnRlbnRGaWx0ZXJTY2hlbWU7
Ci19Ci0KLWJvb2wgQ29udGVudEZpbHRlcjo6aGFuZGxlVW5ibG9ja1JlcXVlc3RBbmREaXNwYXRj
aElmU3VjY2Vzc2Z1bChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIHN0ZDo6ZnVuY3Rp
b248dm9pZCgpPiBmdW5jdGlvbikKLXsKLSAgICBpZiAoIXJlcXVlc3QudXJsKCkucHJvdG9jb2xJ
cyhzY2hlbWUoKSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmICghZXF1YWxJZ25v
cmluZ0Nhc2UocmVxdWVzdC51cmwoKS5ob3N0KCksICJ1bmJsb2NrIikpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLQotICAgIFttX3BsYXRmb3JtQ29udGVudEZpbHRlciB1bmJsb2NrV2l0aENvbXBs
ZXRpb246XihCT09MIHVuYmxvY2tlZCwgTlNFcnJvciAqKSB7Ci0gICAgICAgIGlmICh1bmJsb2Nr
ZWQpCi0gICAgICAgICAgICBmdW5jdGlvbigpOwotICAgIH1dOwotICAgIHJldHVybiB0cnVlOwot
fQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBQTEFURk9STShJT1MpICYm
IEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9Db250ZW50RmlsdGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL0NvbnRlbnRGaWx0ZXJNYWMubW0KaW5kZXggMjg1YjAxYTFiYmUwZDFmMzQzMDYwMmFmYjdk
ZGRkMzc2MjZlZTM0YS4uYWZjNmMxMTNjZGI4NGEyYWJlYjQyOTEyNzU0MGQwNjBiZTYyMWZlZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0NvbnRlbnRGaWx0ZXJNYWMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0NvbnRlbnRGaWx0ZXJNYWMubW0K
QEAgLTQ0LDE0ICs0NCw2IEBAIFNPRlRfTElOS19DTEFTUyhXZWJDb250ZW50QW5hbHlzaXMsIFdl
YkZpbHRlckV2YWx1YXRvcik7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ29udGVudEZpbHRl
cjo6Q29udGVudEZpbHRlcigpCi0jaWYgSEFWRShORV9GSUxURVJfU09VUkNFKQotICAgIDogbV9u
ZUZpbHRlclNvdXJjZVN0YXR1cyhORUZpbHRlclNvdXJjZVN0YXR1c05lZWRzTW9yZURhdGEpCi0g
ICAgLCBtX25lRmlsdGVyU291cmNlUXVldWUoMCkKLSNlbmRpZgotewotfQotCiBDb250ZW50Rmls
dGVyOjpDb250ZW50RmlsdGVyKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogI2lm
IEhBVkUoTkVfRklMVEVSX1NPVVJDRSkKICAgICA6IG1fbmVGaWx0ZXJTb3VyY2VTdGF0dXMoTkVG
aWx0ZXJTb3VyY2VTdGF0dXNOZWVkc01vcmVEYXRhKQpAQCAtMjAyLDI1ICsxOTQsOSBAQCBjb25z
dCBjaGFyKiBDb250ZW50RmlsdGVyOjpnZXRSZXBsYWNlbWVudERhdGEoaW50JiBsZW5ndGgpIGNv
bnN0CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihbb3JpZ2luYWxEYXRhIGJ5
dGVzXSk7CiB9CiAKLXN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IHBsYXRmb3JtQ29udGVudEZpbHRl
cktleSA9IEAicGxhdGZvcm1Db250ZW50RmlsdGVyIjsKLQotdm9pZCBDb250ZW50RmlsdGVyOjpl
bmNvZGUoTlNLZXllZEFyY2hpdmVyICphcmNoaXZlcikgY29uc3QKLXsKLSAgICBpZiAoW2dldFdl
YkZpbHRlckV2YWx1YXRvckNsYXNzKCkgY29uZm9ybXNUb1Byb3RvY29sOkBwcm90b2NvbChOU1Nl
Y3VyZUNvZGluZyldKQotICAgICAgICBbYXJjaGl2ZXIgZW5jb2RlT2JqZWN0Om1fcGxhdGZvcm1D
b250ZW50RmlsdGVyLmdldCgpIGZvcktleTpwbGF0Zm9ybUNvbnRlbnRGaWx0ZXJLZXldOwotfQot
Ci1ib29sIENvbnRlbnRGaWx0ZXI6OmRlY29kZShOU0tleWVkVW5hcmNoaXZlciAqdW5hcmNoaXZl
ciwgQ29udGVudEZpbHRlciYgY29udGVudEZpbHRlcikKK0NvbnRlbnRGaWx0ZXJVbmJsb2NrSGFu
ZGxlciBDb250ZW50RmlsdGVyOjp1bmJsb2NrSGFuZGxlcigpIGNvbnN0CiB7Ci0gICAgQHRyeSB7
Ci0gICAgICAgIGlmIChbZ2V0V2ViRmlsdGVyRXZhbHVhdG9yQ2xhc3MoKSBjb25mb3Jtc1RvUHJv
dG9jb2w6QHByb3RvY29sKE5TU2VjdXJlQ29kaW5nKV0pCi0gICAgICAgICAgICBjb250ZW50Rmls
dGVyLm1fcGxhdGZvcm1Db250ZW50RmlsdGVyID0gKFdlYkZpbHRlckV2YWx1YXRvciAqKVt1bmFy
Y2hpdmVyIGRlY29kZU9iamVjdE9mQ2xhc3M6Z2V0V2ViRmlsdGVyRXZhbHVhdG9yQ2xhc3MoKSBm
b3JLZXk6cGxhdGZvcm1Db250ZW50RmlsdGVyS2V5XTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgfSBAY2F0Y2ggKE5TRXhjZXB0aW9uICpleGNlcHRpb24pIHsKLSAgICAgICAgTE9HX0VSUk9S
KCJUaGUgcGxhdGZvcm0gY29udGVudCBmaWx0ZXIgYmVpbmcgZGVjb2RlZCBpcyBub3QgYSBXZWJG
aWx0ZXJFdmFsdWF0b3IuIik7Ci0gICAgfQotCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVy
biBDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIgeyBtX3BsYXRmb3JtQ29udGVudEZpbHRlci5n
ZXQoKSB9OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCA1
ZTM3NmVlYzIyMmRkN2YwY2U5NDMxMzIzNDhlMTIyNzQ3ZWRlZjQ2Li5mZmYyMGU0ZWI1MGE4NWM3
MzMyNjdjYTJlNWQ2MmFiZmIwOWVmZGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTIzOSw3ICsyMzks
NyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVRdWlja0xvb2tIYW5kbGUo
V2ViQ29yZTo6UXVpY2tMb29rSGFuZGxlJikgb3ZlcnJpZGU7CiAjZW5kaWYKIAotICAgIHZpcnR1
YWwgdm9pZCBjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3Jl
OjpDb250ZW50RmlsdGVyPikgb3ZlcnJpZGU7CisgICAgdm9pZCBjb250ZW50RmlsdGVyRGlkQmxv
Y2tMb2FkKFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcikgb3ZlcnJpZGU7CiAK
ICAgICBSZXRhaW5QdHI8V2ViRnJhbWU+IG1fd2ViRnJhbWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KaW5k
ZXggZTFmMzdkYmIwNWZhMzI1ZjM3MDVlNzk0NzJiZGI1ODAyM2M2ZTQ0ZS4uOTY2ZjdhMmRjODU1
NDA0ZWVlMDFlNDk4MTFhY2NlOGRlMjYzNzliZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KKysrIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KQEAgLTY2Miw3
ICs2NjIsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZFN0YXJ0UHJv
dmlzaW9uYWxMb2FkKCkKIHsKICAgICBBU1NFUlQoIW1fd2ViRnJhbWUtPl9wcml2YXRlLT5wcm92
aXNpb25hbFVSTCk7CiAgICAgbV93ZWJGcmFtZS0+X3ByaXZhdGUtPnByb3Zpc2lvbmFsVVJMID0g
Y29yZShtX3dlYkZyYW1lLmdldCgpKS0+bG9hZGVyKCkucHJvdmlzaW9uYWxEb2N1bWVudExvYWRl
cigpLT51cmwoKS5zdHJpbmcoKTsKLSAgICBtX3dlYkZyYW1lLT5fcHJpdmF0ZS0+Y29udGVudEZp
bHRlckZvckJsb2NrZWRMb2FkID0gbnVsbHB0cjsKKyAgICBtX3dlYkZyYW1lLT5fcHJpdmF0ZS0+
Y29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyLmNsZWFyKCk7CiAKICAgICBXZWJWaWV3ICp3ZWJW
aWV3ID0gZ2V0V2ViVmlldyhtX3dlYkZyYW1lLmdldCgpKTsKICNpZiAhUExBVEZPUk0oSU9TKQpA
QCAtMjIzOSw5ICsyMjM5LDkgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkQ3JlYXRl
UXVpY2tMb29rSGFuZGxlKFdlYkNvcmU6OlF1aWNrTG9va0hhbmRsZSYgaGEKIH0KICNlbmRpZgog
Ci12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkKHN0
ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDb250ZW50RmlsdGVyPiBjb250ZW50RmlsdGVyKQordm9p
ZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y29udGVudEZpbHRlckRpZEJsb2NrTG9hZChXZWJDb3Jl
OjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIgdW5ibG9ja0hhbmRsZXIpCiB7Ci0gICAgbV93
ZWJGcmFtZS0+X3ByaXZhdGUtPmNvbnRlbnRGaWx0ZXJGb3JCbG9ja2VkTG9hZCA9IFdURjo6bW92
ZShjb250ZW50RmlsdGVyKTsKKyAgICBtX3dlYkZyYW1lLT5fcHJpdmF0ZS0+Y29udGVudEZpbHRl
clVuYmxvY2tIYW5kbGVyID0gV1RGOjptb3ZlKHVuYmxvY2tIYW5kbGVyKTsKIH0KIAogQGltcGxl
bWVudGF0aW9uIFdlYkZyYW1lUG9saWN5TGlzdGVuZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YkZyYW1lLm1tCmluZGV4IDhjODIxZWE4NWUyODUzOWM0OWQzNWRhY2E4M2VkZmNjMTkyZjdmOWMu
LmY5ODQwYmU2OWUwYTM0Y2QxNTViZmRjZDg5YTNiZmJiNGRmNTNlNjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJGcmFtZS5tbQpAQCAtMTAwNSwxNyArMTAwNSwxNSBAQCAtICh2b2lkKV9j
b21taXREYXRhOihOU0RhdGEgKilkYXRhCiAtIChCT09MKV9jb250ZW50RmlsdGVyRGlkSGFuZGxl
TmF2aWdhdGlvbkFjdGlvbjooY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0ICYpcmVxdWVz
dAogewogI2lmIFBMQVRGT1JNKElPUykKLSAgICBpZiAoQ29udGVudEZpbHRlciAqY29udGVudEZp
bHRlciA9IF9wcml2YXRlLT5jb250ZW50RmlsdGVyRm9yQmxvY2tlZExvYWQuZ2V0KCkpIHsKLSAg
ICAgICAgUmV0YWluUHRyPFdlYkZyYW1lPiByZXRhaW5lZE1haW5GcmFtZSA9IFtbc2VsZiB3ZWJW
aWV3XSBtYWluRnJhbWVdOwotICAgICAgICByZXR1cm4gY29udGVudEZpbHRlci0+aGFuZGxlVW5i
bG9ja1JlcXVlc3RBbmREaXNwYXRjaElmU3VjY2Vzc2Z1bChyZXF1ZXN0LCBbcmV0YWluZWRNYWlu
RnJhbWVdIHsKLSAgICAgICAgICAgIFdlYlRocmVhZFJ1biheIHsKLSAgICAgICAgICAgICAgICBb
cmV0YWluZWRNYWluRnJhbWUgcmVsb2FkXTsKLSAgICAgICAgICAgIH0pOworICAgIFJldGFpblB0
cjxXZWJGcmFtZT4gcmV0YWluZWRNYWluRnJhbWUgPSBbW3NlbGYgd2ViVmlld10gbWFpbkZyYW1l
XTsKKyAgICByZXR1cm4gX3ByaXZhdGUtPmNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlci5oYW5k
bGVVbmJsb2NrUmVxdWVzdEFuZERpc3BhdGNoSWZTdWNjZXNzZnVsKHJlcXVlc3QsIFtyZXRhaW5l
ZE1haW5GcmFtZV0geworICAgICAgICBXZWJUaHJlYWRSdW4oXiB7CisgICAgICAgICAgICBbcmV0
YWluZWRNYWluRnJhbWUgcmVsb2FkXTsKICAgICAgICAgfSk7Ci0gICAgfQotI2VuZGlmCi0KKyAg
ICB9KTsKKyNlbHNlCiAgICAgcmV0dXJuIE5POworI2VuZGlmCiB9CiAKIEBlbmQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZUludGVybmFsLmgKaW5kZXggMmY0NTliYTM0YzA0
N2VmZDZmMDdhYzQxNDY3MjQxMDA0OGQyZDA0MC4uZGNjNTQwNjU2NGM0OTNlM2U3YzU2ZTNiOGI1
YmYxZTc1MDg0NGVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJG
cmFtZUludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZUlu
dGVybmFsLmgKQEAgLTMwLDcgKzMwLDcgQEAKIAogI2ltcG9ydCAiV2ViRnJhbWVQcml2YXRlLmgi
CiAjaW1wb3J0ICJXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaCIKLSNpbXBvcnQgPFdlYkNvcmUvQ29u
dGVudEZpbHRlci5oPgorI2ltcG9ydCA8V2ViQ29yZS9Db250ZW50RmlsdGVyVW5ibG9ja0hhbmRs
ZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvRWRpdEFjdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9G
cmFtZUxvYWRlclR5cGVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lU2VsZWN0aW9uLmg+CkBA
IC05Miw3ICs5Miw3IEBAIFdlYlZpZXcgKmdldFdlYlZpZXcoV2ViRnJhbWUgKndlYkZyYW1lKTsK
ICNpZiBQTEFURk9STShJT1MpCiAgICAgQk9PTCBpc0NvbW1pdHRpbmc7CiAjZW5kaWYKLSAgICBz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q29udGVudEZpbHRlcj4gY29udGVudEZpbHRlckZvckJs
b2NrZWRMb2FkOworICAgIFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciBjb250
ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXI7CiB9CiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCAxY2RkYjg5MzY3OGJiYzFlNTgyYTdk
ZDJlNjExYTYwZGY2NDc0YTdhLi43ZmJlOTQwNTdjMTNjYmNjMzQ1NDU3YWNjOTdhMTE3NjJkMmM2
ZjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5o
CkBAIC0xMTAsNyArMTEwLDcgQEAgc3RydWN0IFZpZXdwb3J0QXJndW1lbnRzOwogCiAjaWYgRU5B
QkxFKENPTlRFTlRfRklMVEVSSU5HKQogbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgQ29udGVu
dEZpbHRlcjsKK2NsYXNzIENvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcjsKIH0KICNlbmRpZgog
CkBAIC00MzcsOSArNDM3LDkgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpCbG9iUGFydD4gewogfTsKIAogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKLXRl
bXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q29udGVudEZpbHRlcj4gewot
ICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpD
b250ZW50RmlsdGVyJik7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYs
IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXImKTsKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyPiB7CisgICAgc3RhdGljIHZv
aWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXJV
bmJsb2NrSGFuZGxlciYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIm
LCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImKTsKIH07CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9XZWJDb3JlQXJndW1lbnRDb2Rl
cnNNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVy
c01hYy5tbQppbmRleCAzZWJhOTM2OGUwZWZmOTYwNDFlYzJjN2ZmZThjYjg1NzY5OTM3OGJlLi5h
MWFjZGRhYzBkMTc5NzZjNjUyNzY1ZjBjY2ZmZjViZWYwMGFhOTIyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQpAQCAt
MzEsNyArMzEsNyBAQAogI2ltcG9ydCAiRGF0YVJlZmVyZW5jZS5oIgogI2ltcG9ydCAiV2ViS2l0
U3lzdGVtSW50ZXJmYWNlLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0NlcnRpZmljYXRlSW5mby5oPgot
I2ltcG9ydCA8V2ViQ29yZS9Db250ZW50RmlsdGVyLmg+CisjaW1wb3J0IDxXZWJDb3JlL0NvbnRl
bnRGaWx0ZXJVbmJsb2NrSGFuZGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9DcmVkZW50aWFsLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvTWFj
aFNlbmRSaWdodC5oPgpAQCAtNDA3LDE3ICs0MDcsMTcgQEAgYm9vbCBBcmd1bWVudENvZGVyPEtl
eXByZXNzQ29tbWFuZD46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEtleXByZXNz
Q28KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPENvbnRlbnRGaWx0
ZXI+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDb250ZW50RmlsdGVy
JiBjb250ZW50RmlsdGVyKQordm9pZCBBcmd1bWVudENvZGVyPENvbnRlbnRGaWx0ZXJVbmJsb2Nr
SGFuZGxlcj46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IENvbnRlbnRG
aWx0ZXJVbmJsb2NrSGFuZGxlciYgY29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyKQogewogICAg
IFJldGFpblB0cjxOU011dGFibGVEYXRhPiBkYXRhID0gYWRvcHROUyhbW05TTXV0YWJsZURhdGEg
YWxsb2NdIGluaXRdKTsKICAgICBSZXRhaW5QdHI8TlNLZXllZEFyY2hpdmVyPiBhcmNoaXZlciA9
IGFkb3B0TlMoW1tOU0tleWVkQXJjaGl2ZXIgYWxsb2NdIGluaXRGb3JXcml0aW5nV2l0aE11dGFi
bGVEYXRhOmRhdGEuZ2V0KCldKTsKICAgICBbYXJjaGl2ZXIgc2V0UmVxdWlyZXNTZWN1cmVDb2Rp
bmc6WUVTXTsKLSAgICBjb250ZW50RmlsdGVyLmVuY29kZShhcmNoaXZlci5nZXQoKSk7CisgICAg
Y29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyLmVuY29kZShhcmNoaXZlci5nZXQoKSk7CiAgICAg
W2FyY2hpdmVyIGZpbmlzaEVuY29kaW5nXTsKICAgICBJUEM6OmVuY29kZShlbmNvZGVyLCByZWlu
dGVycHJldF9jYXN0PENGRGF0YVJlZj4oZGF0YS5nZXQoKSkpOwogfQogCi1ib29sIEFyZ3VtZW50
Q29kZXI8Q29udGVudEZpbHRlcj46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIENv
bnRlbnRGaWx0ZXImIGNvbnRlbnRGaWx0ZXIpCitib29sIEFyZ3VtZW50Q29kZXI8Q29udGVudEZp
bHRlclVuYmxvY2tIYW5kbGVyPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgQ29u
dGVudEZpbHRlclVuYmxvY2tIYW5kbGVyJiBjb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIpCiB7
CiAgICAgUmV0YWluUHRyPENGRGF0YVJlZj4gZGF0YTsKICAgICBpZiAoIUlQQzo6ZGVjb2RlKGRl
Y29kZXIsIGRhdGEpKQpAQCAtNDI1LDcgKzQyNSw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxDb250
ZW50RmlsdGVyPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgQ29udGVudEZpbHRl
CiAKICAgICBSZXRhaW5QdHI8TlNLZXllZFVuYXJjaGl2ZXI+IHVuYXJjaGl2ZXIgPSBhZG9wdE5T
KFtbTlNLZXllZFVuYXJjaGl2ZXIgYWxsb2NdIGluaXRGb3JSZWFkaW5nV2l0aERhdGE6KE5TRGF0
YSAqKWRhdGEuZ2V0KCldKTsKICAgICBbdW5hcmNoaXZlciBzZXRSZXF1aXJlc1NlY3VyZUNvZGlu
ZzpZRVNdOwotICAgIGlmICghQ29udGVudEZpbHRlcjo6ZGVjb2RlKHVuYXJjaGl2ZXIuZ2V0KCks
IGNvbnRlbnRGaWx0ZXIpKQorICAgIGlmICghQ29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyOjpk
ZWNvZGUodW5hcmNoaXZlci5nZXQoKSwgY29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgW3VuYXJjaGl2ZXIgZmluaXNoRGVjb2RpbmddOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNv
Y29hLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29h
Lm1tCmluZGV4IGZjYTA5YzY0ZTBlMWIwMDUxNWM1Y2Y1YTUxNjY3OTkwNmUwYTA4MjYuLmMzNTY3
ZGVjYWI0MzVjNTFkZWMzMTNlMDY5MDZmZDE5Njk3ZGViNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KQEAgLTcyLDEwICs3
MiwxMCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IFN0cmlu
ZyYgbmFtZSwgVmVjdG9yPFN0cmluZz4mIHNlYXJjaAogICAgIH0KIH0KIAotdm9pZCBXZWJQYWdl
UHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShjb25zdCBXZWJDb3JlOjpD
b250ZW50RmlsdGVyJiBjb250ZW50RmlsdGVyLCB1aW50NjRfdCBmcmFtZUlEKQordm9pZCBXZWJQ
YWdlUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShjb25zdCBXZWJDb3Jl
OjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXImIHVuYmxvY2tIYW5kbGVyLCB1aW50NjRfdCBm
cmFtZUlEKQogewogICAgIGlmIChXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2Vi
RnJhbWUoZnJhbWVJRCkpCi0gICAgICAgIGZyYW1lLT5zZXRDb250ZW50RmlsdGVyRm9yQmxvY2tl
ZExvYWQoc3RkOjptYWtlX3VuaXF1ZTxXZWJDb3JlOjpDb250ZW50RmlsdGVyPihjb250ZW50Rmls
dGVyKSk7CisgICAgICAgIGZyYW1lLT5zZXRDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIodW5i
bG9ja0hhbmRsZXIpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViRnJhbWVQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnJhbWVQ
cm94eS5jcHAKaW5kZXggNzZkZTdlOGViMzY5Mzc3Y2VjMmIzY2FkODMzOGNmZWY2NTU4YjUzNi4u
ZjgzMjc0N2RlOWJjOGZhZTk0YWE1OThhYTFhMTE4NDdiZTE2YjUyNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcApAQCAtMTI4LDcgKzEyOCw3IEBAIHZvaWQg
V2ViRnJhbWVQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWQoY29uc3QgU3RyaW5nJiB1cmwp
CiB7CiAgICAgbV9mcmFtZUxvYWRTdGF0ZS5kaWRTdGFydFByb3Zpc2lvbmFsTG9hZCh1cmwpOwog
I2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKLSAgICBtX2NvbnRlbnRGaWx0ZXJGb3JCbG9j
a2VkTG9hZCA9IG51bGxwdHI7CisgICAgbV9jb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIuY2xl
YXIoKTsKICNlbmRpZgogfQogCkBAIC0yMzcsMTUgKzIzNywxMyBAQCB2b2lkIFdlYkZyYW1lUHJv
eHk6OnNldFVucmVhY2hhYmxlVVJMKGNvbnN0IFN0cmluZyYgdW5yZWFjaGFibGVVUkwpCiBib29s
IFdlYkZyYW1lUHJveHk6OmNvbnRlbnRGaWx0ZXJEaWRIYW5kbGVOYXZpZ2F0aW9uQWN0aW9uKGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKICNpZiBQTEFURk9STShJ
T1MpCi0gICAgaWYgKG1fY29udGVudEZpbHRlckZvckJsb2NrZWRMb2FkKSB7Ci0gICAgICAgIFJl
ZlB0cjxXZWJQYWdlUHJveHk+IHJldGFpbmVkUGFnZSA9IG1fcGFnZTsKLSAgICAgICAgcmV0dXJu
IG1fY29udGVudEZpbHRlckZvckJsb2NrZWRMb2FkLT5oYW5kbGVVbmJsb2NrUmVxdWVzdEFuZERp
c3BhdGNoSWZTdWNjZXNzZnVsKHJlcXVlc3QsIFtyZXRhaW5lZFBhZ2VdIHsKLSAgICAgICAgICAg
IHJldGFpbmVkUGFnZS0+cmVsb2FkKGZhbHNlKTsKLSAgICAgICAgfSk7Ci0gICAgfQotI2VuZGlm
Ci0KKyAgICBSZWZQdHI8V2ViUGFnZVByb3h5PiByZXRhaW5lZFBhZ2UgPSBtX3BhZ2U7CisgICAg
cmV0dXJuIG1fY29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyLmhhbmRsZVVuYmxvY2tSZXF1ZXN0
QW5kRGlzcGF0Y2hJZlN1Y2Nlc3NmdWwocmVxdWVzdCwgW3JldGFpbmVkUGFnZV0geworICAgICAg
ICByZXRhaW5lZFBhZ2UtPnJlbG9hZChmYWxzZSk7CisgICAgfSk7CisjZWxzZQogICAgIHJldHVy
biBmYWxzZTsKKyNlbmRpZgogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
RnJhbWVQcm94eS5oCmluZGV4IDQxYTU5OTZhMzVhZDhlMThhZDlhYjkwNDc5Njk0MjBmYWY2ZTgx
MWIuLjg4YTAyZDg5MjkwMzBkNzI4MTkzYjAyMjdkY2MxOTk0ZDAxY2ZlMjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaApAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5H
KQotI2luY2x1ZGUgPFdlYkNvcmUvQ29udGVudEZpbHRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyLmg+CiAjZW5kaWYKIAogbmFtZXNwYWNlIEFQSSB7
CkBAIC0xMjMsNyArMTIzLDcgQEAgcHVibGljOgogICAgIFdlYkZvcm1TdWJtaXNzaW9uTGlzdGVu
ZXJQcm94eSYgc2V0VXBGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHkodWludDY0X3QgbGlzdGVu
ZXJJRCk7CiAKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCi0gICAgdm9pZCBzZXRDb250
ZW50RmlsdGVyRm9yQmxvY2tlZExvYWQoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNvbnRlbnRG
aWx0ZXI+IGNvbnRlbnRGaWx0ZXIpIHsgbV9jb250ZW50RmlsdGVyRm9yQmxvY2tlZExvYWQgPSBX
VEY6Om1vdmUoY29udGVudEZpbHRlcik7IH0KKyAgICB2b2lkIHNldENvbnRlbnRGaWx0ZXJVbmJs
b2NrSGFuZGxlcihXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIgY29udGVudEZp
bHRlclVuYmxvY2tIYW5kbGVyKSB7IG1fY29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyID0gV1RG
Ojptb3ZlKGNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcik7IH0KICAgICBib29sIGNvbnRlbnRG
aWx0ZXJEaWRIYW5kbGVOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYpOwogI2VuZGlmCiAKQEAgLTE0Miw3ICsxNDIsNyBAQCBwcml2YXRlOgogICAgIHVpbnQ2
NF90IG1fZnJhbWVJRDsKIAogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKLSAgICBzdGQ6
OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q29udGVudEZpbHRlcj4gbV9jb250ZW50RmlsdGVyRm9yQmxv
Y2tlZExvYWQ7CisgICAgV2ViQ29yZTo6Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyIG1fY29u
dGVudEZpbHRlclVuYmxvY2tIYW5kbGVyOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggZTQwOTNjMGM5ZGNmM2JmODgxMjg1NzAzMTBkOTUx
NzNhNjlmOTNmYS4uODMzOGM1NmQ5ODg0ZGE0NmYwMmY4OWFhOGZjNzQ0MTZkYWExZDVlMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTM2Niw3ICsxMzY2LDcg
QEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQotICAg
IHZvaWQgY29udGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lKGNvbnN0IFdlYkNvcmU6OkNv
bnRlbnRGaWx0ZXImLCB1aW50NjRfdCBmcmFtZUlEKTsKKyAgICB2b2lkIGNvbnRlbnRGaWx0ZXJE
aWRCbG9ja0xvYWRGb3JGcmFtZShjb25zdCBXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hh
bmRsZXImLCB1aW50NjRfdCBmcmFtZUlEKTsKICNlbmRpZgogCiAgICAgdWludDY0X3QgZ2VuZXJh
dGVOYXZpZ2F0aW9uSUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDM2NTRhZjc5ZDI0NjllZTY3MTE1YWQ0MWI4YThkNjk2
YWIwZmU3OTcuLjEyMTFlZDAxODU1ZDA5Njk3YjNkN2JhYTQwM2YxMDBhNmUzYjVhNzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpA
QCAtNDE0LDcgKzQxNCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKLSAgICBDb250ZW50RmlsdGVyRGlkQmxvY2tM
b2FkRm9yRnJhbWUoV2ViQ29yZTo6Q29udGVudEZpbHRlciBjb250ZW50RmlsdGVyLCB1aW50NjRf
dCBmcmFtZUlEKQorICAgIENvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZShXZWJDb3Jl
OjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIgdW5ibG9ja0hhbmRsZXIsIHVpbnQ2NF90IGZy
YW1lSUQpCiAjZW5kaWYKIAogICAgIElzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlKGJvb2wgbmV3SXNQ
bGF5aW5nQXVkaW8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDc1Mjlm
OTJjNzE0ZTBiOWViYTEzYTU1YmUwNDBjZjg2YThiNzhiNzcuLjYxMjdjODE1Zjg5MDEwZTk0Yzgx
NzExODE1ZWY5MTVjNjQ5MTBlM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CkBAIC0xNjQ2LDEwICsxNjQ2LDEwIEBAIFBhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4
dD4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0CiB9CiAKICNp
ZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpj
b250ZW50RmlsdGVyRGlkQmxvY2tMb2FkKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDb250ZW50
RmlsdGVyPiBjb250ZW50RmlsdGVyKQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y29udGVu
dEZpbHRlckRpZEJsb2NrTG9hZChXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIg
dW5ibG9ja0hhbmRsZXIpCiB7CiAgICAgaWYgKFdlYlBhZ2UqIHdlYlBhZ2UgPSBtX2ZyYW1lLT5w
YWdlKCkpCi0gICAgICAgIHdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q29u
dGVudEZpbHRlckRpZEJsb2NrTG9hZEZvckZyYW1lKCpjb250ZW50RmlsdGVyLCBtX2ZyYW1lLT5m
cmFtZUlEKCkpKTsKKyAgICAgICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpDb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWUodW5ibG9ja0hhbmRsZXIsIG1fZnJh
bWUtPmZyYW1lSUQoKSkpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
aAppbmRleCA4NDgwZTY0MmIzOWUxYzkxYmEzZTQyNTVhMjUzYjk4ODJiMDA1ODVkLi4wN2YxN2Nl
ZjIwNGZjMDRiMDRkODA4ZTZiZjM2NDg2Yjc2ZWRlMDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5oCkBAIC0yMzIsNyArMjMyLDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYgRU5B
QkxFKENPTlRFTlRfRklMVEVSSU5HKQotICAgIHZpcnR1YWwgdm9pZCBjb250ZW50RmlsdGVyRGlk
QmxvY2tMb2FkKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDb250ZW50RmlsdGVyPikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkKFdlYkNvcmU6OkNvbnRlbnRG
aWx0ZXJVbmJsb2NrSGFuZGxlcikgb3ZlcnJpZGU7CiAjZW5kaWYKIAogICAgIFdlYkZyYW1lKiBt
X2ZyYW1lOwo=
</data>
<flag name="review"
          id="272737"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>