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: "dl.acm.org",cType: 'managed',cRay: '9174a3681fa5f93c',cH: 'qlA3XJxqLKduTpZBf0.o8dloMXBDVqh6fg1xh06CtQ8-1740454452-1.2.1.1-R3Y1pMVgZGZ4183hNAKnEJtjk0OeZgiliAEcTquH_ZJRPmuH2MtrAax6yWqlZxZ0',cUPMDTk: "\/doi\/10.1145\/364099.364331?__cf_chl_tk=n9fv91lWBAT_b3NflEyy4SNKWPcb3bn2fyHnaPGQOFA-1740454452-1.0.1.1-lfKxz7pKYGd9QsetczIla2DOFDvWLtPgMIHho74i67k",cFPWv: 'b',cITimeS: '1740454452',cTTimeMs: '1000',cMTimeMs: '390000',cTplC: 0,cTplV: 5,cTplB: 'cf',cK: "",fa: "\/doi\/10.1145\/364099.364331?__cf_chl_f_tk=n9fv91lWBAT_b3NflEyy4SNKWPcb3bn2fyHnaPGQOFA-1740454452-1.0.1.1-lfKxz7pKYGd9QsetczIla2DOFDvWLtPgMIHho74i67k",md: "u.sU0lDoTKIacw1q0ivosOthXp10nJUZCBYEyFKh9Vw-1740454452-1.2.1.1-tOuOPmu97DCZh32udaqj9gepcOfgfaeZbzWYONPt08oxUbeiSE1v5KQPq2ZC5n0xDZN.mN1eKmf.a3mBHjmAX0M8sLUMWQUAbFTEjOmNWztojgRpG7mt40xCcYj6xzYuFdH2XaW1jxJTzPDtsXaeznNe1u32l5NZ.8vZUoUv9Ac7A9qs4.98tqMcKWGQqrDWgTshpyuly9XI99KkYl6hUpXXbcyTDgkIbDq9xm4DzrrKpNIfKOyPsiQwPAuSU9_rlWVHn39tQfBj._aLI8XCkBK4yDL6CED0ns2AWPMXlgkGI2XIkKdauRtLDopSZTlnv7pD62R42S_HsUVynvKp_F5YBE1YmQiT1mNEIdv1mMehd2vExYv2_1Qd058ieXrSRliUzTHRyki7jweVXad23qEmblaqm9c2X16hBfI.Ooqi3Ri_E6C4fivIsrmSj07Y7um8nK37lkr0xzhv6GZ0wIkRE.DS8r61Ost_kVSY4EMVndChQQ8d3rqNnqapQYF0MqR09WhVlYOa9FAJm8NSq_NkMV3YECXgeZAor4me4Dk4QDvCtMzGncNEPY0BEatZygXaPOrqj8Zm4oFYbrtfe3af3MIG8kyEAmT0MaeLDCNeT_0Auag5V.h9Oa_RFoTYSuDkHqBz_ViYIEPr_AUOO8kHM4fhmhZhZa4HfwOfu90w9CPWjnjyrgKarENbaYvkOFhhA1rTtqm0Wn8R4t6qGX_gv3C96mmk1uBsx.WiV_mcp4WEnj86GpIzWDVBtGgF0ze6JHUgXryB71XKKXsdZTWeHxmK9YC_Iz2VmwT50nXY4_83NTi0elIQ_i294CvE9CkzBg5wKXwsPZpYotAI9TQ7.FFDKPR8teKqIxcPclZf54shoFJ3cXmZW.FH8Ukds94vclod8I79C4Mchyoz.GxGq_QLglLeb3Z0Yihc5bsUOHmc_7re_RqYsXB7Sh3nEJ4OybEAn1uRNOjGb36jbVjQIO1xOA1JDn.YXQbMzQTmlhgiRLpmgxuch6jFWwIYHyumsggRc7MijvIUk._H0Tx.0ql_sTUFTI_a4wFanMh.mzr.rBGzJcGKTkYOhGQN065k.kfXhTKC6B_.ocXWZiX5SyFEdpTCX950Wp2AyV2wnf51CP1C5avlPRvf4z3TO.lXXK0LClPLd9fSU6Ua8w2WTN2eXFk0RangstUAm2TbtRJks4vk5e0Qvuj1QVP8nSg2SqfIQi0fBP2We90NOQaQvqU86duAq3uPfHeTWB5.hpFbETjNmPECfKlH_sOUNM1u3zKLAodcwioGNNIj2e1RmGAyJNtbVjjeKidN0AicaeAFKA5ZHb9wMKb59NjrBYvy2a6aQHyVXpLF9fGxxW3qDBveJ43UQcquX3u6JKbdDKrzxwupn7CIGGHlDKjNW.Ydcv6h0MxhayFz4Q9HZXWr9yx_Al8Z7A9PNjTuJg28F796e_6HQNb.NJcJAt7lwWXXiu2lx97KwhAo4th_TTnHu7v7pUDpcZup.Ir4VMdp4Cwjc8NOKER3m3vTyCbYDmtX8qwY1Df7WU9Vp7siKCq1RnToJkeUSAcFJdGkTQaFfMsebxb1qLpKFT_AFV4W2GIgZ9TNVj3BXDeZvvG.W4odp24wmtBc5v_prrlNfsk1ZavDyNdXtt158x8QJlTIYscEEScaAjEtJp6_qdV0QzV_I6X2Mm9CEkpRkzlx.8oCTa4jQdFs.y96_OxecdoX2XrDy0Jw0mtcxYiJhnI0wUup.fGFfJXgjAjZ6OeLiGAu3UvSixcDKckfEQG96pwpzB1PqksflcvJ9sysOAJx44Gn_76_z8T1.Ppshrv9Vsnd9Q8.3Po_Am_sIlFV.ZOYi4_8xVA1RpEq8O8al5BlPFNrho1zxsdAG7dNWrHcqvh2UhpaKbSCmYcmWY1Kbq4zfZivs48ahvJoJBA4RilfCgkj02yiJvjHINa70zP3Fa4Vz_SUxLj96ySbfEZXc1xvkiy_idkZTNjvk2UxcTOAG3FP75YM_2RPX.gOqfk8DJoizog9wEOZcQbBUBuN8qJ53D3JiN.2GLk3Nu9Or9KQGG.c9izc99QbBxThOwONvH3Phn9NxJ5wpIZ3BU5ktRSD.8_pURee2Ph_QrBl.yqtdxGl8DqwjiyW1.XcF.w9hKuLB4js8p1s96Js2Pg.YUyV8JeGEFwhyOXF4Ie7fPuw5GrGW9dWC9mgv_rwAar5tIVbCiMqTbkWqszMWwOo_wwZJp52jSigaPtDaWjypbSd5aYOahgCgM2UZQMzrlWUSgO24u0hHofUxhs2rEZMZRa1ipWh9FVqxKOpX3fsgSyBEqftPtgDhsh2NWIbh3q5kuzqurBxr6xBKh2uRa.4l5hnXBiYmVLfkT.fcT96tmJE7meglMAijNVfdx6fEX6HoTx_nlAhUx3jntWSDPtMhnaWhGHttUxnxwwJ1OWcFuuuxB9yvEygqkb1ljLCcJv7yiUQ5IGTtm4G8ouDCE6LbQrMcMOo7AKDs6LUW3L9W_fC2hvLX2D.eeLm9rUFu_xoq7tdDxQpPFFWSlC4j1mykK4SIqsVmhYzhByv.VKQ8QWe3obxMC2Ttx.AYbPwjf63L8Q",mdrd: "vDp35ZenrofmlW55YF0ACRWYoragVjk3Y1B1.VlC_DI-1740454452-1.2.1.1-lhGV.n8sT_0QBZxO.n1jkolpzTPIbPBXjigCJ5OfjsD1L_3ihm_Ooe4a4h.9.XbUeCPrA6SUaZsRzWW2XQoJLvyMe3_3BUOHzR8fhCoiglknjdVH4vJguXRVILy0tdEvvLR4gwuUv4WsQ_WBNKNhfICJaHRczlbwaWZFNrie3TwJYE5jjWxWJmbmIWjQYGvShEeQGUvHwUYwAJ3Qb63kQ1y2oXy7SQBMJ3y4ymhETE7jwYqsPSwIuby6teIEAO25cKOhZIt1i69lmsMwqA2nhhl6AKMeHUMszyrvD_33h3jpPl.OEqgnqH5_r114P6B0QlanrSs8PC0sw6KKx54xv9GcO0sjrLErY5b7j_GMYJNYEfhW6YSsSi.ruzp59Zlo0qaC.pVFToDajlCq3id7Oy8vVD57kAuymLKf38FO8AxGb_LwY.BcahOK_.MeK.Y12Q1GuR3pp61E_7xP3plgGyvWx1VOzl.mSEq32Uqqv1757B9v_Tc4isqEx6R0EWNthn1sQ6vTCCO1IF1Vo5XGE2NQP1ipu6Sd8EB2XmqMGWv_pqPvWWXbz6.8JLqfEuFW0H2pDqmk9Hq_7HG7LA7UJ_NWooJVy0__jopAMj93HPekJkuwmaDi5KwTjZ5S0A.2NkdEZvd_gKqoWZgzQflIfjgI21fy6ZgBT4IhvSelxFkpIIKibAL.YH5ZfQ.JbRpY21AgknFkANx0gqEbadt010DpN1Uf1Cl0I0O4VZV6hfFFzQajXlsFJeVjTWUE8U76sczNUkUNFS0Kk.cU7nKzuEufZ_u2UxdUMLVqwz18tIDYs7fTmYdcMbmSt0GQwOJnw.hOPBMLYpvKBS9kfveZv5OBp1o78a2W379.lkyaVU42KMic1gFw1MFL4x6wJ_kOhxhpHdTQtjEqN98VTfMC2HmBKJH0p26aueKcbO9aKcfbjEXbjqkCIhISeqC.ce8WTwjRz_9PZSw42AdHtJ7oGNoEJfaQz0c6bE7kFpQnwi6i9pYIRuFo7brad3QuKPkSOSYxHWPRvnbHgGnFu8djo82bt1pDaKJ_lBNHy9WyQWGS096tr1_Zil75jYqbHm24oYakB6cQt74pcGjyOt4DWcTLVJ5AFGq0Mv_iB4p5LupWwDdVsKJx7PJAGll5oaFrKoAMvlRSa1WybN1tncyax4OnhCk4L_0d3cVf7kH24WIeMB87Vdgcbujuvv5P8coJ84KxwVQo36SLtDGWolDl.4aHukwYtgBauusNxJBcsWEPC5l5ChmT3GHV9jgQEY1DL9qXodbRuIHUQepuDpC_f1nPKEQpd41YJpNBg0Wn0j__HStR603Rkc2GndyqQU5i2XdqlFUnfJWKdxRp.jvx9OpBXyduNIDRBJHITbKDxQBbEgyFvZAZqf2v1eLg04slpGiyvljUAuI5t8GfAJBqh_QZLglbF_I1rV2XbE3u37Jbpv1rIIfFDCjS8EW_TjYzCm0Nx1t8Dk8O0tJu_djpD376nG.avs5Kv88ujdoiYsh89jtq_xQFlc2__Vhksvmwgo.aOL1BiOMqUwgKmTqHnxcNEHy.k7WEl_dwv7qUBh7vp4GHQL80ll_Q9UtSGhWO3CQsdYaSvWWue5DbIrofUks3T8l_FhEMXD3iyPc3HR8DQwBOOR.R91skgi7QvBh90wVngzS0EyvjdZRp1RI9Ol75o_HzLL4S3Zd0NbipvjnskbqFfPJJN4H1A6jnYu2Pq3uhMmrqtd79yiHO4AupEYrptdeoJ7ygYG5Tj0lpx29vmj5QgNtLUBzX9rcDVsyfjIShfGzzudCA4REXGSCzDqEHyNGAOg9jCaGPLa4IZnbq4_DZJzfo0n5zfTqp3RLmRj6hzqO5BiCAFvEroA7bBXdtG7.mV_3St9Lhe81uwyb1AeaC908N6.RCxlC1k4Y35WLmTujZD1nDOvLlXURaWL.aUzYNk5nURikrOdzUy_88WoeM4z3qRxhHWQwcIbG_"};var cpo = document.createElement('script');cpo.src = '/cdn-cgi/challenge-platform/h/b/orchestrate/chl_page/v1?ray=9174a3681fa5f93c';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, "\/doi\/10.1145\/364099.364331?__cf_chl_rt_tk=n9fv91lWBAT_b3NflEyy4SNKWPcb3bn2fyHnaPGQOFA-1740454452-1.0.1.1-lfKxz7pKYGd9QsetczIla2DOFDvWLtPgMIHho74i67k" + window._cf_chl_opt.cOgUHash);cpo.onload = function() {history.replaceState(null, null, ogU);}}document.getElementsByTagName('head')[0].appendChild(cpo);}());</script></body></html>