Claims
- 1. A method for communicating files using a plurality of control nodes comprising the steps of:
(a) choosing one control node of a plurality of control nodes to be a primary control node and each other control node to be an assistant control node, (b) establishing a connection between the primary control node and each assistant control node, (c) scheduling a job for execution at a scheduled time, wherein each job specifies one or more specific programs to be transmitted on a specific channel at a specific time, the program comprising a group of one or more files that can be used by a client node in a similar fashion, and program information specifying a manner by which a recipient node can use the files, the channel being a distinct path for communicating a program and having channel information specifying a manner of communicating the program, wherein a program can be communicated one of plural different ways as specified by different channel informations, (d) if a job is to be executed by one of the assistant control nodes, issuing one or more messages from the primary control node to the one assistant control node for causing the assistant control node to execute the job, and (e) a designated control node executing the job by, at the scheduled time of the job, communicating at least one program of the job, via the particular channel of the job, to one or more recipient nodes.
- 2. The method of claim 1 wherein each channel information designates one or more particular control nodes, wherein each of the control nodes is ranked from the primary control node to lower ranking assistant control nodes, and wherein the primary control node chooses the highest ranked control node specified by the channel information of a job for executing the job.
- 3. The method of claim 1 wherein each program information specifies one or more of: a manner of announcing the scheduled transmission of the program to the recipient nodes, a location at which to store the files of the program, an expiration time of the program, a command to be executed upon receipt of the program and one or more graphical icons to display as representing the program.
- 4. The method of claim 1 wherein each channel information specifies one or more of: a bandwidth by which a program is to be communicated, the name of each assistant control node that can communicate in the manner defined by this channel information, an endpoint of a program carried according to the channel information, a packetization format for a program carried according to the channel information, a network layer protocol for a program carried according to the channel information, a transport layer protocol for a program carried according to the channel information, support for requesting retransmission of packets, the ability to multiplex more than one program contemporaneously according to the same channel information, a manner by which recipient nodes can subscribe to the channel, destination address and port information for the channel and error recovery capabilities for the channel.
- 5. The method of claim 1 wherein each control node is ranked from the primary control node to each lower ranked assistant control node, the method further comprising the steps of:
(f) periodically transmitting a heartbeat message form the primary control node to each assistant control node, and (g) in response to the assistant control node ranked immediately below the primary control node failing to receive a heartbeat message within a certain predetermined time interval, the assistant control node ranked immediately below the primary control node assuming the role of the primary control node.
- 6. The method of claim 1 wherein said step of executing further comprises:
(f) if the channel of the job is a transmit channel, then transmitting the program of the job via the channel, and (g) if the channel of the job is a fetch channel, then retrieving one or more files of the program of the job from a location specified by its respective program information
- 7. The method of claim 1 further comprising the steps of:
(f) issuing from an operator console module, on a network connecting the operator console module, the primary control node and a database, one or more instructions for scheduling a new job for execution at a particular scheduled time, the job specifying a specific program to be transmitted on a specific channel, and (g) detecting at the primary control node the new job and choosing one of the control nodes to execute the job.
- 8. The method of claim 7 further comprising the step of:
(h) connecting the operator console module to the network via a wide area network.
- 9. A graphical user interface depicting a time line comprising:
(a) a display screen, depicting a time line with interval markings spaced according to a particular scale, a total duration in time being the sum of the time intervals, and portions thereof, depicted by the interval markings on the time line, and (b) a manual control for altering the time scale of the time line, which, when activated to expand the time scale, causes the spacing between the interval markings to increase and the total duration of time of the time line to decrease, and when activated to collapse the time scale, causes the spacing between the interval markings to decrease and the total duration of time of the time line to increase.
- 10. The graphical user interface of claim 9 wherein the display also depicts a scheduled event as a solid line running parallel to an elapse of time according to the time line over intervals during which the event takes place.
- 11. An operator console graphical user interface comprising:
(a) a first displayable area depicting a time line, (b) a second displayable area, adjacent to the first displayable area, depicting plural tabbed panes, each tabbed pane corresponding to a channel and having a portion which is always visible and selectable to cause the remainder of the respective tabbed pane to become visible, thereby occluding other portions of other tabbed panes, each tabbed pane, when selected, depicting time intervals of a certain scale, and depicting one or more jobs scheduled for execution, with the channel corresponding to the selected pane, during the depicted time intervals of the corresponding pane, as solid lines extending over one or more of the time intervals to represent a time during which the job executes, wherein a job is a scheduled communication of a program on a channel, the program including program information, indicating to a recipient node how to use best-effort program events contained in the program signal, the channel having channel information, indicating a manner of communicating the program signal.
- 12. The operator console graphical user interface of claim 11 further comprising:
(c) a third displayable area depicting a hierarchical list of selectable channels, and (d) a fourth displayable area depicting properties of a selected channel, including channel information dictating the respective manner of communicating data on the corresponding channel, wherein, in response to manual input, each channel listed in the third area is individually selectable and wherein the fourth displayable area displays the properties of whichever one of the channels listed in the third displayable area is currently selected.
- 13. The operator console graphical user interface of claim 11 further comprising:
(e) a third displayable area depicting a hierarchical list of selectable programs, and (f) a fourth displayable area depicting properties of a selected program, including program information indicating to a recipient node how to use the corresponding program, wherein, in response to manual input, each program listed in the third area is individually selectable and wherein the fourth displayable area displays the properties of whichever program listed in the third area is currently selected.
- 14. The operator console graphical user interface of claim 13 wherein at least one of the properties displayed in the fourth displayable area is modifiable in response to manual input.
- 15. The operator console graphical user interface of claim 12 further comprising:
(e) a menu display area including at least one selectable menu key, wherein in response to manual input, one of the selectable menu keys can be selected while a particular one of the programs listed in the third displayable area is selected, to select individual files to carry in the respective selected program.
- 16. The operator console graphical user interface of claim 11 further comprising:
(c) a third displayable area depicting a table of information corresponding to each job scheduled for the channel corresponding to the selected tabbed pane in the second displayable area, each entry of the table indicating properties of a respective one of the jobs, wherein, in response to manual input, each tabbed pane in the second displayable area is selectable, and wherein the third displayable area depicts the table of information corresponding to each job scheduled for the channel corresponding to whichever tabbed pane of the second displayable area is currently selected.
- 17. The operator console graphical user interface of claim 16 further comprising:
(d) a fourth displayable area depicting properties of a selected job, including information for scheduling execution of the selected job, wherein, in response to manual input, each job listed in the third displayable area is individually selectable and wherein the fourth display area displays the properties corresponding to whichever job listed in the third displayable area is currently selected.
- 18. The operator console graphical user interface of claim 17 wherein one or more of the properties displayed in the fourth displayable area is modifiable in response to manual input.
- 19. The operator console graphical user interface of claim 11 further comprising:
(e) a third displayable area depicting properties of a selected job, including information for scheduling execution of the selected job, wherein, in response to manual input, each solid line representing a job depicted in a selected, tabbed pane of the second displayable area is individually selectable and wherein the third display area displays the properties corresponding to whichever job corresponding to a solid line in the selected tabbed pane is currently selected.
- 20. The operator console graphical user interface of claim 19 wherein one or more of the properties displayed in the fourth displayable area is modifiable in response to manual input.
- 21. A client node capable of using program information received thereat comprising:
(a) a memory, (b) a communication interface for receiving programs, each program comprising a group of one or more files and being received from one of a plurality of channels, each channel being a separate, distinct communication path used by the communication interface to separately store the program information received from each channel in the memory as a separately accessible object, (c) a processor for executing plural processes, including:
a. a session manager, which: retrieves from one of the objects corresponding to a particular one of the channels, designated a service channel, information announcing the existence of other channels and a schedule of programs to be received on each of the channels; and issues notifications of each channel to which the client is subscribed, and b. a broker process responsive to the notifications from the session manager for demultiplexing one or more programs from each channel to which the client is subscribed and for using each individual file contained in each demultiplexed program as specified by program information carried in the program with the respective file.
- 22. The client node of claim 21 wherein the session manager also maintains a subscribed program object indicating each program to which the client is subscribed, and wherein the broker process accesses the subscribed program object to determine whether or not to demultiplex a given program from one of the channels to which the client is subscribed.
- 23. The client node of claim 22 further comprising:
(d) a display, and (e) a manual input device, wherein the announcement information indicates each channel to which the client node can subscribe, and a schedule of each program to be transmitted on each of the channels, wherein the processor further executes a guide server process which displays the announcement information to an operator of the client node and which receive instructions from the operator via the manual input device for subscribing to, and unsubcribing from, specific ones of the channels and specific ones of the programs which can be received from the channels.
- 24. The client node of claim 21 further comprising:
(d) a display, and (e) a manual input device,
wherein the announcement information indicates each channel to which the client node can subscribe, wherein the processor further executes a guide server process which displays the announcement information to an operator of the client node and which receive instructions from the operator via the manual input device for subscribing to, and unsubcribing from, specific ones of the channels.
- 25. The client node of claim 21 wherein the use specified by the program includes storing the file in a particular directory associated with the program and specified by the program information of the program.
- 26. The client node of claim 24 wherein the announcement information is initially received and stored in a compact format, and wherein the memory stores modifiable information which specifies the appearance, format and operator interactivity of the announcement information, wherein a modification of the modifiable information changes one or more of the appearance, format or operator interactivity of the displayed schedule.
- 27. The client node of claim 21 wherein the processor further executes a plug-in manager process, a plug-in being a compiled process designed to operate with another compiled process according to a standard application programmer interface for that other process, the plug-in manager detecting receipt of files specific to each plug-in and notifying the given plug-in of receipt of the programs specific thereto.
- 28. The client node of claim 21 wherein the processor also executes a cache manager process responsive to expiry program information carried with each program, the cache manager process deleting each file of each program determined to have expired based on the expiry program information corresponding to the program of the respective file.
- 29. The client node of claim 28 wherein each file of each program is time stamped on receipt and wherein the time stamp associated with each file is reset if the program of the file is received and the program of the file includes at least one new file not previously received for the program.
- 30. A packet comprising:
(a) a source port field, (b) a destination port field, (c) a type field containing one of the following values:
(1) an ANAK value indicating that the packet is an asynchronous negative acknowledgement list packet indicating failure to receiving a list of original data segments in other packets, (2) an ANCF value indicating that the packet is an asynchronous negative acknowledgement list confirmation packet confirming receipt of a packet including an ANAK value in the type field, (3) an ACK value indicating that the packet is a positive acknowledgement packet acknowledging receipt of original data in other packets, or (4) an AACF value indicating that the packet is a positive acknowledgement confirmation packet confirming receipt of a packet including an ACK value in the type field, and (d) a sequence number field containing a value that does not indicate any specific original data packet.
- 31. The packet of claim 30 wherein the type field contains an ANAK value or an ANCF value, the packet further comprising:
(e) a sequence of one or more entries, each entry specifying a range of data words of the original data not received.
- 32. The packet of claim 31 further comprising:
(f) a channel identifier, identifying a channel for transferring the original data not received, and (g) a program identifier, identifying a program, transmitted on the channel, purported to contain the original data not received.
- 33. The packet of claim 32, wherein each entry further comprises:
(h) information designating a specific file carried within the program on the channel, for which the range of data words of the original data was not received.
- 34. The packet of claim 30, wherein the type field contains the ACK or AACF value, the packet further comprising:
(f) a channel identifier, identifying a channel for transferring received original data, (g) a program identifier, identifying a program, transmitted on the channel, and containing the received original data, and (h) a program version value, indicating the version of the program.
- 35. A method for acknowledging a failure of a client node to receive portions of a program from a channel, each program being a group of one or more files and related program information specifying how to use the files, each channel being a distinct path from which a program can be received such that programs received from each channel are distinctly separable, the method comprising:
(a) preparing to receive original data of one or more files of a program from a particular channel, (b) determining that plural ranges of data words of the original data were not received, (c) generating a single packet indicating that the plural ranges of data words were not received, and (d) transmitting the single packet on a return path to another node capable of causing the plural ranges of data words to be retransmitted.
- 36. The method of claim 35 wherein the single packet is transmitted on a return path to the source of the original data words which includes at least one node not on a forward path from the source to the client node.
- 37. The method of claim 35 further comprising:
(e) prior to transmitting the single packet, waiting until a return path becomes available for transmitting the single packet, and (f) transmitting the single packet on the return path.
- 38. The method of claim 35 further comprising the step of
(f) waiting a predetermined period of time after transmitting the single packet for a confirmation packet confirming receipt of the single packet, and (g) if no confirmation packet is received, resending the single packet.
- 39. The method of claim 38 further comprising:
(h) repeating steps (f)-(g) until the confirmation packet is received up to a maximum predetermined number of times.
- 40. A method for retransmitting portions of a program from a channel, each program being a group of one or more files and related program information specifying how to use the files, each channel being a distinct path from which a program can be received such that programs received from each channel are distinctly separable, the method comprising:
(a) receiving, at a network element on a return path between one or more client nodes and a source, of original data of one or more files of a program transmittable on a particular channel, an ANAK packet negatively acknowledging receipt of one or more ranges of data words of one or more of the files of the program, (b) storing information pertinent to the received packet, (c) starting a timer for the ANAK packet, (d) if, before expiration of the timer, another ANAK packet is received which negatively acknowledges receipt of one or more ranges of data words that intersect the ranges of data words of a previously received ANAK packet, the network element consolidating the ranges of the another and previously received ANAK packets, and selectively resetting the timer, and (e) if the timer expires, the network element causing the retransmission of all ranges of original data in the consolidated ranges.
- 41. The method of claim 40 farther comprising:
if the network element is an asynchronous designated local repairer:
(f) the network element transmitting, to the nodes from which the ANAK packets were received, original data stored locally at the network element in a sub-range of the consolidated ranges.
- 42. The method of claim 41 further comprising:
for each sub-range of original data of the consolidated ranges not stored locally at the network element:
(g) the network element forming an ANAK packet indicating one or more of the sub-ranges of original data of the consolidated ranges but not stored at the network element, and (h) transmitting the ANAK packet to another node on a path to the source of the original data.
- 43. The method of claim 40 further comprising:
if the network element is not an asynchronous designated local repairer:
(f) the network element forming an ANAK packet indicating at least one consolidated range, and (g) transmitting the ANAK packet to another node on a path to the source of the original data.
- 44. The method of claim 40 further comprising the step of:
(g) transmitting to each node from which an ANAK packet was received an ANCF packet confirming receipt of the respective ANAK packet.
- 45. The method of claim 40 further comprising the step of:
(g) repeating step (d) up to a predetermined maximum number of times.
- 46. A method for transmitting original data reliably comprising the steps of:
(a) transmitting a plurality of packets containing original data of a file from a source node to one or more client nodes on a forward path from the source node to the client nodes, (b) receiving one or more negative acknowledgement packets indicating that one or more ranges of data words were not received by at least one client node, and (c) multicast retransmitting each of the plurality of packets containing the original data in each range indicated by the one or more packets.
- 47. The method of claim 46 wherein one of the negative acknowledgement packets specifies a plurality of ranges of data words that are not contiguous.
- 48. The method of claim 46 wherein one of the negative acknowledgement packets is received via a return path containing at least one node not also on the forward path to the client node that transmitted the one negative acknowledgement packet.
- 49. The method of claim 46 further comprising the steps of:
(d) verifying at least one of a program identifier, a channel identifier a file number or a file version value contained in each received negative acknowledgement packet, and (e) only multicast retransmitting original data for ranges identified in verified ones of the received negative acknowledgement packets.
- 50. The method of claim 46 further comprising the steps of:
(d) verifying that one of the following events has not occurred: a channel of the original data has been deleted, a program of the original data has been deleted or a channel identifier of the channel on which the original data was originally carried has been reassigined, and (e) only multicast retransmitting the original data if the verification is successful.
- 51. A method for communicating information from a source node to one or more client nodes comprising the step of providing a packet comprising:
(a) a source port field, (b) a destination port field, (c) a type field containing one of the following values:
(1) an ANAK value indicating that the packet is an asynchronous negative acknowledgement list packet indicating failure to receiving a list of original data segments in other packets, (2) an ANCF value indicating that the packet is an asynchronous negative acknowledgement list confirmation packet confirming receipt of a packet including an ANAK value in the type field, (3) an ACK value indicating that the packet is a positive acknowledgement packet acknowledging receipt of original data in other packets, or (4) an AACF value indicating that the packet is a positive acknowledgement confirmation packet confirming receipt of a packet including an ACK value in the type field, and a sequence number field containing a value that does not indicate any specific original data packet.
- 52. The method of claim 51 wherein the packet is located at a client node which is one of the intended recipients of the original data.
- 53. The method of claim 51 wherein the packet is located at a network element node between a client node which is to receive the original data and a source node which transmitted the original data.
- 54. The method of claim 51 wherein the packet is located at a source node which transmitted the original data.
- 55. A sequence of one or more packets for carrying file data of one of a plurality of programs, each program carrying data of one or more files to be used by a recipient node in a similar fashion each packet of the sequence being transferred from source node to recipient node in whole or as plural segments in a signal, the sequence of packets comprising:
(a) a header of a first packet of the sequence of packets, the header including a program identifier filed containing a program identifier which uniquely identifies the program of the sequence of packets, and (b) a payload containing one or more data triplets, each data triplet including a tag, a length and a value field, the tag uniquely identifying the value in the value field and the length indicating the offset in data words to an immediately following data triplet, a length of zero indicating that no data triplet follows, the value fields of the sequence of data triples containing information for uniquely correlating file data in each packet of the sequence to a respective file of one of the best-effort programs.
- 56. The sequence of packets of claim 55 wherein the payload further contains file data of at least a portion of a file identified by the program identifier and the file information.
- 57. The sequence of packets of claim 55 wherein the sequence of packets contains two or more packets, wherein the first packet of the sequence has a payload with no data of the file and wherein each other packet of the sequence has data of the file.
- 58. The sequence of packets of claim 55 wherein each triplet of the sequence contains a value indicating one of: the file number of the program corresponding to the file data, the total amount of information in the file, the offset within the file represented by the file data carried in the packet containing this triplet, the last write time of the file, the total number of files expected to be transferred for this program, the file name of the file, an identifier of the job for this file, wherein each job is a scheduled transfer of the files of a program on a particular channel, where a channel is a distinctly virtual path for transferring programs which enables separate receipt of information from other channels, the file data of the file.
- 59. The sequence of packets of claim 55 wherein the header further comprises:
(c) a key index in a key index field, wherein the key index indexes a key corresponding to the program which can be used to decrypt the payload of the packet.
- 60. The sequence of packets of claim 59 wherein the header further comprises:
(c) an authentication length field, containing an authentication length, and (d) if the authentication length field is greater than zero, an authentication value generated as a function of the encrypted contents of the payload, which authenticates the packet.
- 61. The sequence of packets of claim 59 wherein the header further comprises:
(c) an authentication length field, containing an authentication length, and (d) if the authentication length field is greater than zero, an authentication value generated as a function of the contents of the payload, which authenticates the packet.
- 62. The sequence of packets of claim 61 wherein the contents of the payload are compressed prior to encryption.
- 63. The sequence of packets of claim 55 wherein the contents of the payload are compressed.
- 64. The sequence of packets of claim 55 wherein the payload contains announcement information usable by a recipient node to receive or transmit information.
- 65. The sequence of packets of claim 64 wherein the header includes information for indicating that the announcement information pertains to one of a transmit channel, a program, a user entitlement, a group entitlement, a schedule or a receive channel, where a channel.
- 66. In a communication network, a system including a source node for transmitting a sequence of one or more packets containing best-effort file data for one or more programs on one or more channels to one or more recipient nodes, a program being a signal containing one or more files that can be used by the recipient nodes in a similar fashion, a channel being a distinct virtual path by which a recipient node can receive data separately from data carried on other channels, the sequence of packets comprising:
(a) a header of a first packet of the sequence of packets, the header including a program identifier filed containing a program identifier which uniquely identifies the program of the sequence of packets, and (b) a payload containing one or more data triplets, each data triplet including a tag, a length and a value field, the tag uniquely identifying the value in the value field and the length indicating the offset in data words to an immediately following data triplet, a length of zero indicating that no data triplet follows, the value fields of the sequence of data triples containing information for uniquely correlating file data in each packet of the sequence to a respective file of one of the best-effort programs.
- 67. The system of claim 66 further comprising a recipient node for receiving the sequence of packets and for recovering the file data therefrom.
- 68. In a communication network, a system including a recipient node for receiving a sequence of one or more packets containing best-effort file data for one or more programs on one or more channels from one or more source nodes, a program being a signal containing one or more files that can be used by recipient nodes in a similar fashion, a channel being a distinct virtual path by which a recipient node can receive data separately from data carried on other channels, the sequence of packets comprising:
(a) a header of a first packet of the sequence of packets, the header including a program identifier filed containing a program identifier which uniquely identifies the program of the sequence of packets, and (b) a payload containing one or more data triplets, each data triplet including a tag, a length and a value field, the tag uniquely identifying the value in the value field and the length indicating the offset in data words to an immediately following data triplet, a length of zero indicating that no data triplet follows, the value fields of the sequence of data triples containing information for uniquely correlating file data in each packet of the sequence to a respective file of one of the best-effort programs.
RELATED APPLICATIONS
[0001] The subject matter of this application is related to the subject matter of the following patent applications, all of which are commonly assigned to the same assignee as is this application:
[0002] (1) U.S. patent application Ser. No. 09/007,212, entitled “Receipt and Dispatch Timing of Transport Packets in a Video Program Bearing Stream Remultiplexer,” filed on Jan. 14, 1998 for Regis Gratacap and William Slattery;
[0003] (2) U.S. patent application Ser. No. 09/007,334, entitled “Dynamic Video Program Bearing Stream Remultiplexer,” filed on Jan. 14, 1998 for Regis Gratacap;
[0004] (3) U.S. patent application Ser. No. 09/007,203, entitled “Re-timing of Video Program Bearing Streams Transmitted by an Asynchronous Communication Link,” filed on Jan. 14, 1998 for Regis Gratacap;
[0005] (4) U.S. patent application Ser. No. 09/007,211, entitled “Bandwidth Optimization of Video Program Bearing Transport Streams,” filed on Jan. 14, 1998 for Robert Robinett and Regis Gratacap;
[0006] (5) U.S. patent application Ser. No. 09/007,210, entitled “Network Distributed Remultiplexer for Video Program Bearing Transport Streams,” filed on Jan. 14, 1998 for Robert Robinett, Regis Gratacap and William Slattery;
[0007] (6) U.S. patent application Ser. No. 09/007,204, entitled “Remultiplexer for Video Program Bearing Transport Streams with Assisted Output Timing for Asynchronous Communication Output,” filed on Jan. 14, 1998 for Regis Gratacap;
[0008] (7) U.S. patent application Ser. No. 09/006,964, entitled “Remultiplexer for Video Program Bearing Transport Streams with Program Clock Reference Time Stamp Adjustment,” filed on Jan. 14, 1998 for William Slattery and Regis Gratacap;
[0009] (8) U.S. patent application Ser. No. 09/007,198, entitled “Remultiplexer Cache Architecture and Memory Organization for Storing Video Program Bearing Transport Packets and Descriptors,” filed on Jan. 14, 1998 for William Slattery and Regis Gratacap;
[0010] (9) U.S. patent application Ser. No. 09/007,199, entitled “Scrambling and Descrambling Control Word Control in a Remultiplexer for Video Bearing Transport Streams,” filed on Jan. 14, 1998 for William Slattery and Regis Gratacap;
[0011] (10) U.S. patent application Ser. No. 09/006,963, entitled “Reference Time Clock Locking in a Remultiplexer for Video Program Bearing Transport Streams,” filed on Jan. 14, 1998 for William Slattery;
[0012] (11) U.S. patent application Ser. No. 09/393,227, entitled “Remultiplexer Architecture for Controlling the Supply of Data to be Combined With Constant End-to-End Delay Information,” filed on Sep. 9, 1999 for John R. Mick, Jr.
[0013] (12) U.S. patent application Ser. No. 09/933,265, entitled “Controlling Multiple Nodes To Execute Messages Only Once,” filed on Aug. 20, 2001 for Mahshid Ellie Abdollahi, Javad Esmaeili, and Sanjay Bhatia;
[0014] (13) U.S. patent application Ser. No. 09/933,260, entitled “Controlling Multiple Nodes Divided Into Groups,” filed on Aug. 20, 2001 for Mahshid Ellie Abdollahi, Javad Esmaeili, and Sanjay Bhatia; and
[0015] (14) U.S. patent application Ser. No. 09/933,264, entitled “Controlling Multiple Nodes Using SNMP,” filed on Aug. 20, 2001 for Mahshid Ellie Abdollahi, Javad Esmaeili, and Sanjay Bhatia.
[0016] The contents of these documents are fully incorporated herein by reference.
Continuations (1)
|
Number |
Date |
Country |
Parent |
09950927 |
Sep 2001 |
US |
Child |
10147010 |
May 2002 |
US |