| Package | Description | 
|---|---|
| agi.foundation.access | 
 Contains types used in performing access calculations. 
 | 
| agi.foundation.access.constraints | 
 Contains types used in modeling constraints applied to the calculation of access. 
 | 
| agi.foundation.communications | 
 Contains types for representing electromagnetic signals and propagating them along communication links. 
 | 
| agi.foundation.geometry | 
 Contains types for expressing the motion of fundamental geometric objects such as points, axes, and reference frames; 
 the manner in which they are related; and transformations between representations. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
LinkRole | 
ILinkConstraint.getConstrainedLinkEnd()
Gets the end of the link to which this constraint applies. 
 | 
LinkRole | 
AlwaysSatisfiedLinkConstraint.getConstrainedLinkEnd()
Gets the end of the link to which this constraint applies. 
 | 
static LinkRole | 
LinkRole.getDefault()
Get the enum constant that is considered to be the default. 
 | 
static LinkRole | 
LinkRole.getFromValue(int value)
Get the enum constant that is associated with the given numeric value. 
 | 
static LinkRole | 
LinkHelper.getOppositeLinkEnd(LinkRole role)
 | 
static LinkRole | 
LinkHelper.getRoleOfParticipant(ILinkService link,
                    IServiceProvider participant)
Gets the role played by a specified participant in the link. 
 | 
static LinkRole | 
LinkHelper.getRoleOfParticipant(IServiceProvider link,
                    IServiceProvider participant)
Gets the role played by a specified participant in the link. 
 | 
static LinkRole | 
LinkRole.valueOf(String name)
Returns the enum constant of this type with the specified name. 
 | 
static LinkRole[] | 
LinkRole.values()
Returns an array containing the constants of this enum type, in
the order they are declared. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
static VectorDisplacement | 
LinkHelper.getDisplacementVectorByRole(ILinkService link,
                           LinkRole role)
Gets the displacement vector for a given link and role. 
 | 
static VectorDisplacement | 
LinkHelper.getDisplacementVectorByRole(IServiceProvider link,
                           LinkRole role)
Gets the displacement vector for a given link and role. 
 | 
static LinkDelayEvaluator | 
LinkHelper.getLinkDelayEvaluatorByRole(ILinkService link,
                           EvaluatorGroup group,
                           LinkRole role)
Gets a link delay evaluator for a given link and role. 
 | 
static LinkDelayEvaluator | 
LinkHelper.getLinkDelayEvaluatorByRole(IServiceProvider link,
                           EvaluatorGroup group,
                           LinkRole role)
Gets a link delay evaluator for a given link and role. 
 | 
LinkDelayEvaluator | 
LinkPath.getLinkPathDelayEvaluator(EvaluatorGroup group,
                         LinkRole roleOfTimeObserver)
Creates a  
LinkDelayEvaluator which evaluates the time delay offset
    from the initial service provider to the final service provider in the path. | 
static LinkRole | 
LinkHelper.getOppositeLinkEnd(LinkRole role)
 | 
static IServiceProvider | 
LinkHelper.getParticipantByRole(ILinkService link,
                    LinkRole role)
Gets the participant that is playing a specified role in the link. 
 | 
static IServiceProvider | 
LinkHelper.getParticipantByRole(IServiceProvider link,
                    LinkRole role)
Gets the participant that is playing a specified role in the link. 
 | 
void | 
ILinkConstraint.setConstrainedLinkEnd(LinkRole value)
Sets the end of the link to which this constraint applies. 
 | 
void | 
AlwaysSatisfiedLinkConstraint.setConstrainedLinkEnd(LinkRole value)
Sets the end of the link to which this constraint applies. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
LinkRole | 
TerrainLineOfSightConstraint.getConstrainedLinkEnd()
Gets the end of the link to which this constraint applies. 
 | 
LinkRole | 
TotalAngularRateConstraint.getConstrainedLinkEnd()
Gets the end of the link to which this constraint applies. 
 | 
LinkRole | 
SurfaceDistanceConstraint.getConstrainedLinkEnd()
Gets the end of the link to which this constraint applies. 
 | 
LinkRole | 
SensorVolumeConstraint.getConstrainedLinkEnd()
Gets the end of the link to which this constraint applies. 
 | 
LinkRole | 
RangeRateConstraint.getConstrainedLinkEnd()
Gets the end of the link to which this constraint applies. 
 | 
LinkRole | 
RangeConstraint.getConstrainedLinkEnd()
Gets the end of the link to which this constraint applies. 
 | 
LinkRole | 
HeightAboveHorizonConstraint.getConstrainedLinkEnd()
Gets the end of the link to which this constraint applies. 
 | 
LinkRole | 
GroundSampleDistanceConstraint.getConstrainedLinkEnd()
Gets the end of the link to which this constraint applies. 
 | 
LinkRole | 
ElevationAngleRateConstraint.getConstrainedLinkEnd()
Gets the end of the link to which this constraint applies. 
 | 
LinkRole | 
ElevationAngleConstraint.getConstrainedLinkEnd()
Gets the end of the link to which this constraint applies. 
 | 
LinkRole | 
CovarianceSeparationConstraint.getConstrainedLinkEnd()
Gets the end of the link to which this constraint applies. 
 | 
LinkRole | 
CircularEquatorialOrbitGrazingAngleConstraint.getConstrainedLinkEnd()
Gets the end of the link to which this constraint applies. 
 | 
LinkRole | 
CentralBodySurfaceRegionSensorVolumeConstraint.getConstrainedLinkEnd()
Gets the end of the link to which this constraint applies. 
 | 
LinkRole | 
CentralBodySurfaceRegionElevationAngleConstraint.getConstrainedLinkEnd()
Gets the end of the link to which this constraint applies. 
 | 
LinkRole | 
CentralBodySurfaceCurveElevationAngleConstraint.getConstrainedLinkEnd()
Gets the end of the link to which this constraint applies. 
 | 
LinkRole | 
CentralBodyObstructionConstraint.getConstrainedLinkEnd()
Gets the end of the link to which this constraint applies. 
 | 
LinkRole | 
AzimuthElevationMaskConstraint.getConstrainedLinkEnd()
Gets the end of the link to which this constraint applies. 
 | 
LinkRole | 
AzimuthAngleRateConstraint.getConstrainedLinkEnd()
Gets the end of the link to which this constraint applies. 
 | 
LinkRole | 
AzimuthAngleConstraint.getConstrainedLinkEnd()
Gets the end of the link to which this constraint applies. 
 | 
LinkRole | 
AngleOutOfPlaneConstraint.getConstrainedLinkEnd()
Gets the end of the link to which this constraint applies. 
 | 
LinkRole | 
AngleInPlaneConstraint.getConstrainedLinkEnd()
Gets the end of the link to which this constraint applies. 
 | 
LinkRole | 
CommunicationLinkConstraint.getConstrainedLinkEnd()
Gets the end of the link to which this constraint applies. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
void | 
TerrainLineOfSightConstraint.setConstrainedLinkEnd(LinkRole value)
Sets the end of the link to which this constraint applies. 
 | 
void | 
TotalAngularRateConstraint.setConstrainedLinkEnd(LinkRole value)
Sets the end of the link to which this constraint applies. 
 | 
void | 
SurfaceDistanceConstraint.setConstrainedLinkEnd(LinkRole value)
Sets the end of the link to which this constraint applies. 
 | 
void | 
SensorVolumeConstraint.setConstrainedLinkEnd(LinkRole value)
Sets the end of the link to which this constraint applies. 
 | 
void | 
RangeRateConstraint.setConstrainedLinkEnd(LinkRole value)
Sets the end of the link to which this constraint applies. 
 | 
void | 
RangeConstraint.setConstrainedLinkEnd(LinkRole value)
Sets the end of the link to which this constraint applies. 
 | 
void | 
HeightAboveHorizonConstraint.setConstrainedLinkEnd(LinkRole value)
Sets the end of the link to which this constraint applies. 
 | 
void | 
GroundSampleDistanceConstraint.setConstrainedLinkEnd(LinkRole value)
Sets the end of the link to which this constraint applies. 
 | 
void | 
ElevationAngleRateConstraint.setConstrainedLinkEnd(LinkRole value)
Sets the end of the link to which this constraint applies. 
 | 
void | 
ElevationAngleConstraint.setConstrainedLinkEnd(LinkRole value)
Sets the end of the link to which this constraint applies. 
 | 
void | 
CovarianceSeparationConstraint.setConstrainedLinkEnd(LinkRole value)
Sets the end of the link to which this constraint applies. 
 | 
void | 
CircularEquatorialOrbitGrazingAngleConstraint.setConstrainedLinkEnd(LinkRole value)
Sets the end of the link to which this constraint applies. 
 | 
void | 
CentralBodySurfaceRegionSensorVolumeConstraint.setConstrainedLinkEnd(LinkRole value)
Sets the end of the link to which this constraint applies. 
 | 
void | 
CentralBodySurfaceRegionElevationAngleConstraint.setConstrainedLinkEnd(LinkRole value)
Sets the end of the link to which this constraint applies. 
 | 
void | 
CentralBodySurfaceCurveElevationAngleConstraint.setConstrainedLinkEnd(LinkRole value)
Sets the end of the link to which this constraint applies. 
 | 
void | 
CentralBodyObstructionConstraint.setConstrainedLinkEnd(LinkRole value)
Sets the end of the link to which this constraint applies. 
 | 
void | 
AzimuthElevationMaskConstraint.setConstrainedLinkEnd(LinkRole value)
Sets the end of the link to which this constraint applies. 
 | 
void | 
AzimuthAngleRateConstraint.setConstrainedLinkEnd(LinkRole value)
Sets the end of the link to which this constraint applies. 
 | 
void | 
AzimuthAngleConstraint.setConstrainedLinkEnd(LinkRole value)
Sets the end of the link to which this constraint applies. 
 | 
void | 
AngleOutOfPlaneConstraint.setConstrainedLinkEnd(LinkRole value)
Sets the end of the link to which this constraint applies. 
 | 
void | 
AngleInPlaneConstraint.setConstrainedLinkEnd(LinkRole value)
Sets the end of the link to which this constraint applies. 
 | 
void | 
CommunicationLinkConstraint.setConstrainedLinkEnd(LinkRole value)
Sets the end of the link to which this constraint applies. 
 | 
| Constructor and Description | 
|---|
AzimuthAngleConstraint(IServiceProvider constrainedLink,
                      LinkRole constrainedLinkEnd,
                      CentralBody centralBody,
                      double startAngle,
                      double stopAngle)
Initializes a new instance with the specified constrained link, constrained link end,
    central body, start angle, and stop angle. 
 | 
AzimuthAngleConstraint(IServiceProvider constrainedLink,
                      LinkRole constrainedLinkEnd,
                      double startAngle,
                      double stopAngle)
Initializes a new instance with the specified constrained link, constrained link end,
    start angle, and stop angle. 
 | 
AzimuthAngleRateConstraint(IServiceProvider constrainedLink,
                          LinkRole constrainedLinkEnd,
                          CentralBody centralBody,
                          double maximumValue)
Initializes a new instance with the specified constrained link, constrained link end, central body,
    and maximum value. 
 | 
AzimuthAngleRateConstraint(IServiceProvider constrainedLink,
                          LinkRole constrainedLinkEnd,
                          CentralBody centralBody,
                          double minimumValue,
                          double maximumValue)
Initializes a new instance with the specified constrained link, constrained link end,
    central body, minimum value, and maximum value. 
 | 
AzimuthAngleRateConstraint(IServiceProvider constrainedLink,
                          LinkRole constrainedLinkEnd,
                          double maximumValue)
Initializes a new instance with the specified constrained link, constrained link end, and maximum value. 
 | 
AzimuthAngleRateConstraint(IServiceProvider constrainedLink,
                          LinkRole constrainedLinkEnd,
                          double minimumValue,
                          double maximumValue)
Initializes a new instance with the specified constrained link, constrained link end, minimum value, and maximum value. 
 | 
AzimuthElevationMaskConstraint(IServiceProvider constrainedLink,
                              LinkRole constrainedLinkEnd)
Initializes a new instance with the specified constrained link and constrained link end. 
 | 
AzimuthElevationMaskConstraint(IServiceProvider constrainedLink,
                              LinkRole constrainedLinkEnd,
                              double minimumValue)
Initializes a new instance with the specified constrained link, constrained link end, and minimum value. 
 | 
AzimuthElevationMaskConstraint(IServiceProvider constrainedLink,
                              LinkRole constrainedLinkEnd,
                              double minimumValue,
                              double maximumValue)
Initializes a new instance with the specified constrained link, constrained link end, minimum value, and maximum value. 
 | 
CentralBodySurfaceCurveElevationAngleConstraint(IServiceProvider constrainedLink,
                                               LinkRole constrainedLinkEnd,
                                               CentralBody centralBody,
                                               double minimumElevation)
Initializes a new instance with the specified constrained link, constrained link end, central body,
    and minimum value. 
 | 
CentralBodySurfaceCurveElevationAngleConstraint(IServiceProvider constrainedLink,
                                               LinkRole constrainedLinkEnd,
                                               double minimumElevation)
Initializes a new instance with the specified constrained link, constrained link end, and minimum value. 
 | 
CentralBodySurfaceRegionElevationAngleConstraint(IServiceProvider constrainedLink,
                                                LinkRole constrainedLinkEnd,
                                                CentralBody centralBody,
                                                double minimumElevation)
Initializes a new instance with the specified constrained link, constrained link end,  
CentralBody,
    and minimum value. | 
CentralBodySurfaceRegionElevationAngleConstraint(IServiceProvider constrainedLink,
                                                LinkRole constrainedLinkEnd,
                                                double minimumElevation)
Initializes a new instance with the specified constrained link, constrained link end, and minimum value. 
 | 
CentralBodySurfaceRegionSensorVolumeConstraint(IServiceProvider constrainedLink,
                                              LinkRole constrainedLinkEnd)
Initializes a new instance from the provided service provider, region, and central body. 
 | 
CircularEquatorialOrbitGrazingAngleConstraint(IServiceProvider constrainedLink,
                                             LinkRole constrainedLinkEnd,
                                             CentralBody centralBody,
                                             Scalar radius,
                                             double minimumValue)
Initializes a new instance with the specified constrained link, constrained link end, central body,
    and minimum value. 
 | 
CircularEquatorialOrbitGrazingAngleConstraint(IServiceProvider constrainedLink,
                                             LinkRole constrainedLinkEnd,
                                             CentralBody centralBody,
                                             Scalar radius,
                                             double minimumValue,
                                             double maximumValue)
Initializes a new instance with the specified constrained link, constrained link end, central body,
    minimum value, and maximum value. 
 | 
CircularEquatorialOrbitGrazingAngleConstraint(IServiceProvider constrainedLink,
                                             LinkRole constrainedLinkEnd,
                                             Scalar radius,
                                             double minimumValue)
Initializes a new instance with the specified constrained link, constrained link end, and minimum value. 
 | 
ElevationAngleConstraint(IServiceProvider constrainedLink,
                        LinkRole constrainedLinkEnd,
                        CentralBody centralBody,
                        double minimumValue)
Initializes a new instance with the specified constrained link, constrained link end, central body,
    and minimum value. 
 | 
ElevationAngleConstraint(IServiceProvider constrainedLink,
                        LinkRole constrainedLinkEnd,
                        CentralBody centralBody,
                        double minimumValue,
                        double maximumValue)
Initializes a new instance with the specified constrained link, constrained link end, central body,
    minimum value, and maximum value. 
 | 
ElevationAngleConstraint(IServiceProvider constrainedLink,
                        LinkRole constrainedLinkEnd,
                        double minimumValue)
Initializes a new instance with the specified constrained link, constrained link end, and minimum value. 
 | 
ElevationAngleRateConstraint(IServiceProvider constrainedLink,
                            LinkRole constrainedLinkEnd,
                            CentralBody centralBody,
                            double minimumValue)
Initializes a new instance with the specified constrained link, constrained link end, central body,
    and minimum value. 
 | 
ElevationAngleRateConstraint(IServiceProvider constrainedLink,
                            LinkRole constrainedLinkEnd,
                            CentralBody centralBody,
                            double minimumValue,
                            double maximumValue)
Initializes a new instance with the specified constrained link, constrained link end,
    central body, minimum value, and maximum value. 
 | 
ElevationAngleRateConstraint(IServiceProvider constrainedLink,
                            LinkRole constrainedLinkEnd,
                            double minimumValue)
Initializes a new instance with the specified constrained link, constrained link end, and minimum value. 
 | 
ElevationAngleRateConstraint(IServiceProvider constrainedLink,
                            LinkRole constrainedLinkEnd,
                            double minimumValue,
                            double maximumValue)
Initializes a new instance with the specified constrained link, constrained link end, minimum value, and maximum value. 
 | 
GroundSampleDistanceConstraint(IServiceProvider constrainedLink,
                              LinkRole constrainedLinkEnd,
                              CentralBody centralBody,
                              double minimumValue)
Initializes a new instance with the specified constrained link, constrained link end, central body,
    and minimum value. 
 | 
GroundSampleDistanceConstraint(IServiceProvider constrainedLink,
                              LinkRole constrainedLinkEnd,
                              CentralBody centralBody,
                              double minimumValue,
                              double maximumValue)
Initializes a new instance with the specified constrained link, constrained link end,
    central body, minimum value, and maximum value. 
 | 
GroundSampleDistanceConstraint(IServiceProvider constrainedLink,
                              LinkRole constrainedLinkEnd,
                              double minimumValue)
Initializes a new instance with the specified constrained link, constrained link end, and minimum value. 
 | 
GroundSampleDistanceConstraint(IServiceProvider constrainedLink,
                              LinkRole constrainedLinkEnd,
                              double minimumValue,
                              double maximumValue)
Initializes a new instance with the specified constrained link, constrained link end, minimum value, and maximum value. 
 | 
HeightAboveHorizonConstraint(IServiceProvider constrainedLink,
                            LinkRole constrainedLinkEnd,
                            CentralBody centralBody,
                            double minimumValue)
Initializes a new instance with the specified constrained link, constrained link end, central body,
    and minimum value. 
 | 
HeightAboveHorizonConstraint(IServiceProvider constrainedLink,
                            LinkRole constrainedLinkEnd,
                            CentralBody centralBody,
                            double minimumValue,
                            double maximumValue)
Initializes a new instance with the specified constrained link, constrained link end,
    central body, minimum value, and maximum value. 
 | 
HeightAboveHorizonConstraint(IServiceProvider constrainedLink,
                            LinkRole constrainedLinkEnd,
                            double minimumValue)
Initializes a new instance with the specified constrained link, constrained link end, and minimum value. 
 | 
HeightAboveHorizonConstraint(IServiceProvider constrainedLink,
                            LinkRole constrainedLinkEnd,
                            double minimumValue,
                            double maximumValue)
Initializes a new instance with the specified constrained link, constrained link end, minimum value, and maximum value. 
 | 
SensorVolumeConstraint(IServiceProvider constrainedLink,
                      LinkRole constrainedLinkEnd)
Initializes a new instance with the specified constrained link and constrained link end. 
 | 
SurfaceDistanceConstraint(IServiceProvider constrainedLink,
                         LinkRole constrainedLinkEnd,
                         CentralBody centralBody,
                         double minimumValue,
                         double maximumValue)
Initializes a new instance with the specified constrained link, constrained link end, central body,
    minimum value, and maximum value. 
 | 
TerrainLineOfSightConstraint(IServiceProvider constrainedLink,
                            LinkRole constrainedLinkEnd,
                            TerrainProvider terrainProvider)
Initializes a new instance with the specified constrained link, constrained link end, and terrain provider. 
 | 
TotalAngularRateConstraint(IServiceProvider constrainedLink,
                          LinkRole constrainedLinkEnd,
                          double minimumValue)
Initializes a new instance with the specified constrained link, constrained link end, and minimum value. 
 | 
TotalAngularRateConstraint(IServiceProvider constrainedLink,
                          LinkRole constrainedLinkEnd,
                          double minimumValue,
                          double maximumValue)
Initializes a new instance with the specified constrained link, constrained link end, minimum value, and maximum value. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
Iterable<ExtensibleObject> | 
CommunicationLinkCollection.find(IServiceProvider linkEnd,
    LinkRole role)
Finds all links in the collection that contain the provided link end
    in the specified role. 
 | 
ExtensibleObject | 
CommunicationLinkCollection.findFirst(IServiceProvider linkEnd,
         LinkRole role)
Finds the first link in the collection that contains the provided link end
    in the specified role. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
LinkRole | 
ScalarDelayedByLink.getDirectionOfDelay()
 | 
LinkRole | 
ScalarReceivedPowerFluxDensity.getLinkEnd()
Gets the enumeration indicating that this scalar is evaluated at the  
LinkRole.RECEIVER of the 
    communication link. | 
LinkRole | 
ScalarReceivedIsotropicPower.getLinkEnd()
Gets the enumeration indicating that this scalar is evaluated at the  
LinkRole.RECEIVER of the 
    communication link. | 
LinkRole | 
ScalarPropagationLoss.getLinkEnd()
Gets the enumeration indicating that this scalar is evaluated at the  
LinkRole.RECEIVER of the 
    communication link. | 
LinkRole | 
ScalarEffectiveIsotropicRadiatedPower.getLinkEnd()
Gets the enumeration indicating that this scalar is evaluated at the  
LinkRole.TRANSMITTER of the 
    communication link. | 
LinkRole | 
ScalarAntennaGainInLinkDirection.getLinkEnd()
Gets the enumeration indicating at which end of the link to evaluate the antenna gain. 
 | 
abstract LinkRole | 
CommunicationLinkScalar.getLinkEnd()
Gets a value indicating at which end of the link this scalar is evaluated. 
 | 
LinkRole | 
ScalarDopplerConeAngle.getMovingLinkEnd()
Gets the end of the link that is the moving object. 
 | 
LinkRole | 
AxesTargetingLink.getObserver()
Gets the end of the link that is being oriented. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
void | 
ScalarDelayedByLink.setDirectionOfDelay(LinkRole value)
 | 
void | 
ScalarReceivedPowerFluxDensity.setLinkEnd(LinkRole value)
Sets the enumeration indicating that this scalar is evaluated at the  
LinkRole.RECEIVER of the 
    communication link. | 
void | 
ScalarReceivedIsotropicPower.setLinkEnd(LinkRole value)
Sets the enumeration indicating that this scalar is evaluated at the  
LinkRole.RECEIVER of the 
    communication link. | 
void | 
ScalarPropagationLoss.setLinkEnd(LinkRole value)
Sets the enumeration indicating that this scalar is evaluated at the  
LinkRole.RECEIVER of the 
    communication link. | 
void | 
ScalarEffectiveIsotropicRadiatedPower.setLinkEnd(LinkRole value)
Sets the enumeration indicating that this scalar is evaluated at the  
LinkRole.TRANSMITTER of the 
    communication link. | 
void | 
ScalarAntennaGainInLinkDirection.setLinkEnd(LinkRole value)
Sets the enumeration indicating at which end of the link to evaluate the antenna gain. 
 | 
abstract void | 
CommunicationLinkScalar.setLinkEnd(LinkRole value)
Sets a value indicating at which end of the link this scalar is evaluated. 
 | 
void | 
ScalarDopplerConeAngle.setMovingLinkEnd(LinkRole value)
Sets the end of the link that is the moving object. 
 | 
void | 
AxesTargetingLink.setObserver(LinkRole value)
Sets the end of the link that is being oriented. 
 | 
| Constructor and Description | 
|---|
AxesTargetingLink(IServiceProvider link,
                 LinkRole observer,
                 Vector reference)
Initializes a new instance specifying all parameters. 
 | 
ScalarAntennaGainInLinkDirection(IServiceProvider link,
                                LinkRole linkEnd,
                                SignalPropagationGraph graph,
                                IntendedSignalStrategy intendedSignalStrategy)
Initialize a new instance based on the given parameters. 
 | 
ScalarDelayedByLink(Scalar scalarToDelay,
                   IServiceProvider link,
                   LinkRole directionOfDelay)
Initialize a new instance based on the given scalar delayed by the given link. 
 | 
ScalarDelayedByLink(Scalar scalarToDelay,
                   LinkPath linkPath,
                   LinkRole directionOfDelay)
Initialize a new instance based on the given scalar delayed by the given link. 
 | 
ScalarDopplerConeAngle(IServiceProvider link,
                      LinkRole movingLinkEnd,
                      ReferenceFrame frame)
Initializes a doppler cone angle scalar. 
 |