From f97efc954b2b0929e0e0d3da0ba64a94d432381b Mon Sep 17 00:00:00 2001 From: abhro <5664668+abhro@users.noreply.github.com> Date: Sun, 4 May 2025 12:49:41 -0400 Subject: [PATCH] Create basic docs site --- .github/workflows/documentation.yml | 31 +++++++++++ .gitignore | 3 +- docs/Project.toml | 9 ++++ docs/make.jl | 18 +++++++ docs/src/api-reference.md | 5 ++ docs/src/assets/input.png | Bin 0 -> 28140 bytes docs/src/assets/output.png | Bin 0 -> 48433 bytes docs/src/index.md | 78 ++++++++++++++++++++++++++++ 8 files changed, 143 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/documentation.yml create mode 100644 docs/Project.toml create mode 100644 docs/make.jl create mode 100644 docs/src/api-reference.md create mode 100644 docs/src/assets/input.png create mode 100644 docs/src/assets/output.png create mode 100644 docs/src/index.md diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml new file mode 100644 index 0000000..7f2b79a --- /dev/null +++ b/.github/workflows/documentation.yml @@ -0,0 +1,31 @@ +name: Documentation + +on: + push: + branches: [master] + tags: '*' + pull_request: + +jobs: + build: + # These permissions are needed to: + # - Deploy the documentation: https://documenter.juliadocs.org/stable/man/hosting/#Permissions + # - Delete old caches: https://github.com/julia-actions/cache#usage + permissions: + actions: write + contents: write + pull-requests: read + statuses: write + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - uses: julia-actions/setup-julia@v2 + with: + version: '1' + show-versioninfo: true + - uses: julia-actions/cache@v2 + - uses: julia-actions/julia-docdeploy@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index f65b967..88a7e65 100644 --- a/.gitignore +++ b/.gitignore @@ -2,5 +2,6 @@ *.jl.cov *.jl.mem .DS_Store -/Manifest.toml +Manifest.toml /test/data/ +docs/build/ diff --git a/docs/Project.toml b/docs/Project.toml new file mode 100644 index 0000000..d60b2e7 --- /dev/null +++ b/docs/Project.toml @@ -0,0 +1,9 @@ +[deps] +Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" +Reproject = "d1dcc2e6-806e-11e9-2897-3f99785db2ae" + +[compat] +Documenter = "1" + +[sources] +Reproject = {path = ".."} diff --git a/docs/make.jl b/docs/make.jl new file mode 100644 index 0000000..25a1350 --- /dev/null +++ b/docs/make.jl @@ -0,0 +1,18 @@ +using Documenter +using Reproject + +makedocs(; + sitename = "Reproject.jl", + modules = [Reproject], + authors = "Mosè Giordano, Rohit Kumar", + format = Documenter.HTML(), + pages = [ + "index.md", + "api-reference.md", + ], +) + +deploydocs(; + repo = "github.com/JuliaAstro/Reproject.jl.git", + push_preview = true +) diff --git a/docs/src/api-reference.md b/docs/src/api-reference.md new file mode 100644 index 0000000..d46417a --- /dev/null +++ b/docs/src/api-reference.md @@ -0,0 +1,5 @@ +# API Reference + +```@autodocs +Modules = [Reproject] +``` diff --git a/docs/src/assets/input.png b/docs/src/assets/input.png new file mode 100644 index 0000000000000000000000000000000000000000..e79235d9192f23a7117ba2cadb4e0e2b53ec0818 GIT binary patch literal 28140 zcmZUaWl)=47p}2F@nXe2xI=OG;10!KtZ8uz5Zv9}rMMR;?rz1sxVyWb^qV>7&&kX) zfhUt>XKh{geXTH6Wm$9-A`}=H7<4(HlsXIyEG6_p`iKa&o8!N_NBhOUHGx+#ArNPBrueCZS%+=mH-H`*zPCKkx z(K>$$EIR@+e~#b?SBo^ol?*&k#s3dCpP>ISN)4N+pI(NefPg0Ne=mjqe>Yb0Si2sB zqoXmR$wif=r9YSrMk^WESy^rG3@6Oa&#Qm^`mt-N4#e+q$Nc*Gy0g2hrmZdG;J`sj zN}4GE4i64Sq>2Mly`^!1zJLEtkO)#xK#c*>pA3LEJ8?sUbz7yVB1DFlg6V$%6mub5BpMvxR343m_U)b?^U8ul(MEG+bNkgu36MCkkW<}LF6 zI8o<*Ybo-2sDcwEb9j8L5NO=y#^JgO#=l?lV7uNM%P%brOELCN3nBMT{qFo=xwv5H zO8S1I@}Brm9luLIu7b8s=7Evl(2xv`rT0}r4$Q@*B<9rO;!q?Z7YqRbL2hSf4zz#9 zvxOCGZCQhYf{?k*6<+R*0sKz5TV3|o^iJvZP_mK!JP*QUNZPlBLh>hy!8Z(EyCRr4Ov+pY0?()hSCnfn3d z+WXsmLPkbL)BC2r$e&(J(LctobH1K|%TVcS7jG%#0)$%)S0F zz}vJPE$DX9jRec*u!Z2d;(+uorlK#Kn9aBI`b+H|jaG!-H~Hia+flr!FBpxQ#Rw-i`MjbpI4$j_TwnBx?(1|u;We(g zFcI_G?7Tgns|4~pAADkAVQGVYL3Y^~o{mBH%i}fd!^5EHcsjQgpW6jR-M6u=l+G6# z(YMPOe#jM|y}iBSYmNWy@dCW6fx({^@Np`;37l!j#O3zjQmZT5U^MA=KKU#C)b~Va zMesFrK6c{CwkIc=E9rg)2n$OOP8XHr-e@U0{ zhCm=y;Hv6s(B)P?v)=De>4?u!?gKKgk@1tUTl4yM7SQ_!&{5B@U{*s=Sy{=jFc3wY zLgDvsjzHs4_kD_L?Xk-BstX?T;-VMR>E=Mq%*f~MItQmS$88H)UO}N0`r*gr`f1R) zj&EQOyFC~KTJP{eLql^*ZqLi}%giL09zU+#cPNO9cjpRaq^CDQySTKXV&`9I8weW4 z48DZ6LEXUML^p&%qv&6MT_39Wq+3-r2e*6NPcJPUmVLHe{6$%4jfaP~;yj}?f65c? zgcCQFFVxfj_WHck;U#!HU#URw6ZYxp$!#+TKb70+GY+ldf9GrMCx7cBW{OpCBKo20 z>3{v$}K2yXiy{L$m zRylL1AKy6hLfK~Vmmjn}>RMXTT3UGjMq62V)z-}+m(XMD`en3hN5J&7x`3b{h^Hti}#-EqJcmRnw z5m{5G>!#3HiY_Ml$$dq|8X;81R0Un?(C#^67_U zqjLzHr6K2sw8)nmEPh)A*B^39@19ch@v4OT(Zp4bC8)8KxP7A3=mMqO3E)en2)EMW z{bK8F%sl(vK0Kz0w8ABgSlRKI}Eq>KdHx(=Z!_p?(}c?CE?* z&X(`fXTO?w_b4v{mlvx_Zm2gAozVE6?av zS*Ko52W!O5Qur!)t|B9fP;}-ye-j-Owp4>)fxz`W+$qZ-Tro%HBVy+3P$!2j#iY)SC1jvEHRVKkZHrx%(ZyW&_?|b0>9GtYLxqWqp$s=AR&ge zQn8$}0bCPgyj?R^M@~b*C80LhGM?R_JxK9l1LJ*le1pMxl3Q-<^J0cl{8!Nb3_W49 zfo=@3$iAgzu}3Ls1Rx_f6sZcxs{!9u5kgMKhIw9gc%#FyX7W}V;CEn;M$@%0W5T{D zI`~uIOz7#PuwRo)yMGJ{L>Y(%lQ#7>Qx| zH0k3tZ5ctE5!DG&9CG#YTV)29S|WmT#8Pd|e;P`S@CS>}!IvHDo^8>;hj5(_OTiqJ z-$?_2&Mj>_(y>K&v-{K%ae-~tEYzi!bu@P%Y8$p8Oi>)8sysb5Gb`8Oy@KLo@nY68 zgaUc#{c>mAam4xN>)NuO2acCQ!H<^3VT8%4UMsr2L@x>K>>v>_O#cy&c8UiTB}?}ACjr62C@i~EZ0T&G4CCJv%k$K*55ya zQ_kVD)5y-aHBA#3}4my;Tfez5qEgHYMnp~>3sNyB#N1XRFjS}zhu!2Rz28q|ylJg`1 z+sClh-Qxv&s~OrYZ}NcSpTQcdC-Bq48ea{KY$MPE{?lYc2@BNASo=xN6}LD}VQclp zIu<#mPj|d1P2yW_nJBGYYEyNC7iK_=)L3A+nbVjZk55?p~?Z zM2(BhNM@WiL{E&mY3|m16L9nlSC~))`aPvt-)mKLLv1rO9rKc1LoiM#6m-eu<_xd4 zpzJ+7WsWog!0NXba4_k*4z!+oCMca?Eb)WzDHimi=Vj3)4s*HrS7FuGE2M70ej#1V zn!66wIwP6e{ zpC_*yy5I~bSptXYOIS?!D&QGWbE7|8dVY{wo`4xa8lY#4)OpF%E8oQv!K5GSx~wV^ z`Nnk^g{@#8Smy^`7{|qV$=#cjb^NbEeoE63|i1897q zK3D)1w4(K}L{V%iSyny?>Npv8X|JL@tvEkI`0>r>xDoen*J|v?arA`fD${0d&=qM- z5?sa%K(~#?nA)ljrL8%hsD9zW3;|mpQ%WNOr?FjB9`X7pRDa{AWg z#QX03;5tpYXhX|8>&60QT?U`Dx??M?nBaFB`+PX31(A*O^ySfLKvf3XSlaK(Qirxo z-2C|I{{pFyZ>R9Sze)?(U&k*7@`5*v#_AP&Vpw_nfnThq1Cq6U5PNJQ znz(AhGE^-nw;csXe7cX0Dkn5AzE}g(7y7Ve@FGdZB|c@lWH6!!2-n33Q;j{ zNAq6TS!}u7^>`K28ReMx4gQf@h4~>6cXrkBk1L_3T`D=)1vgES9x&@tG5o~Me-x1N z4r-A^I5e;PO|$h4-g_ibnb3WkT%)5UO(g4XV$b)i|5=EV_rdTRCC+7ubApHjWnTP| z9@St*MbFlk5Bw1}PS#zTNc9XOJZc6JvvdALrckgdk;5#yftapD) zm-7Eq{v#^heYKobpsDmxAb#pLhQi`jQV*KIoh;Rb?CpIcA|guVv_OHWZoeZM8yl0_ zDz8XkGgdY+q111*wK$qBg=zx>vaFIZs@4(^=^#IRk0q+CwBd=a38w04cOlO9x1rD8 z%fJHi4~~T8?RHix<3)ylRN9@vmkBAxO-q3*(|5~8bjq0th-!!u@{mNPPAiFkW8c1x?P zJ$-AjrJ~RvGCIvd#f`dknQHB>{&J9%eAuaD=;%uov5T1I8&$^m6jZ5q+(^FavTWnI ziE6wNVf;dMdwc8oyu5ygNyRE^mz>$aN0!I1r(k!6>0(RC$&KgBg@~^jz=PEng$J0#MA=wKPnWL#qzjOp` zJ}1>jN%_{U$nP0=Tl@@QZh9i!+4wS$SU8F^2>#QubJh1$6n2fTAqYWKLUPf7QPhWE zZT#sHwy*I?pTv!+yDpC|VYeBmBo~R+=FkLlB*(Ux4>P`+YS8d-~68 z626)|E60C5iD{8h%fe+xbQ-)~JRG?QUvI`cfwMm2Np=c}K37|)*f#t&yVAH}wTju| zw=ex)a)f1YQz65(L z{^__0m(taKJ$+^fO|h8nDNNke7TB$}DezRRzcv`9n{4{dQ1eh{;63Ak9pEzGpF%St z3Yn^vdZc61lhJiZ!s+~-9-M?fMPh8r{yfbz)J?g>FscohcOEl*zLNswwC%u^ZMU8c z#*QXFTr(jO;R{#{!|zqL3aF(N^1fL7G*(I#$p{}2pnG@V)|^wJMT{(r{86rr6DB&E zbna#RlXXVh04Vq3y6sOB_FH~`eE(tv@>0~9kZ@{K654MHRVM%)&reU-Jh^^;uWZS-lg&`^+p!QtR& zvBvD>x$|8RDvB1=*C#=)_b$U!JpBjBJR+%OqXAoMko_#h^e+r!>X@VwHONX{&v-k+ zj|F(>&5&l!DgNmw!E2l2#oO8Q-^c1NC7xH@8SWn_O<+l}k~otuN59qCUCWs1@sLqe z*AA71d5$3(nNv-ZjDBS-Xn8oLqm9=xX*uVfTKwCfIXgRRzwUL9-qPWAxdl^-Zv1b9 z6nX?G{POrzMA$c4a_Tanf}{#^%PQ;0Z8tozToy>}FzN1NoN<<(qFus{%`Ght;P!veJZ%#S1=Z z2ywIF5bd+kE_@o7O1J!Ll%;!bTs+?-PI_RO7VeuKroo~yQ(RqisC}OsXp$g{r8>hm z#>m3mah6`Ss${aunGX2MJ54GL1UOqRoOMOnF}+Fbk^hRujqYrqnZzP6f;7qDi=QwU z9U!J-p5EdOO65veps4e#7Hp*ywEE2;-J`Yahg`H*m4|LB{YP8CG@N7gv7dH!)q&>} zgHaN6F*>{9tPx|%SDhl)2;U6WuG9E6rt{7JWeoR4{TpAd!I#`3lkR5L=5^Fs! z!I679QgjB`utt8kK17xm9d;kW@MKYx zsPU8bG=vfNQs&vle0c@Z7@64EI5&(Z#sz<6mQhhrG2L}(`6!Lem?IM4w`%v)fZjBA zV#^h~pqQ#GTawNmw%3S(Q0uf98*Ctxb;@Ljr%6FhKTbT6ww4gEh1nlTx&sOKcob7} zzyk>=f42#2D67<2^G4qjzal>SCl0PZj=TPQetdj1aJuC-@K~+i+22P}=7Odq`_|=l znEqX=VZVwzTh|4WE;&DN@D=L^!{+iTi?KVC5o@K-tuDMKSKq=5lhPp;f-)NQGp!e0 zWy+!spoYUgkHXp6*?yFz(f;*z;X3F2Hs|Gzw^NB})jrx)I9q6q8>cKXY;yY6+O0n( zR%mSwwWS47OSaBWBwqF>3fu^#va8n0_B;?r}ZknOYmrZWJ@ZQa+E1zVN^p(j*pNv{Ec-$K15T;?rYnM(WgIjt0htkmKQ z_%=96-uN(PN5yEh;)j5bSq^i6$`S<1^@QuV_fZq`B-t@pI^ll%P$$J+Tpf^r%;aU{v2W5BVPepTW1+Gls6YZu8B&l$t8Nq^jp zQRLx>w@U##DIszETox;iM&C8hm$2onwh^S({p-+Mrd7`8w1<{On)N4#m)w4~25O`g zC)x55e`Wic{R{c9Pn}K8xT6?nnCsEV1MkQ;^Y{0(BrgRWS%=S#v-YA1E(977DY8Pb z)dE7o2@P6QwjR}If8*!yP zn4pf0IaIECZ$oax@wFi{Zvf#h>%L9Sk7*Ya7typSOOWC~iZniRqqF6=SmPfdwqUdo ze%~mEd>{=K(2uKhr+q(z5x8&9ONzIdx$_@3+QXA&?F9}xO$ZOVc0L)5hOh|uErH}Tn^3o5#Ix8JXgwywY0t}Wgo zGHF-*cRiXhqs*I$Ug5OoUdAr28KKy%0?p(&x$N^TEaTFLkIiRj{oTU-!ncTQ+VV6x ztaHjqsy>yJlw6aFu8JgviSWgLw45%GYil^=h8{5w4o^*Hij;m-CVu`XO)7Z%gh9kk ztkAxJH=uyd5rodEpS^f5Bh#4EBn}coynp)pTPw0jVBUc_F61J7XN15`fi274r>z8wm#gGhvA&C9!u@k!;2~&q1^($`O#6O8GmZ>pKQPIsY`|8~Jc^RnQi_q~nX6HCa>N>eD z>W08<&=jkb!Sg|$R}-ulY@4iAJ$lb|dojoPFgLLq)np4+9c8MLMqk+dvSX)pa!>Vz zZRqw?rz$PCJc4yB_ZOx5tr7X#=~qW@Z_Oo&_-36fnRo=i1=NL1?R?DWoLU(MY$E`kOsDYdJdj=gk0i6EpEWf8(W`{_=1mgEOwcMtjw^?9g zO96oNY~Cz7EelLui1xFzHS3Dn;yXOt5GzHn%k=p##?G-jUp{h$Rv#O4clcWR(JK-rg<^DWdoyS+nym(|(kW_t*1;loZ)W0^^4s{F1UVdBIit z@ziYoq=N<>L-f$zQEeel`(XU;9m`hh+-6&{u|a$-n{cHI+0v`eyzh$y*WgFFCW@yQjrU`U8W) zz{+u()7N8sQ1961X(ng!_YWMXkqX5su43LFVty18M@M)sm(Rvoa$V}3SfFM+hzo=; zj8E~pGzBlnNznFS#Vbb6O2 z)oF*MQBZN8vgR_O!(Am*FSIKroZ9y!=@<=vz&C&qgMtGV78XAs{RmLiqU{BnO87La zn}GVq`9qpRc?@{?S-J#A#_gh@Vc~Jf#)EB3+JPhQ%)E*uq?jv@A4-&qGkizqr!FfLEyZa zp|%67BtaoLWC!c%`MLS-ua$1QJ9l&Q;S`XbC-15>D&X6@Ga#4XiEy3GdVA{g5S09Rg5GRR-cBP@ahP3?#^wAtW&cVeQOHPD53?WLakGL@fcxRDNb>rTJ8` zffFj5fk>CZ+E%cl4Ijm zK$>&2%dgtRF8WxKE@Y^k*77Cv5SioC(co6fhI&1tr z45mURU3&qQU4jB?q@^B{w_7duoort7-{P^Ei zUl`PN7r4x>Sy?g2_PWy@85t?5tVGW|i|w%KWqUbVD*9D~u?tor}O(8zMjVo|-M&9rg(c=#n+yd`0$g~CA_Y%G*TMZ$SNA*bCADCAhOVH?2- zD=w@f54(zZuSL)brS6V`Rqh`xaxbvnSiqnw;K&;(bz#kbx|Q))KD-S2wEsbx0~N)L z*4mtq+1hWg|KSe&{QP~U%IJ-@t0Uy^53>K*7X)QqTg8hwaYsH2g#5L1nAyG^o!D{Y9dQ(E#CM; zzPW)6>T29@8*d3ce-2Nnh6^bO6fVsvctR+R_^hzC88$ea!xK^@Tupbx=u(6Ubg(!# z5{YKi#hEDPdP8<>h{q@rXPF)Ij90)mm&-?>&)|-sZf&rd!J9CYwYB}Eo)>EwgwC>D zJxo@$*aBwy2UjJ~D#;tPLIpkOqTUg!-2$~JYbvWbMBbL?f1S`~Jy2pNY%ZePx)e0> z*aG7|^?}8COy@rb7?Z(x@dapC#ErnBU`Qxq;YJ3mz=eK>4f=E#5--QT#?Qsr|80i4 zkWE4V5nw}h#kfm=F);^&x+ifCC8m%;_if5Qglt8lzswaT>Qlh2mGaP5e2oJqqmEw~yYY2N*s2r_+ZHNy#X8ft3dCMG6Ze}76xsJ|hJ zL*?hWwRi$tS_DdhPWGkHHpJK_vR=Z1qc>)8V6BOcv-Z+Q#vyUH5%(|!K&ySl%x)|% zOdPAM#L;;$2M*=F>NFGGEF*;43Rjjz!|*|P+N~1pt6|2Y@K{Q44HqezrzOZK7p=$+Wk(cMsJGg5n4vCTDm7iv_RRPc%6YsrI_tW9ud-Osq^Nq0 zDm|b;;6tO&b7P_vbYa0cUZ~z@GJZt)hik$A`%V1?+Z0N7WSwlh9a}3N*|nP(%O}m!syity|hq&n8*muDP9itdDxEKN~?e z)3AP1hGlMl>`#Hel}mOnDA#37@XGq)ku>2@?Z2dP9AG}hV{xshWFAVW{}jhzMf~C< zP@`kzt2r#E-Hc$4ClQEe`IRa9w<8M3W1z;%-ZbS}-z`VawOb5F>Nxj?^tvQxqk@en z#0-$UaJBg-)68@Ry$Lvwdo4GSI9jWBr9T0-x<0lpkC1 zd4EM_(-ruq?yyz^9G?=;mj=u8hsY=!mo$rAN;|>ua(Mk_d;w~AABO|+sGDVE4K#F( z7V!hq0o58_ z7f{dNd?b#e2n~+-?@t@v4gQzu%RkkJR9c3SaqcIfi~B`oCK8O(aS%;8N$tv6Zh@A4 z&=J?wHTK$|vgB7RBj!K2YtpMklvz(avy1H>yileU7ayO?ZcPY^D=v2Wh(d4t$>fg+ z4|nY1x7^<74uF!g9MG4cNhb`S_X}UE>p3kQT?iDLRWmY@fkLyz%2}pRUuS;T?W}qK ze~v|C=c|pQlT$O4BTeJ*Lj0%V=-r}1W5dig`fxHGlkZR36-Ux?dG^O2CRqA1?}_s5@Pv}$=V+D+1198Ai}(fWv}`X`gs2SqeDR-dhlME*eRLw- zP!{zcvI&7AiQjES#zHdk0ZLXLJ z!xgDaKwwj1JK9XFz^HW6`&LI2oyYag(&KE+PBVAeG7sZxu=(~#b=T*|QnETvhRmjU zC3Q{)cd%&T-18>EP9N7N^<4Yc#*NtI*n&Q)K@kQ~O7RA`4Dx`mnAc1pl4Z3NO&Q(Q z#PtzMO_S!a-QABrN&CqfzY2K@k7N6}#3L{_hM=*jV=n|Ha>M*~66g=0FW!~myJ}=L zCN8Bfxhas}Y-#bnEjQk+et)Wl{F~EIG*idei@RK>dJhWdR_N7-L$gE--*c~X4`$r~`+ zomQv`LKS&w3p}auFCZbq=IsmtzcwFv&@UdZQ7HfsLoio_YplGY>924??Ix#Z2gHUp zd(}j_zSBX%L@#w+i=Vh<3KLwD`UG^jE_5BSC4tU(3Err136v>1);LSVY>kUlR3mf> zl3wb>D08x78Z^1-59i4bu9(s03-U+e)|@{wa;Xu-gSQA02%^!)oGpD-;Vm4K^5(_w ziF;q2HTfFdR##U^gxwPh6;j}!%qbMSEP!UGD$sQ4<*u=F7n&!-{`da&+O{uzF4tFC zUA+(G(*F^wPfH?R8_{)_981Qk~Z%?CH!pBnBs|Nbs`klF0;(|)X7vdR^&P{o_LCKC6?IlWAYwX z2$*AMJkh&?NM415bVr7L;0FE#yftXz`>+8{_^(iGnmq-2$a2#)NK|6O4MZS^0e`hQ z#bwbJq_U)i`*nd?03EN^(g~hVfxL)AdFk5Gt=X&$02SV8V2UPZ7!V)KE|9Y(18GDf>%~nq+Y%<4|H{jZAcD5vCh;hpR1i=ziBnBaHRv4 zY8$iXJ{kAq>H_%UZAHD`ksmSS{xluLOD)nYtOH?{WmA9u$Dzd?<$G;ZihK#*KT?wG z07V1RKIpuiKI2@14BbEUUp}DE?5hTuMST6LD+|xP1G^h(F>hgo?XYJARx*v~FOVJ` ziW$stxU@h%{I<0cG^?CBa49Uv0Qaq;iM@vJm&4SwlwJaB2Q%fAqH$}qL}s)xhY3m& zcS6`^tf|(kGZmlh-BCXicHPaN`*%ZAn5dl2NFfr2!VFK)@qo)gHrgvbZPXvLb#FXF zzCf+cr>nm7ykPza><9unHvP2kDVJak`iyp8Gm>KBl9mf>_pN)&eKt8}pH%Q;5^~0T zVp2InM2Z!f8G$Gm1D-GV>1pXYtj}knX~*%&foF?n?WF^OA8*_UC>Z@(RZtOKqlpd6 zI4}#ywh;MsQnX_&vb{BmJ^G0VpQVuAyWL?*eLzhdjlM9pjE3p^HlNym1BEGcp>9{x zcwrbK`y-8XLl#?G7Mcqxl;PVJnYD|D5rtiVQs(Og!z_wI8r~Ng2}o%MPsYfDpZ%_x zRY_R}S{L5{hu7Q@0z6BD4# zo*<#OhwYo2n_r*_vcJpArB!4v(eLZw|rSyStNokk-Z_9Gn12DQ09CQ%8=XG z*nHvUb~u`4*c;2>rGHbU!X6Eb8T-K2b^+&V?1(%{U>*3yg1MY}OF!xuF^^|w^CT(V zpG(YW5Nm07EQ6{|$ZC|)Um(A%b^L=lSej=MB_r(RXD?iQe7Loan(H2FJQEG1O_oDW zP$jZpLBSLCwo<=^)>`7oomBTK-UpQ}{zN=H)>2=6j(d(4K{ z9f5;F@x!x`pByMeHz&z3LJ76yGng6r6W?nAg$YgIAJV?HBLd#q1iLD&F0^fWFwjDd z?Yf*-W~liBHA*hdGSthokb$oIzu&kLZn5YUa`U$uhBg&$@t6pDt{EA)1F zJwpp6{?XE&Q0)KqdzL*G3i2z|{P_9Q*g56$X;p#;!jWs8zyZlOA36$jGn3{Y_vMp0 zN=D$0R&=QylQ{eDx~e63Rpo`&LO6DXG!S3rc0AOK9U(3>;N-)sYjhYa+Yu$E<;gb>KE|7RuIG|GhMhM^*MdMnaeJeHAg zWI}_qiMAeSyFl_EiF9P=f0RgXFY5k_vvYHdeNOSuiKmbIMm$s+1csgt?QK7!b3UWf z=3T?)Ee2w|-SH|?H9xBJe0L{&^OqoC>DGOqLo6P*FFpIbEV9y%6Zo8nW|;r7@4fV0FYCOdK|3<@d5$aFxtH@4n_wY`B+18H^a@cwGv!D}osRv>oj(@UTfWdR$wJOq8EXQY6LlHu_q z6}F3XfqRL%j%cZucvZy8`^r-w25srSL09Mdb0?S6-k-=KLKI}J@ie4rI~8+!#FSEv zbZ1N6&~a*S*KM~%nEa!H_%K!_UDF5{u*SEkHoJvfuvD!QJ$ZCQ`Er(>kh%}iIBpZQcICAGBC*TZ*k*5$-EZh z^%V9$WvxTqhTM`Z`$(p*QE~>!=(TVy-333v>s1I0L%W}UAWJ%;vp1s=+4@fNUk{gN z!Q9q`DSd_Er;&;l85LU(xUmZ!AK&rCi%n{&deaJ`f1lrOQ=T5DZmdyenUTZxMjljZIe^tu zCXug6K)$N?!pvBS-bz3FBK_D=fpRZ*83Z7qIYbEik8TPRWWJ^9K`J4zRv%CUKx!j6 zx$4yb$%?vAvdPJuJ~$#dUVl5FaA}NyWjdmY9O&n>)Ztcb#U5bwty)38X`D+~=8Aji z5jZ%{Yh{SJ6SjAc$PXSqwhk|Nnbkn(--wly*QVCAOA*2uUEgYKvsVwqXR66Be~ZuL z9`656<7A4fm8{;d?GW8|P%(ZMzqM4R&nZ5_-p?&;oF>!$@C1mqO}KX2-PIcUuQ%DHEcctrm?G6us}t1j$-pT_t@X-mEDibvmLXz8&YC zT@**d5B#IA@>((ALv)Z3v>MFwGQ!yWPb$X>)cgBa8h3Z+Qq}Qv^m`h8zujyMsf4B( zRQj=aJF}Y*fk!=*S-SLsiUl$t@x+qTYbJ;V&gM@yrN)N;>a17e--r<6y9T$`#WAAu zg3;pbnqK3yIfMbawqc4^lBA`adfX*6OvH(o%5TU}?&p|Oa$DNDxavCnVCwUL@aHHP zk38T7+qBh3X8+wQs<%_w@Q6aBEYZUM3{tKhCP3LNY$kiFY>RrO-YF$O>p$8L3ErZC zD=z$^Mf{V(JIUH+BsUq<1g&Es{U5K@^#^s9RxUr)GmYYp6$9UVNcez9PX(O0o{Uf# zXsI$9FsnTMYh`Q$pDMhY>MH(JN}yi6D#jXTmi_JmBRVmrpMhT|(!#304%>2BJw8aM`OtPJ!IBLQgoFJ!KQ!i>eQhp$6scdu^ zlTEz?dZ!JgK=aoWYPOq%LNs2J&!6BpTN4L(cHP`CH>f%uxiot;N4gN+#xP z1?zHP`nZgYQCZO^H6mi-!-Ip3LD4sdzjl9pKdlSWuBEZAOD$PtDlIK`Ha|MF9{w^}UotLmZn(9$oleuFWv?1Ua*!7SLm=qFJU2H-sJluU4RGF}sM}7< z>hki9u;Y&$Q)DP0y3~LBeC9p}EFnU*sP6)xXKex=N4)s6SV`~{D#nx7W!EFPa(RV! zJ`Ku|FqFh}@8Xxm#j5V~?tKWfWJo{ZBB8f-GL?2hX9vNOEbo=X&;h}75i?|S zul8kLeY0;@UI||cjApQ+$F%_kjmm!wXC`;^T4}4xbd+Ft4ogodm#;PDMznttu|oYX zD(o<5*`qk~=ltg8wBl^f@WRpLqPB=XY(12Dj(lJNa91<8x9X+A*~crf&t*9Te~z>f z37FFZyt{CLKSp=);v-(%%^wjY9Bwp-e+js083fqSE?)Pv5|04_s>5o>WFGmPwT%VLS5p;Jpf48Eo!f9#z zz2XYo(PM^m7s^q&GNnAZ)2gxZPtX&nXp<-}wn4bwuh`yupve&wbpQf-*4jPNpopxB z(52LdbMIyJ*w)&V6#MKGT&8E6e zLT^zja8+5>-2dY)uU$z)o+3I!LOaHx9;_;l4Ug>oiDF<4B^i#~C}Y9_(-FUv?GD4f z9b*UyFVYYp!5iTBj~Uvt)^m})iJY7!m*>+)Cnz^p_&*qgw?m3_IBh_oLTT{p{`})? zH)Zv9>_R|^dfW?t)9wTVlLfUrpPHiqeD> zUs)in$AI}y=`gy%r0WpCVQaloi_9ZC2jt4!($Z4B%3{m3>B1>l}G9`Y+D#ko#)2pbj4TW3j^l;KOTJJub1=~tEI&oS2DyR&kHU+3Iyt~ zfL=3$!nh?IW#?IV31ZJ~V})X58@&O+9oA)u`ApS93gtF=P+ZuEQq_oyfpYAIebK43 zA?`&DsX7WtBT>$E?3g+?<5RdFlmbL5+(%3boo&$6(q}s~e6vwkQF`qpCkVyx!G6k- zeG7p~SDB-%t<0B?1H2uuU7~N>qKL}8zZ3BAN7Dv6Z9=8dsav_J<=rNW6}o=Q{a+TK zSc9QYk?y+X$FQ%EM?~ePqhw4Ik9g2Vs*N&3Ue2(=)Wb#B7n*(S!CM>UlYB4`r#PuPJbtaNQ=>(Bym$olizAQXBS z@A^lGY=b5!UH6Z*5fvZ1Qw59#F#njRYL4bE^AW+85fwS^T^OB45+?MNGA7`+AvSrc zG+Gg>BLhj0sJ1ZaJFk6zzE~>XlJF)=gB@B+)oCAS$nb0d6jk^zh1-_=bJGQ5DoG{& zpYm9oC!~`0q*}y>Ate`!Y~&b{}Xea`Ite!q4F{ya8?aQ}?@ zW8h7S#>M#jYkH4b->;5;o?@gVFEadNdi(QiP4Yu@Iq?X7WX9(S`q?ZyN3u{oMLmBT z^e<%lCqmVEU3E;?8dA=CXur2zjI-mkl0+7Cz42125KPk}yI|1O$B^MO#*aWJ=MQYo z_DhYgqaEo6WowpyAER(~gv2lHc$zl}9-t}eQX$`AZANsM?{T|n_wDfP>qMgcyu)U4 zwRwU!hGbJFCy;-H`MK24kiCbBXh8Y!GPI11$EG7Sx29^z_8pZLqh?E^ZrPZ!7E)9^ zFmbo|5fG=1pjDFSWL*a z<4DW%wDZk&+H}Miw;z6|Ld?ECQ8C>3(m)}3I1($VhkpcPZ_0NwJ47&HFivHX#+mdx z94@?fvV-!ox2c$2%`D1I%i>JZ;%PK*ya@3VQkN4Byt=9J1`g(1pojL0iOD6Xg|*b9 zzzb_LdG1Gx?w&*p9nqLI@1faU9?b+--Id+ZUSmg|TNUev>FAvJ(`C}7r23R+=W_an zvs%##3@WP?UOO%XZ8ChDv+gQq$`S&IhA$D^_a1Bzn^_7nE??nKEzON)bYH&s`8_LT z%3a#9@}=|iPO55gAXTUuJI^Zbzu{PrOW7O#p<2F#^s%X=KU)n85 z-Ag2&h4!OaciW84>dFAjapRV8`8DLzPsWle!o<4a^H?9F&ZnSwbybPxMB`Z8Td_RK z%7s;{{FVA`4DyxEF{|3?4+;u( z%B#<^FJ+wFRFl}i9lx44FK}b${| zKNonK)vH66sv_a+N!=v&MhLpP$Ivv6qoZ!dV3||OGG)thT3Ct_5`xz&1@tx||6ntn zN2aG+z@oniCo~`(-=eG(Jzkh~tXd)F$G4MoILborq-$StG za}EY+Y9`MMLoBa~$rN?5kqN2?p_ag3dSbWH>gPAxi5KhQx2ONX^uRh_G%%6SEY%2uyaGdS0Sn9TsvYnx#{{_pzH5eye8DIr4q zqA`8)Jozz(gdBD>tyz{9D1B)NJ5@Nt5W#1nnAZ9qXw02S3_AE)W1JcK4CphZ22Hu` zzG(dF)Acpq2C{ZVV#lLHt$(WRdWU>0{`%0JbfB1 zLwmn3FaEKvE*S{Tk_rkY!qEx-s~qco&r-U)qL@2*lZQIMUMZpRdi1HAAq&IA#?FIa z6MiNe-he{6*7+1(dCcqVEY&|G1PE=(iI{b5O@zZmaoFQP8C6o1Za9BZdOmzi>~5ub zY=A7`DogR>hdgSUbViF2Ht>8NKHe&60bI?0gZAO>NTygbJ3AZhs3H?^g3C5mK!qt} z8f)m)A0YYs^q57Do`X;nraz=NL-4ZsQPtwCZML+*Uga>Yy;ZFxuRqeseSYPTBkqu0 zg34Yifoc|uYc;4Xe)fEEA;bOf3$wUjRBfJwer~Xe#tX)ofR^Snk}E;*y=*qwJUg|Be!6ddA`&Sv-x=%;SyTDk`S6r%wCF_Orf zC=-qmVLpv8gn}?>vF*1yJZa%hc>Q{GDIu5?c#?;~DSf+4RHhp55CZ}tOve=i&}s-At(o2!n4u|kXESjs+FAd@aIfkwXsf)Z`i{6 zlD9yCK$Eczb2LU#i1ZIYQt-?5*m8^H{u@O8o~}X=98e?>4}?3iDwvB zZG+EpU2J<+|;1(y4Xw4!0OZCBF&OUOhj=)k*t%sLldg+kj&l}C`R%Nt8(Uq0kjHu%@3dC(fr?jZ~TWCC<=2XYhGz z{}&enXZDEQwx{|k8N;_Rtx#u;gSb7RmwwgXsL{#xN5A-Sv&1B0>hYWYqSh+f|+SoiRKUBJS7jNc3c7(71M%tZcOL3N~sz zwT$*~N})4tlC-FP3^$*?S``Jed|slxiqur>Z*}O$>wA91wzyveiZb0yuaEUH#hIa4 z8W%jXeKyy)Nh8uNeQT-dYIm+VRlBWS5}eTNN$ICe*a88??=3tu(d8JcV$Q#~Ts)Kg z304%M1a?NZKkmR=OOQkY!~Ucs(R^ebbJkqa>YKH&cx&r{}mZVTWspcaG|Ez^4T?P*^9pcNb?128&_&4y7#6FCA< zD`0CNB=KWz&XQ+3G*DEXtu;I=$vN)jI7Z_tb*}e>CO}EMbi}j`@N3xF>KN-%5ZC5 zZcrd_?ws9UOkBXU)v=V0Vpyv!z_uO$dXjREG$dZXW)>0(Or-pd2{g8$TXizR)8c9C zH6dJNyjlppL~^=xFh3rkw*Mi)G5woBJuOEDU~;#nqJ}zw@`osY^-VfD z%0Uq2n#&YFH1&#Z_in)0g`%XkHVMQF2>emMd&diE=5R9+e2ImNMoa>4cL({vS^x(p z!AVfZ$H(yc*#rQa!8hi=8Yb+DV4lF@uxy$;;iz3Y9WeD~$yH{hjHHr2w86vb4=DOt zX7v1Z!Tmg^X4am2cvF{`woC9OXS4J4OJ`#?Gf5>zLCzeAZ^+48Xmbp^2jqBZ6d$5zQ>ARZtgUg z1ibzhB}m(r;CEz#Zh)}v+upngx^D?GG|vRd})4o_JUA*R@&qWeF$X_zi~Ph&fBi}+Hso^bW3tvz6;b2aIzJu*cpQ7>6$7%zNLjlFhJh{I@rOlUpoblw*}0s ztndnPWg@;kr8K}W7`)X^?2Kai!eV8;uXoJuX4Y&bEJQ((<+tldAVv{|kY6SeT0YM* zC70&+hVmR8y}glV)vWn-dTQ!fT8)21O~A1ufU8X{E)ML8d9}DM_qTLku?OCcnY;b@ zWeBI*UBEr+iYW}guWEww!ccMWqh*H2#7Zf~8&mh*%#%@X)7O&6c=Icj~EkA6m z(2JRpi+>1Rs&40(v1Tr@Iw1ek(>Y>*qW%1we{r(Xn1zO(+UG}-x#BS2L8^~})E*D; z;{Or5MJ2Yh=W9&H2=y+4javy9O~i_<`5$^2O~?zceJVuMA(4M!nkFM-2F)$$laRnu z_10cq_!4OL*3qjCn*s6OaLK{XC#Ayo=*npoW@x!Rf&}xAoIVpb!HuzOPc#E=%jTp5 z)YT&jdY#ND$t$FTZ{EBKUT_H}7BBBSYplteuptC>)gRf=f9KN6 zS-hrAYD7nLlsyBFOM|bADpCVC1aNnbZY2g5o?E}vr9CUYE3^Im0Uw&*#=#!)r0`>- zZxRO6mQPn*KRXo9T<@zBy)T)~N2-FSAZi`G^cnqP*XqMtkKWXOXTe>e@tlz_qylJuoS8o903*aYctn+?Gd?$P95ZHn_KJ z%pjv!q!Y$?yWNa4;bOdCMXwCYg43qVdM}mmqex#`hQ)E@m@u#4#`Ng``)F!^`L)cLcdc4zl|IbeO8cB4XVzZ93$)$ z<~h%lcK3M?d}Co;{O~fTW(`s0X4f6JF9+VFnI4w!_jIyow79e zzS6I(Z&Z^>$-(8ZKSE;qf#|oUAjE^WL;wBtbHa~(84!;P;ybnyzx>cBl^V_ZkOF>1 zS`&1QS6-I1L3v2UYAh_02g5qpr+SPzwn)Oc6a92_gdR@o?yDmk?dcx`c*tMfLoc)Yv)ix-I8E#qN3w%>n*)6AyI;c4iKFUn&thNzq$x)>)K zgV%zK{5W-Sy`LgOgbGyD#28N3Z`o)fwkej|Q|@j~lh+o8yt;|^zf%!(_6McN4>D8- zj}*iFYiCfA6Q{DSlyZiJ*D7+ubK+3>#Y9Qg->Y- z_CFZ%MIfC^26~(-jz!<3a1%2))Z%s)6?i_r#4qsf>AWAMG~Nr&t;s=HbcCie|GHHX zd$LJ>D(shVWHsOfz+NUX>p~KU-HMF==0&qJT%HVHI~n5Yhh6T zs7(1Y)js(X4>pR~KAkAnqvhB&5}jd9(-c`ewZfBssHac9dE^~^8Ty?v7Cdu zMECISklEv+CG1WWPfQ_p{#Ez6z|3==ug%@FPGt-gx+nBc?6vgk+Q({fc|%U;zjVRP_R=W;GxKQlOxqyeKQOH5&??y7U~d))h$ zp2M-6(uZ+5`xH^x=6$4g?2{0PD=)fnw9Fs1vfX3w#;NM>sG{5S87ieG!UZLi6jC%a z9z~fsA!@zQ!Qsffe!Z(vn%O3()_Ul3veiSo;?bo+yh!7`AM|VsA3~~ZM5zA}|Gxi8 zMChCnx7vV@^+z*f%*d%5L2cT}T4K)B%x*ID~n4L0T7I-M?#Gqg)m*)Y6W>R=t1v#{Q) zk5FL5(Qps_rY%GGGn=6LJ)fPVcT?O zYD(ARdu**c1zluc_hA5Moe;%obdIVtc1mJHO$F-yS#pLVa&k}wBI}H2xzj?IQ+^XD zA2Np>7@{rPPC}&v$N8Vc0#RZBjlPJ0w4_0eTj`0GeRoDU1;LAx8>n)4nBu1 zE=7lWD&%;d|FbG|{<$JK&zoo8UR$Qk%|&BIa_c*JUgk2VF~ePwr{x$x=&ike%^A@G(}TjkwEVwOZkhHC2t9!O@H^M6yd!ljUx*OJ6q3lx@P z5KbmTzuGp(s?}9j-Nil5i@i|07TLfYFP%*0ahL|%h3v|2gJL@^B6KBr4Ivt^y6m=# zDw3NL>$ocd_3GBDzmy=Iw-`e9qXuJ-(X@vNX;5E~{y{#ZuGh&z@xJ8;Zwez`-enRL z?KIOQL*=Vp03{$y?uiufey%DZ%;A?YJ6PB$8Jkd*!rNa6@L%u}$r0E`ZBL+5Q-E-j z^PkZtw3MN~idM-`?>{q+FV zfyMBr&WIExAH%}Rd!5(A=>|p)&6s8K0_fkXQYxU+vC@3~H8>kd6Rw3q4}PsFRT7-i z?*u+zkbOY^Se|zTr(X`G_btv;Ti#<*=eVmx%1MTwbK{(|?WU>Y^|=J2aOcXoQUT zY7*t#j+3q1^9Zh+Gjd-_2%EE>m7Xe`L?J}dtTQXxiqK4ree#5Xe&?=}>b!m+lR86U zvU*)bPH}F{uc~rq#K`fq$E;DPoN@^iM zY$0s6EiE|t8oAF!O?p*2Wi6zsPvTLD1=2YDT&2DyAEv2pOm1qLG9!slDC?YE->DWf zJF_m-ilu;C|4jHkE!b*5V`4JqePp%t6pq#)O7_)tO@ZFygQZBP!;mFPS*wK z+gG>0Luusn;T|+NT85pj=Qv1&PX3F*V6yPHYbfF{&<}WLU2~vcUKBiY>+{bYY4yO2 z-^_$h!8ftzM6cW39#uNA+U$s>>%lW`tU^4k@Zw@Hq00PWd|4Frtng3r*MQ5*q8{(e zBF^r*>wyJAbnDZwqIypb<-NzX|U6xwAv8VIckB&Os6 zd8m;g`mA*w_S}~fA3e;>OIvzw?zGlkQhkvl7TE#R4Z1Ei*IvME=3gB#>UDXJD`b1x~o^hVS_*k5O4!+3@(dfaKKO zPhe(>ii!CK1TB-?PI`uh(ZHb)9v)6jPmcslOiv)>LT*Syi4=nNo*l4-g{XxE10+;b zI#E#yaB_@@Cw|u_vJMVRK;03$v}6S7busM0GBEt4#Vq#s7w`9cQL>A@i6KzqY@G-7 zt6)-IJNSX|@bDa*oRAuZ)~BFW=M$4RCU(36>@jwdON_=`pt)S3&(B|L?ut0%Zub{5J_hdNl zl~=9bwKIU51E&uOHa0djZU4}a^J77r;o;r{idS!M&ut;?6RRNqO+$!bX=@t+J`o)wBPua5@mmiM zStFz8KxoMQCe@ke2t4w)z(G-&XpBR7y30C%O(hn$vttA9vm5*B{=P#TI0bdgxVv1J zhPJk}q@*NlX-P>&hBi4$4EQxTT9QX>8f`}Kg#&-RY-((r+!}~gq)o=fOO`64wzs$U zy*aaVsh@EH5c8;sy%fEQ7qqm|GExAn{zWMq&6fa4D3nlWX>0bp)mu**1LC^Rpx0O0ozW4k(LW@;xVC#iXP ztB=SwafiCf4*gMhkl?vFJ%|LzGGFI%&&|z6Jup4b;4lv@DS6Ro#6Eus;Qq)36GLa4 zeSRr<2-c2{vFHR0z0=e9vBd0K+5f__y1GQ!*w|XzeIM?H)Y7U zB4{iY78<&-zaRDSBP~S2!h#w+>2N8UbPm&)`g$HnFOK+q@Og~eJunp@;^5%4wvpzK zdF_r80fzkM%QHZr3dtf1tukQlP&9pnp7K;z-NB$g480 z(oeH*inI>wqM6f_aPdx7+QLBI-GT2p{KVUXS%Ie3+5~7w@X0DEi2!CBxS@EIlnFxb zeo6pIB{2Wr-nRR0Ufd#P3xY`@{&-JdR7DKNr*uGoD7en-9AgbbL-ZyicqIpTLM=ft z8scu+%Gq;|kB(lj2|VH}t+`^1jEt2gb@inNR@#l&sP#Zf}1M z*qyzf6jM;@7vj3t1d7TlDwr7`ZYWw35)cqzG>whP@bH?N zo2Nm;jS-+uhnEB2G_|)F9+159Isu1b00LYx&=z4TDB=D+5J$;`goN=V$)>e0-Cjf-*cb^d2Z3 z)j>f}M&|NtQ#vLgfdRm6K#z=%=7|rZ&<0>}0tl&M5EVwp$A7kunliJoeM(Iwq@DIq z&tNl@0!NjSmOkhWL0nxzoe5fK#EP{19%EWL%oS%?N8SHF|JneJE7HKg0Ens}SK9}i zQEh1mn6Diif;EwU|@0j+a{i(uM?t zZ(ts#tTJqf1oKRBe0;po?#J`H?L=|-?T>O#5fJ}(sqNKkz}}?CeZPMWz0xDH}|83K8$5&dyGU@m!%s(B|eO z=I8EM#taDEOtiG2C0ehVP2)J5Wp0qqXPe5;=u)I79P_QJ6lA$#)G_(Y}hDZ@QK{&dHg&kHWrVB1Qo)>#ug4l%ivw`!Oo`SslE;j z*iLd}e7nSYD#c)7X^D`ff&!_ntNYsNbCHyvpP-3dys@(r4vfB=fcBZBRPv>!W(YKD z;09CD*{@137OYS!ojwF_nx1=ldV(;<#Lg~jV?*!cGrgM}AdDVOug%d=a5Ts*M)Y3S&LuLq7r8ssJdC|V~ES1#BE;L*u#fX&-W-%BPo zc6Ldbx2~>V|NXr#(yM^~=&*oeNXXRqZ-P~4^VhF9Knjqm(vvRHa#b$yl#`i!)3jm@ zA}DB;0!QB2@Q{M-ZY$|g9-{n^E6~5Xp00^1(BlIu@FtLpbCw+3=vM@|n(LvWqQd6q zr9mhyEkyyyUWj{06$q*$Mmu?*b-l)3t zBy^y1cs5ZWJ_IHVn4kz`IW&_Fu(R_&pFJR-H{J$DMpn1yyJu%-!Cn8*oEFcK@9*z74i86-2r5e_x9wKmF~JdK<4G`=SRoQjVD5hQ!Jktsln6_x?Ev4n}vpj z;o;&2gHwR$BT=HYN%iP`+u{UP_elpnutP&!EBGfyOGlTSmKK3UCeS-Ig$Gu8NbvBm zf=RnOe9nRG)^6y+S~7m%@OiGt24Y*DX27V!3I`z zw5Lybz4S5#2_4b7Mbnd$!ElZQ9P2Z0k(;}_>{rU)$>N&AGbt;os${|Z1p5OnyYC&f zEmSLG=R9F#Po*&XGKpTj8vLJO{eK62_<#RVy~7q^{rT?!3AAg2D9WnIR7+We{vS$K BF)085 literal 0 HcmV?d00001 diff --git a/docs/src/assets/output.png b/docs/src/assets/output.png new file mode 100644 index 0000000000000000000000000000000000000000..c26e7e5b19522ed3444e008d4eef47e98bc06015 GIT binary patch literal 48433 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�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 import Pkg; Pkg.add("Reproject") +``` + +Usage +------- + +After installing the package, you can start using it with + +```julia-repl +julia> using Reproject + +julia> result = reproject(input_data, output_projection) +``` + +This returns a tuple of reprojected Image and footprint. + + +Reprojecting Images +------- + +To reproject Astronomical Images, primary requirements are Image data (2D Matrix), world cordinate frame of input Image and required output frame in which it needs to be reprojected. + +The Image data and input frame is given together as an [ImageHDU](http://juliaastro.github.io/FITSIO.jl/latest/index.html) or [FITS](https://github.com/JuliaAstro/FITSIO.jl) file or name of the FITS file in `input_data`. A keyword argument `hdu_in` can be given while using FITS or FITS file name to specify specific HDU in FITS file. + +The `output_projection` is the output world coordinate frame and needs to be a a [WCSTransform](https://github.com/JuliaAstro/WCS.jl) or an [ImageHDU](http://juliaastro.github.io/FITSIO.jl/latest/index.html) or [FITS](https://github.com/JuliaAstro/FITSIO.jl) file or name of the FITS file. A keyword argument `hdu_out` can be given while using FITS or FITS file name to specify specific HDU in FITS file. +WCS information is extracted from header when ImageHDU or FITS file is given as `output_projection`. + +Order of Interpolation can be specified by keyword `order` (i.e 0, 1(default), 2). +The dimensions of output Image can be given by keyword `shape_out`. This can be used to change resolution. + + +Example +------- +```julia-repl +julia> using Reproject, FITSIO + +julia> input_data = FITS("gc_msx_e.fits") + +julia> output_projection = FITS("gc_2mass_k.fits") + +julia> result = reproject(input_data, output_projection, shape_out = (1000,1000), order = 2, hdu_in = 1, hdu_out = 1) +``` +**Input Image:** + +![community](assets/input.png) + +**Output:** + +![community](assets/output.png) + +Test files can be obtained from [here](https://www.astropy.org/astropy-data/). + +Related Packages +------- +Check out [AstroImages.jl](https://github.com/JuliaAstro/AstroImages.jl), which use this package to form coloured RGB image from 2D CCD Astromonical Images. + +License +------- + +The `reproject` package is released under the terms of the BSD 3-Clause "New" or +"Revised" License. The `Reproject.jl` package received written permission to be +released under the MIT "Expat" License. + +The authors of this package are [aquatiko](https://github.com/aquatiko) and [giordano](https://github.com/giordano).