From 85c9e7dcbb055268eafec7b0c49a34e5ab8e88af Mon Sep 17 00:00:00 2001 From: Naima e Bogran Date: Tue, 7 Oct 2025 23:48:21 -0400 Subject: [PATCH 1/4] files added --- css/normalize.css | 349 ++++++++++++++++++++++++++++++++++++++++++++++ css/reset.css | 94 +++++++++++++ css/style.css | 21 +++ index.html | 11 ++ js/main.js | 0 5 files changed, 475 insertions(+) create mode 100644 css/normalize.css create mode 100644 css/reset.css create mode 100644 css/style.css create mode 100644 index.html create mode 100644 js/main.js diff --git a/css/normalize.css b/css/normalize.css new file mode 100644 index 0000000..192eb9c --- /dev/null +++ b/css/normalize.css @@ -0,0 +1,349 @@ +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ + +/* Document + ========================================================================== */ + +/** + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in iOS. + */ + +html { + line-height: 1.15; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/* Sections + ========================================================================== */ + +/** + * Remove the margin in all browsers. + */ + +body { + margin: 0; +} + +/** + * Render the `main` element consistently in IE. + */ + +main { + display: block; +} + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/* Grouping content + ========================================================================== */ + +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ + +hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +pre { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Remove the gray background on active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * 1. Remove the bottom border in Chrome 57- + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ + +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ +} + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ + +b, +strong { + font-weight: bolder; +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +code, +kbd, +samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/** + * Add the correct font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove the border on images inside links in IE 10. + */ + +img { + border-style: none; +} + +/* Forms + ========================================================================== */ + +/** + * 1. Change the font styles in all browsers. + * 2. Remove the margin in Firefox and Safari. + */ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ +} + +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ + +button, +input { /* 1 */ + overflow: visible; +} + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ + +button, +select { /* 1 */ + text-transform: none; +} + +/** + * Correct the inability to style clickable types in iOS and Safari. + */ + +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} + +/** + * Remove the inner border and padding in Firefox. + */ + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +/** + * Restore the focus styles unset by the previous rule. + */ + +button:-moz-focusring, +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; +} + +/** + * Correct the padding in Firefox. + */ + +fieldset { + padding: 0.35em 0.75em 0.625em; +} + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ + +legend { + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ +} + +/** + * Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ + +progress { + vertical-align: baseline; +} + +/** + * Remove the default vertical scrollbar in IE 10+. + */ + +textarea { + overflow: auto; +} + +/** + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. + */ + +[type="checkbox"], +[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ + +[type="search"] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ +} + +/** + * Remove the inner padding in Chrome and Safari on macOS. + */ + +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ + +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ +} + +/* Interactive + ========================================================================== */ + +/* + * Add the correct display in Edge, IE 10+, and Firefox. + */ + +details { + display: block; +} + +/* + * Add the correct display in all browsers. + */ + +summary { + display: list-item; +} + +/* Misc + ========================================================================== */ + +/** + * Add the correct display in IE 10+. + */ + +template { + display: none; +} + +/** + * Add the correct display in IE 10. + */ + +[hidden] { + display: none; +} diff --git a/css/reset.css b/css/reset.css new file mode 100644 index 0000000..211ccba --- /dev/null +++ b/css/reset.css @@ -0,0 +1,94 @@ +/* http://meyerweb.com/eric/tools/css/reset/ + v2.0 | 20110126 + License: none (public domain) +*/ +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td, +article, aside, canvas, details, embed, +figure, figcaption, footer, header, hgroup, +menu, nav, output, ruby, section, summary, +time, mark, audio, video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; +} +/* HTML5 display-role reset for older browsers */ +article, aside, details, figcaption, figure, +footer, header, hgroup, menu, nav, section { + display: block; +} +body { + line-height: 1; +} +ol, ul { + list-style: none; +} +blockquote, q { + quotes: none; +} +blockquote:before, blockquote:after, +q:before, q:after { + content: ''; + content: none; +} +table { + border-collapse: collapse; + border-spacing: 0; +} +/* http://meyerweb.com/eric/tools/css/reset/ + v2.0 | 20110126 + License: none (public domain) +*/ +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td, +article, aside, canvas, details, embed, +figure, figcaption, footer, header, hgroup, +menu, nav, output, ruby, section, summary, +time, mark, audio, video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; +} +/* HTML5 display-role reset for older browsers */ +article, aside, details, figcaption, figure, +footer, header, hgroup, menu, nav, section { + display: block; +} +body { + line-height: 1; +} +ol, ul { + list-style: none; +} +blockquote, q { + quotes: none; +} +blockquote:before, blockquote:after, +q:before, q:after { + content: ''; + content: none; +} +table { + border-collapse: collapse; + border-spacing: 0; +} diff --git a/css/style.css b/css/style.css new file mode 100644 index 0000000..080cef7 --- /dev/null +++ b/css/style.css @@ -0,0 +1,21 @@ +/****************************************** +/* CSS +/*******************************************/ + +/* Box Model Hack */ +*{ + box-sizing: border-box; +} + +/****************************************** +/* LAYOUT +/*******************************************/ +img{ + display: block; + margin: 0 auto; +} + + +/****************************************** +/* ADDITIONAL STYLES +/*******************************************/ diff --git a/index.html b/index.html new file mode 100644 index 0000000..927cc00 --- /dev/null +++ b/index.html @@ -0,0 +1,11 @@ + + + + + + Dog Finder + + + + + \ No newline at end of file diff --git a/js/main.js b/js/main.js new file mode 100644 index 0000000..e69de29 From 5ba365f8ada953e30954143473f096f5f7536364 Mon Sep 17 00:00:00 2001 From: Naima e Bogran Date: Wed, 8 Oct 2025 22:52:01 -0400 Subject: [PATCH 2/4] complete --- css/style.css | 22 ++++++++++++++++ img/background.jpg | Bin 0 -> 32305 bytes index.html | 20 +++++++++++++- js/main.js | 64 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 105 insertions(+), 1 deletion(-) create mode 100644 img/background.jpg diff --git a/css/style.css b/css/style.css index 080cef7..c41154c 100644 --- a/css/style.css +++ b/css/style.css @@ -19,3 +19,25 @@ img{ /****************************************** /* ADDITIONAL STYLES /*******************************************/ +body{ + text-align: center; +} +h1{ + margin-top: 50px; + font-size: 50px; + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; +} +body{ + background-image: url("/week-7/complex-api-bootcamp/img/background.jpg"); +} + +#results{ + background-color: rgb(75, 124, 174); + margin-right: 50px; + margin-left: 50px; +} +h1, h2, h3{ + margin-right: 200px; + margin-left: 200px; + background-color: rgb(75, 124, 174); +} diff --git a/img/background.jpg b/img/background.jpg new file mode 100644 index 0000000000000000000000000000000000000000..200729270e17b7c353aa484a552e31f084d5951b GIT binary patch literal 32305 zcmbrkbCBlj7ykLQji+tfwx?~|wr$(CZF6SYwrx(^?w+0ZySu-t{d>=yq*9ei>Qv>< zC+E7({deu}9spTdTuK}O0s;Vl{2PG3n}ARN*#83jUqJj9P*9MNP*8BtF#iS|5Dp&h z-v&fNK|=hu?cVB-){kdRO?(K87MsDk|eeZb!V01z4^4TKmB1PA~Hf`9=* z{tf}~|4R_+zf}KEfPjHRKte%-!u;I;K>y!Y-nG5nk~Va5Ap_UFN_K+<`MhQP(j1cx z1bMncyh&wdJ-q#zQotZOY{zK)#!_wSa957ycGku4ZOXhC2wq!^?D=Z*$ehep8=`Br z^CO*?6{MD?YKmOazfN?*w`ZB?(r;C#E0Q(6bQ&%ArxH!D#S{9xoeyl{SQG8}ZNkiT z4g|!^Hs&QC?3Q>!>KRF9gDv$FXN7G~uhRlobC)-n_$3B0mo@F*PUEx3M&M@i=u^Zl z#t8CV1-bno1M$`s<}sN_BhAK^#dAj4ZusH^OsTcCYaD`%45AjPKkIa@wwUsC3=-CU zTYbUKs$4J7(+W=I?`;q8tuGLSsp*l^DmgVQz??_vW7+5Z5%CS?LhQ@BE|>v6B%ISb zR(5Gyok*x^ai)Uuap$<%0y}hJ+R)u2W#(7uM=+-G#TFO?nBF@|fQ#4y0VNI}${5pv zflpDmsoiM&z8`<$mL!sz>5r31E1%u$2pMI!bnqn7&Fyt>iOXz%!5?46w2u(F{EqC$ z2kC4`a3LGS4wpxi?6Qx2j2#!E@l$zKnb%W8C6>a46o!VUsi8%8vHVFId`g{`A?vS` zQm-da;MG2N@E0H`kY}A255n=ge)zcd_4KSFO(KixVWs5?i{Hy;MrHG7+a|8x#RNxA zwM8Tr6yr1gEfnX8jDafPKrdE4~0p*Z;Xgr$*MmgML?7Aa{)Hz9FReW03% zZXxBWLQ_P88`=-8GrOYJW+rq_93E7?Ef<#NoIX|A9D8vD%wInPy}NXdOZs{WN<+Oq zJhix1pH7Q@PWZ*U*JpL85N8|Dfb_3FM$bD z0t35b>yD(;IX-L&bXW9M0C9^drudAFRpbR+^+!_69t^^~yxHboA^_RS0{eRa93t}! zzm31wsoi7>#dO6zDuZGhAaqBLSrb%sc8_bJIP`&*p_*(Gk!SxyBkbGCEY-z! z5GrE7tA^b)zxvi?GN3xNO9;+k>Mx+|g;jFjk5dWc8bPg%*d|Z6z@xMsK!?}y%iW1$ zT;LBElb%JeYrWRM7f3g-zW81oMA+ak>b-!C^x>h--O?!cW##NXO+p!jK;+DKIpMsP zuqKza(K{X1pJzkoa>Utkbeuq88DIRqL)_ zVyv?F8S|0|UT%|(Tgjckpec>7zX0ey_Hx|b!XfUM8WyN{ml2Ni{kPTi9xCsZHK-q; zJnBy^8-%9jz`)@*(uQVCHhaE>lnfXCNABds*5^;KB!->jA-g3?4$gGEqD(EL3vtY0QuT3%~Fu^*UhshUu){nc*#q_f8fRi z0f2&m{C~j>`ag3258I%~|9Ji<@Yyq?#q5umNF zUKN)fW1tW?!D_jTkS73_Af9`swl=t^aylrWrw#t$bckGj+Cu4$#Uc++9hM&YvExY! zhs97|51p57l2O(`NiB1>oc}2f~zBsZX{{{F{i!3pGRluEuH(*^J@``D*Gjts7r?EtO;+yszEFKG2JM zNE)l|2al@TqbhfdM{X3FRs?QpMvsq%g5l`g_Y?a2zS1D?TwUQpXeET8rJ4dF1PUde zS@G48 z{0lnKi$(ytVz=SE2-}ELY>;N*u&Aq~HWh7o+#){&o^h?W>+HHG{Sqh)$W*RSuk<9b-BO^2G``Kt}C>i;egu{1gQELL89P@-hZ828y4k$I{HP=F2}(n&&2iGD*?bc0>gbX1_AFzZ zyGD{(uVb%?HL-F4I5BPvG?SAt$5D(BgtU4fgz66$v=V52@Mk3v0ED_tYk0RcI)11< zoA0DIUpRGT{nBfwyQxBvJ~y$0CYeTleF)FjEGm2X#smE}11tc^>*#Hd;9}B63yLhm zAxF5EUI<<-J;t4@3i4A4gl+tTkv7&2fWC?#3jiM)@aa0!s~3e9SqJ=}ZUvy!@4>Yi zhXz8=BVd4=5>e^~DdF0I$TN@vruDnv)D6kaXH1|^OU&Yi$g?Kq0HFG(10a5xYcSO7 zO6(}PD;EF&n4%N68r2`HR$s5w-AhNUqN96Ot6(VqPP|B z<;X7!&RD3@{s|c2awvza+?dtW7XbyhMY_Ojte(%<)7l4D0RHy3l8jP%*K?& zDpo^x4Wyke?*olpwFXeh{K)9O^O~p(KLLb`Cem$?0hF@8q+H2o;2&B6^XcNbeV~S* zD#C;cvq$ZL^uM_=73MvwKx~Qqlnh~#u9c>sW#Q;t!TY>-jlVoLUIO@~*4R|otvC)B-y6k*uVDG)$n_JXSG}a(3secO+j6Lilv(NXfdjsHshy_s#+StqML71 z^yx8b>%;- zjxjdvdfqh^f}AHvtsG%tk&x&aI$>rPAo!Jx|F%f&9-;E9|CoiCJ>W;G;Wj$gh*i$b zWGtQ;$}~3+yDwWl*JW)SB@$o$rr;DoOa~cVccv~F>-GxZx&hXn+G6o%*;iO1W1Z-- zDzsQmOsSj>aQZtKgn2kZe8v^6*uI$yii!vjlj>%Wp0w=d{r-!Q91kBl$7h}Ip@7qq zxN3;tJ3=rY>t)5RhHo9P8EKMU5#JF~2GBzsg`+B`8V6B5;u?p{>+yZ0#O?zzNf1^j z=z`SRVWaDO-?uRS%^Ulm4>H|h3G2i?GAYD;VHb!xDSm(fG}R%cAjO!=dy7N?aI4#A zN?-1U^RK$pkR^2=PvR90sP-VgbKak0#dP}>(B_t}bi5OAl4$X2o*QyCfA{{FSmEmy zYcny99oW!qu^wzE1ya?VOS+zg;6NUO6XpAqKF{W1iuJ)Ohb7{(+HGt|UIt4yQ| zy#zw|E&!0HC$HC7A@TSCEAZ~^0`^z{r+jW80Q}Y=(5#{Y4R%~ZtZ%-zYxV#DK#XHT zE8z-6o|F)u@-aMKI$4P#0_6}_f=Vz3gd-*jj~6k8MaJ81{}2eo=Lq6L03jh|x?-`7 zIjxUmrjSPslFt+uQf*M|bI4tgW(Cl;Go*-GE&_{!F$iL@Wx4<)@d3)p$wFDps^%t; zDKNtT@`=kKR7)@q6+$u)hcxU!7|Y@+3}H-bPZE#-kBD5r?$)W35JE?8)5AM6hb!ls zXg^yYsGh%?A!M)E#K9O@wtStyHRi1bxm=os&mWeri6OmTWoHN%H;7lihnF>CgzwPD` z?;6glO-y7|pnx2J!}BYEHYpJO_-sJutxuZeA2OJb0idA&sa0?gFo^%vC;#dca0mc0 z5CxS8jhG1%omrTKl#B&~T*%0YRq6i`nIO=hJI1gS zHF?@LN>`)t<{S0fBuEt-a`o50UgPsbha|%FHyU(F;lZTZ@+f~|NlA)b(ERSxG`d87 zR8Q<9qhor~&y&v6OP~vTGD+Fu;U?5nhWIJ#RC#_l{F;qHoO>{xN;jd`3w%G60M6VD z%{9`+8Ox>Cy6bgUm-ZG;sD8Qrz{zH(ZOyKG&ANM!-{a_8SzU}}xPx)H;esDfgfv?e8oaBXy>LmdcF#+ctmwmv`o+E)q#E+@*LS zrw!AztI`cCRqQ_QAEtRwZmf1$vem1vAGU?-jj{ORjD0w*HZjik`1G03&jDL%sMKKn z(arYoDtowWh0l4`&ekXM zC+*l}F<;lIOOKKQ8iDwhE{1A@@)^UfvNL=1F(sMxm%t(P&2lX|`X(WKn7d{JaSO=Vq3Y@($TyuVtV5p@s9IBxQ1Ak|}#Y0Pr z0$u2`80UL+mHXipPrTRjU%+;Y+MDDio?2VBdO`58>4t$_TXk{qJ8CaZWIP|i&H&D~ z^7yuk_oU_FGw_CY-Ke}r6P|8`Kk*=fH?sq9o386a!k=Kd@5~m$QA0>jAEXK^jQ4Fz4N(WL%dHe|F z5Czv#K@5TCMS3dNWpCYC$gP>%dj#<^_3%0ubA>7)BmVcK%u>!Hoc7zZQu-xamREf4qN`T65 z5EcA28+@;db3JB9_{@y2qi`BfwT=p{>L;-Cp{w(7H8P}o<<=M-$FF1o0Yh(M`=SKL z7)}`n^>ganoOF=kRt`$^5PvX5-y`Z!Sw#TT5zKy)5GyKMgWT?Z++>t2NOyBsUSOc> zquoHd!;BdDr`~H(%o$9tYBXAbn4+Qa}@Ivw8Efw<5uO;3?~bW zfsX2v;9o%gi#@uPB12wMmo6T!#fS{X4)t>5PWWQ23y(Rx=~0AnV|R8R~J$Bx+f?)cQ} z^kM>+ar}Q`ysQ=}7Xc~9tN2{rp)fV8m6Ru^$8~oa>1yQdqzW-(i!yFC_~= zXiy|EFimu$l6}=3{*vhlPGjf}l6gIRXy~_j5ctrmIN$eG{r4(~1PGEFv}cDRg-oN; zZMAIZirW%f>-Wwvnz*^{u}*(1ejIKV1ap0bTJ{n+;awE|biV%~T8;&W?oxJOKIFl$ zT-zOe712Kmti+lhCBTMHcDluPy%zi3c^iDdKJ^BFS9$*BT9CLufxUPyb#74rf7Q0p zvmhwXB1^b>XhCzlW*eN{!GP7%&QC7Et9hBX%0~7y+kul{xvFYs^edFTyDa19vm0jW zC?RcAtHJ83L<6Q{>h`^Yo%dGN3Zwh6Lyh!e8hAE(d^MQ@59eA~n04_)#)wu2@5#wa zSx{}FolVFpDg=;upLKZ@72;#(s-+pg7aM>cR6i&jSvP+??6^%7% z6*`R#uh7t{N-ZpTjqBrqRNrG-?ObycUM-Og)VGD5yc(BwNK30!4R`3S@N1^rm`|X{ zu6|+er0kuINob=^wDr~KXz@e71P^>R#q5GOjH=B8+CRO%`D{WCRSw^tmu>BMELIvq zDR-5f4z}v~;nNDjYL@?u4bmO$Z zk_O`-;;PpwU{OMM+w zpKJ(HT@uaI@}C8=pRFqXy!8DA$os>s%b=z{zK^mel$Mx}+E?eo@TGM&)0OF$HHuY{ z*`-wvOkt|C0=-*Aw7TH2kf(dg$I&C_gBu~MbRCpOtAujjj)^RfgtO~XYOh5<>5mC8 z@HbV`j2wqKyEX*2ySvaw{dcf>o5OCr6fyA;>SXP>E^HRnFTh^&1nnj!M%u;8D!+ME zr&vni&&!s#qW;{!7gILrK1rv|RNA?M)WL$Sh+Q=(OWFHfuhTzOu6uW>;f$(@L6uh$ zl&Da#UaiE@ZA_c#X#7i*BvZ0xyo=_%Y5n#+*Rx5pJYSIb^8;7o-G8ZZhU4^V`_Exu=MNK0Xql|)!~#eM$G`DCd4D_fWq}>xnw$J8JK}-k>^9pR&S_X`(=BxtIJ0a!9NjQPiw2edS zk`y*p{am8V7@DS8@#*>vq(ph1pG(D|>9G)jLK^SOCo0$)ber>Mwi)#%!`*oU_GfNIL68hsjdWy75?S>ek^nu$2sQK`c^Y3x>~o3UA( zFJC@~ClW1=#A&sGo%3YEK+mrP!G^EROso_6zV{0RH?GVIeae5>6{}7M!_W30s{{D~ zkoEi3h9em4dBD!Ef|D<(??A1M7sZNA-c9vhIH$YKE<445+*q zv<7oCfKr;!(F6XA*QMM~u(u_NhqYcoNH3I6-;1Vsi;glvHzA)Vg(&FEF%0fS_3?W4 ze_}`QpV;|lh=9R@!hk}8{nteU0R@7g0En4Ug_XdOiAb1OM2wt*NR!Z5g_Mn*i<;(t z^phzDC-2{?4BQp}KiUUI5cG6zzbAoab2Zir|24{5<2pCi0?!ABUWo>bZLm)xEBEz) z;Q|#$2K$l%+4jru@PZ@Qj~?ThXrM0ZCM2PDW71oj^zn>kiybv{)F5S%Y{da2ZpX8+ zEdEhX+q=W+imP^$CW1%l26YfEjbVkyur*T+_fC4y&@BQHdQoX%wMY!TU-SqC9Q+45X%Id}n>a;DQ&=fD+uKZLm6>##dX4Q+v=Wf)dJ>$uYvt~sb?9;B zn76S|rAU=y>DTZT3z2J29{>r4IXafwHn)m*a$n=J1Oiy;lTgjc@3rkAF@jFOrN=TY~? z#6G=tqWSiG-A=bvI{F);L89(FoAXbBiDa9A`oPLIu`$vlzP`fv<*Up=?)#3uW_box z7;`3pUL5#F3a6`tz%+3!{JHkY^CBptkV&If)%Zig&wTR1l;u}hUujN%v)wiLa%U!C zJVcav7LR1#S!0SJdV#m16UCt2>ee>$#W zYSmR5Vmy8`P+OY|$9xJYNJpBM!c6aHB1p$iNzt#y*$tpo=egq9&G6r4HzwUIt`2zO zIdBN>S7!yh-nN&NE6)G@Gk&Q94KsJ6?G$e^LSPQ<-JTp8(WXs)hjDfPYr%4!NPIx2QfN;XIwl79&w(M5K{AFTwZ3DcQm;uI9Z%Ld11Qm$oZla|^K zh3OXC!kj!hTRzM!RpUmJPfJSc+jMKG;#s-4S}7l}tE=2vABbu>LBW>4<%&gxlafwD zF8nI{jQ;0J;CR5>4S}BL zHdu~kTh(OWPvRm0c`;~*7d_D*UF~BcpmW%?dtD>9nvsxn$V5IpRzL#%-1kmtC(CM` z;HDQ(Mcd>y@(+KlI;P+zK(9kxJSe@x;&kmszaa_7Fv!JMZP#O$;5QxHU%;$L{z92l zpje?my5VoUmxBf{Jhpb;bM1KLhD$%Nc5c0|gpW^t>&i<|Lm~rVhcb;tTpjGkBTMSbX zuQOj~`MF`zL$D2{fm+GBX8LEf+>_-1C5OZ7OQ++z!X1n00RF)StBa;OXadbm#tCV} z5l~b|1E!$y%`CsLZY{41e#T>^UkBPErN+=YV?+9}FY>zqPl2GX**QhEjVI)nshQP& zLdf_Z{x+hgb9}d#RWv)Z1(={zs|w-DHkvdmWmiyW9?44+ON8Qr$gD-Qb;v2|&XW{HV=u^QJiV`eTCN<&#NAMGjGGmif?w*xTT|7x<$o811ID0vt&=E8SlZH(f z804|Z3ifcUFRI2_<&OudiEdNK64u^o5%a@3!%T^8-7x!tMo@dxtf%oWg9&5cNSmcr zmzHXxPT);>t_zg#*g7Ii6hoQA&hqPO$ruX+K0Wtm1V$XhmXE`FG>h5pG15Ic>2Dw8 z;9XCavpC933OH(P4kmMfS4zkz6b#H<$FQjy9JM_4gAwV11Ih-~%3ZxVj#!3MGczXg zO}UL>X;B*>^&k?3_O!>nkAH}5rc{F{wy3pJ{mDyh>;u}_c-%#7aSRt}p4@GVNEX2( zdH-QX)q|OW`BPxeF%;jAl(OjxU^D>579zwY2 z=@>w$@p$H}ox|~7Tz;@q;(B=C9KuT=pH0L&{{4D%5`8(dC{V(8q*1`Bfq>_@EAAQ@ z-<3~^3QfxI?G40ofp$pR-xkoc`HgHR+`$zBT(C`>guYGN;WE0WNU{@+k+nZuM{ICO zmDske*aWvjrHuQ;@*?mq07>xtnYj9h46~_5;e}elPAn_RS1A^-vr(Ahj<+w_qP0 zE>%)wQ{0Vsz-yG|mgn$`lbfO}R!xF(q%N1N7HPkeed#qZm*%QKBmNGs6FCTb394mU zGN$^XAGe78=rD_x9%r$~lsd2oSg#H@`wQrDx=P$ehB2Pwf?2#o@1EQl%keWQacz&T z*6iC&r>~ZNs`f-C+GJ{binIw zk}}lgYqB;4^39z@9M7RZ2Q!ON&$P!msZq~lVD*FJL;q1hQm)Z1%*2LC34Lep)l+Lp z82>y>y6R$bz`j_b9O^LnT?sPdRSniG49u(J!icDsbsST$KR<9&;ad+0762ip9Lin` zcR3hFt#vWM`7oRr z+vF3k_SbzJmseL`dDKHfV7`6h2PDVTY!BTI<9MhbhtJdS^-wA9Vnp$PZd85JM@JJF z7IBBnz%hl{-n%_~{=frS5r+B;$YW0KO1X&ku{PD7TcJf^n^k18Hxq;ROqvohJ}b;U zIEfmih7&Sh?x~m9o>b5c2rcbZZ9n<8JC1;#Rmv+AnvGyebAm#6BH74yeUf<2eLGbY zhJ+^d>|2^dF-*4w&ji>pg zPJ^N2Tp#G#M_O2v6bcM|6{)?-I$C$zu;J~dSY1cjMHDL)WAT`EWHiKX0Z=WaB#u%# zl-`J6Hyn`J52zlS-+mUY)KYcAY_MDh$|(j z#G1DS&0EwYzX_KtWSZVvb28>M>8La+6idWS81MyA2=mF3jjO+IM)+P2OaX>(4+{<2F;wf7!Du%GKY-2++FTEo zeIYmDmDUW7vNL=p*1zAlp80WVV}VGN7otu?4zrNwmmqZ$29A7CmrTpfGzN7~VJ_)^ z?k9q(8;0{+omxHRK}yCsd*eGky$k@T&l~%{94#s( z`4BqbJrfBF49S>+ne!()kNyI(uyXuXbN;D*YUF?GdcnZ|TYvT6BCP*ZKk%RAM9Hn_ghK!$h0%%SC@qkVkC+SN+ zZe~7IoT&a*Ma+sem*+&Ud{msl{zlVfh;oaJPsl|I_*s=XwiHI+b^rv(#zr7@LX{!SIirQ6uX3+(W+}%XvI~gJ1-Hu zp$jS(PtrLDOl~UR6>^+>o<$Q;aazvOeVr){@Q_6}$KuZ#is znZj8I!VzuQLEst{F|@oD2je4dze|qyx52j%K-j}=JeR@<%La;7ROenZ8KS!v#9DW5 z8b)Upi&_^d0@6H7%VE&Qhf*Q(?ZG0hM1*XA8-sm|m)(^eJEm`17^h=g1;W+H^_)br zLW>?-CZ+i@N3aa()tIUh(ZGBB^gnID%rWAsx;zHH5cAC(`|}AYzh|cg6OCh0!vS$+ zl$%$Gk^Yyws1o=kKtKmMwYPQ-*{bU)nx{{0sQAW7<6DLd(G!#o-7$uhpsp;MT)3(y zidk_k6D;$7KASb=em1>x1$7T%Si}lSCJf~-;NQQDwO#1?W^|A+A(Ru7d#c}RF)E*5;w)pcKs!!oEhyR zEo*;-)kdFG0Yv$8o>~OY)%6#^-bM0gSlFU71>wKU^0O-R3M|uYm@c%PMP4p=*C&bm z;7Jz`a~c{X6xABfLxRJKM6OLWksLG}=6gv9io+9TpWx3}ko;tubq&2Smgu*Sx{)L% zm>@Xm+GPu_7K3W?cBbG#eUq$GVd4ts^jJR)!;@Txok`+%SZMx9NR5(lIEg z5jMUsn%DZTk6~!KT?(nc01TwQG2kB8!2t_i9KeuPIK+5Io)kCWf)^E5bQ0|qr_+&G zG|teRfYhCEVxM!(>M!7j$+oIcsUJWKymRx$dg^_|Q8!jF zUuw{P%=Wv+Bk)}uXl$6QUltQsVD<1iQgz5!%FHivWi2Mo-W4j(C__)!mAnXw$j<|F zzZYc`?X4Vf;pei+snn0$N4Tj&5G+7Ngjnbp))-CDnv>2vncORD_?&!Z~DT zdq5o~K8>5NWT^#A6xgA_sofA#NX$uiei&FCibf&K%6gDRo$oqy4yT~Y!_P-FZAIZ}Tp`(jH7@_cU8ucq zF$g0GhES?Fe&9UOnf69$5|Y=La=Ss23Xw`~=K@&*wz1d}j%NI2<72xhg_R90|F$|^ zdF-dkn{?g>423?jn#Couqmxjy%M?lRDNbx}?~hbOlmLs+RFD>lMOz}r=^n!GY+@@E zhf@`D#)q@vhysls6azxmR@j@@Ez-czuLrY5w`)Cqzx{bFp9vge+jgVzJNW^w^2;GE zG6(-qp})_3-B*#6U+Lnd-{T}MOy4bB0FX1J`%ygQJLZB^eiE2+ik3?xSQJ$@N%to; zRBG}@*VZ3_1zaLd7NPFREpV4RTbp#+MexUYd?%%Uu(#dq7k*X`H_~ExtXW;-XicZf=LNrqrtzpQc>lItP| zu;;R;pn8_YH0M^~)n}E(LN`lQ8DHdH`U^#h$kW$)MmysdR1y9pDS-UaNcvhus9CU8 zI0*s`Eqc&+$*A!ULe*S|M`CySK{j8y6CbI~VMR0Zk#FX7$ujm6vEQ~n z4ktIS4G+MdahuMI4h1!%c5|;YHG-=bS#Wmr=cp?DVw>YL(@|QJ!*O48gvZ&w1?mnn zV597mFpciLk;0Ub!RnVcM^r+Cf@&eKv+;A6MP68P!1ad2hcDb6bG;c*NdFDhyz32r0P1$e(3PSU=hIO8ydoIH4~<Eawd=(gAoFwLmB~6P@)W;`kIL6vil%*)BAVS^((A z^Stv(7BybJ&s+>F>PviQDLo>>y4a=mWA|3`Ux3Azs^zwTT-aX##1?$PTv?@j74~|t z=`hH%x=8N16{d984-<6bLV8KF536)KA0^(tJIC3BbH-U>XjS?K44;AIf7#M#-kwWK4JntnOxz4l9@T(7{hJbe**ks2B!0@lRvmKaU%;B73|l6e?y!UM-v* zm(W4CY4>14GU~`*MeK&bmeFaWYCrGu3cdJ2(z{k1eYm_VBOL>$!tEuxs&p<=E!2pT zfP8E>leP?yt~}J!mjgG=yJ|s2a0?V36zE9XU>)D!y2-bP(=9-ulwfmV&49DQXJXl} z(=-6GCX)k%VI}FIv`av|mUJOA7;KL4lzklPkLUwY@g>k8lvB4^+O|_$eqZwH18qn~ z8M;eSQw+=vw#MR>^*3d=C46X=;Kd4wOJ_FeUNitYe$a*J+$P#l0;r&4m- zM2m2VFkaP7VxDLEt;BOBPk!CBrd8U=}-%QleCKqe}$F(D*Hus5?8*7 zm@Oc&OZKfEP-7nhr}w+FR7Sbpp8~8h(DYz~8W~(7sZ5ptH~*t&;(7__XpWgEmwMOU zzY=Lol;a^!D)C_Q*+G>&KtYrkuecM6fDP)xo?qs@RKlkP--3W5Evz}*bY=4R$;5+J zmDt)&iRQFKB+TR|dJzduO_^{XIgVnAJP{j~q_WXli;m^uW5c|8JeKIh;v$kMpB}Yz z)9hNLYW`e>wpE(4!js>5of-F z$ADnrMdU9+|79tVX_;ii=jQumW3q}6fh0>ho*j=I76n3PH-Z0Y`#W;;nZ~~02w5*f z?ZCX6*p+%}iB$WJO-5AXA!J^xK#*sOPoR0ReJ|28+^%%Z(U|r z$+Vp-9LMnZ+@ySem*%&`Z3W*fE|wAlGg;ABZP40Y6wJ06KJp-d9PYixNx1VzKM64S zV~5IA3a1|;&Qy{zv`AIGM+-n5(#DHso0<=Np^&z$f$b(w-SHgeU4Bu}2ern`4||k8 zV3l_fPR3e~p>0g~3m{gZc4oyi zP$X&)lXktqO%WRY^RSbtGat>tyYX68ZfprY^-$&A@Pkh6sq%`F!g?m`T}x0-CQGdw z*z*?vmfd2lHu>94r(cw4i3tQqCeckFT`6~kzjT!;Ah?FbciApxhQBr;_NdYy5G!(o z@~7%n3k$U28U)Uh!QV@7E;k-LC4Z5XlAJ)d;M93Q^Ht#>4jKT;y8UBPQ2WBU6Z<43 z(@Ja~<&s&B4!~a`RL>1RyjvZvA7bd&q0%a4NkT}Ash`HxKk%A9S0xUP>4>Y8$bl`u zW^{SXnV)q~f4=h$vQ+?QB|q1Fo8)_;x#zfzVy;4$WoI9DXX)m_LD&*DqZ0l4N5eJZpe71LlB~gtL;i?*C*|m0k|VS zT@mE;Zh2@6<6jfG*EOv-4j_&t9zKfJNF}T(aha+rKY$sX|5oR z*RUx;zqdtplbXVo#^zH?W4)#vSVilm6J>Mu18WxPTGMKe89o*H6)8<6Wc@3#j8ug; z;1@?G#WxCU+j7~h3-pyR@q2`w>J{O=(C}h+tV(jO)itha#X3{Y-2}wqcV@|DDs!%W z2h&znE^NbMr3qi%PEfED(p|V<^4E!SoY9F)*>SyB@Y*qxJ=MU8nxk)FFDvy)*8&tH z!JVBo@I+K$P2V|Ju%(fc99_pOnJ@S36o%-^=uiyAmSV##LC|qMZWSPiSZq0x;ol%+mgMCI!N|hJl(m9w7%s?bK@|%s^&;zkcs6(kR8;oUy&> z9+x!!Srb&q|9KMsnG&G?9shX~|Fb59k%^Ryn4JDu6aD{r6Z8ManLxh#xIONt!~FwY zu$cC{0CTArK+AS!5YZ_m>V_})PcvvN1TwbG z%m*3pu;<5ln2jPnGLYG2^l5;NP@^wMz@82?LvuR{A@LouItK2A2w%V+d1r|&c4na# zYkl`yDwncMZd&P$yTiCR={W85(;_DL*;c(bPzEA&4syV^nLwnC79kvWR@>MF{DhFa z^1Vx?vtDdOyx#4s4Md3P{n@tEM9SA*(T)j#L=n>W-70bR2%@-N{P|iyW&f|EkNWOZ za;Ui9brKPjP;YW_W_K4@obWuPWO7R)h93+yMpYCq0aeLRrAYfO%$YNOP#FIs4efV~ z;EgwYBZA?a8034&F^!zyIR`=R;erlyARg=ucj(^b-T>y=>sw&w9{hV}aP^)lv;C~P z(gAg$qywT(V&zCsOOe@)2!C`US)3;m9-n36)ORsef6OQbFO&^!bAVTFr< zhHP~sQmmSM_Ak9JG%|CxtQ!nf?{VR z3gzbrk(>WI>b{gKghaE$#q-<3!Xm0K@gCl-k9bon6)cVoLm4v!B76FwgnA@b`QD|O zb|`;2Au(bxDSL;O55oyvO|Z0acHR0F1LOY!+>3cggMOr2a*hH~Y(3gLtq`oq_3WMs zXo|Cymmyv_-1g_Nuz!aX8ieIppLNTytr6L(+mub!8L>tle|Sx^+k*8m6!&N9)Fmia9& zFLDNY%L?H*G7auulTcg+DuE_)h?%Gsn{s{pAtw)~D8Du%mmQ!cm{L3OKC2HcsmOlV zM0{Z#98d~eUv5}d3;8jDv7s>0l|4OnNE*COH*&a8*pMpZ8_VoV%Y3kki2qvjS%=u` z?-;fmI3hZQiFmi{fr(ShLlJ;-+LcpINzbq3o{}~Kjxe+Mz z5ueOglpLC1lN4$h#R{vPlbruo*PD}_JjI!Oi;E5=q{Rgk2**?G zO76Nz_oF+9YigT$j$C8E0I{C-M=pg!wV2FOkx+W%2Mjlp4WxV-|e^r=KCJ z`*779{{rl=2t^k>TZpa5HX!{F5&MM-@n2jT3Vr^s02Dpz!kp%*mI}^G21hVgyZV^e zMvB}xobYdrk1Cd~$XF!MrNbqJzgh)_!zzmF|4GqiXRtuLS zCM5@vd=#3{8Ke!O5fRG_l~oSZzz&aNoMzaoBOxLK$L5(_rdX(Mk{53XF4=)nI|?&> z5hjxXT3_IB9ea#K30Z*KNO>Y}MHkcol3!=v1#Eo1sW93e7NCpDgZ}{K0^Z#GF+Et< z8G`7rINa-jEI>d2002E>_7@@mc80M6Bj=*>@+d0DZ^84gf^obb+kii;{H5~0;?YPC z{$^dJ5&DTu<@todP{(e79N{L-^Wb%27-$EQz#oTSt0YTp9`b%=DCAu>hV)2z6n}_x zuCgG?>kOfcSJi*p-%xS$Y9jqTdK;X)yL2KS@r><5;pE5lfiKLB?V7?xh z-(3;QVaX4YObnd2uC*Kk@vW}_zu>`H;{iEPD1+V*1vYeKfJCFFGK9eF z0RS$hdC||2jwEf0i$V-k)Jd3S8gi3VCMZD~v$(CnJ=6yaIS(uO{ z-$#fPJl=Fd7GqA!E07FfjSy zU@L?HPD2!SBDOr6;XG0V^7CM`C5S_=D97bY!=cY$mIWQsfKeXD&_OkJWKd{iKnFt- z5f7eNJgKsAuS6~>F-`9?VU!7vpnd4gTL61bABhmz)+IsbPIavPk7C5hHDQ{Dq9jyC zA{4NQ3kONr;D?!Hu>vSXZ5uJ(T@yi77#^XBtKz2^V}BX${7`?E}q$H$mXSOQWQt1BnEtMBreRph(Uct9DwIEqhb{8pVQDUs)C2N=u|wQFmKasWOOJCb70HC85L?!+kwqS zR1;D%6^-p405yyJ7Y4B6WzcOhst`Ql(!Jm3GCVD}6sZ0N5FLtF<7?=6!ek-x;6*4w zW;IZ-Xw8H9e2~tW5Q&AO2rIG6%;*;gDBjR$R;lHwH;Bb7{{S~MB6}|1Ik4TSaLKdy zV=f8u_IyIHL?FRE&SQgN@*NdWP=mE_oLK{WsBPN7KmY&$4FDVmzP48{EHTpGw<5<< zAH)jG2mBdPLnrQqXf+lQ2czk_DT^)0=tmgn!{i5 zh>MrWjI(0Yu>R230YCyHM0O+C`dt}0Fd0RPxetspZYo7pKggMQRVZ!oC=!1hOKb-y z3O}c!gYhsN#4Z_BGN*)}!2X>W4Wx$#OKD&7eYy1(gtS;F5DKcmF%sv^Y+sZ;6M$6p_a(TnfX7Mj#kIfOm6`1=H9 zOjD-Q5gF#eb=DsPtU7CN;}0Y)B$<5^AH(%Cc2H}hg;J=MANGPz!{~N!P-ugsM`MC= zi589(%wWaqr@joc4|0mV!l*~t=1hr3Mh5`I83kQ|V3y?vR|#o&HVwejRyV9eRF$A0 zxS^%VT-Tr2k`T~3!WjsG7m@-@pL~rE#K?ghMyvcU*IHau3`04R&`!?>tPT(n5#)O@ zkn7n>4+N{icsP{wpq!!lf_(!OQlHO~Rx5*SrK$cU53xBkq~7V0gB_x@=;4l{cMSjl z2mv5)2ZK$>hX%-x{{RujVyqf*$4+0rzy)zSv-2>4*L($?EK>l`1Ihu*r6Ch`>*>XJ zUS_+i>ELl*h61U$Pn2?@-#JyaQZ1JO_Kev12O@p>tx)Xid3Rz*Rr2aIyXCw816-W;lbS3ik82ROc`}3T9z+Wh|Bv9e6Qg6GH5p@hA zYD1v&Mvq~L;`XYo-$4;CSpW^OwqrI+!$X{N;?Sgc)MH&ulTQqGId}x-NDx62-1~m3 z@lWE#fXoIl1YNR1;fxFw1p@DHf_`Obrl6wF+|;&UTUR?=?M)cV03bq@Z=r3Qx|=1CPp)MhHX zosDF77&e(44`H^1*a91q7dT(wuf|f)1XI44LckPWnJ8<2o&@NThKO)-0K;&6G@%vn z&(LzHM}QdN!5~&~Tmg(#eP&y@kdmnYG2)weQ*H46(qbE(KTb20qOXK~;(8k2JGyNO z9^A3XNwpxBz98eh_>ZzGP4K{_fai=PrA{-*7K@8=tL1%{XGj5KBOlo1L6MDQhYd*; z@~`b0c_9@n`LY;IwwR65r?Mk;m&^*1+Q2{U-crsL(=zHh+ZTcv0999j%2i)-1*ia^ z@?mTi6c5jhN39JQCwHSAKPNXs62xseApBrMiN9#%D?J1wR@M5L6omcUR)I~S|yh(6++6YLRwfa9fe4wfWiQepb(Ak6UF)aY3Ti zlt|DVHX@3fZeT2{zg1wkk#JGOTN4a8IHm+}Vb{tqTC6lta&MPyEFp`DJTqg20QB8- zIbUJH7oYt}ClpceQ$@gJry`Y0;n$UYkqJl1>5RU#0eGR_YA;HJR=AX|5U1Av0Ay@m zDG|oAl=lz`4`u%VuP&yifK^vOa;{Zg`KVE{MZqxh6KxO(UY{wkv|ty!U|@6R8VgcS z%3Q31+$jM}Ds3VD@NhI33&Z#b4tP+&oMwj79t3fUud3n`Vp@j&;ia2~5N@_GT#Y z`hK3Lr1+!6{6_&;`BWkLv$7dE|HJ?`5dZ-M00adC0t5yF00RI3009630}%ugAu$CI zAR<8%GErf16hcygBQTMnvB4EXQ(|(_|Jncu0RjO5KLF+S*!WgPzXdx7hs7{HL8)jJ z^0D|hu+JcD4QqPoeReiFlyv$979xc>?4@>h60!xN%m)1g2iIn=Sj3Wj9A3lg-a@cnR#xZqPT#oRk3FaGWfdd^Khk<;A0PSgP?|sA%e1^MWr; zuXBc`vW1F_864quD=<&v6FH3qfW3oBK0jqF_=(&Mt}pmKcswidkINpKYE~l*Fr_6= zBP|}D1BP=!pD+R2g~wSIYm9ztdFJIsppsFtR3MIdxp08VFz1b}^_X{Y z?N4@cN%B$9D_N95rQP2NkuW$wjg9UDVb;<{+ow<3 zK=L_+d0--DBNY=4pq;)~6~YK1d#c(1`0YI=oD*XWD)|Up{{Z3uX+Y0O;#Uu_Q$pu6 zJIJxB!Oqw*OqKgI>ZjvPi%1E0BV(WnSsg2joC9>A2EY!OoW@P5A)|7DYi1(ttsAGk z(mKwxn`3@pgVRTwjV7Dr!f}{<9FLLv{#_O-Sn;?Qgn*3k3N>XYCo$}YE2x5;0YlQ>{z1Y%_*g4@%= zl0QyowKWAOB|J1V2b48Eg=&CnT}y_`mPbJ1L~`kW1T16*H@mjJN5|LfP#|@+<&JBH z>BPL|JM%gtB^2kJz$QBR#?11uzo>v#GlxM4U~2|a4r5x4F7KRx_)`+l5W5tb(i#*| z`jWMT&?j{hV{RF+#zUxVvBM@RTGSI@{m}M=Q-h1F9TU!Ds)eq-6*)L28hbvD2>LP@ zfg?UsxLiso<9k632F}NRnhm_6f5aHzX_5I!MA5E?6>TQ|6Q|WiL(e`M{4+5bu^SI+ zl59RJ4EHdC${?yNHRK&o{>UjK%$mT}YuYJcF*0D}4+Phd@)r|ea1USyOKJT;t;SR5 zn1}+KLzUktvDm4Y82K%u#UevS+93SG!VYj2)&5@@a+j&xG` za=4hCrn>5}@fJ*E`7}_cYI<^(w#YT$(uOxPz1#R$hKtNOozRaBGa-Ax%+aCyt|x+y z2gv3S8EwnV*OQ`xHnm50S_IhK;k z0N2Wajs>zjcKBYTpB%=i&9x(3lJO zBhO57Ik`(UZ3_xnSsSiDaUSGcNTNyRcVF^YlE%ajx5|EJXk1S>vH;<1$~-Bhji4L3 zJOwPqTCj*mFf`SuKPQ|-eiRtRxt`#pm(yr=?|#SPm*R0Bulo+3;kvQ#u<>T@CqO$? z?9MaaaNJisFBTDCeHU18s--^=n-Ids&>uCbAq_dQM@O=I%gyr}CY@G(hECGVvg$_2 zxR)1fIl7uulI5fg@?*?oke>4MXQ-CuO+UeHG!-nl52)>2b{+zB^A_cE?Wc3hfP0mK zET+f_=+LbPGoVZ+%4ni>O()MV+{d&MN_!m$sX-U=IlY#5Qaz(Z8O%Z|tp+$ZHd9MQ z?L+68OnyyAl=qkFP}i9PlK^2hQ(Vo4iLKLqV>SN(r2HNx7J811hMsQ(Y@X)^3*8G* z?azQh!s*`V?!XK`<#Ct{C5RnH5?X2QbA+Zd+#TvskH3fbANVPolB!%b?M)`Pbrs8|eJ z@DCC(px)r9IG^L-k-2ib4{HAajlll^=%>P9=4p9m;+8uM$R1kDtE)bIt(C0&kHRL! zERSH-t{-rQr<0kPS4I;XE&=4lUHhy)IAd_~IO!_}-!`R-(tCryDb)&a)1uX&ZB@7x z!rklVgXx*RX-|NinVi_kZK`CSk0>9*k&<>?eP%=A?`;+4@vE6!_DZ< z$F%8me#K*WWR?tI5mwXm_&@1O1K8?#Ej-F&GwJZ2!qZ3~bs=zqBFD2`>?~F*4-*|8 zA;F~VYV#~Zo1B>3Tr}BdA8*GavN-5sg|2Iw=2osHaST=- zXIyq|)^x8N&KOw*^_O&VM;Lu&XZI>;M1WG<^EOSAPcHl27Yf-x&-)*>cAu)9na8SK zsN7doW>1GPO^7vBEthJ+P3dA3gr z^LkesGJ&-I??1Ahx%uHOYlL5x#D(Mcz!N!`x= z$j>c$W%kp*MC=>Z;WIXtGYx6u}_N|gE?F>xE)XxV1-K{vg&2Qy5%mCyFE>QE+Zt$5p|@B{M-L(gFKY#c+qj3$p>e(6Ce3<~W16L%1fm zu<5#VvFh;ZC-N@Vjn~nrh7DY}ejv5x66$2WehS9G=1N_bfjz)$MOwa&ABhmmSmR87 zhv-&12?Xwy%*$uHN&uowr|g=Z%*s+miLG;~4F@cusc=}KGMC8eEcUJ@MkfMV-A?27 z)i<@YH$2~k%U{JAj^egKjAJim{%0xWWPn#Hw_4%Yp@qbUov4dgo-Ph%f$M{IPJ`^E zlh=EkbR_N84ninwK~iCG($n8o<_7)NKMfuo=Oz2A@1^L6cIt;RYKYLM;o-#Pc>`8a z`h~F*orgN+9hQHx#6}^M*Rk5S z{f$yEA`8|J(G9aC%BxrURrsj#`m zs*{-4Z|qMQ3!CGfVg_oeA!2yc*ofl{ZbvXyYf{Z5=HB8;9f3K>No1iRB?EmSIe@8k zDmagyCwpAE^Pvfm~H zeiV(eHA7k-%Vckz?P~?O+XX%rIj}8Y?a4;|p-H2i{{Yyn$2>dQ(pYvoB3%$KKJONt zz1ko+bbC<&;RwK6Cq(9pD(M||O<{Mm5}eXBAcWn~M>U-^MZ~N=Vs-vp61xp3k~65; zU^t`aaf1;+KiWdZMUq#1JN%6b9S?h?8k-?U8{`@^ltY?oi0XDW{_*w?r2J3^s#^4+r$}c(+xSKx@FlXs%144dz6d~0$wa)T|uITIB?Jd@QAuH3yZDK^uiO4cP1?Sb_Qd!{F^|Y$W(+9PQhu1BGk&Tx`pfkaH|{Z^g@) z*%fDN)2WXvByJAsU*WaR2CQhcSxH0_R2CnO$jpq9gDB9DxXVPONH%R>?t!oe&pgWc zomdtdhPC(~T7#TL>Mdg85MtiJvq~M$C~C6#r2_zaUhM$7A1X-6j0b32WFCAw7S`~_ zw#V@9?5-iiVZ}4F8vwL?YIo=ch(85kc%fDK!M-is4#V{W;ZK8}5DaZEXMWJ@09=g~ z`z&TJ3SlwGL{A!xGi-i{)t|ZvfH~DjLd&%z?P;PjpC@Wkzd5tDP)9CMd?q}?_Q@Hd z4XkSpI}X`c4ZK@Egl-n(w`$}aM#3-7Y^?>msj<1*fy|3{-EarAGG>xDx>($H7FOKU z*&Dodd-$-1V0F+1m?=2qVWZQ#{R(W5wXX}!c;rt!E;>vnsK#m@6tmAImpu1)y*lc` zjozEBP>tonjDIQ4dx>+-WK*{OP;*H(H3-T{QMkWCh^~;OE*mL@kwphx3hR9}K3t&( zSmZmADn1_}+gU&+WMFlJLq{kc4 z0exAD8uR`kUfzO)B{j9y=4)t+Dk#V(^4n0bJVr=oYo790{TvU4#3Le1-gbBIvh678 z%1ErHMjO{I9I>~$+mHm12IWhF#K0}}wUK&&uji*QMD^~yFt%IsaRI?$Fy|eCgz1_) z8u=Si#_*@%E!nj26|K1vheS^xcD5CV=LsxvSTpJ(VJ6*nZM^YMB3W8~I&3gc- z_gq>Qy9#C}y{vEp?traNjk;lo${cR8sUve7SpCMu5Nd|OM}@@V8J;#88 zn=a>F#mBND1Ed#C9iUZ}JVBB)0&B5aGBs77LBdovg%GL#6yK zEeT}eMw`7HsDopfHsSr08BBFU>a(^X+&h0LM-?oD=Bx3iFghO_GuBW*tf5ILU=^&M zeu_y;>il!z(Kic)YXgC+Tv>sbt7xV;cK+QKIg$>E{9Y*V@j0$(HK^Q`j>a<<;#$(% zHgD#sG-Mi}L&DS`JfqyQ)~nt%3K(R@U;zU&#kJ$f17(T8VsO%eb!{Dfd4QsmE3f*g zWiuT#0ch>I39f9OnUU6OWJxbBI$wks8;0v0A-zPoZ|A* zlr-hCnr^8Tqe5NRXapJ~P_e0s;X8 z0tEsC1_TEI0RR920ssRM1QH<-F%uvnK~V)V6hdJmGg5JZkuYMRq7_qeg0jKUB=G;* z00;pC0RcY%o1g)*?e`AReMjT0 zgzZ7tK~9|xPyqh`JwjOZ?@`3BNo&=-O{AT^(2b{Ww_Qsy;7v1;{ITijm{c+Y@L_88 z7E%NS6i=$UH`~>61X4kl+2NwLahR6n!tLFddQoqIU^7$oGEfDU*=2{5gYyCt!*FBj zTwj%7DN}+moWj&UA+VxfXMmNqah(4ESeATOYgF$*GB z$)8cwEyQh~Xq(76Z?*t4p5GAmHU+O7g8D#xM#|2O7i%^j^=(UqM?VW zk7SyMCw-5fRtdn)F)6wAI%=K0^Panm@7D=(k!RcQDbw1wV$a=!->Cph12GBNSu;;( zipR=~YB>_!O}30?08b_yw-L1!)O9!{?+$Xy81X6JE5YqxIW%t=%q!tZqrrav(#xBB3^H?M~b^rTeE+om4JXYH!we| z!(JlxgYJimFndiMwAX12IGST~YAmv(;uP2{vr?R%(>44|?QiESmm_p~*j1M8*VYxA9-%7KS#@oZ>kz{~|c#ct3x8N+f>#^G$tou~D^BI`7_TnemKQWz?2fSN!sX$UaMrmsl)&Vo> zcF-v)o=oGSo)7Xewy~JR;7qXOc9cY+ZyJV1B?7&@x6uIKJ!4NWx)yY7_zHlV(| zmYV8qqq)j;a9Ic+cf78%Q~WoyW1fe;W}jTt0wubZx7@*z6}CnmB&!8E@9+9en9KW) zr(W#1nKm{|+YA%XoPiO1QU}a!IipgwzuIP^lzW0vjQhq-vok(|Wo+IgXgaZds6E8f z>RjrOTlR@})GDNL%+zXZ)DnHVleGT6@z-+y0GM`zkqpKsq|O#@&$Pzrou*j+7NO7O zAaNI?PV@fZ{rcyLrl`5d_LOPu)Z4n&;Cn~VRHU_IY59(MFc__}I*VaA z9CMD-8@vAiUn-vvZ3iv!HFquOX+m%hu4wOd#Y{4%vqCY!IWeL{X58TRJ>_mnu6vy4 zs0;Z94Aorq9jjng{KpxZeM;QCKI8AkCNN{7v{XgwxC;m*20etWI& zPt4Ql-P`trZO_~D1$CA-g&V!hCx7zmu|0pTCjQ^APn>)hx{Y#%+h9M%$7!dh#W-B5 ze;4seDK!I^-Tg5$%)y&aTY>ylhQo!k8&A$96dPUBvL-S=i!<<=FZn<2K3tQ>VeK|C z^zRv(i>eu+PF(%dMR2Om18zfot)AUlkZs)&RbL`uOm9zawp6$9-q9-*@H&!n2w)>t z!2wkw6>Z~j>t>aOj_KL)0tBw4UhAHIAbAoli_u62wHk?|;?S#O39?3cOsGw}LUzk1h){(W#tW_WF|6Ynk3Js=YY zJ^GxtY0CHN2sR0**eg=FCRuU1r43n8FRd2Av9s4D#s_7Y4a)cHrqni@Bql>jG@6@3 z5ZePwt2$&UjDz{0;k)Ea5cr!*J~K9%k0SbIm5X8^uZT|Ws@StTNizF?8ug+s(y{2( zINg7&33ZgQ+N-y&Gsnc?`3JXMD{0NE;*U(yQ>SfHwPPs`z@!{aR?%tO*HdQGU%}4l zOZbZ89D&s}0ko-E`HI!mTAYs4U#d%n1jZpdJzoMw>x2+fc z9^m_OC)3a3EVA;r675A*A;}W!740krbJdQ@%lyqfr+&|3dbg`-BhxgRzrz+FWo7!? zFX2um898pRO4tD>yrDKT1MS`(fD`>Cnu~24bJ{jRgycfI>p6`^%M%{+cCuA-W^W{W zKu>9gL$t>QPbyXr#BgDPD9AB*F}alL-jRU|GaQn769J5iW>?sDo)E2o_A!}`AQ|d? zFb&a$AoWjqVZh8KG0D&C4?l1B>P!Y^3HXgi@j*%?$Po(o$PdibZCzbqd6(Ja5#pxN zEUg#!ZI~h8G5sc*%%JNH9Ckj_V;&2Q z^H*(t8Kn;=?-NCGpzswkr?Y3bn;BxSG!%{HE`Plt7bC^NNXbW={@T7BKddV}qlNF9bD5E%5^ zL-=cE>YwdgO)?s4O2FEA+-C>cWRHHG&LOOh;~f_bVF&t4Q~vL9^UhDJxPGVH-*H=bs%>!e%wW*?|@)K6z%-7+J&b(u>b%7 zI|xk2h<#Hv9>cWYzF`5MK7BAo)DIl`V;ZT~heglCw6>z%){UY%?6dZ9y(|pWAh|?D z@PsFH`^>`3L0YCT21jX?9YVqY8TJy(+}PG3!h`7l0Nh&^(6-mvyUxZRn0SMjMt?L1 zZ{^Hm0Gc`${{Rywu$nf~)GQ7%VAKA@yg+b#`f;TS-YMtWeL9cXn;2yKO;T29VqiEV zhKiceh;O7 z(eM5M?;e4ttsb||{^C)g)6@s2CA-h4Y0|Ng0qVq8v5)7Cj57Rn1DQwEO$oOW-AmiQ zlLzJfVS)jX6mv9}eiX6Wl`~IHw!+p_c7s0+^$+=;Qdr<2{$msHSU!jJ1D%n*e76&E zAP-^Ke}h{pTCck(4{3kZD+)X@lQkNPFFcqA(brLCSriYlP}|j*`{Ste!-MSrz#rz9 zYQ=0o8QNeV;Eu)~0Y4IpH+%c`h9;*PWuz`x%9p{@sAGxa)BIu{@bI#m!3J}<`Ej*Z zBWW_-HM(-U*8!sz%s3)uV?8sDxZ42TJIult7-5oo%2d`{cOZ6+m>7t|Et#pg(LFKs z8iVPz@mTKQcg(LyY#3AFC*{vMl~gIOZgVXx^=(;NGFn^sI|%$VEO&z~)H@&MCU=jY|iKutj01|*zvSW@h@z5+ycs7mHorgPHJ>#{uSPA91*n`?>sIr20CO@oZ z4f*l?BF9a_S618}(T*WK0nKm_>9?rhv=-O_13luLuk?yJGaXaf8(0uN3|GkJ7=19N zWjc#AtG2UVx_c2{zPzZ02x;Ah=M|faqa;}VR-<5x}j?+k@x)#PBv-d&) zgCcgDruasBD(*Az#cl|A%+%?81{+Ru)jODiup5Xt5FTcF=51JffMoh%-ahUiHL)lN z-#ZP%zrS2^%km;>Y{MVmFmf}~cu#4&Ffk5bK9W4Afy~oYdmPv861#q(Y028F4uR<< z(YFyD@=kxk-Q^??-W`kW4yh1(JAP3Cxh}6Cdgpibh{3By?Z3ZO;fonsR-u9Cd55OW z?gX<<;i8##nHHrWjG1B-a53e^M>4DR6&zPIJ3I`r!S|Yvs8WFVMb?NT_&K3!#PbyT?L!p=v|VyJ6sMD*{@Pkdr3g*~Hr>aORzVjl2U zs=m=fo)&+@Yuk~W%~y!8wa!55PGB8!N4e-2uWo*3H}~Qt^tMHBk~@q-9eeYh$K%LU zxC$d`6||#H7u5!vT>51}fTP-KNjN~8Sa&{EBr68xekBwoO`3+*KKQc3OqqErM$;mxJ!f?@O^n4pNMUG#b&lW z`{TS~>{EBRJ(biwLGeusS z)?;bM98DFgQa(oR_?{hZj>psf7&tk3U8OH2dq#tnHQ9N>K8bUgn6_pUkt#^c&DQ1q_TgDBI}r=>s> z>b2FdV*vjEhk$E4<(hC1HE{i~bsQkw$Zu#XRB^BbM)&Us0&V&8UumOZ##!^kZDCd0 zU49b}xc7;te*iM3<@Vg*s*i8%1@5T zyyt24@ffKD1H0qf6FADVKyx2XAKq!#f+KKY9SBnb_3ZeD+*`M_J%>ZY-GhvQHJ1}p z>FVURH#f#6mhT4E{K4^+_{1?~^{~4m-c?&vc5%->LGK$*0&g9}tM_O9JeY-y-81DZ zwR*wZzu)3|SnWOjI)K9ru|r`?%e6soeXZ%Q85r-F8oM^KA3^MXU?y8zlbjf*HJ|eK zgM%^v1-s2fZTOqm{g& z4^iG~LBPbSmrnftu;BMO{U;w0bfHWN6k|O=Bhm~36Vy&-0hk5`g}SiLYsOH<(h}Yu zdh_>3Y>1<+?$ti=?j<%h!iG1S?Kzg&;13YNtwWuO`%~Rd<(pdF=LXZC+IwPYfm*;b z^YqLo$%EHVqFqk*R>mfdy%Jk3x^5ljGc%611+*wW(5k6Y z1U_%L;#*&irn$Pt!iB|z;D`z!QCbCA_MW+zFb^@WQKdv=ZXdXn{X0%Ek;@KdyGoP~ zNjUhK&zFU4nWC#rdoi|Xud1&VSu^lr)El@xc~rKae!Ct>!(Dr;Ea3Ad<{OVWp@RR--@`9y96lJmO0GH^3`j2ib=|Y zF8Ycp0D~yMuk{zQ~9RgPaKY=m|DAg&O9W?Zn|3Z=W{z@mVGx(%Ur{DPZLs#)j1$9 z5q5=Robxg~n1?Gjlhnb-ky~jJ))B)0Z*>+}928dRu!#Wm4Nwtc3zSeGu*2M4QH zy*4Q1c8IyFKHrvY+dk+C%+q~9Q(g#{>z@3G2hWgCVr4q9Yha8{2T_9$9Zce5_$MEq z&N$%4y4M&dfeu9P)Eqv4w6fn0(w@!!ksri|(+dGU_zH-5@?Uj`6&LP)W!K+n3hT1J zWgPC7=`|rx{{Xk*H+0F)2Y5~lwT8nqt&FMc#Ab7nPrrVr-!pYgPo`=v6xaY8ng0Ow zDzPu8eSO>R9~g_;U;_teJNYvk2Zr{9@4-LQsFqi}gAoGz#)>k;{{Uz(6p!yP2QZ!9 zO+{^OAg}Ki?GlQt@z&=XMPUB`T*7XC{iaDdZsIq1R27Dx89?mN@}T_p>)3yJUbfxX z2o7@*9_DlRSbM*+%`FW`a_9Q|#q49;Rn9(Te`uclM=&JRUHD{t^I^upDYVsPfsSi@ zVElFMGdE7~aG=dirm_G(^-V3p^!-P8qXf<+mMsnx{{UFrE`PsLe2d9t{UT~X1&_`l z!5nl%7ANcN8m6Vsh6x9>p$%Fvr@y@WkU#`|I<`oOlU_bMPFBEwzf{33p3_ilI+htA zU~DmKzQV&fv-3RsCYrsN1fPG`sXL}h^c|1#h}Yp+Y}vm%z57Zu?Wke-Df#{>UYRJ) z4|q?Ok8gN{wP1XA@&zZ`s+=)sx_kn&uz*4v+6|-bfwwVVXgw%q2#QQ=1$L3x zdqC@Dc^}kuak&m9^$RH~IDR%6MIHcc$8#TeTVPPbaX$Y59ZpASU1r|E!Z8H5N{?`~ z9256MRIaqGPEkGJLf-QmW??ErAsjTQ6<~+D{ok%*F4>&TDp1tE^Zcfc<6Uk7XW|qH zr2cq2pW^eKwbTYZMm1gg_)WeW{@YidDJ z^=Fw?NR_ApeMl=cw{v<{V(hr)^=syaV=Xf4@QRH7X96{)Q?q z;p>B($_cK(MAU0-C;;LXEOJRcV0|WN)E!a-DXB)i=Fv5PekRB~_x|X_AGNML6Ya1x YyIpHm77|Z?B7Oe=&Q Dog Finder + + + - +
+

Dog Generator

+ +

Enter A Dog Breed

+ + + + + +

Facts About This Breed

+ +
+

+
+
+ \ No newline at end of file diff --git a/js/main.js b/js/main.js index e69de29..ae92701 100644 --- a/js/main.js +++ b/js/main.js @@ -0,0 +1,64 @@ +//used a lot of the other api's to plug and play and try to figure out the complex api along with MDN, tons of stackoverflow and chatgippity +document.querySelector('#enterDog').addEventListener('click', getDogData) //for button + +async function getDogData() { + const dogBreed = document.querySelector('#dogName').value.toLowerCase()//for the user input + const results = document.querySelector('#results') //where the image and info will go + const img = document.querySelector('#dogImg') //for image to appear + + results.innerHTML = '

Loading...

'//the api's take a minute to fetch so this is so there is something in the DOM while it loads + img.src = '' + + try { + //fetch all dog breeds from DogAPI (paginated) chatchpt was used for some of this part, the api was weirddd and I couldn't figure out the array was coming back in seperate pages + let url = 'https://dogapi.dog/api/v2/breeds?page[number]=1&page[size]=25' + let allBreeds = [] + + while (url) { + const res = await fetch(url) + const data = await res.json() + allBreeds.push(...data.data) + url = data.links.next || null //this while loop is to find all the dog breed info because the array was spread onto different pages + console.log(data) + } + + //find the breed user typed + const found = allBreeds.find(b => + b.attributes.name.toLowerCase().includes(dogBreed) + ) + + if (!found) { + results.innerHTML = `

No breed found for "${dogBreed}". Try another name.

` //if user input cannot be found on the first API its running through for dog breed info + return + } + + const info = found.attributes + + //fetch image using Dog CEO API + //Dog CEO uses lowercase breed names and dashes for spaces so alot of the images aren't appearing :( + const breedForImage = info.name.toLowerCase() + let imageUrl = '' + + const imageRes = await fetch(`https://dog.ceo/api/breed/${breedForImage}/images/random`) + const imageData = await imageRes.json() + + if (imageData.status === 'success') { + imageUrl = imageData.message + img.src = imageUrl + } else { + img.src = 'https://place-puppy.com/puppy/y:200/x:300' // in case the picture doesnt work this will give a random image of doggo + } + + //display breed info + results.innerHTML = ` +

${info.name}

+

${info.description || 'No description available.'}

+

Life Span: ${info.life.min} - ${info.life.max} years

+

Weight (Male): ${info.male_weight.min} - ${info.male_weight.max} lbs

+

Weight (Female): ${info.female_weight.min} - ${info.female_weight.max} lbs

+ ` + } catch (err) { + console.error(err) + results.innerHTML = '

Error fetching data. Please try again later.

' + } +} From dd5349ae1f51387f5e805d46a94eb6e839e79ba5 Mon Sep 17 00:00:00 2001 From: Naima e Bogran Date: Wed, 8 Oct 2025 22:55:04 -0400 Subject: [PATCH 3/4] Update README.md --- README.md | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index d8d6388..8659183 100644 --- a/README.md +++ b/README.md @@ -2,21 +2,6 @@ ### Goal: Use data returned from one api to make a request to another api and display the data returned -### How to submit your code for review: +This website uses 2 API's to first fetch information about the dog breed entered by the user, then that dog breed name found in the first API is used to search for an image of said dog using a second API -- Fork and clone this repo -- Create a new branch called answer -- Checkout answer branch -- Push to your fork -- Issue a pull request -- Your pull request description should contain the following: - - (1 to 5 no 3) I completed the challenge - - (1 to 5 no 3) I feel good about my code - - Anything specific on which you want feedback! - -Example: -``` -I completed the challenge: 5 -I feel good about my code: 4 -I'm not sure if my constructors are setup cleanly... -``` +The API's were dratically different when it came to how the breeds were listed and the types avalible, so a lot of the site isn't fully complete and common dog breeds show up as unavalible for the first API or the image will not appear for the second. From 2f95be79c9d24d07cea3914e685d4d624ba6bf6d Mon Sep 17 00:00:00 2001 From: Naima e Bogran Date: Thu, 30 Oct 2025 16:51:31 -0400 Subject: [PATCH 4/4] Revise README for Dog Breed Complex API Updated project name and added tech stack details. --- README.md | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 8659183..d0f1af5 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,18 @@ -# 📊 Project: Complex API +# 📊 Project: Dog Breed Complex API -### Goal: Use data returned from one api to make a request to another api and display the data returned +![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white) ![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white) ![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E) +**🎮 Live Demo:** Found in About section. + +--- + +## ✨ Features + +* **Responsive Design:** A clean, mobile-first design that looks great on any device, from phones to desktops. This website uses 2 API's to first fetch information about the dog breed entered by the user, then that dog breed name found in the first API is used to search for an image of said dog using a second API -The API's were dratically different when it came to how the breeds were listed and the types avalible, so a lot of the site isn't fully complete and common dog breeds show up as unavalible for the first API or the image will not appear for the second. +## 🛠️ Tech Stack + +* **Frontend:** HTML5, CSS3, Vanilla JavaScript (ES6+) +* **Core Concepts:** DOM Manipulation, Advanced Event Handling (Event Delegation), and Client-Side State Management. +* **Deployment:** Git Pages