<!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;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#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="360"></head><body><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: 'sourceforge.net',cType: 'managed',cRay: '95dde0e3746cc4e5',cH: 'jJtYBc7lkONgrdAASb7Zb_HBplYMI81H5uExv5sUB34-1752295393-1.2.1.1-hMt8azejqqKVJapuGegWDDIdDlmoq7R0c3bTWZTx_WLYbJF5IoC6dQG6xeOH9IRR',cUPMDTk:"\/p\/drawj2d\/code\/361\/tree\/\/trunk\/doc\/drawj2d_en.tex?__cf_chl_tk=Bz5IEl8Fzz3v9OqpJBEI62NvyKXEa1sZMsCFbXOScVQ-1752295393-1.0.1.1-4X5BZTVoZ0ZjOS3ZDqdbjWAa2YgJNNhVRWbxTlkcXzo",cFPWv: 'g',cITimeS: '1752295393',cTplC:0,cTplV:5,cTplB: 'cf',fa:"\/p\/drawj2d\/code\/361\/tree\/\/trunk\/doc\/drawj2d_en.tex?__cf_chl_f_tk=Bz5IEl8Fzz3v9OqpJBEI62NvyKXEa1sZMsCFbXOScVQ-1752295393-1.0.1.1-4X5BZTVoZ0ZjOS3ZDqdbjWAa2YgJNNhVRWbxTlkcXzo",md: '5WT_nwQNDIoHf4BalzOUkFjCrReuoBTuCbmisZIrDIo-1752295393-1.2.1.1-GEY_Uy3QfDDUYy.CmS4dlxoCZ4Z5.GvzQ2GDErwNbJa.99rMqd0Jamzf3jEuFcWizQVGxmgcOBJ1g90EObmigcTpDO7VjieXG5ciUSjxZXdcvWroBQC75HLPQP.XlGi9LGsfq6kqrpJHElAjL47UviIlAX2Eff0JoCZHovPydmKgh2etNwVntk2syl8UfBDAvVNesLquadre.dgvNx2cQtTiO9h6fl0jfe6LNXAbMOWPlgHA6xz9uTWfza5dhcZ.CefDwlbIXSTimufM_k_cYc_06h1I6u9ztjOem00o1hyTpDdv5fJIOKnXt_B3P9R1kM5zrWa2y7MAAlxErVrrOXwqAg2XDSibFOTu2Vs3bDWFvBu6_FDruLQ3DgyXkLVqbjLlK2nGsN2UykVAE51dVkHLwfXNfXfEaTvurGuNheo1Wne6zrapG2i9neM1EchY7oI592zbd99VtJA3JzqCHcGKWMtqDRB.sKbGHkBYJSXMDFNAhuZeDn5nQCJ5FmUqKTtZi1tuAZbUh2NIJ.TefEYrWyHLTUMeUHrtDDomPXVkfvqxRvhRD0y5Et3u6Cm8czrGRAKiT4JMCLtrTVdZy8dwKImjOCsjBhnx2yGybUG2nnGTz_JQd1yOsKdooNJ5KeZalWqPh35jN0bnWJ_sYHpmj.gSK.oA28DT9pwHXPJdPPKuHxBrY9Zd7sIpMhUQR7_DoEYb1I491nM3THGjhp0eIU1AQy3ZonI3h1ODJjJNT_nCDGYhgu.oAd6YMxTEZlJogMTgBBlHtyx2PcTY3d8sFxWIHLar.d1uLloxdlsHZi2dapQlcT7fz0rKCNLBQ8J1BU7SJrPgWJDbFgUC4QZmiMHRbD6R0R5lgDHnp0y6gl9wmPWTJ7Q2fhp2YH.pQ1iEGV4nd1GwFa17e2xD4fsrL8YqzvpWHtnZbWtr8xKWJpOiCLdCTtFiwJcfXbVoYqbIlUsAXS1S1s7BQAmtXIl5FVr7CnolqyZYnRlF.I4',mdrd: 'm0dljYaNHqrUHuu.VtgRwUYEkse36hCrIjbd2Sq.avM-1752295393-1.2.1.1-7qf8E5At4gI2IB.p_KyFmsLLWp7LEZ3qODVXE2ezVYS33EmqBAizuOHno24ZaYimCt8G_b1U78y4fes.kNFF9o6lebt6LuJGrTG5dyRiVeQmLBABp9c4OGuct4VIE62LxwX_vanBVag8NTYuIDJ.Vb1nGkO6DgJutngtGPKBXsxpwXlmXR8b156rPIh0rYY_sN1cMjUlvaMYZRiEfnXQVLUYMjC7Eq3R2zpU5oltlDwY5cxyFo8FJrLsbc9kq6pDH8taH0h6Py8Fh20ZzuIMng5_pPythrUQiroXimkz98w6WJJMGyXQEUrjJBxZxI5dkbvGDOEq5LXVzQF01XePwuxubuKfy5H5lg4Y4yb01ik_Y.0hjIThQzlCRgpOb83AYAgrxbf4NbXsZcqKeXvzs8JO4uZ2kw0xn0.mQU3KM7DIpzzJw6KyjkbEo1DP_n8HO.NVl4VUk70eKW7V1lvomZirPkaufyFIoFAnH03uPfZs_gyLH5.dwT11C9t49.EZWaq_rNYCOgfT43eTfEocqlnRGF5wM404BIWPW.9PFdKOWF7mCRS9BWMq6pVpEqwhHYd46Z1A_VWeoLWiykU7jAVLGJP53tu57cRrIhYgyLXgrRaA1TdriUMw89xi1_CAZwdcN6A3AkzKOKPiGHHSoBTwA1fIwPb_9hklEqMJL18sFBqUrBHGnIPpwf03OLoMik5aMcDnz6Ga8E8uKTDZBhH9zJn.pNb2sSkkpr3e9g8.j8s_5nWF.3Z82R6cPfV0hdMeTRgGFMVMI9evVwjvuOkv.unK3Ixbg76mV1s4pssKVieWNCrXIyNailTKfzzP9i21s4EHgTNrJUDKgKd1_Sv0e_ooT8hXSHrPPA4WMovC6DlWLkeH7..nSSE0I5qN1ztGx4S3GOP4LNSF9iGCg338fC_h2rTK4TPMFOdq1sX2KPezv1NnHeZorqsojxzoB5cQnjPrycxbTDBqyDm04y2F.WTLbeYrBhAs4C1fsREUEOCss9nfYYpeHCJcfYS7UzXtYmSpwX1dqa0upjU0zahdk_wSEKZ1UNsUYT3CI9bSKZB9duUNGoG5i891NLXt26Dw2zU5Tac9dLDPnLj.etWiQllTGd5uMCZIF6g8.f_cA21aztZZnAbFh7GpUKjECfqsb61iyqoUr6n8ICk9sRddpl.MqZlwRgC3bYY72d0BH7KNZIN4ZI8gRRKwis5IYXo17.JO78WwT0lN4cJPcY_987wa7.jIblzeTaGGqs555j8l0DGHQFqKiKMASSmvTYca5Aw6KcHx3_u9SfP7K55s5F32izjDm20b_IjpilkEdYZpP8Y0gc6T68Sxdq.qF6j_FWujfaIk.x9bKsBA1Ts5nH2M0Zy573kx92AsHTFtvz0g_N_7r2LFilcOpOyJKmW7yQ1myjKs6c_rFNPh8Z1xdIlfzLRU_sbQOAQbn3NYPh9smqYZiOEBy7n44bGJ8G.0p9uz16_0o9hSxKNVJZnHK1hsSZ6nXPhw1li8Zp9Z_T2tU4X_Zb3MzEbpjKZ_4xibQFotfyQazkwSNcnQ02saL7BaShvLvTOT1SN9Fo4QlppxIqjwk4NrYIuywDYveQlnpYHhmWBHeK4JDTH_TZ6oZpKqFlIGQ6qA26FbFTjx0iZsMF36SymEhv2tMaaz4s4VMUswe6cwC_rICHXWcrJOXjd8WogxLruMXYyJFRZ7U9rmWhNfuTE0sv8hkNXIdBhXo1A51eFj8Nh.1SbjXqz2ZTdcfKTvUHsO.8zkpp0jETlX_M0BtVYjoPLaCPYV7qjUDveIzQ.LRrTT3FHC1jNqON8H1aEuoIUmXX5lzGxfmTbwN.U0nanrukmdah0hZpLDV2szkEXoTJYmO5AhtmAIKunoh_gQuEcqpqCTtLrjqer9EadeWKcxjpYMmA8KkaohMyA81RmloI8JpDera5kDtsul9iJX2_tkQf.pI_IMqdVIlvXHBcsYWCezV5wWA9fnCCNuFPdODayGg4DOIKO40FO2wLBGiFTGew1BMeST14sQiDvJ36wWlK_XhgcfEG_H_ybx6Fie2WQjgbz5EhDk6HPkP6laAqliTrvrxcbhBZXPEtsDSGO799gVNHzQvJ1Nj61YCVLQrN8G611.5kz_Oy1HvQikcLRQGRbfXT6EQ.4GznPZGvXm1xmbmGmreVSpqeG33qx_ZznN2zGDv_B15cV8wR_FS3XuGCd8XSk9FtNYIPuf.QtBKWHjAOj33SluMtJZrzSb8daEMmEeixrbfg7RyNaE5ZULTOQJiynzVCPgKRDarcZZiuO5o7sECDGz_DEksTyCt1SuArzONqgaWFKu6D6bRwHk4DvSSV0AiUHMcgKqduV65UOVNg05vD.CNPxRkfSDxWv91hxICKalPCVwXCBLaGgjsoPE4076p4wD7DMdROHfV4xV4Xb4GqouEAwzFr2bNA6Az4LDf2lW0LDIyF4cbdFmWl7AGt4IiwHdwSEAnBuVoRTRP2nFQwpo6zcxioK89GmX0zlNhT36GLmQrAEeh.rusHAb7gFFAZNwp558xwczVzDBzX0gsnU7JMIjp9sIrIIz3mxoGRiRYyNd5vkSOL4IZXZWTTe98UT8PVmoMwvSZGzjKPQ1',};var a = document.createElement('script');a.src = '/cdn-cgi/challenge-platform/h/g/orchestrate/chl_page/v1?ray=95dde0e3746cc4e5';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,"\/p\/drawj2d\/code\/361\/tree\/\/trunk\/doc\/drawj2d_en.tex?__cf_chl_rt_tk=Bz5IEl8Fzz3v9OqpJBEI62NvyKXEa1sZMsCFbXOScVQ-1752295393-1.0.1.1-4X5BZTVoZ0ZjOS3ZDqdbjWAa2YgJNNhVRWbxTlkcXzo"+ window._cf_chl_opt.cOgUHash);a.onload = function() {history.replaceState(null, null, ogU);}}document.getElementsByTagName('head')[0].appendChild(a);}());</script></body></html>