<?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>152371</bug_id>
          
          <creation_ts>2015-12-16 18:14:13 -0800</creation_ts>
          <short_desc>Progress towards implementing downloads with NetworkSession</short_desc>
          <delta_ts>2015-12-16 23:10:00 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1149833</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-12-16 18:14:13 -0800</bug_when>
    <thetext>Progress towards implementing downloads with NetworkSession</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1149835</commentid>
    <comment_count>1</comment_count>
      <attachid>267518</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-12-16 18:14:54 -0800</bug_when>
    <thetext>Created attachment 267518
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1149878</commentid>
    <comment_count>2</comment_count>
      <attachid>267518</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-12-16 21:23:30 -0800</bug_when>
    <thetext>Comment on attachment 267518
Patch

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

&gt; Source/WebKit2/Shared/Downloads/Download.h:65
&gt; +#if !USE(NETWORK_SESSION)
&gt; +class ResourceHandle;
&gt; +#endif

Seems unnecessary to put a conditional on a forward declaration. Also not great to have the #if in the middle like this. Normally we would put something in a separate paragraph. But I suggest just leaving this in unconditionally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1149923</commentid>
    <comment_count>3</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-12-16 23:10:00 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 267518 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=267518&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/Shared/Downloads/Download.h:65
&gt; &gt; +#if !USE(NETWORK_SESSION)
&gt; &gt; +class ResourceHandle;
&gt; &gt; +#endif
&gt; 
&gt; Seems unnecessary to put a conditional on a forward declaration. Also not
&gt; great to have the #if in the middle like this. Normally we would put
&gt; something in a separate paragraph. But I suggest just leaving this in
&gt; unconditionally.

I am trying to make sure to never use ResourceHandle in WebKit2 when using NetworkSession, but one ResourceHandle forward declaration doesn&apos;t hurt.

Committed to http://trac.webkit.org/changeset/194211</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267518</attachid>
            <date>2015-12-16 18:14:54 -0800</date>
            <delta_ts>2015-12-16 21:23:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152371-20151216181416.patch</filename>
            <type>text/plain</type>
            <size>25452</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NDIwMSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ3IEBACisyMDE1LTEyLTE2ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHJvZ3Jlc3Mg
dG93YXJkcyBpbXBsZW1lbnRpbmcgZG93bmxvYWRzIHdpdGggTmV0d29ya1Nlc3Npb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MjM3MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6
ZG93bmxvYWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnJlc3Vt
ZURvd25sb2FkKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmNhbmNlbERvd25s
b2FkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAq
IFNoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpBdXRoZW50aWNhdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSk6CisgICAgICAgICogU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0
aW9uTWFuYWdlci5oOgorICAgICAgICAqIFNoYXJlZC9Eb3dubG9hZHMvRG93bmxvYWQuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6RG93bmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpE
b3dubG9hZDo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKiBT
aGFyZWQvRG93bmxvYWRzL0Rvd25sb2FkLmg6CisgICAgICAgICogU2hhcmVkL0Rvd25sb2Fkcy9E
b3dubG9hZE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZE1hbmFnZXI6OnN0
YXJ0RG93bmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZE1hbmFnZXI6OmNvbnZlcnRI
YW5kbGVUb0Rvd25sb2FkKToKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRNYW5hZ2VyOjpyZXN1
bWVEb3dubG9hZCk6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkTWFuYWdlcjo6Y2FuY2VsRG93
bmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZE1hbmFnZXI6OmRvd25sb2FkRmluaXNo
ZWQpOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZE1hbmFnZXI6OmRpZENyZWF0ZURvd25sb2Fk
KToKKyAgICAgICAgKiBTaGFyZWQvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oOgorICAgICAg
ICAqIFNoYXJlZC9Eb3dubG9hZHMvY29jb2E6IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC9Eb3du
bG9hZHMvY29jb2EvRG93bmxvYWRDb2NvYS5tbTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OkRv
d25sb2FkOjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpyZXN1bWUpOgorICAg
ICAgICAoV2ViS2l0OjpEb3dubG9hZDo6Y2FuY2VsKToKKyAgICAgICAgKFdlYktpdDo6RG93bmxv
YWQ6OnBsYXRmb3JtSW52YWxpZGF0ZSk6CisgICAgICAgICogU2hhcmVkL0Rvd25sb2Fkcy9pb3Mv
RG93bmxvYWRJT1MubW06CisgICAgICAgICogU2hhcmVkL0Rvd25sb2Fkcy9tYWMvRG93bmxvYWRN
YWMubW06CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkOjpzdGFydCk6CisgICAgICAgIChXZWJL
aXQ6OkRvd25sb2FkOjpzdGFydFdpdGhIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9h
ZDo6cmVzdW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cmVzdW1lRG93bmxvYWQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKwogMjAxNS0xMi0xNiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9y
dG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMTk0MTI1KTogQ3Jhc2hlcyBp
biB0b3VjaGVzRW5kZWRXaXRoRXZlbnQgb24gb2NjYXNpb24gd2hlbiBpbnRlcmFjdGluZyB3aXRo
IHRoZSBwYWdlCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuY3BwCShyZXZpc2lvbiAxOTQxNTUpCisrKyBTb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzNyw5ICs0
MzcsOSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpkb3dubG9hZFJlcXVlc3QoU2VzCiAgICAgZG93
bmxvYWRNYW5hZ2VyKCkuc3RhcnREb3dubG9hZChzZXNzaW9uSUQsIGRvd25sb2FkSUQsIHJlcXVl
c3QpOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpyZXN1bWVEb3dubG9hZCh1aW50NjRfdCBk
b3dubG9hZElELCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIHJlc3VtZURhdGEsIGNvbnN0IFN0
cmluZyYgcGF0aCwgY29uc3QgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmIHNhbmRi
b3hFeHRlbnNpb25IYW5kbGUpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpyZXN1bWVEb3dubG9hZChT
ZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBkb3dubG9hZElELCBjb25zdCBJUEM6OkRhdGFS
ZWZlcmVuY2UmIHJlc3VtZURhdGEsIGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgV2ViS2l0OjpT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpCiB7Ci0gICAg
ZG93bmxvYWRNYW5hZ2VyKCkucmVzdW1lRG93bmxvYWQoZG93bmxvYWRJRCwgcmVzdW1lRGF0YSwg
cGF0aCwgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSk7CisgICAgZG93bmxvYWRNYW5hZ2VyKCkucmVz
dW1lRG93bmxvYWQoc2Vzc2lvbklELCBkb3dubG9hZElELCByZXN1bWVEYXRhLCBwYXRoLCBzYW5k
Ym94RXh0ZW5zaW9uSGFuZGxlKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6Y2FuY2VsRG93
bmxvYWQodWludDY0X3QgZG93bmxvYWRJRCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAkocmV2aXNpb24gMTk0MTU1KQorKysgU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAkod29ya2luZyBjb3B5KQpA
QCAtMTUwLDcgKzE1MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjbGVhckRpc2tDYWNoZShzdGQ6
OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UsIHN0ZDo6ZnVu
Y3Rpb248dm9pZCAoKT4gY29tcGxldGlvbkhhbmRsZXIpOwogCiAgICAgdm9pZCBkb3dubG9hZFJl
cXVlc3QoV2ViQ29yZTo6U2Vzc2lvbklELCB1aW50NjRfdCBkb3dubG9hZElELCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKLSAgICB2b2lkIHJlc3VtZURvd25sb2FkKHVpbnQ2NF90
IGRvd25sb2FkSUQsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgcmVzdW1lRGF0YSwgY29uc3Qg
U3RyaW5nJiBwYXRoLCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmKTsKKyAgICB2b2lk
IHJlc3VtZURvd25sb2FkKFdlYkNvcmU6OlNlc3Npb25JRCwgdWludDY0X3QgZG93bmxvYWRJRCwg
Y29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiByZXN1bWVEYXRhLCBjb25zdCBTdHJpbmcmIHBhdGgs
IGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYpOwogICAgIHZvaWQgY2FuY2VsRG93bmxv
YWQodWludDY0X3QgZG93bmxvYWRJRCk7CiAgICAgdm9pZCBzZXRDYWNoZU1vZGVsKHVpbnQzMl90
KTsKICAgICB2b2lkIGFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjb25zdCBX
ZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mLCBjb25zdCBTdHJpbmcmIGhvc3QpOwpJbmRleDogU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
bWVzc2FnZXMuaW4JKHJldmlzaW9uIDE5NDE1NSkKKysrIFNvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC00MCw3
ICs0MCw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmUKICAgICBE
ZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoV2ViQ29yZTo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
dWludDY0X3Qgd2Vic2l0ZURhdGFUeXBlcywgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YT4gb3JpZ2lucywgVmVjdG9yPFN0cmluZz4gY29va2llSG9zdE5hbWVzLCB1aW50NjRfdCBj
YWxsYmFja0lEKQogCiAgICAgRG93bmxvYWRSZXF1ZXN0KFdlYkNvcmU6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIHVpbnQ2NF90IGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1
ZXN0KQotICAgIFJlc3VtZURvd25sb2FkKHVpbnQ2NF90IGRvd25sb2FkSUQsIElQQzo6RGF0YVJl
ZmVyZW5jZSByZXN1bWVEYXRhLCBTdHJpbmcgcGF0aCwgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSkKKyAgICBSZXN1bWVEb3dubG9hZChXZWJD
b3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBkb3dubG9hZElELCBJUEM6OkRhdGFS
ZWZlcmVuY2UgcmVzdW1lRGF0YSwgU3RyaW5nIHBhdGgsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpCiAgICAgQ2FuY2VsRG93bmxvYWQodWlu
dDY0X3QgZG93bmxvYWRJRCkKIAogICAgIFNldFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQoYm9v
bCBmbGFnKQpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhl
bnRpY2F0aW9uTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVk
L0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAJKHJldmlzaW9uIDE5NDE1
NSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlv
bk1hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjAsNyArMTYwLDcgQEAgdm9pZCBBdXRo
ZW50aWNhdGlvbk1hbmFnZXI6OmRpZFJlY2VpdmVBdQogfQogCiAjaWYgIVVTRShORVRXT1JLX1NF
U1NJT04pCi12b2lkIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKERvd25sb2FkKiBkb3dubG9hZCwgY29uc3QgQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UmIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKQordm9pZCBBdXRoZW50aWNhdGlvbk1hbmFn
ZXI6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShEb3dubG9hZCYgZG93bmxvYWQs
IGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSkK
IHsKICAgICB1aW50NjRfdCBkdW1teVBhZ2VJRCA9IDA7CiAgICAgdWludDY0X3QgY2hhbGxlbmdl
SUQgPSBhZGRDaGFsbGVuZ2VUb0NoYWxsZW5nZU1hcCh7ZHVtbXlQYWdlSUQsIGF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlfSk7CkBAIC0xNjksNyArMTY5LDcgQEAgdm9pZCBBdXRoZW50aWNhdGlvbk1h
bmFnZXI6OmRpZFJlY2VpdmVBdQogICAgIGlmIChzaG91bGRDb2FsZXNjZUNoYWxsZW5nZShkdW1t
eVBhZ2VJRCwgY2hhbGxlbmdlSUQsIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgZG93bmxvYWQtPnNlbmQoTWVzc2FnZXM6OkRvd25sb2FkUHJveHk6OkRp
ZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSwg
Y2hhbGxlbmdlSUQpKTsKKyAgICBkb3dubG9hZC5zZW5kKE1lc3NhZ2VzOjpEb3dubG9hZFByb3h5
OjpEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoYXV0aGVudGljYXRpb25DaGFsbGVu
Z2UsIGNoYWxsZW5nZUlEKSk7CiB9CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dlYktpdDIvU2hh
cmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFn
ZXIuaAkocmV2aXNpb24gMTk0MTU1KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0F1dGhlbnRp
Y2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw4ICs2
MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZShXZWJGcmFtZSosIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CiAg
ICAgLy8gQ2FsbGVkIGZvciByZXNvdXJjZXMgaW4gdGhlIE5ldHdvcmtQcm9jZXNzIChOZXR3b3Jr
UHJvY2VzcyBlbmFibGVkKQogICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6QXV0
aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKLSAgICAvLyBDYWxsZWQgZm9yIGRvd25sb2FkcyB3aXRo
IG9yIHdpdGhvdXQgdGhlIE5ldHdvcmtQcm9jZXNzCi0gICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UoRG93bmxvYWQqLCBjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSYpOworICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KERvd25sb2FkJiwgY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKIAog
ICAgIHZvaWQgdXNlQ3JlZGVudGlhbEZvckNoYWxsZW5nZSh1aW50NjRfdCBjaGFsbGVuZ2VJRCwg
Y29uc3QgV2ViQ29yZTo6Q3JlZGVudGlhbCYsIGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5m
byYpOwogICAgIHZvaWQgY29udGludWVXaXRob3V0Q3JlZGVudGlhbEZvckNoYWxsZW5nZSh1aW50
NjRfdCBjaGFsbGVuZ2VJRCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRG93bmxvYWRz
L0Rvd25sb2FkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRG93bmxv
YWRzL0Rvd25sb2FkLmNwcAkocmV2aXNpb24gMTk0MTU1KQorKysgU291cmNlL1dlYktpdDIvU2hh
cmVkL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDEwICs0Mywx
NyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKKyNp
ZiBVU0UoTkVUV09SS19TRVNTSU9OKQorRG93bmxvYWQ6OkRvd25sb2FkKERvd25sb2FkTWFuYWdl
ciYgZG93bmxvYWRNYW5hZ2VyLCBjb25zdCBOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgdWludDY0
X3QgZG93bmxvYWRJRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQorI2Vsc2UKIERv
d25sb2FkOjpEb3dubG9hZChEb3dubG9hZE1hbmFnZXImIGRvd25sb2FkTWFuYWdlciwgdWludDY0
X3QgZG93bmxvYWRJRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQorI2VuZGlmCiAg
ICAgOiBtX2Rvd25sb2FkTWFuYWdlcihkb3dubG9hZE1hbmFnZXIpCiAgICAgLCBtX2Rvd25sb2Fk
SUQoZG93bmxvYWRJRCkKICAgICAsIG1fcmVxdWVzdChyZXF1ZXN0KQorI2lmIFVTRShORVRXT1JL
X1NFU1NJT04pCisgICAgLCBtX3Nlc3Npb24oc2Vzc2lvbikKKyNlbmRpZgogewogICAgIEFTU0VS
VChtX2Rvd25sb2FkSUQpOwogCkBAIC03MCw3ICs3Nyw3IEBAIHZvaWQgRG93bmxvYWQ6OmRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkMKICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQogICAgIG5vdElt
cGxlbWVudGVkKCk7CiAjZWxzZQotICAgIG1fZG93bmxvYWRNYW5hZ2VyLmRvd25sb2Fkc0F1dGhl
bnRpY2F0aW9uTWFuYWdlcigpLmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSh0aGlz
LCBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk7CisgICAgbV9kb3dubG9hZE1hbmFnZXIuZG93bmxv
YWRzQXV0aGVudGljYXRpb25NYW5hZ2VyKCkuZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKCp0aGlzLCBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk7CiAjZW5kaWYKIH0KIApJbmRleDog
U291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9Eb3dubG9hZC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMvRG93bmxvYWQuaAkocmV2aXNpb24gMTk0
MTU1KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9Eb3dubG9hZC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01MywxNSArNTMsMTcgQEAgT0JKQ19DTEFTUyBXS0Rvd25sb2FkQXNEZWxl
Z2F0ZTsKICNlbmRpZgogCiBuYW1lc3BhY2UgSVBDIHsKLSAgICBjbGFzcyBEYXRhUmVmZXJlbmNl
OworY2xhc3MgRGF0YVJlZmVyZW5jZTsKIH0KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIGNs
YXNzIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOwotICAgIGNsYXNzIENyZWRlbnRpYWw7Ci0gICAg
Y2xhc3MgUmVzb3VyY2VFcnJvcjsKLSAgICBjbGFzcyBSZXNvdXJjZUhhbmRsZTsKLSAgICBjbGFz
cyBSZXNvdXJjZVJlc3BvbnNlOworY2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2U7CitjbGFz
cyBDcmVkZW50aWFsOworY2xhc3MgUmVzb3VyY2VFcnJvcjsKKyNpZiAhVVNFKE5FVFdPUktfU0VT
U0lPTikKK2NsYXNzIFJlc291cmNlSGFuZGxlOworI2VuZGlmCitjbGFzcyBSZXNvdXJjZVJlc3Bv
bnNlOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTY5LDE2ICs3MSwyMyBAQCBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIGNsYXNzIERvd25sb2FkQXV0aGVudGljYXRpb25DbGllbnQ7CiBjbGFzcyBE
b3dubG9hZE1hbmFnZXI7CiBjbGFzcyBOZXR3b3JrRGF0YVRhc2s7CitjbGFzcyBOZXR3b3JrU2Vz
c2lvbjsKIGNsYXNzIFdlYlBhZ2U7CiAKIGNsYXNzIERvd25sb2FkIDogcHVibGljIElQQzo6TWVz
c2FnZVNlbmRlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRG93bmxvYWQpOwogcHVibGlj
OgorI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCisgICAgRG93bmxvYWQoRG93bmxvYWRNYW5hZ2Vy
JiwgY29uc3QgTmV0d29ya1Nlc3Npb24mLCB1aW50NjRfdCBkb3dubG9hZElELCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKKyNlbHNlCiAgICAgRG93bmxvYWQoRG93bmxvYWRNYW5h
Z2VyJiwgdWludDY0X3QgZG93bmxvYWRJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
Jik7CisjZW5kaWYKICAgICB+RG93bmxvYWQoKTsKIAogICAgIHZvaWQgc3RhcnQoKTsKLSNpZiAh
VVNFKE5FVFdPUktfU0VTU0lPTikKKyNpZiBVU0UoTkVUV09SS19TRVNTSU9OKSAmJiBQTEFURk9S
TShDT0NPQSkKKyAgICB2b2lkIGRhdGFUYXNrRGlkQmVjb21lRG93bmxvYWRUYXNrKGNvbnN0IE5l
dHdvcmtTZXNzaW9uJiwgUmV0YWluUHRyPE5TVVJMU2Vzc2lvbkRvd25sb2FkVGFzaz4mJik7Cisj
ZWxzZQogICAgIHZvaWQgc3RhcnRXaXRoSGFuZGxlKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlKiwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwogI2VuZGlmCiAgICAgdm9pZCByZXN1
bWUoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiByZXN1bWVEYXRhLCBjb25zdCBTdHJpbmcmIHBh
dGgsIGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYpOwpAQCAtMTI4LDYgKzEzNyw3IEBA
IHByaXZhdGU6CiAKICNpZiBQTEFURk9STShDT0NPQSkKICNpZiBVU0UoTkVUV09SS19TRVNTSU9O
KQorICAgIGNvbnN0IE5ldHdvcmtTZXNzaW9uJiBtX3Nlc3Npb247CiAgICAgUmV0YWluUHRyPE5T
VVJMU2Vzc2lvbkRvd25sb2FkVGFzaz4gbV9kb3dubG9hZDsKICNlbHNlCiAgICAgUmV0YWluUHRy
PE5TVVJMRG93bmxvYWQ+IG1fbnNVUkxEb3dubG9hZDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5jcHAJKHJldmlzaW9uIDE5
NDE1NSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMvRG93bmxvYWRNYW5hZ2Vy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkRvd25sb2Fk
TWFuYWdlci5oIgogCiAjaW5jbHVkZSAiRG93bmxvYWQuaCIKKyNpbmNsdWRlICJTZXNzaW9uVHJh
Y2tlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KQEAgLTQz
LDE0ICs0NCwxNyBAQCBEb3dubG9hZE1hbmFnZXI6OkRvd25sb2FkTWFuYWdlcihDbGllbnQqCiB2
b2lkIERvd25sb2FkTWFuYWdlcjo6c3RhcnREb3dubG9hZChTZXNzaW9uSUQgc2Vzc2lvbklELCB1
aW50NjRfdCBkb3dubG9hZElELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7CiAj
aWYgVVNFKE5FVFdPUktfU0VTU0lPTikKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIGF1dG8q
IG5ldHdvcmtTZXNzaW9uID0gU2Vzc2lvblRyYWNrZXI6Om5ldHdvcmtTZXNzaW9uKHNlc3Npb25J
RCk7CisgICAgaWYgKCFuZXR3b3JrU2Vzc2lvbikKKyAgICAgICAgcmV0dXJuOworICAgIGF1dG8g
ZG93bmxvYWQgPSBzdGQ6Om1ha2VfdW5pcXVlPERvd25sb2FkPigqdGhpcywgKm5ldHdvcmtTZXNz
aW9uLCBkb3dubG9hZElELCByZXF1ZXN0KTsKICNlbHNlCiAgICAgYXV0byBkb3dubG9hZCA9IHN0
ZDo6bWFrZV91bmlxdWU8RG93bmxvYWQ+KCp0aGlzLCBkb3dubG9hZElELCByZXF1ZXN0KTsKKyNl
bmRpZgogICAgIGRvd25sb2FkLT5zdGFydCgpOwogCiAgICAgQVNTRVJUKCFtX2Rvd25sb2Fkcy5j
b250YWlucyhkb3dubG9hZElEKSk7CiAgICAgbV9kb3dubG9hZHMuYWRkKGRvd25sb2FkSUQsIFdU
Rjo6bW92ZShkb3dubG9hZCkpOwotI2VuZGlmCiB9CiAKICNpZiAhVVNFKE5FVFdPUktfU0VTU0lP
TikKQEAgLTY0LDcgKzY4LDcgQEAgdm9pZCBEb3dubG9hZE1hbmFnZXI6OmNvbnZlcnRIYW5kbGVU
b0RvdwogfQogI2VuZGlmCiAKLXZvaWQgRG93bmxvYWRNYW5hZ2VyOjpyZXN1bWVEb3dubG9hZCh1
aW50NjRfdCBkb3dubG9hZElELCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIHJlc3VtZURhdGEs
IGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBzYW5k
Ym94RXh0ZW5zaW9uSGFuZGxlKQordm9pZCBEb3dubG9hZE1hbmFnZXI6OnJlc3VtZURvd25sb2Fk
KFdlYkNvcmU6OlNlc3Npb25JRCwgdWludDY0X3QgZG93bmxvYWRJRCwgY29uc3QgSVBDOjpEYXRh
UmVmZXJlbmNlJiByZXN1bWVEYXRhLCBjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFNhbmRib3hF
eHRlbnNpb246OkhhbmRsZSYgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSkKIHsKICNpZiBVU0UoTkVU
V09SS19TRVNTSU9OKQogICAgIG5vdEltcGxlbWVudGVkKCk7CkBAIC04MCwyNSArODQsMTcgQEAg
dm9pZCBEb3dubG9hZE1hbmFnZXI6OnJlc3VtZURvd25sb2FkKHVpbgogCiB2b2lkIERvd25sb2Fk
TWFuYWdlcjo6Y2FuY2VsRG93bmxvYWQodWludDY0X3QgZG93bmxvYWRJRCkKIHsKLSNpZiBVU0Uo
TkVUV09SS19TRVNTSU9OKQotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0jZWxzZQogICAgIERvd25s
b2FkKiBkb3dubG9hZCA9IG1fZG93bmxvYWRzLmdldChkb3dubG9hZElEKTsKICAgICBpZiAoIWRv
d25sb2FkKQogICAgICAgICByZXR1cm47CiAKICAgICBkb3dubG9hZC0+Y2FuY2VsKCk7Ci0jZW5k
aWYKIH0KIAogdm9pZCBEb3dubG9hZE1hbmFnZXI6OmRvd25sb2FkRmluaXNoZWQoRG93bmxvYWQq
IGRvd25sb2FkKQogewotI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCi0gICAgbm90SW1wbGVtZW50
ZWQoKTsKLSNlbHNlCiAgICAgQVNTRVJUKG1fZG93bmxvYWRzLmNvbnRhaW5zKGRvd25sb2FkLT5k
b3dubG9hZElEKCkpKTsKICAgICBtX2Rvd25sb2Fkcy5yZW1vdmUoZG93bmxvYWQtPmRvd25sb2Fk
SUQoKSk7Ci0jZW5kaWYKIH0KIAogdm9pZCBEb3dubG9hZE1hbmFnZXI6OmRpZENyZWF0ZURvd25s
b2FkKCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMvRG93bmxvYWRNYW5h
Z2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9Eb3du
bG9hZE1hbmFnZXIuaAkocmV2aXNpb24gMTk0MTU1KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVk
L0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNzQsNyArNzQs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb252ZXJ0SGFuZGxlVG9Eb3dubG9hZCh1aW50NjRfdCBk
b3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKICNlbmRpZgog
Ci0gICAgdm9pZCByZXN1bWVEb3dubG9hZCh1aW50NjRfdCBkb3dubG9hZElELCBjb25zdCBJUEM6
OkRhdGFSZWZlcmVuY2UmIHJlc3VtZURhdGEsIGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlJik7CisgICAgdm9pZCByZXN1bWVEb3dubG9hZChXZWJDb3Jl
OjpTZXNzaW9uSUQsIHVpbnQ2NF90IGRvd25sb2FkSUQsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5j
ZSYgcmVzdW1lRGF0YSwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGUmKTsKIAogICAgIHZvaWQgY2FuY2VsRG93bmxvYWQodWludDY0X3QgZG93bmxvYWRJ
RCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Eb3dubG9hZHMvY29jb2EvRG93bmxv
YWRDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRG93bmxvYWRz
L2NvY29hL0Rvd25sb2FkQ29jb2EubW0JKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvRG93bmxvYWRzL2NvY29hL0Rvd25sb2FkQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAi
RG93bmxvYWQuaCIKKworI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCisKKyNpbXBvcnQgPFdlYkNv
cmUvTm90SW1wbGVtZW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgRG93bmxv
YWQ6OnN0YXJ0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIERvd25sb2Fk
OjpyZXN1bWUoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiByZXN1bWVEYXRhLCBjb25zdCBTdHJp
bmcmIHBhdGgsIGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYgc2FuZGJveEV4dGVuc2lv
bkhhbmRsZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorICAgIAordm9pZCBEb3dubG9h
ZDo6Y2FuY2VsKCkKK3sKKyAgICBbbV9kb3dubG9hZCBjYW5jZWxdOworfQorCit2b2lkIERvd25s
b2FkOjpwbGF0Zm9ybUludmFsaWRhdGUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
K30KKworI2VuZGlmIC8vIFVTRShORVRXT1JLX1NFU1NJT04pCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvRG93bmxvYWRzL2lvcy9Eb3dubG9hZElPUy5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvRG93bmxvYWRzL2lvcy9Eb3dubG9hZElPUy5tbQkocmV2aXNpb24g
MTk0MTU1KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9pb3MvRG93bmxvYWRJ
T1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAKICNpbXBvcnQgImNvbmZpZy5o
IgogI2ltcG9ydCAiRG93bmxvYWQuaCIKIAotI2lmIFBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9S
TShJT1MpICYmICFVU0UoTkVUV09SS19TRVNTSU9OKQogCiAjaW1wb3J0ICJEYXRhUmVmZXJlbmNl
LmgiCiAjaW1wb3J0IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvRG93bmxvYWRzL21hYy9Eb3dubG9hZE1hYy5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvRG93bmxvYWRzL21hYy9Eb3dubG9hZE1hYy5tbQkocmV2aXNp
b24gMTk0MTU1KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0Rvd25sb2Fkcy9tYWMvRG93bmxv
YWRNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTU4LDEwICs1OCw4IEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogCiB2b2lkIERvd25sb2FkOjpzdGFydCgpCiB7Ci0jaWYgIVVTRShORVRXT1JLX1NFU1NJ
T04pCiAgICAgQVNTRVJUKCFtX25zVVJMRG93bmxvYWQpOwogICAgIEFTU0VSVCghbV9kZWxlZ2F0
ZSk7Ci0jZW5kaWYKIAogICAgIG1fZGVsZWdhdGUgPSBhZG9wdE5TKFtbV0tEb3dubG9hZEFzRGVs
ZWdhdGUgYWxsb2NdIGluaXRXaXRoRG93bmxvYWQ6dGhpc10pOwogI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIHB1c2gKQEAgLTczLDcgKzcxLDYgQEAgdm9pZCBEb3dubG9hZDo6c3RhcnQoKQogICAg
IFttX25zVVJMRG93bmxvYWQgc2V0RGVsZXRlc0ZpbGVVcG9uRmFpbHVyZTpOT107CiB9CiAKLSNp
ZiAhVVNFKE5FVFdPUktfU0VTU0lPTikKIHZvaWQgRG93bmxvYWQ6OnN0YXJ0V2l0aEhhbmRsZShS
ZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkK
IHsKICAgICBBU1NFUlQoIW1fbnNVUkxEb3dubG9hZCk7CkBAIC04OSw3ICs4Niw2IEBAIHZvaWQg
RG93bmxvYWQ6OnN0YXJ0V2l0aEhhbmRsZShSZXNvdXJjZUgKICAgICAvLyBGSVhNRTogQWxsb3cg
dGhpcyB0byBiZSBjaGFuZ2VkIGJ5IHRoZSBjbGllbnQuCiAgICAgW21fbnNVUkxEb3dubG9hZCBz
ZXREZWxldGVzRmlsZVVwb25GYWlsdXJlOk5PXTsKIH0KLSNlbmRpZgogCiB2b2lkIERvd25sb2Fk
OjpyZXN1bWUoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiByZXN1bWVEYXRhLCBjb25zdCBTdHJp
bmcmIHBhdGgsIGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYgc2FuZGJveEV4dGVuc2lv
bkhhbmRsZSkKIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmNwcAkocmV2aXNpb24gMTk0MTU1KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzg2LDcgKzc4Niw5IEBAIERvd25s
b2FkUHJveHkqIFdlYlByb2Nlc3NQb29sOjpyZXN1bWVEb3cKICAgICAgICAgU2FuZGJveEV4dGVu
c2lvbjo6Y3JlYXRlSGFuZGxlKHBhdGgsIFNhbmRib3hFeHRlbnNpb246OlJlYWRXcml0ZSwgc2Fu
ZGJveEV4dGVuc2lvbkhhbmRsZSk7CiAKICAgICBpZiAobmV0d29ya1Byb2Nlc3MoKSkgewotICAg
ICAgICBuZXR3b3JrUHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6UmVz
dW1lRG93bmxvYWQoZG93bmxvYWRQcm94eS0+ZG93bmxvYWRJRCgpLCByZXN1bWVEYXRhLT5kYXRh
UmVmZXJlbmNlKCksIHBhdGgsIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpLCAwKTsKKyAgICAgICAg
Ly8gRklYTUU6IElmIHdlIHN0YXJ0ZWQgYSBkb3dubG9hZCBpbiBhbiBlcGhlbWVyYWwgc2Vzc2lv
biBhbmQgdGhhdCBzZXNzaW9uIHN0aWxsIGV4aXN0cywgd2Ugc2hvdWxkIGZpbmQgYSB3YXkgdG8g
dXNlIHRoYXQgc2FtZSBzZXNzaW9uLgorICAgICAgICBTZXNzaW9uSUQgc2Vzc2lvbklEID0gU2Vz
c2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CisgICAgICAgIG5ldHdvcmtQcm9jZXNzKCktPnNl
bmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpSZXN1bWVEb3dubG9hZChzZXNzaW9uSUQsIGRv
d25sb2FkUHJveHktPmRvd25sb2FkSUQoKSwgcmVzdW1lRGF0YS0+ZGF0YVJlZmVyZW5jZSgpLCBw
YXRoLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKSwgMCk7CiAgICAgICAgIHJldHVybiBkb3dubG9h
ZFByb3h5OwogICAgIH0KIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmgJKHJldmlzaW9uIDE5NDE1NSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOTQsOCArMjk0LDYgQEAgcHVibGlj
OgogICAgIHN0YXRpYyB2b2lkIHdpbGxTdGFydFVzaW5nUHJpdmF0ZUJyb3dzaW5nKCk7CiAgICAg
c3RhdGljIHZvaWQgd2lsbFN0b3BVc2luZ1ByaXZhdGVCcm93c2luZygpOwogCi0gICAgc3RhdGlj
IGJvb2wgaXNFcGhlbWVyYWxTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCk7Ci0KICNpZiBVU0Uo
U09VUCkKICAgICB2b2lkIHNldElnbm9yZVRMU0Vycm9ycyhib29sKTsKICAgICBib29sIGlnbm9y
ZVRMU0Vycm9ycygpIGNvbnN0IHsgcmV0dXJuIG1faWdub3JlVExTRXJyb3JzOyB9CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShy
ZXZpc2lvbiAxOTQxNTUpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTY0LDkgKzY0LDkgQEAKIAkJMDBCOTY2MTYx
OEUyNENCQTAwQ0UxRjg4IC8qIEFQSUZpbmRDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDAwQjk2NjE1MThFMjRDQkEwMENFMUY4OCAvKiBBUElG
aW5kQ2xpZW50LmggKi87IH07CiAJCTAwQjk2NjE5MThFMjVBRTEwMENFMUY4OCAvKiBGaW5kQ2xp
ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDBC
OTY2MTcxOEUyNUFFMTAwQ0UxRjg4IC8qIEZpbmRDbGllbnQubW0gKi87IH07CiAJCTAwQjk2NjFB
MThFMjVBRTEwMENFMUY4OCAvKiBGaW5kQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwMEI5NjYxODE4RTI1QUUxMDBDRTFGODggLyogRmluZENs
aWVudC5oICovOyB9OwotCQkwNzI5N0Y5RTFDMTdCQkVBMDAzRjA3MzUgLyogVXNlck1lZGlhUGVy
bWlzc2lvbkNoZWNrUHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDcyOTdGOUMxQzE3QkJFQTAwM0YwNzM1IC8qIFVzZXJNZWRpYVBlcm1pc3Np
b25DaGVja1Byb3h5LmNwcCAqLzsgc2V0dGluZ3MgPSB7QVNTRVRfVEFHUyA9ICgpOyB9OyB9Owot
CQkwNzI5N0Y5RjFDMTdCQkVBMDAzRjA3MzUgLyogVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJv
eHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mjk3
RjlEMUMxN0JCRUEwMDNGMDczNSAvKiBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oICov
OyBzZXR0aW5ncyA9IHtBU1NFVF9UQUdTID0gKCk7IH07IH07Ci0JCTA3Mjk3RkEyMUMxODZBREIw
MDNGMDczNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25DaGVjay5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzI5N0ZBMDFDMTg2QURCMDAzRjA3MzUg
LyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2suY3BwICovOyBzZXR0aW5ncyA9IHtBU1NFVF9U
QUdTID0gKCk7IH07IH07CisJCTA3Mjk3RjlFMUMxN0JCRUEwMDNGMDczNSAvKiBVc2VyTWVkaWFQ
ZXJtaXNzaW9uQ2hlY2tQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwNzI5N0Y5QzFDMTdCQkVBMDAzRjA3MzUgLyogVXNlck1lZGlhUGVybWlz
c2lvbkNoZWNrUHJveHkuY3BwICovOyB9OworCQkwNzI5N0Y5RjFDMTdCQkVBMDAzRjA3MzUgLyog
VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Mjk3RjlEMUMxN0JCRUEwMDNGMDczNSAvKiBVc2VyTWVk
aWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oICovOyB9OworCQkwNzI5N0ZBMjFDMTg2QURCMDAzRjA3
MzUgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyOTdGQTAxQzE4NkFEQjAwM0YwNzM1IC8qIFdL
VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrLmNwcCAqLzsgfTsKIAkJMDcyOTdGQTMxQzE4NkFEQjAw
M0YwNzM1IC8qIFdLVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzI5N0ZBMTFDMTg2QURCMDAzRjA3MzUgLyog
V0tVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkwNzZFODg0RTFBMTNDQURGMDA1RTkwRkMgLyogQVBJQ29u
dGV4dE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA3NkU4ODREMUExM0NBREYwMDVFOTBGQyAvKiBBUElDb250ZXh0TWVudUNsaWVudC5o
ICovOyB9OwogCQkwRjBDMzY1ODE4QzA1MUJBMDBGNjA3RDcgLyogUmVtb3RlTGF5ZXJUcmVlSG9z
dElPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
MEMzNjU3MThDMDUxQkEwMEY2MDdENyAvKiBSZW1vdGVMYXllclRyZWVIb3N0SU9TLm1tICovOyB9
OwpAQCAtMTA2Niw2ICsxMDY2LDcgQEAKIAkJNTI4QzM3QzExOTVDQkIxQTAwRDhCOUNDIC8qIFdL
QmFja0ZvcndhcmRMaXN0UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUE5RjI4MTAxOTU4RjQ3ODAwOENBQzcyIC8qIFdLQmFja0ZvcndhcmRM
aXN0UHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTVDMjBDQjlEMUJCMERDRkEwMDg5NUJCMSAvKiBOZXR3b3JrU2Vzc2lvbkNvY29hLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMyMENCOUIx
QkIwRENEMjAwODk1QkIxIC8qIE5ldHdvcmtTZXNzaW9uQ29jb2EubW0gKi87IH07CiAJCTVDMjBD
QkEwMUJCMUVDRDgwMDg5NUJCMSAvKiBOZXR3b3JrU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMyMENCOUUxQkIwREQxODAwODk1QkIxIC8q
IE5ldHdvcmtTZXNzaW9uLmggKi87IH07CisJCTVDOUI4NjEzMUMyMjNFQUYwMDExMEYzNiAvKiBE
b3dubG9hZENvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNUM5Qjg2MTExQzIyM0U3OTAwMTEwRjM2IC8qIERvd25sb2FkQ29jb2EubW0gKi87IH07
CiAJCTVEQTZFRDBBMTQ5MDYwNjkwMEI0MUQxMiAvKiBEeW5hbWljTGlua2VyRW52aXJvbm1lbnRF
eHRyYWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDVEQTZFRDA4MTQ5MDYwNjkwMEI0MUQxMiAvKiBEeW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRy
YWN0b3IuaCAqLzsgfTsKIAkJNURBNkVEMEIxNDkwNjA2OTAwQjQxRDEyIC8qIER5bmFtaWNMaW5r
ZXJFbnZpcm9ubWVudEV4dHJhY3Rvci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDVEQTZFRDA5MTQ5MDYwNjkwMEI0MUQxMiAvKiBEeW5hbWljTGlua2Vy
RW52aXJvbm1lbnRFeHRyYWN0b3IubW0gKi87IH07CiAJCTY1MDFCRDFBMTJGMTI0MzQwMEU5RjI0
OCAvKiBXS0J1bmRsZUluc3BlY3Rvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA2NUI4NkYxNzEyRjExRDdCMDBCN0REOEEgLyogV0tCdW5kbGVJbnNw
ZWN0b3IuY3BwICovOyB9OwpAQCAtMzI1Nyw2ICszMjU4LDcgQEAKIAkJNTI3MkIyODkxNDA2OTg1
RDAwOTZBNUQwIC8qIFN0YXRpc3RpY3NEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFN0YXRpc3RpY3NEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVD
MjBDQjlCMUJCMERDRDIwMDg5NUJCMSAvKiBOZXR3b3JrU2Vzc2lvbkNvY29hLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gTmV0d29ya1Nlc3Npb25Db2NvYS5tbTsg
cGF0aCA9IE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDMjBDQjlFMUJCMEREMTgwMDg5NUJCMSAvKiBOZXR3
b3JrU2Vzc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrU2Vz
c2lvbi5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUM5Qjg2MTExQzIyM0U3OTAwMTEwRjM2IC8qIERvd25sb2Fk
Q29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBEb3dubG9h
ZENvY29hLm1tOyBwYXRoID0gRG93bmxvYWRzL2NvY29hL0Rvd25sb2FkQ29jb2EubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVENDQyQTU1MTZENTg1NjcwMEFDMzMzMSAvKiBQbHVn
aW5TZXJ2aWNlLmVudGl0bGVtZW50cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQueG1sOyBwYXRoID0gUGx1Z2luU2VydmljZS5lbnRpdGxlbWVu
dHM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVEQTZFRDA4MTQ5MDYwNjkwMEI0MUQx
MiAvKiBEeW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRyYWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRHluYW1pY0xpbmtlckVudmlyb25tZW50RXh0cmFjdG9yLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVEQTZFRDA5MTQ5MDYwNjkwMEI0MUQxMiAvKiBE
eW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRyYWN0b3IubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBEeW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRyYWN0b3IubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NzQzLDYgKzU3NDUsNyBAQAogCQk1MThF
OEVGMjE2QjIwOEY4MDBFOTE0MjkgLyogRG93bmxvYWRzICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1QzlCODYwRTFDMjIzRTU0MDAxMTBGMzYgLyogY29j
b2EgKi8sCiAJCQkJMkRBOTQ0QTUxODg0RTkzQzAwRUQ4NkRCIC8qIGlvcyAqLywKIAkJCQk1MThF
OEYwNDE2QjIwOTM3MDBFOTE0MjkgLyogbWFjICovLAogCQkJCTUxOEU4RUZFMTZCMjA5MzcwMEU5
MTQyOSAvKiBEb3dubG9hZC5jcHAgKi8sCkBAIC01ODk2LDYgKzU4OTksMTQgQEAKIAkJCW5hbWUg
PSBJY29uRGF0YWJhc2U7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk1QzlC
ODYwRTFDMjIzRTU0MDAxMTBGMzYgLyogY29jb2EgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsK
KwkJCWNoaWxkcmVuID0gKAorCQkJCTVDOUI4NjExMUMyMjNFNzkwMDExMEYzNiAvKiBEb3dubG9h
ZENvY29hLm1tICovLAorCQkJKTsKKwkJCW5hbWUgPSBjb2NvYTsKKwkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CisJCX07CiAJCTZFRTg0OUM0MTM2OEQ5MDQwMDM4RDQ4MSAvKiBtYWMgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTAxNTAsNiArMTAxNjEs
NyBAQAogCQkJCUJDNDA3NjAzMTI0RkYwMjcwMDY4RjIwQSAvKiBXS1NlcmlhbGl6ZWRTY3JpcHRW
YWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3NUE4RDJEODE4N0QzMDQwMDBDMzlDOUUgLyog
V0tTZXNzaW9uUmVmLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBREU0NkIyMTk1NEVDNjEwMDBG
Nzk4NSAvKiBXS1Nlc3Npb25TdGF0ZVJlZi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1QzlCODYx
MzFDMjIzRUFGMDAxMTBGMzYgLyogRG93bmxvYWRDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTUxM0U0NjJFMUFEODM3NTYwMDE2MjM0QSAvKiBXS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdh
dGUubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzQwNzYwNTEyNEZGMDI3MDA2OEYyMEEgLyogV0tT
dHJpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0MDc2MTkxMjRGRjAzNzAwNjhGMjBBIC8q
IFdLU3RyaW5nQ0YubW0gaW4gU291cmNlcyAqLywK
</data>
<flag name="review"
          id="292553"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>