<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugzilla.yoctoproject.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugzilla.yoctoproject.org/"
          
          maintainer="it-coreprojects-helpdesk@linuxfoundation.org"
>

    <bug>
          <bug_id>8729</bug_id>
          
          <creation_ts>2015-11-26 02:14:20 +0000</creation_ts>
          <short_desc>grub: create a script to boot between rootfs and a maintenance partition</short_desc>
          <delta_ts>2025-02-06 16:17:26 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>11</classification_id>
          <classification>Runtime</classification>
          <product>General Runtime</product>
          <component>General Runtime</component>
          <version>unspecified</version>
          <rep_platform>x86</rep_platform>
          <op_sys>Multiple</op_sys>
          <bug_status>IN PROGRESS REVIEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>Medium</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>Future</target_milestone>
          
          <blocked>8797</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mariano Lopez">mariano.lopez</reporter>
          <assigned_to name="Unassigned">unassigned</assigned_to>
          <cc>dimtass</cc>
    
    <cc>nayakksanjay</cc>
    
    <cc>randy.macleod</cc>
    
    <cc>richard.purdie</cc>
    
    <cc>ross.burton</cc>
    
    <cc>tim.orling</cc>
          
          
          <cf_os>---</cf_os>
          <cf_regression_type>---</cf_regression_type>
          
          <cf_docchange>No (bug/feature does not impact docs)</cf_docchange>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>56795</commentid>
    <comment_count>0</comment_count>
    <who name="Mariano Lopez">mariano.lopez</who>
    <bug_when>2015-11-26 02:14:20 +0000</bug_when>
    <thetext>An image updater usually needs two partitions, one for the rootfs and another one for maintenance. In order to do the update the target needs to boot into the maintenance partition and overwrite the rootfs partition and then boot in the new rootfs. There is need a way to provide this swap in the bootloader and also the capability to verify if the update failed (the new rootfs doesn&apos;t boot)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57226</commentid>
    <comment_count>1</comment_count>
    <who name="Mariano Lopez">mariano.lopez</who>
    <bug_when>2015-12-11 18:21:52 +0000</bug_when>
    <thetext>In order to do this there is need to add two features to the current grub recipe: loadenv and test.

These two features are needed to implement scripts at boot time and to modify the grubenv (this is needed to save states between boots)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82048</commentid>
    <comment_count>2</comment_count>
      <attachid>4385</attachid>
    <who name="Dimitris Tassopoulos">dimtass</who>
    <bug_when>2018-11-07 15:04:17 +0000</bug_when>
    <thetext>Created attachment 4385
Patch version 0.1

Use these in your local.conf file.

MACHINE ?= &quot;qemux86&quot;
MACHINE_FEATURES += &quot;pcbios efi&quot;
IMAGE_FSTYPES += &quot;wic&quot;
WKS_FILE = &quot;directdisk-multi-rootfs.wks.in&quot;
EFI_PROVIDER = &quot;grub-efi&quot;
IMAGE_INSTALL_append = &quot; \
                grub \
                grub-efi \
&quot;
IMAGE_INSTALL_append = &quot; grub-multibootconf-cntr-rst &quot;
EXTRA_IMAGEDEPENDS += &quot;ovmf&quot;

PREFERRED_RPROVIDER_virtual/grub-bootconf = &quot;grub-multibootconf&quot;


Then:
$ bitbake core-image-minimal
$ runqemu wic kvm ovmf</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82049</commentid>
    <comment_count>3</comment_count>
    <who name="Dimitris Tassopoulos">dimtass</who>
    <bug_when>2018-11-07 15:05:18 +0000</bug_when>
    <thetext>Hi, I&apos;ve have a patch which is ready for testing and evaluation.
In order to build the qemu wic image you need to apply the patch (Patch version 0.1) and then add these to the end of your local.conf file.


MACHINE ?= &quot;qemux86&quot;
MACHINE_FEATURES += &quot;pcbios efi&quot;
IMAGE_FSTYPES += &quot;wic&quot;
WKS_FILE = &quot;directdisk-multi-rootfs.wks.in&quot;
EFI_PROVIDER = &quot;grub-efi&quot;
IMAGE_INSTALL_append = &quot; \
                grub \
                grub-efi \
&quot;
IMAGE_INSTALL_append = &quot; grub-multibootconf-cntr-rst &quot;
EXTRA_IMAGEDEPENDS += &quot;ovmf&quot;

PREFERRED_RPROVIDER_virtual/grub-bootconf = &quot;grub-multibootconf&quot;


Then build the core-image-minimal image (that&apos;s the only one I&apos;ve tried).
If the build ends without errors then load the image with:

$ runqemu wic kvm ovmf

You can debug the grub bootloader script by setting the &apos;GRUB_DEBUG = 1&apos;
flag in poky/meta/recipes-bsp/grub/grub-multibootconf_1.00.bb.

Anyway, I&apos;ve tried to document most of the stuff I&apos;ve done, if you need
any more details then poke me.

Regards,
Dimitris</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82050</commentid>
    <comment_count>4</comment_count>
    <who name="Dimitris Tassopoulos">dimtass</who>
    <bug_when>2018-11-07 15:12:58 +0000</bug_when>
    <thetext>Forgot to mention that in the local.conf I&apos;ve added this recipe

IMAGE_INSTALL_append = &quot; grub-multibootconf-cntr-rst &quot;

This is a service that resets the boot counter when the OS loads.
This is meant only for testing, therefore if you remove that then
the boot counter will increment until reaches the max limit and
then Grub will fallback to the rescue partition. Therefore, if you
want to test that it works properly you need to either disable the
init/service or remove it from the IMAGE_INSTALL.

Also the counter timeout value is set in `poky/meta/recipes-bsp/grub/grub-multibootconf_1.00.bb` with the GRUB_BOOT_TRIES variable.

Regards,
Dimitris</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>83056</commentid>
    <comment_count>5</comment_count>
    <who name="Richard Purdie">richard.purdie</who>
    <bug_when>2019-02-21 12:54:25 +0000</bug_when>
    <thetext>Hi, Sorry this has fallen through the cracks, it looks like really good work!

Did you post this patch to the mailing list? I think that is why it hasn&apos;t been noticed, I couldn&apos;t immediately spot it in the list archives. Normally the final step in the development process is to send the patch to the list for peer review and testing.

Some quick comments from reading through the patches: 

You re-purpose directdisk-multi-rootfs.wks, I&apos;m not sure if other code would be relying on that wks file. Is it safe to replace it or should we create a new wks file for the purposes of this recipe?

There also aren&apos;t any tests here for this code. It would be really great if there was something added to the code in meta/lib/oeqa/selftest/cases/wic.py or somewhere else, wherever makes sense which added a test case for this code.

Once agin, I do think this kind of functionality is important and its great to see this! Lets see what we can do to get this reviewed/merged!

Cheers,

Richard</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>83057</commentid>
    <comment_count>6</comment_count>
    <who name="Dimitris Tassopoulos">dimtass</who>
    <bug_when>2019-02-21 13:26:29 +0000</bug_when>
    <thetext>Hi Richard,

thanks for the feedback!
I&apos;ve sent the patches in the yocto mail list, but I wouldn&apos;t be surprised if I&apos;ve done something wrong in the process :/


&gt; You re-purpose directdisk-multi-rootfs.wks, I&apos;m not sure if other code would
&gt; be relying on that wks file. Is it safe to replace it or should we create a
&gt; new wks file for the purposes of this recipe?

You&apos;re right, I don&apos;t even understand why I did this. That was silly. I guess I&apos;ve based on it and forgot to undo the changes and create a new wks.in file.

&gt; There also aren&apos;t any tests here for this code. It would be really great if
&gt; there was something added to the code in meta/lib/oeqa/selftest/cases/wic.py
&gt; or somewhere else, wherever makes sense which added a test case for this
&gt; code.

I wasn&apos;t aware of this test feature. I&apos;ll have a look, but in the meantime what this test should do?

Cheers,
Dimitris</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>83147</commentid>
    <comment_count>7</comment_count>
    <who name="Richard Purdie">richard.purdie</who>
    <bug_when>2019-02-28 15:00:40 +0000</bug_when>
    <thetext>(In reply to comment #6)
&gt; Hi Richard,
&gt; 
&gt; thanks for the feedback!
&gt; I&apos;ve sent the patches in the yocto mail list, but I wouldn&apos;t be surprised if
&gt; I&apos;ve done something wrong in the process :/

The patches would need to go to the openembedded-core list. I&apos;m guessing that is why they&apos;ve been overlooked :(.

&gt; &gt; You re-purpose directdisk-multi-rootfs.wks, I&apos;m not sure if other code would
&gt; &gt; be relying on that wks file. Is it safe to replace it or should we create a
&gt; &gt; new wks file for the purposes of this recipe?
&gt; 
&gt; You&apos;re right, I don&apos;t even understand why I did this. That was silly. I
&gt; guess I&apos;ve based on it and forgot to undo the changes and create a new
&gt; wks.in file.

Hopefully easily fixed!

&gt; &gt; There also aren&apos;t any tests here for this code. It would be really great if
&gt; &gt; there was something added to the code in meta/lib/oeqa/selftest/cases/wic.py
&gt; &gt; or somewhere else, wherever makes sense which added a test case for this
&gt; &gt; code.
&gt; 
&gt; I wasn&apos;t aware of this test feature. I&apos;ll have a look, but in the meantime
&gt; what this test should do?

Showing the configuration needed to build it and testing that it builds is the first step. Second step would be to test it boots. Third step would be to put it through some failed boot/recovery type scenarios using both partitions. Each step gets harder to implement but is also more rewarding. I&apos;d be happy to see any testing to be honest!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>83154</commentid>
    <comment_count>8</comment_count>
    <who name="Dimitris Tassopoulos">dimtass</who>
    <bug_when>2019-02-28 15:28:58 +0000</bug_when>
    <thetext>Hi Richard,

I&apos;ve fixed the wks file.

I&apos;ve also done all the testing for the different cases and it seems that it works ok (I&apos;ve tried only with qemu). All needed steps are documented also in the comments here. The problem is that I couldn&apos;t see how to use any of the test cases to implement this (the wic tests are definitely don&apos;t help). So, I probably need to write a new test script for that.

This wouldn&apos;t be much of a problem I guess, just a bit time consuming, though. I&apos;ll try to make up something.

Regards,
Dimitris</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89498</commentid>
    <comment_count>9</comment_count>
    <who name="Randy MacLeod">randy.macleod</who>
    <bug_when>2021-03-04 16:29:26 +0000</bug_when>
    <thetext>Any update Dimitris? Unassigning since it&apos;s been idle for a while but feel free to take it back if you&apos;re going to work on the enhancement. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89620</commentid>
    <comment_count>10</comment_count>
    <who name="Dimitris Tassopoulos">dimtass</who>
    <bug_when>2021-03-14 08:41:12 +0000</bug_when>
    <thetext>Hi Randy, at that time this solution was working, but there was a test missing which I wasn&apos;t able to create.

I think it can be remain unassigned until someone can take over and write a test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95155</commentid>
    <comment_count>11</comment_count>
    <who name="Randy MacLeod">randy.macleod</who>
    <bug_when>2023-03-16 15:21:58 +0000</bug_when>
    <thetext>Still need a test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>98516</commentid>
    <comment_count>12</comment_count>
    <who name="K Sanjay Nayak">nayakksanjay</who>
    <bug_when>2024-03-18 04:44:02 +0000</bug_when>
    <thetext>Hi Dimistris/Randy

I am a new comer and I would like to test the senarios.

Can you breif me about the senarios which need to be test ?

Thanks
Sanjay :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100866</commentid>
    <comment_count>13</comment_count>
    <who name="Randy MacLeod">randy.macleod</who>
    <bug_when>2025-02-06 16:17:26 +0000</bug_when>
    <thetext>Still need a test case.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4385</attachid>
            <date>2018-11-07 15:04:17 +0000</date>
            <delta_ts>2018-11-07 15:04:17 +0000</delta_ts>
            <desc>Patch version 0.1</desc>
            <filename>bug-8729-v.0.1.patch</filename>
            <type>text/plain</type>
            <size>15996</size>
            <attacher name="Dimitris Tassopoulos">dimtass</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1ic3AvZ3J1Yi9maWxlcy9ib290Y250ci1yc3QuaW5p
dCBiL21ldGEvcmVjaXBlcy1ic3AvZ3J1Yi9maWxlcy9ib290Y250ci1yc3QuaW5pdApuZXcgZmls
ZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwLi5lODlkYmY1M2UyCi0tLSAvZGV2L251bGwK
KysrIGIvbWV0YS9yZWNpcGVzLWJzcC9ncnViL2ZpbGVzL2Jvb3RjbnRyLXJzdC5pbml0CkBAIC0w
LDAgKzEsMzUgQEAKKyMhL2Jpbi9zaAorIy9ldGMvaW5pdC5kL2Jvb3RjbnRyLXJzdDogcmVzZXQg
dGhlIGdydWIgYm9vdCBjb3VudGVyLgorCisjIyMgQkVHSU4gSU5JVCBJTkZPCisjIFByb3ZpZGVz
OiAgICAgICAgICBHcnViIGJvb3QgY291bnRlciByZXNldAorIyBTaG9ydC1EZXNjcmlwdGlvbjog
UmVzZXRzIHRoZSBib290Y250ciBncnViIGVudiB2YXIKKyMgUmVxdWlyZWQtU3RhcnQ6ICAgICRh
bGwKKyMgUmVxdWlyZWQtU3RvcDogICAgICRhbGwKKyMgU2hvdWxkLVN0YXJ0OiAgICAgIAorIyBT
aG91bGQtU3RvcDogICAgICAgCisjIERlZmF1bHQtU3RhcnQ6ICAgICAyIDMgNCA1CisjIERlZmF1
bHQtU3RvcDogICAgICAwIDEgNgorIyMjIEVORCBJTklUIElORk8KKworLiAvZXRjL2luaXQuZC9m
dW5jdGlvbnMKKworY2FzZSAiJDEiIGluCisgICAgc3RhcnQpCisgICAgICAgIC91c3IvYmluL2dy
dWItZWRpdGVudiAvYm9vdC9FRkkvQk9PVC9ib290Y250ci5lbnYgc2V0IGJvb3RjbnRyPTAKKyAg
ICAgICAgOzsKKyAgICBzdG9wKQorICAgICAgICBlY2hvICJObyBzdG9wIGF2YWlsYWJsZSIKKwk7
OworICAgIHN0YXR1cykKKyAgICAgICAgZWNobyAkKC91c3IvYmluL2dydWItZWRpdGVudiAvYm9v
dC9FRkkvQk9PVC9ib290Y250ci5lbnYgbGlzdCkKKyAgICAgICAgOzsKKyAgICAqKQorICAgICAg
ICBlY2hvICQiVXNhZ2U6ICQwIHtzdGFydHxzdG9wfHN0YXR1c30iCisgICAgICAgIGV4aXQgMgor
ZXNhYworCisKKworCisKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1ic3AvZ3J1Yi9maWxlcy9i
b290Y250ci1yc3Quc2VydmljZSBiL21ldGEvcmVjaXBlcy1ic3AvZ3J1Yi9maWxlcy9ib290Y250
ci1yc3Quc2VydmljZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4zNTgy
MDM2MjQxCi0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLWJzcC9ncnViL2ZpbGVzL2Jv
b3RjbnRyLXJzdC5zZXJ2aWNlCkBAIC0wLDAgKzEsOSBAQAorW1VuaXRdCitEZXNjcmlwdGlvbj1S
ZXNldHMgdGhlIGdydWIgYm9vdCBjb3VudGVyLiBUaGlzIHNob3VsZCBiZSB1c2VkIG9ubHkgZm9y
IHRlc3RpbmcKKworW1NlcnZpY2VdCitUeXBlPW9uZXNob3QKK0V4ZWNTdGFydD0vdXNyL2Jpbi9n
cnViLWVkaXRlbnYgL2Jvb3QvRUZJL0JPT1QvYm9vdGNudHIuZW52IHNldCBib290Y250cj0wCisK
K1tJbnN0YWxsXQorV2FudGVkQnk9bXVsdGktdXNlci50YXJnZXQKZGlmZiAtLWdpdCBhL21ldGEv
cmVjaXBlcy1ic3AvZ3J1Yi9maWxlcy9ncnViLW11bHRpYm9vdC5jZmcgYi9tZXRhL3JlY2lwZXMt
YnNwL2dydWIvZmlsZXMvZ3J1Yi1tdWx0aWJvb3QuY2ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAuLjQzM2IwNWMyZDEKLS0tIC9kZXYvbnVsbAorKysgYi9tZXRhL3JlY2lw
ZXMtYnNwL2dydWIvZmlsZXMvZ3J1Yi1tdWx0aWJvb3QuY2ZnCkBAIC0wLDAgKzEsMTQ4IEBACisj
IEBkZXNjcmlwdGlvbjogVGhpcyBpcyBhIHNpbXBsZSBzYW1wbGUgb2YgYSBncnViIGNvbmZpZ3Vy
YXRpb24gZmlsZSB0aGF0IGNhbiBiZQorIyAgIHVzZWQgZm9yIG11bHRpYm9vdCBjb25maWd1cmF0
aW9ucy4gVGhpcyBzY3JpcHQgYXNzdW1lcyBieSBkZWZhdWx0IHRoYXQgdGhlcmUKKyMgICBpcyBh
IHJvb3RmcyBwYXJ0aXRpb24gd2hpY2ggaXMgdGhlIG5vcm1hbCBib290IHBhcnRpdGlvbiBhbmQg
YSByZXNjdWUgcGFydGl0aW9uCisjICAgd2hpY2ggaXMgdXNlZCBmb3IgcmVjb3ZlcnkuIE5vcm1h
bGx5LCB0aGUgc3lzdGVtIGJvb3RzIHRvIHRoZSByb290ZnMgYW5kIGV2ZXJ5CisjICAgdGltZSBH
cnViIGluY3JlbWVudHMgYSBib290Y250ciB2YWx1ZS4gVGhpcyB2YWx1ZSBzaG91bGQgYmUgcmVz
ZXQgYWZ0ZXIgYm9vdGluZworIyAgIHdoaXRoIGVpdGhlciBhIHNlcnZpY2Ugb3IgZXZlbiBiZXR0
ZXIgZnJvbSB0aGUgbWFpbiBhcHBsaWNhdGlvbiBpdHNlbGYgb3IgYQorIyAgIHNwZWNpYWwgd2F0
Y2hkb2cgYXBwbGljYXRpb24vc2VydmljZS4gSWYgZm9yIHNvbWUgcmVhc29uIEdydWIgZGV0ZWN0
cyB0aGF0IHRoZQorIyAgIGJvb3RjbnRyIHZhbHVlIGlzIGV4Y2VlZGluZyBhIGxpbWl0IHRoZW4g
aXQgd2lsbCBmbGFnIGEgZmFpbGVkIGJvb3QgYW5kIHdpbGwKKyMgICBwYXNzIHRoZSBib290IHRv
IHRoZSByZXNjdWUgcGFydGl0aW9uIHVudGlsIHJvb3Rmc19mYWlsIGFuZCBib290Y250ciBhcmUg
cmVzZXQuCisjCisjICAgVGhlcmUgYXJlIHR3byBlbnZpcm9ubWVudCBmaWxlcyBpbnZvbHZlZC4g
VGhlIG9uZSBpcyB0aGUgYm9vdGNudHIuZW52IGFuZCB0aGUKKyMgICBvdGhlciBpcyB0aGUgZ3J1
Yi5lbnYuIFRoZXJlIGFyZSB0d28gZGlmZmVyZW50IGJlY2F1c2UgaXQncyBpbXBvcnRhbnQgdG8g
a2VlcAorIyAgIHRoZSBib290IGNvdW50ZXIgc2VwYXJhdGUgZnJvbSBvdGhlciB2YXJpYWJsZXMu
IFRoaXMgbWluaW1pemVzIHRoZSBjaGFuY2VzIHRoYXQKKyMgICBzb21ldGhpbmcgZ29lcyB3cm9u
ZyB3aXRoIHRoZSBjb3VudGVyIHZhbHVlLiBZb3UgY2FuIGFkZCBvdGhlciB2YXJpYWJsZXMgaW4g
dGhlCisjICAgdGhlIGdydWIuZW52IGZpbGUgaWYgeW91IHdpc2ggYW5kIHRoaXMgZmlsZSBpcyBt
ZWFudCB0byBiZSBmb3IgZ2VuZXJpYyB1c2UuCisjCisjICAgRWFjaCBlbnZpcm9ubWVudCBmaWxl
IGhhcyBhIGBsb2NrYCB2YXJpYWJsZS4gVGhpcyBpcyBzZXQgd2hlbiBhIHdyaXRlIGlzIHBlcmZv
cm1lZAorIyAgIGFuZCByZXNldCB3aGVuIHRoZSB3cml0ZSBpcyBkb25lLiBJZiBmb3Igc29tZSBy
ZWFzb24gdGhlIGBsb2NrYCB2YWx1ZSBpcyBgMWAKKyMgICBiZWZvcmUgdGhlIGxvY2sgYWN0aW9u
LCB0aGVuIGl0IG1lYW5zIHRoYXQgYSBwcmV2aW91cyBhY3Rpb24gd2FzIGludGVycnVwdGVkLgor
IyAgIEJ5IGRlZmF1bHQsIHRoaXMgaXMgY29uc2lkZXIgYW4gZXJyb3IgYW5kIHRoZSBib290IGlz
IHBhc3NpbmcgdG8gdGhlIHJlc2N1ZQorIyAgIHBhcnRpdGlvbi4KKyMKKyMgICBUaGUgZW1wdHkg
R1JVQl9YWFggdmFyaWFibGVzIGFyZSBvdmVycmlkZGVuIGluIHRoZSBncnViLW11bHRpYm9vdGNv
bmYgcmVjaXBlLgorIworIyBAYXV0aG9yOiBEaW1pdHJpcyBUYXNzb3BvdWxvcyA8ZGltdGFzc0Bn
bWFpbC5jb20+CisKK2VjaG8gInByZWZpeDogJHtwcmVmaXh9IgorZWNobyAicm9vdDogJHtyb290
fSIKKworIyBFbnZpcm9ubWVudCBmaWxlcworRU5WX0dSVUI9JHtwcmVmaXh9L2dydWIuZW52CitF
TlZfQk9PVENOVFI9JHtwcmVmaXh9L2Jvb3RjbnRyLmVudgorCisjIFRoZXNlIHZhcmlhYmxlcyBu
ZWVkIHRvIGJlIGZpbGxlZCBpbiB0aGUgZ3J1Yi1tdWx0aWJvb3Rjb25mIHJlY2lwZQorR1JVQl9S
T09URlM9JycKK0dSVUJfUkVTQ1VFPScnCitHUlVCX09QVFM9JycKK0dSVUJfQk9PVF9UUklFUz0n
JworR1JVQl9LRVJORUxfSU1BR0U9JycKK0dSVUJfREVCVUc9JycKKworIyBTZXQgdGhlIGJvb3Qg
cGFydGl0aW9ucworQk9PVF9ST09URlM9InJvb3Q9JHtHUlVCX1JPT1RGU30gJHtHUlVCX09QVFN9
IgorQk9PVF9SRVNDVUU9InJvb3Q9JHtHUlVCX1JFU0NVRX0gJHtHUlVCX09QVFN9IgorQk9PVF9D
TUQ9ImxpbnV4ICgke3Jvb3R9KS8ke0dSVUJfS0VSTkVMX0lNQUdFfSIKKworIyBQcmludCBhIGRl
YnVnIG1lc3NhZ2UgYW5kIHBhdXNlIHVudGlsIEVudGVyIGlzIHByZXNzZWQKKyMgICAkMTogVGhl
IG1lc3NhZ2UgdG8gcHJpbnQKK2Z1bmN0aW9uIGRlYnVnX3ByaW50IHsKKyAgICBpZiBbICIke0dS
VUJfREVCVUd9IiAtZXEgMSBdOyB0aGVuCisgICAgICAgIGVjaG8gJDEKKyAgICAgICAgcmVhZCB0
bXAKKyAgICBmaQorfQorCisjIFNhdmUgYSBzaW5nbGUgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8g
YW4gZW52aXJvbm1lbnQgZmlsZQorIyAgICQxOiBlbnZpcm9ubWVudCBmaWxlCisjICAgJDI6IGVu
dmlyb25tZW50IHZhcgorIyAgICQzOiB2YWx1ZQorZnVuY3Rpb24gZW52X3dyaXRlIHsKKyAgICBk
ZWJ1Z19wcmludCAiU2F2ZSAkMj0kMyB0byAkMSIKKyAgICBldmFsICQyPSQzCisJbG9jaz0xCisg
ICAgc2F2ZV9lbnYgLS1maWxlICQxIGxvY2sKKyAgICBzYXZlX2VudiAtLWZpbGUgJDEgIiQyIgor
CWxvY2s9MAorICAgIHNhdmVfZW52IC0tZmlsZSAkMSBsb2NrCit9CisKKyMgQm9vdCB0byB0aGUg
ZWl0aGVyIHJvb3RmcyBvciByZXNjdWUKK2Z1bmN0aW9uIGVmaV9ib290IHsKKwkjIEJvb3QgdGhl
IHNlbGVjdGVkIGltYWdlCisJaWYgWyAiJDEiID09ICJST09URlMiIF07IHRoZW4KKyAgICAgICAg
ZGVidWdfcHJpbnQgIkJvb3QgdG8gJDEuIEJvb3RjbWQ6ICR7Qk9PVF9DTUR9ICR7Qk9PVF9ST09U
RlN9IgorCQlldmFsICIke0JPT1RfQ01EfSAke0JPT1RfUk9PVEZTfSIKKwkJYm9vdAorCWVsaWYg
WyAiJDEiID09ICJSRVNDVUUiIF07IHRoZW4KKyAgICAgICAgZGVidWdfcHJpbnQgIkJvb3QgdG8g
JDEuIEJvb3RjbWQ6ICR7Qk9PVF9DTUR9ICR7Qk9PVF9SRVNDVUV9IgorCQlldmFsICIke0JPT1Rf
Q01EfSAke0JPT1RfUkVTQ1VFfSIKKwkJYm9vdAorCWZpCit9CisKKyMgVXBkYXRlIHRoZSBib290
IGNvdW50ZXIgdmFsdWUKK2Z1bmN0aW9uIGJvb3RjbnRyX3VwZGF0ZSB7CisgICAgYm9vdGNudHI9
JDEKKyAgICBsb2NrPTEKKyAgICBzYXZlX2VudiAtLWZpbGUgJHtFTlZfQk9PVENOVFJ9IGxvY2sK
KyAgICBzYXZlX2VudiAtLWZpbGUgJHtFTlZfQk9PVENOVFJ9IGJvb3RjbnRyCisgICAgbG9jaz0w
CisgICAgc2F2ZV9lbnYgLS1maWxlICR7RU5WX0JPT1RDTlRSfSBsb2NrCisgICAgZGVidWdfcHJp
bnQgIklucmVtZW50IGJvb3RjbnRyIHRvICQxIgorfQorCisjIFRoaXMgZnVuY3Rpb24ganVzdCBp
bmNyZW1lbnRzIHRoZSAkYm9vdGNudHIuCisjIEJlY2F1c2UgdGhlcmUncyBubyBzdXBwb3J0IHRv
IGluY3JlbWVudCBhIHZhbHVlCisjIGluIEdydWIsIHRoZW4gd2UgYXNzdW1lIHRoYXQgdGhlIG1h
eGltdW0gYm9vdAorIyByZXRyaWVzIHdvdWxkIG5vdCBleGNlZWQgNCBpbiBhbnkgY2FzZS4gSXQg
ZG9lc24ndAorIyBtYWtlIHNlbnNlIG1vcmUgdGhhbiAyIG9yIDMgYW55d2F5cy4KK2Z1bmN0aW9u
IGJvb3RjbnRyX2luY3IgeworICAgIGxvYWRfZW52IC0tc2tpcC1zaWcgLS1maWxlICR7RU5WX0JP
T1RDTlRSfSBib290Y250cgorCWlmIFsgIiR7Ym9vdGNudHJ9IiA9PSAiMCIgXTsgdGhlbgorCQli
b290Y250cl91cGRhdGUgMQorCWVsaWYgWyAiJHtib290Y250cn0iID09ICIxIiBdOyB0aGVuCisJ
CWJvb3RjbnRyX3VwZGF0ZSAyCisJZWxpZiBbICIke2Jvb3RjbnRyfSIgPT0gIjIiIF07IHRoZW4K
KwkJYm9vdGNudHJfdXBkYXRlIDMKKwllbHNlCisJCWJvb3RjbnRyX3VwZGF0ZSA0CisJZmkKK30K
KworIyBDaGVjayBmb3IgYWxsIG5lZWRlZCBmaWxlcworaWYgWyAhIC1mICIke0VOVl9HUlVCfSIg
XTsgdGhlbgorICAgIGRlYnVnX3ByaW50ICJFUlJPUjogR3J1YiBlbnZpcm9ubWVudCBmaWxlICgk
e0VOVl9HUlVCfSksIGlzIG1pc3NpbmchIEJvb3QgaGFsdGVkISIKKyAgICBoYWx0CitmaQoraWYg
WyAhIC1mICIke0VOVl9CT09UQ05UUn0iIF07IHRoZW4KKyAgICBkZWJ1Z19wcmludCAiRVJST1I6
IEJvb3QgY291bnRlciBlbnZpcm9ubWVudCBmaWxlICgke0VOVl9CT09UQ05UUn0pLCBpcyBtaXNz
aW5nISBCb290IGhhbHRlZCEiCisgICAgaGFsdAorZmkKKworIyBOb3cgbG9hZCB0aGUgcmVzdCBl
bnZpcm9ubWVudAorbG9hZF9lbnYgLS1za2lwLXNpZyAtLWZpbGUgJHtFTlZfR1JVQn0gcm9vdGZz
X2ZhaWwgbG9jayBib290Y250cgorCitpZiBbICIke2xvY2t9IiAtZXEgMSBdOyB0aGVuCisgICAg
I1NvbWV0aGluZyBnb25lIHdyb25nIGhlcmUgdGhpcyBzaG91bGQgYmUgYWx3YXlzIHplcm8KKwlk
ZWJ1Z19wcmludCAiRVJST1I6IGluICR7RU5WX0dSVUJ9IGxvY2s6JHtsb2NrfSIKKwllZmlfYm9v
dCAiUkVTQ1VFIgorZmkKKworaWYgWyAiJHtyb290ZnNfZmFpbH0iIC1lcSAxIF07IHRoZW4KKwll
Y2hvICJCb290IGZyb20gcm9vdGZzIGZhaWxlZC4gQm9vdCBmcm9tIFJlY292ZXJ5Li4uIgorCWVm
aV9ib290ICJSRVNDVUUiCitmaQorCisjIGluY3JlbWVudCB0aGUgYm9vdGNudHIKK2Jvb3RjbnRy
X2luY3IKKworIyBUaGlzIHJ1bnMgaWYgdGhlICRib290X3BhcnRpdGlvbiBpcyBub3Qgc2V0IHRv
IFJlY292ZXJ5CitpZiBbICRib290Y250ciAtZ3QgJHtHUlVCX0JPT1RfVFJJRVN9IF07IHRoZW4K
KwlkZWJ1Z19wcmludCAiQm9vdCBmYWlsZWQgKCRib290Y250ci8ke0dSVUJfQk9PVF9UUklFU30p
LiBCb290IGZyb20gcmVjb3ZlcnkuLi4iCisgICAgZW52X3dyaXRlICR7RU5WX0dSVUJ9IHJvb3Rm
c19mYWlsIDEKKwllZmlfYm9vdCAiUkVTQ1VFIgorZmkKKworIyBOb3JtYWwgYm9vdCB0byB0aGUg
cm9vdGZzCitlZmlfYm9vdCAiUk9PVEZTIgpkaWZmIC0tZ2l0IGEvbWV0YS9yZWNpcGVzLWJzcC9n
cnViL2dydWItZWZpXzIuMDIuYmIgYi9tZXRhL3JlY2lwZXMtYnNwL2dydWIvZ3J1Yi1lZmlfMi4w
Mi5iYgppbmRleCAxNGZjZTk3ZmYwLi41NjYyMWQzM2Y3IDEwMDY0NAotLS0gYS9tZXRhL3JlY2lw
ZXMtYnNwL2dydWIvZ3J1Yi1lZmlfMi4wMi5iYgorKysgYi9tZXRhL3JlY2lwZXMtYnNwL2dydWIv
Z3J1Yi1lZmlfMi4wMi5iYgpAQCAtODUsNyArODUsNyBAQCBkb19pbnN0YWxsX2NsYXNzLXRhcmdl
dCgpIHsKIH0KIAogR1JVQl9CVUlMRElOID89ICJib290IGxpbnV4IGV4dDIgZmF0IHNlcmlhbCBw
YXJ0X21zZG9zIHBhcnRfZ3B0IG5vcm1hbCBcCi0gICAgICAgICAgICAgICAgIGVmaV9nb3AgaXNv
OTY2MCBjb25maWdmaWxlIHNlYXJjaCBsb2FkZW52IHRlc3QiCisgICAgICAgICAgICAgICAgIGVm
aV9nb3AgaXNvOTY2MCBjb25maWdmaWxlIHNlYXJjaCBsb2FkZW52IHRlc3QgaGFzaHN1bSBldmFs
IGVjaG8gY2F0IHJlYm9vdCBzbGVlcCByZWFkIgogCiBkb19kZXBsb3koKSB7CiAJaW5zdGFsbCAt
bSA2NDQgJHtCfS8ke0dSVUJfSU1BR0VfUFJFRklYfSR7R1JVQl9JTUFHRX0gJHtERVBMT1lESVJ9
CmRpZmYgLS1naXQgYS9tZXRhL3JlY2lwZXMtYnNwL2dydWIvZ3J1Yi1tdWx0aWJvb3Rjb25mLWNu
dHItcnN0XzEuMDAuYmIgYi9tZXRhL3JlY2lwZXMtYnNwL2dydWIvZ3J1Yi1tdWx0aWJvb3Rjb25m
LWNudHItcnN0XzEuMDAuYmIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4u
MTVlNGRhMzU1ZgotLS0gL2Rldi9udWxsCisrKyBiL21ldGEvcmVjaXBlcy1ic3AvZ3J1Yi9ncnVi
LW11bHRpYm9vdGNvbmYtY250ci1yc3RfMS4wMC5iYgpAQCAtMCwwICsxLDMwIEBACitERVNDUklQ
VElPTiA9ICJTZXJ2aWNlIHRvIHJlc2V0IHRoZSBncnViIGJvb3QgY291bnRlci4gVGhpcyBzaG91
bGQgYmUgdXNlZCBvbmx5IGZvciB0ZXN0aW5nISIKK0xJQ0VOU0UgPSAiTUlUIgorTElDX0ZJTEVT
X0NIS1NVTSA9ICJmaWxlOi8vJHtDT01NT05fTElDRU5TRV9ESVJ9L01JVDttZDU9MDgzNWFkZTY5
OGUwYmNmODUwNmVjZGEyZjdiNGYzMDIiCisKK2luaGVyaXQgc3lzdGVtZAorCitSREVQRU5EU18k
e1BOfSArPSAiYmFzaCIKKworU1JDX1VSSSA9ICIgXAorICAgICAgICAgICAgZmlsZTovL2Jvb3Rj
bnRyLXJzdC5zZXJ2aWNlIFwKKyAgICAgICAgICAgIGZpbGU6Ly9ib290Y250ci1yc3QuaW5pdCBc
CisgICAgICAgICAgICAiCitTID0gIiR7V09SS0RJUn0iCisKK2RvX2luc3RhbGxbZGVwZW5kc10g
PSAiZ3J1Yi1tdWx0aWJvb3Rjb25mOmRvX2luc3RhbGwiCisKK2RvX2luc3RhbGwgKCkgeworICAg
IGluc3RhbGwgLWQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kCisgICAgaW5zdGFsbCAtbSAwNzU1
ICR7V09SS0RJUn0vYm9vdGNudHItcnN0LmluaXQgJHtEfSR7c3lzY29uZmRpcn0vaW5pdC5kL2Jv
b3RjbnRyLXJzdAorCWluc3RhbGwgLWQgJHtEfSR7c3lzdGVtZF91bml0ZGlyfS9zeXN0ZW0vICR7
RH0ke3N5c2NvbmZkaXJ9L3N5c3RlbWQvc3lzdGVtLworCWluc3RhbGwgLW0gMDY0NCAke1dPUktE
SVJ9L2Jvb3RjbnRyLXJzdC5zZXJ2aWNlICR7RH0ke3N5c3RlbWRfdW5pdGRpcn0vc3lzdGVtCit9
CisKK0lOSVRTQ1JJUFRfUEFDS0FHRVMgPSAiJHtQTn0iCitJTklUU0NSSVBUX05BTUUgPSAiYm9v
dGNudHItcnN0IgorSU5JVFNDUklQVF9QQVJBTVMgPSAic3RhcnQgOTkgUyAuIgorCitOQVRJVkVf
U1lTVEVNRF9TVVBQT1JUID0gIjEiCitTWVNURU1EX1BBQ0tBR0VTID0gIiR7UE59IgorU1lTVEVN
RF9TRVJWSUNFXyR7UE59ID0gImJvb3RjbnRyLXJzdC5zZXJ2aWNlIgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1ic3AvZ3J1Yi9ncnViLW11bHRp
Ym9vdGNvbmZfMS4wMC5iYiBiL21ldGEvcmVjaXBlcy1ic3AvZ3J1Yi9ncnViLW11bHRpYm9vdGNv
bmZfMS4wMC5iYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi41NmQ1YjYy
NDQ2Ci0tLSAvZGV2L251bGwKKysrIGIvbWV0YS9yZWNpcGVzLWJzcC9ncnViL2dydWItbXVsdGli
b290Y29uZl8xLjAwLmJiCkBAIC0wLDAgKzEsMTA3IEBACitTVU1NQVJZID0gIkJhc2ljIGdydWIu
Y2ZnIGZvciB1c2UgaW4gbXVsdGktYm9vdCBFRkkgc3lzdGVtcyB3aXRoIGEgcmVzY3VlIHBhcnRp
dGlvbiIKK0RFU0NSSVBUSU9OID0gIiBcCitUaGlzIHByb3ZpZGVzIHRoZSBncnViIG11bHRpYm9v
dCBmdW5jdGlvbmFsaXR5LCB3aGljaCBpcyBiYXNpYyBhbmQgc2ltcGxlIHRvIHVzZS4gXAorVGhl
cmUgYXJlIGEgZmV3IHRoaW5ncyB3aGljaCBhcmUgbm90IGFkZHJlc3NlZCBsaWtlIHRoZSB2YWxp
ZGF0aW9uIG9mIHRoZSBlbnZpcm9ubWVudCBcCitmaWxlcyB1c2luZyBoYXNoZXMuIEluIGNhc2Ug
b2YgcG93ZXItbG9zcyBkdXJpbmcgd3JpdGluZyBpbiBhIGdydWIgZW52aXJvbm1lbnQgZmlsZSBc
Cit0aGUgZW52aXJvbm1lbnQgZmlsZXMgbWlnaHQgYmUgY29ycnVwdGVkLiBUaGlzIGJhc2ljIGdy
dWIgc2NyaXB0IHdpbGwgaGFuZGxlIG1vc3Qgb2YgXAordGhlIGNhc2VzLCBidXQgaXQgZG9lc24n
dCBoYW5kbGUgYWxsIGNhc2VzIGFzIHRoZXkgbWlnaHQgYmUgbW9yZSBjb21wbGljYXRlZC4gU3Rp
bGwsIFwKK2l0J3MgYSBnb29kIGJhc2UgdG8gc3RhcnQgd2l0aCBhbmQgYnVpbGQgb24gdG9wIG9m
IHRoYXQuIFwKK1wKK1RoaXMgcmVjaXBlIGFzc3VtZXMgdGhhdCB5b3UncmUgdXNpbmcgc29tZSBk
ZWZhdWx0IHBhcmFtZXRlcnMgdG8geW91ciBsb2NhbC5jb25mIGZpbGUuIFwKK0FuIGV4YW1wbGUg
aXMgdGhlIGZvbGxvd2luZzogXAorXAorICAgIE1BQ0hJTkUgPz0gJ3FlbXV4ODYnCisgICAgTUFD
SElORV9GRUFUVVJFUyArPSAncGNiaW9zIGVmaScKKyAgICBJTUFHRV9GU1RZUEVTICs9ICd3aWMn
CisgICAgV0tTX0ZJTEUgPSAnZGlyZWN0ZGlzay1tdWx0aS1yb290ZnMud2tzLmluJworICAgIEVG
SV9QUk9WSURFUiA9ICdncnViLWVmaScKKyAgICBJTUFHRV9JTlNUQUxMX2FwcGVuZCA9ICcgZ3J1
YiBncnViLWVmaSBncnViLW11bHRpYm9vdGNvbmYtY250ci1yc3QnCisgICAgRVhUUkFfSU1BR0VE
RVBFTkRTICs9ICdvdm1mJworICAgIFBSRUZFUlJFRF9SUFJPVklERVJfdmlydHVhbC9ncnViLWJv
b3Rjb25mID0gJ2dydWItbXVsdGlib290Y29uZicKK1wKK1RoZSBhYm92ZSBhcmUgdGhlIG1pbmlt
dW0gcmVxdWlyZW1lbnRzIHRvIGJ1aWxkIHRoZSBtdWx0aWJvb3QgaW1hZ2UuIEZvciBtb3JlIFwK
K2luZm9ybWF0aW9uIGZvciB0aGUgcGFydGl0aW9uaW5nLCByZWFkIHRoZSBgcG9reS9zY3JpcHRz
L2xpYi93aWMvY2FubmVkLXdrcy9lZmktYm9vdGRpc2sud2tzLmluYCBcCitmaWxlLiBcCitcCitZ
b3UgY2FuIGNvbnRyb2wgdGhlIGdydWIgYm9vdCBjb25maWd1cmF0aW9uIHdpdGggdGhlIEdSVUJf
eHh4IHZhcmlhYmxlcyBpbiB0aGlzIHJlY2lwZS4gXAorWW91IGNhbiBhbHNvIG92ZXJyaWRlIHdp
dGggYSAuYmJhcHBlbmQgYW5kIHVzZSB5b3VyIG93biBjb25maWd1cmF0aW9uLiBcCisiCitMSUNF
TlNFID0gIk1JVCIKK0xJQ19GSUxFU19DSEtTVU0gPSAiZmlsZTovLyR7Q09SRUJBU0V9L21ldGEv
Q09QWUlORy5NSVQ7bWQ1PTNkYTljZmJjYjc4OGM4MGEwMzg0MzYxYjRkZTIwNDIwIgorCisKKyMg
V2hlbiBjaGFuZ2luZyB0aGUgdmlydHVhbC9ncnViLWJvb3Rjb25mIHRoZW4geW91IG5lZWQgdG8g
LWMgY2xlYW5hbGwgdGhlIGdydWItZWZpIHJlY2lwZQorUlBST1ZJREVTXyR7UE59ICs9ICJ2aXJ0
dWFsL2dydWItYm9vdGNvbmYiCitERVBFTkRTICs9ICJiYXNoIGdydWItbmF0aXZlIgorCitTUkNf
VVJJICs9ICIgXAorICAgIGZpbGU6Ly9ncnViLW11bHRpYm9vdC5jZmcgXAorICAgIGZpbGU6Ly9i
b290Y250ci1yc3Quc2VydmljZSBcCisgICAgIgorCitHUlVCX0NGRyA/PSAiJHtTfS9ncnViLW11
bHRpYm9vdC5jZmciCitHUlVCX0JPT1RDTlRSX0VOViA/PSAiJHtTfS9ib290Y250ci5lbnYiCitH
UlVCX0VOViA/PSAiJHtTfS9ncnViLmVudiIKK0dSVUJfQk9PVF9UUklFUyA/PSAiMyIKK0dSVUJf
S0VSTkVMX0lNQUdFID89ICIke0tFUk5FTF9JTUFHRVRZUEV9IgorR1JVQl9ERUJVRyA/PSAiMCIK
K0dSVUJfUk9PVEZTID89ICIvZGV2L3NkYTIiCitHUlVCX1JFU0NVRSA/PSAiL2Rldi9zZGEzIgor
IyBZb3UgY2FuIGFkZCBhbnkgb3RoZXIgYm9vdCBvcHRpb25zIGhlcmUsIGxpa2UgdGhlIGNvbnNv
bGUKK0dSVUJfT1BUUyA/PSAicm9vdHdhaXQiCisKK1MgPSAiJHtXT1JLRElSfSIKKworZG9faW5z
dGFsbFtkZXBlbmRzXSA9ICJ2aXJ0dWFsL2tlcm5lbDpkb19kZXBsb3kiCitkb19jb25maWd1cmVb
dmFyZGVwc10gKz0gIklNQUdFX1JPT1RGUyIKKworY3JlYXRlX2Vudl9maWxlcygpIHsKKyAgICAj
IEJvb3QgY291bnRlciBlbnYgZmlsZQorICAgIGdydWItZWRpdGVudiAke0dSVUJfQk9PVENOVFJf
RU5WfSBzZXQgbG9jaz0wCisgICAgZ3J1Yi1lZGl0ZW52ICR7R1JVQl9CT09UQ05UUl9FTlZ9IHNl
dCBib290Y250cj0wCisKKyAgICAjIENyZWF0ZSB0aGUgZ3J1YiBlbnZpcm9ubWVudCBmaWxlCisg
ICAgZ3J1Yi1lZGl0ZW52ICR7R1JVQl9FTlZ9IHNldCBsb2NrPTAKKyAgICBncnViLWVkaXRlbnYg
JHtHUlVCX0VOVn0gc2V0IHJvb3Rmc19mYWlsPTAKK30KKworZG9fY29uZmlndXJlKCkgeworICAg
IHNldCAteAorICAgIGlmIFsgLWYgIiR7R1JVQl9DRkd9LnRtcCIgXTsgdGhlbgorICAgICAgICBy
bSAiJHtHUlVCX0NGR30udG1wIgorICAgIGZpCisgICAgY3AgJHtHUlVCX0NGR30gJHtHUlVCX0NG
R30udG1wCisgICAgCisgICAgIyBVc2UgJzonIGFzIGRlbGltaXRlciBiZWNhdXNlIG9mIC9kZXYv
eHh4CisgICAgc2VkIC1lICdzOkdSVUJfUk9PVEZTPS4qOkdSVUJfUk9PVEZTPSIke0dSVUJfUk9P
VEZTfSI6ZycgXAorCQktZSAnczpHUlVCX1JFU0NVRT0uKjpHUlVCX1JFU0NVRT0iJHtHUlVCX1JF
U0NVRX0iOmcnIFwKKwkJLWUgJ3M6R1JVQl9PUFRTPS4qOkdSVUJfT1BUUz0iJHtHUlVCX09QVFN9
IjpnJyBcCisJCS1lICdzOkdSVUJfQk9PVF9UUklFUz0uKjpHUlVCX0JPT1RfVFJJRVM9IiR7R1JV
Ql9CT09UX1RSSUVTfSI6ZycgXAorCQktZSAnczpHUlVCX0tFUk5FTF9JTUFHRT0uKjpHUlVCX0tF
Uk5FTF9JTUFHRT0iJHtHUlVCX0tFUk5FTF9JTUFHRX0iOmcnIFwKKwkJLWUgJ3M6R1JVQl9ERUJV
Rz0uKjpHUlVCX0RFQlVHPSIke0dSVUJfREVCVUd9IjpnJyBcCisJCS1pICR7R1JVQl9DRkd9LnRt
cAorCisjICAgIHNlZCAtZSAnczpJTUFHRV9ST09URlM6JHtJTUFHRV9ST09URlN9OmcnIFwKKyMg
ICAgICAgIC1pICR7V0tTX0ZJTEV9CisKKyAgICBjcmVhdGVfZW52X2ZpbGVzCit9CisKK2RvX2lu
c3RhbGwoKSB7CisJaW5zdGFsbCAtZCAke0R9L2Jvb3QKKwlpbnN0YWxsIC1kICR7RH0vYm9vdC9F
RkkKKwlpbnN0YWxsIC1kICR7RH0vYm9vdC9FRkkvQk9PVAorCWluc3RhbGwgJHtHUlVCX0NGR30u
dG1wICR7RH0vYm9vdC9FRkkvQk9PVC9ncnViLmNmZworCWluc3RhbGwgJHtHUlVCX0JPT1RDTlRS
X0VOVn0gJHtEfS9ib290L0VGSS9CT09UL2Jvb3RjbnRyLmVudgorCWluc3RhbGwgJHtHUlVCX0VO
Vn0gJHtEfS9ib290L0VGSS9CT09UL2dydWIuZW52CisgICAgaW5zdGFsbCAke0RFUExPWV9ESVJf
SU1BR0V9LyR7R1JVQl9LRVJORUxfSU1BR0V9ICR7RH0vYm9vdC8ke0dSVUJfS0VSTkVMX0lNQUdF
fQorfQorCitGSUxFU18ke1BOfSA9ICIgXAorICAgICAgICAvYm9vdC9FRkkvQk9PVC9ncnViLmNm
ZyBcCisgICAgICAgIC9ib290L0VGSS9CT09UL2Jvb3RjbnRyLmVudiBcCisgICAgICAgIC9ib290
L0VGSS9CT09UL2dydWIuZW52IFwKKyAgICAgICAgL2Jvb3QvJHtHUlVCX0tFUk5FTF9JTUFHRX0g
XAorIgorCitSTV9XT1JLX0VYQ0xVREUgKz0gIiR7UE59IgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL21ldGEvcmVjaXBlcy1ic3AvZ3J1Yi9ncnViXzIuMDIuYmIgYi9t
ZXRhL3JlY2lwZXMtYnNwL2dydWIvZ3J1Yl8yLjAyLmJiCmluZGV4IGUwOTczNzU5ZmIuLmNlZGFi
YzdkYTggMTAwNjQ0Ci0tLSBhL21ldGEvcmVjaXBlcy1ic3AvZ3J1Yi9ncnViXzIuMDIuYmIKKysr
IGIvbWV0YS9yZWNpcGVzLWJzcC9ncnViL2dydWJfMi4wMi5iYgpAQCAtMjcsMyArMjcsNSBAQCBk
b19pbnN0YWxsX2FwcGVuZCAoKSB7CiAKIElOU0FORV9TS0lQXyR7UE59ID0gImFyY2giCiBJTlNB
TkVfU0tJUF8ke1BOfS1kYmcgPSAiYXJjaCIKKworQkJDTEFTU0VYVEVORCA9ICJuYXRpdmUiClwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc2NyaXB0cy9saWIvd2ljL2Nh
bm5lZC13a3MvZGlyZWN0ZGlzay1tdWx0aS1yb290ZnMud2tzIGIvc2NyaXB0cy9saWIvd2ljL2Nh
bm5lZC13a3MvZGlyZWN0ZGlzay1tdWx0aS1yb290ZnMud2tzCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBmNjFkOTQxZDZkLi4wMDAwMDAwMDAwCi0tLSBhL3NjcmlwdHMvbGliL3dpYy9j
YW5uZWQtd2tzL2RpcmVjdGRpc2stbXVsdGktcm9vdGZzLndrcworKysgL2Rldi9udWxsCkBAIC0x
LDIzICswLDAgQEAKLSMgc2hvcnQtZGVzY3JpcHRpb246IENyZWF0ZSBtdWx0aSByb290ZnMgaW1h
Z2UgdXNpbmcgcm9vdGZzIHBsdWdpbgotIyBsb25nLWRlc2NyaXB0aW9uOiBDcmVhdGVzIGEgcGFy
dGl0aW9uZWQgZGlzayBpbWFnZSB3aXRoIHR3byByb290ZnMgcGFydGl0aW9ucwotIyB1c2luZyBy
b290ZnMgcGx1Z2luLgotIwotIyBQYXJ0aXRpb25zIGNhbiB1c2UgZWl0aGVyCi0jICAgLSBpbmRp
cmVjdCByb290ZnMgcmVmZXJlbmNlcyB0byBpbWFnZSByZWNpcGUocyk6Ci0jICAgICB3aWMgY3Jl
YXRlIGRpcmVjdGRpc2stbXVsdGktaW5kaXJlY3QtcmVjaXBlcyAtZSBjb3JlLWltYWdlLW1pbmlt
YWwgXAotIyAgICAgICAgIC0tcm9vdGZzLWRpciByb290ZnMxPWNvcmUtaW1hZ2UtbWluaW1hbAot
IyAgICAgICAgIC0tcm9vdGZzLWRpciByb290ZnMyPWNvcmUtaW1hZ2UtbWluaW1hbC1kZXYKLSMK
LSMgICAtIG9yIHBhdGhzIHRvIHJvb3RmcyBkaXJlY3RvcmllczoKLSMgICAgIHdpYyBjcmVhdGUg
ZGlyZWN0ZGlzay1tdWx0aS1yb290ZnMgXAotIyAgICAgICAgIC0tcm9vdGZzLWRpciByb290ZnMx
PXRtcC93b3JrL3FlbXV4ODZfNjQtcG9reS1saW51eC9jb3JlLWltYWdlLW1pbmltYWwvMS4wLXIw
L3Jvb3Rmcy8KLSMgICAgICAgICAtLXJvb3Rmcy1kaXIgcm9vdGZzMj10bXAvd29yay9xZW11eDg2
XzY0LXBva3ktbGludXgvY29yZS1pbWFnZS1taW5pbWFsLWRldi8xLjAtcjAvcm9vdGZzLwotIwot
IyAgIC0gb3IgYW55IGNvbWJpbmF0aW9ucyBvZiAtciBhbmQgLS1yb290ZnMgY29tbWFuZCBsaW5l
IG9wdGlvbnMKLQotcGFydCAvYm9vdCAtLXNvdXJjZSBib290aW1nLXBjYmlvcyAtLW9uZGlzayBz
ZGEgLS1sYWJlbCBib290IC0tYWN0aXZlIC0tYWxpZ24gMTAyNAotcGFydCAvIC0tc291cmNlIHJv
b3RmcyAtLXJvb3Rmcy1kaXI9cm9vdGZzMSAtLW9uZGlzayBzZGEgLS1mc3R5cGU9ZXh0NCAtLWxh
YmVsIHBsYXRmb3JtIC0tYWxpZ24gMTAyNAotcGFydCAvcmVzY3VlIC0tc291cmNlIHJvb3RmcyAt
LXJvb3Rmcy1kaXI9cm9vdGZzMiAtLW9uZGlzayBzZGEgLS1mc3R5cGU9ZXh0NCAtLWxhYmVsIHNl
Y29uZGFyeSAtLWFsaWduIDEwMjQKLQotYm9vdGxvYWRlciAgLS10aW1lb3V0PTAgIC0tYXBwZW5k
PSJyb290d2FpdCByb290ZnN0eXBlPWV4dDQgdmlkZW89dmVzYWZiIHZnYT0weDMxOCBjb25zb2xl
PXR0eTAgY29uc29sZT10dHlTMCwxMTUyMDBuOCIKLQpkaWZmIC0tZ2l0IGEvc2NyaXB0cy9saWIv
d2ljL2Nhbm5lZC13a3MvZGlyZWN0ZGlzay1tdWx0aS1yb290ZnMud2tzLmluIGIvc2NyaXB0cy9s
aWIvd2ljL2Nhbm5lZC13a3MvZGlyZWN0ZGlzay1tdWx0aS1yb290ZnMud2tzLmluCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmQ2NjEwNjMyNTcKLS0tIC9kZXYvbnVsbAor
KysgYi9zY3JpcHRzL2xpYi93aWMvY2FubmVkLXdrcy9kaXJlY3RkaXNrLW11bHRpLXJvb3Rmcy53
a3MuaW4KQEAgLTAsMCArMSwyMiBAQAorIyBzaG9ydC1kZXNjcmlwdGlvbjogQ3JlYXRlIG11bHRp
IHJvb3RmcyBpbWFnZSB1c2luZyByb290ZnMgcGx1Z2luCisjCisjIFRoaXMgd2tzIGZpbGUgaXMg
bWVhbnQgdG8gYmUgdXNlZCB3aGVuIHRoZSBncnViLW11bHRpYm9vdGNvbmYgaXMgc2V0IGFzIHRo
ZQorIyBwcmVmZXJyZWQgUlBST1ZJREVSIGZvciB2aXJ0dWFsL2dydWItYm9vdGNvbmYuIEJ5IGRl
ZmF1bHQgdGhlIC0tc291cmNlIGZvcgorIyBib3RoIHBhcnRpdGlvbnMgaXMgc2V0IHRvIHRoZSBz
YW1lIGltYWdlLCBidXQgeW91IGNhbiBjaGFuZ2UgdGhhdCB3aXRoIGFueQorIyBpbWFnZSB5b3Ug
d2lzaC4gQmVjYXVzZSB3aWMgY3JlYXRlcyBpdHMgb3duIGJvb3QgcGFydGl0aW9uIHdoaWNoIG92
ZXJyaWRlcworIyB0aGUgZ3J1YiBib290IGZpbGVzIGZyb20gdGhlIGdydWItbXVsdGlib290Y29u
ZiByZWNpcGUsIHlvdSBuZWVkIHRvIHVzZWQgdGhlCisjIC0tcm9vdGZzLWRpciBhbmQgLS1leGNs
dWRlLXBhdGggb3B0aW9ucy4KKyMKKyMgLS1yb290ZnMtZGlyOiBUaGlzIG5lZWRzIHRvIHBvaW50
IHRvIHRoZSBhY3R1YWwgL2Jvb3QgZm9sZGVyIGluIHRoZSBpbWFnZS4KKyMgICAgICAgVXN1YWxs
eSwgdGhpcyBwb2ludGVkIGJ5ICR7SU1BR0VfUk9PVEZTfSB2YXJpYWJsZS4gCisjCisjIC0tZXhj
bHVkZS1wYXRoOiBUaGlzIHdpbGwgZm9yY2Ugd2ljIHRvb2wgdG8gZXhjbHVkZSB0aGUgL2Jvb3Qg
Zm9sZGVyIGluIHRoZQorIyAgICAgICByb290ZnMgYW5kIHdpbGwgbm90IG92ZXJyaWRlIGl0Lgor
IworIyBXaXRoIGJvdGggb3B0aW9ucyBwcm92aWRlZCwgd2ljIHRvb2wgd2lsbCB1c2UgdGhlIHJv
b3Rmcy9ib290IGZvbGRlciB0byBjcmVhdGVzCisjIHRoZSBib290IHBhcnRpdGlvbi4KKyMKK2Jv
b3Rsb2FkZXIgLS1wdGFibGUgZ3B0CitwYXJ0IC9ib290IC0tc291cmNlIHJvb3RmcyAtLXJvb3Rm
cy1kaXI9JHtJTUFHRV9ST09URlN9L2Jvb3QgLS1mc3R5cGU9dmZhdCAtLW9uZGlzayBzZGEgLS1s
YWJlbCBib290IC0tYWN0aXZlIC0tYWxpZ24gMTAyNAorcGFydCAvIC0tc291cmNlIHJvb3RmcyAt
LW9uZGlzayBzZGEgLS1mc3R5cGU9ZXh0NCAtLWxhYmVsIHJvb3QgLS1hbGlnbiAxMDI0IC0tZXhj
bHVkZS1wYXRoIGJvb3QvCitwYXJ0IC9yZXNjdWUgLS1zb3VyY2Ugcm9vdGZzIC0tb25kaXNrIHNk
YSAtLWZzdHlwZT1leHQ0IC0tbGFiZWwgcmVzY3VlIC0tYWxpZ24gMTAyNCAtLWV4Y2x1ZGUtcGF0
aCBib290LwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
      

    </bug>

</bugzilla>