<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Hello Antoine,<br>
      <br>
      Le 09/04/2019 à 09:52, Antoine Elias a écrit :<br>
    </div>
    <blockquote
cite="mid:HE1PR0902MB194735634395F9E25B52887DB22D0@HE1PR0902MB1947.eurprd09.prod.outlook.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <meta name="Generator" content="Microsoft Word 15 (filtered
        medium)">
      <style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:black;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:black;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:720324595;
        mso-list-template-ids:-642191542;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:72.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:108.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:144.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:180.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:216.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:252.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:288.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:324.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1
        {mso-list-id:1225919342;
        mso-list-template-ids:1784075552;}
@list l1:level1
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level2
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:72.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:108.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:144.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level5
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:180.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:216.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:252.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level8
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:288.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:324.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l2
        {mso-list-id:1337229135;
        mso-list-template-ids:-1188503000;}
@list l2:level1
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l2:level2
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:72.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l2:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:108.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l2:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:144.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l2:level5
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:180.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l2:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:216.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l2:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:252.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l2:level8
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:288.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l2:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:324.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l3
        {mso-list-id:1406950030;
        mso-list-template-ids:1667137282;}
@list l3:level1
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l3:level2
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:72.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l3:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:108.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l3:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:144.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l3:level5
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:180.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l3:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:216.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l3:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:252.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l3:level8
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:288.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l3:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:324.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l4
        {mso-list-id:1531532808;
        mso-list-template-ids:1533070826;}
@list l4:level1
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l4:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:72.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:"Courier New";
        mso-bidi-font-family:"Times New Roman";}
@list l4:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:108.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l4:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:144.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l4:level5
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:180.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l4:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:216.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l4:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:252.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l4:level8
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:288.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l4:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:324.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Wingdings;}
@list l5
        {mso-list-id:1817917080;
        mso-list-template-ids:1651256664;}
@list l5:level1
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l5:level2
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:72.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l5:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:108.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l5:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:144.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l5:level5
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:180.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l5:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:216.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l5:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:252.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l5:level8
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:288.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l5:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:324.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l6
        {mso-list-id:1975600493;
        mso-list-template-ids:1501851878;}
@list l6:level1
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l6:level2
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:72.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l6:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:108.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l6:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:144.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l6:level5
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:180.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l6:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:216.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l6:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:252.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l6:level8
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:288.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l6:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:324.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l7
        {mso-list-id:1977644094;
        mso-list-template-ids:1877907894;}
@list l7:level1
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l7:level2
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:72.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l7:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:108.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l7:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:144.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l7:level5
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:180.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l7:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:216.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l7:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:252.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l7:level8
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:288.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l7:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:324.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l8
        {mso-list-id:2115782194;
        mso-list-template-ids:1719178648;}
@list l8:level1
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l8:level2
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:72.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l8:level3
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:108.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l8:level4
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:144.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l8:level5
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:180.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l8:level6
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:216.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l8:level7
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:252.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l8:level8
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:288.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l8:level9
        {mso-level-number-format:bullet;
        mso-level-text:;
        mso-level-tab-stop:324.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
      <div class="WordSection1">
        <p class="MsoNormal"><span style="color:windowtext">Hello
            Samuel,<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="color:windowtext"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="color:windowtext">Just a
            question what is the goal of this feature ?<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="color:windowtext">Because
            after more than 10 years on Scilab, I never need this, so I
            need your help to understand needs and cases.</span></p>
      </div>
    </blockquote>
    <br>
    uman predef @<br>
    displays a first list of threads about this topic.<br>
    <ul>
      <li>One may wish to protect some custom variables in the
        scilab.ini file.<br>
        Please see for instance <br>
      </li>
      <ul>
        <li><font size="-1"><a class="moz-txt-link-freetext" href="http://mailinglists.scilab.org/Protecting-a-new-variable-by-using-predef-tp4027293.html">http://mailinglists.scilab.org/Protecting-a-new-variable-by-using-predef-tp4027293.html</a><br>
          </font></li>
        <li><font size="-1"><a class="moz-txt-link-freetext" href="http://mailinglists.scilab.org/Users-fr-Protection-de-variables-tp4037331.html">http://mailinglists.scilab.org/Users-fr-Protection-de-variables-tp4037331.html</a><br>
          </font><br>
        </li>
      </ul>
      <li>When creating a library, one may want and need to provide some
        protected constants as members of the library. Please see</li>
      <ul>
        <li><font size="-1"><a class="moz-txt-link-freetext" href="http://mailinglists.scilab.org/problem-defining-protected-functions-in-scilab-tp2615970.html">http://mailinglists.scilab.org/problem-defining-protected-functions-in-scilab-tp2615970.html</a></font></li>
        <li><font size="-1"><a class="moz-txt-link-freetext" href="http://mailinglists.scilab.org/Library-workaround-wanted-predef-bug-tp4034383.html">http://mailinglists.scilab.org/Library-workaround-wanted-predef-bug-tp4034383.html</a><br>
            <br>
          </font></li>
      </ul>
      <li>A workaround for libraries existed up to Scilab 5.5,
        consisting in including a myConstantes.sci file just setting
        variables to be included... and protected, provided that the
        library is loaded at startup.<br>
        But</li>
      <ol>
        <li>this worked only for libraries in ATOMS modules loaded at
          Scilab startup</li>
        <li>In files.sci, Scilab 6 genlib() now ignores everything that
          is not a function.</li>
      </ol>
    </ul>
    <br>
    A short list of bugs/wishes reported on Bugzilla has been published
    here:<br>
<a class="moz-txt-link-freetext" href="http://mailinglists.scilab.org/Scilab-users-Replacing-predef-with-an-actual-varprot-a-top-5-priority-for-Scilab-6-1-At-last-protecte-tp4036564.html">http://mailinglists.scilab.org/Scilab-users-Replacing-predef-with-an-actual-varprot-a-top-5-priority-for-Scilab-6-1-At-last-protecte-tp4036564.html</a><br>
    with some comment about sharing the need for variables protection.<br>
    <p>So, a priori the need applies to any variables type, including
      libraries.</p>
    <p>Another user case: <br>
      You are a teacher, and you prepare some Scilab materials --
      scripts.sce, etc -- for a practical session with some work to do
      with Scilab. When newbies students work with your script, they do
      really many things, and often some unexpected ones, as overwriting
      some variables predefined in the script, etc. If you don't want to
      spend your time during the session to debug the results of their
      freedom instead of focusing on the topic of the session,
      protecting predefined variables is expected to help a lot...</p>
    <p>My first message does not aim to tell all what should be done,
      but to tell what we -- devs and users -- <i>should</i><i> be
        aware of </i>when designing, then documenting, and finally
      using the protection of variables, as well with respect to
      existing features : funcprot(), predef(), clear, scope management
      of variables, global, clearglobal.</p>
    <blockquote
cite="mid:HE1PR0902MB194735634395F9E25B52887DB22D0@HE1PR0902MB1947.eurprd09.prod.outlook.com"
      type="cite">
      <div class="WordSection1">
        <p class="MsoNormal"><span style="color:windowtext"><o:p></o:p></span></p>
        <p class="MsoNormal"><span style="color:windowtext"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="color:windowtext">Currently,
            un/protect is only on local variables not on global. ( but
            that could change if needed )</span></p>
      </div>
    </blockquote>
    <br>
    <b>To me, protecting global variables is not needed</b>. <b>I mean,
      in the global storage</b>. The main threat are clear()
    instructions loved by a subset of Scilabers. clearglobal() is likely
    much less used.<br>
    <br>
    But, as far as i understand, global works with a local "copy", <b>that
      could be protected as a local variable</b>. There is no reason to
    prevent this, but it must be clearly stated that such a protection
    won't apply to the global counterpart. Example:<br>
    <br>
    <tt>--> global a</tt><tt><br>
    </tt><tt>--> a = 1;</tt><tt><br>
    </tt><tt>--> clear a</tt><tt><br>
    </tt><tt>--> a</tt><tt><br>
    </tt><tt>Undefined variable: a</tt><tt><br>
    </tt><tt><br>
    </tt><tt>--> global a</tt><tt><br>
    </tt><tt>--> a  // we locally retrieve a copy of the global
      instance</tt><tt><br>
    </tt><tt> a  = </tt><tt><br>
    </tt><tt>   1.</tt><tt><br>
    </tt><tt>--> clear a</tt><tt><br>
    </tt><tt>--> a = 3</tt><tt>   // only local<br>
    </tt><tt> a  = </tt><tt><br>
    </tt><tt>   3.</tt><tt><br>
    </tt><tt>--> // protect a</tt><tt><br>
    </tt><tt>--> global a</tt><tt><br>
    </tt><tt>--> a</tt><tt>      // the global content overwrites the
      local one</tt><tt><br>
       
    </tt><tt>a  = </tt><tt><br>
    </tt><tt>   1.</tt><br>
    <br>
    Now, if we uncomment the <i><tt>// protect a</tt></i>  instruction,
    what will be expected?<br>
    <font color="#cc33cc">The priority between <i>global</i> and the <i>local
        protection</i> will have to be clarified and documented.</font><br>
    <br>
    <br>
    <blockquote
cite="mid:HE1PR0902MB194735634395F9E25B52887DB22D0@HE1PR0902MB1947.eurprd09.prod.outlook.com"
      type="cite">
      <div class="WordSection1">
        <p class="MsoNormal"><span style="color:windowtext"><o:p></o:p></span></p>
        <p class="MsoNormal"><span style="color:#0070C0"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="color:#0070C0">Look
            Answers/Questions in blue in your message</span></p>
      </div>
    </blockquote>
    <font color="#cc33cc">My replies in magenta:<br>
    </font><br>
    <blockquote
cite="mid:HE1PR0902MB194735634395F9E25B52887DB22D0@HE1PR0902MB1947.eurprd09.prod.outlook.com"
      type="cite">
      <div class="WordSection1">
        <p class="MsoNormal"><span style="color:#0070C0"><o:p></o:p></span></p>
        <p class="MsoNormal"><span style="color:windowtext"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="color:windowtext" lang="FR">Regards,<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="color:windowtext" lang="FR">Antoine<o:p></o:p></span></p>
        <div>
          <div style="border:none;border-top:solid #E1E1E1
            1.0pt;padding:3.0pt 0cm 0cm 0cm">
            <p class="MsoNormal"><b><span style="color:windowtext"
                  lang="FR">De :</span></b><span
                style="color:windowtext" lang="FR"> Samuel Gougeon
                <a class="moz-txt-link-rfc2396E" href="mailto:sgougeon@free.fr"><sgougeon@free.fr></a>
                <br>
                <b>Envoyé :</b> dimanche 7 avril 2019 19:25<br>
                <b>À :</b> Antoine Elias
                <a class="moz-txt-link-rfc2396E" href="mailto:Antoine.Elias@esi-group.com"><Antoine.Elias@esi-group.com></a>; List dedicated to
                development questions <a class="moz-txt-link-rfc2396E" href="mailto:dev@lists.scilab.org"><dev@lists.scilab.org></a><br>
                <b>Objet :</b> protect / unprotect: recent progress
                & analysis<o:p></o:p></span></p>
          </div>
        </div>
        <p class="MsoNormal"><span lang="FR"><o:p> </o:p></span></p>
        <p>Hello Antoine,<o:p></o:p></p>
        <p>On 2019-01-18, you called in a private mail for comments
          about the <br>
          initial implementation of some variables protect / unprotect
          features<br>
          commited @ <a moz-do-not-send="true"
            href="https://codereview.scilab.org/20712">https://codereview.scilab.org/20712</a><o:p></o:p></p>
        <p>First of all, thanks a lot for the implementation progress
          about this long-wished feature.<br>
          Excellent news.<br>
          <br>
          After your call, please find below some (sometime naive)
          remarks and questions about the initial commit, mainly about
          the expected behavior of the features.<br>
          <br>
          As a contribution to the features analysis,<br>
          <br>
          Best regards<br>
          Samuel<o:p></o:p></p>
        <ul type="disc">
          <li class="MsoNormal"
            style="mso-margin-top-alt:auto;margin-bottom:12.0pt;mso-list:l4
            level1 lfo3">
            Do protect() and unprotect() return anything?<o:p></o:p></li>
        </ul>
        <p class="MsoNormal"><span style="color:#0070C0">Antoine:
            Currently nothing, do you have any request ?<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="color:#0070C0">I can return
            status of un/protect and %f for non-existing variable.</span></p>
      </div>
    </blockquote>
    <p><font face="Calibri,sans-serif" color="#cc33cc">Samuel: I think
        that returning a matrix of booleans indicating the <i>actual
          new status</i> of variables might be useful, indeed.</font></p>
    <br>
    <blockquote
cite="mid:HE1PR0902MB194735634395F9E25B52887DB22D0@HE1PR0902MB1947.eurprd09.prod.outlook.com"
      type="cite">
      <div class="WordSection1">
        <p class="MsoNormal"><span style="color:#0070C0"><o:p></o:p></span></p>
        <ul type="disc">
          <li class="MsoNormal"
            style="mso-margin-top-alt:auto;margin-bottom:12.0pt;mso-list:l4
            level1 lfo3">
            Do we have<br>
            assert_checkequal(size(isprotected(["a", "b", "c"])), [1 3])<o:p></o:p></li>
        </ul>
        <p class="MsoNormal"><span style="color:#0070C0">Antoine: Yep<o:p></o:p></span></p>
        <ul type="disc">
          <li class="MsoNormal"
            style="mso-margin-top-alt:auto;margin-bottom:12.0pt;mso-list:l4
            level1 lfo3">
            Will current "permanent variables" be protected with
            protect() or with another special protection?<br>
            unprotect %inf  // => error ?<br>
            // IMO, one should avoid keeping concurrent protection
            features.<o:p></o:p></li>
        </ul>
        <p class="MsoNormal"><span style="color:#0070C0">Antoine:
            Current protection of predefined variable ( %pi, %inf, %nan,
            %e,
          </span><span style="font-family:"Times New
            Roman",serif;color:#0070C0">…</span><span
            style="color:#0070C0"> ) is done by the same feature.<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="color:#0070C0">I don't know if
            we should forbidden unprotect of predefined variables.</span></p>
      </div>
    </blockquote>
    <font color="#cc33cc">Samuel: I don't think there should be a
      special mechanism for them. But as listed below, protection levels
      might be defined.</font><br>
    <br>
    <blockquote
cite="mid:HE1PR0902MB194735634395F9E25B52887DB22D0@HE1PR0902MB1947.eurprd09.prod.outlook.com"
      type="cite">
      <div class="WordSection1">
        <p class="MsoNormal"><span style="color:#0070C0"><o:p></o:p></span></p>
        <ul type="disc">
          <li class="MsoNormal"
            style="mso-margin-top-alt:auto;margin-bottom:12.0pt;mso-list:l4
            level1 lfo3">
            Protection of global variables: What will happen or is
            expected in the following cases, from the top level
            (console)?<br>
            global a<br>
            protect a<br>
            clear a<br>
            clearglobal a<br>
            // See also: <a moz-do-not-send="true"
              href="http://bugzilla.scilab.org/15250">http://bugzilla.scilab.org/15250</a><br>
            //                 <a moz-do-not-send="true"
              href="http://bugzilla.scilab.org/14928">http://bugzilla.scilab.org/14928</a><o:p></o:p></li>
        </ul>
        <p class="MsoNormal"><span style="color:#0070C0">Antoine:
            Clearly, I don't know </span>
          <span style="font-family:"Segoe UI
            Emoji",sans-serif;color:#0070C0">😉</span><span
            style="color:#0070C0"><o:p></o:p></span></p>
        <p class="MsoNormal"><span style="color:#0070C0">Who is the
            strongest between local protection or clearglobal ?<o:p></o:p></span></p>
        <ul type="disc">
          <li class="MsoNormal"
            style="mso-margin-top-alt:auto;margin-bottom:12.0pt;mso-list:l4
            level1 lfo3">
            Protection and scope:<br>
            When protecting a variable in a function, what will happen
            when leaving the function?<br>
            a = 1;<br>
            b = 2;<br>
            function r = test(g)<br>
                 disp(isprotected("g")) <br>
                 // Is the protection status of a variable as input
            argument heritated by the passed copy?<br>
                 // I guess that no, but this should be clearly stated
            and tested.<br>
                 a = a, protect a<br>
                 global b, protect b<br>
                 c = %pi/%e;<br>
                 r = c;<br>
                 protect c r<br>
            endfunction<br>
            e = 3; protect e<br>
            d = test(e);          // Do we get an error due to deletion
            of protected internal c ?<br>
            isprotected("a")  // => %F : protect a // just protects
            the local copie, doesn't it?<br>
            isprotected("b")  // => %T | %F ?<br>
            isprotected("d")  // => %T | %F ?<o:p></o:p></li>
        </ul>
        <p class="MsoNormal"><span style="color:#0070C0">Antoine: When
            leaving a function, ALL local variables are deleted
            regardless their protection.<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="color:#0070C0">Why ? Because
            we don't know where to put them
          </span><span style="font-family:"Segoe UI
            Emoji",sans-serif;color:#0070C0">😉<br>
          </span></p>
      </div>
    </blockquote>
    <font color="#cc33cc">Samuel: This sounds reasonable. But this could
      yield an error instead of silently leaving.</font><br>
    <br>
    <blockquote
cite="mid:HE1PR0902MB194735634395F9E25B52887DB22D0@HE1PR0902MB1947.eurprd09.prod.outlook.com"
      type="cite">
      <div class="WordSection1">
        <p class="MsoNormal"><span style="color:#0070C0"><o:p></o:p></span></p>
        <p class="MsoNormal"><span style="color:#0070C0"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="color:#0070C0"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="color:#0070C0">Antoine:
            funcprot defines a global behavior for redefinition of
            functions, that's not exactly the same scope.</span></p>
      </div>
    </blockquote>
    <font color="#cc33cc">Samuel: Indeed, in 5.5.2, functions look
      somewhat "global":<br>
      <font size="-1"><tt>-->function test()</tt><tt><br>
        </tt><tt>-->    linspace = 1;</tt><tt><br>
        </tt><tt>-->endfunction</tt><tt><br>
        </tt><tt>-->test()</tt></font><br>
      <font size="-1"><tt>Warning : redefining function: linspace   .
          Use funcprot(0) to avoid this message</tt></font><br>
      <br>
      It is <a href="http://bugzilla.scilab.org/show_bug.cgi?id=14892">no
        longer the case in 6.0</a>:<br>
      <font size="-1"><tt>--> funcprot()<br>
           ans  =<br>
             1.<br>
          --> function test()</tt><tt><br>
        </tt><tt>  >     linspace = 1;</tt><tt><br>
        </tt><tt>  > endfunction</tt><tt><br>
        </tt><tt>--> test()</tt><tt><br>
        </tt><tt>--> </tt></font></font><br>
    <br>
    <blockquote
cite="mid:HE1PR0902MB194735634395F9E25B52887DB22D0@HE1PR0902MB1947.eurprd09.prod.outlook.com"
      type="cite">
      <div class="WordSection1">
        <p class="MsoNormal"><span style="color:#0070C0"><o:p></o:p></span></p>
        <p class="MsoNormal"><span style="color:#0070C0">Maybe we can
            include functions in un/protect feature but what to do with
            funcprot ?<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="color:#0070C0">I think it will
            be difficult to keep both and that will be puzzling for
            users.</span></p>
      </div>
    </blockquote>
    <font color="#cc33cc">Samuel: clearly, if some "class protection" is
      implemented and enabled in addition to some object protection,
      funcprot() would have to be deprecated and removed.<br>
      <br>
      Now, the question is: <b>is a general class protection actually
        needed?</b> <br>
      For all data types: likely not. For libraries: i don't think so.
      But other contributions to this discussion would be welcome.<br>
      Reverse question: If funcprot() is kept, will protect() will apply
      to functions as well, or will be excluded? If it applies to them,
      how will this cope with funcprot()?<br>
      <br>
    </font>Regards<br>
    Samuel<br>
  </body>
</html>