• Publicity: Public Only All

message-relay-procs.tcl

Generic MessageRelay procs Provide means to publish a subscription key and let clients write to these keys. These functions are used e.g. by the chat.

This file defines the following Objects and Classes: ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::mr::none[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::mr::connchan[i], ::xo::MessageRelay[i], ::xo::mr::bgdelivery[i], ::xo::mr::connchan[i]

Location:
packages/xotcl-core/tcl/message-relay-procs.tcl
Created:
2019-02-23
Author:
Gustaf Neumann

Procedures in this file

Detailed information

Class ::xo::MessageRelay (public)

 ::nx::Class ::xo::MessageRelay[i]

Generic Message Relay class

Testcases:
No testcase defined.

xo::MessageRelay method can_be_used (public)

 <instance of xo::MessageRelay[i]> can_be_used

Check, if a message relay can be used in the current configuration.

Testcases:
No testcase defined.

xo::MessageRelay method encode_message (public)

 <instance of xo::MessageRelay[i]> encode_message mode msg

Provide different "encoding" depending on the mode. Notice that for one chat, multiple clients might have difference modes, since the modes are determined at also by the capabilities of the client browser. So the incoming message has to be recoded multiple times.

Parameters:
mode (required)
msg (required)

Testcases:
No testcase defined.

xo::MessageRelay method send_to_subscriber (public)

 <instance of xo::MessageRelay[i]> send_to_subscriber key msg

Send a message to a service identified by the key (communication hub).

Parameters:
key (required)
id for an existing communication hub
msg (required)
message to be sent

Testcases:
No testcase defined.

xo::MessageRelay method subscribe (public)

 <instance of xo::MessageRelay[i]> subscribe [ -initmsg initmsg ] \
    [ -mode mode ] key

Subscribe to a service identified by a key.

Switches:
-initmsg (optional)
optional message to be sent, when subscription happens
-mode (optional, defaults to "default")
optional mode
Parameters:
key (required)
unique id for a (potentially new communication hub)

Testcases:
No testcase defined.

xo::MessageRelay method sweep (public)

 <instance of xo::MessageRelay[i]> sweep key

Check existing subscriptions and clean stale ones.

Parameters:
key (required)
key of the communication hub

Testcases:
No testcase defined.

xo::mr::bgdelivery proc can_be_used (public)

 xo::mr::bgdelivery[i] can_be_used

To use the bgdelivery serive, we require support from the web server, an installed bgdelivery. This method does not work on HTTPS, since this method writes to the raw sockets.

Testcases:
No testcase defined.

xo::mr::bgdelivery proc send_to_subscriber (public)

 xo::mr::bgdelivery[i] send_to_subscriber key msg

Send a message to the subscriber via bgdelivery

Parameters:
key (required)
msg (required)

Testcases:
No testcase defined.

xo::mr::bgdelivery proc subscribe (public)

 xo::mr::bgdelivery[i] subscribe [ -initmsg initmsg ] [ -mode mode ] key

Subscribe to a messaging service using bgdelivery as the low level transport.

Switches:
-initmsg (optional)
-mode (optional, defaults to "default")
Parameters:
key (required)

Testcases:
No testcase defined.

xo::mr::bgdelivery proc sweep (public)

 xo::mr::bgdelivery[i] sweep key

Clean up messages for this key. This should handle potentially stale operations.

Parameters:
key (required)

Testcases:
No testcase defined.

xo::mr::connchan proc can_be_used (public)

 xo::mr::connchan[i] can_be_used

ns_connchan can be used on every recent NaviServer.

Testcases:
No testcase defined.

xo::mr::connchan proc send_to_subscriber (public)

 xo::mr::connchan[i] send_to_subscriber key msg

Write directly to the subscribers from the connection thread via ns_connchan. It would be possible, to perform asynchronous operations via "ns_connchan callback", which would be handled in the background. Not sure, this is necessary.

Parameters:
key (required)
msg (required)

Testcases:
No testcase defined.

xo::mr::connchan proc subscribe (public)

 xo::mr::connchan[i] subscribe [ -initmsg initmsg ] [ -mode mode ] key

ns_log notice "#### [self] subscribe $key mode $mode" Unplug the connection channel from the current connection thread. The currently unplugged channels can be queried via "ns_connchan list"

Switches:
-initmsg (optional)
-mode (optional)
Parameters:
key (required)

Testcases:
No testcase defined.

xo::mr::connchan proc sweep (public)

 xo::mr::connchan[i] sweep key

For the time being, do nothing. Since the chat is verbose on logins/logouts, write operations will fail, in which case the array is cleaned up. If this is not sufficient, probably a "ns_connchan eof" operation would be useful.

Parameters:
key (required)

Testcases:
No testcase defined.
[ hide source ] | [ make this the default ]

Content File Source

::xo::library doc {
  Generic MessageRelay procs

  Provide means to publish a subscription key and let clients write to
  these keys. These functions are used e.g. by the chat.

  @creation-date 2019-02-23
  @author Gustaf Neumann
}

namespace eval ::xo {

  nx::Class create ::xo::MessageRelay {
    #
    # Generic Message Relay class
    #
    :public method subscribe {key {-initmsg ""} {-mode default}} {
      #
      # Subscribe to a service identified by a key.
      #
      # @param key     unique id for a (potentially new communication hub)
      # @param initmsg optional message to be sent, when subscription happens
      # @param mode    optional mode
      #
    }

    :public method send_to_subscriber {key msg} {
      #
      # Send a message to a service identified by the key
      # (communication hub).
      #
      # @param key id for an existing communication hub
      # @param msg message to be sent
      #
    }

    :public method sweep {key} {
      #
      # Check existing subscriptions and clean stale ones.
      #
      # @param  key key of the communication hub
      #
    }

    :public method can_be_used {} {
      #
      # Check, if a message relay can be used in the current
      # configuration.
      #

      return 1
    }

    :method start_of_page {mode} {
      #
      # Compose reply header.
      #
      if {$mode eq "scripted"} {
        #
        # Scripted streaming relies on an infinitely long request,
        # providing chunks of javascript code conveying the
        # message. Widely supported e.g. also by Internet Explorer,
        # but not recommended on modern browsers.
        #
        set content_type "text/html;charset=utf-8"
        set encoding "Cache-Control: no-cache\r\nTransfer-Encoding: chunked\r\n"
        set body "<html><body>[string repeat { } 1024]\r\n"
        set body [format %x [string length $body]]\r\n$body\r\n
        return "HTTP/1.1 200 OK\r\nContent-type: $content_type\r\n$encoding\r\n$body"
      } else {
        #
        # Other modes will use Server Sent Events.
        #
        return [append _ \
                    "HTTP/1.1 200 OK\r\n" \
                    "Cache-Control: no-cache\r\n" \
                    "X-Accel-Buffering': no\r\n" \
                    "Content-type: text/event-stream\r\n" \
                    "\r\n"]
      }
    }

    :public method encode_message {mode msg} {
      #
      # Provide different "encoding" depending on the mode. Notice
      # that for one chat, multiple clients might have difference
      # modes, since the modes are determined at also by the
      # capabilities of the client browser. So the incoming message
      # has to be recoded multiple times.
      #
      set msg [encoding convertto utf-8 $msg]
      if {$mode eq "scripted"} {
        #::sec_handler_reset
        #ns_log notice "SEND data <$msg> encoded <$emsg>"
        set jsMsg [subst {
          <script nonce='[::security::csp::nonce]'>
              window.parent.postMessage($msg);
          </script>
        }]
        set msg [format %x [string length $jsMsg]]\r\n$jsMsg\r\n
      } else {
        set msg [string cat {data: } $msg \n\n]
      }
      #ns_log notice "#### [self] encode_message <$mode> returns <$msg>"
      return $msg
    }

  }
}

namespace eval ::xo::mr {
  #
  # Create a dummy message relay (which can be always used)
  #
  xo::MessageRelay create ::xo::mr::none {
    #
    # Dummy message relay, doing nothing.
    #
  }

  #
  # Message Relay based on bgdelivery. This interface works directly
  # on the socket and is therefore only useful for plain HTTP
  # connections.
  #
  xo::MessageRelay create ::xo::mr::bgdelivery {
    #
    # Message relay based on bgdelivery
    #

    :public object method subscribe {key {-initmsg ""} {-mode default} } {
      #
      # Subscribe to a messaging service using bgdelivery as the low
      # level transport.
      #
      ns_log notice "#### [self] subscribe <$key> mode <$mode>"
      set ch [ns_conn channel]
      thread::transfer [::bgdelivery get_tid] $ch
      # ::bgdelivery do ::Subscriber sweep $key
      ::bgdelivery do ::Subscriber new \
          -channel $ch -key $key \
          -user_id [ad_conn user_id] -mode $mode \
          -start_of_page [:start_of_page $mode]
    }

    :public object method send_to_subscriber {key msg} {
      #
      # Send a message to the subscriber via bgdelivery
      #
      ns_log notice "#### [self] send_to_subscriber $key $msg"
      ::bgdelivery do -async ::Subscriber broadcast $key $msg
    }

    :public object method can_be_used {} {
      #
      # To use the bgdelivery serive, we require support from the web
      # server, an installed bgdelivery. This method does not work on
      # HTTPS, since this method writes to the raw sockets.
      #
      return [expr {
                    [info commands ::thread::mutex] ne ""
                    && [info commands ::bgdelivery] ne ""
                    && (![ns_conn isconnected] || ![security::secure_conn_p])
                  }]
    }

    :public object method sweep {key} {
      #
      # Clean up messages for this key. This should handle potentially
      # stale operations.
      #
      ::bgdelivery do ::Subscriber sweep $key
    }
  }

  #
  # Message Relay based on ns_connchan. This interface works on the
  # full connection structure and can therefore be used for HTTP and
  # HTTPS connections.
  #
  xo::MessageRelay create ::xo::mr::connchan {
    #
    # Message relay based on ns_connchan
    #
    :object method cleanup {key handle} {

      catch {ns_connchan close $handle}
      catch {nsv_unset mr_connchan_$key $handle}
    }

    :public object method subscribe {key {-initmsg ""} {-mode ""} } {
      #ns_log notice "#### [self] subscribe $key mode $mode"
      #
      # Unplug the connection channel from the current connection
      # thread. The currently unplugged channels can be queried via
      # "ns_connchan list"
      #
      set handle [ns_connchan detach]

      #
      # should check and append
      #
      if {![nsv_exists mr_connchan_$key $handle]} {
        nsv_set mr_connchan_$key $handle $mode
        try {
          ns_connchan write $handle [:start_of_page $mode]
        } on error {errorMsg} {
          ns_log warning "message relay: write on <$key> failed: $errorMsg"
          :cleanup $key $handle
        }
      } else {
        ns_log warning "message relay: duplicate registration for <$key> attempted"
      }

      #::bgdelivery do ::Subscriber new \
          #    -channel $ch -key $key \
          #    -user_id [ad_conn user_id] -mode $mode
    }

    :public object method send_to_subscriber {key msg} {
      #
      # Write directly to the subscribers from the connection thread
      # via ns_connchan. It would be possible, to perform asynchronous
      # operations via "ns_connchan callback", which would be handled
      # in the background. Not sure, this is necessary.
      #

      #ns_log notice "#### [self] send_to_subscriber <[nsv_array names mr_connchan_$key]>"

      foreach handle [nsv_array names mr_connchan_$key] {
        try {
          set mode [nsv_get mr_connchan_$key $handle]
          ns_connchan write $handle [:encode_message $mode $msg]
        } on error {errorMsg} {
          ns_log warning "message relay: duplicate registration for <$key> attempted"
          :cleanup $key $handle
        }
      }
    }

    :public object method can_be_used {} {
      #
      # ns_connchan can be used on every recent NaviServer.
      #

      return [expr {[info commands ::ns_connchan] ne ""}]
    }

    :public object method sweep {key} {
      #
      # For the time being, do nothing. Since the chat is verbose on
      # logins/logouts, write operations will fail, in which case the
      # array is cleaned up. If this is not sufficient, probably a
      # "ns_connchan eof" operation would be useful.
      #
    }
  }
}

::xo::library source_dependent
#
# Local variables:
#    mode: tcl
#    tcl-indent-level: 2
#    indent-tabs-mode: nil
# End: