CINXE.COM
Just a moment...
<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;max-width:60rem;padding-left:1.5rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{font-size:1.5rem;font-weight:500;line-height:2.25rem}@media (width <= 720px){.h2{font-size:1.25rem;line-height:1.5rem}}#challenge-error-text{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+);background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme:dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="390"></head><body class="no-js"><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt={cvId: '3',cZone: "www.patreon.com",cType: 'managed',cRay: '91384dbac8dacdde',cH: 'QO9Vv1A0mtd5uBMBYTuwOy0z_eJcheRIn4s6J2tIS.w-1739821797-1.2.1.1-gprGrZrDvOHwgkE3yEicZbsdxVsGMMxgSohe6gQ0sDl5Wch2298rruTNezaMBaFl',cUPMDTk: "\/joeycomeau?__cf_chl_tk=eyrb7VNogdu34pWxTYeAbAQ3q.J2p4bX07QV7pIyRvw-1739821797-1.0.1.1-z6nt56d9yIp7n0gkJ1k10TTXRZXKNlKKhsr7wRiHzvk",cFPWv: 'g',cITimeS: '1739821797',cTTimeMs: '1000',cMTimeMs: '390000',cTplC: 0,cTplV: 5,cTplB: 'cf',cK: "",fa: "\/joeycomeau?__cf_chl_f_tk=eyrb7VNogdu34pWxTYeAbAQ3q.J2p4bX07QV7pIyRvw-1739821797-1.0.1.1-z6nt56d9yIp7n0gkJ1k10TTXRZXKNlKKhsr7wRiHzvk",md: "R0bicgwoc9ybDYWmEam1PFP3e.Tk58ZqD2dVqj9mX9I-1739821797-1.2.1.1-CAsirn_OKplKaIzmvlWGerJRWS_xWMi.DNYAh0rd2La5d.5W_lNmKhxYYAkwVhix2kxygAJY7jQiYpQKxiRQW4xnQEROT2zQ_YlNx4O59wtYhl_xNbASuYywjr29U0avIj.McdYlZxRE7HWvna_q5Q.GCIKvaTI1i8SR5oFNtfIsLsT1j55oKiZaPf26XsKwtjZEF2iRFAAvnofTkTSE2huZ5oDLxhrpeq7NQ5mnjE9BlueQywEwg9exCAk6V6YHsyglR_EDR0ST_k2TfLZJzN.1pk9XyYLGsqazBiqYyMSYJpMiuI8uLbsFrAQHtDiykByB77C04h4f9l_T0T8USc6ujPMx6PT4tDHndqj4P9hFrT4CwsdmSOd69jwAbtvXNb91.D7H_7GPAemw8ozU1EK13lykIP7.G5B3qOkaNQA0wSLUpOEEOHpyn3SRlU6l42qVnpVEFf6zF9BrMGjbsXYFXBixMbIy_VuCUfUjweXzUVyK5O7ueXooZIxO7vuxPENDHVeVU2Gl.B6mi6Fd93mgSogjxFQRX7sBkqt3Tf0._l01Oaq4ABEaI2vslb4dLd1CGR_tPp0tEs.YAEwJFkjorupKCYCp3eYaiZCKo0hotSVcCt3A.cLK599H.9M6cbxx4PCg1FF.TR93o02bGumHwjwMcHtAT1UV34b9vGWvkznpylDBB3cbRJDoMLgGkISFG4f4oI7cqCu35DHEEcO3c9xFAuVVToKf6_cT2qH8k4V_tvF.mBM245YtwijOyn1yj_JyrqYNOTbT1FxYzoVHWyFz_nG21Wk.rj9J0M3KQ48X_FqyB0V5U6SobWX3MDFv0wb_v32wOnJu3AyAkjPg8HbwJ_txyLjrOE_.7JREtsVBkf0XcJZEOCzeln0qOwXvgOZ8lquR8v0dpRUFcHR0pikkvls8T62gx_0YW74Lo1Wm1UGxPACX4SKAGQN.twOPD92_VkuTlJE3Pm2hxToVubQFxYgJEbubZ2eOwafgAlAAPbVG70tlGL8qJ.1z8Vv1xlBKuQK5a2AhJJPwrx_84w1O2IB93gEJkBvvcQ6GkzLQtj2eTY.xIMKen5_AS53Hds494XdzUVs1.ZgEcO0MrtH82tlbyOffq0yX3b6bmDHeJbyARH_4skyfJTo2geMfR2CKNFzYHLqZzqvJWl5REXCurOghH61DySas3u1X7LAX7XLvl5Ey.V8s.fDbYxhSdwMPtf.vUeQ2NcBYjOtZqfd5oFuVTvHY2NjMyqXKfSnNiGUKe54nyahvke1rA7Hrktj3EnqSIWuZAVhUBs2GIg6fqFaOYpD0kAGGgxXek6Xnu34yckSEDF.YHA7B4mL0BKD78qHYd0iVwbQqQ9kIaUvK1ZBuxBlpI_Ti6B6twUpU2uZxsgiHJm1EMLfGixyvhJXn_kp33L3yXFZegBTJMHxEzSZVa0AN9izxc8IKhmSO2.iGuJrbyxpIaWhylDP0ZgWqW76j7q2eHHry5KfdDx8GxFwrwKg5ZG5eVMCEmw1C_e3tKROCHJuc_GRosGuEV9iOAtg.3i6WoS4O403Lw8BcbvhmHtytTh6q.bgo2SyBFBNUkV5gljXCYjfllpx3b6q._44j60YMLg_gs4AjPvSpcm3C2B6F8hGzG1Ac78BMi.IPDn75bmfruA9YMSKtFmRynYik9h9TG58f0luhcQTKOXuWToWY9JtzoONtROnOdDK7XlVDs5B7vj1D3xLAf3OHIvRhKe99.polfQuDNNOUOBSBtsnLvgd1hKxJ0FBHcuyGUP6sS21vvq7GR9gjXzse8HYVelPCZsnKwXDg3GGMBJx_rweMIhc_GmTWKFhSFzuS8tQTPWZfiSYgtzWZ.YdqR8pOIkkUzq3tCVQGUP32mcmrS7NU5GDMSiQz9z242tZIj.eREWx75j.ut0DhYDGLjGpxWH3vDvAOvk8S4vJW0DlcW313pDgG4xYxvxnnt5tZajCp7Re06_jAT0on2Bk3zBJKtRqmcbG5mekIg8c.WT5AXjtZyA2qIqAgXYsyXRs4n9suVeQ9cj9E_iM4JfGlKmD5Dm4cCeZU2Qft3Y2kqdh7jb5LEKOx.O70AqL5WRGn14Id0pb5QLswJjllXBH_kV8twt4vX9aVSUfjcWZLBAxlEAtKxXWRDPtqy5B__hmukWZqOTKwwAv996Nm1sNqWxk6RUfmLVxV5LjOcRTGsrXuML95vruyJHNVkAOftDIDgwtbYsCXPSHTXuyyhidI6kWoLxY6d39O4_7VryLVv699EGf_h0ZO2YHgTgDVRgsyZDVkpWffB4s86Xf5pXDP_xu.Mt2T28sNrbmaN1DBa5E5btQGHTDz4NFdrVuA7SSf3rCA_JomZZPxypHvlxzWH.dfxPegC2FXLB0nlCr7RM_5tIsNbWJvdLXhgNySLZ9k4Ttv4UWkC5TV8AcTo_0dEyLi38_cIL4dLGREKi1AhQfAFnCsWyb8HZXCUrQPDFU03R4d6A2hAJ33PUfJJ5PlIRoMlGLg9dEW72PCO9mtnvpZcVB4m.IKWYuM0NTn6M6nypGqoQMkWGMg",mdrd: "4r6QrG3ojleifAw8OfirKOGu2jrXR.GJl_KVU0Cl9Rk-1739821797-1.2.1.1-skF5Z3p0Hu6jgTNpuYQfn_2_mcw2ZFdr7aKy01HYcxTj7s1OWrRqTDQ0AZZEcVU4_D0bL91yZ8KkROTOHlPKAxvzQrajluGcd4Q82pHFMH3QIIltIoZSugSimg51uozsHakJcVljuEooQV.Av3GhaqccbtH9.P7cqu8lC2LQIjT1LFSs0M7gDTvQhh8oDyUIrD4ca89YEV0G9gKcSwz3R0q4pd3E3Xq5nCPmDBH3v6XTK2DpW_F0ZWft7zD8T_UtmMmeG3nEoYnsIh5ovozCoC58oMIJDVSQAe_MPt3orJH7dQL.8qKELhhfvWsqgJ0_PKnYzx78LabUtZUw3aN3UUNhNdzZknefdPJbmFlw4ST5dRPeXHwylwBB_yXMP06nZhd6JPaJJhsg8QfAMeu3WRYwyCefvSVY.657A5DRgYAAQxl.YOflxdca9gilN9KKW0SUs03PQuVys_ErDGYpa40uU5lJHPDq1haPZgNzKTV2Frfy44zEPUQMIh79L85naVMcPj4ZiuYG0wMoDxhlu.CSNHRZXYUxYLzWTFum8Yi7GhDhUgACb49N1XbCicsksAG6Xbfh6e_OmCTa5Ea0eADq_aaDYuSCFQvluRwSbt9J_8MTv4eiLjrkSkwEBwgkdPtwlVGLhC_7ucOmHcy9v7nWBpXbj.kGsGgdQydzoIHELazUWX7wZpzJNXBwqu47iRaOeb4P5nEjGxkt2CtftmZESpm5LN4fo2zDDsmTp9oI6EL6YP7wUA7MZtfQ6kJvOSCt7Z_fq1vKhbXjXEkW.Mb3cGmkYB6G1aTDM2r0yXjE8s.yvVq33y15jscebyohCERFCHhbuOgmhw6C__I9upOcs_IkFCQCnVhtiRudWauB0kFi9t2lI9aYF7oqoXXu3nkfURyKeDZYMF1uRqmUyzXYdn5d1jZOnrVrHmaKJSvCeq6A3n0FXlA8W.jmIU0e5EoCDv6XjlZPHq5DIliyf7M_.c2NrEhCkodZC7KPr.BwQIfPvf0KP4SzBR.tWlBdYV0vM.QxIQMSoxG_edYFAnKYHPsWjT6khvur5Yvk.vj9EIj7AqhalAxDOSYoSgUefwHlofF2YN42kFRYIcerAlRkWFmz7QcjQ1SHqpvSeeb6spYan4eXhyGjCKiFQzfhNNCV0rhd8GxXx8eGfU78OkKMeYfDdaZu.x4KSFjlRJoA607lPJRaCx7B7c_ERqp8INpPpqEd2KFx_BkKcycqhSsXl1Kfa_jKVmYS8NhTKFv3Tkp4BcldxLalgYO9TD1NPBBUfAFyfTl0gWfgv.gvVoCTbOGR.UuFmzRBTjIX5XtqaKnsUVar_uhblNhMM6XtSXm4ogKO471YiZIc4W8izZ26I3001runOZdi5sWuKYMFzMl1KMFtl0O2rQnLt9AMohKmAzjnSIxgaLCvNEIq5mQLT.egxelO2pZQ3pCjh9eII.xl6V.ULlz_cCufVaoROUyz2VBf06o7UiIP_unZrpxIPup0osH1kOP_H5rxSFYDXGTSj9B0WZdr3YZbChMxdk6OhiF_dooPugpCSh9fonx6uwhlo6r9p_uhYihEexPMcLQd6pGUk8RHcsAytnl4VjiGg4.DKXlDKSL4sXYpbbWukONHRQoDzfOCw697VTzsvbJAMmeb9QySFl2B7taQ68usR4kB.huJBmvQjxr6mn_jtBCcCpLoEGiC6HJW8XIbIAbnftmFbVSToyuU55sxq2kP4THY9PMr2GXBHHVH..0ex4OwOQwnvwC2UW3Kaur7ZYfHW8QIWdW7yxnJ3GUxdubSoBWV6qjtC06JOcQN04wuB1CHl7t.3ND872pUECXDn2xOMPzWe3ByISA93QCYZWEPsEzIWL8rQlAA6Du5b15qf6oEQ1QePTOlWj6tzVsYugrsDfN0VwfFUzD327Yn4tTbJJp5lWeq30GRYJe6OlM5jLYbg26cMLQf5VuTsOg"};var cpo = document.createElement('script');cpo.src = '/cdn-cgi/challenge-platform/h/g/orchestrate/chl_page/v1?ray=91384dbac8dacdde';window._cf_chl_opt.cOgUHash = location.hash === '' && location.href.indexOf('#') !== -1 ? '#' : location.hash;window._cf_chl_opt.cOgUQuery = location.search === '' && location.href.slice(0, location.href.length - window._cf_chl_opt.cOgUHash.length).indexOf('?') !== -1 ? '?' : location.search;if (window.history && window.history.replaceState) {var ogU = location.pathname + window._cf_chl_opt.cOgUQuery + window._cf_chl_opt.cOgUHash;history.replaceState(null, null, "\/joeycomeau?__cf_chl_rt_tk=eyrb7VNogdu34pWxTYeAbAQ3q.J2p4bX07QV7pIyRvw-1739821797-1.0.1.1-z6nt56d9yIp7n0gkJ1k10TTXRZXKNlKKhsr7wRiHzvk" + window._cf_chl_opt.cOgUHash);cpo.onload = function() {history.replaceState(null, null, ogU);}}document.getElementsByTagName('head')[0].appendChild(cpo);}());</script></body></html>