Establish the following local variables: - PAL Policy 'unavailable-activities-set' from 'availEval' - boolean variables $boolTmp and $theResult initialized to 'false'. bpel:getVariableProperty("availEval" "pc:unavailable-activities-set") $acPol boolean(0) $boolTmp boolean(0) $theResult Determine applicable person PIDF tuple from 'availEval' and assign to $person as detailed in [PDE_Spec], section "Default Watcher Processing". Validate Person tuple contained in $person, and establish all activities (i.e. exclusive of sub-elements '<note>' and '<unknown>') into variable $acTmp. 0 and count($acPol) > 0]]> For each <activities> 'a' of $person tuple: - determine if 'a' matches the i'th element from $acPol - $boolTmp is non-zero if a match exists (i.e. Person 'unavailable'). Find a service tuple(s) referenced by the applicable PAL Presence Context in $availEval, and assign the result to $service. Establish <registration-state> and policy 'pc:undef-registration-state' to determine an appropriate value for the registration state in ##opaque.regState. Establish <barring-state> and policy 'pc:undef-barring-state' to determine an appropriate value for the registration state in ##opaque.barState. Re-synchronize two concurrent flows, and verify the resulting values of ##opaque.regState and ##opaque.barState. If values are valid/defined, then $theResult is established based on both (##opaque.regState = 'active' AND ##opaque.barState = 'active), otherwise base value of $theResult on whether tuple(s) in $service has a defined 'app-specific-availability' element.