From 3985aee733bb98c6e32a32f279a2cc9efa109ca5 Mon Sep 17 00:00:00 2001
From: Julian Hasreiter <75797743+Pinguin2001@users.noreply.github.com>
Date: Wed, 15 Jan 2025 16:50:38 +0100
Subject: [PATCH] 9th preview
---
404.html | 2 +-
about/index.html | 2 +-
..._astro_type_script_index_0_lang.rasoniT7.js} | 2 +-
...g => discord-mark-white.S1wZj-yV_ZvFAzu.svg} | 0
...j3dn.svg => fluent_back.PEVpv7Y2_1HFgGn.svg} | 0
...g5C.svg => fluent_mail.BfcTLzDF_Z28C7gv.svg} | 0
...vg => github-mark-white.S2fJVXLq_1OxW5X.svg} | 0
...enguinstore-screenshots.Bx26h1eL_1TtsFj.webp | Bin 0 -> 10416 bytes
...Oif.svg => penguinstore.CpoaIpn6_1zw4gc.svg} | 0
assets/penguinstore.CpoaIpn6_Z2jQohq.svg | 1 +
...2oPNSh.svg => telegram.1EoUj1tS_Z1COoc5.svg} | 0
attributions/index.html | 2 +-
index.html | 2 +-
projects/bluebird/index.html | 2 +-
projects/penguinstore/index.html | 2 +-
15 files changed, 8 insertions(+), 7 deletions(-)
rename assets/{ClientRouter.astro_astro_type_script_index_0_lang.BScVxmeO.js => ClientRouter.astro_astro_type_script_index_0_lang.rasoniT7.js} (93%)
rename assets/{discord-mark-white.S1wZj-yV_1WHh3p.svg => discord-mark-white.S1wZj-yV_ZvFAzu.svg} (100%)
rename assets/{fluent_back.PEVpv7Y2_Z1tj3dn.svg => fluent_back.PEVpv7Y2_1HFgGn.svg} (100%)
rename assets/{fluent_mail.BfcTLzDF_omg5C.svg => fluent_mail.BfcTLzDF_Z28C7gv.svg} (100%)
rename assets/{github-mark-white.S2fJVXLq_ZilA5B.svg => github-mark-white.S2fJVXLq_1OxW5X.svg} (100%)
create mode 100644 assets/penguinstore-screenshots.Bx26h1eL_1TtsFj.webp
rename assets/{penguinstore.CpoaIpn6_Z1mYOif.svg => penguinstore.CpoaIpn6_1zw4gc.svg} (100%)
create mode 100644 assets/penguinstore.CpoaIpn6_Z2jQohq.svg
rename assets/{telegram.B0Xy1Ykj_2oPNSh.svg => telegram.1EoUj1tS_Z1COoc5.svg} (100%)
diff --git a/404.html b/404.html
index 9d0c23c..846ea3f 100644
--- a/404.html
+++ b/404.html
@@ -1 +1 @@
-
Julian's site - 404 Julian's site (under construction)
Page not found The page you are looking for doesn't exist or another error occured
Go back to the start
\ No newline at end of file
+Julian's site - 404 Julian's site
Page not found The page you are looking for doesn't exist or another error occured
Go back to the start
\ No newline at end of file
diff --git a/about/index.html b/about/index.html
index a213538..6685a8f 100644
--- a/about/index.html
+++ b/about/index.html
@@ -1 +1 @@
-Julian's site - about me Julian's site (under construction)
About me Julian Hasreiter Hello there, welcome to my website 👋 You probably know me because of my several contributions to the Windows Phone platform, notablity PenguinStore, which I highly recommend checking out if you have an old Windows Phone laying around I love travelling and taking photos of beautiful things around me, which is helped by the fact that I can speak English and German fluently, French slowly getting there ;) I am most proficient at C# and actively learning HTML/CSS/JS as a hobby and Java at school. In the future, this site is going to host my personal online photo gallery of my best travel photos How to reach me? This page is powered by Bun and Astro v5.0.3 Website version 2024.12.06-pre
\ No newline at end of file
+Julian's site - about me Julian's site
About me Julian Hasreiter Hello there, welcome to my website 👋 You probably know me because of my several contributions to the Windows Phone platform, notablity PenguinStore, which I highly recommend checking out if you have an old Windows Phone laying around I love travelling and taking photos of beautiful things around me, which is helped by the fact that I can speak English and German fluently, French slowly getting there ;) I am most proficient at C# and actively learning HTML/CSS/JS as a hobby and Java at school. In the future, this site is going to host my personal online photo gallery of my best travel photos
How to reach me? This page is powered by Bun and Astro v5.1.7 Website version 2025.01.15
\ No newline at end of file
diff --git a/assets/ClientRouter.astro_astro_type_script_index_0_lang.BScVxmeO.js b/assets/ClientRouter.astro_astro_type_script_index_0_lang.rasoniT7.js
similarity index 93%
rename from assets/ClientRouter.astro_astro_type_script_index_0_lang.BScVxmeO.js
rename to assets/ClientRouter.astro_astro_type_script_index_0_lang.rasoniT7.js
index 474b5bc..d984cdf 100644
--- a/assets/ClientRouter.astro_astro_type_script_index_0_lang.BScVxmeO.js
+++ b/assets/ClientRouter.astro_astro_type_script_index_0_lang.rasoniT7.js
@@ -1 +1 @@
-const b="data-astro-transition-persist";function J(e){for(const t of document.scripts)for(const n of e.scripts)if(!n.hasAttribute("data-astro-rerun")&&(!t.src&&t.textContent===n.textContent||t.src&&t.type===n.type&&t.src===n.src)){n.dataset.astroExec="";break}}function Q(e){const t=document.documentElement,n=[...t.attributes].filter(({name:o})=>(t.removeAttribute(o),o.startsWith("data-astro-")));[...e.documentElement.attributes,...n].forEach(({name:o,value:r})=>t.setAttribute(o,r))}function Z(e){for(const t of Array.from(document.head.children)){const n=ne(t,e);n?n.remove():t.remove()}document.head.append(...e.head.children)}function ee(e,t){t.replaceWith(e);for(const n of t.querySelectorAll(`[${b}]`)){const o=n.getAttribute(b),r=e.querySelector(`[${b}="${o}"]`);r&&(r.replaceWith(n),r.localName==="astro-island"&&oe(n)&&!re(n,r)&&(n.setAttribute("ssr",""),n.setAttribute("props",r.getAttribute("props"))))}}const te=()=>{const e=document.activeElement;if(e?.closest(`[${b}]`)){if(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement){const t=e.selectionStart,n=e.selectionEnd;return()=>R({activeElement:e,start:t,end:n})}return()=>R({activeElement:e})}else return()=>R({activeElement:null})},R=({activeElement:e,start:t,end:n})=>{e&&(e.focus(),(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement)&&(typeof t=="number"&&(e.selectionStart=t),typeof n=="number"&&(e.selectionEnd=n)))},ne=(e,t)=>{const n=e.getAttribute(b),o=n&&t.head.querySelector(`[${b}="${n}"]`);if(o)return o;if(e.matches("link[rel=stylesheet]")){const r=e.getAttribute("href");return t.head.querySelector(`link[rel=stylesheet][href="${r}"]`)}return null},oe=e=>{const t=e.dataset.astroTransitionPersistProps;return t==null||t==="false"},re=(e,t)=>e.getAttribute("props")===t.getAttribute("props"),ie=e=>{J(e),Q(e),Z(e);const t=te();ee(e.body,document.body),t()},se="astro:before-preparation",ae="astro:after-preparation",ce="astro:before-swap",le="astro:after-swap",ue=e=>document.dispatchEvent(new Event(e));class $ extends Event{from;to;direction;navigationType;sourceElement;info;newDocument;signal;constructor(t,n,o,r,s,u,a,l,f,c){super(t,n),this.from=o,this.to=r,this.direction=s,this.navigationType=u,this.sourceElement=a,this.info=l,this.newDocument=f,this.signal=c,Object.defineProperties(this,{from:{enumerable:!0},to:{enumerable:!0,writable:!0},direction:{enumerable:!0,writable:!0},navigationType:{enumerable:!0},sourceElement:{enumerable:!0},info:{enumerable:!0},newDocument:{enumerable:!0,writable:!0},signal:{enumerable:!0}})}}class fe extends ${formData;loader;constructor(t,n,o,r,s,u,a,l,f,c){super(se,{cancelable:!0},t,n,o,r,s,u,a,l),this.formData=f,this.loader=c.bind(this,this),Object.defineProperties(this,{formData:{enumerable:!0},loader:{enumerable:!0,writable:!0}})}}class de extends ${direction;viewTransition;swap;constructor(t,n){super(ce,void 0,t.from,t.to,t.direction,t.navigationType,t.sourceElement,t.info,t.newDocument,t.signal),this.direction=t.direction,this.viewTransition=n,this.swap=()=>ie(this.newDocument),Object.defineProperties(this,{direction:{enumerable:!0},viewTransition:{enumerable:!0},swap:{enumerable:!0,writable:!0}})}}async function me(e,t,n,o,r,s,u,a,l){const f=new fe(e,t,n,o,r,s,window.document,u,a,l);return document.dispatchEvent(f)&&(await f.loader(),f.defaultPrevented||(ue(ae),f.navigationType!=="traverse"&&D({scrollX,scrollY}))),f}function he(e,t){const n=new de(e,t);return document.dispatchEvent(n),n.swap(),n}const pe=history.pushState.bind(history),T=history.replaceState.bind(history),D=e=>{history.state&&(history.scrollRestoration="manual",T({...history.state,...e},""))},x=!!document.startViewTransition,I=()=>!!document.querySelector('[name="astro-view-transitions-enabled"]'),q=(e,t)=>e.pathname===t.pathname&&e.search===t.search;let d,w,A;const B=e=>document.dispatchEvent(new Event(e)),U=()=>B("astro:page-load"),we=()=>{let e=document.createElement("div");e.setAttribute("aria-live","assertive"),e.setAttribute("aria-atomic","true"),e.className="astro-route-announcer",document.body.append(e),setTimeout(()=>{let t=document.title||document.querySelector("h1")?.textContent||location.pathname;e.textContent=t},60)},H="data-astro-transition-persist",M="data-astro-transition",P="data-astro-transition-fallback";let O,y=0;history.state?(y=history.state.index,scrollTo({left:history.state.scrollX,top:history.state.scrollY})):I()&&(T({index:y,scrollX,scrollY},""),history.scrollRestoration="manual");async function ge(e,t){try{const n=await fetch(e,t),r=(n.headers.get("content-type")??"").split(";",1)[0].trim();return r!=="text/html"&&r!=="application/xhtml+xml"?null:{html:await n.text(),redirected:n.redirected?n.url:void 0,mediaType:r}}catch{return null}}function V(){const e=document.querySelector('[name="astro-view-transitions-fallback"]');return e?e.getAttribute("content"):"animate"}function be(){let e=Promise.resolve();for(const t of document.getElementsByTagName("script")){if(t.dataset.astroExec==="")continue;const n=t.getAttribute("type");if(n&&n!=="module"&&n!=="text/javascript")continue;const o=document.createElement("script");o.innerHTML=t.innerHTML;for(const r of t.attributes){if(r.name==="src"){const s=new Promise(u=>{o.onload=o.onerror=u});e=e.then(()=>s)}o.setAttribute(r.name,r.value)}o.dataset.astroExec="",t.replaceWith(o)}return e}const W=(e,t,n,o,r)=>{const s=q(t,e),u=document.title;document.title=o;let a=!1;if(e.href!==location.href&&!r)if(n.history==="replace"){const l=history.state;T({...n.state,index:l.index,scrollX:l.scrollX,scrollY:l.scrollY},"",e.href)}else pe({...n.state,index:++y,scrollX:0,scrollY:0},"",e.href);if(document.title=u,A=e,s||(scrollTo({left:0,top:0,behavior:"instant"}),a=!0),r)scrollTo(r.scrollX,r.scrollY);else{if(e.hash){history.scrollRestoration="auto";const l=history.state;location.href=e.href,history.state||(T(l,""),s&&window.dispatchEvent(new PopStateEvent("popstate")))}else a||scrollTo({left:0,top:0,behavior:"instant"});history.scrollRestoration="manual"}};function ye(e){const t=[];for(const n of e.querySelectorAll("head link[rel=stylesheet]"))if(!document.querySelector(`[${H}="${n.getAttribute(H)}"], link[rel=stylesheet][href="${n.getAttribute("href")}"]`)){const o=document.createElement("link");o.setAttribute("rel","preload"),o.setAttribute("as","style"),o.setAttribute("href",n.getAttribute("href")),t.push(new Promise(r=>{["load","error"].forEach(s=>o.addEventListener(s,r)),document.head.append(o)}))}return t}async function F(e,t,n,o,r){async function s(l){function f(h){const m=h.effect;return!m||!(m instanceof KeyframeEffect)||!m.target?!1:window.getComputedStyle(m.target,m.pseudoElement).animationIterationCount==="infinite"}const c=document.getAnimations();document.documentElement.setAttribute(P,l);const p=document.getAnimations().filter(h=>!c.includes(h)&&!f(h));return Promise.allSettled(p.map(h=>h.finished))}if(r==="animate"&&!n.transitionSkipped&&!e.signal.aborted)try{await s("old")}catch{}const u=document.title,a=he(e,n.viewTransition);W(a.to,a.from,t,u,o),B(le),r==="animate"&&(!n.transitionSkipped&&!a.signal.aborted?s("new").finally(()=>n.viewTransitionFinished()):n.viewTransitionFinished())}function ve(){return d?.controller.abort(),d={controller:new AbortController}}async function j(e,t,n,o,r){const s=ve();if(!I()||location.origin!==n.origin){s===d&&(d=void 0),location.href=n.href;return}const u=r?"traverse":o.history==="replace"?"replace":"push";if(u!=="traverse"&&D({scrollX,scrollY}),q(t,n)&&(e!=="back"&&n.hash||e==="back"&&t.hash)){W(n,t,o,document.title,r),s===d&&(d=void 0);return}const a=await me(t,n,e,u,o.sourceElement,o.info,s.controller.signal,o.formData,l);if(a.defaultPrevented||a.signal.aborted){s===d&&(d=void 0),a.signal.aborted||(location.href=n.href);return}async function l(i){const p=i.to.href,h={signal:i.signal};if(i.formData){h.method="POST";const g=i.sourceElement instanceof HTMLFormElement?i.sourceElement:i.sourceElement instanceof HTMLElement&&"form"in i.sourceElement?i.sourceElement.form:i.sourceElement?.closest("form");h.body=g?.attributes.getNamedItem("enctype")?.value==="application/x-www-form-urlencoded"?new URLSearchParams(i.formData):i.formData}const m=await ge(p,h);if(m===null){i.preventDefault();return}if(m.redirected){const g=new URL(m.redirected);if(g.origin!==i.to.origin){i.preventDefault();return}i.to=g}if(O??=new DOMParser,i.newDocument=O.parseFromString(m.html,m.mediaType),i.newDocument.querySelectorAll("noscript").forEach(g=>g.remove()),!i.newDocument.querySelector('[name="astro-view-transitions-enabled"]')&&!i.formData){i.preventDefault();return}const L=ye(i.newDocument);L.length&&!i.signal.aborted&&await Promise.all(L)}async function f(){if(w&&w.viewTransition){try{w.viewTransition.skipTransition()}catch{}try{await w.viewTransition.updateCallbackDone}catch{}}return w={transitionSkipped:!1}}const c=await f();if(a.signal.aborted){s===d&&(d=void 0);return}if(document.documentElement.setAttribute(M,a.direction),x)c.viewTransition=document.startViewTransition(async()=>await F(a,o,c,r));else{const i=(async()=>{await Promise.resolve(),await F(a,o,c,r,V())})();c.viewTransition={updateCallbackDone:i,ready:i,finished:new Promise(p=>c.viewTransitionFinished=p),skipTransition:()=>{c.transitionSkipped=!0,document.documentElement.removeAttribute(P)}}}c.viewTransition?.updateCallbackDone.finally(async()=>{await be(),U(),we()}),c.viewTransition?.finished.finally(()=>{c.viewTransition=void 0,c===w&&(w=void 0),s===d&&(d=void 0),document.documentElement.removeAttribute(M),document.documentElement.removeAttribute(P)});try{await c.viewTransition?.updateCallbackDone}catch(i){const p=i;console.log("[astro]",p.name,p.message,p.stack)}}async function C(e,t){await j("forward",A,new URL(e,location.href),t??{})}function Te(e){if(!I()&&e.state){location.reload();return}if(e.state===null)return;const t=history.state,n=t.index,o=n>y?"forward":"back";y=n,j(o,A,new URL(location.href),{},t)}const X=()=>{history.state&&(scrollX!==history.state.scrollX||scrollY!==history.state.scrollY)&&D({scrollX,scrollY})};{if(x||V()!=="none")if(A=new URL(location.href),addEventListener("popstate",Te),addEventListener("load",U),"onscrollend"in window)addEventListener("scrollend",X);else{let e,t,n,o;const r=()=>{if(o!==history.state?.index){clearInterval(e),e=void 0;return}if(t===scrollY&&n===scrollX){clearInterval(e),e=void 0,X();return}else t=scrollY,n=scrollX};addEventListener("scroll",()=>{e===void 0&&(o=history.state?.index,t=scrollY,n=scrollX,e=window.setInterval(r,50))},{passive:!0})}for(const e of document.getElementsByTagName("script"))e.dataset.astroExec=""}const K=new Set,E=new WeakSet;let k,G,Y=!1;function Ee(e){Y||(Y=!0,k??=e?.prefetchAll,G??=e?.defaultStrategy??"hover",Ae(),Se(),Le(),Pe())}function Ae(){for(const e of["touchstart","mousedown"])document.body.addEventListener(e,t=>{v(t.target,"tap")&&S(t.target.href,{ignoreSlowConnection:!0})},{passive:!0})}function Se(){let e;document.body.addEventListener("focusin",o=>{v(o.target,"hover")&&t(o)},{passive:!0}),document.body.addEventListener("focusout",n,{passive:!0}),N(()=>{for(const o of document.getElementsByTagName("a"))E.has(o)||v(o,"hover")&&(E.add(o),o.addEventListener("mouseenter",t,{passive:!0}),o.addEventListener("mouseleave",n,{passive:!0}))});function t(o){const r=o.target.href;e&&clearTimeout(e),e=setTimeout(()=>{S(r)},80)}function n(){e&&(clearTimeout(e),e=0)}}function Le(){let e;N(()=>{for(const t of document.getElementsByTagName("a"))E.has(t)||v(t,"viewport")&&(E.add(t),e??=Re(),e.observe(t))})}function Re(){const e=new WeakMap;return new IntersectionObserver((t,n)=>{for(const o of t){const r=o.target,s=e.get(r);o.isIntersecting?(s&&clearTimeout(s),e.set(r,setTimeout(()=>{n.unobserve(r),e.delete(r),S(r.href)},300))):s&&(clearTimeout(s),e.delete(r))}})}function Pe(){N(()=>{for(const e of document.getElementsByTagName("a"))v(e,"load")&&S(e.href)})}function S(e,t){e=e.replace(/#.*/,"");const n=t?.ignoreSlowConnection??!1;if(ke(e,n))if(K.add(e),document.createElement("link").relList?.supports?.("prefetch")&&t?.with!=="fetch"){const o=document.createElement("link");o.rel="prefetch",o.setAttribute("href",e),document.head.append(o)}else fetch(e,{priority:"low"})}function ke(e,t){if(!navigator.onLine||!t&&z())return!1;try{const n=new URL(e,location.href);return location.origin===n.origin&&(location.pathname!==n.pathname||location.search!==n.search)&&!K.has(e)}catch{}return!1}function v(e,t){if(e?.tagName!=="A")return!1;const n=e.dataset.astroPrefetch;return n==="false"?!1:t==="tap"&&(n!=null||k)&&z()?!0:n==null&&k||n===""?t===G:n===t}function z(){if("connection"in navigator){const e=navigator.connection;return e.saveData||/2g/.test(e.effectiveType)}return!1}function N(e){e();let t=!1;document.addEventListener("astro:page-load",()=>{if(!t){t=!0;return}e()})}function De(){const e=document.querySelector('[name="astro-view-transitions-fallback"]');return e?e.getAttribute("content"):"animate"}function _(e){return e.dataset.astroReload!==void 0}(x||De()!=="none")&&(document.addEventListener("click",e=>{let t=e.target;if(e.composed&&(t=e.composedPath()[0]),t instanceof Element&&(t=t.closest("a, area")),!(t instanceof HTMLAnchorElement)&&!(t instanceof SVGAElement)&&!(t instanceof HTMLAreaElement))return;const n=t instanceof HTMLElement?t.target:t.target.baseVal,o=t instanceof HTMLElement?t.href:t.href.baseVal,r=new URL(o,location.href).origin;_(t)||t.hasAttribute("download")||!t.href||n&&n!=="_self"||r!==location.origin||e.button!==0||e.metaKey||e.ctrlKey||e.altKey||e.shiftKey||e.defaultPrevented||(e.preventDefault(),C(o,{history:t.dataset.astroHistory==="replace"?"replace":"auto",sourceElement:t}))}),document.addEventListener("submit",e=>{let t=e.target;if(t.tagName!=="FORM"||e.defaultPrevented||_(t))return;const n=t,o=e.submitter,r=new FormData(n,o),s=typeof n.action=="string"?n.action:n.getAttribute("action"),u=typeof n.method=="string"?n.method:n.getAttribute("method");let a=o?.getAttribute("formaction")??s??location.pathname;const l=o?.getAttribute("formmethod")??u??"get";if(l==="dialog"||location.origin!==new URL(a,location.href).origin)return;const f={sourceElement:o??n};if(l==="get"){const c=new URLSearchParams(r),i=new URL(a);i.search=c.toString(),a=i.toString()}else f.formData=r;e.preventDefault(),C(a,f)}),Ee({prefetchAll:!0}));
+const b="data-astro-transition-persist";function J(e){for(const t of document.scripts)for(const n of e.scripts)if(!n.hasAttribute("data-astro-rerun")&&(!t.src&&t.textContent===n.textContent||t.src&&t.type===n.type&&t.src===n.src)){n.dataset.astroExec="";break}}function Q(e){const t=document.documentElement,n=[...t.attributes].filter(({name:o})=>(t.removeAttribute(o),o.startsWith("data-astro-")));[...e.documentElement.attributes,...n].forEach(({name:o,value:r})=>t.setAttribute(o,r))}function Z(e){for(const t of Array.from(document.head.children)){const n=ne(t,e);n?n.remove():t.remove()}document.head.append(...e.head.children)}function ee(e,t){t.replaceWith(e);for(const n of t.querySelectorAll(`[${b}]`)){const o=n.getAttribute(b),r=e.querySelector(`[${b}="${o}"]`);r&&(r.replaceWith(n),r.localName==="astro-island"&&oe(n)&&!re(n,r)&&(n.setAttribute("ssr",""),n.setAttribute("props",r.getAttribute("props"))))}}const te=()=>{const e=document.activeElement;if(e?.closest(`[${b}]`)){if(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement){const t=e.selectionStart,n=e.selectionEnd;return()=>R({activeElement:e,start:t,end:n})}return()=>R({activeElement:e})}else return()=>R({activeElement:null})},R=({activeElement:e,start:t,end:n})=>{e&&(e.focus(),(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement)&&(typeof t=="number"&&(e.selectionStart=t),typeof n=="number"&&(e.selectionEnd=n)))},ne=(e,t)=>{const n=e.getAttribute(b),o=n&&t.head.querySelector(`[${b}="${n}"]`);if(o)return o;if(e.matches("link[rel=stylesheet]")){const r=e.getAttribute("href");return t.head.querySelector(`link[rel=stylesheet][href="${r}"]`)}return null},oe=e=>{const t=e.dataset.astroTransitionPersistProps;return t==null||t==="false"},re=(e,t)=>e.getAttribute("props")===t.getAttribute("props"),ie=e=>{J(e),Q(e),Z(e);const t=te();ee(e.body,document.body),t()},se="astro:before-preparation",ae="astro:after-preparation",ce="astro:before-swap",le="astro:after-swap",ue=e=>document.dispatchEvent(new Event(e));class $ extends Event{from;to;direction;navigationType;sourceElement;info;newDocument;signal;constructor(t,n,o,r,s,u,a,l,f,c){super(t,n),this.from=o,this.to=r,this.direction=s,this.navigationType=u,this.sourceElement=a,this.info=l,this.newDocument=f,this.signal=c,Object.defineProperties(this,{from:{enumerable:!0},to:{enumerable:!0,writable:!0},direction:{enumerable:!0,writable:!0},navigationType:{enumerable:!0},sourceElement:{enumerable:!0},info:{enumerable:!0},newDocument:{enumerable:!0,writable:!0},signal:{enumerable:!0}})}}class fe extends ${formData;loader;constructor(t,n,o,r,s,u,a,l,f,c){super(se,{cancelable:!0},t,n,o,r,s,u,a,l),this.formData=f,this.loader=c.bind(this,this),Object.defineProperties(this,{formData:{enumerable:!0},loader:{enumerable:!0,writable:!0}})}}class de extends ${direction;viewTransition;swap;constructor(t,n){super(ce,void 0,t.from,t.to,t.direction,t.navigationType,t.sourceElement,t.info,t.newDocument,t.signal),this.direction=t.direction,this.viewTransition=n,this.swap=()=>ie(this.newDocument),Object.defineProperties(this,{direction:{enumerable:!0},viewTransition:{enumerable:!0},swap:{enumerable:!0,writable:!0}})}}async function me(e,t,n,o,r,s,u,a,l){const f=new fe(e,t,n,o,r,s,window.document,u,a,l);return document.dispatchEvent(f)&&(await f.loader(),f.defaultPrevented||(ue(ae),f.navigationType!=="traverse"&&D({scrollX,scrollY}))),f}function he(e,t){const n=new de(e,t);return document.dispatchEvent(n),n.swap(),n}const pe=history.pushState.bind(history),v=history.replaceState.bind(history),D=e=>{history.state&&(history.scrollRestoration="manual",v({...history.state,...e},""))},x=!!document.startViewTransition,I=()=>!!document.querySelector('[name="astro-view-transitions-enabled"]'),q=(e,t)=>e.pathname===t.pathname&&e.search===t.search;let d,w,A;const B=e=>document.dispatchEvent(new Event(e)),U=()=>B("astro:page-load"),we=()=>{let e=document.createElement("div");e.setAttribute("aria-live","assertive"),e.setAttribute("aria-atomic","true"),e.className="astro-route-announcer",document.body.append(e),setTimeout(()=>{let t=document.title||document.querySelector("h1")?.textContent||location.pathname;e.textContent=t},60)},H="data-astro-transition-persist",M="data-astro-transition",P="data-astro-transition-fallback";let O,y=0;history.state?(y=history.state.index,scrollTo({left:history.state.scrollX,top:history.state.scrollY})):I()&&(v({index:y,scrollX,scrollY},""),history.scrollRestoration="manual");async function ge(e,t){try{const n=await fetch(e,t),r=(n.headers.get("content-type")??"").split(";",1)[0].trim();return r!=="text/html"&&r!=="application/xhtml+xml"?null:{html:await n.text(),redirected:n.redirected?n.url:void 0,mediaType:r}}catch{return null}}function V(){const e=document.querySelector('[name="astro-view-transitions-fallback"]');return e?e.getAttribute("content"):"animate"}function be(){let e=Promise.resolve();for(const t of document.getElementsByTagName("script")){if(t.dataset.astroExec==="")continue;const n=t.getAttribute("type");if(n&&n!=="module"&&n!=="text/javascript")continue;const o=document.createElement("script");o.innerHTML=t.innerHTML;for(const r of t.attributes){if(r.name==="src"){const s=new Promise(u=>{o.onload=o.onerror=u});e=e.then(()=>s)}o.setAttribute(r.name,r.value)}o.dataset.astroExec="",t.replaceWith(o)}return e}const W=(e,t,n,o,r)=>{const s=q(t,e),u=document.title;document.title=o;let a=!1;if(e.href!==location.href&&!r)if(n.history==="replace"){const l=history.state;v({...n.state,index:l.index,scrollX:l.scrollX,scrollY:l.scrollY},"",e.href)}else pe({...n.state,index:++y,scrollX:0,scrollY:0},"",e.href);if(document.title=u,A=e,s||(scrollTo({left:0,top:0,behavior:"instant"}),a=!0),r)scrollTo(r.scrollX,r.scrollY);else{if(e.hash){history.scrollRestoration="auto";const l=history.state;location.href=e.href,history.state||(v(l,""),s&&window.dispatchEvent(new PopStateEvent("popstate")))}else a||scrollTo({left:0,top:0,behavior:"instant"});history.scrollRestoration="manual"}};function ye(e){const t=[];for(const n of e.querySelectorAll("head link[rel=stylesheet]"))if(!document.querySelector(`[${H}="${n.getAttribute(H)}"], link[rel=stylesheet][href="${n.getAttribute("href")}"]`)){const o=document.createElement("link");o.setAttribute("rel","preload"),o.setAttribute("as","style"),o.setAttribute("href",n.getAttribute("href")),t.push(new Promise(r=>{["load","error"].forEach(s=>o.addEventListener(s,r)),document.head.append(o)}))}return t}async function F(e,t,n,o,r){async function s(l){function f(h){const m=h.effect;return!m||!(m instanceof KeyframeEffect)||!m.target?!1:window.getComputedStyle(m.target,m.pseudoElement).animationIterationCount==="infinite"}const c=document.getAnimations();document.documentElement.setAttribute(P,l);const p=document.getAnimations().filter(h=>!c.includes(h)&&!f(h));return Promise.allSettled(p.map(h=>h.finished))}if(r==="animate"&&!n.transitionSkipped&&!e.signal.aborted)try{await s("old")}catch{}const u=document.title,a=he(e,n.viewTransition);W(a.to,a.from,t,u,o),B(le),r==="animate"&&(!n.transitionSkipped&&!a.signal.aborted?s("new").finally(()=>n.viewTransitionFinished()):n.viewTransitionFinished())}function Te(){return d?.controller.abort(),d={controller:new AbortController}}async function j(e,t,n,o,r){const s=Te();if(!I()||location.origin!==n.origin){s===d&&(d=void 0),location.href=n.href;return}const u=r?"traverse":o.history==="replace"?"replace":"push";if(u!=="traverse"&&D({scrollX,scrollY}),q(t,n)&&(e!=="back"&&n.hash||e==="back"&&t.hash)){W(n,t,o,document.title,r),s===d&&(d=void 0);return}const a=await me(t,n,e,u,o.sourceElement,o.info,s.controller.signal,o.formData,l);if(a.defaultPrevented||a.signal.aborted){s===d&&(d=void 0),a.signal.aborted||(location.href=n.href);return}async function l(i){const p=i.to.href,h={signal:i.signal};if(i.formData){h.method="POST";const g=i.sourceElement instanceof HTMLFormElement?i.sourceElement:i.sourceElement instanceof HTMLElement&&"form"in i.sourceElement?i.sourceElement.form:i.sourceElement?.closest("form");h.body=g?.attributes.getNamedItem("enctype")?.value==="application/x-www-form-urlencoded"?new URLSearchParams(i.formData):i.formData}const m=await ge(p,h);if(m===null){i.preventDefault();return}if(m.redirected){const g=new URL(m.redirected);if(g.origin!==i.to.origin){i.preventDefault();return}i.to=g}if(O??=new DOMParser,i.newDocument=O.parseFromString(m.html,m.mediaType),i.newDocument.querySelectorAll("noscript").forEach(g=>g.remove()),!i.newDocument.querySelector('[name="astro-view-transitions-enabled"]')&&!i.formData){i.preventDefault();return}const L=ye(i.newDocument);L.length&&!i.signal.aborted&&await Promise.all(L)}async function f(){if(w&&w.viewTransition){try{w.viewTransition.skipTransition()}catch{}try{await w.viewTransition.updateCallbackDone}catch{}}return w={transitionSkipped:!1}}const c=await f();if(a.signal.aborted){s===d&&(d=void 0);return}if(document.documentElement.setAttribute(M,a.direction),x)c.viewTransition=document.startViewTransition(async()=>await F(a,o,c,r));else{const i=(async()=>{await Promise.resolve(),await F(a,o,c,r,V())})();c.viewTransition={updateCallbackDone:i,ready:i,finished:new Promise(p=>c.viewTransitionFinished=p),skipTransition:()=>{c.transitionSkipped=!0,document.documentElement.removeAttribute(P)}}}c.viewTransition?.updateCallbackDone.finally(async()=>{await be(),U(),we()}),c.viewTransition?.finished.finally(()=>{c.viewTransition=void 0,c===w&&(w=void 0),s===d&&(d=void 0),document.documentElement.removeAttribute(M),document.documentElement.removeAttribute(P)});try{await c.viewTransition?.updateCallbackDone}catch(i){const p=i;console.log("[astro]",p.name,p.message,p.stack)}}async function C(e,t){await j("forward",A,new URL(e,location.href),t??{})}function ve(e){if(!I()&&e.state){location.reload();return}if(e.state===null)return;const t=history.state,n=t.index,o=n>y?"forward":"back";y=n,j(o,A,new URL(location.href),{},t)}const X=()=>{history.state&&(scrollX!==history.state.scrollX||scrollY!==history.state.scrollY)&&D({scrollX,scrollY})};{if(x||V()!=="none")if(A=new URL(location.href),addEventListener("popstate",ve),addEventListener("load",U),"onscrollend"in window)addEventListener("scrollend",X);else{let e,t,n,o;const r=()=>{if(o!==history.state?.index){clearInterval(e),e=void 0;return}if(t===scrollY&&n===scrollX){clearInterval(e),e=void 0,X();return}else t=scrollY,n=scrollX};addEventListener("scroll",()=>{e===void 0&&(o=history.state?.index,t=scrollY,n=scrollX,e=window.setInterval(r,50))},{passive:!0})}for(const e of document.getElementsByTagName("script"))e.dataset.astroExec=""}const K=new Set,E=new WeakSet;let k,G,Y=!1;function Ee(e){Y||(Y=!0,k??=e?.prefetchAll,G??=e?.defaultStrategy??"hover",Ae(),Se(),Le(),Pe())}function Ae(){for(const e of["touchstart","mousedown"])document.body.addEventListener(e,t=>{T(t.target,"tap")&&S(t.target.href,{ignoreSlowConnection:!0})},{passive:!0})}function Se(){let e;document.body.addEventListener("focusin",o=>{T(o.target,"hover")&&t(o)},{passive:!0}),document.body.addEventListener("focusout",n,{passive:!0}),N(()=>{for(const o of document.getElementsByTagName("a"))E.has(o)||T(o,"hover")&&(E.add(o),o.addEventListener("mouseenter",t,{passive:!0}),o.addEventListener("mouseleave",n,{passive:!0}))});function t(o){const r=o.target.href;e&&clearTimeout(e),e=setTimeout(()=>{S(r)},80)}function n(){e&&(clearTimeout(e),e=0)}}function Le(){let e;N(()=>{for(const t of document.getElementsByTagName("a"))E.has(t)||T(t,"viewport")&&(E.add(t),e??=Re(),e.observe(t))})}function Re(){const e=new WeakMap;return new IntersectionObserver((t,n)=>{for(const o of t){const r=o.target,s=e.get(r);o.isIntersecting?(s&&clearTimeout(s),e.set(r,setTimeout(()=>{n.unobserve(r),e.delete(r),S(r.href)},300))):s&&(clearTimeout(s),e.delete(r))}})}function Pe(){N(()=>{for(const e of document.getElementsByTagName("a"))T(e,"load")&&S(e.href)})}function S(e,t){e=e.replace(/#.*/,"");const n=t?.ignoreSlowConnection??!1;if(ke(e,n))if(K.add(e),document.createElement("link").relList?.supports?.("prefetch")&&t?.with!=="fetch"){const o=document.createElement("link");o.rel="prefetch",o.setAttribute("href",e),document.head.append(o)}else fetch(e,{priority:"low"})}function ke(e,t){if(!navigator.onLine||!t&&z())return!1;try{const n=new URL(e,location.href);return location.origin===n.origin&&(location.pathname!==n.pathname||location.search!==n.search)&&!K.has(e)}catch{}return!1}function T(e,t){if(e?.tagName!=="A")return!1;const n=e.dataset.astroPrefetch;return n==="false"?!1:t==="tap"&&(n!=null||k)&&z()?!0:n==null&&k||n===""?t===G:n===t}function z(){if("connection"in navigator){const e=navigator.connection;return e.saveData||/2g/.test(e.effectiveType)}return!1}function N(e){e();let t=!1;document.addEventListener("astro:page-load",()=>{if(!t){t=!0;return}e()})}function De(){const e=document.querySelector('[name="astro-view-transitions-fallback"]');return e?e.getAttribute("content"):"animate"}function _(e){return e.dataset.astroReload!==void 0}(x||De()!=="none")&&(document.addEventListener("click",e=>{let t=e.target;if(e.composed&&(t=e.composedPath()[0]),t instanceof Element&&(t=t.closest("a, area")),!(t instanceof HTMLAnchorElement)&&!(t instanceof SVGAElement)&&!(t instanceof HTMLAreaElement))return;const n=t instanceof HTMLElement?t.target:t.target.baseVal,o=t instanceof HTMLElement?t.href:t.href.baseVal,r=new URL(o,location.href).origin;_(t)||t.hasAttribute("download")||!t.href||n&&n!=="_self"||r!==location.origin||e.button!==0||e.metaKey||e.ctrlKey||e.altKey||e.shiftKey||e.defaultPrevented||(e.preventDefault(),C(o,{history:t.dataset.astroHistory==="replace"?"replace":"auto",sourceElement:t}))}),document.addEventListener("submit",e=>{let t=e.target;if(t.tagName!=="FORM"||e.defaultPrevented||_(t))return;const n=t,o=e.submitter,r=new FormData(n,o),s=typeof n.action=="string"?n.action:n.getAttribute("action"),u=typeof n.method=="string"?n.method:n.getAttribute("method");let a=o?.getAttribute("formaction")??s??location.pathname;const l=o?.getAttribute("formmethod")??u??"get";if(l==="dialog"||location.origin!==new URL(a,location.href).origin)return;const f={sourceElement:o??n};if(l==="get"){const c=new URLSearchParams(r),i=new URL(a);i.search=c.toString(),a=i.toString()}else f.formData=r;e.preventDefault(),C(a,f)}),Ee({prefetchAll:!0}));
diff --git a/assets/discord-mark-white.S1wZj-yV_1WHh3p.svg b/assets/discord-mark-white.S1wZj-yV_ZvFAzu.svg
similarity index 100%
rename from assets/discord-mark-white.S1wZj-yV_1WHh3p.svg
rename to assets/discord-mark-white.S1wZj-yV_ZvFAzu.svg
diff --git a/assets/fluent_back.PEVpv7Y2_Z1tj3dn.svg b/assets/fluent_back.PEVpv7Y2_1HFgGn.svg
similarity index 100%
rename from assets/fluent_back.PEVpv7Y2_Z1tj3dn.svg
rename to assets/fluent_back.PEVpv7Y2_1HFgGn.svg
diff --git a/assets/fluent_mail.BfcTLzDF_omg5C.svg b/assets/fluent_mail.BfcTLzDF_Z28C7gv.svg
similarity index 100%
rename from assets/fluent_mail.BfcTLzDF_omg5C.svg
rename to assets/fluent_mail.BfcTLzDF_Z28C7gv.svg
diff --git a/assets/github-mark-white.S2fJVXLq_ZilA5B.svg b/assets/github-mark-white.S2fJVXLq_1OxW5X.svg
similarity index 100%
rename from assets/github-mark-white.S2fJVXLq_ZilA5B.svg
rename to assets/github-mark-white.S2fJVXLq_1OxW5X.svg
diff --git a/assets/penguinstore-screenshots.Bx26h1eL_1TtsFj.webp b/assets/penguinstore-screenshots.Bx26h1eL_1TtsFj.webp
new file mode 100644
index 0000000000000000000000000000000000000000..74f9889c28e04d99b1679ca4c79fed58251813ee
GIT binary patch
literal 10416
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
ad+BZ^TFlJb-}o=c4+Xc9TLt~m&;S5>CutA>
literal 0
HcmV?d00001
diff --git a/assets/penguinstore.CpoaIpn6_Z1mYOif.svg b/assets/penguinstore.CpoaIpn6_1zw4gc.svg
similarity index 100%
rename from assets/penguinstore.CpoaIpn6_Z1mYOif.svg
rename to assets/penguinstore.CpoaIpn6_1zw4gc.svg
diff --git a/assets/penguinstore.CpoaIpn6_Z2jQohq.svg b/assets/penguinstore.CpoaIpn6_Z2jQohq.svg
new file mode 100644
index 0000000..5aeadf0
--- /dev/null
+++ b/assets/penguinstore.CpoaIpn6_Z2jQohq.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/assets/telegram.B0Xy1Ykj_2oPNSh.svg b/assets/telegram.1EoUj1tS_Z1COoc5.svg
similarity index 100%
rename from assets/telegram.B0Xy1Ykj_2oPNSh.svg
rename to assets/telegram.1EoUj1tS_Z1COoc5.svg
diff --git a/attributions/index.html b/attributions/index.html
index 2c199f6..6bfd042 100644
--- a/attributions/index.html
+++ b/attributions/index.html
@@ -1 +1 @@
-Julian's site - attributions Julian's site (under construction)
Attributions Discord icon: directly from Discord branding site
Telegram: Discord icon: directly from Discord branding site
Mail: Fluent system icons
\ No newline at end of file
+Julian's site - attributions Julian's site
Attributions Discord icon: directly from Discord branding site
Telegram: Discord icon: directly from Discord branding site
Mail: Fluent system icons
\ No newline at end of file
diff --git a/index.html b/index.html
index 4ee9884..fd789ba 100644
--- a/index.html
+++ b/index.html
@@ -1 +1 @@
-Julian's site Julian's site (under construction)
Home Julian Hasreiter Hello there, welcome to my website 👋 You probably know me because of my several contributions to the Windows Phone platform, notablity PenguinStore Read more.. Featured projects Discover more projects on my GitHub page
\ No newline at end of file
+Julian's site Julian's site
Home Julian Hasreiter Hello there, welcome to my website 👋 You probably know me because of my several contributions to the Windows Phone platform, notablity PenguinStore
Read more.. Featured projects Discover more projects on my GitHub page
\ No newline at end of file
diff --git a/projects/bluebird/index.html b/projects/bluebird/index.html
index 8e6ec60..4f515ca 100644
--- a/projects/bluebird/index.html
+++ b/projects/bluebird/index.html
@@ -1 +1 @@
-Julian's site - Bluebird Julian's site (under construction)
Bluebird Bluebird is your next-gen webbrowser, lightning fast and open-source
Star on GitHub
\ No newline at end of file
+Julian's site - Bluebird Julian's site
Bluebird Bluebird is your next-gen webbrowser, lightning fast and open-source
Star on GitHub
\ No newline at end of file
diff --git a/projects/penguinstore/index.html b/projects/penguinstore/index.html
index edc3938..73c08c2 100644
--- a/projects/penguinstore/index.html
+++ b/projects/penguinstore/index.html
@@ -1 +1 @@
-Julian's site - PenguinStore Julian's site (under construction)
PenguinStore This page is under construction
\ No newline at end of file
+Julian's site - PenguinStore Julian's site
PenguinStore PenguinStore Download (v3.6), Build v23.08.07 Important: You need to install Microsoft App Installer first and then PenguinStore.
Download dependencies (zip) Download App Installer Features: - Download apps and games - Search for apps and games System requirements: - arm32, arm64, x86 or x86_64 based Windows device - OS Build: 10.0.15063.0 (1703) or higher, 10.0.15254.603 (1709) recommended - 512mb ram, 1gb ram recommended - Internet connection - Microsoft App Installer installed
\ No newline at end of file
Discord: Pinguin2001#6447
Telegram: @pinguin2001
contact@julianhasreiter.eu