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: "area51.phpbb.com",cType: 'managed',cRay: '8e9cc6ad5ec189be',cH: 'UW.8EGNcfYWszqNrHBXv7D5cINHsV.6bRld_q0G8MUI-1732822263-1.2.1.1-5LMdrTeVG8InIUgJjz.DXIXbBjJiGIbkl41lM4VCXT6aKj0EXctou1hSUFfNhhwi',cUPMDTk: "\/docs\/dev\/3.3.x\/development\/coding_guidelines.html?__cf_chl_tk=M1HXGH_weNA1jB.Fj5J.ZGL_15LtNi2LBc3oh5Whe2k-1732822263-1.0.1.1-vgPABlXzXyVm7Pi9r2l4NL0FtQX1u0Fnc2o3mYp7Kcs",cFPWv: 'b',cITimeS: '1732822263',cTTimeMs: '1000',cMTimeMs: '390000',cTplC: 0,cTplV: 5,cTplB: 'cf',cK: "",fa: "\/docs\/dev\/3.3.x\/development\/coding_guidelines.html?__cf_chl_f_tk=M1HXGH_weNA1jB.Fj5J.ZGL_15LtNi2LBc3oh5Whe2k-1732822263-1.0.1.1-vgPABlXzXyVm7Pi9r2l4NL0FtQX1u0Fnc2o3mYp7Kcs",md: "TbcJFxoDNcFMWgjYJwXCNk492c3YlX8rJ7szb_3AVXI-1732822263-1.2.1.1-o9bVpdw0dxlTwDJJ0chhnohS8ApjClSfK25lYjDX3dZ6xWRLrvNla38nKHt2IeGHBznqJY9419BNJE0FNTIWn5toiIkK7H_eRFV0Q816cp9kNOUhjpLcqu1_1qmya_ib0kS2b6J7PySbHxKe1JaOMobPSMqHsXJ9NI5tkh9ohm5qPfjKxIX.LWDmF4IS7RWOcecJQqrTdsQuOT9XDmd6lE2Fe2w0Qd3rt8wDvEy9Nu7.XtIyS6smf_iGU.6IR6RoOOmsKmbAJwoCtbfXdqVK6XMSM1G.C4H1a_iaNAuEkx6JVbKuE.WT0iqIo9Q1koW_O9Jnl4Ufmmdtgb1Z1BuQPo96XA1pa0.BPx4axk_F90bgk6EtZe.VkbNKwziGn1Y00oKCbJeV_mhjFPi0BaxL0YV2h1MInX6MC_tb5PmNgJWWmicdA6U30rfdczQm2xnn3hCWgUF5u5PKP7JgCRvOX._zRKN0hCE8zCX6SAuUIijoniTU0ixapqsm5xhCVEhCgK_pwvLdjbEFWZT5AqXhhoxq.8Y.5UgpmSpRc9A9yTllKAomabV2BRPKyHi4M7fOLF4qLWKuhDpa1I9ToEqjU.QYoeE0U1eEClJsKbnoVmdBDwrAVZmYMJeCDmeii_3fS_i0E88TcUlbK9n8FsMXVbIdP8iW895z0Pw6LbXfbTkmTUHeghmWsWcU34N8a_3hicfcRBekWkW2xxRheykIv2_XnCbC5YhhqdMD63TlwFJyJBC0DKOL5CcZ4zqu0yRe7iH6JOi840bc0oEv1OWNRpi0llDIqv22IA0iQ6_RV7vFjPn1a8vy9llUfy14yiO6RhXgRCfkPHJPbYFZbKOn1yiqRVz42Hy7x.S4R4SAsBM0K8NoSexVlc7OJvAfVSl4hDhghBT_.MoeSbjwZdAcdeqJs_15qr3N08e2ANNXLAW0T79bYLtNVYIO9HxueqrUGAE1.x0B7k1TW0VG76lHFNTjuRSD1rFEHLtoTJgy_GqVXUwjvPhE1gEzjM_K6ZSEYLCvHTxP30_72DWfMNiO_M.w26NEHA4fLVvii2hSDBTeUK3v8nFVxO7WDbzfPgHz3oq1aBeOKFoavnVZ7IibpJFVgsN6ma2og_HW0LRt0lhLbCP2IQ1UwsoFVhJ2BuJGYXEZbkaYifnAl1Foosxs38CQmIBx1J0j1m0TPcQqDiYbH12K.9BEbXna_1ryacFBah_QmFit1u2PDltSavDj5y8yhjNXseo3QlWOcLTcKhRutzYIk4TM3xozP808OH3ZWfL.i6PeqjkH_e9L6OR9868jfg4wBh8AZZd7Gxn7WFJAvlIGCsjXBuYV2KcOrAfjFskqNjuZEMGWg2dmvlZPAagwcJ.PnvS0UMQDBKe.YORt0UIgh0LGiMzNI_CUkZBODGd6vPa2IK99V9wgsw60Hy7veqPzi8uFwzd4OQlkxYhUWzJp9EUthfjr7agluqAxBe8zFrPwQHjLFLSyR1RGznniWqpONrADY4m8PC9M8G3WGzSNDI_dCAeqcA6e8p5QiYNFbCVa8ouwOswdj5owZ7pZFDmYL.v08mGZBDgPnlz60JVq5OrfcsvfoDTGBKA3Qk8BvRlJOyjKOFREaZPgCshwMNLi9zPp8V_c0QWb2Erm441Lj9rKKSG1Rm1kVJ9nf90idTrcfSCVND2ugSu96wFm0W4hMGal5OWgatqkWE.Q_8Y4w31cWjeZnj1XFI9njW4hcb.Gf8t_MGMS7V90zQllaIMtv5U7qHp6Cl2V3GRMfVSANJmIEUFLbh3Sz0.5MFaxHk9lFMw.CmtfqspcjY6OotkNc_7zquW3ju7ZsEwqvKva9ryvTz9yOAc_5Tjn1Dr3sQgQW1Om6WnlHc15F5rEX4iAEVh7SDpU5ooGxZ.srsyLyA4CbsBb_NJCYbUqx3UsZ0JyJBATeiKc2jtbgD1ltYf1mX89aJ15XEaaolqoLhBaeZomg_RTTScHQ9Im7E7s5cv4TxRoJSA3EyW.v5s23UNOervezdIZBeiEjzXkw1zH76tWASzKSEPEGdTZ7hcEOu8bMMGAAeGYtVyKZNKCIVU.78LK4T_ncFrkDyQw68HIBvnuKdyHiyKpRhoHZuzZA2xafQqD.GHHYgXb1QIeBl0n7YZbYBrgnjF9X3WZBCkG.V6PKaNaCpjdNdzUIM5gkB9Piz98jKflKsxUGzAVxlAaBRCwA81lnaU_3jp0WLK.Y3kf5TtUDwHzIoBxxlVyDsCbRdfoXdJn0HbC.aZX7F9ezSs8sOf8oR1X6IT9YRWN0kn9LKdnnmfxMgR3o1LYsMPBlbSrTWntGRejeSgGud4U937IT.KqBEQXuCZ1.DV1JsDGmLlWZIwhAFrTZY7GQ0KJBzJ0AtX3s0I2..vJfGVZb_lFg5KMI3Aoju4TI1IMvecW9woP271.8I.HvLdieX_FiJGve2Ss3nb2ayez5ASCfc_eXNfbUmU8zUV1W1smMtU5SFijiXdz4AoQGbLi8JofeBTMfyqJd5uTXe4gny5svWkxsXyGOmuWIQUvu9GU31IJUzTucrLqgG2D3CMstls6AMn7ko2Gihl8_rxv7PeS2JEVIBpM9bFSS7xfOdwrq1UiR5TTOxDKpdYdPoDjHwr0zG0ZP6oLoq5879zWhXKm74lrkKs6r7uGprR74hGbk5Ez8zi6n_v0vc6YXbjoFPrpVe6XPyJNmt5ZMJHWqtaCWf5TF9M6fj4mF1sO6MZbin1jBcWzPb9jxyNHyAHiPqIfzXVTOnI9Q7OR_KYS4s62ddTCDpypYYgAzDmfk8xCfM6m5kCj8fsaJdyhwEQxkgOzwrEKPw689oSOFybsVD5nZTicr2GWRqlscLnjDT8J8gGM7P_ybsVPaIuPgazKdsyNURlMQHgx2DgwD_kkveDH5Qzh.HAN7Zk6nYR3GBRhJzZcvSUr2gMgTaNsU3xnu3bjIdlaF2k84aPh1RDiEBWnD0QNwOJO3QaziThaJw8.B8blPYWEyJUIQT8G",mdrd: "qjCTMktjQ2SEFxqFZ1n5_flmqePo1z3Wqw_TGbY6aGY-1732822263-1.2.1.1-b1Hdw_g7qAFyCPnnf.v0JjhnTZrvl6m3aCuPdh1IhupdQbVuZ4iBU9Qg9D2fOj8HtbW6C36VL5ixHDL26sHiXIoSZHTiVQotgI_buaG70pob2rbe2C9xAyBSRGAgxVxNPrfSZIQCZjeesJ41UY.Gh42Ss9yLYxIE_z5UDEeLS.iFydyVyenJSaQnks5Cl6aJQqckStmWgg_DWhdSALomTYAIQMdI8ZFHFDRj5ePU1VSx8ZVxMTueBkSVjE0gYcjzIl5LWzOi2xjTc9sluaGmI93l41I411lgpTOoo1XNtPchsEvgrh4hVlQ8juOjOBmm.joNGFc5gwT_bxyd3QxnSXAfaom7CJXIpS7YH60S5uIZ_R0WMIDkUXZJ4MV_tjmGXopl4asyDkcAKd76Em8s4OR8.I.g7zoDI9brLWJbIDcPmNnPNLbIvOE30o3sUCn7oaGQRgO7sbdvP585w0QIQ4n9tkhBmYNc1vSRSEqBvJFRdZtqSo2KJ5zNsqtnc7hJyaznv4HhEs5w1YY7gTQ0PBTA8fBthnD4RaI9iMonNOjFoDJhHVjgEaToA3CEHX8ePd2Z421n5wiKLHqn9m.mYqD5GrHHWfMvh9QhgAwu1KoeBQTjvkzCXHP__kDXkMEbbZev5HkNrwb_kCun1Gl6ZYtWyGHGnZYy68vrqmmD2j_stpLoH8.wAI8YWnq.V17pXHXk4tu0OVr4FMC8LCv9jpf731LsLllTQj66FjI0s9VeYPefpjsR3GmWiF9SMCXoiTnwfPoL_bpLlpeFG8nkJCe8k2L3kFPZsRjGiY7z0VNUqwrRh4SME8lVz76VDHyKM4HATM3BkamaHLFaSsdf6J4r.fTdGaKHCZeL8HQDUIxEiG0WZAiWixoTh92BXwPaWJ3ZR4Wje1OOTh_k5tzrov8azpEVRlYRxTCVIdSNpJ3Y_aIn0Hi7NnvpSssCshW9oZOpb435qGNMFSwlziZpd_eV1ifn1Mw.gGtGxENDkL0ordSJDb92v8aXNCwtu_5NhUjx6U6fLziPlbUCSdmKzHtKWPFO0FA6xugiDKDSFGhk1vbMpyCcXeBRhF2mdnlqxeZZOGifx7ClZq2v1CHIWArKEoNlDW4_nLofOec5LLYAQe2inXIHotAxOUj72GCrzQBKQQURpJ7juNg9.Uc.ZBsIhBm1RR6SDbIRB1S.iAR1pDRO_q77B0pJGIqH7steKeGjFczSbIl8OOQiwF2jHVB5ix78N5Hhv17Lv1Bd2oP48NNPkT9dOyUD9EXJ84PfDqOhLWmpmJHd3AVJ.4yfSXRIO1PULBF7OzfhNCnx6feAb7_hgefyhmfpCj1pwjiL5fB8SjQXqCn5jSs4CRBhUtRoe8GTpcLrs2bcER5u62eFTuWKNW0MBDPyjqJnckaN3pSqYMqPvjb2KEHw83IdNkbmEzTUDzKQ4p_Bs2ERqY00tbJ6MfgkY2vRyLKCLZ_EYHwtD3.StRLG9bDtVroqnOOQQ2cOG9xiFON15lw3kC7BRRInXeai2qcLwK.ed219JBbeEzi.3e6kTCadvtCZb5VltJu_.QgH1KAJNibdeas3_TyruHi8RQeMWZ_pwejD3SnrCYb..NNcZvm6FTYSlhQRQkYviSUJ8b28T3a2cFCOQXG_29_Td3Rs2JH_htKhh1yn_HIP1beVZajoA.W.lGoA92bFSJgp5yzaxnpLpSK7eQensmGeq4j8AtgLZT4bz9HkaN9JKXT2PO6gSIOk_WEVxt5UZoN4.nLKbd_1OchpFPc84cvijj1unnLchf8jmNE_w3YagBERsEBU4GOndoRnwS6GOkyNRjRFtc0c.GLByFbR50bW5yJkDuE6zkT9zkVBdBjzpTHzxpu5adpprC.NPXd24izS7ZnIDjHBrfSMU8glCBGSfFZlRVv2mtU6djx0j4hJB489lNdOF6iuRMtFA.CYWjTaumqt86CP7Q8TtQFH0XVpESDeYe2pkBIS"};var cpo = document.createElement('script');cpo.src = '/cdn-cgi/challenge-platform/h/b/orchestrate/chl_page/v1?ray=8e9cc6ad5ec189be';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, "\/docs\/dev\/3.3.x\/development\/coding_guidelines.html?__cf_chl_rt_tk=M1HXGH_weNA1jB.Fj5J.ZGL_15LtNi2LBc3oh5Whe2k-1732822263-1.0.1.1-vgPABlXzXyVm7Pi9r2l4NL0FtQX1u0Fnc2o3mYp7Kcs" + window._cf_chl_opt.cOgUHash);cpo.onload = function() {history.replaceState(null, null, ogU);}}document.getElementsByTagName('head')[0].appendChild(cpo);}());</script></body></html>