<?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>93630</bug_id>
          
          <creation_ts>2012-08-09 10:49:07 -0700</creation_ts>
          <short_desc>[chromium] Remove scissor from the namings in CCOcclusionTracker</short_desc>
          <delta_ts>2012-08-10 08:29:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          <dependson>91800</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dana Jansens">danakj</reporter>
          <assigned_to name="Dana Jansens">danakj</assigned_to>
          <cc>aelias</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>dglazkov</cc>
    
    <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>piman</cc>
    
    <cc>shawnsingh</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>wjmaclean</cc>
    
    <cc>zlieber</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>691584</commentid>
    <comment_count>0</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-08-09 10:49:07 -0700</bug_when>
    <thetext>[chromium] Remove scissor from the namings in CCOcclusionTracker</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691589</commentid>
    <comment_count>1</comment_count>
      <attachid>157489</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-08-09 10:51:41 -0700</bug_when>
    <thetext>Created attachment 157489
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691622</commentid>
    <comment_count>2</comment_count>
      <attachid>157489</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-08-09 11:27:43 -0700</bug_when>
    <thetext>Comment on attachment 157489
Patch

R=me. Thanks for splitting out the rename.  It&apos;s so much easier to review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691653</commentid>
    <comment_count>3</comment_count>
      <attachid>157489</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-09 11:50:14 -0700</bug_when>
    <thetext>Comment on attachment 157489
Patch

Attachment 157489 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13459651</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691744</commentid>
    <comment_count>4</comment_count>
      <attachid>157526</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-08-09 13:20:51 -0700</bug_when>
    <thetext>Created attachment 157526
for-ews</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691798</commentid>
    <comment_count>5</comment_count>
      <attachid>157526</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-09 13:48:27 -0700</bug_when>
    <thetext>Comment on attachment 157526
for-ews

Attachment 157526 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13457948</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691861</commentid>
    <comment_count>6</comment_count>
      <attachid>157553</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-08-09 14:34:37 -0700</bug_when>
    <thetext>Created attachment 157553
for-ews</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691862</commentid>
    <comment_count>7</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-08-09 14:35:18 -0700</bug_when>
    <thetext>This is really strange:

Source/WebKit/chromium/tests/CCOcclusionTrackerTest.cpp:633: error: &apos;class&lt;unnamed&gt;::TestCCOcclusionTrackerWithClip&lt;WebCore::LayerChromium, WebCore::RenderSurfaceChromium&gt;&apos; has no member named &apos;useDefaultLayerScissorRect&apos;

This patch is changing these lines, but they are still there somehow when it tries to compile. Giving EWS another shot at this.. Clearly it all compiles locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692556</commentid>
    <comment_count>8</comment_count>
      <attachid>157553</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-10 08:29:18 -0700</bug_when>
    <thetext>Comment on attachment 157553
for-ews

Clearing flags on attachment: 157553

Committed r125282: &lt;http://trac.webkit.org/changeset/125282&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692557</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-10 08:29:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157489</attachid>
            <date>2012-08-09 10:51:41 -0700</date>
            <delta_ts>2012-08-09 13:20:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93630-20120809135114.patch</filename>
            <type>text/plain</type>
            <size>75412</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0ODk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzAyZGFkYWE3NGNmY2Y4
MDJjM2EyNzVhNTVmNjQzYTNmMjk3MmM3MS4uMWJiODJiMmQ4MmI3MjZhOGJlNTQxZDkxZmYxNTYw
ZDcyNTllY2MwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMyIEBACiAyMDEyLTA4LTA5ICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFtjaHJvbWl1bV0gUmVt
b3ZlIHNjaXNzb3IgZnJvbSB0aGUgbmFtaW5ncyBpbiBDQ09jY2x1c2lvblRyYWNrZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkzNjMwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXMgYSBmb2xsb3d1cCB0
byB3a2IudWcvOTE4MDAgd2hpY2ggc3RvcHMgdXNpbmcgcGFydGlhbC1zd2FwIHNjaXNzb3IKKyAg
ICAgICAgaW4gdGhlIG9jY2x1c2lvbiB0cmFja2VyLCB0aGlzIGRvZXMgYSBsYXJnZSByZW5hbWUg
dG8gdGhlIG9jY2x1c2lvbgorICAgICAgICB0cmFja2VyIGFuZCBhZmZlY3RlZCB0ZXN0cyB0byBy
ZW1vdmUgInNjaXNzb3IiIGZyb20gdGhlIG5hbWVzIG9mIGl0cworICAgICAgICB2YXJpYWJsZXMg
YW5kIG1ldGhvZHMsIGluc3RlYWQgcmVmbGVjdGluZyB0aGVpciBuZXcgYmVoYXZpb3VyLgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NPY2NsdXNpb25UcmFja2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ojo6Q0NPY2NsdXNpb25UcmFja2VyQmFzZSk6CisgICAg
ICAgIChXZWJDb3JlOjphZGRPY2NsdXNpb25CZWhpbmRMYXllcik6CisgICAgICAgIChXZWJDb3Jl
Ojo6Om1hcmtPY2NsdWRlZEJlaGluZExheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OnRlc3RDb250
ZW50UmVjdE9jY2x1ZGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ojo6b2NjbHVkZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6Y29tcHV0ZVVub2NjbHVkZWRDb250ZW50UmVjdCk6CisgICAgICAgIChXZWJD
b3JlOjo6OnVub2NjbHVkZWRDb250ZW50UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjo6OnVub2Nj
bHVkZWRDb250cmlidXRpbmdTdXJmYWNlQ29udGVudFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6
OjpsYXllckNsaXBSZWN0SW5UYXJnZXQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NPY2NsdXNpb25UcmFja2VyLmg6CisgICAg
ICAgIChDQ09jY2x1c2lvblRyYWNrZXJCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDT2NjbHVz
aW9uVHJhY2tlckJhc2U6OmNvbXB1dGVWaXNpYmxlUmVnaW9uSW5TY3JlZW4pOgorCisyMDEyLTA4
LTA5ICBEYW5hIEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFtjaHJv
bWl1bV0gRG8gcGFydGlhbC1zd2FwIHNjaXNzb3Jpbmcgb24gcXVhZHMgZHVyaW5nIGRyYXcgaW5z
dGVhZCBvZiBvbiBsYXllcnMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTkxODAwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggM2YyNGVkOWQ1
MmFjMTcwOWE3OGI4MzE2Mjg1OGFjNjA4YjgzZjBkYy4uMDZhNTIyODdiZjg4YWZjMzc1MDZlNzVk
MTc3NWY1MjRkNGQxZGFhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsNSArMSw2
OSBAQAogMjAxMi0wOC0wOSAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KIAor
ICAgICAgICBbY2hyb21pdW1dIFJlbW92ZSBzY2lzc29yIGZyb20gdGhlIG5hbWluZ3MgaW4gQ0NP
Y2NsdXNpb25UcmFja2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05MzYzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogdGVzdHMvQ0NPY2NsdXNpb25UcmFja2VyVGVzdC5jcHA6CisgICAgICAgIChXZWJL
aXRUZXN0czo6VGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhDbGlwOjpUZXN0Q0NPY2NsdXNpb25U
cmFja2VyV2l0aENsaXApOgorICAgICAgICAoV2ViS2l0VGVzdHM6OlRlc3RDQ09jY2x1c2lvblRy
YWNrZXJXaXRoQ2xpcDo6c2V0TGF5ZXJDbGlwUmVjdCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6
VGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhDbGlwOjp1c2VEZWZhdWx0TGF5ZXJDbGlwUmVjdCk6
CisgICAgICAgIChXZWJLaXRUZXN0czo6VGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhDbGlwOjps
YXllckNsaXBSZWN0SW5UYXJnZXQpOgorICAgICAgICAoVGVzdENDT2NjbHVzaW9uVHJhY2tlcldp
dGhDbGlwKToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ09jY2x1c2lvblRyYWNrZXJUZXN0SWRl
bnRpdHlUcmFuc2Zvcm1zOjpydW5NeVRlc3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2Nj
bHVzaW9uVHJhY2tlclRlc3RSb3RhdGVkQ2hpbGQ6OnJ1bk15VGVzdCk6CisgICAgICAgIChXZWJL
aXRUZXN0czo6Q0NPY2NsdXNpb25UcmFja2VyVGVzdFRyYW5zbGF0ZWRDaGlsZDo6cnVuTXlUZXN0
KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ09jY2x1c2lvblRyYWNrZXJUZXN0Q2hpbGRJblJv
dGF0ZWRDaGlsZDo6cnVuTXlUZXN0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ09jY2x1c2lv
blRyYWNrZXJUZXN0VmlzaXRUYXJnZXRUd29UaW1lczo6cnVuTXlUZXN0KToKKyAgICAgICAgKFdl
YktpdFRlc3RzOjpDQ09jY2x1c2lvblRyYWNrZXJUZXN0U3VyZmFjZVJvdGF0ZWRPZmZBeGlzOjpy
dW5NeVRlc3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RT
dXJmYWNlV2l0aFR3b09wYXF1ZUNoaWxkcmVuOjpydW5NeVRlc3QpOgorICAgICAgICAoV2ViS2l0
VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RPdmVybGFwcGluZ1N1cmZhY2VTaWJsaW5nczo6
cnVuTXlUZXN0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ09jY2x1c2lvblRyYWNrZXJUZXN0
T3ZlcmxhcHBpbmdTdXJmYWNlU2libGluZ3NXaXRoVHdvVHJhbnNmb3Jtczo6cnVuTXlUZXN0KToK
KyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ09jY2x1c2lvblRyYWNrZXJUZXN0RmlsdGVyczo6cnVu
TXlUZXN0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ09jY2x1c2lvblRyYWNrZXJUZXN0UmVw
bGljYURvZXNPY2NsdWRlOjpydW5NeVRlc3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2Nj
bHVzaW9uVHJhY2tlclRlc3RSZXBsaWNhV2l0aENsaXBwaW5nOjpydW5NeVRlc3QpOgorICAgICAg
ICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RSZXBsaWNhV2l0aE1hc2s6OnJ1
bk15VGVzdCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NPY2NsdXNpb25UcmFja2VyVGVzdExh
eWVyQ2xpcFJlY3RPdXRzaWRlQ2hpbGQ6OnJ1bk15VGVzdCk6CisgICAgICAgIChXZWJLaXRUZXN0
cyk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NPY2NsdXNpb25UcmFja2VyVGVzdFZpZXdwb3J0
UmVjdE91dHNpZGVDaGlsZDo6cnVuTXlUZXN0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ09j
Y2x1c2lvblRyYWNrZXJUZXN0TGF5ZXJDbGlwUmVjdE92ZXJDaGlsZDo6cnVuTXlUZXN0KToKKyAg
ICAgICAgKFdlYktpdFRlc3RzOjpDQ09jY2x1c2lvblRyYWNrZXJUZXN0Vmlld3BvcnRSZWN0T3Zl
ckNoaWxkOjpydW5NeVRlc3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJh
Y2tlclRlc3RMYXllckNsaXBSZWN0UGFydGx5T3ZlckNoaWxkOjpydW5NeVRlc3QpOgorICAgICAg
ICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RWaWV3cG9ydFJlY3RQYXJ0bHlP
dmVyQ2hpbGQ6OnJ1bk15VGVzdCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NPY2NsdXNpb25U
cmFja2VyVGVzdExheWVyQ2xpcFJlY3RPdmVyTm90aGluZzo6cnVuTXlUZXN0KToKKyAgICAgICAg
KFdlYktpdFRlc3RzOjpDQ09jY2x1c2lvblRyYWNrZXJUZXN0Vmlld3BvcnRSZWN0T3Zlck5vdGhp
bmc6OnJ1bk15VGVzdCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NPY2NsdXNpb25UcmFja2Vy
VGVzdExheWVyQ2xpcFJlY3RGb3JMYXllck9mZk9yaWdpbjo6cnVuTXlUZXN0KToKKyAgICAgICAg
KFdlYktpdFRlc3RzOjpDQ09jY2x1c2lvblRyYWNrZXJUZXN0T3BhcXVlQ29udGVudHNSZWdpb25F
bXB0eTo6cnVuTXlUZXN0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ09jY2x1c2lvblRyYWNr
ZXJUZXN0T3BhcXVlQ29udGVudHNSZWdpb25Ob25FbXB0eTo6cnVuTXlUZXN0KToKKyAgICAgICAg
KFdlYktpdFRlc3RzOjpDQ09jY2x1c2lvblRyYWNrZXJUZXN0M2RUcmFuc2Zvcm06OnJ1bk15VGVz
dCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NPY2NsdXNpb25UcmFja2VyVGVzdFVuc29ydGVk
M2RMYXllcnM6OnJ1bk15VGVzdCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NPY2NsdXNpb25U
cmFja2VyVGVzdFBlcnNwZWN0aXZlVHJhbnNmb3JtOjpydW5NeVRlc3QpOgorICAgICAgICAoV2Vi
S2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RQZXJzcGVjdGl2ZVRyYW5zZm9ybUJlaGlu
ZENhbWVyYTo6cnVuTXlUZXN0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ09jY2x1c2lvblRy
YWNrZXJUZXN0TGF5ZXJCZWhpbmRDYW1lcmFEb2VzTm90T2NjbHVkZTo6cnVuTXlUZXN0KToKKyAg
ICAgICAgKFdlYktpdFRlc3RzOjpDQ09jY2x1c2lvblRyYWNrZXJUZXN0TGFyZ2VQaXhlbHNPY2Ns
dWRlSW5zaWRlQ2xpcFJlY3Q6OnJ1bk15VGVzdCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NP
Y2NsdXNpb25UcmFja2VyVGVzdEFuaW1hdGlvbk9wYWNpdHkxT25NYWluVGhyZWFkOjpydW5NeVRl
c3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RBbmltYXRp
b25PcGFjaXR5ME9uTWFpblRocmVhZDo6cnVuTXlUZXN0KToKKyAgICAgICAgKFdlYktpdFRlc3Rz
OjpDQ09jY2x1c2lvblRyYWNrZXJUZXN0QW5pbWF0aW9uVHJhbnNsYXRlT25NYWluVGhyZWFkOjpy
dW5NeVRlc3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RT
dXJmYWNlT2NjbHVzaW9uVHJhbnNsYXRlc1RvUGFyZW50OjpydW5NeVRlc3QpOgorICAgICAgICAo
V2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RTdXJmYWNlT2NjbHVzaW9uVHJhbnNs
YXRlc1dpdGhDbGlwcGluZzo6cnVuTXlUZXN0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ09j
Y2x1c2lvblRyYWNrZXJUZXN0UmVwbGljYU9jY2x1ZGVkOjpydW5NeVRlc3QpOgorICAgICAgICAo
V2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RTdXJmYWNlV2l0aFJlcGxpY2FVbm9j
Y2x1ZGVkOjpydW5NeVRlc3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJh
Y2tlclRlc3RTdXJmYWNlQW5kUmVwbGljYU9jY2x1ZGVkRGlmZmVyZW50bHk6OnJ1bk15VGVzdCk6
CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NPY2NsdXNpb25UcmFja2VyVGVzdFN1cmZhY2VDaGls
ZE9mU3VyZmFjZTo6cnVuTXlUZXN0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ09jY2x1c2lv
blRyYWNrZXJUZXN0VG9wbW9zdFN1cmZhY2VJc0NsaXBwZWRUb1ZpZXdwb3J0OjpydW5NeVRlc3Qp
OgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RTdXJmYWNlQ2hp
bGRPZkNsaXBwaW5nU3VyZmFjZTo6cnVuTXlUZXN0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpD
Q09jY2x1c2lvblRyYWNrZXJUZXN0RG9udE9jY2x1ZGVQaXhlbHNOZWVkZWRGb3JCYWNrZ3JvdW5k
RmlsdGVyOjpydW5NeVRlc3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJh
Y2tlclRlc3RUd29CYWNrZ3JvdW5kRmlsdGVyc1JlZHVjZU9jY2x1c2lvblR3aWNlOjpydW5NeVRl
c3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3REb250T2Nj
bHVkZVBpeGVsc05lZWRlZEZvckJhY2tncm91bmRGaWx0ZXJXaXRoQ2xpcDo6cnVuTXlUZXN0KToK
KyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ09jY2x1c2lvblRyYWNrZXJUZXN0RG9udFJlZHVjZU9j
Y2x1c2lvbkJlbG93QmFja2dyb3VuZEZpbHRlcjo6cnVuTXlUZXN0KToKKyAgICAgICAgKFdlYktp
dFRlc3RzOjpDQ09jY2x1c2lvblRyYWNrZXJUZXN0RG9udFJlZHVjZU9jY2x1c2lvbklmQmFja2dy
b3VuZEZpbHRlcklzT2NjbHVkZWQ6OnJ1bk15VGVzdCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6
Q0NPY2NsdXNpb25UcmFja2VyVGVzdFJlZHVjZU9jY2x1c2lvbldoZW5CYWNrZ3JvdW5kRmlsdGVy
SXNQYXJ0aWFsbHlPY2NsdWRlZDo6cnVuTXlUZXN0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpD
Q09jY2x1c2lvblRyYWNrZXJUZXN0TWluaW11bVRyYWNraW5nU2l6ZTo6cnVuTXlUZXN0KToKKyAg
ICAgICAgKiB0ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcDoKKworMjAxMi0wOC0wOSAg
RGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKwogICAgICAgICBbY2hyb21pdW1d
IERvIHBhcnRpYWwtc3dhcCBzY2lzc29yaW5nIG9uIHF1YWRzIGR1cmluZyBkcmF3IGluc3RlYWQg
b2Ygb24gbGF5ZXJzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05MTgwMAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ09jY2x1c2lvblRyYWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NPY2NsdXNpb25UcmFja2VyLmNwcAppbmRleCBh
OWE5N2NjOWM3MDQzOTYyYzYwMDFkZTk5Y2Y3Njg1ZDU3ZjhkNWQ3Li5hZTQ5MGI3NmU0ZjI4OTI0
YTRkY2M0YTlkOTAzNDA4NjEwOGZmNDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ09jY2x1c2lvblRyYWNrZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDT2NjbHVzaW9uVHJh
Y2tlci5jcHAKQEAgLTQyLDggKzQyLDggQEAgdXNpbmcgV2ViS2l0OjpXZWJUcmFuc2Zvcm1hdGlv
bk1hdHJpeDsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdGVtcGxhdGU8dHlwZW5hbWUgTGF5ZXJU
eXBlLCB0eXBlbmFtZSBSZW5kZXJTdXJmYWNlVHlwZT4KLUNDT2NjbHVzaW9uVHJhY2tlckJhc2U8
TGF5ZXJUeXBlLCBSZW5kZXJTdXJmYWNlVHlwZT46OkNDT2NjbHVzaW9uVHJhY2tlckJhc2UoSW50
UmVjdCBzY2lzc29yUmVjdEluU2NyZWVuU3BhY2UsIGJvb2wgcmVjb3JkTWV0cmljc0ZvckZyYW1l
KQotICAgIDogbV9zY2lzc29yUmVjdEluU2NyZWVuU3BhY2Uoc2Npc3NvclJlY3RJblNjcmVlblNw
YWNlKQorQ0NPY2NsdXNpb25UcmFja2VyQmFzZTxMYXllclR5cGUsIFJlbmRlclN1cmZhY2VUeXBl
Pjo6Q0NPY2NsdXNpb25UcmFja2VyQmFzZShJbnRSZWN0IHJvb3RUYXJnZXRSZWN0LCBib29sIHJl
Y29yZE1ldHJpY3NGb3JGcmFtZSkKKyAgICA6IG1fcm9vdFRhcmdldFJlY3Qocm9vdFRhcmdldFJl
Y3QpCiAgICAgLCBtX292ZXJkcmF3TWV0cmljcyhDQ092ZXJkcmF3TWV0cmljczo6Y3JlYXRlKHJl
Y29yZE1ldHJpY3NGb3JGcmFtZSkpCiAgICAgLCBtX29jY2x1ZGluZ1NjcmVlblNwYWNlUmVjdHMo
MCkKIHsKQEAgLTI2Nyw3ICsyNjcsNyBAQCB2b2lkIENDT2NjbHVzaW9uVHJhY2tlckJhc2U8TGF5
ZXJUeXBlLCBSZW5kZXJTdXJmYWNlVHlwZT46OmxlYXZlVG9SZW5kZXJUYXJnZXQoYwogCiAvLyBG
SVhNRTogUmVtb3ZlIHVzZVBhaW50VHJhY2tpbmcgd2hlbiBwYWludCB0cmFja2luZyBpcyBvbiBm
b3IgcGFpbnQgY3VsbGluZy4KIHRlbXBsYXRlPHR5cGVuYW1lIExheWVyVHlwZT4KLXN0YXRpYyBp
bmxpbmUgdm9pZCBhZGRPY2NsdXNpb25CZWhpbmRMYXllcihSZWdpb24mIHJlZ2lvbiwgY29uc3Qg
TGF5ZXJUeXBlKiBsYXllciwgY29uc3QgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9y
bSwgY29uc3QgUmVnaW9uJiBvcGFxdWVDb250ZW50cywgY29uc3QgSW50UmVjdCYgc2Npc3NvclJl
Y3QsIGNvbnN0IEludFNpemUmIG1pbmltdW1UcmFja2luZ1NpemUsIFZlY3RvcjxJbnRSZWN0Piog
b2NjbHVkaW5nU2NyZWVuU3BhY2VSZWN0cykKK3N0YXRpYyBpbmxpbmUgdm9pZCBhZGRPY2NsdXNp
b25CZWhpbmRMYXllcihSZWdpb24mIHJlZ2lvbiwgY29uc3QgTGF5ZXJUeXBlKiBsYXllciwgY29u
c3QgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgUmVnaW9uJiBvcGFx
dWVDb250ZW50cywgY29uc3QgSW50UmVjdCYgY2xpcFJlY3RJblRhcmdldCwgY29uc3QgSW50U2l6
ZSYgbWluaW11bVRyYWNraW5nU2l6ZSwgVmVjdG9yPEludFJlY3Q+KiBvY2NsdWRpbmdTY3JlZW5T
cGFjZVJlY3RzKQogewogICAgIEFTU0VSVChsYXllci0+dmlzaWJsZUNvbnRlbnRSZWN0KCkuY29u
dGFpbnMob3BhcXVlQ29udGVudHMuYm91bmRzKCkpKTsKIApAQCAtMjgxLDcgKzI4MSw3IEBAIHN0
YXRpYyBpbmxpbmUgdm9pZCBhZGRPY2NsdXNpb25CZWhpbmRMYXllcihSZWdpb24mIHJlZ2lvbiwg
Y29uc3QgTGF5ZXJUeXBlKiBsYXllCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb250ZW50
UmVjdHMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgLy8gV2UndmUgYWxyZWFkeSBjaGVja2VkIGZv
ciBjbGlwcGluZyBpbiB0aGUgbWFwUXVhZCBjYWxsIGFib3ZlLCB0aGVzZSBjYWxscyBzaG91bGQg
bm90IGNsaXAgYW55dGhpbmcgZnVydGhlci4KICAgICAgICAgSW50UmVjdCB0cmFuc2Zvcm1lZFJl
Y3QgPSBlbmNsb3NlZEludFJlY3QoQ0NNYXRoVXRpbDo6bWFwQ2xpcHBlZFJlY3QodHJhbnNmb3Jt
LCBGbG9hdFJlY3QoY29udGVudFJlY3RzW2ldKSkpOwotICAgICAgICB0cmFuc2Zvcm1lZFJlY3Qu
aW50ZXJzZWN0KHNjaXNzb3JSZWN0KTsKKyAgICAgICAgdHJhbnNmb3JtZWRSZWN0LmludGVyc2Vj
dChjbGlwUmVjdEluVGFyZ2V0KTsKICAgICAgICAgaWYgKHRyYW5zZm9ybWVkUmVjdC53aWR0aCgp
ID49IG1pbmltdW1UcmFja2luZ1NpemUud2lkdGgoKSB8fCB0cmFuc2Zvcm1lZFJlY3QuaGVpZ2h0
KCkgPj0gbWluaW11bVRyYWNraW5nU2l6ZS5oZWlnaHQoKSkgewogICAgICAgICAgICAgaWYgKG9j
Y2x1ZGluZ1NjcmVlblNwYWNlUmVjdHMpCiAgICAgICAgICAgICAgICAgb2NjbHVkaW5nU2NyZWVu
U3BhY2VSZWN0cy0+YXBwZW5kKHRyYW5zZm9ybWVkUmVjdCk7CkBAIC0zMDgsMzAgKzMwOCwzMCBA
QCB2b2lkIENDT2NjbHVzaW9uVHJhY2tlckJhc2U8TGF5ZXJUeXBlLCBSZW5kZXJTdXJmYWNlVHlw
ZT46Om1hcmtPY2NsdWRlZEJlaGluZExheQogICAgIGlmIChvcGFxdWVDb250ZW50cy5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEludFJlY3Qgc2Npc3NvckluVGFyZ2V0ID0gbGF5
ZXJTY2lzc29yUmVjdEluVGFyZ2V0U3VyZmFjZShsYXllcik7CisgICAgSW50UmVjdCBjbGlwUmVj
dEluVGFyZ2V0ID0gbGF5ZXJDbGlwUmVjdEluVGFyZ2V0KGxheWVyKTsKICAgICBpZiAobGF5ZXJU
cmFuc2Zvcm1zVG9UYXJnZXRLbm93bihsYXllcikpCi0gICAgICAgIGFkZE9jY2x1c2lvbkJlaGlu
ZExheWVyPExheWVyVHlwZT4obV9zdGFjay5sYXN0KCkub2NjbHVzaW9uSW5UYXJnZXQsIGxheWVy
LCBsYXllci0+ZHJhd1RyYW5zZm9ybSgpLCBvcGFxdWVDb250ZW50cywgc2Npc3NvckluVGFyZ2V0
LCBtX21pbmltdW1UcmFja2luZ1NpemUsIDApOworICAgICAgICBhZGRPY2NsdXNpb25CZWhpbmRM
YXllcjxMYXllclR5cGU+KG1fc3RhY2subGFzdCgpLm9jY2x1c2lvbkluVGFyZ2V0LCBsYXllciwg
bGF5ZXItPmRyYXdUcmFuc2Zvcm0oKSwgb3BhcXVlQ29udGVudHMsIGNsaXBSZWN0SW5UYXJnZXQs
IG1fbWluaW11bVRyYWNraW5nU2l6ZSwgMCk7CiAKLSAgICAvLyBXZSBtdXN0IGNsaXAgdGhlIG9j
Y2x1c2lvbiB3aXRoaW4gdGhlIGxheWVyJ3Mgc2Npc3NvckluVGFyZ2V0IHdpdGhpbiBzY3JlZW4g
c3BhY2UgYXMgd2VsbC4gSWYgdGhlIHNjaXNzb3IgcmVjdCBjYW4ndCBiZSBtb3ZlZCB0byBzY3Jl
ZW4gc3BhY2UgYW5kCisgICAgLy8gV2UgbXVzdCBjbGlwIHRoZSBvY2NsdXNpb24gd2l0aGluIHRo
ZSBsYXllcidzIGNsaXBSZWN0SW5UYXJnZXQgd2l0aGluIHNjcmVlbiBzcGFjZSBhcyB3ZWxsLiBJ
ZiB0aGUgY2xpcCByZWN0IGNhbid0IGJlIG1vdmVkIHRvIHNjcmVlbiBzcGFjZSBhbmQKICAgICAv
LyByZW1haW4gcmVjdGlsaW5lYXIsIHRoZW4gd2UgZG9uJ3QgYWRkIGFueSBvY2NsdXNpb24gaW4g
c2NyZWVuIHNwYWNlLgogCiAgICAgaWYgKGxheWVyVHJhbnNmb3Jtc1RvU2NyZWVuS25vd24obGF5
ZXIpKSB7CiAgICAgICAgIFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4IHRhcmdldFRvU2NyZWVuVHJh
bnNmb3JtID0gbV9zdGFjay5sYXN0KCkudGFyZ2V0LT5yZW5kZXJTdXJmYWNlKCktPnNjcmVlblNw
YWNlVHJhbnNmb3JtKCk7CiAgICAgICAgIGJvb2wgY2xpcHBlZDsKLSAgICAgICAgRmxvYXRRdWFk
IHNjaXNzb3JJblNjcmVlblF1YWQgPSBDQ01hdGhVdGlsOjptYXBRdWFkKHRhcmdldFRvU2NyZWVu
VHJhbnNmb3JtLCBGbG9hdFF1YWQoRmxvYXRSZWN0KHNjaXNzb3JJblRhcmdldCkpLCBjbGlwcGVk
KTsKLSAgICAgICAgLy8gRklYTUU6IEZpbmQgYSByZWN0IGludGVyaW9yIHRvIHRoZSB0cmFuc2Zv
cm1lZCBzY2lzc29yIHF1YWQuCi0gICAgICAgIGlmIChjbGlwcGVkIHx8ICFzY2lzc29ySW5TY3Jl
ZW5RdWFkLmlzUmVjdGlsaW5lYXIoKSkKKyAgICAgICAgRmxvYXRRdWFkIGNsaXBRdWFkSW5TY3Jl
ZW4gPSBDQ01hdGhVdGlsOjptYXBRdWFkKHRhcmdldFRvU2NyZWVuVHJhbnNmb3JtLCBGbG9hdFF1
YWQoRmxvYXRSZWN0KGNsaXBSZWN0SW5UYXJnZXQpKSwgY2xpcHBlZCk7CisgICAgICAgIC8vIEZJ
WE1FOiBGaW5kIGEgcmVjdCBpbnRlcmlvciB0byB0aGUgdHJhbnNmb3JtZWQgY2xpcCBxdWFkLgor
ICAgICAgICBpZiAoY2xpcHBlZCB8fCAhY2xpcFF1YWRJblNjcmVlbi5pc1JlY3RpbGluZWFyKCkp
CiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIEludFJlY3Qgc2Npc3NvckluU2NyZWVuUmVj
dCA9IGludGVyc2VjdGlvbihtX3NjaXNzb3JSZWN0SW5TY3JlZW5TcGFjZSwgZW5jbG9zZWRJbnRS
ZWN0KHNjaXNzb3JJblNjcmVlblF1YWQuYm91bmRpbmdCb3goKSkpOwotICAgICAgICBhZGRPY2Ns
dXNpb25CZWhpbmRMYXllcjxMYXllclR5cGU+KG1fc3RhY2subGFzdCgpLm9jY2x1c2lvbkluU2Ny
ZWVuLCBsYXllciwgbGF5ZXItPnNjcmVlblNwYWNlVHJhbnNmb3JtKCksIG9wYXF1ZUNvbnRlbnRz
LCBzY2lzc29ySW5TY3JlZW5SZWN0LCBtX21pbmltdW1UcmFja2luZ1NpemUsIG1fb2NjbHVkaW5n
U2NyZWVuU3BhY2VSZWN0cyk7CisgICAgICAgIEludFJlY3QgY2xpcFJlY3RJblNjcmVlbiA9IGlu
dGVyc2VjdGlvbihtX3Jvb3RUYXJnZXRSZWN0LCBlbmNsb3NlZEludFJlY3QoY2xpcFF1YWRJblNj
cmVlbi5ib3VuZGluZ0JveCgpKSk7CisgICAgICAgIGFkZE9jY2x1c2lvbkJlaGluZExheWVyPExh
eWVyVHlwZT4obV9zdGFjay5sYXN0KCkub2NjbHVzaW9uSW5TY3JlZW4sIGxheWVyLCBsYXllci0+
c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSwgb3BhcXVlQ29udGVudHMsIGNsaXBSZWN0SW5TY3JlZW4s
IG1fbWluaW11bVRyYWNraW5nU2l6ZSwgbV9vY2NsdWRpbmdTY3JlZW5TcGFjZVJlY3RzKTsKICAg
ICB9CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCB0ZXN0Q29udGVudFJlY3RPY2NsdWRlZChjb25z
dCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXgmIGNv
bnRlbnRTcGFjZVRyYW5zZm9ybSwgY29uc3QgSW50UmVjdCYgc2Npc3NvclJlY3QsIGNvbnN0IFJl
Z2lvbiYgb2NjbHVzaW9uKQorc3RhdGljIGlubGluZSBib29sIHRlc3RDb250ZW50UmVjdE9jY2x1
ZGVkKGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBXZWJUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYgY29udGVudFNwYWNlVHJhbnNmb3JtLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdEluVGFy
Z2V0LCBjb25zdCBSZWdpb24mIG9jY2x1c2lvbikKIHsKICAgICBGbG9hdFJlY3QgdHJhbnNmb3Jt
ZWRSZWN0ID0gQ0NNYXRoVXRpbDo6bWFwQ2xpcHBlZFJlY3QoY29udGVudFNwYWNlVHJhbnNmb3Jt
LCBGbG9hdFJlY3QoY29udGVudFJlY3QpKTsKICAgICAvLyBUYWtlIHRoZSBlbmNsb3NpbmdJbnRS
ZWN0LCBhcyB3ZSB3YW50IHRvIGluY2x1ZGUgcGFydGlhbCBwaXhlbHMgaW4gdGhlIHRlc3QuCi0g
ICAgSW50UmVjdCB0YXJnZXRSZWN0ID0gaW50ZXJzZWN0aW9uKGVuY2xvc2luZ0ludFJlY3QodHJh
bnNmb3JtZWRSZWN0KSwgc2Npc3NvclJlY3QpOworICAgIEludFJlY3QgdGFyZ2V0UmVjdCA9IGlu
dGVyc2VjdGlvbihlbmNsb3NpbmdJbnRSZWN0KHRyYW5zZm9ybWVkUmVjdCksIGNsaXBSZWN0SW5U
YXJnZXQpOwogICAgIHJldHVybiB0YXJnZXRSZWN0LmlzRW1wdHkoKSB8fCBvY2NsdXNpb24uY29u
dGFpbnModGFyZ2V0UmVjdCk7CiB9CiAKQEAgLTM0OSwxMCArMzQ5LDEwIEBAIGJvb2wgQ0NPY2Ns
dXNpb25UcmFja2VyQmFzZTxMYXllclR5cGUsIFJlbmRlclN1cmZhY2VUeXBlPjo6b2NjbHVkZWQo
Y29uc3QgTGF5ZXJUCiAKICAgICBBU1NFUlQobGF5ZXItPnJlbmRlclRhcmdldCgpID09IG1fc3Rh
Y2subGFzdCgpLnRhcmdldCk7CiAKLSAgICBpZiAobGF5ZXJUcmFuc2Zvcm1zVG9UYXJnZXRLbm93
bihsYXllcikgJiYgdGVzdENvbnRlbnRSZWN0T2NjbHVkZWQoY29udGVudFJlY3QsIGxheWVyLT5k
cmF3VHJhbnNmb3JtKCksIGxheWVyU2Npc3NvclJlY3RJblRhcmdldFN1cmZhY2UobGF5ZXIpLCBt
X3N0YWNrLmxhc3QoKS5vY2NsdXNpb25JblRhcmdldCkpCisgICAgaWYgKGxheWVyVHJhbnNmb3Jt
c1RvVGFyZ2V0S25vd24obGF5ZXIpICYmIHRlc3RDb250ZW50UmVjdE9jY2x1ZGVkKGNvbnRlbnRS
ZWN0LCBsYXllci0+ZHJhd1RyYW5zZm9ybSgpLCBsYXllckNsaXBSZWN0SW5UYXJnZXQobGF5ZXIp
LCBtX3N0YWNrLmxhc3QoKS5vY2NsdXNpb25JblRhcmdldCkpCiAgICAgICAgIHJldHVybiB0cnVl
OwogCi0gICAgaWYgKGxheWVyVHJhbnNmb3Jtc1RvU2NyZWVuS25vd24obGF5ZXIpICYmIHRlc3RD
b250ZW50UmVjdE9jY2x1ZGVkKGNvbnRlbnRSZWN0LCBsYXllci0+c2NyZWVuU3BhY2VUcmFuc2Zv
cm0oKSwgbV9zY2lzc29yUmVjdEluU2NyZWVuU3BhY2UsIG1fc3RhY2subGFzdCgpLm9jY2x1c2lv
bkluU2NyZWVuKSkgeworICAgIGlmIChsYXllclRyYW5zZm9ybXNUb1NjcmVlbktub3duKGxheWVy
KSAmJiB0ZXN0Q29udGVudFJlY3RPY2NsdWRlZChjb250ZW50UmVjdCwgbGF5ZXItPnNjcmVlblNw
YWNlVHJhbnNmb3JtKCksIG1fcm9vdFRhcmdldFJlY3QsIG1fc3RhY2subGFzdCgpLm9jY2x1c2lv
bkluU2NyZWVuKSkgewogICAgICAgICBpZiAoaGFzT2NjbHVzaW9uRnJvbU91dHNpZGVUYXJnZXRT
dXJmYWNlKQogICAgICAgICAgICAgKmhhc09jY2x1c2lvbkZyb21PdXRzaWRlVGFyZ2V0U3VyZmFj
ZSA9IHRydWU7CiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtMzcwLDE0ICszNzAsMTQgQEAgc3Rh
dGljIGlubGluZSBJbnRSZWN0IHJlY3RTdWJ0cmFjdFJlZ2lvbihjb25zdCBJbnRSZWN0JiByZWN0
LCBjb25zdCBSZWdpb24mIHJlZ2kKICAgICByZXR1cm4gcmVjdFJlZ2lvbi5ib3VuZHMoKTsKIH0K
IAotc3RhdGljIGlubGluZSBJbnRSZWN0IGNvbXB1dGVVbm9jY2x1ZGVkQ29udGVudFJlY3QoY29u
c3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4JiBj
b250ZW50U3BhY2VUcmFuc2Zvcm0sIGNvbnN0IEludFJlY3QmIHNjaXNzb3JSZWN0LCBjb25zdCBS
ZWdpb24mIG9jY2x1c2lvbikKK3N0YXRpYyBpbmxpbmUgSW50UmVjdCBjb21wdXRlVW5vY2NsdWRl
ZENvbnRlbnRSZWN0KGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBXZWJUcmFuc2Zv
cm1hdGlvbk1hdHJpeCYgY29udGVudFNwYWNlVHJhbnNmb3JtLCBjb25zdCBJbnRSZWN0JiBjbGlw
UmVjdEluVGFyZ2V0LCBjb25zdCBSZWdpb24mIG9jY2x1c2lvbikKIHsKICAgICBpZiAoIWNvbnRl
bnRTcGFjZVRyYW5zZm9ybS5pc0ludmVydGlibGUoKSkKICAgICAgICAgcmV0dXJuIGNvbnRlbnRS
ZWN0OwogCiAgICAgLy8gVGFrZSB0aGUgZW5jbG9zaW5nSW50UmVjdCBhdCBlYWNoIHN0ZXAsIGFz
IHdlIHdhbnQgdG8gY29udGFpbiBhbnkgdW5vY2NsdWRlZCBwYXJ0aWFsIHBpeGVscyBpbiB0aGUg
cmVzdWx0aW5nIEludFJlY3QuCiAgICAgRmxvYXRSZWN0IHRyYW5zZm9ybWVkUmVjdCA9IENDTWF0
aFV0aWw6Om1hcENsaXBwZWRSZWN0KGNvbnRlbnRTcGFjZVRyYW5zZm9ybSwgRmxvYXRSZWN0KGNv
bnRlbnRSZWN0KSk7Ci0gICAgSW50UmVjdCBzaHJ1bmtSZWN0ID0gcmVjdFN1YnRyYWN0UmVnaW9u
KGludGVyc2VjdGlvbihlbmNsb3NpbmdJbnRSZWN0KHRyYW5zZm9ybWVkUmVjdCksIHNjaXNzb3JS
ZWN0KSwgb2NjbHVzaW9uKTsKKyAgICBJbnRSZWN0IHNocnVua1JlY3QgPSByZWN0U3VidHJhY3RS
ZWdpb24oaW50ZXJzZWN0aW9uKGVuY2xvc2luZ0ludFJlY3QodHJhbnNmb3JtZWRSZWN0KSwgY2xp
cFJlY3RJblRhcmdldCksIG9jY2x1c2lvbik7CiAgICAgSW50UmVjdCB1bm9jY2x1ZGVkUmVjdCA9
IGVuY2xvc2luZ0ludFJlY3QoQ0NNYXRoVXRpbDo6cHJvamVjdENsaXBwZWRSZWN0KGNvbnRlbnRT
cGFjZVRyYW5zZm9ybS5pbnZlcnNlKCksIEZsb2F0UmVjdChzaHJ1bmtSZWN0KSkpOwogICAgIC8v
IFRoZSByZWN0IGJhY2sgaW4gY29udGVudCBzcGFjZSBpcyBhIGJvdW5kaW5nIGJveCBhbmQgbWF5
IGV4dGVuZCBvdXRzaWRlIG9mIHRoZSBvcmlnaW5hbCBjb250ZW50UmVjdCwgc28gY2xhbXAgaXQg
dG8gdGhlIGNvbnRlbnRSZWN0Qm91bmRzLgogICAgIHJldHVybiBpbnRlcnNlY3Rpb24odW5vY2Ns
dWRlZFJlY3QsIGNvbnRlbnRSZWN0KTsKQEAgLTM5OSwxMSArMzk5LDExIEBAIEludFJlY3QgQ0NP
Y2NsdXNpb25UcmFja2VyQmFzZTxMYXllclR5cGUsIFJlbmRlclN1cmZhY2VUeXBlPjo6dW5vY2Ns
dWRlZENvbnRlbnRSCiAKICAgICBJbnRSZWN0IHVub2NjbHVkZWRJblNjcmVlbiA9IGNvbnRlbnRS
ZWN0OwogICAgIGlmIChsYXllclRyYW5zZm9ybXNUb1NjcmVlbktub3duKGxheWVyKSkKLSAgICAg
ICAgdW5vY2NsdWRlZEluU2NyZWVuID0gY29tcHV0ZVVub2NjbHVkZWRDb250ZW50UmVjdChjb250
ZW50UmVjdCwgbGF5ZXItPnNjcmVlblNwYWNlVHJhbnNmb3JtKCksIG1fc2Npc3NvclJlY3RJblNj
cmVlblNwYWNlLCBtX3N0YWNrLmxhc3QoKS5vY2NsdXNpb25JblNjcmVlbik7CisgICAgICAgIHVu
b2NjbHVkZWRJblNjcmVlbiA9IGNvbXB1dGVVbm9jY2x1ZGVkQ29udGVudFJlY3QoY29udGVudFJl
Y3QsIGxheWVyLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpLCBtX3Jvb3RUYXJnZXRSZWN0LCBtX3N0
YWNrLmxhc3QoKS5vY2NsdXNpb25JblNjcmVlbik7CiAKICAgICBJbnRSZWN0IHVub2NjbHVkZWRJ
blRhcmdldCA9IGNvbnRlbnRSZWN0OwogICAgIGlmIChsYXllclRyYW5zZm9ybXNUb1RhcmdldEtu
b3duKGxheWVyKSkKLSAgICAgICAgdW5vY2NsdWRlZEluVGFyZ2V0ID0gY29tcHV0ZVVub2NjbHVk
ZWRDb250ZW50UmVjdChjb250ZW50UmVjdCwgbGF5ZXItPmRyYXdUcmFuc2Zvcm0oKSwgbGF5ZXJT
Y2lzc29yUmVjdEluVGFyZ2V0U3VyZmFjZShsYXllciksIG1fc3RhY2subGFzdCgpLm9jY2x1c2lv
bkluVGFyZ2V0KTsKKyAgICAgICAgdW5vY2NsdWRlZEluVGFyZ2V0ID0gY29tcHV0ZVVub2NjbHVk
ZWRDb250ZW50UmVjdChjb250ZW50UmVjdCwgbGF5ZXItPmRyYXdUcmFuc2Zvcm0oKSwgbGF5ZXJD
bGlwUmVjdEluVGFyZ2V0KGxheWVyKSwgbV9zdGFjay5sYXN0KCkub2NjbHVzaW9uSW5UYXJnZXQp
OwogCiAgICAgaWYgKGhhc09jY2x1c2lvbkZyb21PdXRzaWRlVGFyZ2V0U3VyZmFjZSkKICAgICAg
ICAgKmhhc09jY2x1c2lvbkZyb21PdXRzaWRlVGFyZ2V0U3VyZmFjZSA9IChpbnRlcnNlY3Rpb24o
dW5vY2NsdWRlZEluU2NyZWVuLCB1bm9jY2x1ZGVkSW5UYXJnZXQpICE9IHVub2NjbHVkZWRJblRh
cmdldCk7CkBAIC00NDYsOSArNDQ2LDkgQEAgSW50UmVjdCBDQ09jY2x1c2lvblRyYWNrZXJCYXNl
PExheWVyVHlwZSwgUmVuZGVyU3VyZmFjZVR5cGU+Ojp1bm9jY2x1ZGVkQ29udHJpYnUKICAgICBp
ZiAoc3VyZmFjZVRyYW5zZm9ybXNUb1NjcmVlbktub3duKHN1cmZhY2UpKSB7CiAgICAgICAgIGlm
IChoYXNPY2NsdXNpb24pIHsKICAgICAgICAgICAgIGNvbnN0IFN0YWNrT2JqZWN0JiBzZWNvbmRM
YXN0ID0gbV9zdGFja1ttX3N0YWNrLnNpemUoKSAtIDJdOwotICAgICAgICAgICAgdW5vY2NsdWRl
ZEluU2NyZWVuID0gY29tcHV0ZVVub2NjbHVkZWRDb250ZW50UmVjdChjb250ZW50UmVjdCwgdHJh
bnNmb3JtVG9TY3JlZW4sIG1fc2Npc3NvclJlY3RJblNjcmVlblNwYWNlLCBzZWNvbmRMYXN0Lm9j
Y2x1c2lvbkluU2NyZWVuKTsKKyAgICAgICAgICAgIHVub2NjbHVkZWRJblNjcmVlbiA9IGNvbXB1
dGVVbm9jY2x1ZGVkQ29udGVudFJlY3QoY29udGVudFJlY3QsIHRyYW5zZm9ybVRvU2NyZWVuLCBt
X3Jvb3RUYXJnZXRSZWN0LCBzZWNvbmRMYXN0Lm9jY2x1c2lvbkluU2NyZWVuKTsKICAgICAgICAg
fSBlbHNlCi0gICAgICAgICAgICB1bm9jY2x1ZGVkSW5TY3JlZW4gPSBjb21wdXRlVW5vY2NsdWRl
ZENvbnRlbnRSZWN0KGNvbnRlbnRSZWN0LCB0cmFuc2Zvcm1Ub1NjcmVlbiwgbV9zY2lzc29yUmVj
dEluU2NyZWVuU3BhY2UsIFJlZ2lvbigpKTsKKyAgICAgICAgICAgIHVub2NjbHVkZWRJblNjcmVl
biA9IGNvbXB1dGVVbm9jY2x1ZGVkQ29udGVudFJlY3QoY29udGVudFJlY3QsIHRyYW5zZm9ybVRv
U2NyZWVuLCBtX3Jvb3RUYXJnZXRSZWN0LCBSZWdpb24oKSk7CiAgICAgfQogCiAgICAgSW50UmVj
dCB1bm9jY2x1ZGVkSW5UYXJnZXQgPSBjb250ZW50UmVjdDsKQEAgLTQ2Nyw3ICs0NjcsNyBAQCBJ
bnRSZWN0IENDT2NjbHVzaW9uVHJhY2tlckJhc2U8TGF5ZXJUeXBlLCBSZW5kZXJTdXJmYWNlVHlw
ZT46OnVub2NjbHVkZWRDb250cmlidQogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBMYXllclR5cGUs
IHR5cGVuYW1lIFJlbmRlclN1cmZhY2VUeXBlPgotSW50UmVjdCBDQ09jY2x1c2lvblRyYWNrZXJC
YXNlPExheWVyVHlwZSwgUmVuZGVyU3VyZmFjZVR5cGU+OjpsYXllclNjaXNzb3JSZWN0SW5UYXJn
ZXRTdXJmYWNlKGNvbnN0IExheWVyVHlwZSogbGF5ZXIpIGNvbnN0CitJbnRSZWN0IENDT2NjbHVz
aW9uVHJhY2tlckJhc2U8TGF5ZXJUeXBlLCBSZW5kZXJTdXJmYWNlVHlwZT46OmxheWVyQ2xpcFJl
Y3RJblRhcmdldChjb25zdCBMYXllclR5cGUqIGxheWVyKSBjb25zdAogewogICAgIC8vIEZJWE1F
OiB3ZSBjb3VsZCByZW1vdmUgdGhpcyBoZWxwZXIgZnVuY3Rpb24sIGJ1dCB1bml0IHRlc3RzIGN1
cnJlbnRseSBvdmVycmlkZSB0aGlzCiAgICAgLy8gICAgICAgIGZ1bmN0aW9uLCBhbmQgdGhleSBu
ZWVkIHRvIGJlIHZlcmlmaWVkL2FkanVzdGVkIGJlZm9yZSB0aGlzIGNhbiBiZSByZW1vdmVkLgpA
QCAtNDc1LDcgKzQ3NSw3IEBAIEludFJlY3QgQ0NPY2NsdXNpb25UcmFja2VyQmFzZTxMYXllclR5
cGUsIFJlbmRlclN1cmZhY2VUeXBlPjo6bGF5ZXJTY2lzc29yUmVjdEluCiB9CiAKIC8vIERlY2xh
cmUgdGhlIHBvc3NpYmxlIGZ1bmN0aW9ucyBoZXJlIGZvciB0aGUgbGlua2VyLgotdGVtcGxhdGUg
Q0NPY2NsdXNpb25UcmFja2VyQmFzZTxMYXllckNocm9taXVtLCBSZW5kZXJTdXJmYWNlQ2hyb21p
dW0+OjpDQ09jY2x1c2lvblRyYWNrZXJCYXNlKEludFJlY3Qgc2Npc3NvclJlY3RJblNjcmVlblNw
YWNlLCBib29sIHJlY29yZE1ldHJpY3NGb3JGcmFtZSk7Cit0ZW1wbGF0ZSBDQ09jY2x1c2lvblRy
YWNrZXJCYXNlPExheWVyQ2hyb21pdW0sIFJlbmRlclN1cmZhY2VDaHJvbWl1bT46OkNDT2NjbHVz
aW9uVHJhY2tlckJhc2UoSW50UmVjdCByb290VGFyZ2V0UmVjdCwgYm9vbCByZWNvcmRNZXRyaWNz
Rm9yRnJhbWUpOwogdGVtcGxhdGUgdm9pZCBDQ09jY2x1c2lvblRyYWNrZXJCYXNlPExheWVyQ2hy
b21pdW0sIFJlbmRlclN1cmZhY2VDaHJvbWl1bT46OmVudGVyTGF5ZXIoY29uc3QgQ0NMYXllckl0
ZXJhdG9yUG9zaXRpb248TGF5ZXJDaHJvbWl1bT4mKTsKIHRlbXBsYXRlIHZvaWQgQ0NPY2NsdXNp
b25UcmFja2VyQmFzZTxMYXllckNocm9taXVtLCBSZW5kZXJTdXJmYWNlQ2hyb21pdW0+OjpsZWF2
ZUxheWVyKGNvbnN0IENDTGF5ZXJJdGVyYXRvclBvc2l0aW9uPExheWVyQ2hyb21pdW0+Jik7CiB0
ZW1wbGF0ZSB2b2lkIENDT2NjbHVzaW9uVHJhY2tlckJhc2U8TGF5ZXJDaHJvbWl1bSwgUmVuZGVy
U3VyZmFjZUNocm9taXVtPjo6ZW50ZXJSZW5kZXJUYXJnZXQoY29uc3QgTGF5ZXJDaHJvbWl1bSog
bmV3VGFyZ2V0KTsKQEAgLTQ4NSw5ICs0ODUsOSBAQCB0ZW1wbGF0ZSB2b2lkIENDT2NjbHVzaW9u
VHJhY2tlckJhc2U8TGF5ZXJDaHJvbWl1bSwgUmVuZGVyU3VyZmFjZUNocm9taXVtPjo6bWFyawog
dGVtcGxhdGUgYm9vbCBDQ09jY2x1c2lvblRyYWNrZXJCYXNlPExheWVyQ2hyb21pdW0sIFJlbmRl
clN1cmZhY2VDaHJvbWl1bT46Om9jY2x1ZGVkKGNvbnN0IExheWVyQ2hyb21pdW0qLCBjb25zdCBJ
bnRSZWN0JiBjb250ZW50UmVjdCwgYm9vbCogaGFzT2NjbHVzaW9uRnJvbU91dHNpZGVUYXJnZXRT
dXJmYWNlKSBjb25zdDsKIHRlbXBsYXRlIEludFJlY3QgQ0NPY2NsdXNpb25UcmFja2VyQmFzZTxM
YXllckNocm9taXVtLCBSZW5kZXJTdXJmYWNlQ2hyb21pdW0+Ojp1bm9jY2x1ZGVkQ29udGVudFJl
Y3QoY29uc3QgTGF5ZXJDaHJvbWl1bSosIGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBib29s
KiBoYXNPY2NsdXNpb25Gcm9tT3V0c2lkZVRhcmdldFN1cmZhY2UpIGNvbnN0OwogdGVtcGxhdGUg
SW50UmVjdCBDQ09jY2x1c2lvblRyYWNrZXJCYXNlPExheWVyQ2hyb21pdW0sIFJlbmRlclN1cmZh
Y2VDaHJvbWl1bT46OnVub2NjbHVkZWRDb250cmlidXRpbmdTdXJmYWNlQ29udGVudFJlY3QoY29u
c3QgTGF5ZXJDaHJvbWl1bSosIGJvb2wgZm9yUmVwbGljYSwgY29uc3QgSW50UmVjdCYgY29udGVu
dFJlY3QsIGJvb2wqIGhhc09jY2x1c2lvbkZyb21PdXRzaWRlVGFyZ2V0U3VyZmFjZSkgY29uc3Q7
Ci10ZW1wbGF0ZSBJbnRSZWN0IENDT2NjbHVzaW9uVHJhY2tlckJhc2U8TGF5ZXJDaHJvbWl1bSwg
UmVuZGVyU3VyZmFjZUNocm9taXVtPjo6bGF5ZXJTY2lzc29yUmVjdEluVGFyZ2V0U3VyZmFjZShj
b25zdCBMYXllckNocm9taXVtKikgY29uc3Q7Cit0ZW1wbGF0ZSBJbnRSZWN0IENDT2NjbHVzaW9u
VHJhY2tlckJhc2U8TGF5ZXJDaHJvbWl1bSwgUmVuZGVyU3VyZmFjZUNocm9taXVtPjo6bGF5ZXJD
bGlwUmVjdEluVGFyZ2V0KGNvbnN0IExheWVyQ2hyb21pdW0qKSBjb25zdDsKIAotdGVtcGxhdGUg
Q0NPY2NsdXNpb25UcmFja2VyQmFzZTxDQ0xheWVySW1wbCwgQ0NSZW5kZXJTdXJmYWNlPjo6Q0NP
Y2NsdXNpb25UcmFja2VyQmFzZShJbnRSZWN0IHNjaXNzb3JSZWN0SW5TY3JlZW5TcGFjZSwgYm9v
bCByZWNvcmRNZXRyaWNzRm9yRnJhbWUpOwordGVtcGxhdGUgQ0NPY2NsdXNpb25UcmFja2VyQmFz
ZTxDQ0xheWVySW1wbCwgQ0NSZW5kZXJTdXJmYWNlPjo6Q0NPY2NsdXNpb25UcmFja2VyQmFzZShJ
bnRSZWN0IHJvb3RUYXJnZXRSZWN0LCBib29sIHJlY29yZE1ldHJpY3NGb3JGcmFtZSk7CiB0ZW1w
bGF0ZSB2b2lkIENDT2NjbHVzaW9uVHJhY2tlckJhc2U8Q0NMYXllckltcGwsIENDUmVuZGVyU3Vy
ZmFjZT46OmVudGVyTGF5ZXIoY29uc3QgQ0NMYXllckl0ZXJhdG9yUG9zaXRpb248Q0NMYXllcklt
cGw+Jik7CiB0ZW1wbGF0ZSB2b2lkIENDT2NjbHVzaW9uVHJhY2tlckJhc2U8Q0NMYXllckltcGws
IENDUmVuZGVyU3VyZmFjZT46OmxlYXZlTGF5ZXIoY29uc3QgQ0NMYXllckl0ZXJhdG9yUG9zaXRp
b248Q0NMYXllckltcGw+Jik7CiB0ZW1wbGF0ZSB2b2lkIENDT2NjbHVzaW9uVHJhY2tlckJhc2U8
Q0NMYXllckltcGwsIENDUmVuZGVyU3VyZmFjZT46OmVudGVyUmVuZGVyVGFyZ2V0KGNvbnN0IEND
TGF5ZXJJbXBsKiBuZXdUYXJnZXQpOwpAQCAtNDk3LDcgKzQ5Nyw3IEBAIHRlbXBsYXRlIHZvaWQg
Q0NPY2NsdXNpb25UcmFja2VyQmFzZTxDQ0xheWVySW1wbCwgQ0NSZW5kZXJTdXJmYWNlPjo6bWFy
a09jY2x1ZGVkCiB0ZW1wbGF0ZSBib29sIENDT2NjbHVzaW9uVHJhY2tlckJhc2U8Q0NMYXllcklt
cGwsIENDUmVuZGVyU3VyZmFjZT46Om9jY2x1ZGVkKGNvbnN0IENDTGF5ZXJJbXBsKiwgY29uc3Qg
SW50UmVjdCYgY29udGVudFJlY3QsIGJvb2wqIGhhc09jY2x1c2lvbkZyb21PdXRzaWRlVGFyZ2V0
U3VyZmFjZSkgY29uc3Q7CiB0ZW1wbGF0ZSBJbnRSZWN0IENDT2NjbHVzaW9uVHJhY2tlckJhc2U8
Q0NMYXllckltcGwsIENDUmVuZGVyU3VyZmFjZT46OnVub2NjbHVkZWRDb250ZW50UmVjdChjb25z
dCBDQ0xheWVySW1wbCosIGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBib29sKiBoYXNPY2Ns
dXNpb25Gcm9tT3V0c2lkZVRhcmdldFN1cmZhY2UpIGNvbnN0OwogdGVtcGxhdGUgSW50UmVjdCBD
Q09jY2x1c2lvblRyYWNrZXJCYXNlPENDTGF5ZXJJbXBsLCBDQ1JlbmRlclN1cmZhY2U+Ojp1bm9j
Y2x1ZGVkQ29udHJpYnV0aW5nU3VyZmFjZUNvbnRlbnRSZWN0KGNvbnN0IENDTGF5ZXJJbXBsKiwg
Ym9vbCBmb3JSZXBsaWNhLCBjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgYm9vbCogaGFzT2Nj
bHVzaW9uRnJvbU91dHNpZGVUYXJnZXRTdXJmYWNlKSBjb25zdDsKLXRlbXBsYXRlIEludFJlY3Qg
Q0NPY2NsdXNpb25UcmFja2VyQmFzZTxDQ0xheWVySW1wbCwgQ0NSZW5kZXJTdXJmYWNlPjo6bGF5
ZXJTY2lzc29yUmVjdEluVGFyZ2V0U3VyZmFjZShjb25zdCBDQ0xheWVySW1wbCopIGNvbnN0Owor
dGVtcGxhdGUgSW50UmVjdCBDQ09jY2x1c2lvblRyYWNrZXJCYXNlPENDTGF5ZXJJbXBsLCBDQ1Jl
bmRlclN1cmZhY2U+OjpsYXllckNsaXBSZWN0SW5UYXJnZXQoY29uc3QgQ0NMYXllckltcGwqKSBj
b25zdDsKIAogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ09jY2x1c2lvblRyYWNrZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDT2NjbHVzaW9u
VHJhY2tlci5oCmluZGV4IGE2MDFiNmQzOTUxYTE0ZmViM2FlZDMzMWM1NTQzOWI2MDdkOTQ3NGEu
LmQyZjRhMDBkY2I2MmY3MzMzODljNGJkYjBkZWZmYTY4MTBkNzgxYTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDT2NjbHVzaW9uVHJh
Y2tlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDT2NjbHVzaW9uVHJhY2tlci5oCkBAIC00Niw3ICs0Niw3IEBAIHRlbXBsYXRlPHR5cGVuYW1l
IExheWVyVHlwZSwgdHlwZW5hbWUgUmVuZGVyU3VyZmFjZVR5cGU+CiBjbGFzcyBDQ09jY2x1c2lv
blRyYWNrZXJCYXNlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDQ09jY2x1c2lvblRyYWNr
ZXJCYXNlKTsKIHB1YmxpYzoKLSAgICBDQ09jY2x1c2lvblRyYWNrZXJCYXNlKEludFJlY3Qgc2Np
c3NvclJlY3RJblNjcmVlblNwYWNlLCBib29sIHJlY29yZE1ldHJpY3NGb3JGcmFtZSk7CisgICAg
Q0NPY2NsdXNpb25UcmFja2VyQmFzZShJbnRSZWN0IHJvb3RUYXJnZXRSZWN0LCBib29sIHJlY29y
ZE1ldHJpY3NGb3JGcmFtZSk7CiAKICAgICAvLyBDYWxsZWQgYXQgdGhlIGJlZ2lubmluZyBvZiBl
YWNoIHN0ZXAgaW4gdGhlIENDTGF5ZXJJdGVyYXRvcidzIGZyb250LXRvLWJhY2sgdHJhdmVyc2Fs
LgogICAgIHZvaWQgZW50ZXJMYXllcihjb25zdCBDQ0xheWVySXRlcmF0b3JQb3NpdGlvbjxMYXll
clR5cGU+Jik7CkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICBDQ092ZXJkcmF3TWV0cmlj
cyYgb3ZlcmRyYXdNZXRyaWNzKCkgY29uc3QgeyByZXR1cm4gKm1fb3ZlcmRyYXdNZXRyaWNzLmdl
dCgpOyB9CiAKICAgICAvLyBHaXZlcyB0aGUgcmVnaW9uIG9mIHRoZSBzY3JlZW4gdGhhdCBpcyBu
b3Qgb2NjbHVkZWQgYnkgc29tZXRoaW5nIG9wYXF1ZS4KLSAgICBSZWdpb24gY29tcHV0ZVZpc2li
bGVSZWdpb25JblNjcmVlbigpIGNvbnN0IHsgcmV0dXJuIHN1YnRyYWN0KFJlZ2lvbihtX3NjaXNz
b3JSZWN0SW5TY3JlZW5TcGFjZSksIG1fc3RhY2subGFzdCgpLm9jY2x1c2lvbkluU2NyZWVuKTsg
fQorICAgIFJlZ2lvbiBjb21wdXRlVmlzaWJsZVJlZ2lvbkluU2NyZWVuKCkgY29uc3QgeyByZXR1
cm4gc3VidHJhY3QoUmVnaW9uKG1fcm9vdFRhcmdldFJlY3QpLCBtX3N0YWNrLmxhc3QoKS5vY2Ns
dXNpb25JblNjcmVlbik7IH0KIAogICAgIHZvaWQgc2V0TWluaW11bVRyYWNraW5nU2l6ZShjb25z
dCBJbnRTaXplJiBzaXplKSB7IG1fbWluaW11bVRyYWNraW5nU2l6ZSA9IHNpemU7IH0KIApAQCAt
OTIsNyArOTIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgVmVjdG9yPFN0YWNrT2JqZWN0LCAxPiBtX3N0
YWNrOwogCiAgICAgLy8gQWxsb3cgdGVzdHMgdG8gb3ZlcnJpZGUgdGhpcy4KLSAgICB2aXJ0dWFs
IEludFJlY3QgbGF5ZXJTY2lzc29yUmVjdEluVGFyZ2V0U3VyZmFjZShjb25zdCBMYXllclR5cGUq
KSBjb25zdDsKKyAgICB2aXJ0dWFsIEludFJlY3QgbGF5ZXJDbGlwUmVjdEluVGFyZ2V0KGNvbnN0
IExheWVyVHlwZSopIGNvbnN0OwogCiBwcml2YXRlOgogICAgIC8vIENhbGxlZCB3aGVuIHZpc2l0
aW5nIGEgbGF5ZXIgcmVwcmVzZW50aW5nIGl0c2VsZi4gSWYgdGhlIHRhcmdldCB3YXMgbm90IGFs
cmVhZHkgY3VycmVudCwgdGhlbiB0aGlzIGluZGljYXRlcyB3ZSBoYXZlIGVudGVyZWQgYSBuZXcg
c3VyZmFjZSBzdWJ0cmVlLgpAQCAtMTA5LDcgKzEwOSw3IEBAIHByaXZhdGU6CiAgICAgLy8gQWRk
IHRoZSBsYXllcidzIG9jY2x1c2lvbiB0byB0aGUgdHJhY2tlZCBzdGF0ZS4KICAgICB2b2lkIG1h
cmtPY2NsdWRlZEJlaGluZExheWVyKGNvbnN0IExheWVyVHlwZSopOwogCi0gICAgSW50UmVjdCBt
X3NjaXNzb3JSZWN0SW5TY3JlZW5TcGFjZTsKKyAgICBJbnRSZWN0IG1fcm9vdFRhcmdldFJlY3Q7
CiAgICAgT3duUHRyPENDT3ZlcmRyYXdNZXRyaWNzPiBtX292ZXJkcmF3TWV0cmljczsKICAgICBJ
bnRTaXplIG1fbWluaW11bVRyYWNraW5nU2l6ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9DQ09jY2x1c2lvblRyYWNrZXJUZXN0LmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvQ0NPY2NsdXNpb25UcmFja2VyVGVzdC5jcHAKaW5kZXggYzA0YWI1
MWNiODAxYjJjMzEzZjYxYTI4YWUwMDcwNDYwNTg3YzZlZS4uYmZhNjQ0NWMwMzI5NDNmMzhjYWNk
NTIwYWQ0YmVlODNmYWFkYzU0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9DQ09jY2x1c2lvblRyYWNrZXJUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0NDT2NjbHVzaW9uVHJhY2tlclRlc3QuY3BwCkBAIC0xMDMsMjMgKzEwMywyMyBA
QCBwcml2YXRlOgogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgTGF5ZXJUeXBlLCB0eXBlbmFtZSBS
ZW5kZXJTdXJmYWNlVHlwZT4KLWNsYXNzIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoU2Npc3Nv
ciA6IHB1YmxpYyBUZXN0Q0NPY2NsdXNpb25UcmFja2VyQmFzZTxMYXllclR5cGUsIFJlbmRlclN1
cmZhY2VUeXBlPiB7CitjbGFzcyBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aENsaXAgOiBwdWJs
aWMgVGVzdENDT2NjbHVzaW9uVHJhY2tlckJhc2U8TGF5ZXJUeXBlLCBSZW5kZXJTdXJmYWNlVHlw
ZT4gewogcHVibGljOgotICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoU2Npc3NvcihJbnRS
ZWN0IHNjcmVlblNjaXNzb3JSZWN0LCBib29sIHJlY29yZE1ldHJpY3NGb3JGcmFtZSA9IGZhbHNl
KQotICAgICAgICA6IFRlc3RDQ09jY2x1c2lvblRyYWNrZXJCYXNlPExheWVyVHlwZSwgUmVuZGVy
U3VyZmFjZVR5cGU+KHNjcmVlblNjaXNzb3JSZWN0LCByZWNvcmRNZXRyaWNzRm9yRnJhbWUpCi0g
ICAgICAgICwgbV9vdmVycmlkZUxheWVyU2Npc3NvclJlY3QoZmFsc2UpCisgICAgVGVzdENDT2Nj
bHVzaW9uVHJhY2tlcldpdGhDbGlwKEludFJlY3Qgdmlld3BvcnRSZWN0LCBib29sIHJlY29yZE1l
dHJpY3NGb3JGcmFtZSA9IGZhbHNlKQorICAgICAgICA6IFRlc3RDQ09jY2x1c2lvblRyYWNrZXJC
YXNlPExheWVyVHlwZSwgUmVuZGVyU3VyZmFjZVR5cGU+KHZpZXdwb3J0UmVjdCwgcmVjb3JkTWV0
cmljc0ZvckZyYW1lKQorICAgICAgICAsIG1fb3ZlcnJpZGVMYXllckNsaXBSZWN0KGZhbHNlKQog
ICAgIHsKICAgICB9CiAKLSAgICB2b2lkIHNldExheWVyU2Npc3NvclJlY3QoY29uc3QgSW50UmVj
dCYgcmVjdCkgeyBtX292ZXJyaWRlTGF5ZXJTY2lzc29yUmVjdCA9IHRydWU7IG1fbGF5ZXJTY2lz
c29yUmVjdCA9IHJlY3Q7fQotICAgIHZvaWQgdXNlRGVmYXVsdExheWVyU2Npc3NvclJlY3QoKSB7
IG1fb3ZlcnJpZGVMYXllclNjaXNzb3JSZWN0ID0gZmFsc2U7IH0KKyAgICB2b2lkIHNldExheWVy
Q2xpcFJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkgeyBtX292ZXJyaWRlTGF5ZXJDbGlwUmVjdCA9
IHRydWU7IG1fbGF5ZXJDbGlwUmVjdCA9IHJlY3Q7fQorICAgIHZvaWQgdXNlRGVmYXVsdExheWVy
Q2xpcFJlY3QoKSB7IG1fb3ZlcnJpZGVMYXllckNsaXBSZWN0ID0gZmFsc2U7IH0KIAogcHJvdGVj
dGVkOgotICAgIHZpcnR1YWwgSW50UmVjdCBsYXllclNjaXNzb3JSZWN0SW5UYXJnZXRTdXJmYWNl
KGNvbnN0IExheWVyVHlwZSogbGF5ZXIpIGNvbnN0IHsgcmV0dXJuIG1fb3ZlcnJpZGVMYXllclNj
aXNzb3JSZWN0ID8gbV9sYXllclNjaXNzb3JSZWN0IDogQ0NPY2NsdXNpb25UcmFja2VyQmFzZTxM
YXllclR5cGUsIFJlbmRlclN1cmZhY2VUeXBlPjo6bGF5ZXJTY2lzc29yUmVjdEluVGFyZ2V0U3Vy
ZmFjZShsYXllcik7IH0KKyAgICB2aXJ0dWFsIEludFJlY3QgbGF5ZXJDbGlwUmVjdEluVGFyZ2V0
KGNvbnN0IExheWVyVHlwZSogbGF5ZXIpIGNvbnN0IHsgcmV0dXJuIG1fb3ZlcnJpZGVMYXllckNs
aXBSZWN0ID8gbV9sYXllckNsaXBSZWN0IDogQ0NPY2NsdXNpb25UcmFja2VyQmFzZTxMYXllclR5
cGUsIFJlbmRlclN1cmZhY2VUeXBlPjo6bGF5ZXJDbGlwUmVjdEluVGFyZ2V0KGxheWVyKTsgfQog
CiBwcml2YXRlOgotICAgIGJvb2wgbV9vdmVycmlkZUxheWVyU2Npc3NvclJlY3Q7Ci0gICAgSW50
UmVjdCBtX2xheWVyU2Npc3NvclJlY3Q7CisgICAgYm9vbCBtX292ZXJyaWRlTGF5ZXJDbGlwUmVj
dDsKKyAgICBJbnRSZWN0IG1fbGF5ZXJDbGlwUmVjdDsKIH07CiAKIHN0cnVjdCBDQ09jY2x1c2lv
blRyYWNrZXJUZXN0TWFpblRocmVhZFR5cGVzIHsKQEAgLTQ0MSw4ICs0NDEsOCBAQCBwcm90ZWN0
ZWQ6CiAgICAgICAgIHR5cGVuYW1lIFR5cGVzOjpDb250ZW50TGF5ZXJUeXBlKiBsYXllciA9IHRo
aXMtPmNyZWF0ZURyYXdpbmdMYXllcihwYXJlbnQsIHRoaXMtPmlkZW50aXR5TWF0cml4LCBGbG9h
dFBvaW50KDMwLCAzMCksIEludFNpemUoNTAwLCA1MDApLCB0cnVlKTsKICAgICAgICAgdGhpcy0+
Y2FsY0RyYXdFdGMocGFyZW50KTsKIAotICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0
aFNjaXNzb3I8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRl
clN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7Ci0gICAg
ICAgIG9jY2x1c2lvbi5zZXRMYXllclNjaXNzb3JSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAw
MCkpOworICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aENsaXA8dHlwZW5hbWUgVHlw
ZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNp
b24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIG9jY2x1c2lvbi5zZXRMYXll
ckNsaXBSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwogCiAgICAgICAgIHRoaXMtPnZp
c2l0TGF5ZXIobGF5ZXIsIG9jY2x1c2lvbik7CiAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIocGFy
ZW50LCBvY2NsdXNpb24pOwpAQCAtNDU4LDEzICs0NTgsMTMgQEAgcHJvdGVjdGVkOgogICAgICAg
ICBFWFBFQ1RfRkFMU0Uob2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50UmVjdCgzMSwgMzAs
IDcwLCA3MCkpKTsKICAgICAgICAgRVhQRUNUX0ZBTFNFKG9jY2x1c2lvbi5vY2NsdWRlZChwYXJl
bnQsIEludFJlY3QoMzAsIDMxLCA3MCwgNzApKSk7CiAKLSAgICAgICAgb2NjbHVzaW9uLnVzZURl
ZmF1bHRMYXllclNjaXNzb3JSZWN0KCk7CisgICAgICAgIG9jY2x1c2lvbi51c2VEZWZhdWx0TGF5
ZXJDbGlwUmVjdCgpOwogICAgICAgICBFWFBFQ1RfVFJVRShvY2NsdXNpb24ub2NjbHVkZWQocGFy
ZW50LCBJbnRSZWN0KDMwLCAzMCwgNzAsIDcwKSkpOwogICAgICAgICBFWFBFQ1RfRkFMU0Uob2Nj
bHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50UmVjdCgyOSwgMzAsIDcwLCA3MCkpKTsKICAgICAg
ICAgRVhQRUNUX0ZBTFNFKG9jY2x1c2lvbi5vY2NsdWRlZChwYXJlbnQsIEludFJlY3QoMzAsIDI5
LCA3MCwgNzApKSk7CiAgICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi5vY2NsdWRlZChwYXJl
bnQsIEludFJlY3QoMzEsIDMwLCA3MCwgNzApKSk7CiAgICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1
c2lvbi5vY2NsdWRlZChwYXJlbnQsIEludFJlY3QoMzAsIDMxLCA3MCwgNzApKSk7Ci0gICAgICAg
IG9jY2x1c2lvbi5zZXRMYXllclNjaXNzb3JSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkp
OworICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJDbGlwUmVjdChJbnRSZWN0KDAsIDAsIDEwMDAs
IDEwMDApKTsKIAogICAgICAgICBFWFBFQ1RfVFJVRShvY2NsdXNpb24udW5vY2NsdWRlZENvbnRl
bnRSZWN0KHBhcmVudCwgSW50UmVjdCgzMCwgMzAsIDcwLCA3MCkpLmlzRW1wdHkoKSk7CiAgICAg
ICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDI5LCAzMCwgMSwgNzApLCBvY2NsdXNpb24u
dW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgyOSwgMzAsIDcwLCA3MCkpKTsK
QEAgLTQ5NCw4ICs0OTQsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHR5cGVuYW1lIFR5cGVzOjpD
b250ZW50TGF5ZXJUeXBlKiBsYXllciA9IHRoaXMtPmNyZWF0ZURyYXdpbmdMYXllcihwYXJlbnQs
IGxheWVyVHJhbnNmb3JtLCBGbG9hdFBvaW50KDMwLCAzMCksIEludFNpemUoNTAwLCA1MDApLCB0
cnVlKTsKICAgICAgICAgdGhpcy0+Y2FsY0RyYXdFdGMocGFyZW50KTsKIAotICAgICAgICBUZXN0
Q0NPY2NsdXNpb25UcmFja2VyV2l0aFNjaXNzb3I8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwg
dHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAw
LCAxMDAwLCAxMDAwKSk7Ci0gICAgICAgIG9jY2x1c2lvbi5zZXRMYXllclNjaXNzb3JSZWN0KElu
dFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2Vy
V2l0aENsaXA8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRl
clN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAg
ICAgIG9jY2x1c2lvbi5zZXRMYXllckNsaXBSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkp
OwogCiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIobGF5ZXIsIG9jY2x1c2lvbik7CiAgICAgICAg
IHRoaXMtPmVudGVyTGF5ZXIocGFyZW50LCBvY2NsdXNpb24pOwpAQCAtNTExLDEzICs1MTEsMTMg
QEAgcHJvdGVjdGVkOgogICAgICAgICBFWFBFQ1RfRkFMU0Uob2NjbHVzaW9uLm9jY2x1ZGVkKHBh
cmVudCwgSW50UmVjdCgzMSwgMzAsIDcwLCA3MCkpKTsKICAgICAgICAgRVhQRUNUX0ZBTFNFKG9j
Y2x1c2lvbi5vY2NsdWRlZChwYXJlbnQsIEludFJlY3QoMzAsIDMxLCA3MCwgNzApKSk7CiAKLSAg
ICAgICAgb2NjbHVzaW9uLnVzZURlZmF1bHRMYXllclNjaXNzb3JSZWN0KCk7CisgICAgICAgIG9j
Y2x1c2lvbi51c2VEZWZhdWx0TGF5ZXJDbGlwUmVjdCgpOwogICAgICAgICBFWFBFQ1RfVFJVRShv
Y2NsdXNpb24ub2NjbHVkZWQocGFyZW50LCBJbnRSZWN0KDMwLCAzMCwgNzAsIDcwKSkpOwogICAg
ICAgICBFWFBFQ1RfRkFMU0Uob2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50UmVjdCgyOSwg
MzAsIDcwLCA3MCkpKTsKICAgICAgICAgRVhQRUNUX0ZBTFNFKG9jY2x1c2lvbi5vY2NsdWRlZChw
YXJlbnQsIEludFJlY3QoMzAsIDI5LCA3MCwgNzApKSk7CiAgICAgICAgIEVYUEVDVF9UUlVFKG9j
Y2x1c2lvbi5vY2NsdWRlZChwYXJlbnQsIEludFJlY3QoMzEsIDMwLCA3MCwgNzApKSk7CiAgICAg
ICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi5vY2NsdWRlZChwYXJlbnQsIEludFJlY3QoMzAsIDMx
LCA3MCwgNzApKSk7Ci0gICAgICAgIG9jY2x1c2lvbi5zZXRMYXllclNjaXNzb3JSZWN0KEludFJl
Y3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJDbGlwUmVj
dChJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKIAogICAgICAgICBFWFBFQ1RfVFJVRShvY2Ns
dXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCgzMCwgMzAsIDcwLCA3
MCkpLmlzRW1wdHkoKSk7CiAgICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDI5LCAz
MCwgMSwgNzApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVj
dCgyOSwgMzAsIDcwLCA3MCkpKTsKQEAgLTU0NSw4ICs1NDUsOCBAQCBwcm90ZWN0ZWQ6CiAgICAg
ICAgIHR5cGVuYW1lIFR5cGVzOjpDb250ZW50TGF5ZXJUeXBlKiBsYXllciA9IHRoaXMtPmNyZWF0
ZURyYXdpbmdMYXllcihwYXJlbnQsIGxheWVyVHJhbnNmb3JtLCBGbG9hdFBvaW50KDMwLCAzMCks
IEludFNpemUoNTAwLCA1MDApLCB0cnVlKTsKICAgICAgICAgdGhpcy0+Y2FsY0RyYXdFdGMocGFy
ZW50KTsKIAotICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aFNjaXNzb3I8dHlwZW5h
bWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBv
Y2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7Ci0gICAgICAgIG9jY2x1c2lvbi5z
ZXRMYXllclNjaXNzb3JSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBU
ZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aENsaXA8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwg
dHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAw
LCAxMDAwLCAxMDAwKSk7CisgICAgICAgIG9jY2x1c2lvbi5zZXRMYXllckNsaXBSZWN0KEludFJl
Y3QoMCwgMCwgMTAwMCwgMTAwMCkpOwogCiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIobGF5ZXIs
IG9jY2x1c2lvbik7CiAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIocGFyZW50LCBvY2NsdXNpb24p
OwpAQCAtNTYyLDEzICs1NjIsMTMgQEAgcHJvdGVjdGVkOgogICAgICAgICBFWFBFQ1RfRkFMU0Uo
b2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50UmVjdCg1MSwgNTAsIDUwLCA1MCkpKTsKICAg
ICAgICAgRVhQRUNUX0ZBTFNFKG9jY2x1c2lvbi5vY2NsdWRlZChwYXJlbnQsIEludFJlY3QoNTAs
IDUxLCA1MCwgNTApKSk7CiAKLSAgICAgICAgb2NjbHVzaW9uLnVzZURlZmF1bHRMYXllclNjaXNz
b3JSZWN0KCk7CisgICAgICAgIG9jY2x1c2lvbi51c2VEZWZhdWx0TGF5ZXJDbGlwUmVjdCgpOwog
ICAgICAgICBFWFBFQ1RfVFJVRShvY2NsdXNpb24ub2NjbHVkZWQocGFyZW50LCBJbnRSZWN0KDUw
LCA1MCwgNTAsIDUwKSkpOwogICAgICAgICBFWFBFQ1RfRkFMU0Uob2NjbHVzaW9uLm9jY2x1ZGVk
KHBhcmVudCwgSW50UmVjdCg0OSwgNTAsIDUwLCA1MCkpKTsKICAgICAgICAgRVhQRUNUX0ZBTFNF
KG9jY2x1c2lvbi5vY2NsdWRlZChwYXJlbnQsIEludFJlY3QoNTAsIDQ5LCA1MCwgNTApKSk7CiAg
ICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi5vY2NsdWRlZChwYXJlbnQsIEludFJlY3QoNTEs
IDUwLCA1MCwgNTApKSk7CiAgICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi5vY2NsdWRlZChw
YXJlbnQsIEludFJlY3QoNTAsIDUxLCA1MCwgNTApKSk7Ci0gICAgICAgIG9jY2x1c2lvbi5zZXRM
YXllclNjaXNzb3JSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBvY2Ns
dXNpb24uc2V0TGF5ZXJDbGlwUmVjdChJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKIAogICAg
ICAgICBFWFBFQ1RfVFJVRShvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwg
SW50UmVjdCg1MCwgNTAsIDUwLCA1MCkpLmlzRW1wdHkoKSk7CiAgICAgICAgIEVYUEVDVF9JTlRf
UkVDVF9FUShJbnRSZWN0KDQ5LCA1MCwgMSwgNTApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRl
bnRSZWN0KHBhcmVudCwgSW50UmVjdCg0OSwgNTAsIDUwLCA1MCkpKTsKQEAgLTU4MCw3ICs1ODAs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDUwLCAx
MDAsIDUwLCAxKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJl
Y3QoNTAsIDUxLCA1MCwgNTApKSk7CiAgICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0
KDQ5LCA1MSwgNTAsIDUwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQs
IEludFJlY3QoNDksIDUxLCA1MCwgNTApKSk7CiAKLSAgICAgICAgb2NjbHVzaW9uLnVzZURlZmF1
bHRMYXllclNjaXNzb3JSZWN0KCk7CisgICAgICAgIG9jY2x1c2lvbi51c2VEZWZhdWx0TGF5ZXJD
bGlwUmVjdCgpOwogICAgICAgICBFWFBFQ1RfVFJVRShvY2NsdXNpb24udW5vY2NsdWRlZENvbnRl
bnRSZWN0KHBhcmVudCwgSW50UmVjdCg1MCwgNTAsIDUwLCA1MCkpLmlzRW1wdHkoKSk7CiAgICAg
ICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDQ5LCA1MCwgMSwgNTApLCBvY2NsdXNpb24u
dW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCg0OSwgNTAsIDUwLCA1MCkpKTsK
ICAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoNDksIDQ5LCA1MCwgNTApLCBvY2Ns
dXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCg0OSwgNDksIDUwLCA1
MCkpKTsKQEAgLTU5MCw3ICs1OTAsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIEVYUEVDVF9UUlVF
KG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDUxLCA1MSwg
NTAsIDUwKSkuaXNFbXB0eSgpKTsKICAgICAgICAgRVhQRUNUX1RSVUUob2NjbHVzaW9uLnVub2Nj
bHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoNTAsIDUxLCA1MCwgNTApKS5pc0VtcHR5
KCkpOwogICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg0OSwgNTEsIDEsIDQ5KSwg
b2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoNDksIDUxLCA1
MCwgNTApKSk7Ci0gICAgICAgIG9jY2x1c2lvbi5zZXRMYXllclNjaXNzb3JSZWN0KEludFJlY3Qo
MCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJDbGlwUmVjdChJ
bnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKICAgICB9CiB9OwogCkBAIC02MTIsOCArNjEyLDgg
QEAgcHJvdGVjdGVkOgogICAgICAgICB0eXBlbmFtZSBUeXBlczo6Q29udGVudExheWVyVHlwZSog
bGF5ZXIgPSB0aGlzLT5jcmVhdGVEcmF3aW5nTGF5ZXIoY2hpbGQsIHRoaXMtPmlkZW50aXR5TWF0
cml4LCBGbG9hdFBvaW50KDEwLCAxMCksIEludFNpemUoNTAwLCA1MDApLCB0cnVlKTsKICAgICAg
ICAgdGhpcy0+Y2FsY0RyYXdFdGMocGFyZW50KTsKIAotICAgICAgICBUZXN0Q0NPY2NsdXNpb25U
cmFja2VyV2l0aFNjaXNzb3I8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlw
ZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAw
KSk7Ci0gICAgICAgIG9jY2x1c2lvbi5zZXRMYXllclNjaXNzb3JSZWN0KEludFJlY3QoMCwgMCwg
MTAwMCwgMTAwMCkpOworICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aENsaXA8dHlw
ZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBl
PiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIG9jY2x1c2lv
bi5zZXRMYXllckNsaXBSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwogCiAgICAgICAg
IHRoaXMtPnZpc2l0TGF5ZXIobGF5ZXIsIG9jY2x1c2lvbik7CiAgICAgICAgIHRoaXMtPmVudGVy
Q29udHJpYnV0aW5nU3VyZmFjZShjaGlsZCwgb2NjbHVzaW9uKTsKQEAgLTYzNywxMyArNjM3LDEz
IEBAIHByb3RlY3RlZDoKICAgICAgICAgRVhQRUNUX0ZBTFNFKG9jY2x1c2lvbi5vY2NsdWRlZChw
YXJlbnQsIEludFJlY3QoMzEsIDQwLCA3MCwgNjApKSk7CiAgICAgICAgIEVYUEVDVF9GQUxTRShv
Y2NsdXNpb24ub2NjbHVkZWQocGFyZW50LCBJbnRSZWN0KDMwLCA0MSwgNzAsIDYwKSkpOwogCi0g
ICAgICAgIG9jY2x1c2lvbi51c2VEZWZhdWx0TGF5ZXJTY2lzc29yUmVjdCgpOworICAgICAgICBv
Y2NsdXNpb24udXNlRGVmYXVsdExheWVyQ2xpcFJlY3QoKTsKICAgICAgICAgRVhQRUNUX1RSVUUo
b2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50UmVjdCgzMCwgNDAsIDcwLCA2MCkpKTsKICAg
ICAgICAgRVhQRUNUX0ZBTFNFKG9jY2x1c2lvbi5vY2NsdWRlZChwYXJlbnQsIEludFJlY3QoMjks
IDQwLCA3MCwgNjApKSk7CiAgICAgICAgIEVYUEVDVF9GQUxTRShvY2NsdXNpb24ub2NjbHVkZWQo
cGFyZW50LCBJbnRSZWN0KDMwLCAzOSwgNzAsIDYwKSkpOwogICAgICAgICBFWFBFQ1RfVFJVRShv
Y2NsdXNpb24ub2NjbHVkZWQocGFyZW50LCBJbnRSZWN0KDMxLCA0MCwgNzAsIDYwKSkpOwogICAg
ICAgICBFWFBFQ1RfVFJVRShvY2NsdXNpb24ub2NjbHVkZWQocGFyZW50LCBJbnRSZWN0KDMwLCA0
MSwgNzAsIDYwKSkpOwotICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJTY2lzc29yUmVjdChJbnRS
ZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgb2NjbHVzaW9uLnNldExheWVyQ2xpcFJl
Y3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAKIAogICAgICAgICAvKiBKdXN0aWZpY2F0
aW9uIGZvciB0aGUgYWJvdmUgb2NjbHVzaW9uIGZyb20gfGxheWVyfDoKQEAgLTY5NCw4ICs2OTQs
OCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHR5cGVuYW1lIFR5cGVzOjpDb250ZW50TGF5ZXJUeXBl
KiBjaGlsZDIgPSB0aGlzLT5jcmVhdGVEcmF3aW5nTGF5ZXIocGFyZW50LCB0aGlzLT5pZGVudGl0
eU1hdHJpeCwgRmxvYXRQb2ludCgzMCwgMzApLCBJbnRTaXplKDYwLCAyMCksIHRydWUpOwogICAg
ICAgICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCi0gICAgICAgIFRlc3RDQ09jY2x1c2lv
blRyYWNrZXJXaXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBU
eXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEw
MDApKTsKLSAgICAgICAgb2NjbHVzaW9uLnNldExheWVyU2Npc3NvclJlY3QoSW50UmVjdCgtMTAs
IC0xMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aENs
aXA8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZh
Y2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIG9j
Y2x1c2lvbi5zZXRMYXllckNsaXBSZWN0KEludFJlY3QoLTEwLCAtMTAsIDEwMDAsIDEwMDApKTsK
IAogICAgICAgICB0aGlzLT52aXNpdExheWVyKGNoaWxkMiwgb2NjbHVzaW9uKTsKIApAQCAtODA1
LDggKzgwNSw4IEBAIHByb3RlY3RlZDoKICAgICAgICAgdHlwZW5hbWUgVHlwZXM6OkNvbnRlbnRM
YXllclR5cGUqIGxheWVyID0gdGhpcy0+Y3JlYXRlRHJhd2luZ0xheWVyKGNoaWxkLCBsYXllclRy
YW5zZm9ybSwgRmxvYXRQb2ludCgwLCAwKSwgSW50U2l6ZSg1MDAsIDUwMCksIHRydWUpOwogICAg
ICAgICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCi0gICAgICAgIFRlc3RDQ09jY2x1c2lv
blRyYWNrZXJXaXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBU
eXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEw
MDApKTsKLSAgICAgICAgb2NjbHVzaW9uLnNldExheWVyU2Npc3NvclJlY3QoSW50UmVjdCgwLCAw
LCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoQ2xpcDx0
eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5
cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgb2NjbHVz
aW9uLnNldExheWVyQ2xpcFJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAKICAgICAg
ICAgSW50UmVjdCBjbGlwcGVkTGF5ZXJJbkNoaWxkID0gQ0NNYXRoVXRpbDo6bWFwQ2xpcHBlZFJl
Y3QobGF5ZXJUcmFuc2Zvcm0sIGxheWVyLT52aXNpYmxlQ29udGVudFJlY3QoKSk7CiAKQEAgLTg2
OSw4ICs4NjksOCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHR5cGVuYW1lIFR5cGVzOjpDb250ZW50
TGF5ZXJUeXBlKiBsYXllcjIgPSB0aGlzLT5jcmVhdGVEcmF3aW5nTGF5ZXIoY2hpbGQsIHRoaXMt
PmlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDEwLCA0NTApLCBJbnRTaXplKDUwMCwgNjApLCB0
cnVlKTsKICAgICAgICAgdGhpcy0+Y2FsY0RyYXdFdGMocGFyZW50KTsKIAotICAgICAgICBUZXN0
Q0NPY2NsdXNpb25UcmFja2VyV2l0aFNjaXNzb3I8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwg
dHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAw
LCAxMDAwLCAxMDAwKSk7Ci0gICAgICAgIG9jY2x1c2lvbi5zZXRMYXllclNjaXNzb3JSZWN0KElu
dFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2Vy
V2l0aENsaXA8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRl
clN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAg
ICAgIG9jY2x1c2lvbi5zZXRMYXllckNsaXBSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkp
OwogCiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIobGF5ZXIyLCBvY2NsdXNpb24pOwogICAgICAg
ICB0aGlzLT52aXNpdExheWVyKGxheWVyMSwgb2NjbHVzaW9uKTsKQEAgLTk1Nyw4ICs5NTcsOCBA
QCBwcm90ZWN0ZWQ6CiAgICAgICAgIHR5cGVuYW1lIFR5cGVzOjpDb250ZW50TGF5ZXJUeXBlKiBs
YXllcjIgPSB0aGlzLT5jcmVhdGVEcmF3aW5nTGF5ZXIoY2hpbGQyLCB0aGlzLT5pZGVudGl0eU1h
dHJpeCwgRmxvYXRQb2ludCgtMTAsIC0xMCksIEludFNpemUoNTEwLCA1MTApLCB0cnVlKTsKICAg
ICAgICAgdGhpcy0+Y2FsY0RyYXdFdGMocGFyZW50KTsKIAotICAgICAgICBUZXN0Q0NPY2NsdXNp
b25UcmFja2VyV2l0aFNjaXNzb3I8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUg
VHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAx
MDAwKSk7Ci0gICAgICAgIG9jY2x1c2lvbi5zZXRMYXllclNjaXNzb3JSZWN0KEludFJlY3QoLTIw
LCAtMjAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhD
bGlwPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJm
YWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBv
Y2NsdXNpb24uc2V0TGF5ZXJDbGlwUmVjdChJbnRSZWN0KC0yMCwgLTIwLCAxMDAwLCAxMDAwKSk7
CiAKICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihsYXllcjIsIG9jY2x1c2lvbik7CiAgICAgICAg
IHRoaXMtPmVudGVyQ29udHJpYnV0aW5nU3VyZmFjZShjaGlsZDIsIG9jY2x1c2lvbik7CkBAIC05
NzQsMTMgKzk3NCwxMyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIEVYUEVDVF9GQUxTRShvY2NsdXNp
b24ub2NjbHVkZWQoY2hpbGQyLCBJbnRSZWN0KC0xMCwgNDIwLCA3MSwgODApKSk7CiAgICAgICAg
IEVYUEVDVF9GQUxTRShvY2NsdXNpb24ub2NjbHVkZWQoY2hpbGQyLCBJbnRSZWN0KC0xMCwgNDIw
LCA3MCwgODEpKSk7CiAKLSAgICAgICAgb2NjbHVzaW9uLnVzZURlZmF1bHRMYXllclNjaXNzb3JS
ZWN0KCk7CisgICAgICAgIG9jY2x1c2lvbi51c2VEZWZhdWx0TGF5ZXJDbGlwUmVjdCgpOwogICAg
ICAgICBFWFBFQ1RfVFJVRShvY2NsdXNpb24ub2NjbHVkZWQoY2hpbGQyLCBJbnRSZWN0KC0xMCwg
NDIwLCA3MCwgODApKSk7CiAgICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi5vY2NsdWRlZChj
aGlsZDIsIEludFJlY3QoLTExLCA0MjAsIDcwLCA4MCkpKTsKICAgICAgICAgRVhQRUNUX1RSVUUo
b2NjbHVzaW9uLm9jY2x1ZGVkKGNoaWxkMiwgSW50UmVjdCgtMTAsIDQxOSwgNzAsIDgwKSkpOwog
ICAgICAgICBFWFBFQ1RfVFJVRShvY2NsdXNpb24ub2NjbHVkZWQoY2hpbGQyLCBJbnRSZWN0KC0x
MCwgNDIwLCA3MSwgODApKSk7CiAgICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi5vY2NsdWRl
ZChjaGlsZDIsIEludFJlY3QoLTEwLCA0MjAsIDcwLCA4MSkpKTsKLSAgICAgICAgb2NjbHVzaW9u
LnNldExheWVyU2Npc3NvclJlY3QoSW50UmVjdCgtMjAsIC0yMCwgMTAwMCwgMTAwMCkpOworICAg
ICAgICBvY2NsdXNpb24uc2V0TGF5ZXJDbGlwUmVjdChJbnRSZWN0KC0yMCwgLTIwLCAxMDAwLCAx
MDAwKSk7CiAKICAgICAgICAgLy8gVGhlcmUgaXMgbm90aGluZyBhYm92ZSBjaGlsZDIncyBzdXJm
YWNlIGluIHRoZSB6LW9yZGVyLgogICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgt
MTAsIDQyMCwgNzAsIDgwKSwgb2NjbHVzaW9uLnVub2NjbHVkZWRDb250cmlidXRpbmdTdXJmYWNl
Q29udGVudFJlY3QoY2hpbGQyLCBmYWxzZSwgSW50UmVjdCgtMTAsIDQyMCwgNzAsIDgwKSkpOwpA
QCAtMTA3MSw4ICsxMDcxLDggQEAgcHJvdGVjdGVkOgogICAgICAgICB0eXBlbmFtZSBUeXBlczo6
Q29udGVudExheWVyVHlwZSogbGF5ZXIyID0gdGhpcy0+Y3JlYXRlRHJhd2luZ0xheWVyKGNoaWxk
MiwgdGhpcy0+aWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoLTEwLCAtMTApLCBJbnRTaXplKDUx
MCwgNTEwKSwgdHJ1ZSk7CiAgICAgICAgIHRoaXMtPmNhbGNEcmF3RXRjKHBhcmVudCk7CiAKLSAg
ICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhTY2lzc29yPHR5cGVuYW1lIFR5cGVzOjpM
YXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKElu
dFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwotICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJTY2lz
c29yUmVjdChJbnRSZWN0KC0zMCwgLTMwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRlc3RDQ09j
Y2x1c2lvblRyYWNrZXJXaXRoQ2xpcDx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFt
ZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAs
IDEwMDApKTsKKyAgICAgICAgb2NjbHVzaW9uLnNldExheWVyQ2xpcFJlY3QoSW50UmVjdCgtMzAs
IC0zMCwgMTAwMCwgMTAwMCkpOwogCiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIobGF5ZXIyLCBv
Y2NsdXNpb24pOwogICAgICAgICB0aGlzLT5lbnRlckxheWVyKGNoaWxkMiwgb2NjbHVzaW9uKTsK
QEAgLTExODUsOCArMTE4NSw4IEBAIHByb3RlY3RlZDoKIAogICAgICAgICB0aGlzLT5jYWxjRHJh
d0V0YyhwYXJlbnQpOwogCi0gICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoU2Npc3Nv
cjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFj
ZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKLSAgICAgICAgb2Nj
bHVzaW9uLnNldExheWVyU2Npc3NvclJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7Cisg
ICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoQ2xpcDx0eXBlbmFtZSBUeXBlczo6TGF5
ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRS
ZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgb2NjbHVzaW9uLnNldExheWVyQ2xpcFJl
Y3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAKICAgICAgICAgLy8gT3BhY2l0eSBsYXll
ciB3b24ndCBjb250cmlidXRlIHRvIG9jY2x1c2lvbi4KICAgICAgICAgdGhpcy0+dmlzaXRMYXll
cihvcGFjaXR5TGF5ZXIsIG9jY2x1c2lvbik7CkBAIC0xMjQ5LDggKzEyNDksOCBAQCBwcm90ZWN0
ZWQ6CiAgICAgICAgIHRoaXMtPmNyZWF0ZVJlcGxpY2FMYXllcihzdXJmYWNlLCB0aGlzLT5pZGVu
dGl0eU1hdHJpeCwgRmxvYXRQb2ludCg1MCwgNTApLCBJbnRTaXplKCkpOwogICAgICAgICB0aGlz
LT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCi0gICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJX
aXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVu
ZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKLSAg
ICAgICAgb2NjbHVzaW9uLnNldExheWVyU2Npc3NvclJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAx
MDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoQ2xpcDx0eXBlbmFtZSBU
eXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1
c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgb2NjbHVzaW9uLnNldExh
eWVyQ2xpcFJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAKICAgICAgICAgdGhpcy0+
dmlzaXRMYXllcihzdXJmYWNlLCBvY2NsdXNpb24pOwogCkBAIC0xMjgwLDggKzEyODAsOCBAQCBw
cm90ZWN0ZWQ6CiAgICAgICAgIHRoaXMtPmNyZWF0ZVJlcGxpY2FMYXllcihzdXJmYWNlLCB0aGlz
LT5pZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCg1MCwgNTApLCBJbnRTaXplKCkpOwogICAgICAg
ICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCi0gICAgICAgIFRlc3RDQ09jY2x1c2lvblRy
YWNrZXJXaXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBl
czo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDAp
KTsKLSAgICAgICAgb2NjbHVzaW9uLnNldExheWVyU2Npc3NvclJlY3QoSW50UmVjdCgwLCAwLCAx
MDAwLCAxMDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoQ2xpcDx0eXBl
bmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+
IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgb2NjbHVzaW9u
LnNldExheWVyQ2xpcFJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAKICAgICAgICAg
dGhpcy0+dmlzaXRMYXllcihzdXJmYWNlLCBvY2NsdXNpb24pOwogCkBAIC0xMzEyLDggKzEzMTIs
OCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHRoaXMtPmNyZWF0ZU1hc2tMYXllcihyZXBsaWNhLCBJ
bnRTaXplKDEwLCAxMCkpOwogICAgICAgICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCi0g
ICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6
TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJ
bnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKLSAgICAgICAgb2NjbHVzaW9uLnNldExheWVyU2Np
c3NvclJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1
c2lvblRyYWNrZXJXaXRoQ2xpcDx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBU
eXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEw
MDApKTsKKyAgICAgICAgb2NjbHVzaW9uLnNldExheWVyQ2xpcFJlY3QoSW50UmVjdCgwLCAwLCAx
MDAwLCAxMDAwKSk7CiAKICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihzdXJmYWNlLCBvY2NsdXNp
b24pOwogCkBAIC0xMzM0LDcgKzEzMzQsNyBAQCBwcm90ZWN0ZWQ6CiBBTExfQ0NPQ0NMVVNJT05U
UkFDS0VSX1RFU1QoQ0NPY2NsdXNpb25UcmFja2VyVGVzdFJlcGxpY2FXaXRoTWFzayk7CiAKIHRl
bXBsYXRlPGNsYXNzIFR5cGVzLCBib29sIG9wYXF1ZUxheWVycz4KLWNsYXNzIENDT2NjbHVzaW9u
VHJhY2tlclRlc3RMYXllclNjaXNzb3JSZWN0T3V0c2lkZUNoaWxkIDogcHVibGljIENDT2NjbHVz
aW9uVHJhY2tlclRlc3Q8VHlwZXMsIG9wYXF1ZUxheWVycz4geworY2xhc3MgQ0NPY2NsdXNpb25U
cmFja2VyVGVzdExheWVyQ2xpcFJlY3RPdXRzaWRlQ2hpbGQgOiBwdWJsaWMgQ0NPY2NsdXNpb25U
cmFja2VyVGVzdDxUeXBlcywgb3BhcXVlTGF5ZXJzPiB7CiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBy
dW5NeVRlc3QoKQogICAgIHsKQEAgLTEzNDIsOCArMTM0Miw4IEBAIHByb3RlY3RlZDoKICAgICAg
ICAgdHlwZW5hbWUgVHlwZXM6OkNvbnRlbnRMYXllclR5cGUqIGxheWVyID0gdGhpcy0+Y3JlYXRl
RHJhd2luZ1N1cmZhY2UocGFyZW50LCB0aGlzLT5pZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgw
LCAwKSwgSW50U2l6ZSgyMDAsIDIwMCksIHRydWUpOwogICAgICAgICB0aGlzLT5jYWxjRHJhd0V0
YyhwYXJlbnQpOwogCi0gICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoU2Npc3Nvcjx0
eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5
cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKLSAgICAgICAgb2NjbHVz
aW9uLnNldExheWVyU2Npc3NvclJlY3QoSW50UmVjdCgyMDAsIDEwMCwgMTAwLCAxMDApKTsKKyAg
ICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhDbGlwPHR5cGVuYW1lIFR5cGVzOjpMYXll
clR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJl
Y3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJDbGlwUmVj
dChJbnRSZWN0KDIwMCwgMTAwLCAxMDAsIDEwMCkpOwogCiAgICAgICAgIHRoaXMtPmVudGVyTGF5
ZXIobGF5ZXIsIG9jY2x1c2lvbik7CiAKQEAgLTEzNTMsOSArMTM1Myw5IEBAIHByb3RlY3RlZDoK
ICAgICAgICAgRVhQRUNUX1RSVUUob2NjbHVzaW9uLm9jY2x1ZGVkKGxheWVyLCBJbnRSZWN0KDEw
MCwgMTAwLCAxMDAsIDEwMCkpKTsKICAgICAgICAgRVhQRUNUX0ZBTFNFKG9jY2x1c2lvbi5vY2Ns
dWRlZChsYXllciwgSW50UmVjdCgyMDAsIDEwMCwgMTAwLCAxMDApKSk7CiAKLSAgICAgICAgb2Nj
bHVzaW9uLnVzZURlZmF1bHRMYXllclNjaXNzb3JSZWN0KCk7CisgICAgICAgIG9jY2x1c2lvbi51
c2VEZWZhdWx0TGF5ZXJDbGlwUmVjdCgpOwogICAgICAgICBFWFBFQ1RfVFJVRShvY2NsdXNpb24u
b2NjbHVkZWQobGF5ZXIsIEludFJlY3QoMjAwLCAxMDAsIDEwMCwgMTAwKSkpOwotICAgICAgICBv
Y2NsdXNpb24uc2V0TGF5ZXJTY2lzc29yUmVjdChJbnRSZWN0KDIwMCwgMTAwLCAxMDAsIDEwMCkp
OworICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJDbGlwUmVjdChJbnRSZWN0KDIwMCwgMTAwLCAx
MDAsIDEwMCkpOwogCiAgICAgICAgIHRoaXMtPmxlYXZlTGF5ZXIobGF5ZXIsIG9jY2x1c2lvbik7
CiAgICAgICAgIHRoaXMtPnZpc2l0Q29udHJpYnV0aW5nU3VyZmFjZShsYXllciwgb2NjbHVzaW9u
KTsKQEAgLTEzNzUsMTAgKzEzNzUsMTAgQEAgcHJvdGVjdGVkOgogICAgIH0KIH07CiAKLUFMTF9D
Q09DQ0xVU0lPTlRSQUNLRVJfVEVTVChDQ09jY2x1c2lvblRyYWNrZXJUZXN0TGF5ZXJTY2lzc29y
UmVjdE91dHNpZGVDaGlsZCk7CitBTExfQ0NPQ0NMVVNJT05UUkFDS0VSX1RFU1QoQ0NPY2NsdXNp
b25UcmFja2VyVGVzdExheWVyQ2xpcFJlY3RPdXRzaWRlQ2hpbGQpOwogCiB0ZW1wbGF0ZTxjbGFz
cyBUeXBlcywgYm9vbCBvcGFxdWVMYXllcnM+Ci1jbGFzcyBDQ09jY2x1c2lvblRyYWNrZXJUZXN0
U2NyZWVuU2Npc3NvclJlY3RPdXRzaWRlQ2hpbGQgOiBwdWJsaWMgQ0NPY2NsdXNpb25UcmFja2Vy
VGVzdDxUeXBlcywgb3BhcXVlTGF5ZXJzPiB7CitjbGFzcyBDQ09jY2x1c2lvblRyYWNrZXJUZXN0
Vmlld3BvcnRSZWN0T3V0c2lkZUNoaWxkIDogcHVibGljIENDT2NjbHVzaW9uVHJhY2tlclRlc3Q8
VHlwZXMsIG9wYXF1ZUxheWVycz4gewogcHJvdGVjdGVkOgogICAgIHZvaWQgcnVuTXlUZXN0KCkK
ICAgICB7CkBAIC0xMzg2LDggKzEzODYsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHR5cGVuYW1l
IFR5cGVzOjpDb250ZW50TGF5ZXJUeXBlKiBsYXllciA9IHRoaXMtPmNyZWF0ZURyYXdpbmdTdXJm
YWNlKHBhcmVudCwgdGhpcy0+aWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMCwgMCksIEludFNp
emUoMjAwLCAyMDApLCB0cnVlKTsKICAgICAgICAgdGhpcy0+Y2FsY0RyYXdFdGMocGFyZW50KTsK
IAotICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aFNjaXNzb3I8dHlwZW5hbWUgVHlw
ZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNp
b24oSW50UmVjdCgyMDAsIDEwMCwgMTAwLCAxMDApKTsKLSAgICAgICAgb2NjbHVzaW9uLnNldExh
eWVyU2Npc3NvclJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRlc3RD
Q09jY2x1c2lvblRyYWNrZXJXaXRoQ2xpcDx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBl
bmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDIwMCwgMTAw
LCAxMDAsIDEwMCkpOworICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJDbGlwUmVjdChJbnRSZWN0
KDAsIDAsIDEwMDAsIDEwMDApKTsKIAogICAgICAgICB0aGlzLT5lbnRlckxheWVyKGxheWVyLCBv
Y2NsdXNpb24pOwogCkBAIC0xMzk3LDkgKzEzOTcsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIEVY
UEVDVF9UUlVFKG9jY2x1c2lvbi5vY2NsdWRlZChsYXllciwgSW50UmVjdCgxMDAsIDEwMCwgMTAw
LCAxMDApKSk7CiAgICAgICAgIEVYUEVDVF9GQUxTRShvY2NsdXNpb24ub2NjbHVkZWQobGF5ZXIs
IEludFJlY3QoMjAwLCAxMDAsIDEwMCwgMTAwKSkpOwogCi0gICAgICAgIG9jY2x1c2lvbi51c2VE
ZWZhdWx0TGF5ZXJTY2lzc29yUmVjdCgpOworICAgICAgICBvY2NsdXNpb24udXNlRGVmYXVsdExh
eWVyQ2xpcFJlY3QoKTsKICAgICAgICAgRVhQRUNUX1RSVUUob2NjbHVzaW9uLm9jY2x1ZGVkKGxh
eWVyLCBJbnRSZWN0KDIwMCwgMTAwLCAxMDAsIDEwMCkpKTsKLSAgICAgICAgb2NjbHVzaW9uLnNl
dExheWVyU2Npc3NvclJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIG9j
Y2x1c2lvbi5zZXRMYXllckNsaXBSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwogCiAg
ICAgICAgIHRoaXMtPmxlYXZlTGF5ZXIobGF5ZXIsIG9jY2x1c2lvbik7CiAgICAgICAgIHRoaXMt
PnZpc2l0Q29udHJpYnV0aW5nU3VyZmFjZShsYXllciwgb2NjbHVzaW9uKTsKQEAgLTE0MTksMTAg
KzE0MTksMTAgQEAgcHJvdGVjdGVkOgogICAgIH0KIH07CiAKLUFMTF9DQ09DQ0xVU0lPTlRSQUNL
RVJfVEVTVChDQ09jY2x1c2lvblRyYWNrZXJUZXN0U2NyZWVuU2Npc3NvclJlY3RPdXRzaWRlQ2hp
bGQpOworQUxMX0NDT0NDTFVTSU9OVFJBQ0tFUl9URVNUKENDT2NjbHVzaW9uVHJhY2tlclRlc3RW
aWV3cG9ydFJlY3RPdXRzaWRlQ2hpbGQpOwogCiB0ZW1wbGF0ZTxjbGFzcyBUeXBlcywgYm9vbCBv
cGFxdWVMYXllcnM+Ci1jbGFzcyBDQ09jY2x1c2lvblRyYWNrZXJUZXN0TGF5ZXJTY2lzc29yUmVj
dE92ZXJDaGlsZCA6IHB1YmxpYyBDQ09jY2x1c2lvblRyYWNrZXJUZXN0PFR5cGVzLCBvcGFxdWVM
YXllcnM+IHsKK2NsYXNzIENDT2NjbHVzaW9uVHJhY2tlclRlc3RMYXllckNsaXBSZWN0T3ZlckNo
aWxkIDogcHVibGljIENDT2NjbHVzaW9uVHJhY2tlclRlc3Q8VHlwZXMsIG9wYXF1ZUxheWVycz4g
ewogcHJvdGVjdGVkOgogICAgIHZvaWQgcnVuTXlUZXN0KCkKICAgICB7CkBAIC0xNDMwLDggKzE0
MzAsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHR5cGVuYW1lIFR5cGVzOjpDb250ZW50TGF5ZXJU
eXBlKiBsYXllciA9IHRoaXMtPmNyZWF0ZURyYXdpbmdTdXJmYWNlKHBhcmVudCwgdGhpcy0+aWRl
bnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMCwgMCksIEludFNpemUoMjAwLCAyMDApLCB0cnVlKTsK
ICAgICAgICAgdGhpcy0+Y2FsY0RyYXdFdGMocGFyZW50KTsKIAotICAgICAgICBUZXN0Q0NPY2Ns
dXNpb25UcmFja2VyV2l0aFNjaXNzb3I8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5h
bWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAw
LCAxMDAwKSk7Ci0gICAgICAgIG9jY2x1c2lvbi5zZXRMYXllclNjaXNzb3JSZWN0KEludFJlY3Qo
MTAwLCAxMDAsIDEwMCwgMTAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRo
Q2xpcDx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3Vy
ZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAg
b2NjbHVzaW9uLnNldExheWVyQ2xpcFJlY3QoSW50UmVjdCgxMDAsIDEwMCwgMTAwLCAxMDApKTsK
IAogICAgICAgICB0aGlzLT5lbnRlckxheWVyKGxheWVyLCBvY2NsdXNpb24pOwogCkBAIC0xNDU4
LDEwICsxNDU4LDEwIEBAIHByb3RlY3RlZDoKICAgICB9CiB9OwogCi1BTExfQ0NPQ0NMVVNJT05U
UkFDS0VSX1RFU1QoQ0NPY2NsdXNpb25UcmFja2VyVGVzdExheWVyU2Npc3NvclJlY3RPdmVyQ2hp
bGQpOworQUxMX0NDT0NDTFVTSU9OVFJBQ0tFUl9URVNUKENDT2NjbHVzaW9uVHJhY2tlclRlc3RM
YXllckNsaXBSZWN0T3ZlckNoaWxkKTsKIAogdGVtcGxhdGU8Y2xhc3MgVHlwZXMsIGJvb2wgb3Bh
cXVlTGF5ZXJzPgotY2xhc3MgQ0NPY2NsdXNpb25UcmFja2VyVGVzdFNjcmVlblNjaXNzb3JSZWN0
T3ZlckNoaWxkIDogcHVibGljIENDT2NjbHVzaW9uVHJhY2tlclRlc3Q8VHlwZXMsIG9wYXF1ZUxh
eWVycz4geworY2xhc3MgQ0NPY2NsdXNpb25UcmFja2VyVGVzdFZpZXdwb3J0UmVjdE92ZXJDaGls
ZCA6IHB1YmxpYyBDQ09jY2x1c2lvblRyYWNrZXJUZXN0PFR5cGVzLCBvcGFxdWVMYXllcnM+IHsK
IHByb3RlY3RlZDoKICAgICB2b2lkIHJ1bk15VGVzdCgpCiAgICAgewpAQCAtMTQ2OSw4ICsxNDY5
LDggQEAgcHJvdGVjdGVkOgogICAgICAgICB0eXBlbmFtZSBUeXBlczo6Q29udGVudExheWVyVHlw
ZSogbGF5ZXIgPSB0aGlzLT5jcmVhdGVEcmF3aW5nU3VyZmFjZShwYXJlbnQsIHRoaXMtPmlkZW50
aXR5TWF0cml4LCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDIwMCwgMjAwKSwgdHJ1ZSk7CiAg
ICAgICAgIHRoaXMtPmNhbGNEcmF3RXRjKHBhcmVudCk7CiAKLSAgICAgICAgVGVzdENDT2NjbHVz
aW9uVHJhY2tlcldpdGhTY2lzc29yPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1l
IFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMTAwLCAxMDAsIDEw
MCwgMTAwKSk7Ci0gICAgICAgIG9jY2x1c2lvbi5zZXRMYXllclNjaXNzb3JSZWN0KEludFJlY3Qo
MCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aENs
aXA8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZh
Y2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgxMDAsIDEwMCwgMTAwLCAxMDApKTsKKyAgICAgICAg
b2NjbHVzaW9uLnNldExheWVyQ2xpcFJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAK
ICAgICAgICAgdGhpcy0+ZW50ZXJMYXllcihsYXllciwgb2NjbHVzaW9uKTsKIApAQCAtMTQ5Nywx
MCArMTQ5NywxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgfQogfTsKIAotQUxMX0NDT0NDTFVTSU9OVFJB
Q0tFUl9URVNUKENDT2NjbHVzaW9uVHJhY2tlclRlc3RTY3JlZW5TY2lzc29yUmVjdE92ZXJDaGls
ZCk7CitBTExfQ0NPQ0NMVVNJT05UUkFDS0VSX1RFU1QoQ0NPY2NsdXNpb25UcmFja2VyVGVzdFZp
ZXdwb3J0UmVjdE92ZXJDaGlsZCk7CiAKIHRlbXBsYXRlPGNsYXNzIFR5cGVzLCBib29sIG9wYXF1
ZUxheWVycz4KLWNsYXNzIENDT2NjbHVzaW9uVHJhY2tlclRlc3RMYXllclNjaXNzb3JSZWN0UGFy
dGx5T3ZlckNoaWxkIDogcHVibGljIENDT2NjbHVzaW9uVHJhY2tlclRlc3Q8VHlwZXMsIG9wYXF1
ZUxheWVycz4geworY2xhc3MgQ0NPY2NsdXNpb25UcmFja2VyVGVzdExheWVyQ2xpcFJlY3RQYXJ0
bHlPdmVyQ2hpbGQgOiBwdWJsaWMgQ0NPY2NsdXNpb25UcmFja2VyVGVzdDxUeXBlcywgb3BhcXVl
TGF5ZXJzPiB7CiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBydW5NeVRlc3QoKQogICAgIHsKQEAgLTE1
MDgsOCArMTUwOCw4IEBAIHByb3RlY3RlZDoKICAgICAgICAgdHlwZW5hbWUgVHlwZXM6OkNvbnRl
bnRMYXllclR5cGUqIGxheWVyID0gdGhpcy0+Y3JlYXRlRHJhd2luZ1N1cmZhY2UocGFyZW50LCB0
aGlzLT5pZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAwKSwgSW50U2l6ZSgyMDAsIDIwMCks
IHRydWUpOwogICAgICAgICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCi0gICAgICAgIFRl
c3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBl
LCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAs
IDAsIDEwMDAsIDEwMDApKTsKLSAgICAgICAgb2NjbHVzaW9uLnNldExheWVyU2Npc3NvclJlY3Qo
SW50UmVjdCg1MCwgNTAsIDIwMCwgMjAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNr
ZXJXaXRoQ2xpcDx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVu
ZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAg
ICAgICAgb2NjbHVzaW9uLnNldExheWVyQ2xpcFJlY3QoSW50UmVjdCg1MCwgNTAsIDIwMCwgMjAw
KSk7CiAKICAgICAgICAgdGhpcy0+ZW50ZXJMYXllcihsYXllciwgb2NjbHVzaW9uKTsKIApAQCAt
MTU0MCwxMCArMTU0MCwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgfQogfTsKIAotQUxMX0NDT0NDTFVT
SU9OVFJBQ0tFUl9URVNUKENDT2NjbHVzaW9uVHJhY2tlclRlc3RMYXllclNjaXNzb3JSZWN0UGFy
dGx5T3ZlckNoaWxkKTsKK0FMTF9DQ09DQ0xVU0lPTlRSQUNLRVJfVEVTVChDQ09jY2x1c2lvblRy
YWNrZXJUZXN0TGF5ZXJDbGlwUmVjdFBhcnRseU92ZXJDaGlsZCk7CiAKIHRlbXBsYXRlPGNsYXNz
IFR5cGVzLCBib29sIG9wYXF1ZUxheWVycz4KLWNsYXNzIENDT2NjbHVzaW9uVHJhY2tlclRlc3RT
Y3JlZW5TY2lzc29yUmVjdFBhcnRseU92ZXJDaGlsZCA6IHB1YmxpYyBDQ09jY2x1c2lvblRyYWNr
ZXJUZXN0PFR5cGVzLCBvcGFxdWVMYXllcnM+IHsKK2NsYXNzIENDT2NjbHVzaW9uVHJhY2tlclRl
c3RWaWV3cG9ydFJlY3RQYXJ0bHlPdmVyQ2hpbGQgOiBwdWJsaWMgQ0NPY2NsdXNpb25UcmFja2Vy
VGVzdDxUeXBlcywgb3BhcXVlTGF5ZXJzPiB7CiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBydW5NeVRl
c3QoKQogICAgIHsKQEAgLTE1NTEsOCArMTU1MSw4IEBAIHByb3RlY3RlZDoKICAgICAgICAgdHlw
ZW5hbWUgVHlwZXM6OkNvbnRlbnRMYXllclR5cGUqIGxheWVyID0gdGhpcy0+Y3JlYXRlRHJhd2lu
Z1N1cmZhY2UocGFyZW50LCB0aGlzLT5pZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAwKSwg
SW50U2l6ZSgyMDAsIDIwMCksIHRydWUpOwogICAgICAgICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJl
bnQpOwogCi0gICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoU2Npc3Nvcjx0eXBlbmFt
ZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9j
Y2x1c2lvbihJbnRSZWN0KDUwLCA1MCwgMjAwLCAyMDApKTsKLSAgICAgICAgb2NjbHVzaW9uLnNl
dExheWVyU2Npc3NvclJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRl
c3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoQ2xpcDx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0
eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDUwLCA1
MCwgMjAwLCAyMDApKTsKKyAgICAgICAgb2NjbHVzaW9uLnNldExheWVyQ2xpcFJlY3QoSW50UmVj
dCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAKICAgICAgICAgdGhpcy0+ZW50ZXJMYXllcihsYXllciwg
b2NjbHVzaW9uKTsKIApAQCAtMTU4MywxMCArMTU4MywxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgfQog
fTsKIAotQUxMX0NDT0NDTFVTSU9OVFJBQ0tFUl9URVNUKENDT2NjbHVzaW9uVHJhY2tlclRlc3RT
Y3JlZW5TY2lzc29yUmVjdFBhcnRseU92ZXJDaGlsZCk7CitBTExfQ0NPQ0NMVVNJT05UUkFDS0VS
X1RFU1QoQ0NPY2NsdXNpb25UcmFja2VyVGVzdFZpZXdwb3J0UmVjdFBhcnRseU92ZXJDaGlsZCk7
CiAKIHRlbXBsYXRlPGNsYXNzIFR5cGVzLCBib29sIG9wYXF1ZUxheWVycz4KLWNsYXNzIENDT2Nj
bHVzaW9uVHJhY2tlclRlc3RMYXllclNjaXNzb3JSZWN0T3Zlck5vdGhpbmcgOiBwdWJsaWMgQ0NP
Y2NsdXNpb25UcmFja2VyVGVzdDxUeXBlcywgb3BhcXVlTGF5ZXJzPiB7CitjbGFzcyBDQ09jY2x1
c2lvblRyYWNrZXJUZXN0TGF5ZXJDbGlwUmVjdE92ZXJOb3RoaW5nIDogcHVibGljIENDT2NjbHVz
aW9uVHJhY2tlclRlc3Q8VHlwZXMsIG9wYXF1ZUxheWVycz4gewogcHJvdGVjdGVkOgogICAgIHZv
aWQgcnVuTXlUZXN0KCkKICAgICB7CkBAIC0xNTk0LDggKzE1OTQsOCBAQCBwcm90ZWN0ZWQ6CiAg
ICAgICAgIHR5cGVuYW1lIFR5cGVzOjpDb250ZW50TGF5ZXJUeXBlKiBsYXllciA9IHRoaXMtPmNy
ZWF0ZURyYXdpbmdTdXJmYWNlKHBhcmVudCwgdGhpcy0+aWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9p
bnQoMCwgMCksIEludFNpemUoMjAwLCAyMDApLCB0cnVlKTsKICAgICAgICAgdGhpcy0+Y2FsY0Ry
YXdFdGMocGFyZW50KTsKIAotICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aFNjaXNz
b3I8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZh
Y2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7Ci0gICAgICAgIG9j
Y2x1c2lvbi5zZXRMYXllclNjaXNzb3JSZWN0KEludFJlY3QoNTAwLCA1MDAsIDEwMCwgMTAwKSk7
CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoQ2xpcDx0eXBlbmFtZSBUeXBlczo6
TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJ
bnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgb2NjbHVzaW9uLnNldExheWVyQ2xp
cFJlY3QoSW50UmVjdCg1MDAsIDUwMCwgMTAwLCAxMDApKTsKIAogICAgICAgICB0aGlzLT5lbnRl
ckxheWVyKGxheWVyLCBvY2NsdXNpb24pOwogCkBAIC0xNjI2LDEwICsxNjI2LDEwIEBAIHByb3Rl
Y3RlZDoKICAgICB9CiB9OwogCi1BTExfQ0NPQ0NMVVNJT05UUkFDS0VSX1RFU1QoQ0NPY2NsdXNp
b25UcmFja2VyVGVzdExheWVyU2Npc3NvclJlY3RPdmVyTm90aGluZyk7CitBTExfQ0NPQ0NMVVNJ
T05UUkFDS0VSX1RFU1QoQ0NPY2NsdXNpb25UcmFja2VyVGVzdExheWVyQ2xpcFJlY3RPdmVyTm90
aGluZyk7CiAKIHRlbXBsYXRlPGNsYXNzIFR5cGVzLCBib29sIG9wYXF1ZUxheWVycz4KLWNsYXNz
IENDT2NjbHVzaW9uVHJhY2tlclRlc3RTY3JlZW5TY2lzc29yUmVjdE92ZXJOb3RoaW5nIDogcHVi
bGljIENDT2NjbHVzaW9uVHJhY2tlclRlc3Q8VHlwZXMsIG9wYXF1ZUxheWVycz4geworY2xhc3Mg
Q0NPY2NsdXNpb25UcmFja2VyVGVzdFZpZXdwb3J0UmVjdE92ZXJOb3RoaW5nIDogcHVibGljIEND
T2NjbHVzaW9uVHJhY2tlclRlc3Q8VHlwZXMsIG9wYXF1ZUxheWVycz4gewogcHJvdGVjdGVkOgog
ICAgIHZvaWQgcnVuTXlUZXN0KCkKICAgICB7CkBAIC0xNjM3LDggKzE2MzcsOCBAQCBwcm90ZWN0
ZWQ6CiAgICAgICAgIHR5cGVuYW1lIFR5cGVzOjpDb250ZW50TGF5ZXJUeXBlKiBsYXllciA9IHRo
aXMtPmNyZWF0ZURyYXdpbmdTdXJmYWNlKHBhcmVudCwgdGhpcy0+aWRlbnRpdHlNYXRyaXgsIEZs
b2F0UG9pbnQoMCwgMCksIEludFNpemUoMjAwLCAyMDApLCB0cnVlKTsKICAgICAgICAgdGhpcy0+
Y2FsY0RyYXdFdGMocGFyZW50KTsKIAotICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0
aFNjaXNzb3I8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRl
clN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCg1MDAsIDUwMCwgMTAwLCAxMDApKTsKLSAg
ICAgICAgb2NjbHVzaW9uLnNldExheWVyU2Npc3NvclJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAx
MDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoQ2xpcDx0eXBlbmFtZSBU
eXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1
c2lvbihJbnRSZWN0KDUwMCwgNTAwLCAxMDAsIDEwMCkpOworICAgICAgICBvY2NsdXNpb24uc2V0
TGF5ZXJDbGlwUmVjdChJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKIAogICAgICAgICB0aGlz
LT5lbnRlckxheWVyKGxheWVyLCBvY2NsdXNpb24pOwogCkBAIC0xNjY5LDEwICsxNjY5LDEwIEBA
IHByb3RlY3RlZDoKICAgICB9CiB9OwogCi1BTExfQ0NPQ0NMVVNJT05UUkFDS0VSX1RFU1QoQ0NP
Y2NsdXNpb25UcmFja2VyVGVzdFNjcmVlblNjaXNzb3JSZWN0T3Zlck5vdGhpbmcpOworQUxMX0ND
T0NDTFVTSU9OVFJBQ0tFUl9URVNUKENDT2NjbHVzaW9uVHJhY2tlclRlc3RWaWV3cG9ydFJlY3RP
dmVyTm90aGluZyk7CiAKIHRlbXBsYXRlPGNsYXNzIFR5cGVzLCBib29sIG9wYXF1ZUxheWVycz4K
LWNsYXNzIENDT2NjbHVzaW9uVHJhY2tlclRlc3RMYXllclNjaXNzb3JSZWN0Rm9yTGF5ZXJPZmZP
cmlnaW4gOiBwdWJsaWMgQ0NPY2NsdXNpb25UcmFja2VyVGVzdDxUeXBlcywgb3BhcXVlTGF5ZXJz
PiB7CitjbGFzcyBDQ09jY2x1c2lvblRyYWNrZXJUZXN0TGF5ZXJDbGlwUmVjdEZvckxheWVyT2Zm
T3JpZ2luIDogcHVibGljIENDT2NjbHVzaW9uVHJhY2tlclRlc3Q8VHlwZXMsIG9wYXF1ZUxheWVy
cz4gewogcHJvdGVjdGVkOgogICAgIHZvaWQgcnVuTXlUZXN0KCkKICAgICB7CkBAIC0xNjgwLDEy
ICsxNjgwLDEyIEBAIHByb3RlY3RlZDoKICAgICAgICAgdHlwZW5hbWUgVHlwZXM6OkNvbnRlbnRM
YXllclR5cGUqIGxheWVyID0gdGhpcy0+Y3JlYXRlRHJhd2luZ1N1cmZhY2UocGFyZW50LCB0aGlz
LT5pZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAwKSwgSW50U2l6ZSgyMDAsIDIwMCksIHRy
dWUpOwogICAgICAgICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCi0gICAgICAgIFRlc3RD
Q09jY2x1c2lvblRyYWNrZXJXaXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0
eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAs
IDEwMDAsIDEwMDApKTsKKyAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhDbGlwPHR5
cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlw
ZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwogICAgICAgICB0aGlzLT5l
bnRlckxheWVyKGxheWVyLCBvY2NsdXNpb24pOwogCi0gICAgICAgIC8vIFRoaXMgbGF5ZXIgaXMg
dHJhbnNsYXRlZCB3aGVuIGRyYXduIGludG8gaXRzIHRhcmdldC4gU28gaWYgdGhlIHNjaXNzb3Ig
cmVjdCBnaXZlbiBmcm9tIHRoZSB0YXJnZXQgc3VyZmFjZQorICAgICAgICAvLyBUaGlzIGxheWVy
IGlzIHRyYW5zbGF0ZWQgd2hlbiBkcmF3biBpbnRvIGl0cyB0YXJnZXQuIFNvIGlmIHRoZSBjbGlw
IHJlY3QgZ2l2ZW4gZnJvbSB0aGUgdGFyZ2V0IHN1cmZhY2UKICAgICAgICAgLy8gaXMgbm90IGlu
IHRoYXQgdGFyZ2V0IHNwYWNlLCB0aGVuIGFmdGVyIHRyYW5zbGF0aW5nIHRoZXNlIHF1ZXJ5IHJl
Y3RzIGludG8gdGhlIHRhcmdldCwgdGhleSB3aWxsIGZhbGwgb3V0c2lkZQotICAgICAgICAvLyB0
aGUgc2Npc3NvciBhbmQgYmUgY29uc2lkZXJlZCBvY2NsdWRlZC4KKyAgICAgICAgLy8gdGhlIGNs
aXAgYW5kIGJlIGNvbnNpZGVyZWQgb2NjbHVkZWQuCiAgICAgICAgIEVYUEVDVF9GQUxTRShvY2Ns
dXNpb24ub2NjbHVkZWQobGF5ZXIsIEludFJlY3QoMCwgMCwgMTAwLCAxMDApKSk7CiAgICAgICAg
IEVYUEVDVF9GQUxTRShvY2NsdXNpb24ub2NjbHVkZWQobGF5ZXIsIEludFJlY3QoMCwgMTAwLCAx
MDAsIDEwMCkpKTsKICAgICAgICAgRVhQRUNUX0ZBTFNFKG9jY2x1c2lvbi5vY2NsdWRlZChsYXll
ciwgSW50UmVjdCgxMDAsIDAsIDEwMCwgMTAwKSkpOwpAQCAtMTY5Myw3ICsxNjkzLDcgQEAgcHJv
dGVjdGVkOgogICAgIH0KIH07CiAKLUFMTF9DQ09DQ0xVU0lPTlRSQUNLRVJfVEVTVChDQ09jY2x1
c2lvblRyYWNrZXJUZXN0TGF5ZXJTY2lzc29yUmVjdEZvckxheWVyT2ZmT3JpZ2luKTsKK0FMTF9D
Q09DQ0xVU0lPTlRSQUNLRVJfVEVTVChDQ09jY2x1c2lvblRyYWNrZXJUZXN0TGF5ZXJDbGlwUmVj
dEZvckxheWVyT2ZmT3JpZ2luKTsKIAogdGVtcGxhdGU8Y2xhc3MgVHlwZXMsIGJvb2wgb3BhcXVl
TGF5ZXJzPgogY2xhc3MgQ0NPY2NsdXNpb25UcmFja2VyVGVzdE9wYXF1ZUNvbnRlbnRzUmVnaW9u
RW1wdHkgOiBwdWJsaWMgQ0NPY2NsdXNpb25UcmFja2VyVGVzdDxUeXBlcywgb3BhcXVlTGF5ZXJz
PiB7CkBAIC0xNzA0LDcgKzE3MDQsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHR5cGVuYW1lIFR5
cGVzOjpDb250ZW50TGF5ZXJUeXBlKiBsYXllciA9IHRoaXMtPmNyZWF0ZURyYXdpbmdTdXJmYWNl
KHBhcmVudCwgdGhpcy0+aWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMCwgMCksIEludFNpemUo
MjAwLCAyMDApLCBmYWxzZSk7CiAgICAgICAgIHRoaXMtPmNhbGNEcmF3RXRjKHBhcmVudCk7CiAK
LSAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhTY2lzc29yPHR5cGVuYW1lIFR5cGVz
OjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9u
KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFj
a2VyV2l0aENsaXA8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJl
bmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAg
ICAgICAgIHRoaXMtPmVudGVyTGF5ZXIobGF5ZXIsIG9jY2x1c2lvbik7CiAKICAgICAgICAgRVhQ
RUNUX0ZBTFNFKG9jY2x1c2lvbi5vY2NsdWRlZChsYXllciwgSW50UmVjdCgwLCAwLCAxMDAsIDEw
MCkpKTsKQEAgLTE3MTUsMTAgKzE3MTUsMTAgQEAgcHJvdGVjdGVkOgogICAgICAgICAvLyBPY2Ns
dWRlZCBzaW5jZSBpdHMgb3V0c2lkZSB0aGUgc3VyZmFjZSBib3VuZHMuCiAgICAgICAgIEVYUEVD
VF9UUlVFKG9jY2x1c2lvbi5vY2NsdWRlZChsYXllciwgSW50UmVjdCgyMDAsIDEwMCwgMTAwLCAx
MDApKSk7CiAKLSAgICAgICAgLy8gVGVzdCB3aXRob3V0IGFueSBzY2lzc29ycy4KLSAgICAgICAg
b2NjbHVzaW9uLnNldExheWVyU2Npc3NvclJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7
CisgICAgICAgIC8vIFRlc3Qgd2l0aG91dCBhbnkgY2xpcCByZWN0LgorICAgICAgICBvY2NsdXNp
b24uc2V0TGF5ZXJDbGlwUmVjdChJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKICAgICAgICAg
RVhQRUNUX0ZBTFNFKG9jY2x1c2lvbi5vY2NsdWRlZChsYXllciwgSW50UmVjdCgyMDAsIDEwMCwg
MTAwLCAxMDApKSk7Ci0gICAgICAgIG9jY2x1c2lvbi51c2VEZWZhdWx0TGF5ZXJTY2lzc29yUmVj
dCgpOworICAgICAgICBvY2NsdXNpb24udXNlRGVmYXVsdExheWVyQ2xpcFJlY3QoKTsKIAogICAg
ICAgICB0aGlzLT5sZWF2ZUxheWVyKGxheWVyLCBvY2NsdXNpb24pOwogICAgICAgICB0aGlzLT52
aXNpdENvbnRyaWJ1dGluZ1N1cmZhY2UobGF5ZXIsIG9jY2x1c2lvbik7CkBAIC0xNzQxLDcgKzE3
NDEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHRoaXMtPmNhbGNEcmF3RXRjKHBhcmVudCk7CiAK
ICAgICAgICAgewotICAgICAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhTY2lzc29y
PHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNl
VHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAgICAgICAg
VGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhDbGlwPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUs
IHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwg
MCwgMTAwMCwgMTAwMCkpOwogICAgICAgICAgICAgbGF5ZXItPnNldE9wYXF1ZUNvbnRlbnRzUmVj
dChJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSk7CiAKICAgICAgICAgICAgIHRoaXMtPnJlc2V0TGF5
ZXJJdGVyYXRvcigpOwpAQCAtMTc1Nyw3ICsxNzU3LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICB9
CiAKICAgICAgICAgewotICAgICAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhTY2lz
c29yPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJm
YWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAgICAg
ICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhDbGlwPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5
cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3Qo
MCwgMCwgMTAwMCwgMTAwMCkpOwogICAgICAgICAgICAgbGF5ZXItPnNldE9wYXF1ZUNvbnRlbnRz
UmVjdChJbnRSZWN0KDIwLCAyMCwgMTgwLCAxODApKTsKIAogICAgICAgICAgICAgdGhpcy0+cmVz
ZXRMYXllckl0ZXJhdG9yKCk7CkBAIC0xNzczLDcgKzE3NzMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
ICAgIH0KIAogICAgICAgICB7Ci0gICAgICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0
aFNjaXNzb3I8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRl
clN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAg
ICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aENsaXA8dHlwZW5hbWUgVHlwZXM6Okxh
eWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50
UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAgICAgICAgICAgICBsYXllci0+c2V0T3BhcXVlQ29u
dGVudHNSZWN0KEludFJlY3QoMTUwLCAxNTAsIDEwMCwgMTAwKSk7CiAKICAgICAgICAgICAgIHRo
aXMtPnJlc2V0TGF5ZXJJdGVyYXRvcigpOwpAQCAtMTgwNSw3ICsxODA1LDcgQEAgcHJvdGVjdGVk
OgogICAgICAgICB0eXBlbmFtZSBUeXBlczo6Q29udGVudExheWVyVHlwZSogbGF5ZXIgPSB0aGlz
LT5jcmVhdGVEcmF3aW5nTGF5ZXIoY29udGFpbmVyLCB0cmFuc2Zvcm0sIEZsb2F0UG9pbnQoMTAw
LCAxMDApLCBJbnRTaXplKDIwMCwgMjAwKSwgdHJ1ZSk7CiAgICAgICAgIHRoaXMtPmNhbGNEcmF3
RXRjKHBhcmVudCk7CiAKLSAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhTY2lzc29y
PHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNl
VHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBUZXN0
Q0NPY2NsdXNpb25UcmFja2VyV2l0aENsaXA8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlw
ZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAx
MDAwLCAxMDAwKSk7CiAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIobGF5ZXIsIG9jY2x1c2lvbik7
CiAKICAgICAgICAgLy8gVGhlIGxheWVyIGlzIHJvdGF0ZWQgaW4gM2QgYnV0IHdpdGhvdXQgcHJl
c2VydmluZyAzZCwgc28gaXQgb25seSBnZXRzIHJlc2l6ZWQuCkBAIC0xODM5LDcgKzE4MzksNyBA
QCBwcm90ZWN0ZWQ6CiAKICAgICAgICAgdGhpcy0+Y2FsY0RyYXdFdGMocGFyZW50KTsKIAotICAg
ICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aFNjaXNzb3I8dHlwZW5hbWUgVHlwZXM6Okxh
eWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50
UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJX
aXRoQ2xpcDx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVy
U3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKICAgICAg
ICAgdGhpcy0+dmlzaXRMYXllcihjaGlsZDIsIG9jY2x1c2lvbik7CiAgICAgICAgIEVYUEVDVF9U
UlVFKG9jY2x1c2lvbi5vY2NsdXNpb25JblNjcmVlblNwYWNlKCkuaXNFbXB0eSgpKTsKICAgICAg
ICAgRVhQRUNUX1RSVUUob2NjbHVzaW9uLm9jY2x1c2lvbkluVGFyZ2V0U3VyZmFjZSgpLmlzRW1w
dHkoKSk7CkBAIC0xODcxLDcgKzE4NzEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIGxheWVyLT5z
ZXRQcmVzZXJ2ZXMzRCh0cnVlKTsKICAgICAgICAgdGhpcy0+Y2FsY0RyYXdFdGMocGFyZW50KTsK
IAotICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aFNjaXNzb3I8dHlwZW5hbWUgVHlw
ZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNp
b24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRy
YWNrZXJXaXRoQ2xpcDx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6
UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsK
ICAgICAgICAgdGhpcy0+ZW50ZXJMYXllcihsYXllciwgb2NjbHVzaW9uKTsKIAogICAgICAgICBF
WFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAyMDAsIDIwMCksIG9jY2x1c2lvbi51bm9j
Y2x1ZGVkQ29udGVudFJlY3QobGF5ZXIsIEludFJlY3QoMCwgMCwgMjAwLCAyMDApKSk7CkBAIC0x
OTAyLDcgKzE5MDIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIGxheWVyLT5zZXRQcmVzZXJ2ZXMz
RCh0cnVlKTsKICAgICAgICAgdGhpcy0+Y2FsY0RyYXdFdGMocGFyZW50KTsKIAotICAgICAgICBU
ZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aFNjaXNzb3I8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlw
ZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgw
LCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoQ2xp
cDx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFj
ZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKICAgICAgICAgdGhp
cy0+ZW50ZXJMYXllcihsYXllciwgb2NjbHVzaW9uKTsKIAogICAgICAgICAvLyBUaGUgYm90dG9t
IDExIHBpeGVsIHJvd3Mgb2YgdGhpcyBsYXllciByZW1haW4gdmlzaWJsZSBpbnNpZGUgdGhlIGNv
bnRhaW5lciwgYWZ0ZXIgdHJhbnNsYXRpb24gdG8gdGhlIHRhcmdldCBzdXJmYWNlLiBXaGVuIHRy
YW5zbGF0ZWQgYmFjaywKQEAgLTE5MzEsNyArMTkzMSw3IEBAIHByb3RlY3RlZDoKICAgICAgICAg
bGF5ZXItPnNldFByZXNlcnZlczNEKHRydWUpOwogICAgICAgICB0aGlzLT5jYWxjRHJhd0V0Yyhw
YXJlbnQpOwogCi0gICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoU2Npc3Nvcjx0eXBl
bmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+
IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgVGVzdENDT2Nj
bHVzaW9uVHJhY2tlcldpdGhDbGlwPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1l
IFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwg
MTAwMCkpOwogCiAgICAgICAgIC8vIFRoZSB8bGF5ZXJ8IGlzIGVudGlyZWx5IGJlaGluZCB0aGUg
Y2FtZXJhIGFuZCBzaG91bGQgbm90IG9jY2x1ZGUuCiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIo
bGF5ZXIsIG9jY2x1c2lvbik7CkBAIC0xOTYxLDcgKzE5NjEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
ICAgIGxheWVyLT5zZXRQcmVzZXJ2ZXMzRCh0cnVlKTsKICAgICAgICAgdGhpcy0+Y2FsY0RyYXdF
dGMocGFyZW50KTsKIAotICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aFNjaXNzb3I8
dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VU
eXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRlc3RD
Q09jY2x1c2lvblRyYWNrZXJXaXRoQ2xpcDx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBl
bmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEw
MDAsIDEwMDApKTsKIAogICAgICAgICAvLyBUaGlzIGlzIHZlcnkgY2xvc2UgdG8gdGhlIGNhbWVy
YSwgc28gcGl4ZWxzIGluIGl0cyB2aXNpYmxlQ29udGVudFJlY3Qgd2lsbCBhY3R1YWxseSBnbyBv
dXRzaWRlIG9mIHRoZSBsYXllcidzIGNsaXBSZWN0LgogICAgICAgICAvLyBFbnN1cmUgdGhhdCB0
aG9zZSBwaXhlbHMgZG9uJ3Qgb2NjbHVkZSB0aGluZ3Mgb3V0c2lkZSB0aGUgY2xpcFJlY3QuCkBA
IC0xOTk4LDcgKzE5OTgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIEVYUEVDVF9GQUxTRShzdXJm
YWNlLT5kcmF3T3BhY2l0eUlzQW5pbWF0aW5nKCkpOwogICAgICAgICBFWFBFQ1RfVFJVRShzdXJm
YWNlLT5yZW5kZXJTdXJmYWNlKCktPmRyYXdPcGFjaXR5SXNBbmltYXRpbmcoKSk7CiAKLSAgICAg
ICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhTY2lzc29yPHR5cGVuYW1lIFR5cGVzOjpMYXll
clR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJl
Y3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0
aENsaXA8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1
cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAKICAgICAg
ICAgdGhpcy0+dmlzaXRMYXllcih0b3Btb3N0LCBvY2NsdXNpb24pOwogICAgICAgICB0aGlzLT5l
bnRlckxheWVyKHBhcmVudDIsIG9jY2x1c2lvbik7CkBAIC0yMDUwLDcgKzIwNTAsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgICAgIEVYUEVDVF9GQUxTRShzdXJmYWNlLT5kcmF3T3BhY2l0eUlzQW5pbWF0
aW5nKCkpOwogICAgICAgICBFWFBFQ1RfVFJVRShzdXJmYWNlLT5yZW5kZXJTdXJmYWNlKCktPmRy
YXdPcGFjaXR5SXNBbmltYXRpbmcoKSk7CiAKLSAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tl
cldpdGhTY2lzc29yPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpS
ZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwor
ICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aENsaXA8dHlwZW5hbWUgVHlwZXM6Okxh
eWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50
UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAKICAgICAgICAgdGhpcy0+dmlzaXRMYXllcih0b3Bt
b3N0LCBvY2NsdXNpb24pOwogICAgICAgICB0aGlzLT5lbnRlckxheWVyKHBhcmVudDIsIG9jY2x1
c2lvbik7CkBAIC0yMTA4LDcgKzIxMDgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIEVYUEVDVF9U
UlVFKHN1cmZhY2VDaGlsZC0+ZHJhd1RyYW5zZm9ybUlzQW5pbWF0aW5nKCkpOwogICAgICAgICBF
WFBFQ1RfVFJVRShzdXJmYWNlQ2hpbGQtPnNjcmVlblNwYWNlVHJhbnNmb3JtSXNBbmltYXRpbmco
KSk7CiAKLSAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhTY2lzc29yPHR5cGVuYW1l
IFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2Nj
bHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBUZXN0Q0NPY2NsdXNp
b25UcmFja2VyV2l0aENsaXA8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlw
ZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAw
KSk7CiAKICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihzdXJmYWNlMiwgb2NjbHVzaW9uKTsKICAg
ICAgICAgdGhpcy0+ZW50ZXJDb250cmlidXRpbmdTdXJmYWNlKHN1cmZhY2UyLCBvY2NsdXNpb24p
OwpAQCAtMjE5MCw3ICsyMTkwLDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBzdXJmYWNlMi0+c2V0
T3BhcXVlQ29udGVudHNSZWN0KEludFJlY3QoMCwgMCwgMjAwLCAyMDApKTsKICAgICAgICAgdGhp
cy0+Y2FsY0RyYXdFdGMocGFyZW50KTsKIAotICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2Vy
V2l0aFNjaXNzb3I8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJl
bmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7Cisg
ICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoQ2xpcDx0eXBlbmFtZSBUeXBlczo6TGF5
ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRS
ZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKIAogICAgICAgICB0aGlzLT52aXNpdExheWVyKHN1cmZh
Y2UyLCBvY2NsdXNpb24pOwogICAgICAgICB0aGlzLT52aXNpdENvbnRyaWJ1dGluZ1N1cmZhY2Uo
c3VyZmFjZTIsIG9jY2x1c2lvbik7CkBAIC0yMjI2LDcgKzIyMjYsNyBAQCBwcm90ZWN0ZWQ6CiAg
ICAgICAgIHN1cmZhY2UtPnNldE9wYXF1ZUNvbnRlbnRzUmVjdChJbnRSZWN0KDAsIDAsIDQwMCwg
MjAwKSk7CiAgICAgICAgIHRoaXMtPmNhbGNEcmF3RXRjKHBhcmVudCk7CiAKLSAgICAgICAgVGVz
dENDT2NjbHVzaW9uVHJhY2tlcldpdGhTY2lzc29yPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUs
IHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwg
MCwgMTAwMCwgMTAwMCkpOworICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aENsaXA8
dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VU
eXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAKICAgICAgICAgdGhp
cy0+dmlzaXRMYXllcihzdXJmYWNlLCBvY2NsdXNpb24pOwogICAgICAgICB0aGlzLT52aXNpdENv
bnRyaWJ1dGluZ1N1cmZhY2Uoc3VyZmFjZSwgb2NjbHVzaW9uKTsKQEAgLTIyNTEsOCArMjI1MSw4
IEBAIHByb3RlY3RlZDoKICAgICAgICAgdHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSogdG9wbW9z
dCA9IHRoaXMtPmNyZWF0ZURyYXdpbmdMYXllcihwYXJlbnQsIHRoaXMtPmlkZW50aXR5TWF0cml4
LCBGbG9hdFBvaW50KDAsIDEwMCksIEludFNpemUoMTAwLCAxMDApLCB0cnVlKTsKICAgICAgICAg
dGhpcy0+Y2FsY0RyYXdFdGMocGFyZW50KTsKIAotICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFj
a2VyV2l0aFNjaXNzb3I8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6
OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7
Ci0gICAgICAgIG9jY2x1c2lvbi5zZXRMYXllclNjaXNzb3JSZWN0KEludFJlY3QoMCwgMCwgMTAw
MCwgMTAwMCkpOworICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aENsaXA8dHlwZW5h
bWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBv
Y2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIG9jY2x1c2lvbi5z
ZXRMYXllckNsaXBSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwogCiAgICAgICAgIC8v
IHx0b3Btb3N0fCBvY2NsdWRlcyB0aGUgcmVwbGljYSwgYnV0IG5vdCB0aGUgc3VyZmFjZSBpdHNl
bGYuCiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIodG9wbW9zdCwgb2NjbHVzaW9uKTsKQEAgLTIy
ODksOCArMjI4OSw4IEBAIHByb3RlY3RlZDoKICAgICAgICAgdHlwZW5hbWUgVHlwZXM6OkxheWVy
VHlwZSogdG9wbW9zdCA9IHRoaXMtPmNyZWF0ZURyYXdpbmdMYXllcihwYXJlbnQsIHRoaXMtPmlk
ZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDEwMCwgMTEwKSwgdHJ1ZSk7
CiAgICAgICAgIHRoaXMtPmNhbGNEcmF3RXRjKHBhcmVudCk7CiAKLSAgICAgICAgVGVzdENDT2Nj
bHVzaW9uVHJhY2tlcldpdGhTY2lzc29yPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVu
YW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAw
MCwgMTAwMCkpOwotICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJTY2lzc29yUmVjdChJbnRSZWN0
KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhD
bGlwPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJm
YWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBv
Y2NsdXNpb24uc2V0TGF5ZXJDbGlwUmVjdChJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKIAog
ICAgICAgICAvLyB8dG9wbW9zdHwgb2NjbHVkZXMgdGhlIHN1cmZhY2UsIGJ1dCBub3QgdGhlIGVu
dGlyZSBzdXJmYWNlJ3MgcmVwbGljYS4KICAgICAgICAgdGhpcy0+dmlzaXRMYXllcih0b3Btb3N0
LCBvY2NsdXNpb24pOwpAQCAtMjMyOSw4ICsyMzI5LDggQEAgcHJvdGVjdGVkOgogICAgICAgICB0
eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlKiBvdmVyUmVwbGljYSA9IHRoaXMtPmNyZWF0ZURyYXdp
bmdMYXllcihwYXJlbnQsIHRoaXMtPmlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAsIDEwMCks
IEludFNpemUoNTAsIDEwMCksIHRydWUpOwogICAgICAgICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJl
bnQpOwogCi0gICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoU2Npc3Nvcjx0eXBlbmFt
ZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9j
Y2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKLSAgICAgICAgb2NjbHVzaW9uLnNl
dExheWVyU2Npc3NvclJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRl
c3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoQ2xpcDx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0
eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAs
IDEwMDAsIDEwMDApKTsKKyAgICAgICAgb2NjbHVzaW9uLnNldExheWVyQ2xpcFJlY3QoSW50UmVj
dCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAKICAgICAgICAgLy8gVGhlc2Ugb2NjbHVkZSB0aGUgc3Vy
ZmFjZSBhbmQgcmVwbGljYSBkaWZmZXJlbnRseSwgc28gd2UgY2FuIHRlc3QgZWFjaCBvbmUuCiAg
ICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIob3ZlclJlcGxpY2EsIG9jY2x1c2lvbik7CkBAIC0yMzcx
LDcgKzIzNzEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHR5cGVuYW1lIFR5cGVzOjpMYXllclR5
cGUqIHRvcG1vc3QgPSB0aGlzLT5jcmVhdGVEcmF3aW5nTGF5ZXIocGFyZW50LCB0aGlzLT5pZGVu
dGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAwKSwgSW50U2l6ZSgxMDAsIDUwKSwgdHJ1ZSk7CiAg
ICAgICAgIHRoaXMtPmNhbGNEcmF3RXRjKHBhcmVudCk7CiAKLSAgICAgICAgVGVzdENDT2NjbHVz
aW9uVHJhY2tlcldpdGhTY2lzc29yPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1l
IFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoLTEwMCwgLTEwMCwg
MTAwMCwgMTAwMCkpOworICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aENsaXA8dHlw
ZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBl
PiBvY2NsdXNpb24oSW50UmVjdCgtMTAwLCAtMTAwLCAxMDAwLCAxMDAwKSk7CiAKICAgICAgICAg
Ly8gfHRvcG1vc3R8IG9jY2x1ZGVzIGV2ZXJ5dGhpbmcgcGFydGlhbGx5IHNvIHdlIGtub3cgb2Nj
bHVzaW9uIGlzIGhhcHBlbmluZyBhdCBhbGwuCiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIodG9w
bW9zdCwgb2NjbHVzaW9uKTsKQEAgLTI0MTcsMTkgKzI0MTcsMTkgQEAgcHJvdGVjdGVkOgogQUxM
X0NDT0NDTFVTSU9OVFJBQ0tFUl9URVNUKENDT2NjbHVzaW9uVHJhY2tlclRlc3RTdXJmYWNlQ2hp
bGRPZlN1cmZhY2UpOwogCiB0ZW1wbGF0ZTxjbGFzcyBUeXBlcywgYm9vbCBvcGFxdWVMYXllcnM+
Ci1jbGFzcyBDQ09jY2x1c2lvblRyYWNrZXJUZXN0VG9wbW9zdFN1cmZhY2VJc0NsaXBwZWRUb1Nj
aXNzb3IgOiBwdWJsaWMgQ0NPY2NsdXNpb25UcmFja2VyVGVzdDxUeXBlcywgb3BhcXVlTGF5ZXJz
PiB7CitjbGFzcyBDQ09jY2x1c2lvblRyYWNrZXJUZXN0VG9wbW9zdFN1cmZhY2VJc0NsaXBwZWRU
b1ZpZXdwb3J0IDogcHVibGljIENDT2NjbHVzaW9uVHJhY2tlclRlc3Q8VHlwZXMsIG9wYXF1ZUxh
eWVycz4gewogcHJvdGVjdGVkOgogICAgIHZvaWQgcnVuTXlUZXN0KCkKICAgICB7Ci0gICAgICAg
IC8vIFRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IHRoZSB0b3AtbW9zdCBzdXJmYWNlIGlzIGNvbnNp
ZGVyZWQgb2NjbHVkZWQgb3V0c2lkZSBvZiBpdHMgc2Npc3NvciByZWN0IGFuZCBvdXRzaWRlIHRo
ZSBzY3JlZW4ncyBzY2lzc29yIHJlY3QuCisgICAgICAgIC8vIFRoaXMgdGVzdCB2ZXJpZmllcyB0
aGF0IHRoZSB0b3AtbW9zdCBzdXJmYWNlIGlzIGNvbnNpZGVyZWQgb2NjbHVkZWQgb3V0c2lkZSBv
ZiBpdHMgdGFyZ2V0J3MgY2xpcFJlY3QgYW5kIG91dHNpZGUgdGhlIHZpZXdwb3J0IHJlY3QuCiAK
ICAgICAgICAgdHlwZW5hbWUgVHlwZXM6OkNvbnRlbnRMYXllclR5cGUqIHBhcmVudCA9IHRoaXMt
PmNyZWF0ZVJvb3QodGhpcy0+aWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMCwgMCksIEludFNp
emUoMTAwLCAyMDApKTsKICAgICAgICAgdHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSogc3VyZmFj
ZSA9IHRoaXMtPmNyZWF0ZURyYXdpbmdTdXJmYWNlKHBhcmVudCwgdGhpcy0+aWRlbnRpdHlNYXRy
aXgsIEZsb2F0UG9pbnQoMCwgMCksIEludFNpemUoMTAwLCAzMDApLCB0cnVlKTsKICAgICAgICAg
dGhpcy0+Y2FsY0RyYXdFdGMocGFyZW50KTsKIAogICAgICAgICB7Ci0gICAgICAgICAgICAvLyBN
YWtlIGEgc2NyZWVuIHNjaXNzb3IgcmVjdCB0aGF0IGlzIGxhcmdlciB0aGFuIHRoZSByb290IGxh
eWVyJ3MuCi0gICAgICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aFNjaXNzb3I8dHlw
ZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBl
PiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgICAgICAvLyBN
YWtlIGEgdmlld3BvcnQgcmVjdCB0aGF0IGlzIGxhcmdlciB0aGFuIHRoZSByb290IGxheWVyLgor
ICAgICAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhDbGlwPHR5cGVuYW1lIFR5cGVz
OjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9u
KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwogCiAgICAgICAgICAgICB0aGlzLT52aXNpdExh
eWVyKHN1cmZhY2UsIG9jY2x1c2lvbik7CiAKQEAgLTI0NDAsMjAgKzI0NDAsMjAgQEAgcHJvdGVj
dGVkOgogICAgICAgICB9CiAgICAgICAgIHRoaXMtPnJlc2V0TGF5ZXJJdGVyYXRvcigpOwogICAg
ICAgICB7Ci0gICAgICAgICAgICAvLyBNYWtlIGEgc2NyZWVuIHNjaXNzb3IgcmVjdCB0aGF0IGlz
IHNtYWxsZXIgdGhhbiB0aGUgcm9vdCBsYXllcidzLgotICAgICAgICAgICAgVGVzdENDT2NjbHVz
aW9uVHJhY2tlcldpdGhTY2lzc29yPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1l
IFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwLCAx
MDApKTsKKyAgICAgICAgICAgIC8vIE1ha2UgYSB2aWV3cG9ydCByZWN0IHRoYXQgaXMgc21hbGxl
ciB0aGFuIHRoZSByb290IGxheWVyLgorICAgICAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tl
cldpdGhDbGlwPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5k
ZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwLCAxMDApKTsKIAogICAg
ICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihzdXJmYWNlLCBvY2NsdXNpb24pOwogCiAgICAgICAg
ICAgICAvLyBUaGUgcm9vdCBsYXllciBhbHdheXMgaGFzIGEgY2xpcFJlY3QuIFNvIHRoZSBwYXJl
bnQgb2YgfHN1cmZhY2V8IGhhcyBhIGNsaXBSZWN0IGdpdmluZyB0aGUgc3VyZmFjZSBpdHNlbGYg
YSBjbGlwUmVjdC4KICAgICAgICAgICAgIHRoaXMtPmVudGVyQ29udHJpYnV0aW5nU3VyZmFjZShz
dXJmYWNlLCBvY2NsdXNpb24pOwotICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBzY3JlZW4g
c2Npc3NvciByZWN0IGNsaXBzIHRoZSB1bm9jY2x1ZGVkIHJlZ2lvbiBvZiB0aGUgY2hpbGQgc3Vy
ZmFjZS4KKyAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgdmlld3BvcnQgcmVjdCBjbGlwcyB0
aGUgdW5vY2NsdWRlZCByZWdpb24gb2YgdGhlIGNoaWxkIHN1cmZhY2UuCiAgICAgICAgICAgICBF
WFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCgwLCAwLCAxMDAsIDEwMCksIG9jY2x1c2lvbi51bm9j
Y2x1ZGVkQ29udHJpYnV0aW5nU3VyZmFjZUNvbnRlbnRSZWN0KHN1cmZhY2UsIGZhbHNlLCBJbnRS
ZWN0KDAsIDAsIDEwMCwgMzAwKSkpOwogICAgICAgICB9CiAgICAgfQogfTsKIAotQUxMX0NDT0ND
TFVTSU9OVFJBQ0tFUl9URVNUKENDT2NjbHVzaW9uVHJhY2tlclRlc3RUb3Btb3N0U3VyZmFjZUlz
Q2xpcHBlZFRvU2Npc3Nvcik7CitBTExfQ0NPQ0NMVVNJT05UUkFDS0VSX1RFU1QoQ0NPY2NsdXNp
b25UcmFja2VyVGVzdFRvcG1vc3RTdXJmYWNlSXNDbGlwcGVkVG9WaWV3cG9ydCk7CiAKIHRlbXBs
YXRlPGNsYXNzIFR5cGVzLCBib29sIG9wYXF1ZUxheWVycz4KIGNsYXNzIENDT2NjbHVzaW9uVHJh
Y2tlclRlc3RTdXJmYWNlQ2hpbGRPZkNsaXBwaW5nU3VyZmFjZSA6IHB1YmxpYyBDQ09jY2x1c2lv
blRyYWNrZXJUZXN0PFR5cGVzLCBvcGFxdWVMYXllcnM+IHsKQEAgLTI0NjgsOCArMjQ2OCw4IEBA
IHByb3RlY3RlZDoKICAgICAgICAgdHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSogdG9wbW9zdCA9
IHRoaXMtPmNyZWF0ZURyYXdpbmdMYXllcihwYXJlbnQsIHRoaXMtPmlkZW50aXR5TWF0cml4LCBG
bG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDEwMCwgNTApLCB0cnVlKTsKICAgICAgICAgdGhpcy0+
Y2FsY0RyYXdFdGMocGFyZW50KTsKIAotICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0
aFNjaXNzb3I8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRl
clN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7Ci0gICAg
ICAgIG9jY2x1c2lvbi5zZXRMYXllclNjaXNzb3JSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAw
MCkpOworICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aENsaXA8dHlwZW5hbWUgVHlw
ZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNp
b24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIG9jY2x1c2lvbi5zZXRMYXll
ckNsaXBSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwogCiAgICAgICAgIC8vIHx0b3Bt
b3N0fCBvY2NsdWRlcyBldmVyeXRoaW5nIHBhcnRpYWxseSBzbyB3ZSBrbm93IG9jY2x1c2lvbiBp
cyBoYXBwZW5pbmcgYXQgYWxsLgogICAgICAgICB0aGlzLT52aXNpdExheWVyKHRvcG1vc3QsIG9j
Y2x1c2lvbik7CkBAIC0yNTM2LDggKzI1MzYsOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICAgICAgdGhp
cy0+Y2FsY0RyYXdFdGMocGFyZW50KTsKIAotICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2Vy
V2l0aFNjaXNzb3I8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJl
bmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7Ci0g
ICAgICAgIG9jY2x1c2lvbi5zZXRMYXllclNjaXNzb3JSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwg
MTAwMCkpOworICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aENsaXA8dHlwZW5hbWUg
VHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2Ns
dXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIG9jY2x1c2lvbi5zZXRM
YXllckNsaXBSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwogCiAgICAgICAgIC8vIFRo
ZXNlIGxheWVycyBvY2NsdWRlIHBpeGVscyBkaXJlY3RseSBiZXNpZGUgdGhlIGZpbHRlcmVkU3Vy
ZmFjZS4gQmVjYXVzZSBmaWx0ZXJlZCBzdXJmYWNlIGJsZW5kcyBwaXhlbHMgaW4gYSByYWRpdXMs
IGl0IHdpbGwKICAgICAgICAgLy8gbmVlZCB0byBzZWUgc29tZSBvZiB0aGUgcGl4ZWxzICh1cCB0
byByYWRpdXMgZmFyKSB1bmRlcm5lYXRoIHRoZSBvY2NsdWRpbmdMYXllcnMuCkBAIC0yNjU4LDgg
KzI2NTgsOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICAgICAgdGhpcy0+Y2FsY0RyYXdFdGMocm9vdCk7
CiAKLSAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhTY2lzc29yPHR5cGVuYW1lIFR5
cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVz
aW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwotICAgICAgICBvY2NsdXNpb24uc2V0TGF5
ZXJTY2lzc29yUmVjdChJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgVGVzdEND
T2NjbHVzaW9uVHJhY2tlcldpdGhDbGlwPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVu
YW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAw
MCwgMTAwMCkpOworICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJDbGlwUmVjdChJbnRSZWN0KDAs
IDAsIDEwMDAsIDEwMDApKTsKIAogICAgICAgICB0aGlzLT52aXNpdExheWVyKG9jY2x1ZGluZ0xh
eWVyQWJvdmUsIG9jY2x1c2lvbik7CiAgICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0
KDEwMCAvIDIsIDEwMCAvIDIsIDUwIC8gMiwgNTAgLyAyKSwgb2NjbHVzaW9uLm9jY2x1c2lvbklu
U2NyZWVuU3BhY2UoKS5ib3VuZHMoKSk7CkBAIC0yNzIyLDggKzI3MjIsOCBAQCBwcm90ZWN0ZWQ6
CiAKICAgICAgICAgdGhpcy0+Y2FsY0RyYXdFdGMocGFyZW50KTsKIAotICAgICAgICBUZXN0Q0NP
Y2NsdXNpb25UcmFja2VyV2l0aFNjaXNzb3I8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlw
ZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAx
MDAwLCAxMDAwKSk7Ci0gICAgICAgIG9jY2x1c2lvbi5zZXRMYXllclNjaXNzb3JSZWN0KEludFJl
Y3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0
aENsaXA8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1
cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAg
IG9jY2x1c2lvbi5zZXRMYXllckNsaXBSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwog
CiAgICAgICAgIC8vIFRoZXNlIGxheWVycyBvY2NsdWRlIHBpeGVscyBkaXJlY3RseSBiZXNpZGUg
dGhlIGZpbHRlcmVkU3VyZmFjZS4gQmVjYXVzZSBmaWx0ZXJlZCBzdXJmYWNlIGJsZW5kcyBwaXhl
bHMgaW4gYSByYWRpdXMsIGl0IHdpbGwKICAgICAgICAgLy8gbmVlZCB0byBzZWUgc29tZSBvZiB0
aGUgcGl4ZWxzICh1cCB0byByYWRpdXMgZmFyKSB1bmRlcm5lYXRoIHRoZSBvY2NsdWRpbmdMYXll
cnMuCkBAIC0yODQxLDggKzI4NDEsOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICAgICAgdGhpcy0+Y2Fs
Y0RyYXdFdGMocGFyZW50KTsKIAotICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aFNj
aXNzb3I8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1
cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7Ci0gICAgICAg
IG9jY2x1c2lvbi5zZXRMYXllclNjaXNzb3JSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkp
OworICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aENsaXA8dHlwZW5hbWUgVHlwZXM6
OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24o
SW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIG9jY2x1c2lvbi5zZXRMYXllckNs
aXBSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwogCiAgICAgICAgIC8vIFRoZSBzdXJm
YWNlIGhhcyBhIGJhY2tncm91bmQgYmx1ciwgc28gaXQgYmx1cnMgbm9uLW9wYXF1ZSBwaXhlbHMg
YmVsb3cgaXQuCiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIoZmlsdGVyZWRTdXJmYWNlLCBvY2Ns
dXNpb24pOwpAQCAtMjg5MCw4ICsyODkwLDggQEAgcHJvdGVjdGVkOgogCiAgICAgICAgIHRoaXMt
PmNhbGNEcmF3RXRjKHBhcmVudCk7CiAKLSAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldp
dGhTY2lzc29yPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5k
ZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwotICAg
ICAgICBvY2NsdXNpb24uc2V0TGF5ZXJTY2lzc29yUmVjdChJbnRSZWN0KDAsIDAsIDEwMDAsIDEw
MDApKTsKKyAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhDbGlwPHR5cGVuYW1lIFR5
cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVz
aW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBvY2NsdXNpb24uc2V0TGF5
ZXJDbGlwUmVjdChJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKIAogICAgICAgICB0aGlzLT52
aXNpdExheWVyKGFib3ZlUmVwbGljYUxheWVyLCBvY2NsdXNpb24pOwogICAgICAgICB0aGlzLT52
aXNpdExheWVyKGFib3ZlU3VyZmFjZUxheWVyLCBvY2NsdXNpb24pOwpAQCAtMjk0NCw4ICsyOTQ0
LDggQEAgcHJvdGVjdGVkOgogCiAgICAgICAgIHRoaXMtPmNhbGNEcmF3RXRjKHBhcmVudCk7CiAK
LSAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhTY2lzc29yPHR5cGVuYW1lIFR5cGVz
OjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9u
KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwotICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJT
Y2lzc29yUmVjdChJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgVGVzdENDT2Nj
bHVzaW9uVHJhY2tlcldpdGhDbGlwPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1l
IFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwg
MTAwMCkpOworICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJDbGlwUmVjdChJbnRSZWN0KDAsIDAs
IDEwMDAsIDEwMDApKTsKIAogICAgICAgICB0aGlzLT52aXNpdExheWVyKGJlc2lkZVJlcGxpY2FM
YXllciwgb2NjbHVzaW9uKTsKICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihiZXNpZGVTdXJmYWNl
TGF5ZXIsIG9jY2x1c2lvbik7CkBAIC0yOTk5LDggKzI5OTksOCBAQCBwcm90ZWN0ZWQ6CiAgICAg
ICAgIHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUqIHNtYWxsID0gdGhpcy0+Y3JlYXRlRHJhd2lu
Z0xheWVyKHBhcmVudCwgdGhpcy0+aWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMCwgMCksIGJl
bG93VHJhY2tpbmdTaXplLCB0cnVlKTsKICAgICAgICAgdGhpcy0+Y2FsY0RyYXdFdGMocGFyZW50
KTsKIAotICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aFNjaXNzb3I8dHlwZW5hbWUg
VHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2Ns
dXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7Ci0gICAgICAgIG9jY2x1c2lvbi5zZXRM
YXllclNjaXNzb3JSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBUZXN0
Q0NPY2NsdXNpb25UcmFja2VyV2l0aENsaXA8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlw
ZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAx
MDAwLCAxMDAwKSk7CisgICAgICAgIG9jY2x1c2lvbi5zZXRMYXllckNsaXBSZWN0KEludFJlY3Qo
MCwgMCwgMTAwMCwgMTAwMCkpOwogICAgICAgICBvY2NsdXNpb24uc2V0TWluaW11bVRyYWNraW5n
U2l6ZSh0cmFja2luZ1NpemUpOwogCiAgICAgICAgIC8vIFRoZSBzbWFsbCBsYXllciBpcyBub3Qg
dHJhY2tlZCBiZWNhdXNlIGl0IGlzIHRvbyBzbWFsbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvVGlsZWRMYXllckNocm9taXVtVGVzdC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCmluZGV4IGRlYWRh
NzVlMzI4MTQyMmM4ZTliMDllZGFmNWZhMjljZGI2MTRhZjMuLjcwMzcxZGE1YzE4ZTc3NWEzYjNk
NjUzMmExOGM3NzQyNTFmYzI5ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvVGlsZWRMYXllckNocm9taXVtVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcApAQCAtNTgsNyArNTgsNyBAQCBj
bGFzcyBUZXN0Q0NPY2NsdXNpb25UcmFja2VyIDogcHVibGljIENDT2NjbHVzaW9uVHJhY2tlciB7
CiBwdWJsaWM6CiAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcigpCiAgICAgICAgIDogQ0NPY2Ns
dXNpb25UcmFja2VyKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCksIHRydWUpCi0gICAgICAgICwg
bV9zY2lzc29yUmVjdEluU2NyZWVuKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpCisgICAgICAg
ICwgbV9sYXllckNsaXBSZWN0SW5UYXJnZXQoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSkKICAg
ICB7CiAgICAgICAgIC8vIFByZXRlbmQgd2UgaGF2ZSB2aXNpdGVkIGEgcmVuZGVyIHN1cmZhY2Uu
CiAgICAgICAgIG1fc3RhY2suYXBwZW5kKFN0YWNrT2JqZWN0KCkpOwpAQCAtNjcsMTAgKzY3LDEw
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE9jY2x1c2lvbihjb25zdCBSZWdpb24mIG9jY2x1c2lv
bikgeyBtX3N0YWNrLmxhc3QoKS5vY2NsdXNpb25JblNjcmVlbiA9IG9jY2x1c2lvbjsgfQogCiBw
cm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCBJbnRSZWN0IGxheWVyU2Npc3NvclJlY3RJblRhcmdldFN1
cmZhY2UoY29uc3QgTGF5ZXJDaHJvbWl1bSogbGF5ZXIpIGNvbnN0IHsgcmV0dXJuIG1fc2Npc3Nv
clJlY3RJblNjcmVlbjsgfQorICAgIHZpcnR1YWwgSW50UmVjdCBsYXllckNsaXBSZWN0SW5UYXJn
ZXQoY29uc3QgTGF5ZXJDaHJvbWl1bSogbGF5ZXIpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1f
bGF5ZXJDbGlwUmVjdEluVGFyZ2V0OyB9CiAKIHByaXZhdGU6Ci0gICAgSW50UmVjdCBtX3NjaXNz
b3JSZWN0SW5TY3JlZW47CisgICAgSW50UmVjdCBtX2xheWVyQ2xpcFJlY3RJblRhcmdldDsKIH07
CiAKIGNsYXNzIFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157526</attachid>
            <date>2012-08-09 13:20:51 -0700</date>
            <delta_ts>2012-08-09 14:34:33 -0700</delta_ts>
            <desc>for-ews</desc>
            <filename>bug-93630-20120809162023.patch</filename>
            <type>text/plain</type>
            <size>75414</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1MTk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmZjOTI3ZjRiNWEzNDI3
MWEwMTQxZWRkZGZjN2M1MGY5NzU1NTc2NC4uNjQwY2YzNzRkNjFkMjA4MjFkNmU3NGY2ZDY3MzQ4
OTM4NjUxZDJlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMyIEBACiAyMDEyLTA4LTA5ICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFtjaHJvbWl1bV0gUmVt
b3ZlIHNjaXNzb3IgZnJvbSB0aGUgbmFtaW5ncyBpbiBDQ09jY2x1c2lvblRyYWNrZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkzNjMwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgQWRyaWVubmUgV2Fsa2VyLgorCisgICAgICAgIEFzIGEgZm9sbG93dXAg
dG8gd2tiLnVnLzkxODAwIHdoaWNoIHN0b3BzIHVzaW5nIHBhcnRpYWwtc3dhcCBzY2lzc29yCisg
ICAgICAgIGluIHRoZSBvY2NsdXNpb24gdHJhY2tlciwgdGhpcyBkb2VzIGEgbGFyZ2UgcmVuYW1l
IHRvIHRoZSBvY2NsdXNpb24KKyAgICAgICAgdHJhY2tlciBhbmQgYWZmZWN0ZWQgdGVzdHMgdG8g
cmVtb3ZlICJzY2lzc29yIiBmcm9tIHRoZSBuYW1lcyBvZiBpdHMKKyAgICAgICAgdmFyaWFibGVz
IGFuZCBtZXRob2RzLCBpbnN0ZWFkIHJlZmxlY3RpbmcgdGhlaXIgbmV3IGJlaGF2aW91ci4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDT2NjbHVzaW9uVHJhY2tl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjo6OkNDT2NjbHVzaW9uVHJhY2tlckJhc2UpOgorICAg
ICAgICAoV2ViQ29yZTo6YWRkT2NjbHVzaW9uQmVoaW5kTGF5ZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6OjptYXJrT2NjbHVkZWRCZWhpbmRMYXllcik6CisgICAgICAgIChXZWJDb3JlOjp0ZXN0Q29u
dGVudFJlY3RPY2NsdWRlZCk6CisgICAgICAgIChXZWJDb3JlOjo6Om9jY2x1ZGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbXB1dGVVbm9jY2x1ZGVkQ29udGVudFJlY3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Ojp1bm9jY2x1ZGVkQ29udGVudFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6Ojp1bm9j
Y2x1ZGVkQ29udHJpYnV0aW5nU3VyZmFjZUNvbnRlbnRSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
Ojo6bGF5ZXJDbGlwUmVjdEluVGFyZ2V0KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDT2NjbHVzaW9uVHJhY2tlci5oOgorICAg
ICAgICAoQ0NPY2NsdXNpb25UcmFja2VyQmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ09jY2x1
c2lvblRyYWNrZXJCYXNlOjpjb21wdXRlVmlzaWJsZVJlZ2lvbkluU2NyZWVuKToKKworMjAxMi0w
OC0wOSAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KKwogICAgICAgICBbY2hy
b21pdW1dIERvIHBhcnRpYWwtc3dhcCBzY2lzc29yaW5nIG9uIHF1YWRzIGR1cmluZyBkcmF3IGlu
c3RlYWQgb2Ygb24gbGF5ZXJzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05MTgwMAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDM0YWYzODk4
M2YyZTUwYjMwMWUwNDE2N2NjZTQ4OTc1ZjQ2ODdmY2IuLjQ3YTAwMDFjYjgyYWZhNTEwMThhMzY0
MDdkYzMxOTcxODUzYTI3ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDUgKzEs
NjkgQEAKIDIwMTItMDgtMDkgIERhbmEgSmFuc2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CiAK
KyAgICAgICAgW2Nocm9taXVtXSBSZW1vdmUgc2Npc3NvciBmcm9tIHRoZSBuYW1pbmdzIGluIEND
T2NjbHVzaW9uVHJhY2tlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTM2MzAKKworICAgICAgICBSZXZpZXdlZCBieSBBZHJpZW5uZSBXYWxrZXIuCisK
KyAgICAgICAgKiB0ZXN0cy9DQ09jY2x1c2lvblRyYWNrZXJUZXN0LmNwcDoKKyAgICAgICAgKFdl
YktpdFRlc3RzOjpUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aENsaXA6OlRlc3RDQ09jY2x1c2lv
blRyYWNrZXJXaXRoQ2xpcCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6VGVzdENDT2NjbHVzaW9u
VHJhY2tlcldpdGhDbGlwOjpzZXRMYXllckNsaXBSZWN0KToKKyAgICAgICAgKFdlYktpdFRlc3Rz
OjpUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aENsaXA6OnVzZURlZmF1bHRMYXllckNsaXBSZWN0
KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aENsaXA6
OmxheWVyQ2xpcFJlY3RJblRhcmdldCk6CisgICAgICAgIChUZXN0Q0NPY2NsdXNpb25UcmFja2Vy
V2l0aENsaXApOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RJ
ZGVudGl0eVRyYW5zZm9ybXM6OnJ1bk15VGVzdCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NP
Y2NsdXNpb25UcmFja2VyVGVzdFJvdGF0ZWRDaGlsZDo6cnVuTXlUZXN0KToKKyAgICAgICAgKFdl
YktpdFRlc3RzOjpDQ09jY2x1c2lvblRyYWNrZXJUZXN0VHJhbnNsYXRlZENoaWxkOjpydW5NeVRl
c3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RDaGlsZElu
Um90YXRlZENoaWxkOjpydW5NeVRlc3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVz
aW9uVHJhY2tlclRlc3RWaXNpdFRhcmdldFR3b1RpbWVzOjpydW5NeVRlc3QpOgorICAgICAgICAo
V2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RTdXJmYWNlUm90YXRlZE9mZkF4aXM6
OnJ1bk15VGVzdCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NPY2NsdXNpb25UcmFja2VyVGVz
dFN1cmZhY2VXaXRoVHdvT3BhcXVlQ2hpbGRyZW46OnJ1bk15VGVzdCk6CisgICAgICAgIChXZWJL
aXRUZXN0czo6Q0NPY2NsdXNpb25UcmFja2VyVGVzdE92ZXJsYXBwaW5nU3VyZmFjZVNpYmxpbmdz
OjpydW5NeVRlc3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRl
c3RPdmVybGFwcGluZ1N1cmZhY2VTaWJsaW5nc1dpdGhUd29UcmFuc2Zvcm1zOjpydW5NeVRlc3Qp
OgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RGaWx0ZXJzOjpy
dW5NeVRlc3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RS
ZXBsaWNhRG9lc09jY2x1ZGU6OnJ1bk15VGVzdCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NP
Y2NsdXNpb25UcmFja2VyVGVzdFJlcGxpY2FXaXRoQ2xpcHBpbmc6OnJ1bk15VGVzdCk6CisgICAg
ICAgIChXZWJLaXRUZXN0czo6Q0NPY2NsdXNpb25UcmFja2VyVGVzdFJlcGxpY2FXaXRoTWFzazo6
cnVuTXlUZXN0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ09jY2x1c2lvblRyYWNrZXJUZXN0
TGF5ZXJDbGlwUmVjdE91dHNpZGVDaGlsZDo6cnVuTXlUZXN0KToKKyAgICAgICAgKFdlYktpdFRl
c3RzKToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ09jY2x1c2lvblRyYWNrZXJUZXN0Vmlld3Bv
cnRSZWN0T3V0c2lkZUNoaWxkOjpydW5NeVRlc3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkND
T2NjbHVzaW9uVHJhY2tlclRlc3RMYXllckNsaXBSZWN0T3ZlckNoaWxkOjpydW5NeVRlc3QpOgor
ICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RWaWV3cG9ydFJlY3RP
dmVyQ2hpbGQ6OnJ1bk15VGVzdCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NPY2NsdXNpb25U
cmFja2VyVGVzdExheWVyQ2xpcFJlY3RQYXJ0bHlPdmVyQ2hpbGQ6OnJ1bk15VGVzdCk6CisgICAg
ICAgIChXZWJLaXRUZXN0czo6Q0NPY2NsdXNpb25UcmFja2VyVGVzdFZpZXdwb3J0UmVjdFBhcnRs
eU92ZXJDaGlsZDo6cnVuTXlUZXN0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ09jY2x1c2lv
blRyYWNrZXJUZXN0TGF5ZXJDbGlwUmVjdE92ZXJOb3RoaW5nOjpydW5NeVRlc3QpOgorICAgICAg
ICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RWaWV3cG9ydFJlY3RPdmVyTm90
aGluZzo6cnVuTXlUZXN0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ09jY2x1c2lvblRyYWNr
ZXJUZXN0TGF5ZXJDbGlwUmVjdEZvckxheWVyT2ZmT3JpZ2luOjpydW5NeVRlc3QpOgorICAgICAg
ICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RPcGFxdWVDb250ZW50c1JlZ2lv
bkVtcHR5OjpydW5NeVRlc3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJh
Y2tlclRlc3RPcGFxdWVDb250ZW50c1JlZ2lvbk5vbkVtcHR5OjpydW5NeVRlc3QpOgorICAgICAg
ICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3QzZFRyYW5zZm9ybTo6cnVuTXlU
ZXN0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ09jY2x1c2lvblRyYWNrZXJUZXN0VW5zb3J0
ZWQzZExheWVyczo6cnVuTXlUZXN0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ09jY2x1c2lv
blRyYWNrZXJUZXN0UGVyc3BlY3RpdmVUcmFuc2Zvcm06OnJ1bk15VGVzdCk6CisgICAgICAgIChX
ZWJLaXRUZXN0czo6Q0NPY2NsdXNpb25UcmFja2VyVGVzdFBlcnNwZWN0aXZlVHJhbnNmb3JtQmVo
aW5kQ2FtZXJhOjpydW5NeVRlc3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9u
VHJhY2tlclRlc3RMYXllckJlaGluZENhbWVyYURvZXNOb3RPY2NsdWRlOjpydW5NeVRlc3QpOgor
ICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RMYXJnZVBpeGVsc09j
Y2x1ZGVJbnNpZGVDbGlwUmVjdDo6cnVuTXlUZXN0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpD
Q09jY2x1c2lvblRyYWNrZXJUZXN0QW5pbWF0aW9uT3BhY2l0eTFPbk1haW5UaHJlYWQ6OnJ1bk15
VGVzdCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NPY2NsdXNpb25UcmFja2VyVGVzdEFuaW1h
dGlvbk9wYWNpdHkwT25NYWluVGhyZWFkOjpydW5NeVRlc3QpOgorICAgICAgICAoV2ViS2l0VGVz
dHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RBbmltYXRpb25UcmFuc2xhdGVPbk1haW5UaHJlYWQ6
OnJ1bk15VGVzdCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NPY2NsdXNpb25UcmFja2VyVGVz
dFN1cmZhY2VPY2NsdXNpb25UcmFuc2xhdGVzVG9QYXJlbnQ6OnJ1bk15VGVzdCk6CisgICAgICAg
IChXZWJLaXRUZXN0czo6Q0NPY2NsdXNpb25UcmFja2VyVGVzdFN1cmZhY2VPY2NsdXNpb25UcmFu
c2xhdGVzV2l0aENsaXBwaW5nOjpydW5NeVRlc3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkND
T2NjbHVzaW9uVHJhY2tlclRlc3RSZXBsaWNhT2NjbHVkZWQ6OnJ1bk15VGVzdCk6CisgICAgICAg
IChXZWJLaXRUZXN0czo6Q0NPY2NsdXNpb25UcmFja2VyVGVzdFN1cmZhY2VXaXRoUmVwbGljYVVu
b2NjbHVkZWQ6OnJ1bk15VGVzdCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NPY2NsdXNpb25U
cmFja2VyVGVzdFN1cmZhY2VBbmRSZXBsaWNhT2NjbHVkZWREaWZmZXJlbnRseTo6cnVuTXlUZXN0
KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ09jY2x1c2lvblRyYWNrZXJUZXN0U3VyZmFjZUNo
aWxkT2ZTdXJmYWNlOjpydW5NeVRlc3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVz
aW9uVHJhY2tlclRlc3RUb3Btb3N0U3VyZmFjZUlzQ2xpcHBlZFRvVmlld3BvcnQ6OnJ1bk15VGVz
dCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NPY2NsdXNpb25UcmFja2VyVGVzdFN1cmZhY2VD
aGlsZE9mQ2xpcHBpbmdTdXJmYWNlOjpydW5NeVRlc3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6
OkNDT2NjbHVzaW9uVHJhY2tlclRlc3REb250T2NjbHVkZVBpeGVsc05lZWRlZEZvckJhY2tncm91
bmRGaWx0ZXI6OnJ1bk15VGVzdCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NPY2NsdXNpb25U
cmFja2VyVGVzdFR3b0JhY2tncm91bmRGaWx0ZXJzUmVkdWNlT2NjbHVzaW9uVHdpY2U6OnJ1bk15
VGVzdCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NPY2NsdXNpb25UcmFja2VyVGVzdERvbnRP
Y2NsdWRlUGl4ZWxzTmVlZGVkRm9yQmFja2dyb3VuZEZpbHRlcldpdGhDbGlwOjpydW5NeVRlc3Qp
OgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3REb250UmVkdWNl
T2NjbHVzaW9uQmVsb3dCYWNrZ3JvdW5kRmlsdGVyOjpydW5NeVRlc3QpOgorICAgICAgICAoV2Vi
S2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3REb250UmVkdWNlT2NjbHVzaW9uSWZCYWNr
Z3JvdW5kRmlsdGVySXNPY2NsdWRlZDo6cnVuTXlUZXN0KToKKyAgICAgICAgKFdlYktpdFRlc3Rz
OjpDQ09jY2x1c2lvblRyYWNrZXJUZXN0UmVkdWNlT2NjbHVzaW9uV2hlbkJhY2tncm91bmRGaWx0
ZXJJc1BhcnRpYWxseU9jY2x1ZGVkOjpydW5NeVRlc3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6
OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RNaW5pbXVtVHJhY2tpbmdTaXplOjpydW5NeVRlc3QpOgor
ICAgICAgICAqIHRlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRlc3QuY3BwOgorCisyMDEyLTA4LTA5
ICBEYW5hIEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFtjaHJvbWl1
bV0gRG8gcGFydGlhbC1zd2FwIHNjaXNzb3Jpbmcgb24gcXVhZHMgZHVyaW5nIGRyYXcgaW5zdGVh
ZCBvZiBvbiBsYXllcnMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTkxODAwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDT2NjbHVzaW9uVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ09jY2x1c2lvblRyYWNrZXIuY3BwCmluZGV4
IGE5YTk3Y2M5YzcwNDM5NjJjNjAwMWRlOTljZjc2ODVkNTdmOGQ1ZDcuLmFlNDkwYjc2ZTRmMjg5
MjRhNGRjYzRhOWQ5MDM0MDg2MTA4ZmY0NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDT2NjbHVzaW9uVHJhY2tlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NPY2NsdXNpb25U
cmFja2VyLmNwcApAQCAtNDIsOCArNDIsOCBAQCB1c2luZyBXZWJLaXQ6OldlYlRyYW5zZm9ybWF0
aW9uTWF0cml4OwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBMYXll
clR5cGUsIHR5cGVuYW1lIFJlbmRlclN1cmZhY2VUeXBlPgotQ0NPY2NsdXNpb25UcmFja2VyQmFz
ZTxMYXllclR5cGUsIFJlbmRlclN1cmZhY2VUeXBlPjo6Q0NPY2NsdXNpb25UcmFja2VyQmFzZShJ
bnRSZWN0IHNjaXNzb3JSZWN0SW5TY3JlZW5TcGFjZSwgYm9vbCByZWNvcmRNZXRyaWNzRm9yRnJh
bWUpCi0gICAgOiBtX3NjaXNzb3JSZWN0SW5TY3JlZW5TcGFjZShzY2lzc29yUmVjdEluU2NyZWVu
U3BhY2UpCitDQ09jY2x1c2lvblRyYWNrZXJCYXNlPExheWVyVHlwZSwgUmVuZGVyU3VyZmFjZVR5
cGU+OjpDQ09jY2x1c2lvblRyYWNrZXJCYXNlKEludFJlY3Qgcm9vdFRhcmdldFJlY3QsIGJvb2wg
cmVjb3JkTWV0cmljc0ZvckZyYW1lKQorICAgIDogbV9yb290VGFyZ2V0UmVjdChyb290VGFyZ2V0
UmVjdCkKICAgICAsIG1fb3ZlcmRyYXdNZXRyaWNzKENDT3ZlcmRyYXdNZXRyaWNzOjpjcmVhdGUo
cmVjb3JkTWV0cmljc0ZvckZyYW1lKSkKICAgICAsIG1fb2NjbHVkaW5nU2NyZWVuU3BhY2VSZWN0
cygwKQogewpAQCAtMjY3LDcgKzI2Nyw3IEBAIHZvaWQgQ0NPY2NsdXNpb25UcmFja2VyQmFzZTxM
YXllclR5cGUsIFJlbmRlclN1cmZhY2VUeXBlPjo6bGVhdmVUb1JlbmRlclRhcmdldChjCiAKIC8v
IEZJWE1FOiBSZW1vdmUgdXNlUGFpbnRUcmFja2luZyB3aGVuIHBhaW50IHRyYWNraW5nIGlzIG9u
IGZvciBwYWludCBjdWxsaW5nLgogdGVtcGxhdGU8dHlwZW5hbWUgTGF5ZXJUeXBlPgotc3RhdGlj
IGlubGluZSB2b2lkIGFkZE9jY2x1c2lvbkJlaGluZExheWVyKFJlZ2lvbiYgcmVnaW9uLCBjb25z
dCBMYXllclR5cGUqIGxheWVyLCBjb25zdCBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNm
b3JtLCBjb25zdCBSZWdpb24mIG9wYXF1ZUNvbnRlbnRzLCBjb25zdCBJbnRSZWN0JiBzY2lzc29y
UmVjdCwgY29uc3QgSW50U2l6ZSYgbWluaW11bVRyYWNraW5nU2l6ZSwgVmVjdG9yPEludFJlY3Q+
KiBvY2NsdWRpbmdTY3JlZW5TcGFjZVJlY3RzKQorc3RhdGljIGlubGluZSB2b2lkIGFkZE9jY2x1
c2lvbkJlaGluZExheWVyKFJlZ2lvbiYgcmVnaW9uLCBjb25zdCBMYXllclR5cGUqIGxheWVyLCBj
b25zdCBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBjb25zdCBSZWdpb24mIG9w
YXF1ZUNvbnRlbnRzLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdEluVGFyZ2V0LCBjb25zdCBJbnRT
aXplJiBtaW5pbXVtVHJhY2tpbmdTaXplLCBWZWN0b3I8SW50UmVjdD4qIG9jY2x1ZGluZ1NjcmVl
blNwYWNlUmVjdHMpCiB7CiAgICAgQVNTRVJUKGxheWVyLT52aXNpYmxlQ29udGVudFJlY3QoKS5j
b250YWlucyhvcGFxdWVDb250ZW50cy5ib3VuZHMoKSkpOwogCkBAIC0yODEsNyArMjgxLDcgQEAg
c3RhdGljIGlubGluZSB2b2lkIGFkZE9jY2x1c2lvbkJlaGluZExheWVyKFJlZ2lvbiYgcmVnaW9u
LCBjb25zdCBMYXllclR5cGUqIGxheWUKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvbnRl
bnRSZWN0cy5zaXplKCk7ICsraSkgewogICAgICAgICAvLyBXZSd2ZSBhbHJlYWR5IGNoZWNrZWQg
Zm9yIGNsaXBwaW5nIGluIHRoZSBtYXBRdWFkIGNhbGwgYWJvdmUsIHRoZXNlIGNhbGxzIHNob3Vs
ZCBub3QgY2xpcCBhbnl0aGluZyBmdXJ0aGVyLgogICAgICAgICBJbnRSZWN0IHRyYW5zZm9ybWVk
UmVjdCA9IGVuY2xvc2VkSW50UmVjdChDQ01hdGhVdGlsOjptYXBDbGlwcGVkUmVjdCh0cmFuc2Zv
cm0sIEZsb2F0UmVjdChjb250ZW50UmVjdHNbaV0pKSk7Ci0gICAgICAgIHRyYW5zZm9ybWVkUmVj
dC5pbnRlcnNlY3Qoc2Npc3NvclJlY3QpOworICAgICAgICB0cmFuc2Zvcm1lZFJlY3QuaW50ZXJz
ZWN0KGNsaXBSZWN0SW5UYXJnZXQpOwogICAgICAgICBpZiAodHJhbnNmb3JtZWRSZWN0LndpZHRo
KCkgPj0gbWluaW11bVRyYWNraW5nU2l6ZS53aWR0aCgpIHx8IHRyYW5zZm9ybWVkUmVjdC5oZWln
aHQoKSA+PSBtaW5pbXVtVHJhY2tpbmdTaXplLmhlaWdodCgpKSB7CiAgICAgICAgICAgICBpZiAo
b2NjbHVkaW5nU2NyZWVuU3BhY2VSZWN0cykKICAgICAgICAgICAgICAgICBvY2NsdWRpbmdTY3Jl
ZW5TcGFjZVJlY3RzLT5hcHBlbmQodHJhbnNmb3JtZWRSZWN0KTsKQEAgLTMwOCwzMCArMzA4LDMw
IEBAIHZvaWQgQ0NPY2NsdXNpb25UcmFja2VyQmFzZTxMYXllclR5cGUsIFJlbmRlclN1cmZhY2VU
eXBlPjo6bWFya09jY2x1ZGVkQmVoaW5kTGF5CiAgICAgaWYgKG9wYXF1ZUNvbnRlbnRzLmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgSW50UmVjdCBzY2lzc29ySW5UYXJnZXQgPSBs
YXllclNjaXNzb3JSZWN0SW5UYXJnZXRTdXJmYWNlKGxheWVyKTsKKyAgICBJbnRSZWN0IGNsaXBS
ZWN0SW5UYXJnZXQgPSBsYXllckNsaXBSZWN0SW5UYXJnZXQobGF5ZXIpOwogICAgIGlmIChsYXll
clRyYW5zZm9ybXNUb1RhcmdldEtub3duKGxheWVyKSkKLSAgICAgICAgYWRkT2NjbHVzaW9uQmVo
aW5kTGF5ZXI8TGF5ZXJUeXBlPihtX3N0YWNrLmxhc3QoKS5vY2NsdXNpb25JblRhcmdldCwgbGF5
ZXIsIGxheWVyLT5kcmF3VHJhbnNmb3JtKCksIG9wYXF1ZUNvbnRlbnRzLCBzY2lzc29ySW5UYXJn
ZXQsIG1fbWluaW11bVRyYWNraW5nU2l6ZSwgMCk7CisgICAgICAgIGFkZE9jY2x1c2lvbkJlaGlu
ZExheWVyPExheWVyVHlwZT4obV9zdGFjay5sYXN0KCkub2NjbHVzaW9uSW5UYXJnZXQsIGxheWVy
LCBsYXllci0+ZHJhd1RyYW5zZm9ybSgpLCBvcGFxdWVDb250ZW50cywgY2xpcFJlY3RJblRhcmdl
dCwgbV9taW5pbXVtVHJhY2tpbmdTaXplLCAwKTsKIAotICAgIC8vIFdlIG11c3QgY2xpcCB0aGUg
b2NjbHVzaW9uIHdpdGhpbiB0aGUgbGF5ZXIncyBzY2lzc29ySW5UYXJnZXQgd2l0aGluIHNjcmVl
biBzcGFjZSBhcyB3ZWxsLiBJZiB0aGUgc2Npc3NvciByZWN0IGNhbid0IGJlIG1vdmVkIHRvIHNj
cmVlbiBzcGFjZSBhbmQKKyAgICAvLyBXZSBtdXN0IGNsaXAgdGhlIG9jY2x1c2lvbiB3aXRoaW4g
dGhlIGxheWVyJ3MgY2xpcFJlY3RJblRhcmdldCB3aXRoaW4gc2NyZWVuIHNwYWNlIGFzIHdlbGwu
IElmIHRoZSBjbGlwIHJlY3QgY2FuJ3QgYmUgbW92ZWQgdG8gc2NyZWVuIHNwYWNlIGFuZAogICAg
IC8vIHJlbWFpbiByZWN0aWxpbmVhciwgdGhlbiB3ZSBkb24ndCBhZGQgYW55IG9jY2x1c2lvbiBp
biBzY3JlZW4gc3BhY2UuCiAKICAgICBpZiAobGF5ZXJUcmFuc2Zvcm1zVG9TY3JlZW5Lbm93bihs
YXllcikpIHsKICAgICAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggdGFyZ2V0VG9TY3JlZW5U
cmFuc2Zvcm0gPSBtX3N0YWNrLmxhc3QoKS50YXJnZXQtPnJlbmRlclN1cmZhY2UoKS0+c2NyZWVu
U3BhY2VUcmFuc2Zvcm0oKTsKICAgICAgICAgYm9vbCBjbGlwcGVkOwotICAgICAgICBGbG9hdFF1
YWQgc2Npc3NvckluU2NyZWVuUXVhZCA9IENDTWF0aFV0aWw6Om1hcFF1YWQodGFyZ2V0VG9TY3Jl
ZW5UcmFuc2Zvcm0sIEZsb2F0UXVhZChGbG9hdFJlY3Qoc2Npc3NvckluVGFyZ2V0KSksIGNsaXBw
ZWQpOwotICAgICAgICAvLyBGSVhNRTogRmluZCBhIHJlY3QgaW50ZXJpb3IgdG8gdGhlIHRyYW5z
Zm9ybWVkIHNjaXNzb3IgcXVhZC4KLSAgICAgICAgaWYgKGNsaXBwZWQgfHwgIXNjaXNzb3JJblNj
cmVlblF1YWQuaXNSZWN0aWxpbmVhcigpKQorICAgICAgICBGbG9hdFF1YWQgY2xpcFF1YWRJblNj
cmVlbiA9IENDTWF0aFV0aWw6Om1hcFF1YWQodGFyZ2V0VG9TY3JlZW5UcmFuc2Zvcm0sIEZsb2F0
UXVhZChGbG9hdFJlY3QoY2xpcFJlY3RJblRhcmdldCkpLCBjbGlwcGVkKTsKKyAgICAgICAgLy8g
RklYTUU6IEZpbmQgYSByZWN0IGludGVyaW9yIHRvIHRoZSB0cmFuc2Zvcm1lZCBjbGlwIHF1YWQu
CisgICAgICAgIGlmIChjbGlwcGVkIHx8ICFjbGlwUXVhZEluU2NyZWVuLmlzUmVjdGlsaW5lYXIo
KSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgSW50UmVjdCBzY2lzc29ySW5TY3JlZW5S
ZWN0ID0gaW50ZXJzZWN0aW9uKG1fc2Npc3NvclJlY3RJblNjcmVlblNwYWNlLCBlbmNsb3NlZElu
dFJlY3Qoc2Npc3NvckluU2NyZWVuUXVhZC5ib3VuZGluZ0JveCgpKSk7Ci0gICAgICAgIGFkZE9j
Y2x1c2lvbkJlaGluZExheWVyPExheWVyVHlwZT4obV9zdGFjay5sYXN0KCkub2NjbHVzaW9uSW5T
Y3JlZW4sIGxheWVyLCBsYXllci0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSwgb3BhcXVlQ29udGVu
dHMsIHNjaXNzb3JJblNjcmVlblJlY3QsIG1fbWluaW11bVRyYWNraW5nU2l6ZSwgbV9vY2NsdWRp
bmdTY3JlZW5TcGFjZVJlY3RzKTsKKyAgICAgICAgSW50UmVjdCBjbGlwUmVjdEluU2NyZWVuID0g
aW50ZXJzZWN0aW9uKG1fcm9vdFRhcmdldFJlY3QsIGVuY2xvc2VkSW50UmVjdChjbGlwUXVhZElu
U2NyZWVuLmJvdW5kaW5nQm94KCkpKTsKKyAgICAgICAgYWRkT2NjbHVzaW9uQmVoaW5kTGF5ZXI8
TGF5ZXJUeXBlPihtX3N0YWNrLmxhc3QoKS5vY2NsdXNpb25JblNjcmVlbiwgbGF5ZXIsIGxheWVy
LT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpLCBvcGFxdWVDb250ZW50cywgY2xpcFJlY3RJblNjcmVl
biwgbV9taW5pbXVtVHJhY2tpbmdTaXplLCBtX29jY2x1ZGluZ1NjcmVlblNwYWNlUmVjdHMpOwog
ICAgIH0KIH0KIAotc3RhdGljIGlubGluZSBib29sIHRlc3RDb250ZW50UmVjdE9jY2x1ZGVkKGNv
bnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCYg
Y29udGVudFNwYWNlVHJhbnNmb3JtLCBjb25zdCBJbnRSZWN0JiBzY2lzc29yUmVjdCwgY29uc3Qg
UmVnaW9uJiBvY2NsdXNpb24pCitzdGF0aWMgaW5saW5lIGJvb2wgdGVzdENvbnRlbnRSZWN0T2Nj
bHVkZWQoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IFdlYlRyYW5zZm9ybWF0aW9u
TWF0cml4JiBjb250ZW50U3BhY2VUcmFuc2Zvcm0sIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0SW5U
YXJnZXQsIGNvbnN0IFJlZ2lvbiYgb2NjbHVzaW9uKQogewogICAgIEZsb2F0UmVjdCB0cmFuc2Zv
cm1lZFJlY3QgPSBDQ01hdGhVdGlsOjptYXBDbGlwcGVkUmVjdChjb250ZW50U3BhY2VUcmFuc2Zv
cm0sIEZsb2F0UmVjdChjb250ZW50UmVjdCkpOwogICAgIC8vIFRha2UgdGhlIGVuY2xvc2luZ0lu
dFJlY3QsIGFzIHdlIHdhbnQgdG8gaW5jbHVkZSBwYXJ0aWFsIHBpeGVscyBpbiB0aGUgdGVzdC4K
LSAgICBJbnRSZWN0IHRhcmdldFJlY3QgPSBpbnRlcnNlY3Rpb24oZW5jbG9zaW5nSW50UmVjdCh0
cmFuc2Zvcm1lZFJlY3QpLCBzY2lzc29yUmVjdCk7CisgICAgSW50UmVjdCB0YXJnZXRSZWN0ID0g
aW50ZXJzZWN0aW9uKGVuY2xvc2luZ0ludFJlY3QodHJhbnNmb3JtZWRSZWN0KSwgY2xpcFJlY3RJ
blRhcmdldCk7CiAgICAgcmV0dXJuIHRhcmdldFJlY3QuaXNFbXB0eSgpIHx8IG9jY2x1c2lvbi5j
b250YWlucyh0YXJnZXRSZWN0KTsKIH0KIApAQCAtMzQ5LDEwICszNDksMTAgQEAgYm9vbCBDQ09j
Y2x1c2lvblRyYWNrZXJCYXNlPExheWVyVHlwZSwgUmVuZGVyU3VyZmFjZVR5cGU+OjpvY2NsdWRl
ZChjb25zdCBMYXllclQKIAogICAgIEFTU0VSVChsYXllci0+cmVuZGVyVGFyZ2V0KCkgPT0gbV9z
dGFjay5sYXN0KCkudGFyZ2V0KTsKIAotICAgIGlmIChsYXllclRyYW5zZm9ybXNUb1RhcmdldEtu
b3duKGxheWVyKSAmJiB0ZXN0Q29udGVudFJlY3RPY2NsdWRlZChjb250ZW50UmVjdCwgbGF5ZXIt
PmRyYXdUcmFuc2Zvcm0oKSwgbGF5ZXJTY2lzc29yUmVjdEluVGFyZ2V0U3VyZmFjZShsYXllciks
IG1fc3RhY2subGFzdCgpLm9jY2x1c2lvbkluVGFyZ2V0KSkKKyAgICBpZiAobGF5ZXJUcmFuc2Zv
cm1zVG9UYXJnZXRLbm93bihsYXllcikgJiYgdGVzdENvbnRlbnRSZWN0T2NjbHVkZWQoY29udGVu
dFJlY3QsIGxheWVyLT5kcmF3VHJhbnNmb3JtKCksIGxheWVyQ2xpcFJlY3RJblRhcmdldChsYXll
ciksIG1fc3RhY2subGFzdCgpLm9jY2x1c2lvbkluVGFyZ2V0KSkKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAKLSAgICBpZiAobGF5ZXJUcmFuc2Zvcm1zVG9TY3JlZW5Lbm93bihsYXllcikgJiYgdGVz
dENvbnRlbnRSZWN0T2NjbHVkZWQoY29udGVudFJlY3QsIGxheWVyLT5zY3JlZW5TcGFjZVRyYW5z
Zm9ybSgpLCBtX3NjaXNzb3JSZWN0SW5TY3JlZW5TcGFjZSwgbV9zdGFjay5sYXN0KCkub2NjbHVz
aW9uSW5TY3JlZW4pKSB7CisgICAgaWYgKGxheWVyVHJhbnNmb3Jtc1RvU2NyZWVuS25vd24obGF5
ZXIpICYmIHRlc3RDb250ZW50UmVjdE9jY2x1ZGVkKGNvbnRlbnRSZWN0LCBsYXllci0+c2NyZWVu
U3BhY2VUcmFuc2Zvcm0oKSwgbV9yb290VGFyZ2V0UmVjdCwgbV9zdGFjay5sYXN0KCkub2NjbHVz
aW9uSW5TY3JlZW4pKSB7CiAgICAgICAgIGlmIChoYXNPY2NsdXNpb25Gcm9tT3V0c2lkZVRhcmdl
dFN1cmZhY2UpCiAgICAgICAgICAgICAqaGFzT2NjbHVzaW9uRnJvbU91dHNpZGVUYXJnZXRTdXJm
YWNlID0gdHJ1ZTsKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0zNzAsMTQgKzM3MCwxNCBAQCBz
dGF0aWMgaW5saW5lIEludFJlY3QgcmVjdFN1YnRyYWN0UmVnaW9uKGNvbnN0IEludFJlY3QmIHJl
Y3QsIGNvbnN0IFJlZ2lvbiYgcmVnaQogICAgIHJldHVybiByZWN0UmVnaW9uLmJvdW5kcygpOwog
fQogCi1zdGF0aWMgaW5saW5lIEludFJlY3QgY29tcHV0ZVVub2NjbHVkZWRDb250ZW50UmVjdChj
b25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXgm
IGNvbnRlbnRTcGFjZVRyYW5zZm9ybSwgY29uc3QgSW50UmVjdCYgc2Npc3NvclJlY3QsIGNvbnN0
IFJlZ2lvbiYgb2NjbHVzaW9uKQorc3RhdGljIGlubGluZSBJbnRSZWN0IGNvbXB1dGVVbm9jY2x1
ZGVkQ29udGVudFJlY3QoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IFdlYlRyYW5z
Zm9ybWF0aW9uTWF0cml4JiBjb250ZW50U3BhY2VUcmFuc2Zvcm0sIGNvbnN0IEludFJlY3QmIGNs
aXBSZWN0SW5UYXJnZXQsIGNvbnN0IFJlZ2lvbiYgb2NjbHVzaW9uKQogewogICAgIGlmICghY29u
dGVudFNwYWNlVHJhbnNmb3JtLmlzSW52ZXJ0aWJsZSgpKQogICAgICAgICByZXR1cm4gY29udGVu
dFJlY3Q7CiAKICAgICAvLyBUYWtlIHRoZSBlbmNsb3NpbmdJbnRSZWN0IGF0IGVhY2ggc3RlcCwg
YXMgd2Ugd2FudCB0byBjb250YWluIGFueSB1bm9jY2x1ZGVkIHBhcnRpYWwgcGl4ZWxzIGluIHRo
ZSByZXN1bHRpbmcgSW50UmVjdC4KICAgICBGbG9hdFJlY3QgdHJhbnNmb3JtZWRSZWN0ID0gQ0NN
YXRoVXRpbDo6bWFwQ2xpcHBlZFJlY3QoY29udGVudFNwYWNlVHJhbnNmb3JtLCBGbG9hdFJlY3Qo
Y29udGVudFJlY3QpKTsKLSAgICBJbnRSZWN0IHNocnVua1JlY3QgPSByZWN0U3VidHJhY3RSZWdp
b24oaW50ZXJzZWN0aW9uKGVuY2xvc2luZ0ludFJlY3QodHJhbnNmb3JtZWRSZWN0KSwgc2Npc3Nv
clJlY3QpLCBvY2NsdXNpb24pOworICAgIEludFJlY3Qgc2hydW5rUmVjdCA9IHJlY3RTdWJ0cmFj
dFJlZ2lvbihpbnRlcnNlY3Rpb24oZW5jbG9zaW5nSW50UmVjdCh0cmFuc2Zvcm1lZFJlY3QpLCBj
bGlwUmVjdEluVGFyZ2V0KSwgb2NjbHVzaW9uKTsKICAgICBJbnRSZWN0IHVub2NjbHVkZWRSZWN0
ID0gZW5jbG9zaW5nSW50UmVjdChDQ01hdGhVdGlsOjpwcm9qZWN0Q2xpcHBlZFJlY3QoY29udGVu
dFNwYWNlVHJhbnNmb3JtLmludmVyc2UoKSwgRmxvYXRSZWN0KHNocnVua1JlY3QpKSk7CiAgICAg
Ly8gVGhlIHJlY3QgYmFjayBpbiBjb250ZW50IHNwYWNlIGlzIGEgYm91bmRpbmcgYm94IGFuZCBt
YXkgZXh0ZW5kIG91dHNpZGUgb2YgdGhlIG9yaWdpbmFsIGNvbnRlbnRSZWN0LCBzbyBjbGFtcCBp
dCB0byB0aGUgY29udGVudFJlY3RCb3VuZHMuCiAgICAgcmV0dXJuIGludGVyc2VjdGlvbih1bm9j
Y2x1ZGVkUmVjdCwgY29udGVudFJlY3QpOwpAQCAtMzk5LDExICszOTksMTEgQEAgSW50UmVjdCBD
Q09jY2x1c2lvblRyYWNrZXJCYXNlPExheWVyVHlwZSwgUmVuZGVyU3VyZmFjZVR5cGU+Ojp1bm9j
Y2x1ZGVkQ29udGVudFIKIAogICAgIEludFJlY3QgdW5vY2NsdWRlZEluU2NyZWVuID0gY29udGVu
dFJlY3Q7CiAgICAgaWYgKGxheWVyVHJhbnNmb3Jtc1RvU2NyZWVuS25vd24obGF5ZXIpKQotICAg
ICAgICB1bm9jY2x1ZGVkSW5TY3JlZW4gPSBjb21wdXRlVW5vY2NsdWRlZENvbnRlbnRSZWN0KGNv
bnRlbnRSZWN0LCBsYXllci0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSwgbV9zY2lzc29yUmVjdElu
U2NyZWVuU3BhY2UsIG1fc3RhY2subGFzdCgpLm9jY2x1c2lvbkluU2NyZWVuKTsKKyAgICAgICAg
dW5vY2NsdWRlZEluU2NyZWVuID0gY29tcHV0ZVVub2NjbHVkZWRDb250ZW50UmVjdChjb250ZW50
UmVjdCwgbGF5ZXItPnNjcmVlblNwYWNlVHJhbnNmb3JtKCksIG1fcm9vdFRhcmdldFJlY3QsIG1f
c3RhY2subGFzdCgpLm9jY2x1c2lvbkluU2NyZWVuKTsKIAogICAgIEludFJlY3QgdW5vY2NsdWRl
ZEluVGFyZ2V0ID0gY29udGVudFJlY3Q7CiAgICAgaWYgKGxheWVyVHJhbnNmb3Jtc1RvVGFyZ2V0
S25vd24obGF5ZXIpKQotICAgICAgICB1bm9jY2x1ZGVkSW5UYXJnZXQgPSBjb21wdXRlVW5vY2Ns
dWRlZENvbnRlbnRSZWN0KGNvbnRlbnRSZWN0LCBsYXllci0+ZHJhd1RyYW5zZm9ybSgpLCBsYXll
clNjaXNzb3JSZWN0SW5UYXJnZXRTdXJmYWNlKGxheWVyKSwgbV9zdGFjay5sYXN0KCkub2NjbHVz
aW9uSW5UYXJnZXQpOworICAgICAgICB1bm9jY2x1ZGVkSW5UYXJnZXQgPSBjb21wdXRlVW5vY2Ns
dWRlZENvbnRlbnRSZWN0KGNvbnRlbnRSZWN0LCBsYXllci0+ZHJhd1RyYW5zZm9ybSgpLCBsYXll
ckNsaXBSZWN0SW5UYXJnZXQobGF5ZXIpLCBtX3N0YWNrLmxhc3QoKS5vY2NsdXNpb25JblRhcmdl
dCk7CiAKICAgICBpZiAoaGFzT2NjbHVzaW9uRnJvbU91dHNpZGVUYXJnZXRTdXJmYWNlKQogICAg
ICAgICAqaGFzT2NjbHVzaW9uRnJvbU91dHNpZGVUYXJnZXRTdXJmYWNlID0gKGludGVyc2VjdGlv
bih1bm9jY2x1ZGVkSW5TY3JlZW4sIHVub2NjbHVkZWRJblRhcmdldCkgIT0gdW5vY2NsdWRlZElu
VGFyZ2V0KTsKQEAgLTQ0Niw5ICs0NDYsOSBAQCBJbnRSZWN0IENDT2NjbHVzaW9uVHJhY2tlckJh
c2U8TGF5ZXJUeXBlLCBSZW5kZXJTdXJmYWNlVHlwZT46OnVub2NjbHVkZWRDb250cmlidQogICAg
IGlmIChzdXJmYWNlVHJhbnNmb3Jtc1RvU2NyZWVuS25vd24oc3VyZmFjZSkpIHsKICAgICAgICAg
aWYgKGhhc09jY2x1c2lvbikgewogICAgICAgICAgICAgY29uc3QgU3RhY2tPYmplY3QmIHNlY29u
ZExhc3QgPSBtX3N0YWNrW21fc3RhY2suc2l6ZSgpIC0gMl07Ci0gICAgICAgICAgICB1bm9jY2x1
ZGVkSW5TY3JlZW4gPSBjb21wdXRlVW5vY2NsdWRlZENvbnRlbnRSZWN0KGNvbnRlbnRSZWN0LCB0
cmFuc2Zvcm1Ub1NjcmVlbiwgbV9zY2lzc29yUmVjdEluU2NyZWVuU3BhY2UsIHNlY29uZExhc3Qu
b2NjbHVzaW9uSW5TY3JlZW4pOworICAgICAgICAgICAgdW5vY2NsdWRlZEluU2NyZWVuID0gY29t
cHV0ZVVub2NjbHVkZWRDb250ZW50UmVjdChjb250ZW50UmVjdCwgdHJhbnNmb3JtVG9TY3JlZW4s
IG1fcm9vdFRhcmdldFJlY3QsIHNlY29uZExhc3Qub2NjbHVzaW9uSW5TY3JlZW4pOwogICAgICAg
ICB9IGVsc2UKLSAgICAgICAgICAgIHVub2NjbHVkZWRJblNjcmVlbiA9IGNvbXB1dGVVbm9jY2x1
ZGVkQ29udGVudFJlY3QoY29udGVudFJlY3QsIHRyYW5zZm9ybVRvU2NyZWVuLCBtX3NjaXNzb3JS
ZWN0SW5TY3JlZW5TcGFjZSwgUmVnaW9uKCkpOworICAgICAgICAgICAgdW5vY2NsdWRlZEluU2Ny
ZWVuID0gY29tcHV0ZVVub2NjbHVkZWRDb250ZW50UmVjdChjb250ZW50UmVjdCwgdHJhbnNmb3Jt
VG9TY3JlZW4sIG1fcm9vdFRhcmdldFJlY3QsIFJlZ2lvbigpKTsKICAgICB9CiAKICAgICBJbnRS
ZWN0IHVub2NjbHVkZWRJblRhcmdldCA9IGNvbnRlbnRSZWN0OwpAQCAtNDY3LDcgKzQ2Nyw3IEBA
IEludFJlY3QgQ0NPY2NsdXNpb25UcmFja2VyQmFzZTxMYXllclR5cGUsIFJlbmRlclN1cmZhY2VU
eXBlPjo6dW5vY2NsdWRlZENvbnRyaWJ1CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIExheWVyVHlw
ZSwgdHlwZW5hbWUgUmVuZGVyU3VyZmFjZVR5cGU+Ci1JbnRSZWN0IENDT2NjbHVzaW9uVHJhY2tl
ckJhc2U8TGF5ZXJUeXBlLCBSZW5kZXJTdXJmYWNlVHlwZT46OmxheWVyU2Npc3NvclJlY3RJblRh
cmdldFN1cmZhY2UoY29uc3QgTGF5ZXJUeXBlKiBsYXllcikgY29uc3QKK0ludFJlY3QgQ0NPY2Ns
dXNpb25UcmFja2VyQmFzZTxMYXllclR5cGUsIFJlbmRlclN1cmZhY2VUeXBlPjo6bGF5ZXJDbGlw
UmVjdEluVGFyZ2V0KGNvbnN0IExheWVyVHlwZSogbGF5ZXIpIGNvbnN0CiB7CiAgICAgLy8gRklY
TUU6IHdlIGNvdWxkIHJlbW92ZSB0aGlzIGhlbHBlciBmdW5jdGlvbiwgYnV0IHVuaXQgdGVzdHMg
Y3VycmVudGx5IG92ZXJyaWRlIHRoaXMKICAgICAvLyAgICAgICAgZnVuY3Rpb24sIGFuZCB0aGV5
IG5lZWQgdG8gYmUgdmVyaWZpZWQvYWRqdXN0ZWQgYmVmb3JlIHRoaXMgY2FuIGJlIHJlbW92ZWQu
CkBAIC00NzUsNyArNDc1LDcgQEAgSW50UmVjdCBDQ09jY2x1c2lvblRyYWNrZXJCYXNlPExheWVy
VHlwZSwgUmVuZGVyU3VyZmFjZVR5cGU+OjpsYXllclNjaXNzb3JSZWN0SW4KIH0KIAogLy8gRGVj
bGFyZSB0aGUgcG9zc2libGUgZnVuY3Rpb25zIGhlcmUgZm9yIHRoZSBsaW5rZXIuCi10ZW1wbGF0
ZSBDQ09jY2x1c2lvblRyYWNrZXJCYXNlPExheWVyQ2hyb21pdW0sIFJlbmRlclN1cmZhY2VDaHJv
bWl1bT46OkNDT2NjbHVzaW9uVHJhY2tlckJhc2UoSW50UmVjdCBzY2lzc29yUmVjdEluU2NyZWVu
U3BhY2UsIGJvb2wgcmVjb3JkTWV0cmljc0ZvckZyYW1lKTsKK3RlbXBsYXRlIENDT2NjbHVzaW9u
VHJhY2tlckJhc2U8TGF5ZXJDaHJvbWl1bSwgUmVuZGVyU3VyZmFjZUNocm9taXVtPjo6Q0NPY2Ns
dXNpb25UcmFja2VyQmFzZShJbnRSZWN0IHJvb3RUYXJnZXRSZWN0LCBib29sIHJlY29yZE1ldHJp
Y3NGb3JGcmFtZSk7CiB0ZW1wbGF0ZSB2b2lkIENDT2NjbHVzaW9uVHJhY2tlckJhc2U8TGF5ZXJD
aHJvbWl1bSwgUmVuZGVyU3VyZmFjZUNocm9taXVtPjo6ZW50ZXJMYXllcihjb25zdCBDQ0xheWVy
SXRlcmF0b3JQb3NpdGlvbjxMYXllckNocm9taXVtPiYpOwogdGVtcGxhdGUgdm9pZCBDQ09jY2x1
c2lvblRyYWNrZXJCYXNlPExheWVyQ2hyb21pdW0sIFJlbmRlclN1cmZhY2VDaHJvbWl1bT46Omxl
YXZlTGF5ZXIoY29uc3QgQ0NMYXllckl0ZXJhdG9yUG9zaXRpb248TGF5ZXJDaHJvbWl1bT4mKTsK
IHRlbXBsYXRlIHZvaWQgQ0NPY2NsdXNpb25UcmFja2VyQmFzZTxMYXllckNocm9taXVtLCBSZW5k
ZXJTdXJmYWNlQ2hyb21pdW0+OjplbnRlclJlbmRlclRhcmdldChjb25zdCBMYXllckNocm9taXVt
KiBuZXdUYXJnZXQpOwpAQCAtNDg1LDkgKzQ4NSw5IEBAIHRlbXBsYXRlIHZvaWQgQ0NPY2NsdXNp
b25UcmFja2VyQmFzZTxMYXllckNocm9taXVtLCBSZW5kZXJTdXJmYWNlQ2hyb21pdW0+OjptYXJr
CiB0ZW1wbGF0ZSBib29sIENDT2NjbHVzaW9uVHJhY2tlckJhc2U8TGF5ZXJDaHJvbWl1bSwgUmVu
ZGVyU3VyZmFjZUNocm9taXVtPjo6b2NjbHVkZWQoY29uc3QgTGF5ZXJDaHJvbWl1bSosIGNvbnN0
IEludFJlY3QmIGNvbnRlbnRSZWN0LCBib29sKiBoYXNPY2NsdXNpb25Gcm9tT3V0c2lkZVRhcmdl
dFN1cmZhY2UpIGNvbnN0OwogdGVtcGxhdGUgSW50UmVjdCBDQ09jY2x1c2lvblRyYWNrZXJCYXNl
PExheWVyQ2hyb21pdW0sIFJlbmRlclN1cmZhY2VDaHJvbWl1bT46OnVub2NjbHVkZWRDb250ZW50
UmVjdChjb25zdCBMYXllckNocm9taXVtKiwgY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGJv
b2wqIGhhc09jY2x1c2lvbkZyb21PdXRzaWRlVGFyZ2V0U3VyZmFjZSkgY29uc3Q7CiB0ZW1wbGF0
ZSBJbnRSZWN0IENDT2NjbHVzaW9uVHJhY2tlckJhc2U8TGF5ZXJDaHJvbWl1bSwgUmVuZGVyU3Vy
ZmFjZUNocm9taXVtPjo6dW5vY2NsdWRlZENvbnRyaWJ1dGluZ1N1cmZhY2VDb250ZW50UmVjdChj
b25zdCBMYXllckNocm9taXVtKiwgYm9vbCBmb3JSZXBsaWNhLCBjb25zdCBJbnRSZWN0JiBjb250
ZW50UmVjdCwgYm9vbCogaGFzT2NjbHVzaW9uRnJvbU91dHNpZGVUYXJnZXRTdXJmYWNlKSBjb25z
dDsKLXRlbXBsYXRlIEludFJlY3QgQ0NPY2NsdXNpb25UcmFja2VyQmFzZTxMYXllckNocm9taXVt
LCBSZW5kZXJTdXJmYWNlQ2hyb21pdW0+OjpsYXllclNjaXNzb3JSZWN0SW5UYXJnZXRTdXJmYWNl
KGNvbnN0IExheWVyQ2hyb21pdW0qKSBjb25zdDsKK3RlbXBsYXRlIEludFJlY3QgQ0NPY2NsdXNp
b25UcmFja2VyQmFzZTxMYXllckNocm9taXVtLCBSZW5kZXJTdXJmYWNlQ2hyb21pdW0+OjpsYXll
ckNsaXBSZWN0SW5UYXJnZXQoY29uc3QgTGF5ZXJDaHJvbWl1bSopIGNvbnN0OwogCi10ZW1wbGF0
ZSBDQ09jY2x1c2lvblRyYWNrZXJCYXNlPENDTGF5ZXJJbXBsLCBDQ1JlbmRlclN1cmZhY2U+OjpD
Q09jY2x1c2lvblRyYWNrZXJCYXNlKEludFJlY3Qgc2Npc3NvclJlY3RJblNjcmVlblNwYWNlLCBi
b29sIHJlY29yZE1ldHJpY3NGb3JGcmFtZSk7Cit0ZW1wbGF0ZSBDQ09jY2x1c2lvblRyYWNrZXJC
YXNlPENDTGF5ZXJJbXBsLCBDQ1JlbmRlclN1cmZhY2U+OjpDQ09jY2x1c2lvblRyYWNrZXJCYXNl
KEludFJlY3Qgcm9vdFRhcmdldFJlY3QsIGJvb2wgcmVjb3JkTWV0cmljc0ZvckZyYW1lKTsKIHRl
bXBsYXRlIHZvaWQgQ0NPY2NsdXNpb25UcmFja2VyQmFzZTxDQ0xheWVySW1wbCwgQ0NSZW5kZXJT
dXJmYWNlPjo6ZW50ZXJMYXllcihjb25zdCBDQ0xheWVySXRlcmF0b3JQb3NpdGlvbjxDQ0xheWVy
SW1wbD4mKTsKIHRlbXBsYXRlIHZvaWQgQ0NPY2NsdXNpb25UcmFja2VyQmFzZTxDQ0xheWVySW1w
bCwgQ0NSZW5kZXJTdXJmYWNlPjo6bGVhdmVMYXllcihjb25zdCBDQ0xheWVySXRlcmF0b3JQb3Np
dGlvbjxDQ0xheWVySW1wbD4mKTsKIHRlbXBsYXRlIHZvaWQgQ0NPY2NsdXNpb25UcmFja2VyQmFz
ZTxDQ0xheWVySW1wbCwgQ0NSZW5kZXJTdXJmYWNlPjo6ZW50ZXJSZW5kZXJUYXJnZXQoY29uc3Qg
Q0NMYXllckltcGwqIG5ld1RhcmdldCk7CkBAIC00OTcsNyArNDk3LDcgQEAgdGVtcGxhdGUgdm9p
ZCBDQ09jY2x1c2lvblRyYWNrZXJCYXNlPENDTGF5ZXJJbXBsLCBDQ1JlbmRlclN1cmZhY2U+Ojpt
YXJrT2NjbHVkZWQKIHRlbXBsYXRlIGJvb2wgQ0NPY2NsdXNpb25UcmFja2VyQmFzZTxDQ0xheWVy
SW1wbCwgQ0NSZW5kZXJTdXJmYWNlPjo6b2NjbHVkZWQoY29uc3QgQ0NMYXllckltcGwqLCBjb25z
dCBJbnRSZWN0JiBjb250ZW50UmVjdCwgYm9vbCogaGFzT2NjbHVzaW9uRnJvbU91dHNpZGVUYXJn
ZXRTdXJmYWNlKSBjb25zdDsKIHRlbXBsYXRlIEludFJlY3QgQ0NPY2NsdXNpb25UcmFja2VyQmFz
ZTxDQ0xheWVySW1wbCwgQ0NSZW5kZXJTdXJmYWNlPjo6dW5vY2NsdWRlZENvbnRlbnRSZWN0KGNv
bnN0IENDTGF5ZXJJbXBsKiwgY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGJvb2wqIGhhc09j
Y2x1c2lvbkZyb21PdXRzaWRlVGFyZ2V0U3VyZmFjZSkgY29uc3Q7CiB0ZW1wbGF0ZSBJbnRSZWN0
IENDT2NjbHVzaW9uVHJhY2tlckJhc2U8Q0NMYXllckltcGwsIENDUmVuZGVyU3VyZmFjZT46OnVu
b2NjbHVkZWRDb250cmlidXRpbmdTdXJmYWNlQ29udGVudFJlY3QoY29uc3QgQ0NMYXllckltcGwq
LCBib29sIGZvclJlcGxpY2EsIGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBib29sKiBoYXNP
Y2NsdXNpb25Gcm9tT3V0c2lkZVRhcmdldFN1cmZhY2UpIGNvbnN0OwotdGVtcGxhdGUgSW50UmVj
dCBDQ09jY2x1c2lvblRyYWNrZXJCYXNlPENDTGF5ZXJJbXBsLCBDQ1JlbmRlclN1cmZhY2U+Ojps
YXllclNjaXNzb3JSZWN0SW5UYXJnZXRTdXJmYWNlKGNvbnN0IENDTGF5ZXJJbXBsKikgY29uc3Q7
Cit0ZW1wbGF0ZSBJbnRSZWN0IENDT2NjbHVzaW9uVHJhY2tlckJhc2U8Q0NMYXllckltcGwsIEND
UmVuZGVyU3VyZmFjZT46OmxheWVyQ2xpcFJlY3RJblRhcmdldChjb25zdCBDQ0xheWVySW1wbCop
IGNvbnN0OwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDT2NjbHVzaW9uVHJhY2tlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NPY2NsdXNp
b25UcmFja2VyLmgKaW5kZXggYTYwMWI2ZDM5NTFhMTRmZWIzYWVkMzMxYzU1NDM5YjYwN2Q5NDc0
YS4uZDJmNGEwMGRjYjYyZjczMzM4OWM0YmRiMGRlZmZhNjgxMGQ3ODFhOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NPY2NsdXNpb25U
cmFja2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NPY2NsdXNpb25UcmFja2VyLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgdGVtcGxhdGU8dHlwZW5h
bWUgTGF5ZXJUeXBlLCB0eXBlbmFtZSBSZW5kZXJTdXJmYWNlVHlwZT4KIGNsYXNzIENDT2NjbHVz
aW9uVHJhY2tlckJhc2UgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENDT2NjbHVzaW9uVHJh
Y2tlckJhc2UpOwogcHVibGljOgotICAgIENDT2NjbHVzaW9uVHJhY2tlckJhc2UoSW50UmVjdCBz
Y2lzc29yUmVjdEluU2NyZWVuU3BhY2UsIGJvb2wgcmVjb3JkTWV0cmljc0ZvckZyYW1lKTsKKyAg
ICBDQ09jY2x1c2lvblRyYWNrZXJCYXNlKEludFJlY3Qgcm9vdFRhcmdldFJlY3QsIGJvb2wgcmVj
b3JkTWV0cmljc0ZvckZyYW1lKTsKIAogICAgIC8vIENhbGxlZCBhdCB0aGUgYmVnaW5uaW5nIG9m
IGVhY2ggc3RlcCBpbiB0aGUgQ0NMYXllckl0ZXJhdG9yJ3MgZnJvbnQtdG8tYmFjayB0cmF2ZXJz
YWwuCiAgICAgdm9pZCBlbnRlckxheWVyKGNvbnN0IENDTGF5ZXJJdGVyYXRvclBvc2l0aW9uPExh
eWVyVHlwZT4mKTsKQEAgLTY2LDcgKzY2LDcgQEAgcHVibGljOgogICAgIENDT3ZlcmRyYXdNZXRy
aWNzJiBvdmVyZHJhd01ldHJpY3MoKSBjb25zdCB7IHJldHVybiAqbV9vdmVyZHJhd01ldHJpY3Mu
Z2V0KCk7IH0KIAogICAgIC8vIEdpdmVzIHRoZSByZWdpb24gb2YgdGhlIHNjcmVlbiB0aGF0IGlz
IG5vdCBvY2NsdWRlZCBieSBzb21ldGhpbmcgb3BhcXVlLgotICAgIFJlZ2lvbiBjb21wdXRlVmlz
aWJsZVJlZ2lvbkluU2NyZWVuKCkgY29uc3QgeyByZXR1cm4gc3VidHJhY3QoUmVnaW9uKG1fc2Np
c3NvclJlY3RJblNjcmVlblNwYWNlKSwgbV9zdGFjay5sYXN0KCkub2NjbHVzaW9uSW5TY3JlZW4p
OyB9CisgICAgUmVnaW9uIGNvbXB1dGVWaXNpYmxlUmVnaW9uSW5TY3JlZW4oKSBjb25zdCB7IHJl
dHVybiBzdWJ0cmFjdChSZWdpb24obV9yb290VGFyZ2V0UmVjdCksIG1fc3RhY2subGFzdCgpLm9j
Y2x1c2lvbkluU2NyZWVuKTsgfQogCiAgICAgdm9pZCBzZXRNaW5pbXVtVHJhY2tpbmdTaXplKGNv
bnN0IEludFNpemUmIHNpemUpIHsgbV9taW5pbXVtVHJhY2tpbmdTaXplID0gc2l6ZTsgfQogCkBA
IC05Miw3ICs5Miw3IEBAIHByb3RlY3RlZDoKICAgICBWZWN0b3I8U3RhY2tPYmplY3QsIDE+IG1f
c3RhY2s7CiAKICAgICAvLyBBbGxvdyB0ZXN0cyB0byBvdmVycmlkZSB0aGlzLgotICAgIHZpcnR1
YWwgSW50UmVjdCBsYXllclNjaXNzb3JSZWN0SW5UYXJnZXRTdXJmYWNlKGNvbnN0IExheWVyVHlw
ZSopIGNvbnN0OworICAgIHZpcnR1YWwgSW50UmVjdCBsYXllckNsaXBSZWN0SW5UYXJnZXQoY29u
c3QgTGF5ZXJUeXBlKikgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgLy8gQ2FsbGVkIHdoZW4gdmlz
aXRpbmcgYSBsYXllciByZXByZXNlbnRpbmcgaXRzZWxmLiBJZiB0aGUgdGFyZ2V0IHdhcyBub3Qg
YWxyZWFkeSBjdXJyZW50LCB0aGVuIHRoaXMgaW5kaWNhdGVzIHdlIGhhdmUgZW50ZXJlZCBhIG5l
dyBzdXJmYWNlIHN1YnRyZWUuCkBAIC0xMDksNyArMTA5LDcgQEAgcHJpdmF0ZToKICAgICAvLyBB
ZGQgdGhlIGxheWVyJ3Mgb2NjbHVzaW9uIHRvIHRoZSB0cmFja2VkIHN0YXRlLgogICAgIHZvaWQg
bWFya09jY2x1ZGVkQmVoaW5kTGF5ZXIoY29uc3QgTGF5ZXJUeXBlKik7CiAKLSAgICBJbnRSZWN0
IG1fc2Npc3NvclJlY3RJblNjcmVlblNwYWNlOworICAgIEludFJlY3QgbV9yb290VGFyZ2V0UmVj
dDsKICAgICBPd25QdHI8Q0NPdmVyZHJhd01ldHJpY3M+IG1fb3ZlcmRyYXdNZXRyaWNzOwogICAg
IEludFNpemUgbV9taW5pbXVtVHJhY2tpbmdTaXplOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0NDT2NjbHVzaW9uVHJhY2tlclRlc3QuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9DQ09jY2x1c2lvblRyYWNrZXJUZXN0LmNwcAppbmRleCA3NDQz
YWJhOWFjODQyMmE0N2Y3MzVkYzI1MDQ4OGRmZjJiMTc0NzE1Li45ZDUxYzk5NzAyMGY2MzZiZjQy
ZWQxMjEzZDQ1N2RkN2YyZWYxZTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL0NDT2NjbHVzaW9uVHJhY2tlclRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvQ0NPY2NsdXNpb25UcmFja2VyVGVzdC5jcHAKQEAgLTEwMiwyMyArMTAyLDIz
IEBAIHByaXZhdGU6CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBMYXllclR5cGUsIHR5cGVuYW1l
IFJlbmRlclN1cmZhY2VUeXBlPgotY2xhc3MgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhTY2lz
c29yIDogcHVibGljIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJCYXNlPExheWVyVHlwZSwgUmVuZGVy
U3VyZmFjZVR5cGU+IHsKK2NsYXNzIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoQ2xpcCA6IHB1
YmxpYyBUZXN0Q0NPY2NsdXNpb25UcmFja2VyQmFzZTxMYXllclR5cGUsIFJlbmRlclN1cmZhY2VU
eXBlPiB7CiBwdWJsaWM6Ci0gICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhTY2lzc29yKElu
dFJlY3Qgc2NyZWVuU2Npc3NvclJlY3QsIGJvb2wgcmVjb3JkTWV0cmljc0ZvckZyYW1lID0gZmFs
c2UpCi0gICAgICAgIDogVGVzdENDT2NjbHVzaW9uVHJhY2tlckJhc2U8TGF5ZXJUeXBlLCBSZW5k
ZXJTdXJmYWNlVHlwZT4oc2NyZWVuU2Npc3NvclJlY3QsIHJlY29yZE1ldHJpY3NGb3JGcmFtZSkK
LSAgICAgICAgLCBtX292ZXJyaWRlTGF5ZXJTY2lzc29yUmVjdChmYWxzZSkKKyAgICBUZXN0Q0NP
Y2NsdXNpb25UcmFja2VyV2l0aENsaXAoSW50UmVjdCB2aWV3cG9ydFJlY3QsIGJvb2wgcmVjb3Jk
TWV0cmljc0ZvckZyYW1lID0gZmFsc2UpCisgICAgICAgIDogVGVzdENDT2NjbHVzaW9uVHJhY2tl
ckJhc2U8TGF5ZXJUeXBlLCBSZW5kZXJTdXJmYWNlVHlwZT4odmlld3BvcnRSZWN0LCByZWNvcmRN
ZXRyaWNzRm9yRnJhbWUpCisgICAgICAgICwgbV9vdmVycmlkZUxheWVyQ2xpcFJlY3QoZmFsc2Up
CiAgICAgewogICAgIH0KIAotICAgIHZvaWQgc2V0TGF5ZXJTY2lzc29yUmVjdChjb25zdCBJbnRS
ZWN0JiByZWN0KSB7IG1fb3ZlcnJpZGVMYXllclNjaXNzb3JSZWN0ID0gdHJ1ZTsgbV9sYXllclNj
aXNzb3JSZWN0ID0gcmVjdDt9Ci0gICAgdm9pZCB1c2VEZWZhdWx0TGF5ZXJTY2lzc29yUmVjdCgp
IHsgbV9vdmVycmlkZUxheWVyU2Npc3NvclJlY3QgPSBmYWxzZTsgfQorICAgIHZvaWQgc2V0TGF5
ZXJDbGlwUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KSB7IG1fb3ZlcnJpZGVMYXllckNsaXBSZWN0
ID0gdHJ1ZTsgbV9sYXllckNsaXBSZWN0ID0gcmVjdDt9CisgICAgdm9pZCB1c2VEZWZhdWx0TGF5
ZXJDbGlwUmVjdCgpIHsgbV9vdmVycmlkZUxheWVyQ2xpcFJlY3QgPSBmYWxzZTsgfQogCiBwcm90
ZWN0ZWQ6Ci0gICAgdmlydHVhbCBJbnRSZWN0IGxheWVyU2Npc3NvclJlY3RJblRhcmdldFN1cmZh
Y2UoY29uc3QgTGF5ZXJUeXBlKiBsYXllcikgY29uc3QgeyByZXR1cm4gbV9vdmVycmlkZUxheWVy
U2Npc3NvclJlY3QgPyBtX2xheWVyU2Npc3NvclJlY3QgOiBDQ09jY2x1c2lvblRyYWNrZXJCYXNl
PExheWVyVHlwZSwgUmVuZGVyU3VyZmFjZVR5cGU+OjpsYXllclNjaXNzb3JSZWN0SW5UYXJnZXRT
dXJmYWNlKGxheWVyKTsgfQorICAgIHZpcnR1YWwgSW50UmVjdCBsYXllckNsaXBSZWN0SW5UYXJn
ZXQoY29uc3QgTGF5ZXJUeXBlKiBsYXllcikgY29uc3QgeyByZXR1cm4gbV9vdmVycmlkZUxheWVy
Q2xpcFJlY3QgPyBtX2xheWVyQ2xpcFJlY3QgOiBDQ09jY2x1c2lvblRyYWNrZXJCYXNlPExheWVy
VHlwZSwgUmVuZGVyU3VyZmFjZVR5cGU+OjpsYXllckNsaXBSZWN0SW5UYXJnZXQobGF5ZXIpOyB9
CiAKIHByaXZhdGU6Ci0gICAgYm9vbCBtX292ZXJyaWRlTGF5ZXJTY2lzc29yUmVjdDsKLSAgICBJ
bnRSZWN0IG1fbGF5ZXJTY2lzc29yUmVjdDsKKyAgICBib29sIG1fb3ZlcnJpZGVMYXllckNsaXBS
ZWN0OworICAgIEludFJlY3QgbV9sYXllckNsaXBSZWN0OwogfTsKIAogc3RydWN0IENDT2NjbHVz
aW9uVHJhY2tlclRlc3RNYWluVGhyZWFkVHlwZXMgewpAQCAtNDQwLDggKzQ0MCw4IEBAIHByb3Rl
Y3RlZDoKICAgICAgICAgdHlwZW5hbWUgVHlwZXM6OkNvbnRlbnRMYXllclR5cGUqIGxheWVyID0g
dGhpcy0+Y3JlYXRlRHJhd2luZ0xheWVyKHBhcmVudCwgdGhpcy0+aWRlbnRpdHlNYXRyaXgsIEZs
b2F0UG9pbnQoMzAsIDMwKSwgSW50U2l6ZSg1MDAsIDUwMCksIHRydWUpOwogICAgICAgICB0aGlz
LT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCi0gICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJX
aXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVu
ZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKLSAg
ICAgICAgb2NjbHVzaW9uLnNldExheWVyU2Npc3NvclJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAx
MDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoQ2xpcDx0eXBlbmFtZSBU
eXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1
c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgb2NjbHVzaW9uLnNldExh
eWVyQ2xpcFJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAKICAgICAgICAgdGhpcy0+
dmlzaXRMYXllcihsYXllciwgb2NjbHVzaW9uKTsKICAgICAgICAgdGhpcy0+ZW50ZXJMYXllcihw
YXJlbnQsIG9jY2x1c2lvbik7CkBAIC00NTcsMTMgKzQ1NywxMyBAQCBwcm90ZWN0ZWQ6CiAgICAg
ICAgIEVYUEVDVF9GQUxTRShvY2NsdXNpb24ub2NjbHVkZWQocGFyZW50LCBJbnRSZWN0KDMxLCAz
MCwgNzAsIDcwKSkpOwogICAgICAgICBFWFBFQ1RfRkFMU0Uob2NjbHVzaW9uLm9jY2x1ZGVkKHBh
cmVudCwgSW50UmVjdCgzMCwgMzEsIDcwLCA3MCkpKTsKIAotICAgICAgICBvY2NsdXNpb24udXNl
RGVmYXVsdExheWVyU2Npc3NvclJlY3QoKTsKKyAgICAgICAgb2NjbHVzaW9uLnVzZURlZmF1bHRM
YXllckNsaXBSZWN0KCk7CiAgICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi5vY2NsdWRlZChw
YXJlbnQsIEludFJlY3QoMzAsIDMwLCA3MCwgNzApKSk7CiAgICAgICAgIEVYUEVDVF9GQUxTRShv
Y2NsdXNpb24ub2NjbHVkZWQocGFyZW50LCBJbnRSZWN0KDI5LCAzMCwgNzAsIDcwKSkpOwogICAg
ICAgICBFWFBFQ1RfRkFMU0Uob2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50UmVjdCgzMCwg
MjksIDcwLCA3MCkpKTsKICAgICAgICAgRVhQRUNUX1RSVUUob2NjbHVzaW9uLm9jY2x1ZGVkKHBh
cmVudCwgSW50UmVjdCgzMSwgMzAsIDcwLCA3MCkpKTsKICAgICAgICAgRVhQRUNUX1RSVUUob2Nj
bHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50UmVjdCgzMCwgMzEsIDcwLCA3MCkpKTsKLSAgICAg
ICAgb2NjbHVzaW9uLnNldExheWVyU2Npc3NvclJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAw
KSk7CisgICAgICAgIG9jY2x1c2lvbi5zZXRMYXllckNsaXBSZWN0KEludFJlY3QoMCwgMCwgMTAw
MCwgMTAwMCkpOwogCiAgICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29u
dGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDMwLCAzMCwgNzAsIDcwKSkuaXNFbXB0eSgpKTsKICAg
ICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMjksIDMwLCAxLCA3MCksIG9jY2x1c2lv
bi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDI5LCAzMCwgNzAsIDcwKSkp
OwpAQCAtNDkzLDggKzQ5Myw4IEBAIHByb3RlY3RlZDoKICAgICAgICAgdHlwZW5hbWUgVHlwZXM6
OkNvbnRlbnRMYXllclR5cGUqIGxheWVyID0gdGhpcy0+Y3JlYXRlRHJhd2luZ0xheWVyKHBhcmVu
dCwgbGF5ZXJUcmFuc2Zvcm0sIEZsb2F0UG9pbnQoMzAsIDMwKSwgSW50U2l6ZSg1MDAsIDUwMCks
IHRydWUpOwogICAgICAgICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCi0gICAgICAgIFRl
c3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBl
LCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAs
IDAsIDEwMDAsIDEwMDApKTsKLSAgICAgICAgb2NjbHVzaW9uLnNldExheWVyU2Npc3NvclJlY3Qo
SW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNr
ZXJXaXRoQ2xpcDx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVu
ZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAg
ICAgICAgb2NjbHVzaW9uLnNldExheWVyQ2xpcFJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAw
KSk7CiAKICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihsYXllciwgb2NjbHVzaW9uKTsKICAgICAg
ICAgdGhpcy0+ZW50ZXJMYXllcihwYXJlbnQsIG9jY2x1c2lvbik7CkBAIC01MTAsMTMgKzUxMCwx
MyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIEVYUEVDVF9GQUxTRShvY2NsdXNpb24ub2NjbHVkZWQo
cGFyZW50LCBJbnRSZWN0KDMxLCAzMCwgNzAsIDcwKSkpOwogICAgICAgICBFWFBFQ1RfRkFMU0Uo
b2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50UmVjdCgzMCwgMzEsIDcwLCA3MCkpKTsKIAot
ICAgICAgICBvY2NsdXNpb24udXNlRGVmYXVsdExheWVyU2Npc3NvclJlY3QoKTsKKyAgICAgICAg
b2NjbHVzaW9uLnVzZURlZmF1bHRMYXllckNsaXBSZWN0KCk7CiAgICAgICAgIEVYUEVDVF9UUlVF
KG9jY2x1c2lvbi5vY2NsdWRlZChwYXJlbnQsIEludFJlY3QoMzAsIDMwLCA3MCwgNzApKSk7CiAg
ICAgICAgIEVYUEVDVF9GQUxTRShvY2NsdXNpb24ub2NjbHVkZWQocGFyZW50LCBJbnRSZWN0KDI5
LCAzMCwgNzAsIDcwKSkpOwogICAgICAgICBFWFBFQ1RfRkFMU0Uob2NjbHVzaW9uLm9jY2x1ZGVk
KHBhcmVudCwgSW50UmVjdCgzMCwgMjksIDcwLCA3MCkpKTsKICAgICAgICAgRVhQRUNUX1RSVUUo
b2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50UmVjdCgzMSwgMzAsIDcwLCA3MCkpKTsKICAg
ICAgICAgRVhQRUNUX1RSVUUob2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50UmVjdCgzMCwg
MzEsIDcwLCA3MCkpKTsKLSAgICAgICAgb2NjbHVzaW9uLnNldExheWVyU2Npc3NvclJlY3QoSW50
UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIG9jY2x1c2lvbi5zZXRMYXllckNsaXBS
ZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwogCiAgICAgICAgIEVYUEVDVF9UUlVFKG9j
Y2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDMwLCAzMCwgNzAs
IDcwKSkuaXNFbXB0eSgpKTsKICAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMjks
IDMwLCAxLCA3MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRS
ZWN0KDI5LCAzMCwgNzAsIDcwKSkpOwpAQCAtNTQ0LDggKzU0NCw4IEBAIHByb3RlY3RlZDoKICAg
ICAgICAgdHlwZW5hbWUgVHlwZXM6OkNvbnRlbnRMYXllclR5cGUqIGxheWVyID0gdGhpcy0+Y3Jl
YXRlRHJhd2luZ0xheWVyKHBhcmVudCwgbGF5ZXJUcmFuc2Zvcm0sIEZsb2F0UG9pbnQoMzAsIDMw
KSwgSW50U2l6ZSg1MDAsIDUwMCksIHRydWUpOwogICAgICAgICB0aGlzLT5jYWxjRHJhd0V0Yyhw
YXJlbnQpOwogCi0gICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoU2Npc3Nvcjx0eXBl
bmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+
IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKLSAgICAgICAgb2NjbHVzaW9u
LnNldExheWVyU2Npc3NvclJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAg
IFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoQ2xpcDx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBl
LCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAs
IDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgb2NjbHVzaW9uLnNldExheWVyQ2xpcFJlY3QoSW50
UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAKICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihsYXll
ciwgb2NjbHVzaW9uKTsKICAgICAgICAgdGhpcy0+ZW50ZXJMYXllcihwYXJlbnQsIG9jY2x1c2lv
bik7CkBAIC01NjEsMTMgKzU2MSwxMyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIEVYUEVDVF9GQUxT
RShvY2NsdXNpb24ub2NjbHVkZWQocGFyZW50LCBJbnRSZWN0KDUxLCA1MCwgNTAsIDUwKSkpOwog
ICAgICAgICBFWFBFQ1RfRkFMU0Uob2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50UmVjdCg1
MCwgNTEsIDUwLCA1MCkpKTsKIAotICAgICAgICBvY2NsdXNpb24udXNlRGVmYXVsdExheWVyU2Np
c3NvclJlY3QoKTsKKyAgICAgICAgb2NjbHVzaW9uLnVzZURlZmF1bHRMYXllckNsaXBSZWN0KCk7
CiAgICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi5vY2NsdWRlZChwYXJlbnQsIEludFJlY3Qo
NTAsIDUwLCA1MCwgNTApKSk7CiAgICAgICAgIEVYUEVDVF9GQUxTRShvY2NsdXNpb24ub2NjbHVk
ZWQocGFyZW50LCBJbnRSZWN0KDQ5LCA1MCwgNTAsIDUwKSkpOwogICAgICAgICBFWFBFQ1RfRkFM
U0Uob2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50UmVjdCg1MCwgNDksIDUwLCA1MCkpKTsK
ICAgICAgICAgRVhQRUNUX1RSVUUob2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50UmVjdCg1
MSwgNTAsIDUwLCA1MCkpKTsKICAgICAgICAgRVhQRUNUX1RSVUUob2NjbHVzaW9uLm9jY2x1ZGVk
KHBhcmVudCwgSW50UmVjdCg1MCwgNTEsIDUwLCA1MCkpKTsKLSAgICAgICAgb2NjbHVzaW9uLnNl
dExheWVyU2Npc3NvclJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIG9j
Y2x1c2lvbi5zZXRMYXllckNsaXBSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwogCiAg
ICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50
LCBJbnRSZWN0KDUwLCA1MCwgNTAsIDUwKSkuaXNFbXB0eSgpKTsKICAgICAgICAgRVhQRUNUX0lO
VF9SRUNUX0VRKEludFJlY3QoNDksIDUwLCAxLCA1MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29u
dGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDQ5LCA1MCwgNTAsIDUwKSkpOwpAQCAtNTc5LDcgKzU3
OSw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoNTAs
IDEwMCwgNTAsIDEpLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50
UmVjdCg1MCwgNTEsIDUwLCA1MCkpKTsKICAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJl
Y3QoNDksIDUxLCA1MCwgNTApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVu
dCwgSW50UmVjdCg0OSwgNTEsIDUwLCA1MCkpKTsKIAotICAgICAgICBvY2NsdXNpb24udXNlRGVm
YXVsdExheWVyU2Npc3NvclJlY3QoKTsKKyAgICAgICAgb2NjbHVzaW9uLnVzZURlZmF1bHRMYXll
ckNsaXBSZWN0KCk7CiAgICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29u
dGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDUwLCA1MCwgNTAsIDUwKSkuaXNFbXB0eSgpKTsKICAg
ICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoNDksIDUwLCAxLCA1MCksIG9jY2x1c2lv
bi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDQ5LCA1MCwgNTAsIDUwKSkp
OwogICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg0OSwgNDksIDUwLCA1MCksIG9j
Y2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDQ5LCA0OSwgNTAs
IDUwKSkpOwpAQCAtNTg5LDcgKzU4OSw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgRVhQRUNUX1RS
VUUob2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJlY3QoNTEsIDUx
LCA1MCwgNTApKS5pc0VtcHR5KCkpOwogICAgICAgICBFWFBFQ1RfVFJVRShvY2NsdXNpb24udW5v
Y2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCg1MCwgNTEsIDUwLCA1MCkpLmlzRW1w
dHkoKSk7CiAgICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDQ5LCA1MSwgMSwgNDkp
LCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCg0OSwgNTEs
IDUwLCA1MCkpKTsKLSAgICAgICAgb2NjbHVzaW9uLnNldExheWVyU2Npc3NvclJlY3QoSW50UmVj
dCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIG9jY2x1c2lvbi5zZXRMYXllckNsaXBSZWN0
KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwogICAgIH0KIH07CiAKQEAgLTYxMSw4ICs2MTEs
OCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHR5cGVuYW1lIFR5cGVzOjpDb250ZW50TGF5ZXJUeXBl
KiBsYXllciA9IHRoaXMtPmNyZWF0ZURyYXdpbmdMYXllcihjaGlsZCwgdGhpcy0+aWRlbnRpdHlN
YXRyaXgsIEZsb2F0UG9pbnQoMTAsIDEwKSwgSW50U2l6ZSg1MDAsIDUwMCksIHRydWUpOwogICAg
ICAgICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCi0gICAgICAgIFRlc3RDQ09jY2x1c2lv
blRyYWNrZXJXaXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBU
eXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEw
MDApKTsKLSAgICAgICAgb2NjbHVzaW9uLnNldExheWVyU2Npc3NvclJlY3QoSW50UmVjdCgwLCAw
LCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoQ2xpcDx0
eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5
cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgb2NjbHVz
aW9uLnNldExheWVyQ2xpcFJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAKICAgICAg
ICAgdGhpcy0+dmlzaXRMYXllcihsYXllciwgb2NjbHVzaW9uKTsKICAgICAgICAgdGhpcy0+ZW50
ZXJDb250cmlidXRpbmdTdXJmYWNlKGNoaWxkLCBvY2NsdXNpb24pOwpAQCAtNjM2LDEzICs2MzYs
MTMgQEAgcHJvdGVjdGVkOgogICAgICAgICBFWFBFQ1RfRkFMU0Uob2NjbHVzaW9uLm9jY2x1ZGVk
KHBhcmVudCwgSW50UmVjdCgzMSwgNDAsIDcwLCA2MCkpKTsKICAgICAgICAgRVhQRUNUX0ZBTFNF
KG9jY2x1c2lvbi5vY2NsdWRlZChwYXJlbnQsIEludFJlY3QoMzAsIDQxLCA3MCwgNjApKSk7CiAK
LSAgICAgICAgb2NjbHVzaW9uLnVzZURlZmF1bHRMYXllclNjaXNzb3JSZWN0KCk7CisgICAgICAg
IG9jY2x1c2lvbi51c2VEZWZhdWx0TGF5ZXJDbGlwUmVjdCgpOwogICAgICAgICBFWFBFQ1RfVFJV
RShvY2NsdXNpb24ub2NjbHVkZWQocGFyZW50LCBJbnRSZWN0KDMwLCA0MCwgNzAsIDYwKSkpOwog
ICAgICAgICBFWFBFQ1RfRkFMU0Uob2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50UmVjdCgy
OSwgNDAsIDcwLCA2MCkpKTsKICAgICAgICAgRVhQRUNUX0ZBTFNFKG9jY2x1c2lvbi5vY2NsdWRl
ZChwYXJlbnQsIEludFJlY3QoMzAsIDM5LCA3MCwgNjApKSk7CiAgICAgICAgIEVYUEVDVF9UUlVF
KG9jY2x1c2lvbi5vY2NsdWRlZChwYXJlbnQsIEludFJlY3QoMzEsIDQwLCA3MCwgNjApKSk7CiAg
ICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi5vY2NsdWRlZChwYXJlbnQsIEludFJlY3QoMzAs
IDQxLCA3MCwgNjApKSk7Ci0gICAgICAgIG9jY2x1c2lvbi5zZXRMYXllclNjaXNzb3JSZWN0KElu
dFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJDbGlw
UmVjdChJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKIAogCiAgICAgICAgIC8qIEp1c3RpZmlj
YXRpb24gZm9yIHRoZSBhYm92ZSBvY2NsdXNpb24gZnJvbSB8bGF5ZXJ8OgpAQCAtNjkzLDggKzY5
Myw4IEBAIHByb3RlY3RlZDoKICAgICAgICAgdHlwZW5hbWUgVHlwZXM6OkNvbnRlbnRMYXllclR5
cGUqIGNoaWxkMiA9IHRoaXMtPmNyZWF0ZURyYXdpbmdMYXllcihwYXJlbnQsIHRoaXMtPmlkZW50
aXR5TWF0cml4LCBGbG9hdFBvaW50KDMwLCAzMCksIEludFNpemUoNjAsIDIwKSwgdHJ1ZSk7CiAg
ICAgICAgIHRoaXMtPmNhbGNEcmF3RXRjKHBhcmVudCk7CiAKLSAgICAgICAgVGVzdENDT2NjbHVz
aW9uVHJhY2tlcldpdGhTY2lzc29yPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1l
IFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwg
MTAwMCkpOwotICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJTY2lzc29yUmVjdChJbnRSZWN0KC0x
MCwgLTEwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRo
Q2xpcDx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3Vy
ZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAg
b2NjbHVzaW9uLnNldExheWVyQ2xpcFJlY3QoSW50UmVjdCgtMTAsIC0xMCwgMTAwMCwgMTAwMCkp
OwogCiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIoY2hpbGQyLCBvY2NsdXNpb24pOwogCkBAIC04
MDQsOCArODA0LDggQEAgcHJvdGVjdGVkOgogICAgICAgICB0eXBlbmFtZSBUeXBlczo6Q29udGVu
dExheWVyVHlwZSogbGF5ZXIgPSB0aGlzLT5jcmVhdGVEcmF3aW5nTGF5ZXIoY2hpbGQsIGxheWVy
VHJhbnNmb3JtLCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDUwMCwgNTAwKSwgdHJ1ZSk7CiAg
ICAgICAgIHRoaXMtPmNhbGNEcmF3RXRjKHBhcmVudCk7CiAKLSAgICAgICAgVGVzdENDT2NjbHVz
aW9uVHJhY2tlcldpdGhTY2lzc29yPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1l
IFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwg
MTAwMCkpOwotICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJTY2lzc29yUmVjdChJbnRSZWN0KDAs
IDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhDbGlw
PHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNl
VHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBvY2Ns
dXNpb24uc2V0TGF5ZXJDbGlwUmVjdChJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKIAogICAg
ICAgICBJbnRSZWN0IGNsaXBwZWRMYXllckluQ2hpbGQgPSBDQ01hdGhVdGlsOjptYXBDbGlwcGVk
UmVjdChsYXllclRyYW5zZm9ybSwgbGF5ZXItPnZpc2libGVDb250ZW50UmVjdCgpKTsKIApAQCAt
ODY4LDggKzg2OCw4IEBAIHByb3RlY3RlZDoKICAgICAgICAgdHlwZW5hbWUgVHlwZXM6OkNvbnRl
bnRMYXllclR5cGUqIGxheWVyMiA9IHRoaXMtPmNyZWF0ZURyYXdpbmdMYXllcihjaGlsZCwgdGhp
cy0+aWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMTAsIDQ1MCksIEludFNpemUoNTAwLCA2MCks
IHRydWUpOwogICAgICAgICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCi0gICAgICAgIFRl
c3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBl
LCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAs
IDAsIDEwMDAsIDEwMDApKTsKLSAgICAgICAgb2NjbHVzaW9uLnNldExheWVyU2Npc3NvclJlY3Qo
SW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNr
ZXJXaXRoQ2xpcDx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVu
ZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAg
ICAgICAgb2NjbHVzaW9uLnNldExheWVyQ2xpcFJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAw
KSk7CiAKICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihsYXllcjIsIG9jY2x1c2lvbik7CiAgICAg
ICAgIHRoaXMtPnZpc2l0TGF5ZXIobGF5ZXIxLCBvY2NsdXNpb24pOwpAQCAtOTU2LDggKzk1Niw4
IEBAIHByb3RlY3RlZDoKICAgICAgICAgdHlwZW5hbWUgVHlwZXM6OkNvbnRlbnRMYXllclR5cGUq
IGxheWVyMiA9IHRoaXMtPmNyZWF0ZURyYXdpbmdMYXllcihjaGlsZDIsIHRoaXMtPmlkZW50aXR5
TWF0cml4LCBGbG9hdFBvaW50KC0xMCwgLTEwKSwgSW50U2l6ZSg1MTAsIDUxMCksIHRydWUpOwog
ICAgICAgICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCi0gICAgICAgIFRlc3RDQ09jY2x1
c2lvblRyYWNrZXJXaXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFt
ZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAs
IDEwMDApKTsKLSAgICAgICAgb2NjbHVzaW9uLnNldExheWVyU2Npc3NvclJlY3QoSW50UmVjdCgt
MjAsIC0yMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0
aENsaXA8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1
cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAg
IG9jY2x1c2lvbi5zZXRMYXllckNsaXBSZWN0KEludFJlY3QoLTIwLCAtMjAsIDEwMDAsIDEwMDAp
KTsKIAogICAgICAgICB0aGlzLT52aXNpdExheWVyKGxheWVyMiwgb2NjbHVzaW9uKTsKICAgICAg
ICAgdGhpcy0+ZW50ZXJDb250cmlidXRpbmdTdXJmYWNlKGNoaWxkMiwgb2NjbHVzaW9uKTsKQEAg
LTk3MywxMyArOTczLDEzIEBAIHByb3RlY3RlZDoKICAgICAgICAgRVhQRUNUX0ZBTFNFKG9jY2x1
c2lvbi5vY2NsdWRlZChjaGlsZDIsIEludFJlY3QoLTEwLCA0MjAsIDcxLCA4MCkpKTsKICAgICAg
ICAgRVhQRUNUX0ZBTFNFKG9jY2x1c2lvbi5vY2NsdWRlZChjaGlsZDIsIEludFJlY3QoLTEwLCA0
MjAsIDcwLCA4MSkpKTsKIAotICAgICAgICBvY2NsdXNpb24udXNlRGVmYXVsdExheWVyU2Npc3Nv
clJlY3QoKTsKKyAgICAgICAgb2NjbHVzaW9uLnVzZURlZmF1bHRMYXllckNsaXBSZWN0KCk7CiAg
ICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi5vY2NsdWRlZChjaGlsZDIsIEludFJlY3QoLTEw
LCA0MjAsIDcwLCA4MCkpKTsKICAgICAgICAgRVhQRUNUX1RSVUUob2NjbHVzaW9uLm9jY2x1ZGVk
KGNoaWxkMiwgSW50UmVjdCgtMTEsIDQyMCwgNzAsIDgwKSkpOwogICAgICAgICBFWFBFQ1RfVFJV
RShvY2NsdXNpb24ub2NjbHVkZWQoY2hpbGQyLCBJbnRSZWN0KC0xMCwgNDE5LCA3MCwgODApKSk7
CiAgICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi5vY2NsdWRlZChjaGlsZDIsIEludFJlY3Qo
LTEwLCA0MjAsIDcxLCA4MCkpKTsKICAgICAgICAgRVhQRUNUX1RSVUUob2NjbHVzaW9uLm9jY2x1
ZGVkKGNoaWxkMiwgSW50UmVjdCgtMTAsIDQyMCwgNzAsIDgxKSkpOwotICAgICAgICBvY2NsdXNp
b24uc2V0TGF5ZXJTY2lzc29yUmVjdChJbnRSZWN0KC0yMCwgLTIwLCAxMDAwLCAxMDAwKSk7Cisg
ICAgICAgIG9jY2x1c2lvbi5zZXRMYXllckNsaXBSZWN0KEludFJlY3QoLTIwLCAtMjAsIDEwMDAs
IDEwMDApKTsKIAogICAgICAgICAvLyBUaGVyZSBpcyBub3RoaW5nIGFib3ZlIGNoaWxkMidzIHN1
cmZhY2UgaW4gdGhlIHotb3JkZXIuCiAgICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0
KC0xMCwgNDIwLCA3MCwgODApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRyaWJ1dGluZ1N1cmZh
Y2VDb250ZW50UmVjdChjaGlsZDIsIGZhbHNlLCBJbnRSZWN0KC0xMCwgNDIwLCA3MCwgODApKSk7
CkBAIC0xMDcwLDggKzEwNzAsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHR5cGVuYW1lIFR5cGVz
OjpDb250ZW50TGF5ZXJUeXBlKiBsYXllcjIgPSB0aGlzLT5jcmVhdGVEcmF3aW5nTGF5ZXIoY2hp
bGQyLCB0aGlzLT5pZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgtMTAsIC0xMCksIEludFNpemUo
NTEwLCA1MTApLCB0cnVlKTsKICAgICAgICAgdGhpcy0+Y2FsY0RyYXdFdGMocGFyZW50KTsKIAot
ICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aFNjaXNzb3I8dHlwZW5hbWUgVHlwZXM6
OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24o
SW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7Ci0gICAgICAgIG9jY2x1c2lvbi5zZXRMYXllclNj
aXNzb3JSZWN0KEludFJlY3QoLTMwLCAtMzAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgVGVzdEND
T2NjbHVzaW9uVHJhY2tlcldpdGhDbGlwPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVu
YW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAw
MCwgMTAwMCkpOworICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJDbGlwUmVjdChJbnRSZWN0KC0z
MCwgLTMwLCAxMDAwLCAxMDAwKSk7CiAKICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihsYXllcjIs
IG9jY2x1c2lvbik7CiAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIoY2hpbGQyLCBvY2NsdXNpb24p
OwpAQCAtMTE4NCw4ICsxMTg0LDggQEAgcHJvdGVjdGVkOgogCiAgICAgICAgIHRoaXMtPmNhbGNE
cmF3RXRjKHBhcmVudCk7CiAKLSAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhTY2lz
c29yPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJm
YWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwotICAgICAgICBv
Y2NsdXNpb24uc2V0TGF5ZXJTY2lzc29yUmVjdChJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsK
KyAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhDbGlwPHR5cGVuYW1lIFR5cGVzOjpM
YXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKElu
dFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJDbGlw
UmVjdChJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKIAogICAgICAgICAvLyBPcGFjaXR5IGxh
eWVyIHdvbid0IGNvbnRyaWJ1dGUgdG8gb2NjbHVzaW9uLgogICAgICAgICB0aGlzLT52aXNpdExh
eWVyKG9wYWNpdHlMYXllciwgb2NjbHVzaW9uKTsKQEAgLTEyNDgsOCArMTI0OCw4IEBAIHByb3Rl
Y3RlZDoKICAgICAgICAgdGhpcy0+Y3JlYXRlUmVwbGljYUxheWVyKHN1cmZhY2UsIHRoaXMtPmlk
ZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDUwLCA1MCksIEludFNpemUoKSk7CiAgICAgICAgIHRo
aXMtPmNhbGNEcmF3RXRjKHBhcmVudCk7CiAKLSAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tl
cldpdGhTY2lzc29yPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpS
ZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwot
ICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJTY2lzc29yUmVjdChJbnRSZWN0KDAsIDAsIDEwMDAs
IDEwMDApKTsKKyAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhDbGlwPHR5cGVuYW1l
IFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2Nj
bHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBvY2NsdXNpb24uc2V0
TGF5ZXJDbGlwUmVjdChJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKIAogICAgICAgICB0aGlz
LT52aXNpdExheWVyKHN1cmZhY2UsIG9jY2x1c2lvbik7CiAKQEAgLTEyNzksOCArMTI3OSw4IEBA
IHByb3RlY3RlZDoKICAgICAgICAgdGhpcy0+Y3JlYXRlUmVwbGljYUxheWVyKHN1cmZhY2UsIHRo
aXMtPmlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDUwLCA1MCksIEludFNpemUoKSk7CiAgICAg
ICAgIHRoaXMtPmNhbGNEcmF3RXRjKHBhcmVudCk7CiAKLSAgICAgICAgVGVzdENDT2NjbHVzaW9u
VHJhY2tlcldpdGhTY2lzc29yPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5
cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAw
MCkpOwotICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJTY2lzc29yUmVjdChJbnRSZWN0KDAsIDAs
IDEwMDAsIDEwMDApKTsKKyAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhDbGlwPHR5
cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlw
ZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBvY2NsdXNp
b24uc2V0TGF5ZXJDbGlwUmVjdChJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKIAogICAgICAg
ICB0aGlzLT52aXNpdExheWVyKHN1cmZhY2UsIG9jY2x1c2lvbik7CiAKQEAgLTEzMTEsOCArMTMx
MSw4IEBAIHByb3RlY3RlZDoKICAgICAgICAgdGhpcy0+Y3JlYXRlTWFza0xheWVyKHJlcGxpY2Es
IEludFNpemUoMTAsIDEwKSk7CiAgICAgICAgIHRoaXMtPmNhbGNEcmF3RXRjKHBhcmVudCk7CiAK
LSAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhTY2lzc29yPHR5cGVuYW1lIFR5cGVz
OjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9u
KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwotICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJT
Y2lzc29yUmVjdChJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgVGVzdENDT2Nj
bHVzaW9uVHJhY2tlcldpdGhDbGlwPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1l
IFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwg
MTAwMCkpOworICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJDbGlwUmVjdChJbnRSZWN0KDAsIDAs
IDEwMDAsIDEwMDApKTsKIAogICAgICAgICB0aGlzLT52aXNpdExheWVyKHN1cmZhY2UsIG9jY2x1
c2lvbik7CiAKQEAgLTEzMzMsNyArMTMzMyw3IEBAIHByb3RlY3RlZDoKIEFMTF9DQ09DQ0xVU0lP
TlRSQUNLRVJfVEVTVChDQ09jY2x1c2lvblRyYWNrZXJUZXN0UmVwbGljYVdpdGhNYXNrKTsKIAog
dGVtcGxhdGU8Y2xhc3MgVHlwZXMsIGJvb2wgb3BhcXVlTGF5ZXJzPgotY2xhc3MgQ0NPY2NsdXNp
b25UcmFja2VyVGVzdExheWVyU2Npc3NvclJlY3RPdXRzaWRlQ2hpbGQgOiBwdWJsaWMgQ0NPY2Ns
dXNpb25UcmFja2VyVGVzdDxUeXBlcywgb3BhcXVlTGF5ZXJzPiB7CitjbGFzcyBDQ09jY2x1c2lv
blRyYWNrZXJUZXN0TGF5ZXJDbGlwUmVjdE91dHNpZGVDaGlsZCA6IHB1YmxpYyBDQ09jY2x1c2lv
blRyYWNrZXJUZXN0PFR5cGVzLCBvcGFxdWVMYXllcnM+IHsKIHByb3RlY3RlZDoKICAgICB2b2lk
IHJ1bk15VGVzdCgpCiAgICAgewpAQCAtMTM0MSw4ICsxMzQxLDggQEAgcHJvdGVjdGVkOgogICAg
ICAgICB0eXBlbmFtZSBUeXBlczo6Q29udGVudExheWVyVHlwZSogbGF5ZXIgPSB0aGlzLT5jcmVh
dGVEcmF3aW5nU3VyZmFjZShwYXJlbnQsIHRoaXMtPmlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50
KDAsIDApLCBJbnRTaXplKDIwMCwgMjAwKSwgdHJ1ZSk7CiAgICAgICAgIHRoaXMtPmNhbGNEcmF3
RXRjKHBhcmVudCk7CiAKLSAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhTY2lzc29y
PHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNl
VHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwotICAgICAgICBvY2Ns
dXNpb24uc2V0TGF5ZXJTY2lzc29yUmVjdChJbnRSZWN0KDIwMCwgMTAwLCAxMDAsIDEwMCkpOwor
ICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aENsaXA8dHlwZW5hbWUgVHlwZXM6Okxh
eWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50
UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIG9jY2x1c2lvbi5zZXRMYXllckNsaXBS
ZWN0KEludFJlY3QoMjAwLCAxMDAsIDEwMCwgMTAwKSk7CiAKICAgICAgICAgdGhpcy0+ZW50ZXJM
YXllcihsYXllciwgb2NjbHVzaW9uKTsKIApAQCAtMTM1Miw5ICsxMzUyLDkgQEAgcHJvdGVjdGVk
OgogICAgICAgICBFWFBFQ1RfVFJVRShvY2NsdXNpb24ub2NjbHVkZWQobGF5ZXIsIEludFJlY3Qo
MTAwLCAxMDAsIDEwMCwgMTAwKSkpOwogICAgICAgICBFWFBFQ1RfRkFMU0Uob2NjbHVzaW9uLm9j
Y2x1ZGVkKGxheWVyLCBJbnRSZWN0KDIwMCwgMTAwLCAxMDAsIDEwMCkpKTsKIAotICAgICAgICBv
Y2NsdXNpb24udXNlRGVmYXVsdExheWVyU2Npc3NvclJlY3QoKTsKKyAgICAgICAgb2NjbHVzaW9u
LnVzZURlZmF1bHRMYXllckNsaXBSZWN0KCk7CiAgICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lv
bi5vY2NsdWRlZChsYXllciwgSW50UmVjdCgyMDAsIDEwMCwgMTAwLCAxMDApKSk7Ci0gICAgICAg
IG9jY2x1c2lvbi5zZXRMYXllclNjaXNzb3JSZWN0KEludFJlY3QoMjAwLCAxMDAsIDEwMCwgMTAw
KSk7CisgICAgICAgIG9jY2x1c2lvbi5zZXRMYXllckNsaXBSZWN0KEludFJlY3QoMjAwLCAxMDAs
IDEwMCwgMTAwKSk7CiAKICAgICAgICAgdGhpcy0+bGVhdmVMYXllcihsYXllciwgb2NjbHVzaW9u
KTsKICAgICAgICAgdGhpcy0+dmlzaXRDb250cmlidXRpbmdTdXJmYWNlKGxheWVyLCBvY2NsdXNp
b24pOwpAQCAtMTM3NCwxMCArMTM3NCwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgfQogfTsKIAotQUxM
X0NDT0NDTFVTSU9OVFJBQ0tFUl9URVNUKENDT2NjbHVzaW9uVHJhY2tlclRlc3RMYXllclNjaXNz
b3JSZWN0T3V0c2lkZUNoaWxkKTsKK0FMTF9DQ09DQ0xVU0lPTlRSQUNLRVJfVEVTVChDQ09jY2x1
c2lvblRyYWNrZXJUZXN0TGF5ZXJDbGlwUmVjdE91dHNpZGVDaGlsZCk7CiAKIHRlbXBsYXRlPGNs
YXNzIFR5cGVzLCBib29sIG9wYXF1ZUxheWVycz4KLWNsYXNzIENDT2NjbHVzaW9uVHJhY2tlclRl
c3RTY3JlZW5TY2lzc29yUmVjdE91dHNpZGVDaGlsZCA6IHB1YmxpYyBDQ09jY2x1c2lvblRyYWNr
ZXJUZXN0PFR5cGVzLCBvcGFxdWVMYXllcnM+IHsKK2NsYXNzIENDT2NjbHVzaW9uVHJhY2tlclRl
c3RWaWV3cG9ydFJlY3RPdXRzaWRlQ2hpbGQgOiBwdWJsaWMgQ0NPY2NsdXNpb25UcmFja2VyVGVz
dDxUeXBlcywgb3BhcXVlTGF5ZXJzPiB7CiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBydW5NeVRlc3Qo
KQogICAgIHsKQEAgLTEzODUsOCArMTM4NSw4IEBAIHByb3RlY3RlZDoKICAgICAgICAgdHlwZW5h
bWUgVHlwZXM6OkNvbnRlbnRMYXllclR5cGUqIGxheWVyID0gdGhpcy0+Y3JlYXRlRHJhd2luZ1N1
cmZhY2UocGFyZW50LCB0aGlzLT5pZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAwKSwgSW50
U2l6ZSgyMDAsIDIwMCksIHRydWUpOwogICAgICAgICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQp
OwogCi0gICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoU2Npc3Nvcjx0eXBlbmFtZSBU
eXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1
c2lvbihJbnRSZWN0KDIwMCwgMTAwLCAxMDAsIDEwMCkpOwotICAgICAgICBvY2NsdXNpb24uc2V0
TGF5ZXJTY2lzc29yUmVjdChJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgVGVz
dENDT2NjbHVzaW9uVHJhY2tlcldpdGhDbGlwPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5
cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMjAwLCAx
MDAsIDEwMCwgMTAwKSk7CisgICAgICAgIG9jY2x1c2lvbi5zZXRMYXllckNsaXBSZWN0KEludFJl
Y3QoMCwgMCwgMTAwMCwgMTAwMCkpOwogCiAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIobGF5ZXIs
IG9jY2x1c2lvbik7CiAKQEAgLTEzOTYsOSArMTM5Niw5IEBAIHByb3RlY3RlZDoKICAgICAgICAg
RVhQRUNUX1RSVUUob2NjbHVzaW9uLm9jY2x1ZGVkKGxheWVyLCBJbnRSZWN0KDEwMCwgMTAwLCAx
MDAsIDEwMCkpKTsKICAgICAgICAgRVhQRUNUX0ZBTFNFKG9jY2x1c2lvbi5vY2NsdWRlZChsYXll
ciwgSW50UmVjdCgyMDAsIDEwMCwgMTAwLCAxMDApKSk7CiAKLSAgICAgICAgb2NjbHVzaW9uLnVz
ZURlZmF1bHRMYXllclNjaXNzb3JSZWN0KCk7CisgICAgICAgIG9jY2x1c2lvbi51c2VEZWZhdWx0
TGF5ZXJDbGlwUmVjdCgpOwogICAgICAgICBFWFBFQ1RfVFJVRShvY2NsdXNpb24ub2NjbHVkZWQo
bGF5ZXIsIEludFJlY3QoMjAwLCAxMDAsIDEwMCwgMTAwKSkpOwotICAgICAgICBvY2NsdXNpb24u
c2V0TGF5ZXJTY2lzc29yUmVjdChJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAg
b2NjbHVzaW9uLnNldExheWVyQ2xpcFJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAK
ICAgICAgICAgdGhpcy0+bGVhdmVMYXllcihsYXllciwgb2NjbHVzaW9uKTsKICAgICAgICAgdGhp
cy0+dmlzaXRDb250cmlidXRpbmdTdXJmYWNlKGxheWVyLCBvY2NsdXNpb24pOwpAQCAtMTQxOCwx
MCArMTQxOCwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgfQogfTsKIAotQUxMX0NDT0NDTFVTSU9OVFJB
Q0tFUl9URVNUKENDT2NjbHVzaW9uVHJhY2tlclRlc3RTY3JlZW5TY2lzc29yUmVjdE91dHNpZGVD
aGlsZCk7CitBTExfQ0NPQ0NMVVNJT05UUkFDS0VSX1RFU1QoQ0NPY2NsdXNpb25UcmFja2VyVGVz
dFZpZXdwb3J0UmVjdE91dHNpZGVDaGlsZCk7CiAKIHRlbXBsYXRlPGNsYXNzIFR5cGVzLCBib29s
IG9wYXF1ZUxheWVycz4KLWNsYXNzIENDT2NjbHVzaW9uVHJhY2tlclRlc3RMYXllclNjaXNzb3JS
ZWN0T3ZlckNoaWxkIDogcHVibGljIENDT2NjbHVzaW9uVHJhY2tlclRlc3Q8VHlwZXMsIG9wYXF1
ZUxheWVycz4geworY2xhc3MgQ0NPY2NsdXNpb25UcmFja2VyVGVzdExheWVyQ2xpcFJlY3RPdmVy
Q2hpbGQgOiBwdWJsaWMgQ0NPY2NsdXNpb25UcmFja2VyVGVzdDxUeXBlcywgb3BhcXVlTGF5ZXJz
PiB7CiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBydW5NeVRlc3QoKQogICAgIHsKQEAgLTE0MjksOCAr
MTQyOSw4IEBAIHByb3RlY3RlZDoKICAgICAgICAgdHlwZW5hbWUgVHlwZXM6OkNvbnRlbnRMYXll
clR5cGUqIGxheWVyID0gdGhpcy0+Y3JlYXRlRHJhd2luZ1N1cmZhY2UocGFyZW50LCB0aGlzLT5p
ZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAwKSwgSW50U2l6ZSgyMDAsIDIwMCksIHRydWUp
OwogICAgICAgICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCi0gICAgICAgIFRlc3RDQ09j
Y2x1c2lvblRyYWNrZXJXaXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBl
bmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEw
MDAsIDEwMDApKTsKLSAgICAgICAgb2NjbHVzaW9uLnNldExheWVyU2Npc3NvclJlY3QoSW50UmVj
dCgxMDAsIDEwMCwgMTAwLCAxMDApKTsKKyAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldp
dGhDbGlwPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJT
dXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAg
ICBvY2NsdXNpb24uc2V0TGF5ZXJDbGlwUmVjdChJbnRSZWN0KDEwMCwgMTAwLCAxMDAsIDEwMCkp
OwogCiAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIobGF5ZXIsIG9jY2x1c2lvbik7CiAKQEAgLTE0
NTcsMTAgKzE0NTcsMTAgQEAgcHJvdGVjdGVkOgogICAgIH0KIH07CiAKLUFMTF9DQ09DQ0xVU0lP
TlRSQUNLRVJfVEVTVChDQ09jY2x1c2lvblRyYWNrZXJUZXN0TGF5ZXJTY2lzc29yUmVjdE92ZXJD
aGlsZCk7CitBTExfQ0NPQ0NMVVNJT05UUkFDS0VSX1RFU1QoQ0NPY2NsdXNpb25UcmFja2VyVGVz
dExheWVyQ2xpcFJlY3RPdmVyQ2hpbGQpOwogCiB0ZW1wbGF0ZTxjbGFzcyBUeXBlcywgYm9vbCBv
cGFxdWVMYXllcnM+Ci1jbGFzcyBDQ09jY2x1c2lvblRyYWNrZXJUZXN0U2NyZWVuU2Npc3NvclJl
Y3RPdmVyQ2hpbGQgOiBwdWJsaWMgQ0NPY2NsdXNpb25UcmFja2VyVGVzdDxUeXBlcywgb3BhcXVl
TGF5ZXJzPiB7CitjbGFzcyBDQ09jY2x1c2lvblRyYWNrZXJUZXN0Vmlld3BvcnRSZWN0T3ZlckNo
aWxkIDogcHVibGljIENDT2NjbHVzaW9uVHJhY2tlclRlc3Q8VHlwZXMsIG9wYXF1ZUxheWVycz4g
ewogcHJvdGVjdGVkOgogICAgIHZvaWQgcnVuTXlUZXN0KCkKICAgICB7CkBAIC0xNDY4LDggKzE0
NjgsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHR5cGVuYW1lIFR5cGVzOjpDb250ZW50TGF5ZXJU
eXBlKiBsYXllciA9IHRoaXMtPmNyZWF0ZURyYXdpbmdTdXJmYWNlKHBhcmVudCwgdGhpcy0+aWRl
bnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMCwgMCksIEludFNpemUoMjAwLCAyMDApLCB0cnVlKTsK
ICAgICAgICAgdGhpcy0+Y2FsY0RyYXdFdGMocGFyZW50KTsKIAotICAgICAgICBUZXN0Q0NPY2Ns
dXNpb25UcmFja2VyV2l0aFNjaXNzb3I8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5h
bWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgxMDAsIDEwMCwg
MTAwLCAxMDApKTsKLSAgICAgICAgb2NjbHVzaW9uLnNldExheWVyU2Npc3NvclJlY3QoSW50UmVj
dCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRo
Q2xpcDx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3Vy
ZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDEwMCwgMTAwLCAxMDAsIDEwMCkpOworICAgICAg
ICBvY2NsdXNpb24uc2V0TGF5ZXJDbGlwUmVjdChJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsK
IAogICAgICAgICB0aGlzLT5lbnRlckxheWVyKGxheWVyLCBvY2NsdXNpb24pOwogCkBAIC0xNDk2
LDEwICsxNDk2LDEwIEBAIHByb3RlY3RlZDoKICAgICB9CiB9OwogCi1BTExfQ0NPQ0NMVVNJT05U
UkFDS0VSX1RFU1QoQ0NPY2NsdXNpb25UcmFja2VyVGVzdFNjcmVlblNjaXNzb3JSZWN0T3ZlckNo
aWxkKTsKK0FMTF9DQ09DQ0xVU0lPTlRSQUNLRVJfVEVTVChDQ09jY2x1c2lvblRyYWNrZXJUZXN0
Vmlld3BvcnRSZWN0T3ZlckNoaWxkKTsKIAogdGVtcGxhdGU8Y2xhc3MgVHlwZXMsIGJvb2wgb3Bh
cXVlTGF5ZXJzPgotY2xhc3MgQ0NPY2NsdXNpb25UcmFja2VyVGVzdExheWVyU2Npc3NvclJlY3RQ
YXJ0bHlPdmVyQ2hpbGQgOiBwdWJsaWMgQ0NPY2NsdXNpb25UcmFja2VyVGVzdDxUeXBlcywgb3Bh
cXVlTGF5ZXJzPiB7CitjbGFzcyBDQ09jY2x1c2lvblRyYWNrZXJUZXN0TGF5ZXJDbGlwUmVjdFBh
cnRseU92ZXJDaGlsZCA6IHB1YmxpYyBDQ09jY2x1c2lvblRyYWNrZXJUZXN0PFR5cGVzLCBvcGFx
dWVMYXllcnM+IHsKIHByb3RlY3RlZDoKICAgICB2b2lkIHJ1bk15VGVzdCgpCiAgICAgewpAQCAt
MTUwNyw4ICsxNTA3LDggQEAgcHJvdGVjdGVkOgogICAgICAgICB0eXBlbmFtZSBUeXBlczo6Q29u
dGVudExheWVyVHlwZSogbGF5ZXIgPSB0aGlzLT5jcmVhdGVEcmF3aW5nU3VyZmFjZShwYXJlbnQs
IHRoaXMtPmlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDIwMCwgMjAw
KSwgdHJ1ZSk7CiAgICAgICAgIHRoaXMtPmNhbGNEcmF3RXRjKHBhcmVudCk7CiAKLSAgICAgICAg
VGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhTY2lzc29yPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5
cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3Qo
MCwgMCwgMTAwMCwgMTAwMCkpOwotICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJTY2lzc29yUmVj
dChJbnRSZWN0KDUwLCA1MCwgMjAwLCAyMDApKTsKKyAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJh
Y2tlcldpdGhDbGlwPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpS
ZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwor
ICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJDbGlwUmVjdChJbnRSZWN0KDUwLCA1MCwgMjAwLCAy
MDApKTsKIAogICAgICAgICB0aGlzLT5lbnRlckxheWVyKGxheWVyLCBvY2NsdXNpb24pOwogCkBA
IC0xNTM5LDEwICsxNTM5LDEwIEBAIHByb3RlY3RlZDoKICAgICB9CiB9OwogCi1BTExfQ0NPQ0NM
VVNJT05UUkFDS0VSX1RFU1QoQ0NPY2NsdXNpb25UcmFja2VyVGVzdExheWVyU2Npc3NvclJlY3RQ
YXJ0bHlPdmVyQ2hpbGQpOworQUxMX0NDT0NDTFVTSU9OVFJBQ0tFUl9URVNUKENDT2NjbHVzaW9u
VHJhY2tlclRlc3RMYXllckNsaXBSZWN0UGFydGx5T3ZlckNoaWxkKTsKIAogdGVtcGxhdGU8Y2xh
c3MgVHlwZXMsIGJvb2wgb3BhcXVlTGF5ZXJzPgotY2xhc3MgQ0NPY2NsdXNpb25UcmFja2VyVGVz
dFNjcmVlblNjaXNzb3JSZWN0UGFydGx5T3ZlckNoaWxkIDogcHVibGljIENDT2NjbHVzaW9uVHJh
Y2tlclRlc3Q8VHlwZXMsIG9wYXF1ZUxheWVycz4geworY2xhc3MgQ0NPY2NsdXNpb25UcmFja2Vy
VGVzdFZpZXdwb3J0UmVjdFBhcnRseU92ZXJDaGlsZCA6IHB1YmxpYyBDQ09jY2x1c2lvblRyYWNr
ZXJUZXN0PFR5cGVzLCBvcGFxdWVMYXllcnM+IHsKIHByb3RlY3RlZDoKICAgICB2b2lkIHJ1bk15
VGVzdCgpCiAgICAgewpAQCAtMTU1MCw4ICsxNTUwLDggQEAgcHJvdGVjdGVkOgogICAgICAgICB0
eXBlbmFtZSBUeXBlczo6Q29udGVudExheWVyVHlwZSogbGF5ZXIgPSB0aGlzLT5jcmVhdGVEcmF3
aW5nU3VyZmFjZShwYXJlbnQsIHRoaXMtPmlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAsIDAp
LCBJbnRTaXplKDIwMCwgMjAwKSwgdHJ1ZSk7CiAgICAgICAgIHRoaXMtPmNhbGNEcmF3RXRjKHBh
cmVudCk7CiAKLSAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhTY2lzc29yPHR5cGVu
YW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4g
b2NjbHVzaW9uKEludFJlY3QoNTAsIDUwLCAyMDAsIDIwMCkpOwotICAgICAgICBvY2NsdXNpb24u
c2V0TGF5ZXJTY2lzc29yUmVjdChJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAg
VGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhDbGlwPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUs
IHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoNTAs
IDUwLCAyMDAsIDIwMCkpOworICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJDbGlwUmVjdChJbnRS
ZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKIAogICAgICAgICB0aGlzLT5lbnRlckxheWVyKGxheWVy
LCBvY2NsdXNpb24pOwogCkBAIC0xNTgyLDEwICsxNTgyLDEwIEBAIHByb3RlY3RlZDoKICAgICB9
CiB9OwogCi1BTExfQ0NPQ0NMVVNJT05UUkFDS0VSX1RFU1QoQ0NPY2NsdXNpb25UcmFja2VyVGVz
dFNjcmVlblNjaXNzb3JSZWN0UGFydGx5T3ZlckNoaWxkKTsKK0FMTF9DQ09DQ0xVU0lPTlRSQUNL
RVJfVEVTVChDQ09jY2x1c2lvblRyYWNrZXJUZXN0Vmlld3BvcnRSZWN0UGFydGx5T3ZlckNoaWxk
KTsKIAogdGVtcGxhdGU8Y2xhc3MgVHlwZXMsIGJvb2wgb3BhcXVlTGF5ZXJzPgotY2xhc3MgQ0NP
Y2NsdXNpb25UcmFja2VyVGVzdExheWVyU2Npc3NvclJlY3RPdmVyTm90aGluZyA6IHB1YmxpYyBD
Q09jY2x1c2lvblRyYWNrZXJUZXN0PFR5cGVzLCBvcGFxdWVMYXllcnM+IHsKK2NsYXNzIENDT2Nj
bHVzaW9uVHJhY2tlclRlc3RMYXllckNsaXBSZWN0T3Zlck5vdGhpbmcgOiBwdWJsaWMgQ0NPY2Ns
dXNpb25UcmFja2VyVGVzdDxUeXBlcywgb3BhcXVlTGF5ZXJzPiB7CiBwcm90ZWN0ZWQ6CiAgICAg
dm9pZCBydW5NeVRlc3QoKQogICAgIHsKQEAgLTE1OTMsOCArMTU5Myw4IEBAIHByb3RlY3RlZDoK
ICAgICAgICAgdHlwZW5hbWUgVHlwZXM6OkNvbnRlbnRMYXllclR5cGUqIGxheWVyID0gdGhpcy0+
Y3JlYXRlRHJhd2luZ1N1cmZhY2UocGFyZW50LCB0aGlzLT5pZGVudGl0eU1hdHJpeCwgRmxvYXRQ
b2ludCgwLCAwKSwgSW50U2l6ZSgyMDAsIDIwMCksIHRydWUpOwogICAgICAgICB0aGlzLT5jYWxj
RHJhd0V0YyhwYXJlbnQpOwogCi0gICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoU2Np
c3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3Vy
ZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKLSAgICAgICAg
b2NjbHVzaW9uLnNldExheWVyU2Npc3NvclJlY3QoSW50UmVjdCg1MDAsIDUwMCwgMTAwLCAxMDAp
KTsKKyAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhDbGlwPHR5cGVuYW1lIFR5cGVz
OjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9u
KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJD
bGlwUmVjdChJbnRSZWN0KDUwMCwgNTAwLCAxMDAsIDEwMCkpOwogCiAgICAgICAgIHRoaXMtPmVu
dGVyTGF5ZXIobGF5ZXIsIG9jY2x1c2lvbik7CiAKQEAgLTE2MjUsMTAgKzE2MjUsMTAgQEAgcHJv
dGVjdGVkOgogICAgIH0KIH07CiAKLUFMTF9DQ09DQ0xVU0lPTlRSQUNLRVJfVEVTVChDQ09jY2x1
c2lvblRyYWNrZXJUZXN0TGF5ZXJTY2lzc29yUmVjdE92ZXJOb3RoaW5nKTsKK0FMTF9DQ09DQ0xV
U0lPTlRSQUNLRVJfVEVTVChDQ09jY2x1c2lvblRyYWNrZXJUZXN0TGF5ZXJDbGlwUmVjdE92ZXJO
b3RoaW5nKTsKIAogdGVtcGxhdGU8Y2xhc3MgVHlwZXMsIGJvb2wgb3BhcXVlTGF5ZXJzPgotY2xh
c3MgQ0NPY2NsdXNpb25UcmFja2VyVGVzdFNjcmVlblNjaXNzb3JSZWN0T3Zlck5vdGhpbmcgOiBw
dWJsaWMgQ0NPY2NsdXNpb25UcmFja2VyVGVzdDxUeXBlcywgb3BhcXVlTGF5ZXJzPiB7CitjbGFz
cyBDQ09jY2x1c2lvblRyYWNrZXJUZXN0Vmlld3BvcnRSZWN0T3Zlck5vdGhpbmcgOiBwdWJsaWMg
Q0NPY2NsdXNpb25UcmFja2VyVGVzdDxUeXBlcywgb3BhcXVlTGF5ZXJzPiB7CiBwcm90ZWN0ZWQ6
CiAgICAgdm9pZCBydW5NeVRlc3QoKQogICAgIHsKQEAgLTE2MzYsOCArMTYzNiw4IEBAIHByb3Rl
Y3RlZDoKICAgICAgICAgdHlwZW5hbWUgVHlwZXM6OkNvbnRlbnRMYXllclR5cGUqIGxheWVyID0g
dGhpcy0+Y3JlYXRlRHJhd2luZ1N1cmZhY2UocGFyZW50LCB0aGlzLT5pZGVudGl0eU1hdHJpeCwg
RmxvYXRQb2ludCgwLCAwKSwgSW50U2l6ZSgyMDAsIDIwMCksIHRydWUpOwogICAgICAgICB0aGlz
LT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCi0gICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJX
aXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVu
ZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDUwMCwgNTAwLCAxMDAsIDEwMCkpOwot
ICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJTY2lzc29yUmVjdChJbnRSZWN0KDAsIDAsIDEwMDAs
IDEwMDApKTsKKyAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhDbGlwPHR5cGVuYW1l
IFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2Nj
bHVzaW9uKEludFJlY3QoNTAwLCA1MDAsIDEwMCwgMTAwKSk7CisgICAgICAgIG9jY2x1c2lvbi5z
ZXRMYXllckNsaXBSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwogCiAgICAgICAgIHRo
aXMtPmVudGVyTGF5ZXIobGF5ZXIsIG9jY2x1c2lvbik7CiAKQEAgLTE2NjgsMTAgKzE2NjgsMTAg
QEAgcHJvdGVjdGVkOgogICAgIH0KIH07CiAKLUFMTF9DQ09DQ0xVU0lPTlRSQUNLRVJfVEVTVChD
Q09jY2x1c2lvblRyYWNrZXJUZXN0U2NyZWVuU2Npc3NvclJlY3RPdmVyTm90aGluZyk7CitBTExf
Q0NPQ0NMVVNJT05UUkFDS0VSX1RFU1QoQ0NPY2NsdXNpb25UcmFja2VyVGVzdFZpZXdwb3J0UmVj
dE92ZXJOb3RoaW5nKTsKIAogdGVtcGxhdGU8Y2xhc3MgVHlwZXMsIGJvb2wgb3BhcXVlTGF5ZXJz
PgotY2xhc3MgQ0NPY2NsdXNpb25UcmFja2VyVGVzdExheWVyU2Npc3NvclJlY3RGb3JMYXllck9m
Zk9yaWdpbiA6IHB1YmxpYyBDQ09jY2x1c2lvblRyYWNrZXJUZXN0PFR5cGVzLCBvcGFxdWVMYXll
cnM+IHsKK2NsYXNzIENDT2NjbHVzaW9uVHJhY2tlclRlc3RMYXllckNsaXBSZWN0Rm9yTGF5ZXJP
ZmZPcmlnaW4gOiBwdWJsaWMgQ0NPY2NsdXNpb25UcmFja2VyVGVzdDxUeXBlcywgb3BhcXVlTGF5
ZXJzPiB7CiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBydW5NeVRlc3QoKQogICAgIHsKQEAgLTE2Nzks
MTIgKzE2NzksMTIgQEAgcHJvdGVjdGVkOgogICAgICAgICB0eXBlbmFtZSBUeXBlczo6Q29udGVu
dExheWVyVHlwZSogbGF5ZXIgPSB0aGlzLT5jcmVhdGVEcmF3aW5nU3VyZmFjZShwYXJlbnQsIHRo
aXMtPmlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDIwMCwgMjAwKSwg
dHJ1ZSk7CiAgICAgICAgIHRoaXMtPmNhbGNEcmF3RXRjKHBhcmVudCk7CiAKLSAgICAgICAgVGVz
dENDT2NjbHVzaW9uVHJhY2tlcldpdGhTY2lzc29yPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUs
IHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwg
MCwgMTAwMCwgMTAwMCkpOworICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aENsaXA8
dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VU
eXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAgICAgICAgIHRoaXMt
PmVudGVyTGF5ZXIobGF5ZXIsIG9jY2x1c2lvbik7CiAKLSAgICAgICAgLy8gVGhpcyBsYXllciBp
cyB0cmFuc2xhdGVkIHdoZW4gZHJhd24gaW50byBpdHMgdGFyZ2V0LiBTbyBpZiB0aGUgc2Npc3Nv
ciByZWN0IGdpdmVuIGZyb20gdGhlIHRhcmdldCBzdXJmYWNlCisgICAgICAgIC8vIFRoaXMgbGF5
ZXIgaXMgdHJhbnNsYXRlZCB3aGVuIGRyYXduIGludG8gaXRzIHRhcmdldC4gU28gaWYgdGhlIGNs
aXAgcmVjdCBnaXZlbiBmcm9tIHRoZSB0YXJnZXQgc3VyZmFjZQogICAgICAgICAvLyBpcyBub3Qg
aW4gdGhhdCB0YXJnZXQgc3BhY2UsIHRoZW4gYWZ0ZXIgdHJhbnNsYXRpbmcgdGhlc2UgcXVlcnkg
cmVjdHMgaW50byB0aGUgdGFyZ2V0LCB0aGV5IHdpbGwgZmFsbCBvdXRzaWRlCi0gICAgICAgIC8v
IHRoZSBzY2lzc29yIGFuZCBiZSBjb25zaWRlcmVkIG9jY2x1ZGVkLgorICAgICAgICAvLyB0aGUg
Y2xpcCBhbmQgYmUgY29uc2lkZXJlZCBvY2NsdWRlZC4KICAgICAgICAgRVhQRUNUX0ZBTFNFKG9j
Y2x1c2lvbi5vY2NsdWRlZChsYXllciwgSW50UmVjdCgwLCAwLCAxMDAsIDEwMCkpKTsKICAgICAg
ICAgRVhQRUNUX0ZBTFNFKG9jY2x1c2lvbi5vY2NsdWRlZChsYXllciwgSW50UmVjdCgwLCAxMDAs
IDEwMCwgMTAwKSkpOwogICAgICAgICBFWFBFQ1RfRkFMU0Uob2NjbHVzaW9uLm9jY2x1ZGVkKGxh
eWVyLCBJbnRSZWN0KDEwMCwgMCwgMTAwLCAxMDApKSk7CkBAIC0xNjkyLDcgKzE2OTIsNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgfQogfTsKIAotQUxMX0NDT0NDTFVTSU9OVFJBQ0tFUl9URVNUKENDT2Nj
bHVzaW9uVHJhY2tlclRlc3RMYXllclNjaXNzb3JSZWN0Rm9yTGF5ZXJPZmZPcmlnaW4pOworQUxM
X0NDT0NDTFVTSU9OVFJBQ0tFUl9URVNUKENDT2NjbHVzaW9uVHJhY2tlclRlc3RMYXllckNsaXBS
ZWN0Rm9yTGF5ZXJPZmZPcmlnaW4pOwogCiB0ZW1wbGF0ZTxjbGFzcyBUeXBlcywgYm9vbCBvcGFx
dWVMYXllcnM+CiBjbGFzcyBDQ09jY2x1c2lvblRyYWNrZXJUZXN0T3BhcXVlQ29udGVudHNSZWdp
b25FbXB0eSA6IHB1YmxpYyBDQ09jY2x1c2lvblRyYWNrZXJUZXN0PFR5cGVzLCBvcGFxdWVMYXll
cnM+IHsKQEAgLTE3MDMsNyArMTcwMyw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgdHlwZW5hbWUg
VHlwZXM6OkNvbnRlbnRMYXllclR5cGUqIGxheWVyID0gdGhpcy0+Y3JlYXRlRHJhd2luZ1N1cmZh
Y2UocGFyZW50LCB0aGlzLT5pZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAwKSwgSW50U2l6
ZSgyMDAsIDIwMCksIGZhbHNlKTsKICAgICAgICAgdGhpcy0+Y2FsY0RyYXdFdGMocGFyZW50KTsK
IAotICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aFNjaXNzb3I8dHlwZW5hbWUgVHlw
ZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNp
b24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRy
YWNrZXJXaXRoQ2xpcDx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6
UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsK
ICAgICAgICAgdGhpcy0+ZW50ZXJMYXllcihsYXllciwgb2NjbHVzaW9uKTsKIAogICAgICAgICBF
WFBFQ1RfRkFMU0Uob2NjbHVzaW9uLm9jY2x1ZGVkKGxheWVyLCBJbnRSZWN0KDAsIDAsIDEwMCwg
MTAwKSkpOwpAQCAtMTcxNCwxMCArMTcxNCwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIC8vIE9j
Y2x1ZGVkIHNpbmNlIGl0cyBvdXRzaWRlIHRoZSBzdXJmYWNlIGJvdW5kcy4KICAgICAgICAgRVhQ
RUNUX1RSVUUob2NjbHVzaW9uLm9jY2x1ZGVkKGxheWVyLCBJbnRSZWN0KDIwMCwgMTAwLCAxMDAs
IDEwMCkpKTsKIAotICAgICAgICAvLyBUZXN0IHdpdGhvdXQgYW55IHNjaXNzb3JzLgotICAgICAg
ICBvY2NsdXNpb24uc2V0TGF5ZXJTY2lzc29yUmVjdChJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDAp
KTsKKyAgICAgICAgLy8gVGVzdCB3aXRob3V0IGFueSBjbGlwIHJlY3QuCisgICAgICAgIG9jY2x1
c2lvbi5zZXRMYXllckNsaXBSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwogICAgICAg
ICBFWFBFQ1RfRkFMU0Uob2NjbHVzaW9uLm9jY2x1ZGVkKGxheWVyLCBJbnRSZWN0KDIwMCwgMTAw
LCAxMDAsIDEwMCkpKTsKLSAgICAgICAgb2NjbHVzaW9uLnVzZURlZmF1bHRMYXllclNjaXNzb3JS
ZWN0KCk7CisgICAgICAgIG9jY2x1c2lvbi51c2VEZWZhdWx0TGF5ZXJDbGlwUmVjdCgpOwogCiAg
ICAgICAgIHRoaXMtPmxlYXZlTGF5ZXIobGF5ZXIsIG9jY2x1c2lvbik7CiAgICAgICAgIHRoaXMt
PnZpc2l0Q29udHJpYnV0aW5nU3VyZmFjZShsYXllciwgb2NjbHVzaW9uKTsKQEAgLTE3NDAsNyAr
MTc0MCw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgdGhpcy0+Y2FsY0RyYXdFdGMocGFyZW50KTsK
IAogICAgICAgICB7Ci0gICAgICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aFNjaXNz
b3I8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZh
Y2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgICAg
ICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aENsaXA8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlw
ZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgw
LCAwLCAxMDAwLCAxMDAwKSk7CiAgICAgICAgICAgICBsYXllci0+c2V0T3BhcXVlQ29udGVudHNS
ZWN0KEludFJlY3QoMCwgMCwgMTAwLCAxMDApKTsKIAogICAgICAgICAgICAgdGhpcy0+cmVzZXRM
YXllckl0ZXJhdG9yKCk7CkBAIC0xNzU2LDcgKzE3NTYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAg
IH0KIAogICAgICAgICB7Ci0gICAgICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aFNj
aXNzb3I8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1
cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAg
ICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aENsaXA8dHlwZW5hbWUgVHlwZXM6OkxheWVy
VHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVj
dCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAgICAgICAgICAgICBsYXllci0+c2V0T3BhcXVlQ29udGVu
dHNSZWN0KEludFJlY3QoMjAsIDIwLCAxODAsIDE4MCkpOwogCiAgICAgICAgICAgICB0aGlzLT5y
ZXNldExheWVySXRlcmF0b3IoKTsKQEAgLTE3NzIsNyArMTc3Miw3IEBAIHByb3RlY3RlZDoKICAg
ICAgICAgfQogCiAgICAgICAgIHsKLSAgICAgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJX
aXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVu
ZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAg
ICAgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoQ2xpcDx0eXBlbmFtZSBUeXBlczo6
TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJ
bnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKICAgICAgICAgICAgIGxheWVyLT5zZXRPcGFxdWVD
b250ZW50c1JlY3QoSW50UmVjdCgxNTAsIDE1MCwgMTAwLCAxMDApKTsKIAogICAgICAgICAgICAg
dGhpcy0+cmVzZXRMYXllckl0ZXJhdG9yKCk7CkBAIC0xODA0LDcgKzE4MDQsNyBAQCBwcm90ZWN0
ZWQ6CiAgICAgICAgIHR5cGVuYW1lIFR5cGVzOjpDb250ZW50TGF5ZXJUeXBlKiBsYXllciA9IHRo
aXMtPmNyZWF0ZURyYXdpbmdMYXllcihjb250YWluZXIsIHRyYW5zZm9ybSwgRmxvYXRQb2ludCgx
MDAsIDEwMCksIEludFNpemUoMjAwLCAyMDApLCB0cnVlKTsKICAgICAgICAgdGhpcy0+Y2FsY0Ry
YXdFdGMocGFyZW50KTsKIAotICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aFNjaXNz
b3I8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZh
Y2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRl
c3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoQ2xpcDx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0
eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAs
IDEwMDAsIDEwMDApKTsKICAgICAgICAgdGhpcy0+ZW50ZXJMYXllcihsYXllciwgb2NjbHVzaW9u
KTsKIAogICAgICAgICAvLyBUaGUgbGF5ZXIgaXMgcm90YXRlZCBpbiAzZCBidXQgd2l0aG91dCBw
cmVzZXJ2aW5nIDNkLCBzbyBpdCBvbmx5IGdldHMgcmVzaXplZC4KQEAgLTE4MzgsNyArMTgzOCw3
IEBAIHByb3RlY3RlZDoKIAogICAgICAgICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCi0g
ICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6
TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJ
bnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tl
cldpdGhDbGlwPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5k
ZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwogICAg
ICAgICB0aGlzLT52aXNpdExheWVyKGNoaWxkMiwgb2NjbHVzaW9uKTsKICAgICAgICAgRVhQRUNU
X1RSVUUob2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5pc0VtcHR5KCkpOwogICAg
ICAgICBFWFBFQ1RfVFJVRShvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJmYWNlKCkuaXNF
bXB0eSgpKTsKQEAgLTE4NzAsNyArMTg3MCw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgbGF5ZXIt
PnNldFByZXNlcnZlczNEKHRydWUpOwogICAgICAgICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQp
OwogCi0gICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoU2Npc3Nvcjx0eXBlbmFtZSBU
eXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1
c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgVGVzdENDT2NjbHVzaW9u
VHJhY2tlcldpdGhDbGlwPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVz
OjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkp
OwogICAgICAgICB0aGlzLT5lbnRlckxheWVyKGxheWVyLCBvY2NsdXNpb24pOwogCiAgICAgICAg
IEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDIwMCwgMjAwKSwgb2NjbHVzaW9uLnVu
b2NjbHVkZWRDb250ZW50UmVjdChsYXllciwgSW50UmVjdCgwLCAwLCAyMDAsIDIwMCkpKTsKQEAg
LTE5MDEsNyArMTkwMSw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgbGF5ZXItPnNldFByZXNlcnZl
czNEKHRydWUpOwogICAgICAgICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCi0gICAgICAg
IFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJU
eXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0
KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhD
bGlwPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJm
YWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwogICAgICAgICB0
aGlzLT5lbnRlckxheWVyKGxheWVyLCBvY2NsdXNpb24pOwogCiAgICAgICAgIC8vIFRoZSBib3R0
b20gMTEgcGl4ZWwgcm93cyBvZiB0aGlzIGxheWVyIHJlbWFpbiB2aXNpYmxlIGluc2lkZSB0aGUg
Y29udGFpbmVyLCBhZnRlciB0cmFuc2xhdGlvbiB0byB0aGUgdGFyZ2V0IHN1cmZhY2UuIFdoZW4g
dHJhbnNsYXRlZCBiYWNrLApAQCAtMTkzMCw3ICsxOTMwLDcgQEAgcHJvdGVjdGVkOgogICAgICAg
ICBsYXllci0+c2V0UHJlc2VydmVzM0QodHJ1ZSk7CiAgICAgICAgIHRoaXMtPmNhbGNEcmF3RXRj
KHBhcmVudCk7CiAKLSAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhTY2lzc29yPHR5
cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlw
ZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBUZXN0Q0NP
Y2NsdXNpb25UcmFja2VyV2l0aENsaXA8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5h
bWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAw
LCAxMDAwKSk7CiAKICAgICAgICAgLy8gVGhlIHxsYXllcnwgaXMgZW50aXJlbHkgYmVoaW5kIHRo
ZSBjYW1lcmEgYW5kIHNob3VsZCBub3Qgb2NjbHVkZS4KICAgICAgICAgdGhpcy0+dmlzaXRMYXll
cihsYXllciwgb2NjbHVzaW9uKTsKQEAgLTE5NjAsNyArMTk2MCw3IEBAIHByb3RlY3RlZDoKICAg
ICAgICAgbGF5ZXItPnNldFByZXNlcnZlczNEKHRydWUpOwogICAgICAgICB0aGlzLT5jYWxjRHJh
d0V0YyhwYXJlbnQpOwogCi0gICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoU2Npc3Nv
cjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFj
ZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgVGVz
dENDT2NjbHVzaW9uVHJhY2tlcldpdGhDbGlwPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5
cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwg
MTAwMCwgMTAwMCkpOwogCiAgICAgICAgIC8vIFRoaXMgaXMgdmVyeSBjbG9zZSB0byB0aGUgY2Ft
ZXJhLCBzbyBwaXhlbHMgaW4gaXRzIHZpc2libGVDb250ZW50UmVjdCB3aWxsIGFjdHVhbGx5IGdv
IG91dHNpZGUgb2YgdGhlIGxheWVyJ3MgY2xpcFJlY3QuCiAgICAgICAgIC8vIEVuc3VyZSB0aGF0
IHRob3NlIHBpeGVscyBkb24ndCBvY2NsdWRlIHRoaW5ncyBvdXRzaWRlIHRoZSBjbGlwUmVjdC4K
QEAgLTE5OTcsNyArMTk5Nyw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgRVhQRUNUX0ZBTFNFKHN1
cmZhY2UtPmRyYXdPcGFjaXR5SXNBbmltYXRpbmcoKSk7CiAgICAgICAgIEVYUEVDVF9UUlVFKHN1
cmZhY2UtPnJlbmRlclN1cmZhY2UoKS0+ZHJhd09wYWNpdHlJc0FuaW1hdGluZygpKTsKIAotICAg
ICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aFNjaXNzb3I8dHlwZW5hbWUgVHlwZXM6Okxh
eWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50
UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJX
aXRoQ2xpcDx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVy
U3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKIAogICAg
ICAgICB0aGlzLT52aXNpdExheWVyKHRvcG1vc3QsIG9jY2x1c2lvbik7CiAgICAgICAgIHRoaXMt
PmVudGVyTGF5ZXIocGFyZW50Miwgb2NjbHVzaW9uKTsKQEAgLTIwNDksNyArMjA0OSw3IEBAIHBy
b3RlY3RlZDoKICAgICAgICAgRVhQRUNUX0ZBTFNFKHN1cmZhY2UtPmRyYXdPcGFjaXR5SXNBbmlt
YXRpbmcoKSk7CiAgICAgICAgIEVYUEVDVF9UUlVFKHN1cmZhY2UtPnJlbmRlclN1cmZhY2UoKS0+
ZHJhd09wYWNpdHlJc0FuaW1hdGluZygpKTsKIAotICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFj
a2VyV2l0aFNjaXNzb3I8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6
OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7
CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoQ2xpcDx0eXBlbmFtZSBUeXBlczo6
TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJ
bnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKIAogICAgICAgICB0aGlzLT52aXNpdExheWVyKHRv
cG1vc3QsIG9jY2x1c2lvbik7CiAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIocGFyZW50Miwgb2Nj
bHVzaW9uKTsKQEAgLTIxMDcsNyArMjEwNyw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgRVhQRUNU
X1RSVUUoc3VyZmFjZUNoaWxkLT5kcmF3VHJhbnNmb3JtSXNBbmltYXRpbmcoKSk7CiAgICAgICAg
IEVYUEVDVF9UUlVFKHN1cmZhY2VDaGlsZC0+c2NyZWVuU3BhY2VUcmFuc2Zvcm1Jc0FuaW1hdGlu
ZygpKTsKIAotICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aFNjaXNzb3I8dHlwZW5h
bWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBv
Y2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1
c2lvblRyYWNrZXJXaXRoQ2xpcDx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBU
eXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEw
MDApKTsKIAogICAgICAgICB0aGlzLT52aXNpdExheWVyKHN1cmZhY2UyLCBvY2NsdXNpb24pOwog
ICAgICAgICB0aGlzLT5lbnRlckNvbnRyaWJ1dGluZ1N1cmZhY2Uoc3VyZmFjZTIsIG9jY2x1c2lv
bik7CkBAIC0yMTg5LDcgKzIxODksNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHN1cmZhY2UyLT5z
ZXRPcGFxdWVDb250ZW50c1JlY3QoSW50UmVjdCgwLCAwLCAyMDAsIDIwMCkpOwogICAgICAgICB0
aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCi0gICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNr
ZXJXaXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6
UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsK
KyAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhDbGlwPHR5cGVuYW1lIFR5cGVzOjpM
YXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKElu
dFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwogCiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIoc3Vy
ZmFjZTIsIG9jY2x1c2lvbik7CiAgICAgICAgIHRoaXMtPnZpc2l0Q29udHJpYnV0aW5nU3VyZmFj
ZShzdXJmYWNlMiwgb2NjbHVzaW9uKTsKQEAgLTIyMjUsNyArMjIyNSw3IEBAIHByb3RlY3RlZDoK
ICAgICAgICAgc3VyZmFjZS0+c2V0T3BhcXVlQ29udGVudHNSZWN0KEludFJlY3QoMCwgMCwgNDAw
LCAyMDApKTsKICAgICAgICAgdGhpcy0+Y2FsY0RyYXdFdGMocGFyZW50KTsKIAotICAgICAgICBU
ZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aFNjaXNzb3I8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlw
ZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgw
LCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoQ2xp
cDx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFj
ZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKIAogICAgICAgICB0
aGlzLT52aXNpdExheWVyKHN1cmZhY2UsIG9jY2x1c2lvbik7CiAgICAgICAgIHRoaXMtPnZpc2l0
Q29udHJpYnV0aW5nU3VyZmFjZShzdXJmYWNlLCBvY2NsdXNpb24pOwpAQCAtMjI1MCw4ICsyMjUw
LDggQEAgcHJvdGVjdGVkOgogICAgICAgICB0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlKiB0b3Bt
b3N0ID0gdGhpcy0+Y3JlYXRlRHJhd2luZ0xheWVyKHBhcmVudCwgdGhpcy0+aWRlbnRpdHlNYXRy
aXgsIEZsb2F0UG9pbnQoMCwgMTAwKSwgSW50U2l6ZSgxMDAsIDEwMCksIHRydWUpOwogICAgICAg
ICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCi0gICAgICAgIFRlc3RDQ09jY2x1c2lvblRy
YWNrZXJXaXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBl
czo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDAp
KTsKLSAgICAgICAgb2NjbHVzaW9uLnNldExheWVyU2Npc3NvclJlY3QoSW50UmVjdCgwLCAwLCAx
MDAwLCAxMDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoQ2xpcDx0eXBl
bmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+
IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgb2NjbHVzaW9u
LnNldExheWVyQ2xpcFJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAKICAgICAgICAg
Ly8gfHRvcG1vc3R8IG9jY2x1ZGVzIHRoZSByZXBsaWNhLCBidXQgbm90IHRoZSBzdXJmYWNlIGl0
c2VsZi4KICAgICAgICAgdGhpcy0+dmlzaXRMYXllcih0b3Btb3N0LCBvY2NsdXNpb24pOwpAQCAt
MjI4OCw4ICsyMjg4LDggQEAgcHJvdGVjdGVkOgogICAgICAgICB0eXBlbmFtZSBUeXBlczo6TGF5
ZXJUeXBlKiB0b3Btb3N0ID0gdGhpcy0+Y3JlYXRlRHJhd2luZ0xheWVyKHBhcmVudCwgdGhpcy0+
aWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMCwgMCksIEludFNpemUoMTAwLCAxMTApLCB0cnVl
KTsKICAgICAgICAgdGhpcy0+Y2FsY0RyYXdFdGMocGFyZW50KTsKIAotICAgICAgICBUZXN0Q0NP
Y2NsdXNpb25UcmFja2VyV2l0aFNjaXNzb3I8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlw
ZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAx
MDAwLCAxMDAwKSk7Ci0gICAgICAgIG9jY2x1c2lvbi5zZXRMYXllclNjaXNzb3JSZWN0KEludFJl
Y3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0
aENsaXA8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1
cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAg
IG9jY2x1c2lvbi5zZXRMYXllckNsaXBSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwog
CiAgICAgICAgIC8vIHx0b3Btb3N0fCBvY2NsdWRlcyB0aGUgc3VyZmFjZSwgYnV0IG5vdCB0aGUg
ZW50aXJlIHN1cmZhY2UncyByZXBsaWNhLgogICAgICAgICB0aGlzLT52aXNpdExheWVyKHRvcG1v
c3QsIG9jY2x1c2lvbik7CkBAIC0yMzI4LDggKzIzMjgsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAg
IHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUqIG92ZXJSZXBsaWNhID0gdGhpcy0+Y3JlYXRlRHJh
d2luZ0xheWVyKHBhcmVudCwgdGhpcy0+aWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMCwgMTAw
KSwgSW50U2l6ZSg1MCwgMTAwKSwgdHJ1ZSk7CiAgICAgICAgIHRoaXMtPmNhbGNEcmF3RXRjKHBh
cmVudCk7CiAKLSAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhTY2lzc29yPHR5cGVu
YW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4g
b2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwotICAgICAgICBvY2NsdXNpb24u
c2V0TGF5ZXJTY2lzc29yUmVjdChJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAg
VGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhDbGlwPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUs
IHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwg
MCwgMTAwMCwgMTAwMCkpOworICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJDbGlwUmVjdChJbnRS
ZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKIAogICAgICAgICAvLyBUaGVzZSBvY2NsdWRlIHRoZSBz
dXJmYWNlIGFuZCByZXBsaWNhIGRpZmZlcmVudGx5LCBzbyB3ZSBjYW4gdGVzdCBlYWNoIG9uZS4K
ICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihvdmVyUmVwbGljYSwgb2NjbHVzaW9uKTsKQEAgLTIz
NzAsNyArMjM3MCw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgdHlwZW5hbWUgVHlwZXM6OkxheWVy
VHlwZSogdG9wbW9zdCA9IHRoaXMtPmNyZWF0ZURyYXdpbmdMYXllcihwYXJlbnQsIHRoaXMtPmlk
ZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDEwMCwgNTApLCB0cnVlKTsK
ICAgICAgICAgdGhpcy0+Y2FsY0RyYXdFdGMocGFyZW50KTsKIAotICAgICAgICBUZXN0Q0NPY2Ns
dXNpb25UcmFja2VyV2l0aFNjaXNzb3I8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5h
bWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgtMTAwLCAtMTAw
LCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoQ2xpcDx0
eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5
cGU+IG9jY2x1c2lvbihJbnRSZWN0KC0xMDAsIC0xMDAsIDEwMDAsIDEwMDApKTsKIAogICAgICAg
ICAvLyB8dG9wbW9zdHwgb2NjbHVkZXMgZXZlcnl0aGluZyBwYXJ0aWFsbHkgc28gd2Uga25vdyBv
Y2NsdXNpb24gaXMgaGFwcGVuaW5nIGF0IGFsbC4KICAgICAgICAgdGhpcy0+dmlzaXRMYXllcih0
b3Btb3N0LCBvY2NsdXNpb24pOwpAQCAtMjQxNiwxOSArMjQxNiwxOSBAQCBwcm90ZWN0ZWQ6CiBB
TExfQ0NPQ0NMVVNJT05UUkFDS0VSX1RFU1QoQ0NPY2NsdXNpb25UcmFja2VyVGVzdFN1cmZhY2VD
aGlsZE9mU3VyZmFjZSk7CiAKIHRlbXBsYXRlPGNsYXNzIFR5cGVzLCBib29sIG9wYXF1ZUxheWVy
cz4KLWNsYXNzIENDT2NjbHVzaW9uVHJhY2tlclRlc3RUb3Btb3N0U3VyZmFjZUlzQ2xpcHBlZFRv
U2Npc3NvciA6IHB1YmxpYyBDQ09jY2x1c2lvblRyYWNrZXJUZXN0PFR5cGVzLCBvcGFxdWVMYXll
cnM+IHsKK2NsYXNzIENDT2NjbHVzaW9uVHJhY2tlclRlc3RUb3Btb3N0U3VyZmFjZUlzQ2xpcHBl
ZFRvVmlld3BvcnQgOiBwdWJsaWMgQ0NPY2NsdXNpb25UcmFja2VyVGVzdDxUeXBlcywgb3BhcXVl
TGF5ZXJzPiB7CiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBydW5NeVRlc3QoKQogICAgIHsKLSAgICAg
ICAgLy8gVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgdGhlIHRvcC1tb3N0IHN1cmZhY2UgaXMgY29u
c2lkZXJlZCBvY2NsdWRlZCBvdXRzaWRlIG9mIGl0cyBzY2lzc29yIHJlY3QgYW5kIG91dHNpZGUg
dGhlIHNjcmVlbidzIHNjaXNzb3IgcmVjdC4KKyAgICAgICAgLy8gVGhpcyB0ZXN0IHZlcmlmaWVz
IHRoYXQgdGhlIHRvcC1tb3N0IHN1cmZhY2UgaXMgY29uc2lkZXJlZCBvY2NsdWRlZCBvdXRzaWRl
IG9mIGl0cyB0YXJnZXQncyBjbGlwUmVjdCBhbmQgb3V0c2lkZSB0aGUgdmlld3BvcnQgcmVjdC4K
IAogICAgICAgICB0eXBlbmFtZSBUeXBlczo6Q29udGVudExheWVyVHlwZSogcGFyZW50ID0gdGhp
cy0+Y3JlYXRlUm9vdCh0aGlzLT5pZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAwKSwgSW50
U2l6ZSgxMDAsIDIwMCkpOwogICAgICAgICB0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlKiBzdXJm
YWNlID0gdGhpcy0+Y3JlYXRlRHJhd2luZ1N1cmZhY2UocGFyZW50LCB0aGlzLT5pZGVudGl0eU1h
dHJpeCwgRmxvYXRQb2ludCgwLCAwKSwgSW50U2l6ZSgxMDAsIDMwMCksIHRydWUpOwogICAgICAg
ICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCiAgICAgICAgIHsKLSAgICAgICAgICAgIC8v
IE1ha2UgYSBzY3JlZW4gc2Npc3NvciByZWN0IHRoYXQgaXMgbGFyZ2VyIHRoYW4gdGhlIHJvb3Qg
bGF5ZXIncy4KLSAgICAgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoU2Npc3Nvcjx0
eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5
cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgICAgIC8v
IE1ha2UgYSB2aWV3cG9ydCByZWN0IHRoYXQgaXMgbGFyZ2VyIHRoYW4gdGhlIHJvb3QgbGF5ZXIu
CisgICAgICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aENsaXA8dHlwZW5hbWUgVHlw
ZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNp
b24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAKICAgICAgICAgICAgIHRoaXMtPnZpc2l0
TGF5ZXIoc3VyZmFjZSwgb2NjbHVzaW9uKTsKIApAQCAtMjQzOSwyMCArMjQzOSwyMCBAQCBwcm90
ZWN0ZWQ6CiAgICAgICAgIH0KICAgICAgICAgdGhpcy0+cmVzZXRMYXllckl0ZXJhdG9yKCk7CiAg
ICAgICAgIHsKLSAgICAgICAgICAgIC8vIE1ha2UgYSBzY3JlZW4gc2Npc3NvciByZWN0IHRoYXQg
aXMgc21hbGxlciB0aGFuIHRoZSByb290IGxheWVyJ3MuCi0gICAgICAgICAgICBUZXN0Q0NPY2Ns
dXNpb25UcmFja2VyV2l0aFNjaXNzb3I8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5h
bWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAs
IDEwMCkpOworICAgICAgICAgICAgLy8gTWFrZSBhIHZpZXdwb3J0IHJlY3QgdGhhdCBpcyBzbWFs
bGVyIHRoYW4gdGhlIHJvb3QgbGF5ZXIuCisgICAgICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFj
a2VyV2l0aENsaXA8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJl
bmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAsIDEwMCkpOwogCiAg
ICAgICAgICAgICB0aGlzLT52aXNpdExheWVyKHN1cmZhY2UsIG9jY2x1c2lvbik7CiAKICAgICAg
ICAgICAgIC8vIFRoZSByb290IGxheWVyIGFsd2F5cyBoYXMgYSBjbGlwUmVjdC4gU28gdGhlIHBh
cmVudCBvZiB8c3VyZmFjZXwgaGFzIGEgY2xpcFJlY3QgZ2l2aW5nIHRoZSBzdXJmYWNlIGl0c2Vs
ZiBhIGNsaXBSZWN0LgogICAgICAgICAgICAgdGhpcy0+ZW50ZXJDb250cmlidXRpbmdTdXJmYWNl
KHN1cmZhY2UsIG9jY2x1c2lvbik7Ci0gICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhlIHNjcmVl
biBzY2lzc29yIHJlY3QgY2xpcHMgdGhlIHVub2NjbHVkZWQgcmVnaW9uIG9mIHRoZSBjaGlsZCBz
dXJmYWNlLgorICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSB2aWV3cG9ydCByZWN0IGNsaXBz
IHRoZSB1bm9jY2x1ZGVkIHJlZ2lvbiBvZiB0aGUgY2hpbGQgc3VyZmFjZS4KICAgICAgICAgICAg
IEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgb2NjbHVzaW9uLnVu
b2NjbHVkZWRDb250cmlidXRpbmdTdXJmYWNlQ29udGVudFJlY3Qoc3VyZmFjZSwgZmFsc2UsIElu
dFJlY3QoMCwgMCwgMTAwLCAzMDApKSk7CiAgICAgICAgIH0KICAgICB9CiB9OwogCi1BTExfQ0NP
Q0NMVVNJT05UUkFDS0VSX1RFU1QoQ0NPY2NsdXNpb25UcmFja2VyVGVzdFRvcG1vc3RTdXJmYWNl
SXNDbGlwcGVkVG9TY2lzc29yKTsKK0FMTF9DQ09DQ0xVU0lPTlRSQUNLRVJfVEVTVChDQ09jY2x1
c2lvblRyYWNrZXJUZXN0VG9wbW9zdFN1cmZhY2VJc0NsaXBwZWRUb1ZpZXdwb3J0KTsKIAogdGVt
cGxhdGU8Y2xhc3MgVHlwZXMsIGJvb2wgb3BhcXVlTGF5ZXJzPgogY2xhc3MgQ0NPY2NsdXNpb25U
cmFja2VyVGVzdFN1cmZhY2VDaGlsZE9mQ2xpcHBpbmdTdXJmYWNlIDogcHVibGljIENDT2NjbHVz
aW9uVHJhY2tlclRlc3Q8VHlwZXMsIG9wYXF1ZUxheWVycz4gewpAQCAtMjQ2Nyw4ICsyNDY3LDgg
QEAgcHJvdGVjdGVkOgogICAgICAgICB0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlKiB0b3Btb3N0
ID0gdGhpcy0+Y3JlYXRlRHJhd2luZ0xheWVyKHBhcmVudCwgdGhpcy0+aWRlbnRpdHlNYXRyaXgs
IEZsb2F0UG9pbnQoMCwgMCksIEludFNpemUoMTAwLCA1MCksIHRydWUpOwogICAgICAgICB0aGlz
LT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCi0gICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJX
aXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVu
ZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKLSAg
ICAgICAgb2NjbHVzaW9uLnNldExheWVyU2Npc3NvclJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAx
MDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoQ2xpcDx0eXBlbmFtZSBU
eXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1
c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgb2NjbHVzaW9uLnNldExh
eWVyQ2xpcFJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAKICAgICAgICAgLy8gfHRv
cG1vc3R8IG9jY2x1ZGVzIGV2ZXJ5dGhpbmcgcGFydGlhbGx5IHNvIHdlIGtub3cgb2NjbHVzaW9u
IGlzIGhhcHBlbmluZyBhdCBhbGwuCiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIodG9wbW9zdCwg
b2NjbHVzaW9uKTsKQEAgLTI1MzUsOCArMjUzNSw4IEBAIHByb3RlY3RlZDoKIAogICAgICAgICB0
aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCi0gICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNr
ZXJXaXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6
UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsK
LSAgICAgICAgb2NjbHVzaW9uLnNldExheWVyU2Npc3NvclJlY3QoSW50UmVjdCgwLCAwLCAxMDAw
LCAxMDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoQ2xpcDx0eXBlbmFt
ZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9j
Y2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgb2NjbHVzaW9uLnNl
dExheWVyQ2xpcFJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAKICAgICAgICAgLy8g
VGhlc2UgbGF5ZXJzIG9jY2x1ZGUgcGl4ZWxzIGRpcmVjdGx5IGJlc2lkZSB0aGUgZmlsdGVyZWRT
dXJmYWNlLiBCZWNhdXNlIGZpbHRlcmVkIHN1cmZhY2UgYmxlbmRzIHBpeGVscyBpbiBhIHJhZGl1
cywgaXQgd2lsbAogICAgICAgICAvLyBuZWVkIHRvIHNlZSBzb21lIG9mIHRoZSBwaXhlbHMgKHVw
IHRvIHJhZGl1cyBmYXIpIHVuZGVybmVhdGggdGhlIG9jY2x1ZGluZ0xheWVycy4KQEAgLTI2NTcs
OCArMjY1Nyw4IEBAIHByb3RlY3RlZDoKIAogICAgICAgICB0aGlzLT5jYWxjRHJhd0V0Yyhyb290
KTsKIAotICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aFNjaXNzb3I8dHlwZW5hbWUg
VHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2Ns
dXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7Ci0gICAgICAgIG9jY2x1c2lvbi5zZXRM
YXllclNjaXNzb3JSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBUZXN0
Q0NPY2NsdXNpb25UcmFja2VyV2l0aENsaXA8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlw
ZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAx
MDAwLCAxMDAwKSk7CisgICAgICAgIG9jY2x1c2lvbi5zZXRMYXllckNsaXBSZWN0KEludFJlY3Qo
MCwgMCwgMTAwMCwgMTAwMCkpOwogCiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIob2NjbHVkaW5n
TGF5ZXJBYm92ZSwgb2NjbHVzaW9uKTsKICAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJl
Y3QoMTAwIC8gMiwgMTAwIC8gMiwgNTAgLyAyLCA1MCAvIDIpLCBvY2NsdXNpb24ub2NjbHVzaW9u
SW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKQEAgLTI3MjEsOCArMjcyMSw4IEBAIHByb3RlY3Rl
ZDoKIAogICAgICAgICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCi0gICAgICAgIFRlc3RD
Q09jY2x1c2lvblRyYWNrZXJXaXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0
eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAs
IDEwMDAsIDEwMDApKTsKLSAgICAgICAgb2NjbHVzaW9uLnNldExheWVyU2Npc3NvclJlY3QoSW50
UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJX
aXRoQ2xpcDx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVy
U3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAg
ICAgb2NjbHVzaW9uLnNldExheWVyQ2xpcFJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7
CiAKICAgICAgICAgLy8gVGhlc2UgbGF5ZXJzIG9jY2x1ZGUgcGl4ZWxzIGRpcmVjdGx5IGJlc2lk
ZSB0aGUgZmlsdGVyZWRTdXJmYWNlLiBCZWNhdXNlIGZpbHRlcmVkIHN1cmZhY2UgYmxlbmRzIHBp
eGVscyBpbiBhIHJhZGl1cywgaXQgd2lsbAogICAgICAgICAvLyBuZWVkIHRvIHNlZSBzb21lIG9m
IHRoZSBwaXhlbHMgKHVwIHRvIHJhZGl1cyBmYXIpIHVuZGVybmVhdGggdGhlIG9jY2x1ZGluZ0xh
eWVycy4KQEAgLTI4NDAsOCArMjg0MCw4IEBAIHByb3RlY3RlZDoKIAogICAgICAgICB0aGlzLT5j
YWxjRHJhd0V0YyhwYXJlbnQpOwogCi0gICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRo
U2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVy
U3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKLSAgICAg
ICAgb2NjbHVzaW9uLnNldExheWVyU2Npc3NvclJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAw
KSk7CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoQ2xpcDx0eXBlbmFtZSBUeXBl
czo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lv
bihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgb2NjbHVzaW9uLnNldExheWVy
Q2xpcFJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAKICAgICAgICAgLy8gVGhlIHN1
cmZhY2UgaGFzIGEgYmFja2dyb3VuZCBibHVyLCBzbyBpdCBibHVycyBub24tb3BhcXVlIHBpeGVs
cyBiZWxvdyBpdC4KICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihmaWx0ZXJlZFN1cmZhY2UsIG9j
Y2x1c2lvbik7CkBAIC0yODg5LDggKzI4ODksOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICAgICAgdGhp
cy0+Y2FsY0RyYXdFdGMocGFyZW50KTsKIAotICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2Vy
V2l0aFNjaXNzb3I8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJl
bmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7Ci0g
ICAgICAgIG9jY2x1c2lvbi5zZXRMYXllclNjaXNzb3JSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwg
MTAwMCkpOworICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aENsaXA8dHlwZW5hbWUg
VHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2Ns
dXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIG9jY2x1c2lvbi5zZXRM
YXllckNsaXBSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwogCiAgICAgICAgIHRoaXMt
PnZpc2l0TGF5ZXIoYWJvdmVSZXBsaWNhTGF5ZXIsIG9jY2x1c2lvbik7CiAgICAgICAgIHRoaXMt
PnZpc2l0TGF5ZXIoYWJvdmVTdXJmYWNlTGF5ZXIsIG9jY2x1c2lvbik7CkBAIC0yOTQzLDggKzI5
NDMsOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICAgICAgdGhpcy0+Y2FsY0RyYXdFdGMocGFyZW50KTsK
IAotICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aFNjaXNzb3I8dHlwZW5hbWUgVHlw
ZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNp
b24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7Ci0gICAgICAgIG9jY2x1c2lvbi5zZXRMYXll
clNjaXNzb3JSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBUZXN0Q0NP
Y2NsdXNpb25UcmFja2VyV2l0aENsaXA8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5h
bWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAw
LCAxMDAwKSk7CisgICAgICAgIG9jY2x1c2lvbi5zZXRMYXllckNsaXBSZWN0KEludFJlY3QoMCwg
MCwgMTAwMCwgMTAwMCkpOwogCiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIoYmVzaWRlUmVwbGlj
YUxheWVyLCBvY2NsdXNpb24pOwogICAgICAgICB0aGlzLT52aXNpdExheWVyKGJlc2lkZVN1cmZh
Y2VMYXllciwgb2NjbHVzaW9uKTsKQEAgLTI5OTgsOCArMjk5OCw4IEBAIHByb3RlY3RlZDoKICAg
ICAgICAgdHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSogc21hbGwgPSB0aGlzLT5jcmVhdGVEcmF3
aW5nTGF5ZXIocGFyZW50LCB0aGlzLT5pZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAwKSwg
YmVsb3dUcmFja2luZ1NpemUsIHRydWUpOwogICAgICAgICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJl
bnQpOwogCi0gICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoU2Npc3Nvcjx0eXBlbmFt
ZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9j
Y2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKLSAgICAgICAgb2NjbHVzaW9uLnNl
dExheWVyU2Npc3NvclJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRl
c3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoQ2xpcDx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0
eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAs
IDEwMDAsIDEwMDApKTsKKyAgICAgICAgb2NjbHVzaW9uLnNldExheWVyQ2xpcFJlY3QoSW50UmVj
dCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAgICAgICAgIG9jY2x1c2lvbi5zZXRNaW5pbXVtVHJhY2tp
bmdTaXplKHRyYWNraW5nU2l6ZSk7CiAKICAgICAgICAgLy8gVGhlIHNtYWxsIGxheWVyIGlzIG5v
dCB0cmFja2VkIGJlY2F1c2UgaXQgaXMgdG9vIHNtYWxsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvVGlsZWRMYXllckNocm9taXVtVGVzdC5jcHAKaW5kZXggM2Fk
NjZiMWUxNzRlMmQzOWQxYTBhZGZlNDljMjAzNTQ3NmIyZjcyZC4uYmFiNzE2OGM0MGQwODZlYTdk
M2VjNTI1MjU5MmU4MDJjZjI5MTEwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCkBAIC01OCw3ICs1OCw3IEBA
IGNsYXNzIFRlc3RDQ09jY2x1c2lvblRyYWNrZXIgOiBwdWJsaWMgQ0NPY2NsdXNpb25UcmFja2Vy
IHsKIHB1YmxpYzoKICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyKCkKICAgICAgICAgOiBDQ09j
Y2x1c2lvblRyYWNrZXIoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSwgdHJ1ZSkKLSAgICAgICAg
LCBtX3NjaXNzb3JSZWN0SW5TY3JlZW4oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSkKKyAgICAg
ICAgLCBtX2xheWVyQ2xpcFJlY3RJblRhcmdldChJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKQog
ICAgIHsKICAgICAgICAgLy8gUHJldGVuZCB3ZSBoYXZlIHZpc2l0ZWQgYSByZW5kZXIgc3VyZmFj
ZS4KICAgICAgICAgbV9zdGFjay5hcHBlbmQoU3RhY2tPYmplY3QoKSk7CkBAIC02NywxMCArNjcs
MTAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0T2NjbHVzaW9uKGNvbnN0IFJlZ2lvbiYgb2NjbHVz
aW9uKSB7IG1fc3RhY2subGFzdCgpLm9jY2x1c2lvbkluU2NyZWVuID0gb2NjbHVzaW9uOyB9CiAK
IHByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIEludFJlY3QgbGF5ZXJTY2lzc29yUmVjdEluVGFyZ2V0
U3VyZmFjZShjb25zdCBMYXllckNocm9taXVtKiBsYXllcikgY29uc3QgeyByZXR1cm4gbV9zY2lz
c29yUmVjdEluU2NyZWVuOyB9CisgICAgdmlydHVhbCBJbnRSZWN0IGxheWVyQ2xpcFJlY3RJblRh
cmdldChjb25zdCBMYXllckNocm9taXVtKiBsYXllcikgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4g
bV9sYXllckNsaXBSZWN0SW5UYXJnZXQ7IH0KIAogcHJpdmF0ZToKLSAgICBJbnRSZWN0IG1fc2Np
c3NvclJlY3RJblNjcmVlbjsKKyAgICBJbnRSZWN0IG1fbGF5ZXJDbGlwUmVjdEluVGFyZ2V0Owog
fTsKIAogY2xhc3MgVGlsZWRMYXllckNocm9taXVtVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0
IHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157553</attachid>
            <date>2012-08-09 14:34:37 -0700</date>
            <delta_ts>2012-08-10 08:29:18 -0700</delta_ts>
            <desc>for-ews</desc>
            <filename>bug-93630-20120809173410.patch</filename>
            <type>text/plain</type>
            <size>75366</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1MjAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGI5Zjk0NzkxMTU5Njkx
ZDhlZDEzNDFmNjZhOTgwMWM3YjNhODc3MC4uNTk4YTM1YzE3MTk0ODQzMmI3YTI0ZmNhOGUwMTQ5
MDk4Yjk0NmMyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTA4LTA5ICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gUmVt
b3ZlIHNjaXNzb3IgZnJvbSB0aGUgbmFtaW5ncyBpbiBDQ09jY2x1c2lvblRyYWNrZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkzNjMwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgQWRyaWVubmUgV2Fsa2VyLgorCisgICAgICAgIEFzIGEgZm9sbG93dXAg
dG8gd2tiLnVnLzkxODAwIHdoaWNoIHN0b3BzIHVzaW5nIHBhcnRpYWwtc3dhcCBzY2lzc29yCisg
ICAgICAgIGluIHRoZSBvY2NsdXNpb24gdHJhY2tlciwgdGhpcyBkb2VzIGEgbGFyZ2UgcmVuYW1l
IHRvIHRoZSBvY2NsdXNpb24KKyAgICAgICAgdHJhY2tlciBhbmQgYWZmZWN0ZWQgdGVzdHMgdG8g
cmVtb3ZlICJzY2lzc29yIiBmcm9tIHRoZSBuYW1lcyBvZiBpdHMKKyAgICAgICAgdmFyaWFibGVz
IGFuZCBtZXRob2RzLCBpbnN0ZWFkIHJlZmxlY3RpbmcgdGhlaXIgbmV3IGJlaGF2aW91ci4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDT2NjbHVzaW9uVHJhY2tl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjo6OkNDT2NjbHVzaW9uVHJhY2tlckJhc2UpOgorICAg
ICAgICAoV2ViQ29yZTo6YWRkT2NjbHVzaW9uQmVoaW5kTGF5ZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6OjptYXJrT2NjbHVkZWRCZWhpbmRMYXllcik6CisgICAgICAgIChXZWJDb3JlOjp0ZXN0Q29u
dGVudFJlY3RPY2NsdWRlZCk6CisgICAgICAgIChXZWJDb3JlOjo6Om9jY2x1ZGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbXB1dGVVbm9jY2x1ZGVkQ29udGVudFJlY3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Ojp1bm9jY2x1ZGVkQ29udGVudFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6Ojp1bm9j
Y2x1ZGVkQ29udHJpYnV0aW5nU3VyZmFjZUNvbnRlbnRSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
Ojo6bGF5ZXJDbGlwUmVjdEluVGFyZ2V0KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDT2NjbHVzaW9uVHJhY2tlci5oOgorICAg
ICAgICAoQ0NPY2NsdXNpb25UcmFja2VyQmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ09jY2x1
c2lvblRyYWNrZXJCYXNlOjpjb21wdXRlVmlzaWJsZVJlZ2lvbkluU2NyZWVuKToKKwogMjAxMi0w
OC0wOSAgSHVhbmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KIAogICAgICAg
ICBFeHRyYWN0IHRoZSBkZWZpbml0aW9uIG9mIE5hdGl2ZUltYWdlUHRyIGZyb20gSW1hZ2VTb3Vy
Y2UuaCBpbnRvIE5hdGl2ZUltYWdlUHRyLmguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDM0YWYzODk4M2YyZTUwYjMwMWUwNDE2N2NjZTQ4OTc1ZjQ2ODdmY2IuLjQ3YTAwMDFjYjgyYWZh
NTEwMThhMzY0MDdkYzMxOTcxODUzYTI3ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDUgKzEsNjkgQEAKIDIwMTItMDgtMDkgIERhbmEgSmFuc2VucyAgPGRhbmFrakBjaHJvbWl1
bS5vcmc+CiAKKyAgICAgICAgW2Nocm9taXVtXSBSZW1vdmUgc2Npc3NvciBmcm9tIHRoZSBuYW1p
bmdzIGluIENDT2NjbHVzaW9uVHJhY2tlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTM2MzAKKworICAgICAgICBSZXZpZXdlZCBieSBBZHJpZW5uZSBX
YWxrZXIuCisKKyAgICAgICAgKiB0ZXN0cy9DQ09jY2x1c2lvblRyYWNrZXJUZXN0LmNwcDoKKyAg
ICAgICAgKFdlYktpdFRlc3RzOjpUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aENsaXA6OlRlc3RD
Q09jY2x1c2lvblRyYWNrZXJXaXRoQ2xpcCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6VGVzdEND
T2NjbHVzaW9uVHJhY2tlcldpdGhDbGlwOjpzZXRMYXllckNsaXBSZWN0KToKKyAgICAgICAgKFdl
YktpdFRlc3RzOjpUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aENsaXA6OnVzZURlZmF1bHRMYXll
ckNsaXBSZWN0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpUZXN0Q0NPY2NsdXNpb25UcmFja2Vy
V2l0aENsaXA6OmxheWVyQ2xpcFJlY3RJblRhcmdldCk6CisgICAgICAgIChUZXN0Q0NPY2NsdXNp
b25UcmFja2VyV2l0aENsaXApOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJh
Y2tlclRlc3RJZGVudGl0eVRyYW5zZm9ybXM6OnJ1bk15VGVzdCk6CisgICAgICAgIChXZWJLaXRU
ZXN0czo6Q0NPY2NsdXNpb25UcmFja2VyVGVzdFJvdGF0ZWRDaGlsZDo6cnVuTXlUZXN0KToKKyAg
ICAgICAgKFdlYktpdFRlc3RzOjpDQ09jY2x1c2lvblRyYWNrZXJUZXN0VHJhbnNsYXRlZENoaWxk
OjpydW5NeVRlc3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRl
c3RDaGlsZEluUm90YXRlZENoaWxkOjpydW5NeVRlc3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6
OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RWaXNpdFRhcmdldFR3b1RpbWVzOjpydW5NeVRlc3QpOgor
ICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RTdXJmYWNlUm90YXRl
ZE9mZkF4aXM6OnJ1bk15VGVzdCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NPY2NsdXNpb25U
cmFja2VyVGVzdFN1cmZhY2VXaXRoVHdvT3BhcXVlQ2hpbGRyZW46OnJ1bk15VGVzdCk6CisgICAg
ICAgIChXZWJLaXRUZXN0czo6Q0NPY2NsdXNpb25UcmFja2VyVGVzdE92ZXJsYXBwaW5nU3VyZmFj
ZVNpYmxpbmdzOjpydW5NeVRlc3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9u
VHJhY2tlclRlc3RPdmVybGFwcGluZ1N1cmZhY2VTaWJsaW5nc1dpdGhUd29UcmFuc2Zvcm1zOjpy
dW5NeVRlc3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RG
aWx0ZXJzOjpydW5NeVRlc3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJh
Y2tlclRlc3RSZXBsaWNhRG9lc09jY2x1ZGU6OnJ1bk15VGVzdCk6CisgICAgICAgIChXZWJLaXRU
ZXN0czo6Q0NPY2NsdXNpb25UcmFja2VyVGVzdFJlcGxpY2FXaXRoQ2xpcHBpbmc6OnJ1bk15VGVz
dCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NPY2NsdXNpb25UcmFja2VyVGVzdFJlcGxpY2FX
aXRoTWFzazo6cnVuTXlUZXN0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ09jY2x1c2lvblRy
YWNrZXJUZXN0TGF5ZXJDbGlwUmVjdE91dHNpZGVDaGlsZDo6cnVuTXlUZXN0KToKKyAgICAgICAg
KFdlYktpdFRlc3RzKToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ09jY2x1c2lvblRyYWNrZXJU
ZXN0Vmlld3BvcnRSZWN0T3V0c2lkZUNoaWxkOjpydW5NeVRlc3QpOgorICAgICAgICAoV2ViS2l0
VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RMYXllckNsaXBSZWN0T3ZlckNoaWxkOjpydW5N
eVRlc3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RWaWV3
cG9ydFJlY3RPdmVyQ2hpbGQ6OnJ1bk15VGVzdCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NP
Y2NsdXNpb25UcmFja2VyVGVzdExheWVyQ2xpcFJlY3RQYXJ0bHlPdmVyQ2hpbGQ6OnJ1bk15VGVz
dCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NPY2NsdXNpb25UcmFja2VyVGVzdFZpZXdwb3J0
UmVjdFBhcnRseU92ZXJDaGlsZDo6cnVuTXlUZXN0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpD
Q09jY2x1c2lvblRyYWNrZXJUZXN0TGF5ZXJDbGlwUmVjdE92ZXJOb3RoaW5nOjpydW5NeVRlc3Qp
OgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RWaWV3cG9ydFJl
Y3RPdmVyTm90aGluZzo6cnVuTXlUZXN0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ09jY2x1
c2lvblRyYWNrZXJUZXN0TGF5ZXJDbGlwUmVjdEZvckxheWVyT2ZmT3JpZ2luOjpydW5NeVRlc3Qp
OgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RPcGFxdWVDb250
ZW50c1JlZ2lvbkVtcHR5OjpydW5NeVRlc3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2Nj
bHVzaW9uVHJhY2tlclRlc3RPcGFxdWVDb250ZW50c1JlZ2lvbk5vbkVtcHR5OjpydW5NeVRlc3Qp
OgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3QzZFRyYW5zZm9y
bTo6cnVuTXlUZXN0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ09jY2x1c2lvblRyYWNrZXJU
ZXN0VW5zb3J0ZWQzZExheWVyczo6cnVuTXlUZXN0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpD
Q09jY2x1c2lvblRyYWNrZXJUZXN0UGVyc3BlY3RpdmVUcmFuc2Zvcm06OnJ1bk15VGVzdCk6Cisg
ICAgICAgIChXZWJLaXRUZXN0czo6Q0NPY2NsdXNpb25UcmFja2VyVGVzdFBlcnNwZWN0aXZlVHJh
bnNmb3JtQmVoaW5kQ2FtZXJhOjpydW5NeVRlc3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkND
T2NjbHVzaW9uVHJhY2tlclRlc3RMYXllckJlaGluZENhbWVyYURvZXNOb3RPY2NsdWRlOjpydW5N
eVRlc3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RMYXJn
ZVBpeGVsc09jY2x1ZGVJbnNpZGVDbGlwUmVjdDo6cnVuTXlUZXN0KToKKyAgICAgICAgKFdlYktp
dFRlc3RzOjpDQ09jY2x1c2lvblRyYWNrZXJUZXN0QW5pbWF0aW9uT3BhY2l0eTFPbk1haW5UaHJl
YWQ6OnJ1bk15VGVzdCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NPY2NsdXNpb25UcmFja2Vy
VGVzdEFuaW1hdGlvbk9wYWNpdHkwT25NYWluVGhyZWFkOjpydW5NeVRlc3QpOgorICAgICAgICAo
V2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RBbmltYXRpb25UcmFuc2xhdGVPbk1h
aW5UaHJlYWQ6OnJ1bk15VGVzdCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NPY2NsdXNpb25U
cmFja2VyVGVzdFN1cmZhY2VPY2NsdXNpb25UcmFuc2xhdGVzVG9QYXJlbnQ6OnJ1bk15VGVzdCk6
CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NPY2NsdXNpb25UcmFja2VyVGVzdFN1cmZhY2VPY2Ns
dXNpb25UcmFuc2xhdGVzV2l0aENsaXBwaW5nOjpydW5NeVRlc3QpOgorICAgICAgICAoV2ViS2l0
VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RSZXBsaWNhT2NjbHVkZWQ6OnJ1bk15VGVzdCk6
CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NPY2NsdXNpb25UcmFja2VyVGVzdFN1cmZhY2VXaXRo
UmVwbGljYVVub2NjbHVkZWQ6OnJ1bk15VGVzdCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NP
Y2NsdXNpb25UcmFja2VyVGVzdFN1cmZhY2VBbmRSZXBsaWNhT2NjbHVkZWREaWZmZXJlbnRseTo6
cnVuTXlUZXN0KToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ09jY2x1c2lvblRyYWNrZXJUZXN0
U3VyZmFjZUNoaWxkT2ZTdXJmYWNlOjpydW5NeVRlc3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6
OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RUb3Btb3N0U3VyZmFjZUlzQ2xpcHBlZFRvVmlld3BvcnQ6
OnJ1bk15VGVzdCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NPY2NsdXNpb25UcmFja2VyVGVz
dFN1cmZhY2VDaGlsZE9mQ2xpcHBpbmdTdXJmYWNlOjpydW5NeVRlc3QpOgorICAgICAgICAoV2Vi
S2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3REb250T2NjbHVkZVBpeGVsc05lZWRlZEZv
ckJhY2tncm91bmRGaWx0ZXI6OnJ1bk15VGVzdCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NP
Y2NsdXNpb25UcmFja2VyVGVzdFR3b0JhY2tncm91bmRGaWx0ZXJzUmVkdWNlT2NjbHVzaW9uVHdp
Y2U6OnJ1bk15VGVzdCk6CisgICAgICAgIChXZWJLaXRUZXN0czo6Q0NPY2NsdXNpb25UcmFja2Vy
VGVzdERvbnRPY2NsdWRlUGl4ZWxzTmVlZGVkRm9yQmFja2dyb3VuZEZpbHRlcldpdGhDbGlwOjpy
dW5NeVRlc3QpOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RE
b250UmVkdWNlT2NjbHVzaW9uQmVsb3dCYWNrZ3JvdW5kRmlsdGVyOjpydW5NeVRlc3QpOgorICAg
ICAgICAoV2ViS2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3REb250UmVkdWNlT2NjbHVz
aW9uSWZCYWNrZ3JvdW5kRmlsdGVySXNPY2NsdWRlZDo6cnVuTXlUZXN0KToKKyAgICAgICAgKFdl
YktpdFRlc3RzOjpDQ09jY2x1c2lvblRyYWNrZXJUZXN0UmVkdWNlT2NjbHVzaW9uV2hlbkJhY2tn
cm91bmRGaWx0ZXJJc1BhcnRpYWxseU9jY2x1ZGVkOjpydW5NeVRlc3QpOgorICAgICAgICAoV2Vi
S2l0VGVzdHM6OkNDT2NjbHVzaW9uVHJhY2tlclRlc3RNaW5pbXVtVHJhY2tpbmdTaXplOjpydW5N
eVRlc3QpOgorICAgICAgICAqIHRlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRlc3QuY3BwOgorCisy
MDEyLTA4LTA5ICBEYW5hIEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCiAgICAgICAg
IFtjaHJvbWl1bV0gRG8gcGFydGlhbC1zd2FwIHNjaXNzb3Jpbmcgb24gcXVhZHMgZHVyaW5nIGRy
YXcgaW5zdGVhZCBvZiBvbiBsYXllcnMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTkxODAwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDT2NjbHVzaW9uVHJhY2tlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ09jY2x1c2lvblRyYWNrZXIu
Y3BwCmluZGV4IGE5YTk3Y2M5YzcwNDM5NjJjNjAwMWRlOTljZjc2ODVkNTdmOGQ1ZDcuLmFlNDkw
Yjc2ZTRmMjg5MjRhNGRjYzRhOWQ5MDM0MDg2MTA4ZmY0NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDT2NjbHVzaW9uVHJhY2tlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NP
Y2NsdXNpb25UcmFja2VyLmNwcApAQCAtNDIsOCArNDIsOCBAQCB1c2luZyBXZWJLaXQ6OldlYlRy
YW5zZm9ybWF0aW9uTWF0cml4OwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBMYXllclR5cGUsIHR5cGVuYW1lIFJlbmRlclN1cmZhY2VUeXBlPgotQ0NPY2NsdXNpb25U
cmFja2VyQmFzZTxMYXllclR5cGUsIFJlbmRlclN1cmZhY2VUeXBlPjo6Q0NPY2NsdXNpb25UcmFj
a2VyQmFzZShJbnRSZWN0IHNjaXNzb3JSZWN0SW5TY3JlZW5TcGFjZSwgYm9vbCByZWNvcmRNZXRy
aWNzRm9yRnJhbWUpCi0gICAgOiBtX3NjaXNzb3JSZWN0SW5TY3JlZW5TcGFjZShzY2lzc29yUmVj
dEluU2NyZWVuU3BhY2UpCitDQ09jY2x1c2lvblRyYWNrZXJCYXNlPExheWVyVHlwZSwgUmVuZGVy
U3VyZmFjZVR5cGU+OjpDQ09jY2x1c2lvblRyYWNrZXJCYXNlKEludFJlY3Qgcm9vdFRhcmdldFJl
Y3QsIGJvb2wgcmVjb3JkTWV0cmljc0ZvckZyYW1lKQorICAgIDogbV9yb290VGFyZ2V0UmVjdChy
b290VGFyZ2V0UmVjdCkKICAgICAsIG1fb3ZlcmRyYXdNZXRyaWNzKENDT3ZlcmRyYXdNZXRyaWNz
OjpjcmVhdGUocmVjb3JkTWV0cmljc0ZvckZyYW1lKSkKICAgICAsIG1fb2NjbHVkaW5nU2NyZWVu
U3BhY2VSZWN0cygwKQogewpAQCAtMjY3LDcgKzI2Nyw3IEBAIHZvaWQgQ0NPY2NsdXNpb25UcmFj
a2VyQmFzZTxMYXllclR5cGUsIFJlbmRlclN1cmZhY2VUeXBlPjo6bGVhdmVUb1JlbmRlclRhcmdl
dChjCiAKIC8vIEZJWE1FOiBSZW1vdmUgdXNlUGFpbnRUcmFja2luZyB3aGVuIHBhaW50IHRyYWNr
aW5nIGlzIG9uIGZvciBwYWludCBjdWxsaW5nLgogdGVtcGxhdGU8dHlwZW5hbWUgTGF5ZXJUeXBl
Pgotc3RhdGljIGlubGluZSB2b2lkIGFkZE9jY2x1c2lvbkJlaGluZExheWVyKFJlZ2lvbiYgcmVn
aW9uLCBjb25zdCBMYXllclR5cGUqIGxheWVyLCBjb25zdCBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJp
eCYgdHJhbnNmb3JtLCBjb25zdCBSZWdpb24mIG9wYXF1ZUNvbnRlbnRzLCBjb25zdCBJbnRSZWN0
JiBzY2lzc29yUmVjdCwgY29uc3QgSW50U2l6ZSYgbWluaW11bVRyYWNraW5nU2l6ZSwgVmVjdG9y
PEludFJlY3Q+KiBvY2NsdWRpbmdTY3JlZW5TcGFjZVJlY3RzKQorc3RhdGljIGlubGluZSB2b2lk
IGFkZE9jY2x1c2lvbkJlaGluZExheWVyKFJlZ2lvbiYgcmVnaW9uLCBjb25zdCBMYXllclR5cGUq
IGxheWVyLCBjb25zdCBXZWJUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBjb25zdCBS
ZWdpb24mIG9wYXF1ZUNvbnRlbnRzLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdEluVGFyZ2V0LCBj
b25zdCBJbnRTaXplJiBtaW5pbXVtVHJhY2tpbmdTaXplLCBWZWN0b3I8SW50UmVjdD4qIG9jY2x1
ZGluZ1NjcmVlblNwYWNlUmVjdHMpCiB7CiAgICAgQVNTRVJUKGxheWVyLT52aXNpYmxlQ29udGVu
dFJlY3QoKS5jb250YWlucyhvcGFxdWVDb250ZW50cy5ib3VuZHMoKSkpOwogCkBAIC0yODEsNyAr
MjgxLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGFkZE9jY2x1c2lvbkJlaGluZExheWVyKFJlZ2lv
biYgcmVnaW9uLCBjb25zdCBMYXllclR5cGUqIGxheWUKICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IGNvbnRlbnRSZWN0cy5zaXplKCk7ICsraSkgewogICAgICAgICAvLyBXZSd2ZSBhbHJlYWR5
IGNoZWNrZWQgZm9yIGNsaXBwaW5nIGluIHRoZSBtYXBRdWFkIGNhbGwgYWJvdmUsIHRoZXNlIGNh
bGxzIHNob3VsZCBub3QgY2xpcCBhbnl0aGluZyBmdXJ0aGVyLgogICAgICAgICBJbnRSZWN0IHRy
YW5zZm9ybWVkUmVjdCA9IGVuY2xvc2VkSW50UmVjdChDQ01hdGhVdGlsOjptYXBDbGlwcGVkUmVj
dCh0cmFuc2Zvcm0sIEZsb2F0UmVjdChjb250ZW50UmVjdHNbaV0pKSk7Ci0gICAgICAgIHRyYW5z
Zm9ybWVkUmVjdC5pbnRlcnNlY3Qoc2Npc3NvclJlY3QpOworICAgICAgICB0cmFuc2Zvcm1lZFJl
Y3QuaW50ZXJzZWN0KGNsaXBSZWN0SW5UYXJnZXQpOwogICAgICAgICBpZiAodHJhbnNmb3JtZWRS
ZWN0LndpZHRoKCkgPj0gbWluaW11bVRyYWNraW5nU2l6ZS53aWR0aCgpIHx8IHRyYW5zZm9ybWVk
UmVjdC5oZWlnaHQoKSA+PSBtaW5pbXVtVHJhY2tpbmdTaXplLmhlaWdodCgpKSB7CiAgICAgICAg
ICAgICBpZiAob2NjbHVkaW5nU2NyZWVuU3BhY2VSZWN0cykKICAgICAgICAgICAgICAgICBvY2Ns
dWRpbmdTY3JlZW5TcGFjZVJlY3RzLT5hcHBlbmQodHJhbnNmb3JtZWRSZWN0KTsKQEAgLTMwOCwz
MCArMzA4LDMwIEBAIHZvaWQgQ0NPY2NsdXNpb25UcmFja2VyQmFzZTxMYXllclR5cGUsIFJlbmRl
clN1cmZhY2VUeXBlPjo6bWFya09jY2x1ZGVkQmVoaW5kTGF5CiAgICAgaWYgKG9wYXF1ZUNvbnRl
bnRzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgSW50UmVjdCBzY2lzc29ySW5U
YXJnZXQgPSBsYXllclNjaXNzb3JSZWN0SW5UYXJnZXRTdXJmYWNlKGxheWVyKTsKKyAgICBJbnRS
ZWN0IGNsaXBSZWN0SW5UYXJnZXQgPSBsYXllckNsaXBSZWN0SW5UYXJnZXQobGF5ZXIpOwogICAg
IGlmIChsYXllclRyYW5zZm9ybXNUb1RhcmdldEtub3duKGxheWVyKSkKLSAgICAgICAgYWRkT2Nj
bHVzaW9uQmVoaW5kTGF5ZXI8TGF5ZXJUeXBlPihtX3N0YWNrLmxhc3QoKS5vY2NsdXNpb25JblRh
cmdldCwgbGF5ZXIsIGxheWVyLT5kcmF3VHJhbnNmb3JtKCksIG9wYXF1ZUNvbnRlbnRzLCBzY2lz
c29ySW5UYXJnZXQsIG1fbWluaW11bVRyYWNraW5nU2l6ZSwgMCk7CisgICAgICAgIGFkZE9jY2x1
c2lvbkJlaGluZExheWVyPExheWVyVHlwZT4obV9zdGFjay5sYXN0KCkub2NjbHVzaW9uSW5UYXJn
ZXQsIGxheWVyLCBsYXllci0+ZHJhd1RyYW5zZm9ybSgpLCBvcGFxdWVDb250ZW50cywgY2xpcFJl
Y3RJblRhcmdldCwgbV9taW5pbXVtVHJhY2tpbmdTaXplLCAwKTsKIAotICAgIC8vIFdlIG11c3Qg
Y2xpcCB0aGUgb2NjbHVzaW9uIHdpdGhpbiB0aGUgbGF5ZXIncyBzY2lzc29ySW5UYXJnZXQgd2l0
aGluIHNjcmVlbiBzcGFjZSBhcyB3ZWxsLiBJZiB0aGUgc2Npc3NvciByZWN0IGNhbid0IGJlIG1v
dmVkIHRvIHNjcmVlbiBzcGFjZSBhbmQKKyAgICAvLyBXZSBtdXN0IGNsaXAgdGhlIG9jY2x1c2lv
biB3aXRoaW4gdGhlIGxheWVyJ3MgY2xpcFJlY3RJblRhcmdldCB3aXRoaW4gc2NyZWVuIHNwYWNl
IGFzIHdlbGwuIElmIHRoZSBjbGlwIHJlY3QgY2FuJ3QgYmUgbW92ZWQgdG8gc2NyZWVuIHNwYWNl
IGFuZAogICAgIC8vIHJlbWFpbiByZWN0aWxpbmVhciwgdGhlbiB3ZSBkb24ndCBhZGQgYW55IG9j
Y2x1c2lvbiBpbiBzY3JlZW4gc3BhY2UuCiAKICAgICBpZiAobGF5ZXJUcmFuc2Zvcm1zVG9TY3Jl
ZW5Lbm93bihsYXllcikpIHsKICAgICAgICAgV2ViVHJhbnNmb3JtYXRpb25NYXRyaXggdGFyZ2V0
VG9TY3JlZW5UcmFuc2Zvcm0gPSBtX3N0YWNrLmxhc3QoKS50YXJnZXQtPnJlbmRlclN1cmZhY2Uo
KS0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKTsKICAgICAgICAgYm9vbCBjbGlwcGVkOwotICAgICAg
ICBGbG9hdFF1YWQgc2Npc3NvckluU2NyZWVuUXVhZCA9IENDTWF0aFV0aWw6Om1hcFF1YWQodGFy
Z2V0VG9TY3JlZW5UcmFuc2Zvcm0sIEZsb2F0UXVhZChGbG9hdFJlY3Qoc2Npc3NvckluVGFyZ2V0
KSksIGNsaXBwZWQpOwotICAgICAgICAvLyBGSVhNRTogRmluZCBhIHJlY3QgaW50ZXJpb3IgdG8g
dGhlIHRyYW5zZm9ybWVkIHNjaXNzb3IgcXVhZC4KLSAgICAgICAgaWYgKGNsaXBwZWQgfHwgIXNj
aXNzb3JJblNjcmVlblF1YWQuaXNSZWN0aWxpbmVhcigpKQorICAgICAgICBGbG9hdFF1YWQgY2xp
cFF1YWRJblNjcmVlbiA9IENDTWF0aFV0aWw6Om1hcFF1YWQodGFyZ2V0VG9TY3JlZW5UcmFuc2Zv
cm0sIEZsb2F0UXVhZChGbG9hdFJlY3QoY2xpcFJlY3RJblRhcmdldCkpLCBjbGlwcGVkKTsKKyAg
ICAgICAgLy8gRklYTUU6IEZpbmQgYSByZWN0IGludGVyaW9yIHRvIHRoZSB0cmFuc2Zvcm1lZCBj
bGlwIHF1YWQuCisgICAgICAgIGlmIChjbGlwcGVkIHx8ICFjbGlwUXVhZEluU2NyZWVuLmlzUmVj
dGlsaW5lYXIoKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgSW50UmVjdCBzY2lzc29y
SW5TY3JlZW5SZWN0ID0gaW50ZXJzZWN0aW9uKG1fc2Npc3NvclJlY3RJblNjcmVlblNwYWNlLCBl
bmNsb3NlZEludFJlY3Qoc2Npc3NvckluU2NyZWVuUXVhZC5ib3VuZGluZ0JveCgpKSk7Ci0gICAg
ICAgIGFkZE9jY2x1c2lvbkJlaGluZExheWVyPExheWVyVHlwZT4obV9zdGFjay5sYXN0KCkub2Nj
bHVzaW9uSW5TY3JlZW4sIGxheWVyLCBsYXllci0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSwgb3Bh
cXVlQ29udGVudHMsIHNjaXNzb3JJblNjcmVlblJlY3QsIG1fbWluaW11bVRyYWNraW5nU2l6ZSwg
bV9vY2NsdWRpbmdTY3JlZW5TcGFjZVJlY3RzKTsKKyAgICAgICAgSW50UmVjdCBjbGlwUmVjdElu
U2NyZWVuID0gaW50ZXJzZWN0aW9uKG1fcm9vdFRhcmdldFJlY3QsIGVuY2xvc2VkSW50UmVjdChj
bGlwUXVhZEluU2NyZWVuLmJvdW5kaW5nQm94KCkpKTsKKyAgICAgICAgYWRkT2NjbHVzaW9uQmVo
aW5kTGF5ZXI8TGF5ZXJUeXBlPihtX3N0YWNrLmxhc3QoKS5vY2NsdXNpb25JblNjcmVlbiwgbGF5
ZXIsIGxheWVyLT5zY3JlZW5TcGFjZVRyYW5zZm9ybSgpLCBvcGFxdWVDb250ZW50cywgY2xpcFJl
Y3RJblNjcmVlbiwgbV9taW5pbXVtVHJhY2tpbmdTaXplLCBtX29jY2x1ZGluZ1NjcmVlblNwYWNl
UmVjdHMpOwogICAgIH0KIH0KIAotc3RhdGljIGlubGluZSBib29sIHRlc3RDb250ZW50UmVjdE9j
Y2x1ZGVkKGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBjb25zdCBXZWJUcmFuc2Zvcm1hdGlv
bk1hdHJpeCYgY29udGVudFNwYWNlVHJhbnNmb3JtLCBjb25zdCBJbnRSZWN0JiBzY2lzc29yUmVj
dCwgY29uc3QgUmVnaW9uJiBvY2NsdXNpb24pCitzdGF0aWMgaW5saW5lIGJvb2wgdGVzdENvbnRl
bnRSZWN0T2NjbHVkZWQoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IFdlYlRyYW5z
Zm9ybWF0aW9uTWF0cml4JiBjb250ZW50U3BhY2VUcmFuc2Zvcm0sIGNvbnN0IEludFJlY3QmIGNs
aXBSZWN0SW5UYXJnZXQsIGNvbnN0IFJlZ2lvbiYgb2NjbHVzaW9uKQogewogICAgIEZsb2F0UmVj
dCB0cmFuc2Zvcm1lZFJlY3QgPSBDQ01hdGhVdGlsOjptYXBDbGlwcGVkUmVjdChjb250ZW50U3Bh
Y2VUcmFuc2Zvcm0sIEZsb2F0UmVjdChjb250ZW50UmVjdCkpOwogICAgIC8vIFRha2UgdGhlIGVu
Y2xvc2luZ0ludFJlY3QsIGFzIHdlIHdhbnQgdG8gaW5jbHVkZSBwYXJ0aWFsIHBpeGVscyBpbiB0
aGUgdGVzdC4KLSAgICBJbnRSZWN0IHRhcmdldFJlY3QgPSBpbnRlcnNlY3Rpb24oZW5jbG9zaW5n
SW50UmVjdCh0cmFuc2Zvcm1lZFJlY3QpLCBzY2lzc29yUmVjdCk7CisgICAgSW50UmVjdCB0YXJn
ZXRSZWN0ID0gaW50ZXJzZWN0aW9uKGVuY2xvc2luZ0ludFJlY3QodHJhbnNmb3JtZWRSZWN0KSwg
Y2xpcFJlY3RJblRhcmdldCk7CiAgICAgcmV0dXJuIHRhcmdldFJlY3QuaXNFbXB0eSgpIHx8IG9j
Y2x1c2lvbi5jb250YWlucyh0YXJnZXRSZWN0KTsKIH0KIApAQCAtMzQ5LDEwICszNDksMTAgQEAg
Ym9vbCBDQ09jY2x1c2lvblRyYWNrZXJCYXNlPExheWVyVHlwZSwgUmVuZGVyU3VyZmFjZVR5cGU+
OjpvY2NsdWRlZChjb25zdCBMYXllclQKIAogICAgIEFTU0VSVChsYXllci0+cmVuZGVyVGFyZ2V0
KCkgPT0gbV9zdGFjay5sYXN0KCkudGFyZ2V0KTsKIAotICAgIGlmIChsYXllclRyYW5zZm9ybXNU
b1RhcmdldEtub3duKGxheWVyKSAmJiB0ZXN0Q29udGVudFJlY3RPY2NsdWRlZChjb250ZW50UmVj
dCwgbGF5ZXItPmRyYXdUcmFuc2Zvcm0oKSwgbGF5ZXJTY2lzc29yUmVjdEluVGFyZ2V0U3VyZmFj
ZShsYXllciksIG1fc3RhY2subGFzdCgpLm9jY2x1c2lvbkluVGFyZ2V0KSkKKyAgICBpZiAobGF5
ZXJUcmFuc2Zvcm1zVG9UYXJnZXRLbm93bihsYXllcikgJiYgdGVzdENvbnRlbnRSZWN0T2NjbHVk
ZWQoY29udGVudFJlY3QsIGxheWVyLT5kcmF3VHJhbnNmb3JtKCksIGxheWVyQ2xpcFJlY3RJblRh
cmdldChsYXllciksIG1fc3RhY2subGFzdCgpLm9jY2x1c2lvbkluVGFyZ2V0KSkKICAgICAgICAg
cmV0dXJuIHRydWU7CiAKLSAgICBpZiAobGF5ZXJUcmFuc2Zvcm1zVG9TY3JlZW5Lbm93bihsYXll
cikgJiYgdGVzdENvbnRlbnRSZWN0T2NjbHVkZWQoY29udGVudFJlY3QsIGxheWVyLT5zY3JlZW5T
cGFjZVRyYW5zZm9ybSgpLCBtX3NjaXNzb3JSZWN0SW5TY3JlZW5TcGFjZSwgbV9zdGFjay5sYXN0
KCkub2NjbHVzaW9uSW5TY3JlZW4pKSB7CisgICAgaWYgKGxheWVyVHJhbnNmb3Jtc1RvU2NyZWVu
S25vd24obGF5ZXIpICYmIHRlc3RDb250ZW50UmVjdE9jY2x1ZGVkKGNvbnRlbnRSZWN0LCBsYXll
ci0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSwgbV9yb290VGFyZ2V0UmVjdCwgbV9zdGFjay5sYXN0
KCkub2NjbHVzaW9uSW5TY3JlZW4pKSB7CiAgICAgICAgIGlmIChoYXNPY2NsdXNpb25Gcm9tT3V0
c2lkZVRhcmdldFN1cmZhY2UpCiAgICAgICAgICAgICAqaGFzT2NjbHVzaW9uRnJvbU91dHNpZGVU
YXJnZXRTdXJmYWNlID0gdHJ1ZTsKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0zNzAsMTQgKzM3
MCwxNCBAQCBzdGF0aWMgaW5saW5lIEludFJlY3QgcmVjdFN1YnRyYWN0UmVnaW9uKGNvbnN0IElu
dFJlY3QmIHJlY3QsIGNvbnN0IFJlZ2lvbiYgcmVnaQogICAgIHJldHVybiByZWN0UmVnaW9uLmJv
dW5kcygpOwogfQogCi1zdGF0aWMgaW5saW5lIEludFJlY3QgY29tcHV0ZVVub2NjbHVkZWRDb250
ZW50UmVjdChjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgV2ViVHJhbnNmb3JtYXRp
b25NYXRyaXgmIGNvbnRlbnRTcGFjZVRyYW5zZm9ybSwgY29uc3QgSW50UmVjdCYgc2Npc3NvclJl
Y3QsIGNvbnN0IFJlZ2lvbiYgb2NjbHVzaW9uKQorc3RhdGljIGlubGluZSBJbnRSZWN0IGNvbXB1
dGVVbm9jY2x1ZGVkQ29udGVudFJlY3QoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0
IFdlYlRyYW5zZm9ybWF0aW9uTWF0cml4JiBjb250ZW50U3BhY2VUcmFuc2Zvcm0sIGNvbnN0IElu
dFJlY3QmIGNsaXBSZWN0SW5UYXJnZXQsIGNvbnN0IFJlZ2lvbiYgb2NjbHVzaW9uKQogewogICAg
IGlmICghY29udGVudFNwYWNlVHJhbnNmb3JtLmlzSW52ZXJ0aWJsZSgpKQogICAgICAgICByZXR1
cm4gY29udGVudFJlY3Q7CiAKICAgICAvLyBUYWtlIHRoZSBlbmNsb3NpbmdJbnRSZWN0IGF0IGVh
Y2ggc3RlcCwgYXMgd2Ugd2FudCB0byBjb250YWluIGFueSB1bm9jY2x1ZGVkIHBhcnRpYWwgcGl4
ZWxzIGluIHRoZSByZXN1bHRpbmcgSW50UmVjdC4KICAgICBGbG9hdFJlY3QgdHJhbnNmb3JtZWRS
ZWN0ID0gQ0NNYXRoVXRpbDo6bWFwQ2xpcHBlZFJlY3QoY29udGVudFNwYWNlVHJhbnNmb3JtLCBG
bG9hdFJlY3QoY29udGVudFJlY3QpKTsKLSAgICBJbnRSZWN0IHNocnVua1JlY3QgPSByZWN0U3Vi
dHJhY3RSZWdpb24oaW50ZXJzZWN0aW9uKGVuY2xvc2luZ0ludFJlY3QodHJhbnNmb3JtZWRSZWN0
KSwgc2Npc3NvclJlY3QpLCBvY2NsdXNpb24pOworICAgIEludFJlY3Qgc2hydW5rUmVjdCA9IHJl
Y3RTdWJ0cmFjdFJlZ2lvbihpbnRlcnNlY3Rpb24oZW5jbG9zaW5nSW50UmVjdCh0cmFuc2Zvcm1l
ZFJlY3QpLCBjbGlwUmVjdEluVGFyZ2V0KSwgb2NjbHVzaW9uKTsKICAgICBJbnRSZWN0IHVub2Nj
bHVkZWRSZWN0ID0gZW5jbG9zaW5nSW50UmVjdChDQ01hdGhVdGlsOjpwcm9qZWN0Q2xpcHBlZFJl
Y3QoY29udGVudFNwYWNlVHJhbnNmb3JtLmludmVyc2UoKSwgRmxvYXRSZWN0KHNocnVua1JlY3Qp
KSk7CiAgICAgLy8gVGhlIHJlY3QgYmFjayBpbiBjb250ZW50IHNwYWNlIGlzIGEgYm91bmRpbmcg
Ym94IGFuZCBtYXkgZXh0ZW5kIG91dHNpZGUgb2YgdGhlIG9yaWdpbmFsIGNvbnRlbnRSZWN0LCBz
byBjbGFtcCBpdCB0byB0aGUgY29udGVudFJlY3RCb3VuZHMuCiAgICAgcmV0dXJuIGludGVyc2Vj
dGlvbih1bm9jY2x1ZGVkUmVjdCwgY29udGVudFJlY3QpOwpAQCAtMzk5LDExICszOTksMTEgQEAg
SW50UmVjdCBDQ09jY2x1c2lvblRyYWNrZXJCYXNlPExheWVyVHlwZSwgUmVuZGVyU3VyZmFjZVR5
cGU+Ojp1bm9jY2x1ZGVkQ29udGVudFIKIAogICAgIEludFJlY3QgdW5vY2NsdWRlZEluU2NyZWVu
ID0gY29udGVudFJlY3Q7CiAgICAgaWYgKGxheWVyVHJhbnNmb3Jtc1RvU2NyZWVuS25vd24obGF5
ZXIpKQotICAgICAgICB1bm9jY2x1ZGVkSW5TY3JlZW4gPSBjb21wdXRlVW5vY2NsdWRlZENvbnRl
bnRSZWN0KGNvbnRlbnRSZWN0LCBsYXllci0+c2NyZWVuU3BhY2VUcmFuc2Zvcm0oKSwgbV9zY2lz
c29yUmVjdEluU2NyZWVuU3BhY2UsIG1fc3RhY2subGFzdCgpLm9jY2x1c2lvbkluU2NyZWVuKTsK
KyAgICAgICAgdW5vY2NsdWRlZEluU2NyZWVuID0gY29tcHV0ZVVub2NjbHVkZWRDb250ZW50UmVj
dChjb250ZW50UmVjdCwgbGF5ZXItPnNjcmVlblNwYWNlVHJhbnNmb3JtKCksIG1fcm9vdFRhcmdl
dFJlY3QsIG1fc3RhY2subGFzdCgpLm9jY2x1c2lvbkluU2NyZWVuKTsKIAogICAgIEludFJlY3Qg
dW5vY2NsdWRlZEluVGFyZ2V0ID0gY29udGVudFJlY3Q7CiAgICAgaWYgKGxheWVyVHJhbnNmb3Jt
c1RvVGFyZ2V0S25vd24obGF5ZXIpKQotICAgICAgICB1bm9jY2x1ZGVkSW5UYXJnZXQgPSBjb21w
dXRlVW5vY2NsdWRlZENvbnRlbnRSZWN0KGNvbnRlbnRSZWN0LCBsYXllci0+ZHJhd1RyYW5zZm9y
bSgpLCBsYXllclNjaXNzb3JSZWN0SW5UYXJnZXRTdXJmYWNlKGxheWVyKSwgbV9zdGFjay5sYXN0
KCkub2NjbHVzaW9uSW5UYXJnZXQpOworICAgICAgICB1bm9jY2x1ZGVkSW5UYXJnZXQgPSBjb21w
dXRlVW5vY2NsdWRlZENvbnRlbnRSZWN0KGNvbnRlbnRSZWN0LCBsYXllci0+ZHJhd1RyYW5zZm9y
bSgpLCBsYXllckNsaXBSZWN0SW5UYXJnZXQobGF5ZXIpLCBtX3N0YWNrLmxhc3QoKS5vY2NsdXNp
b25JblRhcmdldCk7CiAKICAgICBpZiAoaGFzT2NjbHVzaW9uRnJvbU91dHNpZGVUYXJnZXRTdXJm
YWNlKQogICAgICAgICAqaGFzT2NjbHVzaW9uRnJvbU91dHNpZGVUYXJnZXRTdXJmYWNlID0gKGlu
dGVyc2VjdGlvbih1bm9jY2x1ZGVkSW5TY3JlZW4sIHVub2NjbHVkZWRJblRhcmdldCkgIT0gdW5v
Y2NsdWRlZEluVGFyZ2V0KTsKQEAgLTQ0Niw5ICs0NDYsOSBAQCBJbnRSZWN0IENDT2NjbHVzaW9u
VHJhY2tlckJhc2U8TGF5ZXJUeXBlLCBSZW5kZXJTdXJmYWNlVHlwZT46OnVub2NjbHVkZWRDb250
cmlidQogICAgIGlmIChzdXJmYWNlVHJhbnNmb3Jtc1RvU2NyZWVuS25vd24oc3VyZmFjZSkpIHsK
ICAgICAgICAgaWYgKGhhc09jY2x1c2lvbikgewogICAgICAgICAgICAgY29uc3QgU3RhY2tPYmpl
Y3QmIHNlY29uZExhc3QgPSBtX3N0YWNrW21fc3RhY2suc2l6ZSgpIC0gMl07Ci0gICAgICAgICAg
ICB1bm9jY2x1ZGVkSW5TY3JlZW4gPSBjb21wdXRlVW5vY2NsdWRlZENvbnRlbnRSZWN0KGNvbnRl
bnRSZWN0LCB0cmFuc2Zvcm1Ub1NjcmVlbiwgbV9zY2lzc29yUmVjdEluU2NyZWVuU3BhY2UsIHNl
Y29uZExhc3Qub2NjbHVzaW9uSW5TY3JlZW4pOworICAgICAgICAgICAgdW5vY2NsdWRlZEluU2Ny
ZWVuID0gY29tcHV0ZVVub2NjbHVkZWRDb250ZW50UmVjdChjb250ZW50UmVjdCwgdHJhbnNmb3Jt
VG9TY3JlZW4sIG1fcm9vdFRhcmdldFJlY3QsIHNlY29uZExhc3Qub2NjbHVzaW9uSW5TY3JlZW4p
OwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIHVub2NjbHVkZWRJblNjcmVlbiA9IGNvbXB1
dGVVbm9jY2x1ZGVkQ29udGVudFJlY3QoY29udGVudFJlY3QsIHRyYW5zZm9ybVRvU2NyZWVuLCBt
X3NjaXNzb3JSZWN0SW5TY3JlZW5TcGFjZSwgUmVnaW9uKCkpOworICAgICAgICAgICAgdW5vY2Ns
dWRlZEluU2NyZWVuID0gY29tcHV0ZVVub2NjbHVkZWRDb250ZW50UmVjdChjb250ZW50UmVjdCwg
dHJhbnNmb3JtVG9TY3JlZW4sIG1fcm9vdFRhcmdldFJlY3QsIFJlZ2lvbigpKTsKICAgICB9CiAK
ICAgICBJbnRSZWN0IHVub2NjbHVkZWRJblRhcmdldCA9IGNvbnRlbnRSZWN0OwpAQCAtNDY3LDcg
KzQ2Nyw3IEBAIEludFJlY3QgQ0NPY2NsdXNpb25UcmFja2VyQmFzZTxMYXllclR5cGUsIFJlbmRl
clN1cmZhY2VUeXBlPjo6dW5vY2NsdWRlZENvbnRyaWJ1CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1l
IExheWVyVHlwZSwgdHlwZW5hbWUgUmVuZGVyU3VyZmFjZVR5cGU+Ci1JbnRSZWN0IENDT2NjbHVz
aW9uVHJhY2tlckJhc2U8TGF5ZXJUeXBlLCBSZW5kZXJTdXJmYWNlVHlwZT46OmxheWVyU2Npc3Nv
clJlY3RJblRhcmdldFN1cmZhY2UoY29uc3QgTGF5ZXJUeXBlKiBsYXllcikgY29uc3QKK0ludFJl
Y3QgQ0NPY2NsdXNpb25UcmFja2VyQmFzZTxMYXllclR5cGUsIFJlbmRlclN1cmZhY2VUeXBlPjo6
bGF5ZXJDbGlwUmVjdEluVGFyZ2V0KGNvbnN0IExheWVyVHlwZSogbGF5ZXIpIGNvbnN0CiB7CiAg
ICAgLy8gRklYTUU6IHdlIGNvdWxkIHJlbW92ZSB0aGlzIGhlbHBlciBmdW5jdGlvbiwgYnV0IHVu
aXQgdGVzdHMgY3VycmVudGx5IG92ZXJyaWRlIHRoaXMKICAgICAvLyAgICAgICAgZnVuY3Rpb24s
IGFuZCB0aGV5IG5lZWQgdG8gYmUgdmVyaWZpZWQvYWRqdXN0ZWQgYmVmb3JlIHRoaXMgY2FuIGJl
IHJlbW92ZWQuCkBAIC00NzUsNyArNDc1LDcgQEAgSW50UmVjdCBDQ09jY2x1c2lvblRyYWNrZXJC
YXNlPExheWVyVHlwZSwgUmVuZGVyU3VyZmFjZVR5cGU+OjpsYXllclNjaXNzb3JSZWN0SW4KIH0K
IAogLy8gRGVjbGFyZSB0aGUgcG9zc2libGUgZnVuY3Rpb25zIGhlcmUgZm9yIHRoZSBsaW5rZXIu
Ci10ZW1wbGF0ZSBDQ09jY2x1c2lvblRyYWNrZXJCYXNlPExheWVyQ2hyb21pdW0sIFJlbmRlclN1
cmZhY2VDaHJvbWl1bT46OkNDT2NjbHVzaW9uVHJhY2tlckJhc2UoSW50UmVjdCBzY2lzc29yUmVj
dEluU2NyZWVuU3BhY2UsIGJvb2wgcmVjb3JkTWV0cmljc0ZvckZyYW1lKTsKK3RlbXBsYXRlIEND
T2NjbHVzaW9uVHJhY2tlckJhc2U8TGF5ZXJDaHJvbWl1bSwgUmVuZGVyU3VyZmFjZUNocm9taXVt
Pjo6Q0NPY2NsdXNpb25UcmFja2VyQmFzZShJbnRSZWN0IHJvb3RUYXJnZXRSZWN0LCBib29sIHJl
Y29yZE1ldHJpY3NGb3JGcmFtZSk7CiB0ZW1wbGF0ZSB2b2lkIENDT2NjbHVzaW9uVHJhY2tlckJh
c2U8TGF5ZXJDaHJvbWl1bSwgUmVuZGVyU3VyZmFjZUNocm9taXVtPjo6ZW50ZXJMYXllcihjb25z
dCBDQ0xheWVySXRlcmF0b3JQb3NpdGlvbjxMYXllckNocm9taXVtPiYpOwogdGVtcGxhdGUgdm9p
ZCBDQ09jY2x1c2lvblRyYWNrZXJCYXNlPExheWVyQ2hyb21pdW0sIFJlbmRlclN1cmZhY2VDaHJv
bWl1bT46OmxlYXZlTGF5ZXIoY29uc3QgQ0NMYXllckl0ZXJhdG9yUG9zaXRpb248TGF5ZXJDaHJv
bWl1bT4mKTsKIHRlbXBsYXRlIHZvaWQgQ0NPY2NsdXNpb25UcmFja2VyQmFzZTxMYXllckNocm9t
aXVtLCBSZW5kZXJTdXJmYWNlQ2hyb21pdW0+OjplbnRlclJlbmRlclRhcmdldChjb25zdCBMYXll
ckNocm9taXVtKiBuZXdUYXJnZXQpOwpAQCAtNDg1LDkgKzQ4NSw5IEBAIHRlbXBsYXRlIHZvaWQg
Q0NPY2NsdXNpb25UcmFja2VyQmFzZTxMYXllckNocm9taXVtLCBSZW5kZXJTdXJmYWNlQ2hyb21p
dW0+OjptYXJrCiB0ZW1wbGF0ZSBib29sIENDT2NjbHVzaW9uVHJhY2tlckJhc2U8TGF5ZXJDaHJv
bWl1bSwgUmVuZGVyU3VyZmFjZUNocm9taXVtPjo6b2NjbHVkZWQoY29uc3QgTGF5ZXJDaHJvbWl1
bSosIGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBib29sKiBoYXNPY2NsdXNpb25Gcm9tT3V0
c2lkZVRhcmdldFN1cmZhY2UpIGNvbnN0OwogdGVtcGxhdGUgSW50UmVjdCBDQ09jY2x1c2lvblRy
YWNrZXJCYXNlPExheWVyQ2hyb21pdW0sIFJlbmRlclN1cmZhY2VDaHJvbWl1bT46OnVub2NjbHVk
ZWRDb250ZW50UmVjdChjb25zdCBMYXllckNocm9taXVtKiwgY29uc3QgSW50UmVjdCYgY29udGVu
dFJlY3QsIGJvb2wqIGhhc09jY2x1c2lvbkZyb21PdXRzaWRlVGFyZ2V0U3VyZmFjZSkgY29uc3Q7
CiB0ZW1wbGF0ZSBJbnRSZWN0IENDT2NjbHVzaW9uVHJhY2tlckJhc2U8TGF5ZXJDaHJvbWl1bSwg
UmVuZGVyU3VyZmFjZUNocm9taXVtPjo6dW5vY2NsdWRlZENvbnRyaWJ1dGluZ1N1cmZhY2VDb250
ZW50UmVjdChjb25zdCBMYXllckNocm9taXVtKiwgYm9vbCBmb3JSZXBsaWNhLCBjb25zdCBJbnRS
ZWN0JiBjb250ZW50UmVjdCwgYm9vbCogaGFzT2NjbHVzaW9uRnJvbU91dHNpZGVUYXJnZXRTdXJm
YWNlKSBjb25zdDsKLXRlbXBsYXRlIEludFJlY3QgQ0NPY2NsdXNpb25UcmFja2VyQmFzZTxMYXll
ckNocm9taXVtLCBSZW5kZXJTdXJmYWNlQ2hyb21pdW0+OjpsYXllclNjaXNzb3JSZWN0SW5UYXJn
ZXRTdXJmYWNlKGNvbnN0IExheWVyQ2hyb21pdW0qKSBjb25zdDsKK3RlbXBsYXRlIEludFJlY3Qg
Q0NPY2NsdXNpb25UcmFja2VyQmFzZTxMYXllckNocm9taXVtLCBSZW5kZXJTdXJmYWNlQ2hyb21p
dW0+OjpsYXllckNsaXBSZWN0SW5UYXJnZXQoY29uc3QgTGF5ZXJDaHJvbWl1bSopIGNvbnN0Owog
Ci10ZW1wbGF0ZSBDQ09jY2x1c2lvblRyYWNrZXJCYXNlPENDTGF5ZXJJbXBsLCBDQ1JlbmRlclN1
cmZhY2U+OjpDQ09jY2x1c2lvblRyYWNrZXJCYXNlKEludFJlY3Qgc2Npc3NvclJlY3RJblNjcmVl
blNwYWNlLCBib29sIHJlY29yZE1ldHJpY3NGb3JGcmFtZSk7Cit0ZW1wbGF0ZSBDQ09jY2x1c2lv
blRyYWNrZXJCYXNlPENDTGF5ZXJJbXBsLCBDQ1JlbmRlclN1cmZhY2U+OjpDQ09jY2x1c2lvblRy
YWNrZXJCYXNlKEludFJlY3Qgcm9vdFRhcmdldFJlY3QsIGJvb2wgcmVjb3JkTWV0cmljc0ZvckZy
YW1lKTsKIHRlbXBsYXRlIHZvaWQgQ0NPY2NsdXNpb25UcmFja2VyQmFzZTxDQ0xheWVySW1wbCwg
Q0NSZW5kZXJTdXJmYWNlPjo6ZW50ZXJMYXllcihjb25zdCBDQ0xheWVySXRlcmF0b3JQb3NpdGlv
bjxDQ0xheWVySW1wbD4mKTsKIHRlbXBsYXRlIHZvaWQgQ0NPY2NsdXNpb25UcmFja2VyQmFzZTxD
Q0xheWVySW1wbCwgQ0NSZW5kZXJTdXJmYWNlPjo6bGVhdmVMYXllcihjb25zdCBDQ0xheWVySXRl
cmF0b3JQb3NpdGlvbjxDQ0xheWVySW1wbD4mKTsKIHRlbXBsYXRlIHZvaWQgQ0NPY2NsdXNpb25U
cmFja2VyQmFzZTxDQ0xheWVySW1wbCwgQ0NSZW5kZXJTdXJmYWNlPjo6ZW50ZXJSZW5kZXJUYXJn
ZXQoY29uc3QgQ0NMYXllckltcGwqIG5ld1RhcmdldCk7CkBAIC00OTcsNyArNDk3LDcgQEAgdGVt
cGxhdGUgdm9pZCBDQ09jY2x1c2lvblRyYWNrZXJCYXNlPENDTGF5ZXJJbXBsLCBDQ1JlbmRlclN1
cmZhY2U+OjptYXJrT2NjbHVkZWQKIHRlbXBsYXRlIGJvb2wgQ0NPY2NsdXNpb25UcmFja2VyQmFz
ZTxDQ0xheWVySW1wbCwgQ0NSZW5kZXJTdXJmYWNlPjo6b2NjbHVkZWQoY29uc3QgQ0NMYXllcklt
cGwqLCBjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgYm9vbCogaGFzT2NjbHVzaW9uRnJvbU91
dHNpZGVUYXJnZXRTdXJmYWNlKSBjb25zdDsKIHRlbXBsYXRlIEludFJlY3QgQ0NPY2NsdXNpb25U
cmFja2VyQmFzZTxDQ0xheWVySW1wbCwgQ0NSZW5kZXJTdXJmYWNlPjo6dW5vY2NsdWRlZENvbnRl
bnRSZWN0KGNvbnN0IENDTGF5ZXJJbXBsKiwgY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGJv
b2wqIGhhc09jY2x1c2lvbkZyb21PdXRzaWRlVGFyZ2V0U3VyZmFjZSkgY29uc3Q7CiB0ZW1wbGF0
ZSBJbnRSZWN0IENDT2NjbHVzaW9uVHJhY2tlckJhc2U8Q0NMYXllckltcGwsIENDUmVuZGVyU3Vy
ZmFjZT46OnVub2NjbHVkZWRDb250cmlidXRpbmdTdXJmYWNlQ29udGVudFJlY3QoY29uc3QgQ0NM
YXllckltcGwqLCBib29sIGZvclJlcGxpY2EsIGNvbnN0IEludFJlY3QmIGNvbnRlbnRSZWN0LCBi
b29sKiBoYXNPY2NsdXNpb25Gcm9tT3V0c2lkZVRhcmdldFN1cmZhY2UpIGNvbnN0OwotdGVtcGxh
dGUgSW50UmVjdCBDQ09jY2x1c2lvblRyYWNrZXJCYXNlPENDTGF5ZXJJbXBsLCBDQ1JlbmRlclN1
cmZhY2U+OjpsYXllclNjaXNzb3JSZWN0SW5UYXJnZXRTdXJmYWNlKGNvbnN0IENDTGF5ZXJJbXBs
KikgY29uc3Q7Cit0ZW1wbGF0ZSBJbnRSZWN0IENDT2NjbHVzaW9uVHJhY2tlckJhc2U8Q0NMYXll
ckltcGwsIENDUmVuZGVyU3VyZmFjZT46OmxheWVyQ2xpcFJlY3RJblRhcmdldChjb25zdCBDQ0xh
eWVySW1wbCopIGNvbnN0OwogCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDT2NjbHVzaW9u
VHJhY2tlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NPY2NsdXNpb25UcmFja2VyLmgKaW5kZXggYTYwMWI2ZDM5NTFhMTRmZWIzYWVkMzMxYzU1NDM5
YjYwN2Q5NDc0YS4uZDJmNGEwMGRjYjYyZjczMzM4OWM0YmRiMGRlZmZhNjgxMGQ3ODFhOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NP
Y2NsdXNpb25UcmFja2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NPY2NsdXNpb25UcmFja2VyLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgTGF5ZXJUeXBlLCB0eXBlbmFtZSBSZW5kZXJTdXJmYWNlVHlwZT4KIGNsYXNz
IENDT2NjbHVzaW9uVHJhY2tlckJhc2UgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENDT2Nj
bHVzaW9uVHJhY2tlckJhc2UpOwogcHVibGljOgotICAgIENDT2NjbHVzaW9uVHJhY2tlckJhc2Uo
SW50UmVjdCBzY2lzc29yUmVjdEluU2NyZWVuU3BhY2UsIGJvb2wgcmVjb3JkTWV0cmljc0ZvckZy
YW1lKTsKKyAgICBDQ09jY2x1c2lvblRyYWNrZXJCYXNlKEludFJlY3Qgcm9vdFRhcmdldFJlY3Qs
IGJvb2wgcmVjb3JkTWV0cmljc0ZvckZyYW1lKTsKIAogICAgIC8vIENhbGxlZCBhdCB0aGUgYmVn
aW5uaW5nIG9mIGVhY2ggc3RlcCBpbiB0aGUgQ0NMYXllckl0ZXJhdG9yJ3MgZnJvbnQtdG8tYmFj
ayB0cmF2ZXJzYWwuCiAgICAgdm9pZCBlbnRlckxheWVyKGNvbnN0IENDTGF5ZXJJdGVyYXRvclBv
c2l0aW9uPExheWVyVHlwZT4mKTsKQEAgLTY2LDcgKzY2LDcgQEAgcHVibGljOgogICAgIENDT3Zl
cmRyYXdNZXRyaWNzJiBvdmVyZHJhd01ldHJpY3MoKSBjb25zdCB7IHJldHVybiAqbV9vdmVyZHJh
d01ldHJpY3MuZ2V0KCk7IH0KIAogICAgIC8vIEdpdmVzIHRoZSByZWdpb24gb2YgdGhlIHNjcmVl
biB0aGF0IGlzIG5vdCBvY2NsdWRlZCBieSBzb21ldGhpbmcgb3BhcXVlLgotICAgIFJlZ2lvbiBj
b21wdXRlVmlzaWJsZVJlZ2lvbkluU2NyZWVuKCkgY29uc3QgeyByZXR1cm4gc3VidHJhY3QoUmVn
aW9uKG1fc2Npc3NvclJlY3RJblNjcmVlblNwYWNlKSwgbV9zdGFjay5sYXN0KCkub2NjbHVzaW9u
SW5TY3JlZW4pOyB9CisgICAgUmVnaW9uIGNvbXB1dGVWaXNpYmxlUmVnaW9uSW5TY3JlZW4oKSBj
b25zdCB7IHJldHVybiBzdWJ0cmFjdChSZWdpb24obV9yb290VGFyZ2V0UmVjdCksIG1fc3RhY2su
bGFzdCgpLm9jY2x1c2lvbkluU2NyZWVuKTsgfQogCiAgICAgdm9pZCBzZXRNaW5pbXVtVHJhY2tp
bmdTaXplKGNvbnN0IEludFNpemUmIHNpemUpIHsgbV9taW5pbXVtVHJhY2tpbmdTaXplID0gc2l6
ZTsgfQogCkBAIC05Miw3ICs5Miw3IEBAIHByb3RlY3RlZDoKICAgICBWZWN0b3I8U3RhY2tPYmpl
Y3QsIDE+IG1fc3RhY2s7CiAKICAgICAvLyBBbGxvdyB0ZXN0cyB0byBvdmVycmlkZSB0aGlzLgot
ICAgIHZpcnR1YWwgSW50UmVjdCBsYXllclNjaXNzb3JSZWN0SW5UYXJnZXRTdXJmYWNlKGNvbnN0
IExheWVyVHlwZSopIGNvbnN0OworICAgIHZpcnR1YWwgSW50UmVjdCBsYXllckNsaXBSZWN0SW5U
YXJnZXQoY29uc3QgTGF5ZXJUeXBlKikgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgLy8gQ2FsbGVk
IHdoZW4gdmlzaXRpbmcgYSBsYXllciByZXByZXNlbnRpbmcgaXRzZWxmLiBJZiB0aGUgdGFyZ2V0
IHdhcyBub3QgYWxyZWFkeSBjdXJyZW50LCB0aGVuIHRoaXMgaW5kaWNhdGVzIHdlIGhhdmUgZW50
ZXJlZCBhIG5ldyBzdXJmYWNlIHN1YnRyZWUuCkBAIC0xMDksNyArMTA5LDcgQEAgcHJpdmF0ZToK
ICAgICAvLyBBZGQgdGhlIGxheWVyJ3Mgb2NjbHVzaW9uIHRvIHRoZSB0cmFja2VkIHN0YXRlLgog
ICAgIHZvaWQgbWFya09jY2x1ZGVkQmVoaW5kTGF5ZXIoY29uc3QgTGF5ZXJUeXBlKik7CiAKLSAg
ICBJbnRSZWN0IG1fc2Npc3NvclJlY3RJblNjcmVlblNwYWNlOworICAgIEludFJlY3QgbV9yb290
VGFyZ2V0UmVjdDsKICAgICBPd25QdHI8Q0NPdmVyZHJhd01ldHJpY3M+IG1fb3ZlcmRyYXdNZXRy
aWNzOwogICAgIEludFNpemUgbV9taW5pbXVtVHJhY2tpbmdTaXplOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDT2NjbHVzaW9uVHJhY2tlclRlc3QuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ09jY2x1c2lvblRyYWNrZXJUZXN0LmNwcApp
bmRleCA3NDQzYWJhOWFjODQyMmE0N2Y3MzVkYzI1MDQ4OGRmZjJiMTc0NzE1Li45ZDUxYzk5NzAy
MGY2MzZiZjQyZWQxMjEzZDQ1N2RkN2YyZWYxZTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0NDT2NjbHVzaW9uVHJhY2tlclRlc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NPY2NsdXNpb25UcmFja2VyVGVzdC5jcHAKQEAgLTEwMiwy
MyArMTAyLDIzIEBAIHByaXZhdGU6CiB9OwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBMYXllclR5cGUs
IHR5cGVuYW1lIFJlbmRlclN1cmZhY2VUeXBlPgotY2xhc3MgVGVzdENDT2NjbHVzaW9uVHJhY2tl
cldpdGhTY2lzc29yIDogcHVibGljIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJCYXNlPExheWVyVHlw
ZSwgUmVuZGVyU3VyZmFjZVR5cGU+IHsKK2NsYXNzIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRo
Q2xpcCA6IHB1YmxpYyBUZXN0Q0NPY2NsdXNpb25UcmFja2VyQmFzZTxMYXllclR5cGUsIFJlbmRl
clN1cmZhY2VUeXBlPiB7CiBwdWJsaWM6Ci0gICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhT
Y2lzc29yKEludFJlY3Qgc2NyZWVuU2Npc3NvclJlY3QsIGJvb2wgcmVjb3JkTWV0cmljc0ZvckZy
YW1lID0gZmFsc2UpCi0gICAgICAgIDogVGVzdENDT2NjbHVzaW9uVHJhY2tlckJhc2U8TGF5ZXJU
eXBlLCBSZW5kZXJTdXJmYWNlVHlwZT4oc2NyZWVuU2Npc3NvclJlY3QsIHJlY29yZE1ldHJpY3NG
b3JGcmFtZSkKLSAgICAgICAgLCBtX292ZXJyaWRlTGF5ZXJTY2lzc29yUmVjdChmYWxzZSkKKyAg
ICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aENsaXAoSW50UmVjdCB2aWV3cG9ydFJlY3QsIGJv
b2wgcmVjb3JkTWV0cmljc0ZvckZyYW1lID0gZmFsc2UpCisgICAgICAgIDogVGVzdENDT2NjbHVz
aW9uVHJhY2tlckJhc2U8TGF5ZXJUeXBlLCBSZW5kZXJTdXJmYWNlVHlwZT4odmlld3BvcnRSZWN0
LCByZWNvcmRNZXRyaWNzRm9yRnJhbWUpCisgICAgICAgICwgbV9vdmVycmlkZUxheWVyQ2xpcFJl
Y3QoZmFsc2UpCiAgICAgewogICAgIH0KIAotICAgIHZvaWQgc2V0TGF5ZXJTY2lzc29yUmVjdChj
b25zdCBJbnRSZWN0JiByZWN0KSB7IG1fb3ZlcnJpZGVMYXllclNjaXNzb3JSZWN0ID0gdHJ1ZTsg
bV9sYXllclNjaXNzb3JSZWN0ID0gcmVjdDt9Ci0gICAgdm9pZCB1c2VEZWZhdWx0TGF5ZXJTY2lz
c29yUmVjdCgpIHsgbV9vdmVycmlkZUxheWVyU2Npc3NvclJlY3QgPSBmYWxzZTsgfQorICAgIHZv
aWQgc2V0TGF5ZXJDbGlwUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KSB7IG1fb3ZlcnJpZGVMYXll
ckNsaXBSZWN0ID0gdHJ1ZTsgbV9sYXllckNsaXBSZWN0ID0gcmVjdDt9CisgICAgdm9pZCB1c2VE
ZWZhdWx0TGF5ZXJDbGlwUmVjdCgpIHsgbV9vdmVycmlkZUxheWVyQ2xpcFJlY3QgPSBmYWxzZTsg
fQogCiBwcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCBJbnRSZWN0IGxheWVyU2Npc3NvclJlY3RJblRh
cmdldFN1cmZhY2UoY29uc3QgTGF5ZXJUeXBlKiBsYXllcikgY29uc3QgeyByZXR1cm4gbV9vdmVy
cmlkZUxheWVyU2Npc3NvclJlY3QgPyBtX2xheWVyU2Npc3NvclJlY3QgOiBDQ09jY2x1c2lvblRy
YWNrZXJCYXNlPExheWVyVHlwZSwgUmVuZGVyU3VyZmFjZVR5cGU+OjpsYXllclNjaXNzb3JSZWN0
SW5UYXJnZXRTdXJmYWNlKGxheWVyKTsgfQorICAgIHZpcnR1YWwgSW50UmVjdCBsYXllckNsaXBS
ZWN0SW5UYXJnZXQoY29uc3QgTGF5ZXJUeXBlKiBsYXllcikgY29uc3QgeyByZXR1cm4gbV9vdmVy
cmlkZUxheWVyQ2xpcFJlY3QgPyBtX2xheWVyQ2xpcFJlY3QgOiBDQ09jY2x1c2lvblRyYWNrZXJC
YXNlPExheWVyVHlwZSwgUmVuZGVyU3VyZmFjZVR5cGU+OjpsYXllckNsaXBSZWN0SW5UYXJnZXQo
bGF5ZXIpOyB9CiAKIHByaXZhdGU6Ci0gICAgYm9vbCBtX292ZXJyaWRlTGF5ZXJTY2lzc29yUmVj
dDsKLSAgICBJbnRSZWN0IG1fbGF5ZXJTY2lzc29yUmVjdDsKKyAgICBib29sIG1fb3ZlcnJpZGVM
YXllckNsaXBSZWN0OworICAgIEludFJlY3QgbV9sYXllckNsaXBSZWN0OwogfTsKIAogc3RydWN0
IENDT2NjbHVzaW9uVHJhY2tlclRlc3RNYWluVGhyZWFkVHlwZXMgewpAQCAtNDQwLDggKzQ0MCw4
IEBAIHByb3RlY3RlZDoKICAgICAgICAgdHlwZW5hbWUgVHlwZXM6OkNvbnRlbnRMYXllclR5cGUq
IGxheWVyID0gdGhpcy0+Y3JlYXRlRHJhd2luZ0xheWVyKHBhcmVudCwgdGhpcy0+aWRlbnRpdHlN
YXRyaXgsIEZsb2F0UG9pbnQoMzAsIDMwKSwgSW50U2l6ZSg1MDAsIDUwMCksIHRydWUpOwogICAg
ICAgICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCi0gICAgICAgIFRlc3RDQ09jY2x1c2lv
blRyYWNrZXJXaXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBU
eXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEw
MDApKTsKLSAgICAgICAgb2NjbHVzaW9uLnNldExheWVyU2Npc3NvclJlY3QoSW50UmVjdCgwLCAw
LCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoQ2xpcDx0
eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5
cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgb2NjbHVz
aW9uLnNldExheWVyQ2xpcFJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAKICAgICAg
ICAgdGhpcy0+dmlzaXRMYXllcihsYXllciwgb2NjbHVzaW9uKTsKICAgICAgICAgdGhpcy0+ZW50
ZXJMYXllcihwYXJlbnQsIG9jY2x1c2lvbik7CkBAIC00NTcsMTMgKzQ1NywxMyBAQCBwcm90ZWN0
ZWQ6CiAgICAgICAgIEVYUEVDVF9GQUxTRShvY2NsdXNpb24ub2NjbHVkZWQocGFyZW50LCBJbnRS
ZWN0KDMxLCAzMCwgNzAsIDcwKSkpOwogICAgICAgICBFWFBFQ1RfRkFMU0Uob2NjbHVzaW9uLm9j
Y2x1ZGVkKHBhcmVudCwgSW50UmVjdCgzMCwgMzEsIDcwLCA3MCkpKTsKIAotICAgICAgICBvY2Ns
dXNpb24udXNlRGVmYXVsdExheWVyU2Npc3NvclJlY3QoKTsKKyAgICAgICAgb2NjbHVzaW9uLnVz
ZURlZmF1bHRMYXllckNsaXBSZWN0KCk7CiAgICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi5v
Y2NsdWRlZChwYXJlbnQsIEludFJlY3QoMzAsIDMwLCA3MCwgNzApKSk7CiAgICAgICAgIEVYUEVD
VF9GQUxTRShvY2NsdXNpb24ub2NjbHVkZWQocGFyZW50LCBJbnRSZWN0KDI5LCAzMCwgNzAsIDcw
KSkpOwogICAgICAgICBFWFBFQ1RfRkFMU0Uob2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50
UmVjdCgzMCwgMjksIDcwLCA3MCkpKTsKICAgICAgICAgRVhQRUNUX1RSVUUob2NjbHVzaW9uLm9j
Y2x1ZGVkKHBhcmVudCwgSW50UmVjdCgzMSwgMzAsIDcwLCA3MCkpKTsKICAgICAgICAgRVhQRUNU
X1RSVUUob2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50UmVjdCgzMCwgMzEsIDcwLCA3MCkp
KTsKLSAgICAgICAgb2NjbHVzaW9uLnNldExheWVyU2Npc3NvclJlY3QoSW50UmVjdCgwLCAwLCAx
MDAwLCAxMDAwKSk7CisgICAgICAgIG9jY2x1c2lvbi5zZXRMYXllckNsaXBSZWN0KEludFJlY3Qo
MCwgMCwgMTAwMCwgMTAwMCkpOwogCiAgICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi51bm9j
Y2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDMwLCAzMCwgNzAsIDcwKSkuaXNFbXB0
eSgpKTsKICAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoMjksIDMwLCAxLCA3MCks
IG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDI5LCAzMCwg
NzAsIDcwKSkpOwpAQCAtNDkzLDggKzQ5Myw4IEBAIHByb3RlY3RlZDoKICAgICAgICAgdHlwZW5h
bWUgVHlwZXM6OkNvbnRlbnRMYXllclR5cGUqIGxheWVyID0gdGhpcy0+Y3JlYXRlRHJhd2luZ0xh
eWVyKHBhcmVudCwgbGF5ZXJUcmFuc2Zvcm0sIEZsb2F0UG9pbnQoMzAsIDMwKSwgSW50U2l6ZSg1
MDAsIDUwMCksIHRydWUpOwogICAgICAgICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCi0g
ICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6
TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJ
bnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKLSAgICAgICAgb2NjbHVzaW9uLnNldExheWVyU2Np
c3NvclJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1
c2lvblRyYWNrZXJXaXRoQ2xpcDx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBU
eXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEw
MDApKTsKKyAgICAgICAgb2NjbHVzaW9uLnNldExheWVyQ2xpcFJlY3QoSW50UmVjdCgwLCAwLCAx
MDAwLCAxMDAwKSk7CiAKICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihsYXllciwgb2NjbHVzaW9u
KTsKICAgICAgICAgdGhpcy0+ZW50ZXJMYXllcihwYXJlbnQsIG9jY2x1c2lvbik7CkBAIC01MTAs
MTMgKzUxMCwxMyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIEVYUEVDVF9GQUxTRShvY2NsdXNpb24u
b2NjbHVkZWQocGFyZW50LCBJbnRSZWN0KDMxLCAzMCwgNzAsIDcwKSkpOwogICAgICAgICBFWFBF
Q1RfRkFMU0Uob2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50UmVjdCgzMCwgMzEsIDcwLCA3
MCkpKTsKIAotICAgICAgICBvY2NsdXNpb24udXNlRGVmYXVsdExheWVyU2Npc3NvclJlY3QoKTsK
KyAgICAgICAgb2NjbHVzaW9uLnVzZURlZmF1bHRMYXllckNsaXBSZWN0KCk7CiAgICAgICAgIEVY
UEVDVF9UUlVFKG9jY2x1c2lvbi5vY2NsdWRlZChwYXJlbnQsIEludFJlY3QoMzAsIDMwLCA3MCwg
NzApKSk7CiAgICAgICAgIEVYUEVDVF9GQUxTRShvY2NsdXNpb24ub2NjbHVkZWQocGFyZW50LCBJ
bnRSZWN0KDI5LCAzMCwgNzAsIDcwKSkpOwogICAgICAgICBFWFBFQ1RfRkFMU0Uob2NjbHVzaW9u
Lm9jY2x1ZGVkKHBhcmVudCwgSW50UmVjdCgzMCwgMjksIDcwLCA3MCkpKTsKICAgICAgICAgRVhQ
RUNUX1RSVUUob2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50UmVjdCgzMSwgMzAsIDcwLCA3
MCkpKTsKICAgICAgICAgRVhQRUNUX1RSVUUob2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50
UmVjdCgzMCwgMzEsIDcwLCA3MCkpKTsKLSAgICAgICAgb2NjbHVzaW9uLnNldExheWVyU2Npc3Nv
clJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIG9jY2x1c2lvbi5zZXRM
YXllckNsaXBSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwogCiAgICAgICAgIEVYUEVD
VF9UUlVFKG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDMw
LCAzMCwgNzAsIDcwKSkuaXNFbXB0eSgpKTsKICAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKElu
dFJlY3QoMjksIDMwLCAxLCA3MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFy
ZW50LCBJbnRSZWN0KDI5LCAzMCwgNzAsIDcwKSkpOwpAQCAtNTQ0LDggKzU0NCw4IEBAIHByb3Rl
Y3RlZDoKICAgICAgICAgdHlwZW5hbWUgVHlwZXM6OkNvbnRlbnRMYXllclR5cGUqIGxheWVyID0g
dGhpcy0+Y3JlYXRlRHJhd2luZ0xheWVyKHBhcmVudCwgbGF5ZXJUcmFuc2Zvcm0sIEZsb2F0UG9p
bnQoMzAsIDMwKSwgSW50U2l6ZSg1MDAsIDUwMCksIHRydWUpOwogICAgICAgICB0aGlzLT5jYWxj
RHJhd0V0YyhwYXJlbnQpOwogCi0gICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoU2Np
c3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3Vy
ZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKLSAgICAgICAg
b2NjbHVzaW9uLnNldExheWVyU2Npc3NvclJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7
CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoQ2xpcDx0eXBlbmFtZSBUeXBlczo6
TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJ
bnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgb2NjbHVzaW9uLnNldExheWVyQ2xp
cFJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAKICAgICAgICAgdGhpcy0+dmlzaXRM
YXllcihsYXllciwgb2NjbHVzaW9uKTsKICAgICAgICAgdGhpcy0+ZW50ZXJMYXllcihwYXJlbnQs
IG9jY2x1c2lvbik7CkBAIC01NjEsMTMgKzU2MSwxMyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIEVY
UEVDVF9GQUxTRShvY2NsdXNpb24ub2NjbHVkZWQocGFyZW50LCBJbnRSZWN0KDUxLCA1MCwgNTAs
IDUwKSkpOwogICAgICAgICBFWFBFQ1RfRkFMU0Uob2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwg
SW50UmVjdCg1MCwgNTEsIDUwLCA1MCkpKTsKIAotICAgICAgICBvY2NsdXNpb24udXNlRGVmYXVs
dExheWVyU2Npc3NvclJlY3QoKTsKKyAgICAgICAgb2NjbHVzaW9uLnVzZURlZmF1bHRMYXllckNs
aXBSZWN0KCk7CiAgICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi5vY2NsdWRlZChwYXJlbnQs
IEludFJlY3QoNTAsIDUwLCA1MCwgNTApKSk7CiAgICAgICAgIEVYUEVDVF9GQUxTRShvY2NsdXNp
b24ub2NjbHVkZWQocGFyZW50LCBJbnRSZWN0KDQ5LCA1MCwgNTAsIDUwKSkpOwogICAgICAgICBF
WFBFQ1RfRkFMU0Uob2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwgSW50UmVjdCg1MCwgNDksIDUw
LCA1MCkpKTsKICAgICAgICAgRVhQRUNUX1RSVUUob2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwg
SW50UmVjdCg1MSwgNTAsIDUwLCA1MCkpKTsKICAgICAgICAgRVhQRUNUX1RSVUUob2NjbHVzaW9u
Lm9jY2x1ZGVkKHBhcmVudCwgSW50UmVjdCg1MCwgNTEsIDUwLCA1MCkpKTsKLSAgICAgICAgb2Nj
bHVzaW9uLnNldExheWVyU2Npc3NvclJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7Cisg
ICAgICAgIG9jY2x1c2lvbi5zZXRMYXllckNsaXBSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAw
MCkpOwogCiAgICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJl
Y3QocGFyZW50LCBJbnRSZWN0KDUwLCA1MCwgNTAsIDUwKSkuaXNFbXB0eSgpKTsKICAgICAgICAg
RVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoNDksIDUwLCAxLCA1MCksIG9jY2x1c2lvbi51bm9j
Y2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDQ5LCA1MCwgNTAsIDUwKSkpOwpAQCAt
NTc5LDcgKzU3OSw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKElu
dFJlY3QoNTAsIDEwMCwgNTAsIDEpLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBh
cmVudCwgSW50UmVjdCg1MCwgNTEsIDUwLCA1MCkpKTsKICAgICAgICAgRVhQRUNUX0lOVF9SRUNU
X0VRKEludFJlY3QoNDksIDUxLCA1MCwgNTApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRS
ZWN0KHBhcmVudCwgSW50UmVjdCg0OSwgNTEsIDUwLCA1MCkpKTsKIAotICAgICAgICBvY2NsdXNp
b24udXNlRGVmYXVsdExheWVyU2Npc3NvclJlY3QoKTsKKyAgICAgICAgb2NjbHVzaW9uLnVzZURl
ZmF1bHRMYXllckNsaXBSZWN0KCk7CiAgICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi51bm9j
Y2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDUwLCA1MCwgNTAsIDUwKSkuaXNFbXB0
eSgpKTsKICAgICAgICAgRVhQRUNUX0lOVF9SRUNUX0VRKEludFJlY3QoNDksIDUwLCAxLCA1MCks
IG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDQ5LCA1MCwg
NTAsIDUwKSkpOwogICAgICAgICBFWFBFQ1RfSU5UX1JFQ1RfRVEoSW50UmVjdCg0OSwgNDksIDUw
LCA1MCksIG9jY2x1c2lvbi51bm9jY2x1ZGVkQ29udGVudFJlY3QocGFyZW50LCBJbnRSZWN0KDQ5
LCA0OSwgNTAsIDUwKSkpOwpAQCAtNTg5LDcgKzU4OSw3IEBAIHByb3RlY3RlZDoKICAgICAgICAg
RVhQRUNUX1RSVUUob2NjbHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChwYXJlbnQsIEludFJl
Y3QoNTEsIDUxLCA1MCwgNTApKS5pc0VtcHR5KCkpOwogICAgICAgICBFWFBFQ1RfVFJVRShvY2Ns
dXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVjdCg1MCwgNTEsIDUwLCA1
MCkpLmlzRW1wdHkoKSk7CiAgICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDQ5LCA1
MSwgMSwgNDkpLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRlbnRSZWN0KHBhcmVudCwgSW50UmVj
dCg0OSwgNTEsIDUwLCA1MCkpKTsKLSAgICAgICAgb2NjbHVzaW9uLnNldExheWVyU2Npc3NvclJl
Y3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIG9jY2x1c2lvbi5zZXRMYXll
ckNsaXBSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwogICAgIH0KIH07CiAKQEAgLTYx
MSw4ICs2MTEsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHR5cGVuYW1lIFR5cGVzOjpDb250ZW50
TGF5ZXJUeXBlKiBsYXllciA9IHRoaXMtPmNyZWF0ZURyYXdpbmdMYXllcihjaGlsZCwgdGhpcy0+
aWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMTAsIDEwKSwgSW50U2l6ZSg1MDAsIDUwMCksIHRy
dWUpOwogICAgICAgICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCi0gICAgICAgIFRlc3RD
Q09jY2x1c2lvblRyYWNrZXJXaXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0
eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAs
IDEwMDAsIDEwMDApKTsKLSAgICAgICAgb2NjbHVzaW9uLnNldExheWVyU2Npc3NvclJlY3QoSW50
UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJX
aXRoQ2xpcDx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVy
U3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAg
ICAgb2NjbHVzaW9uLnNldExheWVyQ2xpcFJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7
CiAKICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihsYXllciwgb2NjbHVzaW9uKTsKICAgICAgICAg
dGhpcy0+ZW50ZXJDb250cmlidXRpbmdTdXJmYWNlKGNoaWxkLCBvY2NsdXNpb24pOwpAQCAtNjM2
LDEzICs2MzYsMTMgQEAgcHJvdGVjdGVkOgogICAgICAgICBFWFBFQ1RfRkFMU0Uob2NjbHVzaW9u
Lm9jY2x1ZGVkKHBhcmVudCwgSW50UmVjdCgzMSwgNDAsIDcwLCA2MCkpKTsKICAgICAgICAgRVhQ
RUNUX0ZBTFNFKG9jY2x1c2lvbi5vY2NsdWRlZChwYXJlbnQsIEludFJlY3QoMzAsIDQxLCA3MCwg
NjApKSk7CiAKLSAgICAgICAgb2NjbHVzaW9uLnVzZURlZmF1bHRMYXllclNjaXNzb3JSZWN0KCk7
CisgICAgICAgIG9jY2x1c2lvbi51c2VEZWZhdWx0TGF5ZXJDbGlwUmVjdCgpOwogICAgICAgICBF
WFBFQ1RfVFJVRShvY2NsdXNpb24ub2NjbHVkZWQocGFyZW50LCBJbnRSZWN0KDMwLCA0MCwgNzAs
IDYwKSkpOwogICAgICAgICBFWFBFQ1RfRkFMU0Uob2NjbHVzaW9uLm9jY2x1ZGVkKHBhcmVudCwg
SW50UmVjdCgyOSwgNDAsIDcwLCA2MCkpKTsKICAgICAgICAgRVhQRUNUX0ZBTFNFKG9jY2x1c2lv
bi5vY2NsdWRlZChwYXJlbnQsIEludFJlY3QoMzAsIDM5LCA3MCwgNjApKSk7CiAgICAgICAgIEVY
UEVDVF9UUlVFKG9jY2x1c2lvbi5vY2NsdWRlZChwYXJlbnQsIEludFJlY3QoMzEsIDQwLCA3MCwg
NjApKSk7CiAgICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi5vY2NsdWRlZChwYXJlbnQsIElu
dFJlY3QoMzAsIDQxLCA3MCwgNjApKSk7Ci0gICAgICAgIG9jY2x1c2lvbi5zZXRMYXllclNjaXNz
b3JSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBvY2NsdXNpb24uc2V0
TGF5ZXJDbGlwUmVjdChJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKIAogCiAgICAgICAgIC8q
IEp1c3RpZmljYXRpb24gZm9yIHRoZSBhYm92ZSBvY2NsdXNpb24gZnJvbSB8bGF5ZXJ8OgpAQCAt
NjkzLDggKzY5Myw4IEBAIHByb3RlY3RlZDoKICAgICAgICAgdHlwZW5hbWUgVHlwZXM6OkNvbnRl
bnRMYXllclR5cGUqIGNoaWxkMiA9IHRoaXMtPmNyZWF0ZURyYXdpbmdMYXllcihwYXJlbnQsIHRo
aXMtPmlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDMwLCAzMCksIEludFNpemUoNjAsIDIwKSwg
dHJ1ZSk7CiAgICAgICAgIHRoaXMtPmNhbGNEcmF3RXRjKHBhcmVudCk7CiAKLSAgICAgICAgVGVz
dENDT2NjbHVzaW9uVHJhY2tlcldpdGhTY2lzc29yPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUs
IHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwg
MCwgMTAwMCwgMTAwMCkpOwotICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJTY2lzc29yUmVjdChJ
bnRSZWN0KC0xMCwgLTEwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRy
YWNrZXJXaXRoQ2xpcDx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6
UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsK
KyAgICAgICAgb2NjbHVzaW9uLnNldExheWVyQ2xpcFJlY3QoSW50UmVjdCgtMTAsIC0xMCwgMTAw
MCwgMTAwMCkpOwogCiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIoY2hpbGQyLCBvY2NsdXNpb24p
OwogCkBAIC04MDQsOCArODA0LDggQEAgcHJvdGVjdGVkOgogICAgICAgICB0eXBlbmFtZSBUeXBl
czo6Q29udGVudExheWVyVHlwZSogbGF5ZXIgPSB0aGlzLT5jcmVhdGVEcmF3aW5nTGF5ZXIoY2hp
bGQsIGxheWVyVHJhbnNmb3JtLCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDUwMCwgNTAwKSwg
dHJ1ZSk7CiAgICAgICAgIHRoaXMtPmNhbGNEcmF3RXRjKHBhcmVudCk7CiAKLSAgICAgICAgVGVz
dENDT2NjbHVzaW9uVHJhY2tlcldpdGhTY2lzc29yPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUs
IHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwg
MCwgMTAwMCwgMTAwMCkpOwotICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJTY2lzc29yUmVjdChJ
bnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tl
cldpdGhDbGlwPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5k
ZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAg
ICAgICBvY2NsdXNpb24uc2V0TGF5ZXJDbGlwUmVjdChJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDAp
KTsKIAogICAgICAgICBJbnRSZWN0IGNsaXBwZWRMYXllckluQ2hpbGQgPSBDQ01hdGhVdGlsOjpt
YXBDbGlwcGVkUmVjdChsYXllclRyYW5zZm9ybSwgbGF5ZXItPnZpc2libGVDb250ZW50UmVjdCgp
KTsKIApAQCAtODY4LDggKzg2OCw4IEBAIHByb3RlY3RlZDoKICAgICAgICAgdHlwZW5hbWUgVHlw
ZXM6OkNvbnRlbnRMYXllclR5cGUqIGxheWVyMiA9IHRoaXMtPmNyZWF0ZURyYXdpbmdMYXllcihj
aGlsZCwgdGhpcy0+aWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMTAsIDQ1MCksIEludFNpemUo
NTAwLCA2MCksIHRydWUpOwogICAgICAgICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCi0g
ICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6
TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJ
bnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKLSAgICAgICAgb2NjbHVzaW9uLnNldExheWVyU2Np
c3NvclJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1
c2lvblRyYWNrZXJXaXRoQ2xpcDx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBU
eXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEw
MDApKTsKKyAgICAgICAgb2NjbHVzaW9uLnNldExheWVyQ2xpcFJlY3QoSW50UmVjdCgwLCAwLCAx
MDAwLCAxMDAwKSk7CiAKICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihsYXllcjIsIG9jY2x1c2lv
bik7CiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIobGF5ZXIxLCBvY2NsdXNpb24pOwpAQCAtOTU2
LDggKzk1Niw4IEBAIHByb3RlY3RlZDoKICAgICAgICAgdHlwZW5hbWUgVHlwZXM6OkNvbnRlbnRM
YXllclR5cGUqIGxheWVyMiA9IHRoaXMtPmNyZWF0ZURyYXdpbmdMYXllcihjaGlsZDIsIHRoaXMt
PmlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KC0xMCwgLTEwKSwgSW50U2l6ZSg1MTAsIDUxMCks
IHRydWUpOwogICAgICAgICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCi0gICAgICAgIFRl
c3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBl
LCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAs
IDAsIDEwMDAsIDEwMDApKTsKLSAgICAgICAgb2NjbHVzaW9uLnNldExheWVyU2Npc3NvclJlY3Qo
SW50UmVjdCgtMjAsIC0yMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBUZXN0Q0NPY2NsdXNpb25U
cmFja2VyV2l0aENsaXA8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6
OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7
CisgICAgICAgIG9jY2x1c2lvbi5zZXRMYXllckNsaXBSZWN0KEludFJlY3QoLTIwLCAtMjAsIDEw
MDAsIDEwMDApKTsKIAogICAgICAgICB0aGlzLT52aXNpdExheWVyKGxheWVyMiwgb2NjbHVzaW9u
KTsKICAgICAgICAgdGhpcy0+ZW50ZXJDb250cmlidXRpbmdTdXJmYWNlKGNoaWxkMiwgb2NjbHVz
aW9uKTsKQEAgLTk3MywxMyArOTczLDEzIEBAIHByb3RlY3RlZDoKICAgICAgICAgRVhQRUNUX0ZB
TFNFKG9jY2x1c2lvbi5vY2NsdWRlZChjaGlsZDIsIEludFJlY3QoLTEwLCA0MjAsIDcxLCA4MCkp
KTsKICAgICAgICAgRVhQRUNUX0ZBTFNFKG9jY2x1c2lvbi5vY2NsdWRlZChjaGlsZDIsIEludFJl
Y3QoLTEwLCA0MjAsIDcwLCA4MSkpKTsKIAotICAgICAgICBvY2NsdXNpb24udXNlRGVmYXVsdExh
eWVyU2Npc3NvclJlY3QoKTsKKyAgICAgICAgb2NjbHVzaW9uLnVzZURlZmF1bHRMYXllckNsaXBS
ZWN0KCk7CiAgICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi5vY2NsdWRlZChjaGlsZDIsIElu
dFJlY3QoLTEwLCA0MjAsIDcwLCA4MCkpKTsKICAgICAgICAgRVhQRUNUX1RSVUUob2NjbHVzaW9u
Lm9jY2x1ZGVkKGNoaWxkMiwgSW50UmVjdCgtMTEsIDQyMCwgNzAsIDgwKSkpOwogICAgICAgICBF
WFBFQ1RfVFJVRShvY2NsdXNpb24ub2NjbHVkZWQoY2hpbGQyLCBJbnRSZWN0KC0xMCwgNDE5LCA3
MCwgODApKSk7CiAgICAgICAgIEVYUEVDVF9UUlVFKG9jY2x1c2lvbi5vY2NsdWRlZChjaGlsZDIs
IEludFJlY3QoLTEwLCA0MjAsIDcxLCA4MCkpKTsKICAgICAgICAgRVhQRUNUX1RSVUUob2NjbHVz
aW9uLm9jY2x1ZGVkKGNoaWxkMiwgSW50UmVjdCgtMTAsIDQyMCwgNzAsIDgxKSkpOwotICAgICAg
ICBvY2NsdXNpb24uc2V0TGF5ZXJTY2lzc29yUmVjdChJbnRSZWN0KC0yMCwgLTIwLCAxMDAwLCAx
MDAwKSk7CisgICAgICAgIG9jY2x1c2lvbi5zZXRMYXllckNsaXBSZWN0KEludFJlY3QoLTIwLCAt
MjAsIDEwMDAsIDEwMDApKTsKIAogICAgICAgICAvLyBUaGVyZSBpcyBub3RoaW5nIGFib3ZlIGNo
aWxkMidzIHN1cmZhY2UgaW4gdGhlIHotb3JkZXIuCiAgICAgICAgIEVYUEVDVF9JTlRfUkVDVF9F
UShJbnRSZWN0KC0xMCwgNDIwLCA3MCwgODApLCBvY2NsdXNpb24udW5vY2NsdWRlZENvbnRyaWJ1
dGluZ1N1cmZhY2VDb250ZW50UmVjdChjaGlsZDIsIGZhbHNlLCBJbnRSZWN0KC0xMCwgNDIwLCA3
MCwgODApKSk7CkBAIC0xMDcwLDggKzEwNzAsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHR5cGVu
YW1lIFR5cGVzOjpDb250ZW50TGF5ZXJUeXBlKiBsYXllcjIgPSB0aGlzLT5jcmVhdGVEcmF3aW5n
TGF5ZXIoY2hpbGQyLCB0aGlzLT5pZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgtMTAsIC0xMCks
IEludFNpemUoNTEwLCA1MTApLCB0cnVlKTsKICAgICAgICAgdGhpcy0+Y2FsY0RyYXdFdGMocGFy
ZW50KTsKIAotICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aFNjaXNzb3I8dHlwZW5h
bWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBv
Y2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7Ci0gICAgICAgIG9jY2x1c2lvbi5z
ZXRMYXllclNjaXNzb3JSZWN0KEludFJlY3QoLTMwLCAtMzAsIDEwMDAsIDEwMDApKTsKKyAgICAg
ICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhDbGlwPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5
cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3Qo
MCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJDbGlwUmVjdChJ
bnRSZWN0KC0zMCwgLTMwLCAxMDAwLCAxMDAwKSk7CiAKICAgICAgICAgdGhpcy0+dmlzaXRMYXll
cihsYXllcjIsIG9jY2x1c2lvbik7CiAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIoY2hpbGQyLCBv
Y2NsdXNpb24pOwpAQCAtMTE4NCw4ICsxMTg0LDggQEAgcHJvdGVjdGVkOgogCiAgICAgICAgIHRo
aXMtPmNhbGNEcmF3RXRjKHBhcmVudCk7CiAKLSAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tl
cldpdGhTY2lzc29yPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpS
ZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwot
ICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJTY2lzc29yUmVjdChJbnRSZWN0KDAsIDAsIDEwMDAs
IDEwMDApKTsKKyAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhDbGlwPHR5cGVuYW1l
IFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2Nj
bHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBvY2NsdXNpb24uc2V0
TGF5ZXJDbGlwUmVjdChJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKIAogICAgICAgICAvLyBP
cGFjaXR5IGxheWVyIHdvbid0IGNvbnRyaWJ1dGUgdG8gb2NjbHVzaW9uLgogICAgICAgICB0aGlz
LT52aXNpdExheWVyKG9wYWNpdHlMYXllciwgb2NjbHVzaW9uKTsKQEAgLTEyNDgsOCArMTI0OCw4
IEBAIHByb3RlY3RlZDoKICAgICAgICAgdGhpcy0+Y3JlYXRlUmVwbGljYUxheWVyKHN1cmZhY2Us
IHRoaXMtPmlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDUwLCA1MCksIEludFNpemUoKSk7CiAg
ICAgICAgIHRoaXMtPmNhbGNEcmF3RXRjKHBhcmVudCk7CiAKLSAgICAgICAgVGVzdENDT2NjbHVz
aW9uVHJhY2tlcldpdGhTY2lzc29yPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1l
IFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwg
MTAwMCkpOwotICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJTY2lzc29yUmVjdChJbnRSZWN0KDAs
IDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhDbGlw
PHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNl
VHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBvY2Ns
dXNpb24uc2V0TGF5ZXJDbGlwUmVjdChJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKIAogICAg
ICAgICB0aGlzLT52aXNpdExheWVyKHN1cmZhY2UsIG9jY2x1c2lvbik7CiAKQEAgLTEyNzksOCAr
MTI3OSw4IEBAIHByb3RlY3RlZDoKICAgICAgICAgdGhpcy0+Y3JlYXRlUmVwbGljYUxheWVyKHN1
cmZhY2UsIHRoaXMtPmlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDUwLCA1MCksIEludFNpemUo
KSk7CiAgICAgICAgIHRoaXMtPmNhbGNEcmF3RXRjKHBhcmVudCk7CiAKLSAgICAgICAgVGVzdEND
T2NjbHVzaW9uVHJhY2tlcldpdGhTY2lzc29yPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5
cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwg
MTAwMCwgMTAwMCkpOwotICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJTY2lzc29yUmVjdChJbnRS
ZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldp
dGhDbGlwPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJT
dXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAg
ICBvY2NsdXNpb24uc2V0TGF5ZXJDbGlwUmVjdChJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsK
IAogICAgICAgICB0aGlzLT52aXNpdExheWVyKHN1cmZhY2UsIG9jY2x1c2lvbik7CiAKQEAgLTEz
MTEsOCArMTMxMSw4IEBAIHByb3RlY3RlZDoKICAgICAgICAgdGhpcy0+Y3JlYXRlTWFza0xheWVy
KHJlcGxpY2EsIEludFNpemUoMTAsIDEwKSk7CiAgICAgICAgIHRoaXMtPmNhbGNEcmF3RXRjKHBh
cmVudCk7CiAKLSAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhTY2lzc29yPHR5cGVu
YW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4g
b2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwotICAgICAgICBvY2NsdXNpb24u
c2V0TGF5ZXJTY2lzc29yUmVjdChJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAg
VGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhDbGlwPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUs
IHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwg
MCwgMTAwMCwgMTAwMCkpOworICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJDbGlwUmVjdChJbnRS
ZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKIAogICAgICAgICB0aGlzLT52aXNpdExheWVyKHN1cmZh
Y2UsIG9jY2x1c2lvbik7CiAKQEAgLTEzMzMsNyArMTMzMyw3IEBAIHByb3RlY3RlZDoKIEFMTF9D
Q09DQ0xVU0lPTlRSQUNLRVJfVEVTVChDQ09jY2x1c2lvblRyYWNrZXJUZXN0UmVwbGljYVdpdGhN
YXNrKTsKIAogdGVtcGxhdGU8Y2xhc3MgVHlwZXMsIGJvb2wgb3BhcXVlTGF5ZXJzPgotY2xhc3Mg
Q0NPY2NsdXNpb25UcmFja2VyVGVzdExheWVyU2Npc3NvclJlY3RPdXRzaWRlQ2hpbGQgOiBwdWJs
aWMgQ0NPY2NsdXNpb25UcmFja2VyVGVzdDxUeXBlcywgb3BhcXVlTGF5ZXJzPiB7CitjbGFzcyBD
Q09jY2x1c2lvblRyYWNrZXJUZXN0TGF5ZXJDbGlwUmVjdE91dHNpZGVDaGlsZCA6IHB1YmxpYyBD
Q09jY2x1c2lvblRyYWNrZXJUZXN0PFR5cGVzLCBvcGFxdWVMYXllcnM+IHsKIHByb3RlY3RlZDoK
ICAgICB2b2lkIHJ1bk15VGVzdCgpCiAgICAgewpAQCAtMTM0MSw4ICsxMzQxLDggQEAgcHJvdGVj
dGVkOgogICAgICAgICB0eXBlbmFtZSBUeXBlczo6Q29udGVudExheWVyVHlwZSogbGF5ZXIgPSB0
aGlzLT5jcmVhdGVEcmF3aW5nU3VyZmFjZShwYXJlbnQsIHRoaXMtPmlkZW50aXR5TWF0cml4LCBG
bG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDIwMCwgMjAwKSwgdHJ1ZSk7CiAgICAgICAgIHRoaXMt
PmNhbGNEcmF3RXRjKHBhcmVudCk7CiAKLSAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldp
dGhTY2lzc29yPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5k
ZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwotICAg
ICAgICBvY2NsdXNpb24uc2V0TGF5ZXJTY2lzc29yUmVjdChJbnRSZWN0KDIwMCwgMTAwLCAxMDAs
IDEwMCkpOworICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aENsaXA8dHlwZW5hbWUg
VHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2Ns
dXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIG9jY2x1c2lvbi5zZXRM
YXllckNsaXBSZWN0KEludFJlY3QoMjAwLCAxMDAsIDEwMCwgMTAwKSk7CiAKICAgICAgICAgdGhp
cy0+ZW50ZXJMYXllcihsYXllciwgb2NjbHVzaW9uKTsKIApAQCAtMTM1Miw5ICsxMzUyLDkgQEAg
cHJvdGVjdGVkOgogICAgICAgICBFWFBFQ1RfVFJVRShvY2NsdXNpb24ub2NjbHVkZWQobGF5ZXIs
IEludFJlY3QoMTAwLCAxMDAsIDEwMCwgMTAwKSkpOwogICAgICAgICBFWFBFQ1RfRkFMU0Uob2Nj
bHVzaW9uLm9jY2x1ZGVkKGxheWVyLCBJbnRSZWN0KDIwMCwgMTAwLCAxMDAsIDEwMCkpKTsKIAot
ICAgICAgICBvY2NsdXNpb24udXNlRGVmYXVsdExheWVyU2Npc3NvclJlY3QoKTsKKyAgICAgICAg
b2NjbHVzaW9uLnVzZURlZmF1bHRMYXllckNsaXBSZWN0KCk7CiAgICAgICAgIEVYUEVDVF9UUlVF
KG9jY2x1c2lvbi5vY2NsdWRlZChsYXllciwgSW50UmVjdCgyMDAsIDEwMCwgMTAwLCAxMDApKSk7
Ci0gICAgICAgIG9jY2x1c2lvbi5zZXRMYXllclNjaXNzb3JSZWN0KEludFJlY3QoMjAwLCAxMDAs
IDEwMCwgMTAwKSk7CisgICAgICAgIG9jY2x1c2lvbi5zZXRMYXllckNsaXBSZWN0KEludFJlY3Qo
MjAwLCAxMDAsIDEwMCwgMTAwKSk7CiAKICAgICAgICAgdGhpcy0+bGVhdmVMYXllcihsYXllciwg
b2NjbHVzaW9uKTsKICAgICAgICAgdGhpcy0+dmlzaXRDb250cmlidXRpbmdTdXJmYWNlKGxheWVy
LCBvY2NsdXNpb24pOwpAQCAtMTM3NCwxMCArMTM3NCwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgfQog
fTsKIAotQUxMX0NDT0NDTFVTSU9OVFJBQ0tFUl9URVNUKENDT2NjbHVzaW9uVHJhY2tlclRlc3RM
YXllclNjaXNzb3JSZWN0T3V0c2lkZUNoaWxkKTsKK0FMTF9DQ09DQ0xVU0lPTlRSQUNLRVJfVEVT
VChDQ09jY2x1c2lvblRyYWNrZXJUZXN0TGF5ZXJDbGlwUmVjdE91dHNpZGVDaGlsZCk7CiAKIHRl
bXBsYXRlPGNsYXNzIFR5cGVzLCBib29sIG9wYXF1ZUxheWVycz4KLWNsYXNzIENDT2NjbHVzaW9u
VHJhY2tlclRlc3RTY3JlZW5TY2lzc29yUmVjdE91dHNpZGVDaGlsZCA6IHB1YmxpYyBDQ09jY2x1
c2lvblRyYWNrZXJUZXN0PFR5cGVzLCBvcGFxdWVMYXllcnM+IHsKK2NsYXNzIENDT2NjbHVzaW9u
VHJhY2tlclRlc3RWaWV3cG9ydFJlY3RPdXRzaWRlQ2hpbGQgOiBwdWJsaWMgQ0NPY2NsdXNpb25U
cmFja2VyVGVzdDxUeXBlcywgb3BhcXVlTGF5ZXJzPiB7CiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBy
dW5NeVRlc3QoKQogICAgIHsKQEAgLTEzODUsOCArMTM4NSw4IEBAIHByb3RlY3RlZDoKICAgICAg
ICAgdHlwZW5hbWUgVHlwZXM6OkNvbnRlbnRMYXllclR5cGUqIGxheWVyID0gdGhpcy0+Y3JlYXRl
RHJhd2luZ1N1cmZhY2UocGFyZW50LCB0aGlzLT5pZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgw
LCAwKSwgSW50U2l6ZSgyMDAsIDIwMCksIHRydWUpOwogICAgICAgICB0aGlzLT5jYWxjRHJhd0V0
YyhwYXJlbnQpOwogCi0gICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoU2Npc3Nvcjx0
eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5
cGU+IG9jY2x1c2lvbihJbnRSZWN0KDIwMCwgMTAwLCAxMDAsIDEwMCkpOwotICAgICAgICBvY2Ns
dXNpb24uc2V0TGF5ZXJTY2lzc29yUmVjdChJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAg
ICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhDbGlwPHR5cGVuYW1lIFR5cGVzOjpMYXll
clR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJl
Y3QoMjAwLCAxMDAsIDEwMCwgMTAwKSk7CisgICAgICAgIG9jY2x1c2lvbi5zZXRMYXllckNsaXBS
ZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwogCiAgICAgICAgIHRoaXMtPmVudGVyTGF5
ZXIobGF5ZXIsIG9jY2x1c2lvbik7CiAKQEAgLTEzOTYsOSArMTM5Niw5IEBAIHByb3RlY3RlZDoK
ICAgICAgICAgRVhQRUNUX1RSVUUob2NjbHVzaW9uLm9jY2x1ZGVkKGxheWVyLCBJbnRSZWN0KDEw
MCwgMTAwLCAxMDAsIDEwMCkpKTsKICAgICAgICAgRVhQRUNUX0ZBTFNFKG9jY2x1c2lvbi5vY2Ns
dWRlZChsYXllciwgSW50UmVjdCgyMDAsIDEwMCwgMTAwLCAxMDApKSk7CiAKLSAgICAgICAgb2Nj
bHVzaW9uLnVzZURlZmF1bHRMYXllclNjaXNzb3JSZWN0KCk7CisgICAgICAgIG9jY2x1c2lvbi51
c2VEZWZhdWx0TGF5ZXJDbGlwUmVjdCgpOwogICAgICAgICBFWFBFQ1RfVFJVRShvY2NsdXNpb24u
b2NjbHVkZWQobGF5ZXIsIEludFJlY3QoMjAwLCAxMDAsIDEwMCwgMTAwKSkpOwotICAgICAgICBv
Y2NsdXNpb24uc2V0TGF5ZXJTY2lzc29yUmVjdChJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsK
KyAgICAgICAgb2NjbHVzaW9uLnNldExheWVyQ2xpcFJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAx
MDAwKSk7CiAKICAgICAgICAgdGhpcy0+bGVhdmVMYXllcihsYXllciwgb2NjbHVzaW9uKTsKICAg
ICAgICAgdGhpcy0+dmlzaXRDb250cmlidXRpbmdTdXJmYWNlKGxheWVyLCBvY2NsdXNpb24pOwpA
QCAtMTQxOCwxMCArMTQxOCwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgfQogfTsKIAotQUxMX0NDT0ND
TFVTSU9OVFJBQ0tFUl9URVNUKENDT2NjbHVzaW9uVHJhY2tlclRlc3RTY3JlZW5TY2lzc29yUmVj
dE91dHNpZGVDaGlsZCk7CitBTExfQ0NPQ0NMVVNJT05UUkFDS0VSX1RFU1QoQ0NPY2NsdXNpb25U
cmFja2VyVGVzdFZpZXdwb3J0UmVjdE91dHNpZGVDaGlsZCk7CiAKIHRlbXBsYXRlPGNsYXNzIFR5
cGVzLCBib29sIG9wYXF1ZUxheWVycz4KLWNsYXNzIENDT2NjbHVzaW9uVHJhY2tlclRlc3RMYXll
clNjaXNzb3JSZWN0T3ZlckNoaWxkIDogcHVibGljIENDT2NjbHVzaW9uVHJhY2tlclRlc3Q8VHlw
ZXMsIG9wYXF1ZUxheWVycz4geworY2xhc3MgQ0NPY2NsdXNpb25UcmFja2VyVGVzdExheWVyQ2xp
cFJlY3RPdmVyQ2hpbGQgOiBwdWJsaWMgQ0NPY2NsdXNpb25UcmFja2VyVGVzdDxUeXBlcywgb3Bh
cXVlTGF5ZXJzPiB7CiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBydW5NeVRlc3QoKQogICAgIHsKQEAg
LTE0MjksOCArMTQyOSw4IEBAIHByb3RlY3RlZDoKICAgICAgICAgdHlwZW5hbWUgVHlwZXM6OkNv
bnRlbnRMYXllclR5cGUqIGxheWVyID0gdGhpcy0+Y3JlYXRlRHJhd2luZ1N1cmZhY2UocGFyZW50
LCB0aGlzLT5pZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAwKSwgSW50U2l6ZSgyMDAsIDIw
MCksIHRydWUpOwogICAgICAgICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCi0gICAgICAg
IFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJU
eXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0
KDAsIDAsIDEwMDAsIDEwMDApKTsKLSAgICAgICAgb2NjbHVzaW9uLnNldExheWVyU2Npc3NvclJl
Y3QoSW50UmVjdCgxMDAsIDEwMCwgMTAwLCAxMDApKTsKKyAgICAgICAgVGVzdENDT2NjbHVzaW9u
VHJhY2tlcldpdGhDbGlwPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVz
OjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkp
OworICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJDbGlwUmVjdChJbnRSZWN0KDEwMCwgMTAwLCAx
MDAsIDEwMCkpOwogCiAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIobGF5ZXIsIG9jY2x1c2lvbik7
CiAKQEAgLTE0NTcsMTAgKzE0NTcsMTAgQEAgcHJvdGVjdGVkOgogICAgIH0KIH07CiAKLUFMTF9D
Q09DQ0xVU0lPTlRSQUNLRVJfVEVTVChDQ09jY2x1c2lvblRyYWNrZXJUZXN0TGF5ZXJTY2lzc29y
UmVjdE92ZXJDaGlsZCk7CitBTExfQ0NPQ0NMVVNJT05UUkFDS0VSX1RFU1QoQ0NPY2NsdXNpb25U
cmFja2VyVGVzdExheWVyQ2xpcFJlY3RPdmVyQ2hpbGQpOwogCiB0ZW1wbGF0ZTxjbGFzcyBUeXBl
cywgYm9vbCBvcGFxdWVMYXllcnM+Ci1jbGFzcyBDQ09jY2x1c2lvblRyYWNrZXJUZXN0U2NyZWVu
U2Npc3NvclJlY3RPdmVyQ2hpbGQgOiBwdWJsaWMgQ0NPY2NsdXNpb25UcmFja2VyVGVzdDxUeXBl
cywgb3BhcXVlTGF5ZXJzPiB7CitjbGFzcyBDQ09jY2x1c2lvblRyYWNrZXJUZXN0Vmlld3BvcnRS
ZWN0T3ZlckNoaWxkIDogcHVibGljIENDT2NjbHVzaW9uVHJhY2tlclRlc3Q8VHlwZXMsIG9wYXF1
ZUxheWVycz4gewogcHJvdGVjdGVkOgogICAgIHZvaWQgcnVuTXlUZXN0KCkKICAgICB7CkBAIC0x
NDY4LDggKzE0NjgsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHR5cGVuYW1lIFR5cGVzOjpDb250
ZW50TGF5ZXJUeXBlKiBsYXllciA9IHRoaXMtPmNyZWF0ZURyYXdpbmdTdXJmYWNlKHBhcmVudCwg
dGhpcy0+aWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMCwgMCksIEludFNpemUoMjAwLCAyMDAp
LCB0cnVlKTsKICAgICAgICAgdGhpcy0+Y2FsY0RyYXdFdGMocGFyZW50KTsKIAotICAgICAgICBU
ZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aFNjaXNzb3I8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlw
ZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgx
MDAsIDEwMCwgMTAwLCAxMDApKTsKLSAgICAgICAgb2NjbHVzaW9uLnNldExheWVyU2Npc3NvclJl
Y3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRy
YWNrZXJXaXRoQ2xpcDx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6
UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDEwMCwgMTAwLCAxMDAsIDEwMCkp
OworICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJDbGlwUmVjdChJbnRSZWN0KDAsIDAsIDEwMDAs
IDEwMDApKTsKIAogICAgICAgICB0aGlzLT5lbnRlckxheWVyKGxheWVyLCBvY2NsdXNpb24pOwog
CkBAIC0xNDk2LDEwICsxNDk2LDEwIEBAIHByb3RlY3RlZDoKICAgICB9CiB9OwogCi1BTExfQ0NP
Q0NMVVNJT05UUkFDS0VSX1RFU1QoQ0NPY2NsdXNpb25UcmFja2VyVGVzdFNjcmVlblNjaXNzb3JS
ZWN0T3ZlckNoaWxkKTsKK0FMTF9DQ09DQ0xVU0lPTlRSQUNLRVJfVEVTVChDQ09jY2x1c2lvblRy
YWNrZXJUZXN0Vmlld3BvcnRSZWN0T3ZlckNoaWxkKTsKIAogdGVtcGxhdGU8Y2xhc3MgVHlwZXMs
IGJvb2wgb3BhcXVlTGF5ZXJzPgotY2xhc3MgQ0NPY2NsdXNpb25UcmFja2VyVGVzdExheWVyU2Np
c3NvclJlY3RQYXJ0bHlPdmVyQ2hpbGQgOiBwdWJsaWMgQ0NPY2NsdXNpb25UcmFja2VyVGVzdDxU
eXBlcywgb3BhcXVlTGF5ZXJzPiB7CitjbGFzcyBDQ09jY2x1c2lvblRyYWNrZXJUZXN0TGF5ZXJD
bGlwUmVjdFBhcnRseU92ZXJDaGlsZCA6IHB1YmxpYyBDQ09jY2x1c2lvblRyYWNrZXJUZXN0PFR5
cGVzLCBvcGFxdWVMYXllcnM+IHsKIHByb3RlY3RlZDoKICAgICB2b2lkIHJ1bk15VGVzdCgpCiAg
ICAgewpAQCAtMTUwNyw4ICsxNTA3LDggQEAgcHJvdGVjdGVkOgogICAgICAgICB0eXBlbmFtZSBU
eXBlczo6Q29udGVudExheWVyVHlwZSogbGF5ZXIgPSB0aGlzLT5jcmVhdGVEcmF3aW5nU3VyZmFj
ZShwYXJlbnQsIHRoaXMtPmlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXpl
KDIwMCwgMjAwKSwgdHJ1ZSk7CiAgICAgICAgIHRoaXMtPmNhbGNEcmF3RXRjKHBhcmVudCk7CiAK
LSAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhTY2lzc29yPHR5cGVuYW1lIFR5cGVz
OjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9u
KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwotICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJT
Y2lzc29yUmVjdChJbnRSZWN0KDUwLCA1MCwgMjAwLCAyMDApKTsKKyAgICAgICAgVGVzdENDT2Nj
bHVzaW9uVHJhY2tlcldpdGhDbGlwPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1l
IFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwg
MTAwMCkpOworICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJDbGlwUmVjdChJbnRSZWN0KDUwLCA1
MCwgMjAwLCAyMDApKTsKIAogICAgICAgICB0aGlzLT5lbnRlckxheWVyKGxheWVyLCBvY2NsdXNp
b24pOwogCkBAIC0xNTM5LDEwICsxNTM5LDEwIEBAIHByb3RlY3RlZDoKICAgICB9CiB9OwogCi1B
TExfQ0NPQ0NMVVNJT05UUkFDS0VSX1RFU1QoQ0NPY2NsdXNpb25UcmFja2VyVGVzdExheWVyU2Np
c3NvclJlY3RQYXJ0bHlPdmVyQ2hpbGQpOworQUxMX0NDT0NDTFVTSU9OVFJBQ0tFUl9URVNUKEND
T2NjbHVzaW9uVHJhY2tlclRlc3RMYXllckNsaXBSZWN0UGFydGx5T3ZlckNoaWxkKTsKIAogdGVt
cGxhdGU8Y2xhc3MgVHlwZXMsIGJvb2wgb3BhcXVlTGF5ZXJzPgotY2xhc3MgQ0NPY2NsdXNpb25U
cmFja2VyVGVzdFNjcmVlblNjaXNzb3JSZWN0UGFydGx5T3ZlckNoaWxkIDogcHVibGljIENDT2Nj
bHVzaW9uVHJhY2tlclRlc3Q8VHlwZXMsIG9wYXF1ZUxheWVycz4geworY2xhc3MgQ0NPY2NsdXNp
b25UcmFja2VyVGVzdFZpZXdwb3J0UmVjdFBhcnRseU92ZXJDaGlsZCA6IHB1YmxpYyBDQ09jY2x1
c2lvblRyYWNrZXJUZXN0PFR5cGVzLCBvcGFxdWVMYXllcnM+IHsKIHByb3RlY3RlZDoKICAgICB2
b2lkIHJ1bk15VGVzdCgpCiAgICAgewpAQCAtMTU1MCw4ICsxNTUwLDggQEAgcHJvdGVjdGVkOgog
ICAgICAgICB0eXBlbmFtZSBUeXBlczo6Q29udGVudExheWVyVHlwZSogbGF5ZXIgPSB0aGlzLT5j
cmVhdGVEcmF3aW5nU3VyZmFjZShwYXJlbnQsIHRoaXMtPmlkZW50aXR5TWF0cml4LCBGbG9hdFBv
aW50KDAsIDApLCBJbnRTaXplKDIwMCwgMjAwKSwgdHJ1ZSk7CiAgICAgICAgIHRoaXMtPmNhbGNE
cmF3RXRjKHBhcmVudCk7CiAKLSAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhTY2lz
c29yPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJm
YWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoNTAsIDUwLCAyMDAsIDIwMCkpOwotICAgICAgICBv
Y2NsdXNpb24uc2V0TGF5ZXJTY2lzc29yUmVjdChJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsK
KyAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhDbGlwPHR5cGVuYW1lIFR5cGVzOjpM
YXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKElu
dFJlY3QoNTAsIDUwLCAyMDAsIDIwMCkpOworICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJDbGlw
UmVjdChJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKIAogICAgICAgICB0aGlzLT5lbnRlckxh
eWVyKGxheWVyLCBvY2NsdXNpb24pOwogCkBAIC0xNTgyLDEwICsxNTgyLDEwIEBAIHByb3RlY3Rl
ZDoKICAgICB9CiB9OwogCi1BTExfQ0NPQ0NMVVNJT05UUkFDS0VSX1RFU1QoQ0NPY2NsdXNpb25U
cmFja2VyVGVzdFNjcmVlblNjaXNzb3JSZWN0UGFydGx5T3ZlckNoaWxkKTsKK0FMTF9DQ09DQ0xV
U0lPTlRSQUNLRVJfVEVTVChDQ09jY2x1c2lvblRyYWNrZXJUZXN0Vmlld3BvcnRSZWN0UGFydGx5
T3ZlckNoaWxkKTsKIAogdGVtcGxhdGU8Y2xhc3MgVHlwZXMsIGJvb2wgb3BhcXVlTGF5ZXJzPgot
Y2xhc3MgQ0NPY2NsdXNpb25UcmFja2VyVGVzdExheWVyU2Npc3NvclJlY3RPdmVyTm90aGluZyA6
IHB1YmxpYyBDQ09jY2x1c2lvblRyYWNrZXJUZXN0PFR5cGVzLCBvcGFxdWVMYXllcnM+IHsKK2Ns
YXNzIENDT2NjbHVzaW9uVHJhY2tlclRlc3RMYXllckNsaXBSZWN0T3Zlck5vdGhpbmcgOiBwdWJs
aWMgQ0NPY2NsdXNpb25UcmFja2VyVGVzdDxUeXBlcywgb3BhcXVlTGF5ZXJzPiB7CiBwcm90ZWN0
ZWQ6CiAgICAgdm9pZCBydW5NeVRlc3QoKQogICAgIHsKQEAgLTE1OTMsOCArMTU5Myw4IEBAIHBy
b3RlY3RlZDoKICAgICAgICAgdHlwZW5hbWUgVHlwZXM6OkNvbnRlbnRMYXllclR5cGUqIGxheWVy
ID0gdGhpcy0+Y3JlYXRlRHJhd2luZ1N1cmZhY2UocGFyZW50LCB0aGlzLT5pZGVudGl0eU1hdHJp
eCwgRmxvYXRQb2ludCgwLCAwKSwgSW50U2l6ZSgyMDAsIDIwMCksIHRydWUpOwogICAgICAgICB0
aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCi0gICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNr
ZXJXaXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6
UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsK
LSAgICAgICAgb2NjbHVzaW9uLnNldExheWVyU2Npc3NvclJlY3QoSW50UmVjdCg1MDAsIDUwMCwg
MTAwLCAxMDApKTsKKyAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhDbGlwPHR5cGVu
YW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4g
b2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBvY2NsdXNpb24u
c2V0TGF5ZXJDbGlwUmVjdChJbnRSZWN0KDUwMCwgNTAwLCAxMDAsIDEwMCkpOwogCiAgICAgICAg
IHRoaXMtPmVudGVyTGF5ZXIobGF5ZXIsIG9jY2x1c2lvbik7CiAKQEAgLTE2MjUsMTAgKzE2MjUs
MTAgQEAgcHJvdGVjdGVkOgogICAgIH0KIH07CiAKLUFMTF9DQ09DQ0xVU0lPTlRSQUNLRVJfVEVT
VChDQ09jY2x1c2lvblRyYWNrZXJUZXN0TGF5ZXJTY2lzc29yUmVjdE92ZXJOb3RoaW5nKTsKK0FM
TF9DQ09DQ0xVU0lPTlRSQUNLRVJfVEVTVChDQ09jY2x1c2lvblRyYWNrZXJUZXN0TGF5ZXJDbGlw
UmVjdE92ZXJOb3RoaW5nKTsKIAogdGVtcGxhdGU8Y2xhc3MgVHlwZXMsIGJvb2wgb3BhcXVlTGF5
ZXJzPgotY2xhc3MgQ0NPY2NsdXNpb25UcmFja2VyVGVzdFNjcmVlblNjaXNzb3JSZWN0T3Zlck5v
dGhpbmcgOiBwdWJsaWMgQ0NPY2NsdXNpb25UcmFja2VyVGVzdDxUeXBlcywgb3BhcXVlTGF5ZXJz
PiB7CitjbGFzcyBDQ09jY2x1c2lvblRyYWNrZXJUZXN0Vmlld3BvcnRSZWN0T3Zlck5vdGhpbmcg
OiBwdWJsaWMgQ0NPY2NsdXNpb25UcmFja2VyVGVzdDxUeXBlcywgb3BhcXVlTGF5ZXJzPiB7CiBw
cm90ZWN0ZWQ6CiAgICAgdm9pZCBydW5NeVRlc3QoKQogICAgIHsKQEAgLTE2MzYsOCArMTYzNiw4
IEBAIHByb3RlY3RlZDoKICAgICAgICAgdHlwZW5hbWUgVHlwZXM6OkNvbnRlbnRMYXllclR5cGUq
IGxheWVyID0gdGhpcy0+Y3JlYXRlRHJhd2luZ1N1cmZhY2UocGFyZW50LCB0aGlzLT5pZGVudGl0
eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAwKSwgSW50U2l6ZSgyMDAsIDIwMCksIHRydWUpOwogICAg
ICAgICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCi0gICAgICAgIFRlc3RDQ09jY2x1c2lv
blRyYWNrZXJXaXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBU
eXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDUwMCwgNTAwLCAxMDAs
IDEwMCkpOwotICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJTY2lzc29yUmVjdChJbnRSZWN0KDAs
IDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhDbGlw
PHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNl
VHlwZT4gb2NjbHVzaW9uKEludFJlY3QoNTAwLCA1MDAsIDEwMCwgMTAwKSk7CisgICAgICAgIG9j
Y2x1c2lvbi5zZXRMYXllckNsaXBSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwogCiAg
ICAgICAgIHRoaXMtPmVudGVyTGF5ZXIobGF5ZXIsIG9jY2x1c2lvbik7CiAKQEAgLTE2NjgsMTAg
KzE2NjgsMTAgQEAgcHJvdGVjdGVkOgogICAgIH0KIH07CiAKLUFMTF9DQ09DQ0xVU0lPTlRSQUNL
RVJfVEVTVChDQ09jY2x1c2lvblRyYWNrZXJUZXN0U2NyZWVuU2Npc3NvclJlY3RPdmVyTm90aGlu
Zyk7CitBTExfQ0NPQ0NMVVNJT05UUkFDS0VSX1RFU1QoQ0NPY2NsdXNpb25UcmFja2VyVGVzdFZp
ZXdwb3J0UmVjdE92ZXJOb3RoaW5nKTsKIAogdGVtcGxhdGU8Y2xhc3MgVHlwZXMsIGJvb2wgb3Bh
cXVlTGF5ZXJzPgotY2xhc3MgQ0NPY2NsdXNpb25UcmFja2VyVGVzdExheWVyU2Npc3NvclJlY3RG
b3JMYXllck9mZk9yaWdpbiA6IHB1YmxpYyBDQ09jY2x1c2lvblRyYWNrZXJUZXN0PFR5cGVzLCBv
cGFxdWVMYXllcnM+IHsKK2NsYXNzIENDT2NjbHVzaW9uVHJhY2tlclRlc3RMYXllckNsaXBSZWN0
Rm9yTGF5ZXJPZmZPcmlnaW4gOiBwdWJsaWMgQ0NPY2NsdXNpb25UcmFja2VyVGVzdDxUeXBlcywg
b3BhcXVlTGF5ZXJzPiB7CiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBydW5NeVRlc3QoKQogICAgIHsK
QEAgLTE2NzksMTIgKzE2NzksMTIgQEAgcHJvdGVjdGVkOgogICAgICAgICB0eXBlbmFtZSBUeXBl
czo6Q29udGVudExheWVyVHlwZSogbGF5ZXIgPSB0aGlzLT5jcmVhdGVEcmF3aW5nU3VyZmFjZShw
YXJlbnQsIHRoaXMtPmlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDIw
MCwgMjAwKSwgdHJ1ZSk7CiAgICAgICAgIHRoaXMtPmNhbGNEcmF3RXRjKHBhcmVudCk7CiAKLSAg
ICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhTY2lzc29yPHR5cGVuYW1lIFR5cGVzOjpM
YXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKElu
dFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2Vy
V2l0aENsaXA8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRl
clN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAgICAg
ICAgIHRoaXMtPmVudGVyTGF5ZXIobGF5ZXIsIG9jY2x1c2lvbik7CiAKLSAgICAgICAgLy8gVGhp
cyBsYXllciBpcyB0cmFuc2xhdGVkIHdoZW4gZHJhd24gaW50byBpdHMgdGFyZ2V0LiBTbyBpZiB0
aGUgc2Npc3NvciByZWN0IGdpdmVuIGZyb20gdGhlIHRhcmdldCBzdXJmYWNlCisgICAgICAgIC8v
IFRoaXMgbGF5ZXIgaXMgdHJhbnNsYXRlZCB3aGVuIGRyYXduIGludG8gaXRzIHRhcmdldC4gU28g
aWYgdGhlIGNsaXAgcmVjdCBnaXZlbiBmcm9tIHRoZSB0YXJnZXQgc3VyZmFjZQogICAgICAgICAv
LyBpcyBub3QgaW4gdGhhdCB0YXJnZXQgc3BhY2UsIHRoZW4gYWZ0ZXIgdHJhbnNsYXRpbmcgdGhl
c2UgcXVlcnkgcmVjdHMgaW50byB0aGUgdGFyZ2V0LCB0aGV5IHdpbGwgZmFsbCBvdXRzaWRlCi0g
ICAgICAgIC8vIHRoZSBzY2lzc29yIGFuZCBiZSBjb25zaWRlcmVkIG9jY2x1ZGVkLgorICAgICAg
ICAvLyB0aGUgY2xpcCBhbmQgYmUgY29uc2lkZXJlZCBvY2NsdWRlZC4KICAgICAgICAgRVhQRUNU
X0ZBTFNFKG9jY2x1c2lvbi5vY2NsdWRlZChsYXllciwgSW50UmVjdCgwLCAwLCAxMDAsIDEwMCkp
KTsKICAgICAgICAgRVhQRUNUX0ZBTFNFKG9jY2x1c2lvbi5vY2NsdWRlZChsYXllciwgSW50UmVj
dCgwLCAxMDAsIDEwMCwgMTAwKSkpOwogICAgICAgICBFWFBFQ1RfRkFMU0Uob2NjbHVzaW9uLm9j
Y2x1ZGVkKGxheWVyLCBJbnRSZWN0KDEwMCwgMCwgMTAwLCAxMDApKSk7CkBAIC0xNjkyLDcgKzE2
OTIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgfQogfTsKIAotQUxMX0NDT0NDTFVTSU9OVFJBQ0tFUl9U
RVNUKENDT2NjbHVzaW9uVHJhY2tlclRlc3RMYXllclNjaXNzb3JSZWN0Rm9yTGF5ZXJPZmZPcmln
aW4pOworQUxMX0NDT0NDTFVTSU9OVFJBQ0tFUl9URVNUKENDT2NjbHVzaW9uVHJhY2tlclRlc3RM
YXllckNsaXBSZWN0Rm9yTGF5ZXJPZmZPcmlnaW4pOwogCiB0ZW1wbGF0ZTxjbGFzcyBUeXBlcywg
Ym9vbCBvcGFxdWVMYXllcnM+CiBjbGFzcyBDQ09jY2x1c2lvblRyYWNrZXJUZXN0T3BhcXVlQ29u
dGVudHNSZWdpb25FbXB0eSA6IHB1YmxpYyBDQ09jY2x1c2lvblRyYWNrZXJUZXN0PFR5cGVzLCBv
cGFxdWVMYXllcnM+IHsKQEAgLTE3MDMsNyArMTcwMyw3IEBAIHByb3RlY3RlZDoKICAgICAgICAg
dHlwZW5hbWUgVHlwZXM6OkNvbnRlbnRMYXllclR5cGUqIGxheWVyID0gdGhpcy0+Y3JlYXRlRHJh
d2luZ1N1cmZhY2UocGFyZW50LCB0aGlzLT5pZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAw
KSwgSW50U2l6ZSgyMDAsIDIwMCksIGZhbHNlKTsKICAgICAgICAgdGhpcy0+Y2FsY0RyYXdFdGMo
cGFyZW50KTsKIAotICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aFNjaXNzb3I8dHlw
ZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBl
PiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRlc3RDQ09j
Y2x1c2lvblRyYWNrZXJXaXRoQ2xpcDx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFt
ZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAs
IDEwMDApKTsKICAgICAgICAgdGhpcy0+ZW50ZXJMYXllcihsYXllciwgb2NjbHVzaW9uKTsKIAog
ICAgICAgICBFWFBFQ1RfRkFMU0Uob2NjbHVzaW9uLm9jY2x1ZGVkKGxheWVyLCBJbnRSZWN0KDAs
IDAsIDEwMCwgMTAwKSkpOwpAQCAtMTcxNCwxMCArMTcxNCwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAg
ICAgIC8vIE9jY2x1ZGVkIHNpbmNlIGl0cyBvdXRzaWRlIHRoZSBzdXJmYWNlIGJvdW5kcy4KICAg
ICAgICAgRVhQRUNUX1RSVUUob2NjbHVzaW9uLm9jY2x1ZGVkKGxheWVyLCBJbnRSZWN0KDIwMCwg
MTAwLCAxMDAsIDEwMCkpKTsKIAotICAgICAgICAvLyBUZXN0IHdpdGhvdXQgYW55IHNjaXNzb3Jz
LgotICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJTY2lzc29yUmVjdChJbnRSZWN0KDAsIDAsIDEw
MDAsIDEwMDApKTsKKyAgICAgICAgLy8gVGVzdCB3aXRob3V0IGFueSBjbGlwIHJlY3QuCisgICAg
ICAgIG9jY2x1c2lvbi5zZXRMYXllckNsaXBSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkp
OwogICAgICAgICBFWFBFQ1RfRkFMU0Uob2NjbHVzaW9uLm9jY2x1ZGVkKGxheWVyLCBJbnRSZWN0
KDIwMCwgMTAwLCAxMDAsIDEwMCkpKTsKLSAgICAgICAgb2NjbHVzaW9uLnVzZURlZmF1bHRMYXll
clNjaXNzb3JSZWN0KCk7CisgICAgICAgIG9jY2x1c2lvbi51c2VEZWZhdWx0TGF5ZXJDbGlwUmVj
dCgpOwogCiAgICAgICAgIHRoaXMtPmxlYXZlTGF5ZXIobGF5ZXIsIG9jY2x1c2lvbik7CiAgICAg
ICAgIHRoaXMtPnZpc2l0Q29udHJpYnV0aW5nU3VyZmFjZShsYXllciwgb2NjbHVzaW9uKTsKQEAg
LTE3NDAsNyArMTc0MCw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgdGhpcy0+Y2FsY0RyYXdFdGMo
cGFyZW50KTsKIAogICAgICAgICB7Ci0gICAgICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2Vy
V2l0aFNjaXNzb3I8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJl
bmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7Cisg
ICAgICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aENsaXA8dHlwZW5hbWUgVHlwZXM6
OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24o
SW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAgICAgICAgICAgICBsYXllci0+c2V0T3BhcXVl
Q29udGVudHNSZWN0KEludFJlY3QoMCwgMCwgMTAwLCAxMDApKTsKIAogICAgICAgICAgICAgdGhp
cy0+cmVzZXRMYXllckl0ZXJhdG9yKCk7CkBAIC0xNzU2LDcgKzE3NTYsNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgICAgIH0KIAogICAgICAgICB7Ci0gICAgICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFj
a2VyV2l0aFNjaXNzb3I8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6
OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7
CisgICAgICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aENsaXA8dHlwZW5hbWUgVHlw
ZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNp
b24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAgICAgICAgICAgICBsYXllci0+c2V0T3Bh
cXVlQ29udGVudHNSZWN0KEludFJlY3QoMjAsIDIwLCAxODAsIDE4MCkpOwogCiAgICAgICAgICAg
ICB0aGlzLT5yZXNldExheWVySXRlcmF0b3IoKTsKQEAgLTE3NzIsNyArMTc3Miw3IEBAIHByb3Rl
Y3RlZDoKICAgICAgICAgfQogCiAgICAgICAgIHsKLSAgICAgICAgICAgIFRlc3RDQ09jY2x1c2lv
blRyYWNrZXJXaXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBU
eXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEw
MDApKTsKKyAgICAgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoQ2xpcDx0eXBlbmFt
ZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9j
Y2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKICAgICAgICAgICAgIGxheWVyLT5z
ZXRPcGFxdWVDb250ZW50c1JlY3QoSW50UmVjdCgxNTAsIDE1MCwgMTAwLCAxMDApKTsKIAogICAg
ICAgICAgICAgdGhpcy0+cmVzZXRMYXllckl0ZXJhdG9yKCk7CkBAIC0xODA0LDcgKzE4MDQsNyBA
QCBwcm90ZWN0ZWQ6CiAgICAgICAgIHR5cGVuYW1lIFR5cGVzOjpDb250ZW50TGF5ZXJUeXBlKiBs
YXllciA9IHRoaXMtPmNyZWF0ZURyYXdpbmdMYXllcihjb250YWluZXIsIHRyYW5zZm9ybSwgRmxv
YXRQb2ludCgxMDAsIDEwMCksIEludFNpemUoMjAwLCAyMDApLCB0cnVlKTsKICAgICAgICAgdGhp
cy0+Y2FsY0RyYXdFdGMocGFyZW50KTsKIAotICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2Vy
V2l0aFNjaXNzb3I8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJl
bmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7Cisg
ICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoQ2xpcDx0eXBlbmFtZSBUeXBlczo6TGF5
ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRS
ZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKICAgICAgICAgdGhpcy0+ZW50ZXJMYXllcihsYXllciwg
b2NjbHVzaW9uKTsKIAogICAgICAgICAvLyBUaGUgbGF5ZXIgaXMgcm90YXRlZCBpbiAzZCBidXQg
d2l0aG91dCBwcmVzZXJ2aW5nIDNkLCBzbyBpdCBvbmx5IGdldHMgcmVzaXplZC4KQEAgLTE4Mzgs
NyArMTgzOCw3IEBAIHByb3RlY3RlZDoKIAogICAgICAgICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJl
bnQpOwogCi0gICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoU2Npc3Nvcjx0eXBlbmFt
ZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9j
Y2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgVGVzdENDT2NjbHVz
aW9uVHJhY2tlcldpdGhDbGlwPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5
cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAw
MCkpOwogICAgICAgICB0aGlzLT52aXNpdExheWVyKGNoaWxkMiwgb2NjbHVzaW9uKTsKICAgICAg
ICAgRVhQRUNUX1RSVUUob2NjbHVzaW9uLm9jY2x1c2lvbkluU2NyZWVuU3BhY2UoKS5pc0VtcHR5
KCkpOwogICAgICAgICBFWFBFQ1RfVFJVRShvY2NsdXNpb24ub2NjbHVzaW9uSW5UYXJnZXRTdXJm
YWNlKCkuaXNFbXB0eSgpKTsKQEAgLTE4NzAsNyArMTg3MCw3IEBAIHByb3RlY3RlZDoKICAgICAg
ICAgbGF5ZXItPnNldFByZXNlcnZlczNEKHRydWUpOwogICAgICAgICB0aGlzLT5jYWxjRHJhd0V0
YyhwYXJlbnQpOwogCi0gICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoU2Npc3Nvcjx0
eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5
cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgVGVzdEND
T2NjbHVzaW9uVHJhY2tlcldpdGhDbGlwPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVu
YW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAw
MCwgMTAwMCkpOwogICAgICAgICB0aGlzLT5lbnRlckxheWVyKGxheWVyLCBvY2NsdXNpb24pOwog
CiAgICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDIwMCwgMjAwKSwgb2Nj
bHVzaW9uLnVub2NjbHVkZWRDb250ZW50UmVjdChsYXllciwgSW50UmVjdCgwLCAwLCAyMDAsIDIw
MCkpKTsKQEAgLTE5MDEsNyArMTkwMSw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgbGF5ZXItPnNl
dFByZXNlcnZlczNEKHRydWUpOwogICAgICAgICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQpOwog
Ci0gICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBl
czo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lv
bihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJh
Y2tlcldpdGhDbGlwPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpS
ZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwog
ICAgICAgICB0aGlzLT5lbnRlckxheWVyKGxheWVyLCBvY2NsdXNpb24pOwogCiAgICAgICAgIC8v
IFRoZSBib3R0b20gMTEgcGl4ZWwgcm93cyBvZiB0aGlzIGxheWVyIHJlbWFpbiB2aXNpYmxlIGlu
c2lkZSB0aGUgY29udGFpbmVyLCBhZnRlciB0cmFuc2xhdGlvbiB0byB0aGUgdGFyZ2V0IHN1cmZh
Y2UuIFdoZW4gdHJhbnNsYXRlZCBiYWNrLApAQCAtMTkzMCw3ICsxOTMwLDcgQEAgcHJvdGVjdGVk
OgogICAgICAgICBsYXllci0+c2V0UHJlc2VydmVzM0QodHJ1ZSk7CiAgICAgICAgIHRoaXMtPmNh
bGNEcmF3RXRjKHBhcmVudCk7CiAKLSAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhT
Y2lzc29yPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJT
dXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAg
ICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aENsaXA8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlw
ZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgw
LCAwLCAxMDAwLCAxMDAwKSk7CiAKICAgICAgICAgLy8gVGhlIHxsYXllcnwgaXMgZW50aXJlbHkg
YmVoaW5kIHRoZSBjYW1lcmEgYW5kIHNob3VsZCBub3Qgb2NjbHVkZS4KICAgICAgICAgdGhpcy0+
dmlzaXRMYXllcihsYXllciwgb2NjbHVzaW9uKTsKQEAgLTE5NjAsNyArMTk2MCw3IEBAIHByb3Rl
Y3RlZDoKICAgICAgICAgbGF5ZXItPnNldFByZXNlcnZlczNEKHRydWUpOwogICAgICAgICB0aGlz
LT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCi0gICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJX
aXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVu
ZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAg
ICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhDbGlwPHR5cGVuYW1lIFR5cGVzOjpMYXll
clR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKEludFJl
Y3QoMCwgMCwgMTAwMCwgMTAwMCkpOwogCiAgICAgICAgIC8vIFRoaXMgaXMgdmVyeSBjbG9zZSB0
byB0aGUgY2FtZXJhLCBzbyBwaXhlbHMgaW4gaXRzIHZpc2libGVDb250ZW50UmVjdCB3aWxsIGFj
dHVhbGx5IGdvIG91dHNpZGUgb2YgdGhlIGxheWVyJ3MgY2xpcFJlY3QuCiAgICAgICAgIC8vIEVu
c3VyZSB0aGF0IHRob3NlIHBpeGVscyBkb24ndCBvY2NsdWRlIHRoaW5ncyBvdXRzaWRlIHRoZSBj
bGlwUmVjdC4KQEAgLTE5OTcsNyArMTk5Nyw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgRVhQRUNU
X0ZBTFNFKHN1cmZhY2UtPmRyYXdPcGFjaXR5SXNBbmltYXRpbmcoKSk7CiAgICAgICAgIEVYUEVD
VF9UUlVFKHN1cmZhY2UtPnJlbmRlclN1cmZhY2UoKS0+ZHJhd09wYWNpdHlJc0FuaW1hdGluZygp
KTsKIAotICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aFNjaXNzb3I8dHlwZW5hbWUg
VHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2Ns
dXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1c2lv
blRyYWNrZXJXaXRoQ2xpcDx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBl
czo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDAp
KTsKIAogICAgICAgICB0aGlzLT52aXNpdExheWVyKHRvcG1vc3QsIG9jY2x1c2lvbik7CiAgICAg
ICAgIHRoaXMtPmVudGVyTGF5ZXIocGFyZW50Miwgb2NjbHVzaW9uKTsKQEAgLTIwNDksNyArMjA0
OSw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgRVhQRUNUX0ZBTFNFKHN1cmZhY2UtPmRyYXdPcGFj
aXR5SXNBbmltYXRpbmcoKSk7CiAgICAgICAgIEVYUEVDVF9UUlVFKHN1cmZhY2UtPnJlbmRlclN1
cmZhY2UoKS0+ZHJhd09wYWNpdHlJc0FuaW1hdGluZygpKTsKIAotICAgICAgICBUZXN0Q0NPY2Ns
dXNpb25UcmFja2VyV2l0aFNjaXNzb3I8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5h
bWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAw
LCAxMDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoQ2xpcDx0eXBlbmFt
ZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9j
Y2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKIAogICAgICAgICB0aGlzLT52aXNp
dExheWVyKHRvcG1vc3QsIG9jY2x1c2lvbik7CiAgICAgICAgIHRoaXMtPmVudGVyTGF5ZXIocGFy
ZW50Miwgb2NjbHVzaW9uKTsKQEAgLTIxMDcsNyArMjEwNyw3IEBAIHByb3RlY3RlZDoKICAgICAg
ICAgRVhQRUNUX1RSVUUoc3VyZmFjZUNoaWxkLT5kcmF3VHJhbnNmb3JtSXNBbmltYXRpbmcoKSk7
CiAgICAgICAgIEVYUEVDVF9UUlVFKHN1cmZhY2VDaGlsZC0+c2NyZWVuU3BhY2VUcmFuc2Zvcm1J
c0FuaW1hdGluZygpKTsKIAotICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aFNjaXNz
b3I8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZh
Y2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRl
c3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoQ2xpcDx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0
eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAs
IDEwMDAsIDEwMDApKTsKIAogICAgICAgICB0aGlzLT52aXNpdExheWVyKHN1cmZhY2UyLCBvY2Ns
dXNpb24pOwogICAgICAgICB0aGlzLT5lbnRlckNvbnRyaWJ1dGluZ1N1cmZhY2Uoc3VyZmFjZTIs
IG9jY2x1c2lvbik7CkBAIC0yMTg5LDcgKzIxODksNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHN1
cmZhY2UyLT5zZXRPcGFxdWVDb250ZW50c1JlY3QoSW50UmVjdCgwLCAwLCAyMDAsIDIwMCkpOwog
ICAgICAgICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCi0gICAgICAgIFRlc3RDQ09jY2x1
c2lvblRyYWNrZXJXaXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFt
ZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAs
IDEwMDApKTsKKyAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhDbGlwPHR5cGVuYW1l
IFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2Nj
bHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwogCiAgICAgICAgIHRoaXMtPnZpc2l0
TGF5ZXIoc3VyZmFjZTIsIG9jY2x1c2lvbik7CiAgICAgICAgIHRoaXMtPnZpc2l0Q29udHJpYnV0
aW5nU3VyZmFjZShzdXJmYWNlMiwgb2NjbHVzaW9uKTsKQEAgLTIyMjUsNyArMjIyNSw3IEBAIHBy
b3RlY3RlZDoKICAgICAgICAgc3VyZmFjZS0+c2V0T3BhcXVlQ29udGVudHNSZWN0KEludFJlY3Qo
MCwgMCwgNDAwLCAyMDApKTsKICAgICAgICAgdGhpcy0+Y2FsY0RyYXdFdGMocGFyZW50KTsKIAot
ICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aFNjaXNzb3I8dHlwZW5hbWUgVHlwZXM6
OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24o
SW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNr
ZXJXaXRoQ2xpcDx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVu
ZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKIAog
ICAgICAgICB0aGlzLT52aXNpdExheWVyKHN1cmZhY2UsIG9jY2x1c2lvbik7CiAgICAgICAgIHRo
aXMtPnZpc2l0Q29udHJpYnV0aW5nU3VyZmFjZShzdXJmYWNlLCBvY2NsdXNpb24pOwpAQCAtMjI1
MCw4ICsyMjUwLDggQEAgcHJvdGVjdGVkOgogICAgICAgICB0eXBlbmFtZSBUeXBlczo6TGF5ZXJU
eXBlKiB0b3Btb3N0ID0gdGhpcy0+Y3JlYXRlRHJhd2luZ0xheWVyKHBhcmVudCwgdGhpcy0+aWRl
bnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMCwgMTAwKSwgSW50U2l6ZSgxMDAsIDEwMCksIHRydWUp
OwogICAgICAgICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCi0gICAgICAgIFRlc3RDQ09j
Y2x1c2lvblRyYWNrZXJXaXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBl
bmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEw
MDAsIDEwMDApKTsKLSAgICAgICAgb2NjbHVzaW9uLnNldExheWVyU2Npc3NvclJlY3QoSW50UmVj
dCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRo
Q2xpcDx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3Vy
ZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAg
b2NjbHVzaW9uLnNldExheWVyQ2xpcFJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAK
ICAgICAgICAgLy8gfHRvcG1vc3R8IG9jY2x1ZGVzIHRoZSByZXBsaWNhLCBidXQgbm90IHRoZSBz
dXJmYWNlIGl0c2VsZi4KICAgICAgICAgdGhpcy0+dmlzaXRMYXllcih0b3Btb3N0LCBvY2NsdXNp
b24pOwpAQCAtMjI4OCw4ICsyMjg4LDggQEAgcHJvdGVjdGVkOgogICAgICAgICB0eXBlbmFtZSBU
eXBlczo6TGF5ZXJUeXBlKiB0b3Btb3N0ID0gdGhpcy0+Y3JlYXRlRHJhd2luZ0xheWVyKHBhcmVu
dCwgdGhpcy0+aWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9pbnQoMCwgMCksIEludFNpemUoMTAwLCAx
MTApLCB0cnVlKTsKICAgICAgICAgdGhpcy0+Y2FsY0RyYXdFdGMocGFyZW50KTsKIAotICAgICAg
ICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aFNjaXNzb3I8dHlwZW5hbWUgVHlwZXM6OkxheWVy
VHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVj
dCgwLCAwLCAxMDAwLCAxMDAwKSk7Ci0gICAgICAgIG9jY2x1c2lvbi5zZXRMYXllclNjaXNzb3JS
ZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBUZXN0Q0NPY2NsdXNpb25U
cmFja2VyV2l0aENsaXA8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6
OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7
CisgICAgICAgIG9jY2x1c2lvbi5zZXRMYXllckNsaXBSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwg
MTAwMCkpOwogCiAgICAgICAgIC8vIHx0b3Btb3N0fCBvY2NsdWRlcyB0aGUgc3VyZmFjZSwgYnV0
IG5vdCB0aGUgZW50aXJlIHN1cmZhY2UncyByZXBsaWNhLgogICAgICAgICB0aGlzLT52aXNpdExh
eWVyKHRvcG1vc3QsIG9jY2x1c2lvbik7CkBAIC0yMzI4LDggKzIzMjgsOCBAQCBwcm90ZWN0ZWQ6
CiAgICAgICAgIHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUqIG92ZXJSZXBsaWNhID0gdGhpcy0+
Y3JlYXRlRHJhd2luZ0xheWVyKHBhcmVudCwgdGhpcy0+aWRlbnRpdHlNYXRyaXgsIEZsb2F0UG9p
bnQoMCwgMTAwKSwgSW50U2l6ZSg1MCwgMTAwKSwgdHJ1ZSk7CiAgICAgICAgIHRoaXMtPmNhbGNE
cmF3RXRjKHBhcmVudCk7CiAKLSAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhTY2lz
c29yPHR5cGVuYW1lIFR5cGVzOjpMYXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJm
YWNlVHlwZT4gb2NjbHVzaW9uKEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwotICAgICAgICBv
Y2NsdXNpb24uc2V0TGF5ZXJTY2lzc29yUmVjdChJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsK
KyAgICAgICAgVGVzdENDT2NjbHVzaW9uVHJhY2tlcldpdGhDbGlwPHR5cGVuYW1lIFR5cGVzOjpM
YXllclR5cGUsIHR5cGVuYW1lIFR5cGVzOjpSZW5kZXJTdXJmYWNlVHlwZT4gb2NjbHVzaW9uKElu
dFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAgICBvY2NsdXNpb24uc2V0TGF5ZXJDbGlw
UmVjdChJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKIAogICAgICAgICAvLyBUaGVzZSBvY2Ns
dWRlIHRoZSBzdXJmYWNlIGFuZCByZXBsaWNhIGRpZmZlcmVudGx5LCBzbyB3ZSBjYW4gdGVzdCBl
YWNoIG9uZS4KICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihvdmVyUmVwbGljYSwgb2NjbHVzaW9u
KTsKQEAgLTIzNzAsNyArMjM3MCw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgdHlwZW5hbWUgVHlw
ZXM6OkxheWVyVHlwZSogdG9wbW9zdCA9IHRoaXMtPmNyZWF0ZURyYXdpbmdMYXllcihwYXJlbnQs
IHRoaXMtPmlkZW50aXR5TWF0cml4LCBGbG9hdFBvaW50KDAsIDApLCBJbnRTaXplKDEwMCwgNTAp
LCB0cnVlKTsKICAgICAgICAgdGhpcy0+Y2FsY0RyYXdFdGMocGFyZW50KTsKIAotICAgICAgICBU
ZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aFNjaXNzb3I8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlw
ZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgt
MTAwLCAtMTAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJX
aXRoQ2xpcDx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVy
U3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KC0xMDAsIC0xMDAsIDEwMDAsIDEwMDApKTsK
IAogICAgICAgICAvLyB8dG9wbW9zdHwgb2NjbHVkZXMgZXZlcnl0aGluZyBwYXJ0aWFsbHkgc28g
d2Uga25vdyBvY2NsdXNpb24gaXMgaGFwcGVuaW5nIGF0IGFsbC4KICAgICAgICAgdGhpcy0+dmlz
aXRMYXllcih0b3Btb3N0LCBvY2NsdXNpb24pOwpAQCAtMjQxNiwxOSArMjQxNiwxOSBAQCBwcm90
ZWN0ZWQ6CiBBTExfQ0NPQ0NMVVNJT05UUkFDS0VSX1RFU1QoQ0NPY2NsdXNpb25UcmFja2VyVGVz
dFN1cmZhY2VDaGlsZE9mU3VyZmFjZSk7CiAKIHRlbXBsYXRlPGNsYXNzIFR5cGVzLCBib29sIG9w
YXF1ZUxheWVycz4KLWNsYXNzIENDT2NjbHVzaW9uVHJhY2tlclRlc3RUb3Btb3N0U3VyZmFjZUlz
Q2xpcHBlZFRvU2Npc3NvciA6IHB1YmxpYyBDQ09jY2x1c2lvblRyYWNrZXJUZXN0PFR5cGVzLCBv
cGFxdWVMYXllcnM+IHsKK2NsYXNzIENDT2NjbHVzaW9uVHJhY2tlclRlc3RUb3Btb3N0U3VyZmFj
ZUlzQ2xpcHBlZFRvVmlld3BvcnQgOiBwdWJsaWMgQ0NPY2NsdXNpb25UcmFja2VyVGVzdDxUeXBl
cywgb3BhcXVlTGF5ZXJzPiB7CiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBydW5NeVRlc3QoKQogICAg
IHsKLSAgICAgICAgLy8gVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgdGhlIHRvcC1tb3N0IHN1cmZh
Y2UgaXMgY29uc2lkZXJlZCBvY2NsdWRlZCBvdXRzaWRlIG9mIGl0cyBzY2lzc29yIHJlY3QgYW5k
IG91dHNpZGUgdGhlIHNjcmVlbidzIHNjaXNzb3IgcmVjdC4KKyAgICAgICAgLy8gVGhpcyB0ZXN0
IHZlcmlmaWVzIHRoYXQgdGhlIHRvcC1tb3N0IHN1cmZhY2UgaXMgY29uc2lkZXJlZCBvY2NsdWRl
ZCBvdXRzaWRlIG9mIGl0cyB0YXJnZXQncyBjbGlwUmVjdCBhbmQgb3V0c2lkZSB0aGUgdmlld3Bv
cnQgcmVjdC4KIAogICAgICAgICB0eXBlbmFtZSBUeXBlczo6Q29udGVudExheWVyVHlwZSogcGFy
ZW50ID0gdGhpcy0+Y3JlYXRlUm9vdCh0aGlzLT5pZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgw
LCAwKSwgSW50U2l6ZSgxMDAsIDIwMCkpOwogICAgICAgICB0eXBlbmFtZSBUeXBlczo6TGF5ZXJU
eXBlKiBzdXJmYWNlID0gdGhpcy0+Y3JlYXRlRHJhd2luZ1N1cmZhY2UocGFyZW50LCB0aGlzLT5p
ZGVudGl0eU1hdHJpeCwgRmxvYXRQb2ludCgwLCAwKSwgSW50U2l6ZSgxMDAsIDMwMCksIHRydWUp
OwogICAgICAgICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIC8vIE1ha2UgYSBzY3JlZW4gc2Npc3NvciByZWN0IHRoYXQgaXMgbGFyZ2VyIHRoYW4g
dGhlIHJvb3QgbGF5ZXIncy4KLSAgICAgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRo
U2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVy
U3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAg
ICAgICAgIC8vIE1ha2UgYSB2aWV3cG9ydCByZWN0IHRoYXQgaXMgbGFyZ2VyIHRoYW4gdGhlIHJv
b3QgbGF5ZXIuCisgICAgICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aENsaXA8dHlw
ZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBl
PiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAKICAgICAgICAgICAgIHRo
aXMtPnZpc2l0TGF5ZXIoc3VyZmFjZSwgb2NjbHVzaW9uKTsKIApAQCAtMjQzOSwyMCArMjQzOSwy
MCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIH0KICAgICAgICAgdGhpcy0+cmVzZXRMYXllckl0ZXJh
dG9yKCk7CiAgICAgICAgIHsKLSAgICAgICAgICAgIC8vIE1ha2UgYSBzY3JlZW4gc2Npc3NvciBy
ZWN0IHRoYXQgaXMgc21hbGxlciB0aGFuIHRoZSByb290IGxheWVyJ3MuCi0gICAgICAgICAgICBU
ZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aFNjaXNzb3I8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlw
ZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgw
LCAwLCAxMDAsIDEwMCkpOworICAgICAgICAgICAgLy8gTWFrZSBhIHZpZXdwb3J0IHJlY3QgdGhh
dCBpcyBzbWFsbGVyIHRoYW4gdGhlIHJvb3QgbGF5ZXIuCisgICAgICAgICAgICBUZXN0Q0NPY2Ns
dXNpb25UcmFja2VyV2l0aENsaXA8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUg
VHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAsIDEw
MCkpOwogCiAgICAgICAgICAgICB0aGlzLT52aXNpdExheWVyKHN1cmZhY2UsIG9jY2x1c2lvbik7
CiAKICAgICAgICAgICAgIC8vIFRoZSByb290IGxheWVyIGFsd2F5cyBoYXMgYSBjbGlwUmVjdC4g
U28gdGhlIHBhcmVudCBvZiB8c3VyZmFjZXwgaGFzIGEgY2xpcFJlY3QgZ2l2aW5nIHRoZSBzdXJm
YWNlIGl0c2VsZiBhIGNsaXBSZWN0LgogICAgICAgICAgICAgdGhpcy0+ZW50ZXJDb250cmlidXRp
bmdTdXJmYWNlKHN1cmZhY2UsIG9jY2x1c2lvbik7Ci0gICAgICAgICAgICAvLyBNYWtlIHN1cmUg
dGhlIHNjcmVlbiBzY2lzc29yIHJlY3QgY2xpcHMgdGhlIHVub2NjbHVkZWQgcmVnaW9uIG9mIHRo
ZSBjaGlsZCBzdXJmYWNlLgorICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSB2aWV3cG9ydCBy
ZWN0IGNsaXBzIHRoZSB1bm9jY2x1ZGVkIHJlZ2lvbiBvZiB0aGUgY2hpbGQgc3VyZmFjZS4KICAg
ICAgICAgICAgIEVYUEVDVF9JTlRfUkVDVF9FUShJbnRSZWN0KDAsIDAsIDEwMCwgMTAwKSwgb2Nj
bHVzaW9uLnVub2NjbHVkZWRDb250cmlidXRpbmdTdXJmYWNlQ29udGVudFJlY3Qoc3VyZmFjZSwg
ZmFsc2UsIEludFJlY3QoMCwgMCwgMTAwLCAzMDApKSk7CiAgICAgICAgIH0KICAgICB9CiB9Owog
Ci1BTExfQ0NPQ0NMVVNJT05UUkFDS0VSX1RFU1QoQ0NPY2NsdXNpb25UcmFja2VyVGVzdFRvcG1v
c3RTdXJmYWNlSXNDbGlwcGVkVG9TY2lzc29yKTsKK0FMTF9DQ09DQ0xVU0lPTlRSQUNLRVJfVEVT
VChDQ09jY2x1c2lvblRyYWNrZXJUZXN0VG9wbW9zdFN1cmZhY2VJc0NsaXBwZWRUb1ZpZXdwb3J0
KTsKIAogdGVtcGxhdGU8Y2xhc3MgVHlwZXMsIGJvb2wgb3BhcXVlTGF5ZXJzPgogY2xhc3MgQ0NP
Y2NsdXNpb25UcmFja2VyVGVzdFN1cmZhY2VDaGlsZE9mQ2xpcHBpbmdTdXJmYWNlIDogcHVibGlj
IENDT2NjbHVzaW9uVHJhY2tlclRlc3Q8VHlwZXMsIG9wYXF1ZUxheWVycz4gewpAQCAtMjQ2Nyw4
ICsyNDY3LDggQEAgcHJvdGVjdGVkOgogICAgICAgICB0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBl
KiB0b3Btb3N0ID0gdGhpcy0+Y3JlYXRlRHJhd2luZ0xheWVyKHBhcmVudCwgdGhpcy0+aWRlbnRp
dHlNYXRyaXgsIEZsb2F0UG9pbnQoMCwgMCksIEludFNpemUoMTAwLCA1MCksIHRydWUpOwogICAg
ICAgICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCi0gICAgICAgIFRlc3RDQ09jY2x1c2lv
blRyYWNrZXJXaXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBU
eXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEw
MDApKTsKLSAgICAgICAgb2NjbHVzaW9uLnNldExheWVyU2Npc3NvclJlY3QoSW50UmVjdCgwLCAw
LCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoQ2xpcDx0
eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5
cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgb2NjbHVz
aW9uLnNldExheWVyQ2xpcFJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAKICAgICAg
ICAgLy8gfHRvcG1vc3R8IG9jY2x1ZGVzIGV2ZXJ5dGhpbmcgcGFydGlhbGx5IHNvIHdlIGtub3cg
b2NjbHVzaW9uIGlzIGhhcHBlbmluZyBhdCBhbGwuCiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIo
dG9wbW9zdCwgb2NjbHVzaW9uKTsKQEAgLTI1MzUsOCArMjUzNSw4IEBAIHByb3RlY3RlZDoKIAog
ICAgICAgICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCi0gICAgICAgIFRlc3RDQ09jY2x1
c2lvblRyYWNrZXJXaXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFt
ZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAs
IDEwMDApKTsKLSAgICAgICAgb2NjbHVzaW9uLnNldExheWVyU2Npc3NvclJlY3QoSW50UmVjdCgw
LCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoQ2xp
cDx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFj
ZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgb2Nj
bHVzaW9uLnNldExheWVyQ2xpcFJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAKICAg
ICAgICAgLy8gVGhlc2UgbGF5ZXJzIG9jY2x1ZGUgcGl4ZWxzIGRpcmVjdGx5IGJlc2lkZSB0aGUg
ZmlsdGVyZWRTdXJmYWNlLiBCZWNhdXNlIGZpbHRlcmVkIHN1cmZhY2UgYmxlbmRzIHBpeGVscyBp
biBhIHJhZGl1cywgaXQgd2lsbAogICAgICAgICAvLyBuZWVkIHRvIHNlZSBzb21lIG9mIHRoZSBw
aXhlbHMgKHVwIHRvIHJhZGl1cyBmYXIpIHVuZGVybmVhdGggdGhlIG9jY2x1ZGluZ0xheWVycy4K
QEAgLTI2NTcsOCArMjY1Nyw4IEBAIHByb3RlY3RlZDoKIAogICAgICAgICB0aGlzLT5jYWxjRHJh
d0V0Yyhyb290KTsKIAotICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aFNjaXNzb3I8
dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VU
eXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7Ci0gICAgICAgIG9jY2x1
c2lvbi5zZXRMYXllclNjaXNzb3JSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAg
ICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aENsaXA8dHlwZW5hbWUgVHlwZXM6OkxheWVy
VHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVj
dCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIG9jY2x1c2lvbi5zZXRMYXllckNsaXBSZWN0
KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwogCiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIo
b2NjbHVkaW5nTGF5ZXJBYm92ZSwgb2NjbHVzaW9uKTsKICAgICAgICAgRVhQRUNUX0lOVF9SRUNU
X0VRKEludFJlY3QoMTAwIC8gMiwgMTAwIC8gMiwgNTAgLyAyLCA1MCAvIDIpLCBvY2NsdXNpb24u
b2NjbHVzaW9uSW5TY3JlZW5TcGFjZSgpLmJvdW5kcygpKTsKQEAgLTI3MjEsOCArMjcyMSw4IEBA
IHByb3RlY3RlZDoKIAogICAgICAgICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCi0gICAg
ICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5
ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRS
ZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKLSAgICAgICAgb2NjbHVzaW9uLnNldExheWVyU2Npc3Nv
clJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1c2lv
blRyYWNrZXJXaXRoQ2xpcDx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBl
czo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDAp
KTsKKyAgICAgICAgb2NjbHVzaW9uLnNldExheWVyQ2xpcFJlY3QoSW50UmVjdCgwLCAwLCAxMDAw
LCAxMDAwKSk7CiAKICAgICAgICAgLy8gVGhlc2UgbGF5ZXJzIG9jY2x1ZGUgcGl4ZWxzIGRpcmVj
dGx5IGJlc2lkZSB0aGUgZmlsdGVyZWRTdXJmYWNlLiBCZWNhdXNlIGZpbHRlcmVkIHN1cmZhY2Ug
YmxlbmRzIHBpeGVscyBpbiBhIHJhZGl1cywgaXQgd2lsbAogICAgICAgICAvLyBuZWVkIHRvIHNl
ZSBzb21lIG9mIHRoZSBwaXhlbHMgKHVwIHRvIHJhZGl1cyBmYXIpIHVuZGVybmVhdGggdGhlIG9j
Y2x1ZGluZ0xheWVycy4KQEAgLTI4NDAsOCArMjg0MCw4IEBAIHByb3RlY3RlZDoKIAogICAgICAg
ICB0aGlzLT5jYWxjRHJhd0V0YyhwYXJlbnQpOwogCi0gICAgICAgIFRlc3RDQ09jY2x1c2lvblRy
YWNrZXJXaXRoU2Npc3Nvcjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBl
czo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDAp
KTsKLSAgICAgICAgb2NjbHVzaW9uLnNldExheWVyU2Npc3NvclJlY3QoSW50UmVjdCgwLCAwLCAx
MDAwLCAxMDAwKSk7CisgICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoQ2xpcDx0eXBl
bmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+
IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgb2NjbHVzaW9u
LnNldExheWVyQ2xpcFJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAKICAgICAgICAg
Ly8gVGhlIHN1cmZhY2UgaGFzIGEgYmFja2dyb3VuZCBibHVyLCBzbyBpdCBibHVycyBub24tb3Bh
cXVlIHBpeGVscyBiZWxvdyBpdC4KICAgICAgICAgdGhpcy0+dmlzaXRMYXllcihmaWx0ZXJlZFN1
cmZhY2UsIG9jY2x1c2lvbik7CkBAIC0yODg5LDggKzI4ODksOCBAQCBwcm90ZWN0ZWQ6CiAKICAg
ICAgICAgdGhpcy0+Y2FsY0RyYXdFdGMocGFyZW50KTsKIAotICAgICAgICBUZXN0Q0NPY2NsdXNp
b25UcmFja2VyV2l0aFNjaXNzb3I8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUg
VHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAx
MDAwKSk7Ci0gICAgICAgIG9jY2x1c2lvbi5zZXRMYXllclNjaXNzb3JSZWN0KEludFJlY3QoMCwg
MCwgMTAwMCwgMTAwMCkpOworICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aENsaXA8
dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VU
eXBlPiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIG9jY2x1
c2lvbi5zZXRMYXllckNsaXBSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwogCiAgICAg
ICAgIHRoaXMtPnZpc2l0TGF5ZXIoYWJvdmVSZXBsaWNhTGF5ZXIsIG9jY2x1c2lvbik7CiAgICAg
ICAgIHRoaXMtPnZpc2l0TGF5ZXIoYWJvdmVTdXJmYWNlTGF5ZXIsIG9jY2x1c2lvbik7CkBAIC0y
OTQzLDggKzI5NDMsOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICAgICAgdGhpcy0+Y2FsY0RyYXdFdGMo
cGFyZW50KTsKIAotICAgICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aFNjaXNzb3I8dHlw
ZW5hbWUgVHlwZXM6OkxheWVyVHlwZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBl
PiBvY2NsdXNpb24oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7Ci0gICAgICAgIG9jY2x1c2lv
bi5zZXRMYXllclNjaXNzb3JSZWN0KEludFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOworICAgICAg
ICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyV2l0aENsaXA8dHlwZW5hbWUgVHlwZXM6OkxheWVyVHlw
ZSwgdHlwZW5hbWUgVHlwZXM6OlJlbmRlclN1cmZhY2VUeXBlPiBvY2NsdXNpb24oSW50UmVjdCgw
LCAwLCAxMDAwLCAxMDAwKSk7CisgICAgICAgIG9jY2x1c2lvbi5zZXRMYXllckNsaXBSZWN0KElu
dFJlY3QoMCwgMCwgMTAwMCwgMTAwMCkpOwogCiAgICAgICAgIHRoaXMtPnZpc2l0TGF5ZXIoYmVz
aWRlUmVwbGljYUxheWVyLCBvY2NsdXNpb24pOwogICAgICAgICB0aGlzLT52aXNpdExheWVyKGJl
c2lkZVN1cmZhY2VMYXllciwgb2NjbHVzaW9uKTsKQEAgLTI5OTgsOCArMjk5OCw4IEBAIHByb3Rl
Y3RlZDoKICAgICAgICAgdHlwZW5hbWUgVHlwZXM6OkxheWVyVHlwZSogc21hbGwgPSB0aGlzLT5j
cmVhdGVEcmF3aW5nTGF5ZXIocGFyZW50LCB0aGlzLT5pZGVudGl0eU1hdHJpeCwgRmxvYXRQb2lu
dCgwLCAwKSwgYmVsb3dUcmFja2luZ1NpemUsIHRydWUpOwogICAgICAgICB0aGlzLT5jYWxjRHJh
d0V0YyhwYXJlbnQpOwogCi0gICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoU2Npc3Nv
cjx0eXBlbmFtZSBUeXBlczo6TGF5ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFj
ZVR5cGU+IG9jY2x1c2lvbihJbnRSZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKLSAgICAgICAgb2Nj
bHVzaW9uLnNldExheWVyU2Npc3NvclJlY3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7Cisg
ICAgICAgIFRlc3RDQ09jY2x1c2lvblRyYWNrZXJXaXRoQ2xpcDx0eXBlbmFtZSBUeXBlczo6TGF5
ZXJUeXBlLCB0eXBlbmFtZSBUeXBlczo6UmVuZGVyU3VyZmFjZVR5cGU+IG9jY2x1c2lvbihJbnRS
ZWN0KDAsIDAsIDEwMDAsIDEwMDApKTsKKyAgICAgICAgb2NjbHVzaW9uLnNldExheWVyQ2xpcFJl
Y3QoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSk7CiAgICAgICAgIG9jY2x1c2lvbi5zZXRNaW5p
bXVtVHJhY2tpbmdTaXplKHRyYWNraW5nU2l6ZSk7CiAKICAgICAgICAgLy8gVGhlIHNtYWxsIGxh
eWVyIGlzIG5vdCB0cmFja2VkIGJlY2F1c2UgaXQgaXMgdG9vIHNtYWxsLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvVGlsZWRMYXllckNocm9taXVtVGVzdC5jcHAK
aW5kZXggM2FkNjZiMWUxNzRlMmQzOWQxYTBhZGZlNDljMjAzNTQ3NmIyZjcyZC4uYmFiNzE2OGM0
MGQwODZlYTdkM2VjNTI1MjU5MmU4MDJjZjI5MTEwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCkBAIC01OCw3
ICs1OCw3IEBAIGNsYXNzIFRlc3RDQ09jY2x1c2lvblRyYWNrZXIgOiBwdWJsaWMgQ0NPY2NsdXNp
b25UcmFja2VyIHsKIHB1YmxpYzoKICAgICBUZXN0Q0NPY2NsdXNpb25UcmFja2VyKCkKICAgICAg
ICAgOiBDQ09jY2x1c2lvblRyYWNrZXIoSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAwKSwgdHJ1ZSkK
LSAgICAgICAgLCBtX3NjaXNzb3JSZWN0SW5TY3JlZW4oSW50UmVjdCgwLCAwLCAxMDAwLCAxMDAw
KSkKKyAgICAgICAgLCBtX2xheWVyQ2xpcFJlY3RJblRhcmdldChJbnRSZWN0KDAsIDAsIDEwMDAs
IDEwMDApKQogICAgIHsKICAgICAgICAgLy8gUHJldGVuZCB3ZSBoYXZlIHZpc2l0ZWQgYSByZW5k
ZXIgc3VyZmFjZS4KICAgICAgICAgbV9zdGFjay5hcHBlbmQoU3RhY2tPYmplY3QoKSk7CkBAIC02
NywxMCArNjcsMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0T2NjbHVzaW9uKGNvbnN0IFJlZ2lv
biYgb2NjbHVzaW9uKSB7IG1fc3RhY2subGFzdCgpLm9jY2x1c2lvbkluU2NyZWVuID0gb2NjbHVz
aW9uOyB9CiAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIEludFJlY3QgbGF5ZXJTY2lzc29yUmVj
dEluVGFyZ2V0U3VyZmFjZShjb25zdCBMYXllckNocm9taXVtKiBsYXllcikgY29uc3QgeyByZXR1
cm4gbV9zY2lzc29yUmVjdEluU2NyZWVuOyB9CisgICAgdmlydHVhbCBJbnRSZWN0IGxheWVyQ2xp
cFJlY3RJblRhcmdldChjb25zdCBMYXllckNocm9taXVtKiBsYXllcikgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gbV9sYXllckNsaXBSZWN0SW5UYXJnZXQ7IH0KIAogcHJpdmF0ZToKLSAgICBJbnRS
ZWN0IG1fc2Npc3NvclJlY3RJblNjcmVlbjsKKyAgICBJbnRSZWN0IG1fbGF5ZXJDbGlwUmVjdElu
VGFyZ2V0OwogfTsKIAogY2xhc3MgVGlsZWRMYXllckNocm9taXVtVGVzdCA6IHB1YmxpYyB0ZXN0
aW5nOjpUZXN0IHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>