Mona Lisa and Pumpkin to Text (ASCII)

import java.awt.Color;
import java.awt.image.BufferedImage;
import java.awt.Image;
import java.awt.Graphics2D;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

import javax.imageio.stream.ImageOutputStream;
import javax.imageio.stream.ImageInputStream;
import javax.imageio.metadata.IIOMetadata;
import javax.imageio.IIOImage;
import javax.imageio.ImageIO;
import javax.imageio.ImageWriteParam;
import javax.imageio.ImageWriter;
import javax.imageio.ImageReader;
import javax.imageio.ImageTypeSpecifier;

public class Pics {
    private final String inDir = "images/"; // location of images
    private final String outDir = "images/tmp/";  // location of created files
    private String inFile;
    private String resizedFile;
    private String asciiFile;
    private String ext;   // extension of file
    private long bytes;
    private int width;
    private int height;

    // Constructor obtains attributes of picture
    public Pics(String name, String ext) {
        this.ext = ext;
        this.inFile = this.inDir + name + "." + ext;
        this.resizedFile = this.outDir + name + "." + ext;
        this.asciiFile = this.outDir + name + ".txt";
        this.setStats();
    }

    
    // An image contains metadata, namely size, width, and height
    public void setStats() {
        BufferedImage img;
        try {
            Path path = Paths.get(this.inFile);
            this.bytes = Files.size(path);
            img = ImageIO.read(new File(this.inFile));
            this.width = img.getWidth();
            this.height = img.getHeight();
        } catch (IOException e) {
        }
    }

    // Console print of data
    public void printStats(String msg) {
        System.out.println(msg + ": " + this.bytes + " " + this.width + "x" + this.height + "  " + this.inFile);
    }

    // Convert scaled image into buffered image
    public static BufferedImage convertToBufferedImage(Image img) {

        // Create a buffered image with transparency
        BufferedImage bi = new BufferedImage(
                img.getWidth(null), img.getHeight(null),
                BufferedImage.TYPE_INT_ARGB);

        // magic?
        Graphics2D graphics2D = bi.createGraphics();
        graphics2D.drawImage(img, 0, 0, null);
        graphics2D.dispose();

        return bi;
    }
    
    // Scale or reduce to "scale" percentage provided
    public void resize(int scale) {
        BufferedImage img = null;
        Image resizedImg = null;  

        int width = (int) (this.width * (scale/60.0) + 0.5);
        int height = (int) (this.height * (scale/160.0) + 0.5);

        try {
            // read an image to BufferedImage for processing
            img = ImageIO.read(new File(this.inFile));  // set buffer of image data
            // create a new BufferedImage for drawing
            resizedImg = img.getScaledInstance(width, height, Image.SCALE_SMOOTH);
        } catch (IOException e) {
            return;
        }

        try {
            ImageIO.write(convertToBufferedImage(resizedImg), this.ext, new File(resizedFile));
        } catch (IOException e) {
            return;
        }
        
        this.inFile = this.resizedFile;  // use scaled file vs original file in Class
        this.setStats();
    }
    
    // convert every pixel to an ascii character (ratio does not seem correct)
    public void convertToAscii() {
        BufferedImage img = null;
        PrintWriter asciiPrt = null;
        FileWriter asciiWrt = null;

        try {
            File file = new File(this.asciiFile);
            Files.deleteIfExists(file.toPath()); 
        } catch (IOException e) {
            System.out.println("Delete File error: " + e);
        }

        try {
            asciiPrt = new PrintWriter(asciiWrt = new FileWriter(this.asciiFile, true));
        } catch (IOException e) {
            System.out.println("ASCII out file create error: " + e);
        }

        try {
            img = ImageIO.read(new File(this.inFile));
        } catch (IOException e) {
        }

        for (int i = 0; i < img.getHeight(); i++) {
            for (int j = 0; j < img.getWidth(); j++) {
                Color col = new Color(img.getRGB(j, i));
                double pixVal = (((col.getRed() * 0.30) + (col.getBlue() * 0.59) + (col
                        .getGreen() * 0.11)));
                try {
                    asciiPrt.print(asciiChar(pixVal));
                    asciiPrt.flush();
                    asciiWrt.flush();
                } catch (Exception ex) {
                }
            }
            try {
                asciiPrt.println("");
                asciiPrt.flush();
                asciiWrt.flush();
            } catch (Exception ex) {
            }
        }
    }

    // conversion table, there may be better out there ie https://www.billmongan.com/Ursinus-CS173-Fall2020/Labs/ASCIIArt
    public String asciiChar(double g) {
        String str = " ";
        if (g >= 230) {
            str = " ";
        } else if (g >= 227) {
            str = "`";
        } else if (g >= 225) {
            str = ".";
        } else if (g >= 222) {
            str = "'";
        } else if (g >= 220) {
            str = "-";
        } else if (g >= 217) {
            str = ",";
        } else if (g >= 215) {
            str = ":";
        } else if (g >= 212) {
            str = "\"";
        } else if (g >= 210) {
            str = "~";
        } else if (g >= 207) {
            str = "^";
        } else if (g >= 204) {
            str = ";";
        } else if (g >= 202) {
            str = "!";
        } else if (g >= 200) {
            str = "_";
        } else if (g >= 197) {
            str = "*";
        } else if (g >= 195) {
            str = "/";
        } else if (g >= 192) {
            str = "(";
        } else if (g >= 190) {
            str = "r";
        } else if (g >= 188) {
            str = ")";
        } else if (g >= 186) {
            str = "|";
        } else if (g >= 183) {
            str = "+";
        } else if (g >= 181) {
            str = ">";
        } else if (g >= 178) {
            str = "<";
        } else if (g >= 175) {
            str = "]";
        } else if (g >= 172) {
            str = "[";
        } else if (g >= 170) {
            str = "l";
        } else if (g >= 168) {
            str = "L";
        } else if (g >= 165) {
            str = "Y";
        } else if (g >= 163) {
            str = "j";
        } else if (g >= 160) {
            str = "=";
        } else if (g >= 158) {
            str = "c";
        } else if (g >= 155) {
            str = "7";
        } else if (g >= 152) {
            str = "1";
        } else if (g >= 150) {
            str = "i";
        } else if (g >= 148) {
            str = "T";
        } else if (g >= 146) {
            str = "J";
        } else if (g >= 144) {
            str = "t";
        } else if (g >= 142) {
            str = "}";
        } else if (g >= 140) {
            str = "n";
        } else if (g >= 137) {
            str = "f";
        } else if (g >= 135) {
            str = "x";
        } else if (g >= 133) {
            str = "{";
        } else if (g >= 130) {
            str = "u";
        } else if (g >= 128) {
            str = "C";
        } else if (g >= 126) {
            str = "s";
        } else if (g >= 123) {
            str = "z";
        } else if (g >= 120) {
            str = "y";
        } else if (g >= 118) {
            str = "V";
        } else if (g >= 116) {
            str = "F";
        } else if (g >= 114) {
            str = "h";
        } else if (g >= 112) {
            str = "o";
        } else if (g >= 110) {
            str = "w";
        } else if (g >= 107) {
            str = "k";
        } else if (g >= 105) {
            str = "%";
        } else if (g >= 102) {
            str = "U";
        } else if (g >= 100) {
            str = "4";
        } else if (g >= 97) {
            str = "X";
        } else if (g >= 95) {
            str = "3";
        } else if (g >= 92) {
            str = "S";
        } else if (g >= 90) {
            str = "P";
        } else if (g >= 88) {
            str = "K";
        } else if (g >= 86) {
            str = "e";
        } else if (g >= 84) {
            str = "Z";
        } else if (g >= 82) {
            str = "G";
        } else if (g >= 80) {
            str = "H";
        } else if (g >= 77) {
            str = "A";
        } else if (g >= 75) {
            str = "5";
        } else if (g >= 73) {
            str = "O";
        } else if (g >= 71) {
            str = "D";
        } else if (g >= 68) {
            str = "$";
        } else if (g >= 66) {
            str = "d";
        } else if (g >= 74) {
            str = "0";
        } else if (g >= 62) {
            str = "E";
        } else if (g >= 60) {
            str = "Q";
        } else if (g >= 58) {
            str = "R";
        } else if (g >= 56) {
            str = "9";
        } else if (g >= 54) {
            str = "&";
        } else if (g >= 52) {
            str = "6";
        } else if (g >= 50) {
            str = "N";
        } else if (g >= 48) {
            str = "M";
        } else if (g >= 46) {
            str = "W";
        } else if (g >= 44) {
            str = "B";
        } else if (g >= 42) {
            str = "#";
        } else {
            str = "@";
        }
        return str;
    }

    // tester/driver
    public static void main(String[] args) throws IOException {
        Pics monaLisa = new Pics("MonaLisa", "png");
        monaLisa.printStats("Original");
        monaLisa.resize(33);
        monaLisa.printStats("Scaled");
        monaLisa.convertToAscii();

        Pics pumpkin = new Pics("pumpkin", "png");
        pumpkin.printStats("Original");
        pumpkin.resize(33);
        pumpkin.printStats("Scaled");
        pumpkin.convertToAscii();
    }
}
Pics.main(null);
Original: 499298 389x413  images/MonaLisa.png
Scaled: 58149 214x85  images/tmp/MonaLisa.png
Original: 39392 302x265  images/pumpkin.png
Scaled: 10416 166x55  images/tmp/pumpkin.png

Print .txt File

try (BufferedReader br = new BufferedReader(new FileReader("images/tmp/MonaLisa.txt"))) {
    String line;
    while ((line = br.readLine()) != null) {
        System.out.println(line);
    }
    System.out.println();
 }
 try (BufferedReader br = new BufferedReader(new FileReader("images/tmp/Pumpkin.txt"))) {
    String line;
    while ((line = br.readLine()) != null) {
        System.out.println(line);
    }
 }
':'",''"::~~;~''^'-,"~!--,"`:;-,"-;!*+4{y$AAG5AHGAGZSPSeGzh%4X%%%FVFhyzVzssfu}T=}}>i+=Y=]TnJiiu{t}ykyCsh%VwUX%4w3XkSSZo3Z5OOAGAGOSe5ZADDDZDOO$DAdAEE$EREWE9Q&MD@NEdA$$6B&@W@@B@#&#R@@@@@@6DNWd@M&MBN@@6#M@9@@@M#APtl[|
"":_;^^,~,',^,,-`,`'^~,"',^-,!--"^^/ffzHA5PSSXGeHG3GKPPX%yVo%yVVzCxCTT]][+>+>|)YlL_1*<|((>(<;[>[[YjnY1i=7j=jT7innnnuszkkeKKO$G$5OAA$OH5A5HDDGARHdOAEANQENd9W6@R@6&HdD$$E@@W###@@&@W@@RQB#W6@WD@B@@#M6N@@#N9@@@@#&9MAuj
;~"_,,",,:',':'''-':"~'-"-,,,"',!*]yuUe4X334PXKPXKXX%VVustjL7c]<<Y(+<(*;(~|";*:;[;+^|^/'("(/+>|+(|)Yr+>+=]]j1LjT=ccc11c1Vzyk34FSeeKodPGHZDOOAEAeE5AEORdE&OEEDRZM&M9$&9M@6WWW#6NWM@9#@&ME@Q@@@BN@@NBBWW@@@#Q$@@#@A@QM#G
!:,:,,,':.'''.`'`,`-,~'''`"-::,"r1hUPSk4e3PKG5Z4oytTYYYY]>rLr;/(;*;r'r^-_:"_;:_.>__!:|""`<:_r);Y;r;cr<)|Y*)<i<<=YjlY7=cJ{nffVz%okXPKOP5AS55KAD$$5$$d5OA56K9NEDEMe&dMM@6B@&@@B&#NM6#W@@MWMM@@@@&B@@B&B#@#BB@6W6@@E@@@@W
",',-''`" ` ',  ~``-:``..'^"*;_(wkeSUKKKGPPPwsi717Y[Y]>*>^;",r';*-*"-!'*",*:"(~:`""^!*)_/(!^/]:>(/!(l(];[r]+77|T[c7=1j[7T=t=iyhwy%Xh5XZZSKHZeZ$$GAP$ODRdRGQ$$HQR&6RQ$B6M@NW&N@W@R6BNEwP@Q@#W#@R@B@@@@N@@QBBN@@B@Q@@@@@
,-.'".'`-. -'~''^.'::':-:":)("ixGeGO555GPUhun}c17=Lr|]*^L*<<^=_(;!*<~""["^''`.;:' ] `. '| _ < ~_*_,">(;(r<(<*T*=<t+l7]Yt}j}TtfzsCh%SSXSX45ZSXPPS4EZRG55DES@RMHM&E&9&dNB#@R@NWNR#M@@@@6@BM@MB#@R@MQN@@$@#6WBM@MWB6M@@@B
`.'.'`.`'  ``-!' .::"`*,"_;!]k43XXHHGPPSku{t7L==cJLiii=!1-;~';* ,' ," .(` '`` "-: ~:'`. * / :,`:~/'',(';,+!*;l~<>Y^>r|]T]<=i}TxJ{sFuVzwkS3SKXXeZG5G$Od$OQDdEdA&&56E$NQORW9#669#@#B&W@N@6RN#BW69d@NNB@A@W@@&9#@@WR@@@@M
.``'```. ` ,-'^'``:'* _^;*rjzkXXHSeA3FFuCuCTTf1[<j*]r*).] ,,  ^  | .``  - . ` ^.( *:    : "  ( `/,:':('; r";!(:|*r^**_r(+><Y[7=fJtxzsyuVokokkkSe3UZKG$Ed5EeEEPZQ9&956Q&Q&&WRM&@B@@M@@WB@E@9@&N#H@BB9NDN@RW@AEW@@Z@@NB@
' `,.    ` ` `  ..-,r,(^r>tU3ZGUeSPGP4Usu==Y><Y+(]:_:/  ! . ` -'. ; ,.  *  ^ ' ` `'-~   : ,, "  ; ., :;,~>:r~*"r_*-(_()|<+|[L=Jf}7}}JsV4y4FFk3UOP3PXAAHGAROEQEDE5$R$N6RBNM6@@BM@@@@B#W#@@@@WWN#9M@@@@dB@&@@WN#@@A@@@@@
' '`,  ' .',-.'''~^"_;++To3HO4KdDDeZXyzi1cY+](|);)^^:-'_,   . -- ,-, ^  -` ; ` ' - _`` '`  ;  ;`-- !`.^ ^!",^":r!^!*;)(r)])]]YL7=7TixsykCyX4kyk4GeeKAAeEDdE65dGQQ&B6MMQ@MNN#W@@@@@@@@@#@#@@@@@6W@#@@@#@@M@M@@@@@$@@@@@
`.`.'...,'--`...,'^^(*iTwPUAd9EAePXysxTc=Ylr</r*!/ :   ~      --'~ !  ~ ,. `^  "-  " "'  ; :  -..:  ^ :`:"",]-;"|^["**/);)(++l>LY7cT1CfzsuFwVCwX4KKX3eP5KO$QEEAdDdQ9EN&QE@MM@@BM@B#B@@@@#@#@W@@&@@W@Q@#WBN@@@B@@R@@@WW
. '` : ``'.--'','^"|]jxe9MDd$A$dKeX%xJ7Y<<)]*+;^"!!' . *.'    ~ .^ `, ^ ."` *  .^  )  `~ !  ! '  -  ! , ,`",;".^,|*;;;r/;r*r|<L<YL=cJT}uzyyVzowUX44GUZZHXE5dDdDED$$E5NE6BW@@WBNM#@@WW@B#WW$6@@@@@@@@@#W@@@MM@@BB#@W@@@
   .. -  `''`,.~_;/[YPQE$eQOE$QKUFFsfnnj]Y>[|(!!(,^.   ^ ,..` ~  ~    L  / ;:,  ,  ; '`!. ^ ^`  "'  ``-,`'~ `^.,,^;!^;_,~_((+)]>]]=7Tif{VywhyhoU4S%K4eSAwGZDGO5$EdD9ONMQEQ&W@BR6N6W#B6@W&W@#W#@#W@@@#@B#@ME#NB@d@@6@@@
`` `    ',,,'--";_7wSPdAAdDHG$H44hu{1=}7lYl+|^*,""'' ` *`-    .  !    l  ;  ;-` ,  ( ` :  ( '`` `'`-`"- ,`"`'`^,,"_,;^!*_(((r<|[<L==finuVFF4oyswk3w3kPUSFSPAHHGUHdd$d$EREd&9&#d@E@Z6MNRNM@W9M@#@B#@@@&B@#M9@@@M9@@B@P@
   ` `~ ``..',:,tzkyx$O$HZDE5RUXXsuf1}]Y+L/])(|,,,','``,  ` ` ! ',    ^` (  ;  ,:` !  . . `.  ;   ..`;~`_'~'"-"^";!"*";!r/((r)L<l>j1T7TiVT{hzoy%U%kF%4SPUHPDKHGZD$OEODEEEDM&&$#BQ6&&9@&QH9@BBMMMM#MBRME6#M@@@@@D@@@M&@
`  ``  ```   r[ixx7Ck%$Q5OOE9QSPUVuT1=LY<><|(]_*"^:-' ,    .' !  _ ''.+  ^` !-'^:."  `~ ` ,   _,, _ .~:'':,`'"/~!,_,"!^<!/((Y<lc]lcci7n1T}zxysyFFS3oXFeUVkk3OeZ%KKAHOEE$EDd9M$R9$dBNEQ@$&#6R&R6NBW#W&NE&6WR@##@@#@@@@@
   ` '.,`'."f71lcnffwA5&EAWGQESG3Vuy}7=[[r](*(^*"!"`: ``  ``-_.   < ` ]  ),- L (,') ` "   ^; `^''`" `;`'`:','~/;^~^r!_;+|><<71>=L==1==ftnntns}zfho4owsP%XUKw4XDoZHADEdOO9Ad&M9D&Q9#MM#@NQ@N@@@$6@@##NM&RB#N##B@@N@@@B@
  `    ` -[{=lcT1JVFhO9E$@&$$dZU3kzC}TLl>+>r+|(*;(_-, `--,, *_`. _.^:'Y':*^~:+`';`) . ~  .^.^~./-"`;,:--',~,:,+!+*^<!</>i++>[i>Y[lTllc1iYfsVfnosyozzVu3yKk4X4SeoZeeGOAAEdD5$E6WMM&M@N&@&Q@&@@N@$@&B@&@&@B#@@#@@@@@@@#@
`'    `+JxuJc=Ju}oPeA$WDRRE$HGSh3kzCfi=l+(>+^!-/.(` "   ~^^"+"''_,"`.,/ |"_ ''^;- !;: ! '`! !. *."`~.:`"~"^;/^)~*/~[l(()jY+[[cLLL[1|=Y7c71}ntznuzFn{VCwzkkFUkkkXUeUXA4Zee$dRQQMWNW9MEM@MB@d@@@&@W@@WWBM@##M@M@@@@@@@@@
`'., -Yz[]]11swUSS3GSOEPO5ODZ5hVoxFxij]l(/|!*^~"~^--' `:`,;./,'`" -/ '-r.:./ .;_ )`*'., ',~ -. " '': ^ :^-,,*";"+(_]/>((>](>]Y]+c>)>]Yc77LT77xCcuuuissuzwzCVFznkswko%UUKPGARNR$K@&RWM9NNEME@MW@R@N#B@RM#QM@6BWM#@@@N@@
 `,:~=TT=Y=1kZ5GHGAEKZRG$GG$3VFCunJf1]i=r]*_~!!;.'!~ ~ -  >`^_ (",-,; ;^'`-;',`( / ('`;`   , ` '`",-`""``/"~r(_;<!(_)_]/=!j)[)cr=<(1[]cltJi=]c1YtT{n1uJxTu{xCyfxz%yyw%oS3A5HHE6R@6@BBW#N96Q6N@MR@E@#@@MM&##BN@M@@@M@6@
. ~is/Jfi[seeGkEH3PGDEASH$DQHUCCu17fY7j]|/**~;"-*";~'! ^ (' ,|`* ".~,`( ',:: ^`;.,"^,-:.`"- ,  "^^ ; -~` ~^,:)--^r/"r_|<()j++|]=<(|]/T]c|Y7jc]TLi7JiT7=tJt}C{ufTfzsCzVwXKHA$D699@&@@Q9@N&E6d#E6R@#@@RW@eE@W@NWN@M@@@&@
~.{711}7Y1SG3EGPeOPSKZOHDSA9S%zytt77]7=r)>""+,^'l ::";:,"+,:'^r   :" :" - ~" ,'-; .`,^,'`^` ^ --"` ".`,  +:,^_~!^|_'*~`|;|j(_|)[/>*[++><+()]Y(=[<7l7lLtjcJ7s=tttnxuyy4kkXH$DK5Q&WRNW@d&QB$QE@QQM6Q@#E@@&N@MERDNER@@@@W
-==1icJ173$yR5ZHdZ%GD$$O$AQDUhozu]LYL[=<[</|!/^~;/^~./,~"<^., [ ,.], "~', ^,^" `': ' .!  (  ,```^` (``).:-[,^"Y"">^)(>~^]:*|^!1~^);*[(l<||+)=([+<)Y*1[jY]1LicjJi}uxsywVS3XAQZ9$dR6E#W@&@6QBE@WQN@D@@#@#N#@@@M9&O@6#@B@
;Yc[j[}JudzMAPXKkZX$5ZQ$dARDU%yfJ[Y[<c+*]~_:!':;']":["^|!/+~^:> :<  *:" ,`*`'- ~". ^` -` r ' '` *  * `~/'']-_,|,:^!~~/,!-<->!(/(_*|]_)<>]<)<Y*|()r)|>>Y[<=]ci=cTtJnuCVoUSZEHSd5EE6dWBMK&M&&HB@Q@@5@@@A#@WE@#MMEBQBWNN@
urLjYJJ7ASedOXAZAKKDddkEZA6D3%s7xtnL1+](<+^^*:r;;_"!;;-;'.+'-"!'/ -`] * .-/`,:'^  ',', ( ^.^ -:-;. /,~,/--r,;;"!,~~:,,,~~:^*~^;("r!)r||/<+>r[)+r((/L+=l)]=[=7lY1JiC{{hh3P3e5P55ddRAEQ6O69W&DNMQ@QEEWB6R@9E&#@MNRHW6#6W
x]cl=xTnDePOZXHZ5S4XeAZeSO&DoVx1fc]>l<r!/"^~.:""''--`;~,".":!'`/ :-`*`",.-('',, ' ;.--`",'`^.'"'~'-,*^!*r*_|/r_)*r<+!**/**;))(r//*!;+_r+L(L|]<L)7)]>[Y7=7==7icin}txCzVoPAeGAAD$Q99RE9@eM9$WGR&#M9$6WWGMNWBN&@B#9&B6R9B
7<T]sTLJw$3eHZHeHhN3SddFZHR$%VC17Y=*r>+*!~^^.-:~";^^~_;!(_^)";*~",,!.''!,-,`",;`.'"'-.  " .:.:^^!^_*|(<+[+>j7Y>l[|[+|<>>r|)](r/rr))/|(r*[>[]<+[+[<>lT[L1c77}711Tu{CfhkkXZGOA5GD&9ERDN9$BS9&OERR6B5R&EB&N@NME#@WM9$@R@5
n<}fcxi{J4AOHGdAAz33HGEhOPOd%fxsT1j)rr+(Y;^"-,*_^*((;_();(rr;]!*::;)~",^`)-,^"^'`_','-. -`--";*(]/>|LLl[ccT7ijY<Y[7YY[[|[/[<+<+>]>)>+[+[]>Ll[[Y7c=<it1cxfu7Cnn}youykoyFkSGGA$5OE69EOBE9WK$QAE$NQ$QD@dR$EE&$MNM&@MGNAW9
ciCnnffuzUGdKSHOAdE54NZ343OPSXhi7[+];/r^!"~"(~|/|([<><[)l][+|l+(+_>;;!:^:*^-!r^",::`:.`"~^;!>[YlJYTYffJn{t}fuxt1JTi7i==L=jJ17=Y7c==1Y177u=1f1YiziuJxx}uuxzssyu}zkVwkk%33PHP$$D6&R&@@Q@E6EMERDOMA@N9REMWR99R6QWNNMAM$5d
llnfskfoyhoUO5$QP5A$zHK3ZePS%%y1i]]<]>*/|/>+]+<++[l[jj]jicc=}cTYcj]((!;"^-;,"]~~*~^,^"">~_(/+71ttt{tsuuFzyzusyz{CnutCxf}JuffuxxsCnfu}Cntff}Ctu}yuysz%uC%VoVwszohVwy%%UPXGZ3XGDDE$96WONRA&NH&NK@X@D$EWZ6Q$$EQW56#QdBMG6
nfCxyxFUFU4KRDGkSEDeVPXSPXHK4ustVJjY7Y|1[][=L=jj7fnffxTzuxzxnJu1{T1[L<(*/!+^+;!~|,*!*_*]((<]==nfssVsozVhhwhozzzCskkyyyVuCzksookk3U%wo4wkyFzk4ks%FkkX%SyX4%%UyPsUo%wsXUUk3SHKeeD&d$BE6$dX9R9RE%BdWR&9W3M6Q&dE9M$@5ddNR6
oJJt{{k%4hz4XS93e$D4wAXSSSS4ShVhFtyJu}JxJfftzzy{XFusCCT{{}FxyfhzuC{n1TY1(**!;("(!_)/|*)[|]=cJCuhVykoUUS3X4%okzkC1iiY]++(]>l<l=77fJzuyKe3GHHKUH%KASASKHSZeGUPUSnXkk4%USSKSPee5DEQ$Q$NBNQ&W9RDBQH9696RN6B&dN$BMRG@B#9EWW
}fTfxuyX%hkwS4KKXSA%OC3%%3UPU%suXxzso{ChhXFCi[]+()|/);!_|<]+)]jYitunsyTi](!)^<^+^rr_/+r([L=JsuszXhyXUkXkhsz{tj[[r|]|+Y=[j[1tTJTfxzTttuhso4ZGSA3A3PkSZHGZSXZe%why%z{yFoUkUkPkKXHHOOEdE6AA&MO#Z6AO$EEPQDQXdRRdQ6SM&WO&RQ
wfJVVuKCVhPCXwSHKUHGo%UPGK%3eFuu{Vhhkuh%%x71Y=1TfuzXS%y4SX44okFTJ1jt}xt}c[/+*;;*^//;/|<<LtixCoCokS4%hz%uxTTc[cY7nuzkU3A%ZSHGG%PekeK3VFwVskUU%UzHSKXKXGSUKShhyVz1u}Cszoswz%KUXKZHGDDd&&9NMRdREOdkBHd5EAQRAQEA$ENMNRd&d@
yxyuxUXVwC4OA5ZPX5ePUTSGeU4%PUuzntkVVyVVf}uFFoFsxfitF%kXXeX3yAoSeXzf7TiJxiT)l;*'"*";!+|)LC}hoyfJJS4wuJu1n}if{fCTncLY<J%3kSAZKZKZV4XXUkUKXX%4UHu3UP3sHo%{Uzs}T1J=71tfT{uou4h%3KZKHOEAERQdEODeEZO5OEAEEDHRH#dE&RSd6EOW6&
zyuVFG%SG5UPKD3P$U5K$nZPPXe3PFC{{i}F{uFkkCkyJj]+<+[LuA%SFPXeP4khzXy4yxY>i{j+]~:";*""_(<>7uyzk4ufz%hf=c{uT}1=])!^**/;)=sK4hkeUKPFzkeokwz%CVwFoF%w%Fz}t}}7ii1=][<]ljc7iCx{zFUk3Z53Z$5ON&$EQ5DNK&E$M5QR$QQE$R5W#WH&W9Ed@M
<}VuzX3e5OZKOQGDXeeHdG4KkZ3PSwiY<Ylj+TlJTL+]=|)_(_(<+nFS4oVhz{CFkut77Y[;<T+</   --':~!+lYJfzJyzzz}xnLiL<j+<^!^"'_;<;>)rizsuhuzfCns}tJ77iTj1}fic[>|)](>)+L/(])+)r>jji1CfzCzhw%XSPHODRdEQ6W$&E5EDP$HEEBsO6WN$9d#M&dO@3@B
TwkxK3UKGOG4PXeKUeO$EEw5KePAwCti=(l()]7LJ>(r);(-:~,^,("^(*r+]Y=jc+]>)]|+]]r<(.'-"`,:~/>+c7jfiuJiJujx=ll+>;[)**_~//((!/^/r*+>+>j<=]Ll[[LlcYj7Y=Y<]l<>+|+)+;/)r(|[<Y[=nfffzyhXX3SeEHDE99Q&Q9dH$E&ZS&R$#GEEA@QWD9N@BEMH6R
osz3P4GAkEkEX5Z$dQEeDDZAHe5GSuc1J++])+<7Y+_((|;^|_!**+/[<TL7JTf=cLL|>7<)||_*;'^`:,-:^*[Y1finfyJ}TyYni11]|)c[[++r|r)>r)|r<|+]<>1[lYc7=jc1J=t=Y[YYL<<<r;)))^*_>)/ll[j=n}nzfowXX4HDGA$Ed&9N659EENRO6Q#3@$ORG@6BP@E&6d@&6B
tsssGKOHe$Z5UdGNOO5$Q5$KEOeDPfY(=lr<(j[+(*r/]>l/L+1=7ijizyxzzt7j]][|*]~]rr(^("~:'"^~!+||ift{}uty=ncCTYc])rl)l])+l<[Y]]+LYj[=l][lj1xu=i77T+[rY/[;<(*^__*(**_r+r+L[]L1JJszoPXSSh5ARGE&6M6R6DWR&ORQE@@eBNESE$6$&6Z@9&9$@W
iVy{$ZH$PeHNAZSQDEHOB&eAd5ADZt77>r)r**|;(;^~(!;_)))<>]Y==]]L+L+>|(;~^;^>"//*)]r^^~";^)|l7n=ntJ1uji<CjY7<+*|_^[!L++)L<lc+]=>[L[YL]<l+((*_~!"_*___^~/**!+;__||]>l77YTJJuywzU4X5AH9DE9RW&d$W$KeMR@4@5@dZ@U6@A@DB$DNWdME#W
txsn3GX5OSDD$GSRQ$EQ&9$E9dDESn7j(<l^(;/;^"(~:;"-,"-,,:^)+(|+"+!/_:""r^_r/(*(<) ~r"_;(r+iji=TTJjnj{]V+)++/;!^*^(*~,^**!!),--:;~:'~ ..';,:"!,~^!^^_,;!*+|[+|[+[<jL=L7{tysykSSeHGZ$NNN&N9MM@@@e@#9$@EM@F@9K#RQEW$dWN@@S@@
yuJyyPHOd&DE5&PEDG$DMdDR$E5Q%s1[>/[^_^'+^:',~,^'::-, -'+"""^ !.~**^"+^+__<^*[/*`*:~//rrll|c+[=l7l[lf>((<((~^,:~,`,;:;. `" -`-:,'. ._:^,.*~"-;"^/*_)+]>>|<)>[Y=TY7itCfoVzXKXK3E5Q&NQNMd&$6@d@SNWZ9@KBQdNk#Z@$W#@A#W@KQ@
kVJCXkARE&d6GDEAQ56ERdEEP$OD3y1Y>/>(/!~['^,(,-.;',`-~, .r.-;.^~,;~,"^|_"~+'":;<~,'*((*+L[<]L<]]7[]+>l<r[|_:(.^,,''"*"-  !  ' ., , .;;:` ,_,"^_";**+<>>>[]<=YY=iT1ttCxwV%3%AKSAD$QQNM@EMM5@##ORZ@S@@EWN#A#Z@#ZN9d6M6@SD
kz}FhGCEA99EQE5E9EN$R9O9#&$4$znjl][)[r+/|--"^''-_*~-;'" +;,^",* '(',,;,:,^-~:"_: ,)*_(=*+r+[Y<=][[<+<+)=!;"*-^,,, "'('"'/" `  ,  " !"",'~~:^^!*(|r)++][<=<YLlnTctfzyohV53P3H5DEN&&&B&#&@N$ME@BA@$W@NMRE@RE&R6Z@E@H&9&S
{yVuosyD$6$GQ&$E5MRQQ9&9E9&EHoxJ[c]<L++>/)|);;^"(;'';   <`~: ','~/':*^,;,:`~._  '-";!r<+*+*[L<++[<)*[)r|!;,(-,"'.,,'`> ' +``': :^*,^',,"!'r":(*)+[|[L<<LjljcYTfJfCzVkUX%GHDdd5N$9NBWN99W@4@EB$#M9AN6DWAd&Z@GEWE3#&99EZ
z1zy%dDPKdE%D&APeBERQE$N9$WQAyFJ1+c)>)+r,["*!-:^'`' _,, ;  "."^^"-(:|-:;`_ `,`` '`,,__](*l[+1r(Yr><+(|_<(""^^:"!!"/:',^_: /   :'.,;!^^""~'"^:*(<|<<]LY[jjYY1TTnT{FyhkU34HHHKE$&9&RREW9W#ZO@kEMQM@4MEGQ@XDO#ZB$MMd9dE4@
VCUP3V9A$OEKe5eO5#D$DG&dE&DdEeFC=1l<+(()";"_,!~]",'`:;:';' --'-,;.'_, `  (  . , :!"^/*;*Yc|+<L]7L<~<|+)^*',,"~,,",l-",:*-`:- .':'"*",(,;!^~/!)(=+][[LY=Y7ucfff}{VxkFU4eeOEXE9&66BD@d9@6$6$RO@@4@k$E@GQWS&R4W6GZERBZ&OD
ehZeXZUHO$3REEROOE$$EX9$Q$O9EEX3T=+r(*<~:~'--''.-    r .;^`:/__./:`/,^^,"*,,' ,`'~"^"]"r]rLll=(s*[]/r~|(~*",!!*(" ~`"; )--'! -.;-"*~:*"_~^"!!_)(++[=Yj7cTxTs}JfohVyw%kGZDAEG&696B4@MQE@EQ6MQABM&MK@Q@QeA@@n#EeNAR$&5@w
$3KeoEV$$AkOD5DOEeAA33wS&$WWE93Uf7=[>_(^__-~";-*':`!,"; +^^_':^.+-^~~,:,:" ,_ ^-, !;*)^/|^=*7]rf(+l]+/*();;"*"!],(/.r"^;;(, " .;"r,^-*^:;~;*_(>|<<]jl=7=ixnoffVhhooFeSZAEDdE9&DM&R#Q@NBd6N9@PWWN5R#SQ@3B#SB&&ZRR$d@3#k
D3KOUO$9DEk9$DK9OE$DN&#HP#@6EDD3hyJY[<r"~;:~';;!!"-,'-"-.:`~';"~;;[;*~:`!_" |" ;,_ ;^j;l+[[)7+[n[=L7<>/L*:>']_~(^:|~_)r"*`('"`"*";___(^~^/*+||[r)=Y]j71=1zFxy{ohwk3PXA$eEEdR966B@K@B55@&d@Q@E@EMK@e66$E9BBQ3@35BR9M3#H
%3OdO4EAO&S&$RO5O$KM$$d9SDE@EEDHVzJYY<|*;/^^:,*":":~","-,^-~"^!:/-j/_*""^; -'-';.(~;)))/+]=LYj]1[j[7=1)*('>'"[~^!"(^,";^""_'."(:_(__(_!_*(rr<<[[[j=YiJiiuFVxsxhhoUUHSGAA5RQd&NNWBMB@N4B@3N$Ee&9@%@6WDBEQ6&Mw6XER&MR9Bz
FEZ5e6oODRO$SOEQ&&ZDE$&#&&NQQRAZXsy7=]j|r+!;;_:,',.'.^'";~~";("*/*]|*/:*-/' .. *`~^~_l]+<+]|]]+=+>]jc=[|*-!,_'] ":(*^_*~"',,~,(";;;|!*(r()/+)]l7L=771niC1ku{wyzVXkw3eA$$EQE6ENWB@M6NR$N9$#BWd@&W@C@B@S6XZ6h&E&N&EE&deE
EF9AZOkRRDOdAdDEOOQQR6E&O9E&D6HS5wu{1c1[+Y//^;;,',.,::~"(^^"!/!*/=|/)_'/ -,,;'"';""~|/*>|jYl[Y|=+ll=1cf=<,'^,`);;^:;,~">'`".-:"_!:rr|+<)r|+]]]cj=J1xJttufyosCusU3%wS%G55DEE$5QR@6&69$@N@Q@5MdEEG6DEW@e@4N@Z@eR9K&&EE&$
Odw9DQoE&GkAZOHEGEQ&9d&ONZQNO&$$OwzsJf7Y<]r/^*^~"^""^;^~r__^*;|()Y=L]r^~.:`~._-,!/)+[j1nJt}uTtin}Tn}uusJ=_,~-";,.-:*^:-^!";;_(;/!((>(|]|c|l]Y=c=fTntfnfyuyhoukkU3oUhX$dA$ER9E9DNNRD&BE@9OON9NwWSND9@6@XEWdEONRQ499&@HB
B9%MEQOk#K$QOAE6EE$6&EQPdQ6E9WWOd5oyCn{cTY[|>(*;^/;*!(*_(r(;)^*(|(iyfT<(!*/_"!_+l7}7uUwk3wX%4khwFFUk4F4Xt(^_''`/'~- !^^";~!!****>r*r>/<+Y][7jT1J1}tnunVCVyoksXwSSCPUAdEDQRD&N6M#6d@K@@ABEW@R&R@@5#OW$@SGWKMDGE6PQQ6#w@
O5ydEAO$HRM%6QARMDd9ERSEo&dQ6EEMWGS%kuVJfi[[<+(*_//(>(*(*!/;_^^/;/)]7fzzj+[|[[11fsku{hXAUAPUG4DzZxAeAsUzl[_!~^:~`',"^"*^***//rr/()(+<<>llYLYiiT}7f{}fsyoP}UPwehSA%GAd4EAR$5R9E9@R#WMdN9$H#BAMMR9E6#$M&$O@K6UN@RABNG@E@
SQUO$DAPeNBOE&9QOD$$EEdMkNNE56B96RS%os{z17=[j<++/<(<+|rr(/^*;^"*,:_,-",)Yxyio1wfU4XPz3XeX33HwXZXeS4S4sun=[*^*""^"~^),+*(r;[(|r+|+l)+Y<[T]=Y7JTtxTnnyuCyosxwk3UFPKXPS$KD5REQ99NDN&#NE@BBHWMNH&WMdW&9@HDO5W$PNQzBBQ#P##$
B&OkRREkdN6WR#5NEEeeD$55$Nd9$RWA6EO3%FFyufT=jL][>j])]||]+r*)!^;:^~-^'` ~"/]7z}k4%ekGVK4H3S3Skw3UU4hyufJlY[(r**!!;;|rr|>|r<)(<++<><<]<[LcL[1Y1t{t1JfytCshyThVXoXfZPPD$AERD9OE&6&dQW$6NE6M#@&@@O@B$@AQBK@99DH59EB@$#A9B3
WDE43A6yR6NDBMEWQR6d&RREe9WedNQGNdRAPo{zVyT7=7Yj==>]LrL]<r();*^;~!.:"'-~'",^r+1Cy44Sw%oX4XkkfhV}uxYcYL[)<(/r)(//)(>]><><+][<<+[<]|[]l[Yl=YT7i}{fu}{u}nuFszFu4s3h3UXAP$dEE69EE&WBE6@M@BRMMMe@M$M@dOBd@X6M$&R&@U@B5#B@GQ
6$SO%9%PR$@u@WQAERD&d9Ed$d$EFB$OMQEAHUVCuxT7Y=cjl=[[=[L]][>r(__^;;^"",;',^-^|<YcnJxxff}Csu{x1}J11jY[Y]l)|][][<<<|]l1Yj<cY=>j[lY+>+<[+[]LYjTYiufuiuxJuzCVCCC}Uwz%wZS3AeEEE&EQR6M6E6Q&@OB@@BE@RA@&6Q&M#e@RAGOdde&Rw6$@U@
S3QGKHGSEEWC6ERSWEE$dO3$$OdOURQR9OA$D3kCC}1[7jL=j]l]7]1)<<+><||+*;;;":::,:,///>Y7Lc=j=j=i1i1=cT=1Y=[L]Y]LLY=[cj1j7fctJ7Tjj[[>|<+<)++[[Y[L=1=1T1ffCsTxoyyhCh}Uono3SZHK5$ODQNQ99M&BN#@EB9B#B@D@9BREO#WNE&eNBPENQ@5@SEBON
O$$Ez@&X&AN4M$EHRZEZD9OS$EMdADNDHA9REDHzyiTY7YllY+++<J[Y[ll=7=cY<r);!(_~!!*!!*!<)<|<[<=Y}iTiTc1=i7==11i11t}}sxsffxJtitYjjl|]|>()l<r/l)l]=LYT11TTJT{}zxyFU{oz4%%43U%5AAGAEEE&E99&W@WR6BM@$6NM5EEMRW6N9Q9WEQ$@K#5R@$MMA6
5GEeV$9XG$Mz95HU&DKPHP3Z5RE6EC@BXRE$EOHkyf}[=LYL[]++[>+jLjLjufzkffsnntijYLYl<L)<+<=71cJ}xfCfxxuCCCuFyyhyywkUkkPG%Vf1[J>l)[)r<[)+]<<)[>][c7ln117juxux{yyUhwToCosXwKeHA$d$NA9QNWMN9NDB&@6WMR#$E$6EEDBRHM#5D9UM@5$6QQNR9M
ODdOQzW3K5NyRREE999RDGK5Q6$MED3EN%NNE9H4UVsT7==LY<[+>rr<=L77{1zuC{uzz{zkJCUfffJT7iJx}fyskyFCUFkzoXy%hu4y3VSKK%zCtT[Y<lY<](<(+)>|+>=|<>L+1[==i7cufCuukhVzUwFz%UwGUGG$$EEQNOE9699@Q66W#@&W@9@W@DM@E@@E@KMK&6E$Q@@9@ZWRN&
ESAHGy$EeeEeQXHOAKEdEG$dDQ$3E9KDByNM5&&XUPzf}=jL]||<|r))++r]>][>/(^,.;^<*_[_[/+[71uCx}n1fixf{TiJnsCxuxuxJi1Y=L<[L<Y[[r=<)/**(*r+/>+<>]llTl=cCcixufuFsVVuzh}hyZ%ekZPG5EO6EAEA&9E&&d&QNO#999Q&9O$MD&EM@QP@SBAR$#ENEPEHW9
$Xd5HEs5AdMzEEDAAORNMD$HEENFBNk9EZON$&ERP4KUVf7=[[]<]/||);>r+_(;-"" .*,_!;"(,;~;;(|(+/!>><[=YYj=7177T1=T17j=[>)[<+j+c<>(>|)_|/(>(+l][lj1c711yY{CzfykwFwywkV%zAwXGHGAEdd&$RR9RM&R@&66$AM6Nh@d@N$B&$96G#e@HR$E@GNQH9@OEE
zAP5eNC$AQyeA$AQAHRRN99&RRMQA&%AEOd&E9$96EDPXwuJ7=Yl]><)](+|//*~,,-:';;"(+_r((r())[<|<|<[[[==Lc==i17}Jx7=Ll[YY<]Ll[>r])]/|>(]+<<<l[]Y7Y11i7tsiyxyys4%oUk4ko3V53SKGOA$$ZdEQQE6REMWDWe$@&WRH@EW65BM5NRZBdB$@UAN6&$REB&E@
oZXA3KXeODyD$3SD9D$EDMMDEQQNPN5MRMOEOWOE6R6&SZUyuTiYl[7>]>|[")*_^;~!"/_!>(|]ljYcJtTtx}Jjfitnntuu1JfT}1}1J1jY77Yc77==jY<Y)L<<Y<]L]1=Y=JcJJJfxzxyyukVkyXwkSPy3hGDF$S$Q5AGOE&69NNRNdW$&&QMd&W6$6NOd$E@XH@A6Q96OO&69d65QOd
3SSXPUXDG$dZXHZ5#kWEEQR&9OR5AEDABWG9$Q&EA&K9QEGk%kut}11=j[][]>)|_>-~^+^*/(/<]lj7fCuz{siuCnCtuffJ111=JnYiicTf1j77===1==]]>LYl>l]c]J=7if}{C{CnFVh%%kk3VUUKPXyGoSA4dAO$AD5EREQR6WB#6M@NNRN6RRMHN6dZNS#W9E&@@5N&MZNQ$@E699
kkHhD$uEPGdEP$5DQZ9dR#R$M$OR9DQ9%B$$KM9$9$$9EQRODGwU}CC7T=jc<<=))r!_*+/~*"*)++<L[j==Jc}j1cT77c1=1Y=LLYY1=Y1Y=Lc=L=1}==iLY]Y=L7cj=}}nJntnVszzhoyk3XKSUK4ZX4wHFZD%$G9$R9OQQNRW&$6@ZM#AW&EDh@N&M$5E$G&G@@k@NAM5@e@&d@@E6M
GSZkDEX$EZO9KQD96dD99W3BQQN9@P&dN#XN%@D&QMdEW#EE@MEGSwPFhf1T=JLLY<**^l!/*~,^;!_^|r<+|l+r+<+]<<[<[<l<<<;=+f=jc}ci=Y=11Y77=c7c1Tit7Tfs{{zyUkUUUKFPe3ASKZGGAGFDz$S3dAQA9MQE&B@6BE#@W@@3&@dB$NN@REPB@X@@NU@N@9QE@WB6@N@6D@
xUX{EAwXEd$DH$6ER&dNQQR9dEAB&Q&N#R$ZGRw#ANHMRRM$&QSM95oHeVkxt7=]Y+</^|^^;".-,`:--."."'^,"'^_;^_*//+|+/(<l=[LY1j}Y1Y[JYTLc==71t}u}znuVzFF%XUX443keX54GZSAeGkdVEQeDQ$DR669@6@NNQ@WM6#N@@&BM9$@ONM&#E@@E59dW&@G@ZE$#@5@@D
{3SSFkGwUDDU9O3dEZ5R$6N5&$FW6WMD9E6MSAODDR%EQdUNDEQD&@kNEOZe3yfc7L<+!/~;,^,.' ^`^ ^,''''`,-^~;*!+)<L</+Y<jjlc7Yj]==Y71T77t}it}ChCsyVFhUXSkSeSk3XeKeAAS5A4GSHoZGSHD9dQ6QD9R@NN@6@@d9Qd@MBNB5@D&k@EBSB@O6B&Q@R@M&@dES@G@
u3Sh%PDSPeKo9DSMA&EGdEQO9dF&R$9d$QRREE&dRO9QE63BP6@X&N$BAdH$$5SUtnY]|+_(,;^` -'`^"-`-'-`"',,;"!!)>[[_1|Yi[+==7}7Y1171fi}isnsfCzFFykkoUKkSSZSeeHZSAPAZSG5eXGGAzDDDdEQd9W&MMBWF#E@$QMG#RR#9M$#@O#N@@W5@FRM56E#@Z6&RM@$WR
{e4h4O$yZHESAdZ&H#EGE5$D5$S&dR@XQRS&9dE3ddNEW94&@d@%$EeB@XEE$SDGZkz1T<><;*:~:"":-",,'.,.~";~*"r>rc:}|i<Yj>j==jzL77fJJnC{ouUFoyoXwXXUP%KZePGAGeSH%K3KeXKP5eZ$dSUWHRNENEGW@E&@KM$Md#ERdWW5@W6@&OZENEdM&9dWNNdRMK@A@6SH@@
V3UAoeeKVEHHkEG&S$eAE$QKO9HR$EBHAOEQOAO4DEWQR&E9EWRUNd$M6DMEEQ5A$H5hu=T1(<*;_"(;!;!~~"~,^!~+|"L+[]<[]>c[L<}7t}ftfuxysysoKowU3wSH44SkSPPGUA45ASAeKH5SZ%5%AeRODAXRRR6QE@EB@9@E@MQ$M@D9WdW#@$@M@N9OMA@dW@BNDQRD@O6WBE@E&@
%VDK$hddhKHQ%EDDDd3DE$Ed$SRdDMEAEO5G5$5S9dW$AQQNA@wARQ$$R#D9dO$5E5DQ{EkffYl<c*+)/+^|/)(/||+][)[LLY+=L7jji1nxszoCyzhhsU%w44UUSkSk43%eSHKAZHXeGHe45HASOX$O$e9EXEU9e&EdDM9R#Q@P&WRdRMBMB&NO@W@QWB#&A@W@@@@@NW99S&3@N$GZ9B
XeS3EOkQASH5X6KRE&VEEEdD9QN@XNREEM65Ad3@9E66BOANM@WSNQW$966EN$EDEDRMkdOXkfVJ1iL1[)*j[[]]]Y=c=7Y=iiTfui}ftnzzkhhw4kSSPZPeHZXXZKhZHPeDXGXeeP45ZPGQ5GdEPEK$6Q6HGNkMEZ65W@KBB#E96RR#BBMMNQ@@@@@@6@@#@D9@@E@@WZ96N&E@AHWoQB
XDeK9E{AAdKASRzH$OE5RAEQ6MW6GH$Q$NZd$EEERE9#&DM&5MWhMEMEN$MQRE6OE$RE4d9O4kXosCuznTc111nT}JtJ7xfuVs{V{CFohFUkVVyh4SeXAPPSXPGPeKSFZ3%eZ3eGeZHXGZDK$ORDXOd$&5OEG64MR$dO9DAMEEd&&&&RB&@B#d&6M@B@Q@@D@D&9@&6&N@NBE6BR@eBMX@
sHXXSEyEHePPE9XH59&M6HW9EOD@eEW@#MS&DdQEQ96@W#@@R99DNN&DMNN&M$#EQE9N%OE5GdS$PhPoo%SoFhyh%kUkFVFkh34z4SkS4k%4S{KV4U4XXhwPS5HeXoeKZeKPyKePZGA5eEHNOE9RRP$d6EE9od5R5AHeAGEQo699QPBNB9W@#6BEBQ@@66#9#RER@#NBM6G@H#6E@HSW&@
eUeZGEw4G5SSEHXGQAOSREGROOEQ@@E6@NG&M$EEOQEdBW9W@6&9NGB$M&RN#HREEX9NPDDHG5DQO1EZsdZUzeP%PXUS%X3GxXXSFXwXXkUFPF3XXGZ4PeoG4GeKPS$Z3HGZAk$AAKED$5OEP&G$RZO$$SED4Qz&OHZEP&Q5SRSQE5M$EWRNE$&Md6#$NMWR@9E&E@QWQQMR6AQ&5E@&@o
$UO4GdRh55EeAREXDDWK#3&E9$D$BN@NNW&B9dAE5NM&9R@@M@6Q@9QERN@6#MER6$OB5Q6XQE5$&Gd6y$d$xGHUESZAUAKHF$5ZUGGSGDZSAASeXGSPeXOSDOEAXAU&PEdZ&SKDXNRGQ4M4E$9k9$5eN%$REDPPQOkESdGdP9&NdNEEQE&RK@56QEQWN@N@dBRE@@9@QQB@$M$RdB@GM&
GUKPFeGXDZ$&E9A6ZHQRQ$@MU95NW9QEwSE$@6QMMEBWD6&N@W@@N@@EBM@3BWd6MM6$BMWw9$59G&UBSE&&HA5DOoE5eDAH%dQ9yDkEGSZ$GKOGoA4$UDdH3EXQQZX9HdRDZ6URz@QEEDdXE$dOAGdXDQGR$w5kEE5Zd5GOd5EREO&w6EEdKWE$ED##&MQN#@@9#N6@#@@WB&#P@@EdOW

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#M6RE$E@@@@@@@@@@@@@#########@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BEEQR9&6MMW#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BB@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BWB@@@@@@W&Ed$$$$E&W#@@@@BBMN&REd$DENWBWM6&9RRRQQR9&&&9REE96W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###B#@@@@@@#BNdDDDDDDDD$dEQR96NNQd$$DO5ZKSKeZHA5ODO55AHHHGZZZZZGGHA55AGeeH$RW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@##B9$OOOOOOOOD9WBB####Bd$$DDO5ZSSSSSSSSSPPSSSSSSSSSSSSSSSSSSSSSSSSSSSKA&@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@##B&$OOOOOOOOOD&BBBBBBBB6DOOOO55HSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSK56@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##NdO555555555O&BBBBBBBBBEAAHGeKPSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSP56@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#B9DOOOOO555AGG9BBBBBBBBBBOKSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSXXXXXXXXX33SS33XXXXXX3SH@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#WEDDDDDDDOOOOD&WWWWWWBBBBNOAZSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS3XXXXXXXXXX3SS3XXXXXXXX3PE@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Nd$$$$$$DDDDDDRWWWWWWWWWWW9O55GPSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSXXXXXXXXXXXX333XXXXXXXX3SHM@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&d$$$$$$$$$$$$QWWWWWWWWWWWWEOO55AKSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS3XXXXXXXXXXXXX33XXXXXXX3SSP$@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BRdddd$$$$$$$$$EMWWWWMNN6&&9R$DOOO55GPSSSSSSSSSSSS333333X4444XXXXXXXX33XXXXXXXXXXXXXXXXXXXXXXX33SSSQ@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MREdddddddddddddddEEEEdddd$$$$$$DDDOOO55GPSSSSSS33XXX4U%kohFVyzzsCCCCszyyyVFokU4XXXXXXXXXXXXXXXXXXXX3SSKB@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@5@@@@@@@@@@@#WMNEEEEEEEEEEEEddddddEEEEEEEEEEEd$$DDDDOOO55AKSSSS34%kohFVyzCxnT17=jL[<>)r(]=fF3ZA5dR66&96MMMM65P33XXXX3SSSSA@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@9Z@@@@@@@@@@@@@@@@@@@@@BM&9EEEEEEEEQ9NMMMMMN69E$$$DDDOOOO55APSS3Xo{{u{xxfJ7Y][Y1}CVSO$@@@@@@@@@@@@@@@@@@@@@@@@@KSSSSSSSSSSSSQ@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#BWWM&d$$$$DDDOOOO55ASS34s>!jyXG$RW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PSSSSSSSSSSSZ$@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@W@@@@@@@@@####BBWWWWBBWWWWWWWBB#@@@@@@@@@@@@BM9d$$$$DDDDOOOO55PS3Xu'  G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ESSSSSSSSSSSPHE@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###BBBBWWMN&MMMMMMMN6NMMMMMMMWWWWWWWWW@@BW&Ed$$$$$$DDDOOO5AZSU}   O@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KSSSSSSSSSSSPAE@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BWWWWMN&REEdERRQEEEEEEEEEEEEQQRR9&&66NM@@@WNEdd$$$$$$$DDDDOO5A%1  .#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ESSSSSSSSSSSSKOE@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@N6&RQEdd$$$$$dddd$$$$$$$$$$ddddddddEEEE6@@WM&EEddd$$$$$$$DDDOAh7[~7@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ESSSSSSSSSSSSSAOE@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@DOD#@Wdd$$$DDDOO$$$DDDDDDDDDDDD$$$$$$$$$$ddQ@@BWM6EEdddd$$$$$$dEE5ouCyO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@KSSSSSSSSSSSSSSe5D9@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@O5O$W@MDOOO5AHHOOOOOO55555OOOOOOODDDDD$$$$&@@BWWMNRE9#@@@@@@@@@@#4kUX@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@9PSSSSSSSSSSSSSSSP5DE@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@QOOODM@6HePSSPZZeeKPPPPPKeeGGHA555OOODR@@@@@#BBWMB@@@@BM69996N@@@3SPAOR@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B5PSSSSSSSSSSSSSSSSSSA$d@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&DOO$M@NEHPSSSSSSSSSSSSSSSSSSPPKe$@@@@@@@@##BW@@@W$$$ddddEEEQ@@NHA555ODN@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@EKSSSSSSSSSSSSSSSSSSSSSZ$d6@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@W$ODD$EM##BM&EHSSSSSSSSSSSSSK9@@@@@@@@@@##B@@@9DD$$$$$$ddddQ@@d5OOOOOOO$W@@@@@@@@@@@@@@@@@@@@@@MRdAKSSSSSSSeAHGZKPSSSSSSSSSSK$EN@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BM9QEEEEE9W@#WM&EOGPXKE@@@@@@@@@@@@@@#@@@dOOODDDD$$$$$$dR@@DOOOODDDDDDdW@@@@@@@@@@@@WNRE$55HGZeKKSSSSSKH55555AGGGGZeeeeKKDRW@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##BWN&9QEEEQ6W@#@@@@@@@@@@@@@@@@@@@GGA55OOOODDD$$$$$6@BODDDDDDD$$$$$9@@BM&Qd$DDDDOOOOOOO55555AAHHA5OOOOOOOO555555555QMB@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WNB@@@@@@@@@@@@@@@@@NS3SSPZA55OOODDD$$$$@@QDDD$$$$$$$ddddd$$$$$$$$$$$DDDDDDDOOOOOOOOO5DDDDDDOOOOOOOOOODNB@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Xyh%43SKA55OOODDDD$$$$@@$$$$$dddEEEEEEdddddddd$$$$$$$$$$$DDDDDDDDOOD$$$DDDDDDDDDDDDdW@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@1]7nV4SSH55OOODDDDDDDD$d@@dEER&&&9RQQEEEEEEEEEEddddddd$$$$$$$$$$$$$D$$$$$$$$$$$$$$$$R@@@@@####
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###@@@@@@MMMMMMMMMMMMN66&&RRQEEEEEEEEddddddd$$$$$$$$$$$$$$$$$$$$$$M@@@@#####
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@###BBBBBBBBBBBBBB###@@@@BWWWWWWWWWWWWMMMMMMMMMNN6&9RREEEEEEEdddddddddddEQRR9&6NNM#@@@@BBBBBB
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@########BBBBWWWWWWWWWWWWWWWWWWWWWWMMMMMMNN6&9RREEEEEER&NB#@@@#####@@@@@BBBBBBB
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#######BBBBBBBBBBBBBWWWWWWWWWWWWWWWWWWMMMMMMMNN#@@@@@@@@@@@@@@@@@@#BBBBBBB
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@########BBBBBBBBBBBBBBBBBBBBBBBBBBBWWWWWWWWW@@@@@@@@@@@@@@@@@@@#WWWWWWWW
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@############BBBBBBBBBBBBB########BBBBBB#@@@@@@@@@@@@@@@@@@#WWWWWWWWW
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#######################@@#########@@@@@@@@@@@@@@@@@@@WWWWWWWWWWW
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@########@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BWWWWWWWWWWWW
#########@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MMMMMMMMMMMMMM
###########@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#N&QdDOHZePSSSSSSSSSSPZH5dQ&W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MN66&&9RRREEEEEE
#############@@@@@@@@@@@@@@@@@@@@@@@@99@@EDOAAGZePSSSSSSSSSSSSSSSSSSSSSSSSPKZZAO$EER&NMB@@@@@@@@@@@#########@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&EEEEEEEEEEEEEEEEEE
############BB#@@@@@@@@@@@@@@@@@@@@M$$$$EQQQE$$$DOOAHZKPSSSSSSPKKKeeZGGHA55OOOOODDDD$$$$$$d@@@@######@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WEEEEEEEEEEEEEEEdddddd
##BBBBBBBBBBBBBBB@@@@@@@@@@@@@@@@@@N$$$$$$$$E9NN69QE$$DDOOA5555OOOOdN@@@@@@##BBWWMEddddEEEER@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@9EEEEEdddddddddddddddddd
BBBBBBBBBBBBBBBBBBBB@@@@@@@@@@@@@@@@N$DD$$$$$RWBBBBB#@@#W&REd$$$$$$@@WWWWWWWBBBB##@@9&6NMMWWWB#@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MEddddddddddddddddddddddddd
BBBBBBBBBBBBBBBBBBBBBB#@@@@@@@@@@@@@@@6$D$$$EWBBBBBWBB#@@@@@@@@@@@@@@#BBWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Rdddddddddddddddddddddddddddd
BBBBBBBBBBBBBBBBBBBBBBBBWB@@@@@@@@@@@@@@N$$$MWWWWWWWWWWWWWWWWWWWWWW#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&Edddddddddddddddddddddddddd$$$$$
BBBBBBBBBBBBBBBBWWWWWWWWWWWWWB@@@@@@@@@@@@WNWWWWWWWWWWWWWWWWWWWWWWW#@@@@@@@@@@@@@@@@WMMMMWWWBB#####@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NEdddddddddddddddddddd$$$$$$$$$$$$$$$
BBBBBBBWWWWWWWWWWWWWWWWWWWWWWWWWWW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WWWWWWB#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@W&Eddddddddddddddd$$$$$$$$$$$$$$$$$$$$$$$$
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWB#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NEddddddddddddddd$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMW@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BM69Eddddddddddd$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMM6&9RQQQRR966WBBBN9QEEEEERM@@@@@@@@@@@@@@6EdddddEQQREddddddddddddddddd$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
WWWWWWWWWWWWWWWWWWWWWWWWWWWWMMMMMMMMMMMMMMMN&9RQEEEEEEEEEEEEEEEEEEEEEEEEdddddddddddddddddddddddddddddddddddddddd$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
The Kernel crashed while executing code in the the current cell or a previous cell. Please review the code in the cell(s) to identify a possible cause of the failure. Click <a href='https://aka.ms/vscodeJupyterKernelCrash'>here</a> for more info. View Jupyter <a href='command:jupyter.viewOutput'>log</a> for further details.