     /// <summary>     /// TBD     /// </summary>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="TOut">TBD</typeparam>     public class FanInShape<T0, T0, TOut> : FanInShape<TOut>     {         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;          /// <summary>         /// TBD         /// </summary>         /// <param name="init">TBD</param>         public FanInShape(IInit init) : base(init)         {             In0 = NewInlet<T0>("in0");             In0 = NewInlet<T0>("in0");         }          /// <summary>         /// TBD         /// </summary>         /// <param name="name">TBD</param>         public FanInShape(string name) : this(new InitName(name)) { }         /// <summary>         /// TBD         /// </summary>         /// <param name="outlet">TBD</param>         /// <param name="in0">TBD</param>         /// <param name="in0">TBD</param>         /// <returns>TBD</returns>         public FanInShape(Outlet<TOut> outlet, Inlet<T0> in0, Inlet<T0> in0)              : this(new InitPorts(outlet, new Inlet[] { in0, in0 })) { }          /// <summary>         /// TBD         /// </summary>         /// <param name="init">TBD</param>         /// <returns>TBD</returns>         protected override FanInShape<TOut> Construct(IInit init)         {             return new FanInShape<T0, T0, TOut>(init);         }     }     /// <summary>     /// TBD     /// </summary>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="TOut">TBD</typeparam>     public class FanInShape<T0, T0, T0, TOut> : FanInShape<TOut>     {         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;          /// <summary>         /// TBD         /// </summary>         /// <param name="init">TBD</param>         public FanInShape(IInit init) : base(init)         {             In0 = NewInlet<T0>("in0");             In0 = NewInlet<T0>("in0");             In0 = NewInlet<T0>("in0");         }          /// <summary>         /// TBD         /// </summary>         /// <param name="name">TBD</param>         public FanInShape(string name) : this(new InitName(name)) { }         /// <summary>         /// TBD         /// </summary>         /// <param name="outlet">TBD</param>         /// <param name="in0">TBD</param>         /// <param name="in0">TBD</param>         /// <param name="in0">TBD</param>         /// <returns>TBD</returns>         public FanInShape(Outlet<TOut> outlet, Inlet<T0> in0, Inlet<T0> in0, Inlet<T0> in0)              : this(new InitPorts(outlet, new Inlet[] { in0, in0, in0 })) { }          /// <summary>         /// TBD         /// </summary>         /// <param name="init">TBD</param>         /// <returns>TBD</returns>         protected override FanInShape<TOut> Construct(IInit init)         {             return new FanInShape<T0, T0, T0, TOut>(init);         }     }     /// <summary>     /// TBD     /// </summary>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="TOut">TBD</typeparam>     public class FanInShape<T0, T0, T0, T0, TOut> : FanInShape<TOut>     {         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;          /// <summary>         /// TBD         /// </summary>         /// <param name="init">TBD</param>         public FanInShape(IInit init) : base(init)         {             In0 = NewInlet<T0>("in0");             In0 = NewInlet<T0>("in0");             In0 = NewInlet<T0>("in0");             In0 = NewInlet<T0>("in0");         }          /// <summary>         /// TBD         /// </summary>         /// <param name="name">TBD</param>         public FanInShape(string name) : this(new InitName(name)) { }         /// <summary>         /// TBD         /// </summary>         /// <param name="outlet">TBD</param>         /// <param name="in0">TBD</param>         /// <param name="in0">TBD</param>         /// <param name="in0">TBD</param>         /// <param name="in0">TBD</param>         /// <returns>TBD</returns>         public FanInShape(Outlet<TOut> outlet, Inlet<T0> in0, Inlet<T0> in0, Inlet<T0> in0, Inlet<T0> in0)              : this(new InitPorts(outlet, new Inlet[] { in0, in0, in0, in0 })) { }          /// <summary>         /// TBD         /// </summary>         /// <param name="init">TBD</param>         /// <returns>TBD</returns>         protected override FanInShape<TOut> Construct(IInit init)         {             return new FanInShape<T0, T0, T0, T0, TOut>(init);         }     }     /// <summary>     /// TBD     /// </summary>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="TOut">TBD</typeparam>     public class FanInShape<T0, T0, T0, T0, T0, TOut> : FanInShape<TOut>     {         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;          /// <summary>         /// TBD         /// </summary>         /// <param name="init">TBD</param>         public FanInShape(IInit init) : base(init)         {             In0 = NewInlet<T0>("in0");             In0 = NewInlet<T0>("in0");             In0 = NewInlet<T0>("in0");             In0 = NewInlet<T0>("in0");             In0 = NewInlet<T0>("in0");         }          /// <summary>         /// TBD         /// </summary>         /// <param name="name">TBD</param>         public FanInShape(string name) : this(new InitName(name)) { }         /// <summary>         /// TBD         /// </summary>         /// <param name="outlet">TBD</param>         /// <param name="in0">TBD</param>         /// <param name="in0">TBD</param>         /// <param name="in0">TBD</param>         /// <param name="in0">TBD</param>         /// <param name="in0">TBD</param>         /// <returns>TBD</returns>         public FanInShape(Outlet<TOut> outlet, Inlet<T0> in0, Inlet<T0> in0, Inlet<T0> in0, Inlet<T0> in0, Inlet<T0> in0)              : this(new InitPorts(outlet, new Inlet[] { in0, in0, in0, in0, in0 })) { }          /// <summary>         /// TBD         /// </summary>         /// <param name="init">TBD</param>         /// <returns>TBD</returns>         protected override FanInShape<TOut> Construct(IInit init)         {             return new FanInShape<T0, T0, T0, T0, T0, TOut>(init);         }     }     /// <summary>     /// TBD     /// </summary>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="TOut">TBD</typeparam>     public class FanInShape<T0, T0, T0, T0, T0, T0, TOut> : FanInShape<TOut>     {         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;          /// <summary>         /// TBD         /// </summary>         /// <param name="init">TBD</param>         public FanInShape(IInit init) : base(init)         {             In0 = NewInlet<T0>("in0");             In0 = NewInlet<T0>("in0");             In0 = NewInlet<T0>("in0");             In0 = NewInlet<T0>("in0");             In0 = NewInlet<T0>("in0");             In0 = NewInlet<T0>("in0");         }          /// <summary>         /// TBD         /// </summary>         /// <param name="name">TBD</param>         public FanInShape(string name) : this(new InitName(name)) { }         /// <summary>         /// TBD         /// </summary>         /// <param name="outlet">TBD</param>         /// <param name="in0">TBD</param>         /// <param name="in0">TBD</param>         /// <param name="in0">TBD</param>         /// <param name="in0">TBD</param>         /// <param name="in0">TBD</param>         /// <param name="in0">TBD</param>         /// <returns>TBD</returns>         public FanInShape(Outlet<TOut> outlet, Inlet<T0> in0, Inlet<T0> in0, Inlet<T0> in0, Inlet<T0> in0, Inlet<T0> in0, Inlet<T0> in0)              : this(new InitPorts(outlet, new Inlet[] { in0, in0, in0, in0, in0, in0 })) { }          /// <summary>         /// TBD         /// </summary>         /// <param name="init">TBD</param>         /// <returns>TBD</returns>         protected override FanInShape<TOut> Construct(IInit init)         {             return new FanInShape<T0, T0, T0, T0, T0, T0, TOut>(init);         }     }     /// <summary>     /// TBD     /// </summary>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="TOut">TBD</typeparam>     public class FanInShape<T0, T0, T0, T0, T0, T0, T0, TOut> : FanInShape<TOut>     {         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;          /// <summary>         /// TBD         /// </summary>         /// <param name="init">TBD</param>         public FanInShape(IInit init) : base(init)         {             In0 = NewInlet<T0>("in0");             In0 = NewInlet<T0>("in0");             In0 = NewInlet<T0>("in0");             In0 = NewInlet<T0>("in0");             In0 = NewInlet<T0>("in0");             In0 = NewInlet<T0>("in0");             In0 = NewInlet<T0>("in0");         }          /// <summary>         /// TBD         /// </summary>         /// <param name="name">TBD</param>         public FanInShape(string name) : this(new InitName(name)) { }         /// <summary>         /// TBD         /// </summary>         /// <param name="outlet">TBD</param>         /// <param name="in0">TBD</param>         /// <param name="in0">TBD</param>         /// <param name="in0">TBD</param>         /// <param name="in0">TBD</param>         /// <param name="in0">TBD</param>         /// <param name="in0">TBD</param>         /// <param name="in0">TBD</param>         /// <returns>TBD</returns>         public FanInShape(Outlet<TOut> outlet, Inlet<T0> in0, Inlet<T0> in0, Inlet<T0> in0, Inlet<T0> in0, Inlet<T0> in0, Inlet<T0> in0, Inlet<T0> in0)              : this(new InitPorts(outlet, new Inlet[] { in0, in0, in0, in0, in0, in0, in0 })) { }          /// <summary>         /// TBD         /// </summary>         /// <param name="init">TBD</param>         /// <returns>TBD</returns>         protected override FanInShape<TOut> Construct(IInit init)         {             return new FanInShape<T0, T0, T0, T0, T0, T0, T0, TOut>(init);         }     }     /// <summary>     /// TBD     /// </summary>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="TOut">TBD</typeparam>     public class FanInShape<T0, T0, T0, T0, T0, T0, T0, T0, TOut> : FanInShape<TOut>     {         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;          /// <summary>         /// TBD         /// </summary>         /// <param name="init">TBD</param>         public FanInShape(IInit init) : base(init)         {             In0 = NewInlet<T0>("in0");             In0 = NewInlet<T0>("in0");             In0 = NewInlet<T0>("in0");             In0 = NewInlet<T0>("in0");             In0 = NewInlet<T0>("in0");             In0 = NewInlet<T0>("in0");             In0 = NewInlet<T0>("in0");             In0 = NewInlet<T0>("in0");         }          /// <summary>         /// TBD         /// </summary>         /// <param name="name">TBD</param>         public FanInShape(string name) : this(new InitName(name)) { }         /// <summary>         /// TBD         /// </summary>         /// <param name="outlet">TBD</param>         /// <param name="in0">TBD</param>         /// <param name="in0">TBD</param>         /// <param name="in0">TBD</param>         /// <param name="in0">TBD</param>         /// <param name="in0">TBD</param>         /// <param name="in0">TBD</param>         /// <param name="in0">TBD</param>         /// <param name="in0">TBD</param>         /// <returns>TBD</returns>         public FanInShape(Outlet<TOut> outlet, Inlet<T0> in0, Inlet<T0> in0, Inlet<T0> in0, Inlet<T0> in0, Inlet<T0> in0, Inlet<T0> in0, Inlet<T0> in0, Inlet<T0> in0)              : this(new InitPorts(outlet, new Inlet[] { in0, in0, in0, in0, in0, in0, in0, in0 })) { }          /// <summary>         /// TBD         /// </summary>         /// <param name="init">TBD</param>         /// <returns>TBD</returns>         protected override FanInShape<TOut> Construct(IInit init)         {             return new FanInShape<T0, T0, T0, T0, T0, T0, T0, T0, TOut>(init);         }     }     /// <summary>     /// TBD     /// </summary>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="T0">TBD</typeparam>     /// <typeparam name="TOut">TBD</typeparam>     public class FanInShape<T0, T0, T0, T0, T0, T0, T0, T0, T0, TOut> : FanInShape<TOut>     {         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;         /// <summary>         /// TBD         /// </summary>         public readonly Inlet<T0> In0;          /// <summary>         /// TBD         /// </summary>         /// <param name="init">TBD</param>         public FanInShape(IInit init) : base(init)         {             In0 = NewInlet<T0>("in0");             In0 = NewInlet<T0>("in0");             In0 = NewInlet<T0>("in0");             In0 = NewInlet<T0>("in0");             In0 = NewInlet<T0>("in0");             In0 = NewInlet<T0>("in0");             In0 = NewInlet<T0>("in0");             In0 = NewInlet<T0>("in0");             In0 = NewInlet<T0>("in0");         }          /// <summary>         /// TBD         /// </summary>         /// <param name="name">TBD</param>         public FanInShape(string name) : this(new InitName(name)) { }         /// <summary>         /// TBD         /// </summary>         /// <param name="outlet">TBD</param>         /// <param name="in0">TBD</param>         /// <param name="in0">TBD</param>         /// <param name="in0">TBD</param>         /// <param name="in0">TBD</param>         /// <param name="in0">TBD</param>         /// <param name="in0">TBD</param>         /// <param name="in0">TBD</param>         /// <param name="in0">TBD</param>         /// <param name="in0">TBD</param>         /// <returns>TBD</returns>         public FanInShape(Outlet<TOut> outlet, Inlet<T0> in0, Inlet<T0> in0, Inlet<T0> in0, Inlet<T0> in0, Inlet<T0> in0, Inlet<T0> in0, Inlet<T0> in0, Inlet<T0> in0, Inlet<T0> in0)              : this(new InitPorts(outlet, new Inlet[] { in0, in0, in0, in0, in0, in0, in0, in0, in0 })) { }          /// <summary>         /// TBD         /// </summary>         /// <param name="init">TBD</param>         /// <returns>TBD</returns>         protected override FanInShape<TOut> Construct(IInit init)         {             return new FanInShape<T0, T0, T0, T0, T0, T0, T0, T0, T0, TOut>(init);         }     } 