'1','abcd2'=>'2','абвг2'=>'2','abcd0'=>'1','abcd9'=>'1','2'=>'1','abcdx'=>'1','abc'=>'1'] as $raw=>$expected) { $value=prelandResolveUtm(['part'=>$raw,'utm_source'=>'keep'],[]); partCheck(($value['digits']['part']??null)===$expected && ($value['context']['part']??null)===$expected, 'part: fifth symbol / default1: '.$raw); partCheck($value['context']['utm_source']==='keep','foreign query preserved'); } foreach ([[],null, false, "\xffabcd2"] as $invalid) partCheck((prelandResolveUtm(['part'=>$invalid],[])['digits']['part']??null)==='1','invalid fallback'); $config=['utm'=>['part'=>['default'=>'2','weights'=>['1'=>0,'2'=>100]]]]; for($i=0;$i<200;$i++) partCheck(prelandResolveUtm(['part'=>'abcd0'],$config)['digits']['part']==='2','random follows configured weights'); partCheck(prelandResolveUtm(['part'=>'abcd1'],$config)['digits']['part']==='1','concrete independent of weights'); partCheck(prelandResolveUtm([],['utm'=>['part'=>['default'=>'2']]])['digits']['part']==='2','configured default'); partCheck(prelandResolveUtm(['part'=>'abcd0'],['utm'=>['part'=>['default'=>'1','weights'=>['2'=>0,'1'=>0]]]])['digits']['part']==='2','existing generic zero weights order'); $_GET=['part'=>'abcd2','utm_source'=>'keep'];$_SERVER['HTTP_HOST']='zoomstage.online'; ob_start();require dirname(__DIR__).'/index.php';$html=ob_get_clean(); partCheck(!array_key_exists('part',$get_params),'part is not foreign query'); partCheck($redirect_digits['part']==='2','handoff snapshot part'); echo "OK: part numeric/default/random/context/foreign boundary\n";