示例#1
0
    public override Dictionary <IPos, ILand> MakeLands(int _N)
    {
        Dictionary <string, IPos> pm        = GenerateBasicMap(_N);
        Dictionary <IPos, ILand>  landsDict = new Dictionary <IPos, ILand>();

        float[,] elevation   = NoiseGrid(_N);
        float[,] temperature = NoiseGrid(_N);

        MapUtil.TransformMapMinMax(ref elevation, MapUtil.dNormalize);
        MapUtil.TransformMapMinMax(ref temperature, MapUtil.dNormalize);

        foreach (IPos p in pm.Values)
        {
            float elev = elevation[(int)p.gridLoc.x(), (int)p.gridLoc.y()];
            float temp = temperature[(int)p.gridLoc.x(), (int)p.gridLoc.y()];
            Dictionary <string, float> _val = new Dictionary <string, float>()
            {
                { "elevation", elev }, { "temperature", temp }
            };
            ILand newLand = LandFactory.CreateLand(p, _val, game.landType);
            landsDict[p] = newLand;
        }

        return(landsDict);
    }
示例#2
0
 public void Landing(Point initialPoint, Direction initialDirection, ILand roverLand)
 {
     this.CurrentPosition = initialPoint;
     this.FacingDirection = initialDirection;
     this.RoverLand       = roverLand;
     _logger.AddLog(string.Format("Landed on: {0} {1}, Facing: {2}", this.CurrentPosition.X, this.CurrentPosition.Y, this.FacingDirection.GetDescription()));
 }
示例#3
0
 void DrawTerrainUpdate()
 {
     foreach (IPos p in game.map.lands.Keys)
     {
         if (!goMap.ContainsKey(p))
         {
             goMap[p] = InstantiateGo(pfTile, p.mapLoc, Color.white);
             goMap[p].GetComponentInChildren <Clickable>().setPos(p);
         }
         Renderer r        = goMap[p].GetComponentInChildren <Renderer>();
         ILand    thisLand = game.map.lands[p];
         r.material.color = thisLand.GetColor();
     }
 }
示例#4
0
    public Dictionary <IPos, ILand> InitializeLandsFromMidpointDisplacement(int _N, Dictionary <string, IPos> pm)
    {
        Dictionary <IPos, ILand> landsDict = new Dictionary <IPos, ILand>();

        float[,] elevation = NoiseGrid(_N);
        MapUtil.TransformMapMinMax(ref elevation, MapUtil.dNormalize);
        foreach (IPos p in pm.Values)
        {
            Dictionary <string, float> _val = new Dictionary <string, float>()
            {
                { "elevation", elevation[(int)p.gridLoc.x(), (int)p.gridLoc.y()] }
            };

            ILand newLand = LandFactory.CreateLand(p, _val, game.landType);
            landsDict[p] = newLand;
        }

        return(landsDict);
    }
示例#5
0
        static void Main(string[] args)
        {
            ILand            land            = CreateLand();
            ICommandExecutor commandExecutor = new CommandExecutor();
            List <Discovery> lstDiscovery    = new List <Discovery>();

            string read = Console.ReadLine();

            while (!String.IsNullOrEmpty(read))
            {
                IRover          rover       = CreateRover(land, read);
                List <ICommand> lstCommands = CreateCommands();
                lstDiscovery.Add(new Discovery(rover, lstCommands, commandExecutor));
                read = Console.ReadLine();
            }

            lstDiscovery.ForEach(item => Console.WriteLine(item.ToString()));

            Console.ReadLine();
        }
 public void LandVehicle(ILand landvehicle)
 {
     landvehicle.Drive();
 }
 public CustomerController(ICustomer <Customer> _Repositories, ILand <Land> _LandRepositories)
 {
     CustomerRepositories = _Repositories;
     LandRepositories     = _LandRepositories;
 }
示例#8
0
文件: Rover.cs 项目: zafua/MarsRover
 public Rover(Face face, Position position, ILand land)
 {
     Face     = face;
     Position = position;
     Land     = land;
 }
示例#9
0
 public Rover(ILand land, string coordinate)
 {
     Land = land;
     SetLocation(coordinate);
 }
示例#10
0
文件: MapRegion.cs 项目: Dieho/Hero
        private ILand[,] SmartLayout(ILand[,] innerMap, String[] map, String landType, int landSquare)
        {
            for (int i = 0; i < landSquare; i++)
            {
                int position = Generator.Generator.GenerateRandomValue(0, map.Length);
                string [] sep = map[position].Split(new Char[] { ';' });
                int positionX = int.Parse(sep[0]);
                int positionY = int.Parse(sep[1]);

                switch (position % 4)
                {
                    case 0:
                        if (positionX != 0)
                            positionX -= 1;
                        break;
                    case 1:
                        if (positionX != (_width - 1))
                            positionX += 1;
                        break;
                    case 2:
                        if (positionY != 0)
                            positionY -= 1;
                        break;
                    case 3:
                        if (positionY != (_height - 1))
                            positionY += 1;
                        break;
                }

                if (innerMap[positionX, positionY].ToString() == landType)
                    continue;
                switch (landType)
                {
                    case "Ground":
                        _innerMap[positionX, positionY] = new Ground();
                        break;
                    case "Mountain":
                        _innerMap[positionX, positionY] = new Mountain();
                        break;
                    case "Water":
                        _innerMap[positionX, positionY] = new Water();
                        break;
                }
                var buffer = map;
                map = new string[map.Length + 1];
                buffer.CopyTo(map, 0);
                map[map.Length - 1] = positionX.ToString(CultureInfo.InvariantCulture) + ';' + positionY.ToString(CultureInfo.InvariantCulture);

            }
            return innerMap;
        }
 public Farm(ILand land, IGovernmentSubsidy governmentSubsidy)
 {
 }
示例#12
0
 static IRover CreateRover(ILand land, string read)
 {
     string[] v = read.Split(' ');
     return(new Rover(new Face(v[2][0]), new Position(int.Parse(v[0]), int.Parse(v[1])), land));
 }
示例#13
0
 public Farm(ILand land, IGovernmentSubsidy governmentSubsidy)
 {
 }
示例#14
0
 private void GetData()
 {
     LandDatumNoEnableControl();
     if (ds != null)
     {
         gy = null;
         this.gridViewLand.FocusedRowChanged -= new DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventHandler(this.gridViewLand_FocusedRowChanged);
         if (ds.Tables.Count == 1)
         {
             ds.Tables[0].Clear();
             this.gridControlGy.DataSource = ds.Tables[0].DefaultView;
             this.gridViewLand.FocusedRowChanged += new DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventHandler(this.gridViewLand_FocusedRowChanged);
         }
     }
     else
     {
         ds = new DataSet();
     }
     if (double.TryParse(this.txtQph.Text.ToString(), out this.qph))
     {
         string landtype;
         SearchLandDatumValue(this.qph, out landtype);
         invokeThread = new Thread(new ThreadStart(StartMethod));
         invokeThread.Start();
     }
     else
     {
         LandDatumEnableControl();
     }
 }
示例#15
0
        private void StartMethod()
        {
            beforeTime = DateTime.Now;
            li.Qph = this.qph.ToString();
            // mapper.Write(li, @"c:\aaa.xls",excelFileName);
            // mapper.Write(li, excelFileName, true);
            try
            {
                //=====================
                if (!string.IsNullOrEmpty(li.Type))
                {
                    if (li.Type == "工业")
                    {
                        gy = new LandGy();
                        if (this.landDatumValue.gyszys.Count == 1)
                        {
                            #region 工业具体条件
                            ArrayList[] al = new ArrayList[11];
                            ArrayList tmpal = new ArrayList();
                            tmpal.Clear();
                            int j = 0;
                            for (int i = 1; i < 56; i++)
                            {
                                tmpal.Add(this.landDatumValue.gyszys.Rows[0][string.Format("s{0}", i + 1)].ToString());
                                if (i % 5 == 0 && i != 0)
                                {
                                    al[j] = new ArrayList();
                                    for (int t = 0; t < 5; t++)
                                    {
                                        al[j].Add(tmpal[t]);
                                    }
                                    tmpal.Clear();
                                    j++;
                                }

                            }
                            ((LandGy)gy).Range_Jttj_1 = al[0];
                            ((LandGy)gy).Range_Jttj_2 = al[1];
                            ((LandGy)gy).Range_Jttj_3 = al[2];
                            ((LandGy)gy).Range_Jttj_4 = al[3];
                            ((LandGy)gy).Range_Jttj_5 = al[4];
                            ((LandGy)gy).Range_Jttj_6 = al[5];
                            ((LandGy)gy).Range_Jttj_7 = al[6];
                            ((LandGy)gy).Range_Jttj_8 = al[7];
                            ((LandGy)gy).Range_Jttj_9 = al[8];
                            ((LandGy)gy).Range_Jttj_10 = al[9];
                            ((LandGy)gy).Range_Jttj_11 = al[10];
                            #endregion
                            #region 工业具体修正系数
                            ArrayList[] al1 = new ArrayList[11];
                            ArrayList tmpal1 = new ArrayList();
                            tmpal1.Clear();
                            int j1 = 0;
                            for (int i = 1; i < 56; i++)
                            {
                                tmpal1.Add(this.landDatumValue.gyszxs.Rows[0][string.Format("s{0}", i + 1)].ToString());
                                if (i % 5 == 0 && i != 0)
                                {
                                    al1[j1] = new ArrayList();
                                    for (int t = 0; t < 5; t++)
                                    {
                                        al1[j1].Add(tmpal1[t]);
                                    }
                                    tmpal1.Clear();
                                    j1++;
                                }

                            }
                            ((LandGy)gy).Range_Xzxs_1 = al1[0];
                            ((LandGy)gy).Range_Xzxs_2 = al1[1];
                            ((LandGy)gy).Range_Xzxs_3 = al1[2];
                            ((LandGy)gy).Range_Xzxs_4 = al1[3];
                            ((LandGy)gy).Range_Xzxs_5 = al1[4];
                            ((LandGy)gy).Range_Xzxs_6 = al1[5];
                            ((LandGy)gy).Range_Xzxs_7 = al1[6];
                            ((LandGy)gy).Range_Xzxs_8 = al1[7];
                            ((LandGy)gy).Range_Xzxs_9 = al1[8];
                            ((LandGy)gy).Range_Xzxs_10 = al1[9];
                            ((LandGy)gy).Range_Xzxs_11 = al1[10];
                            #endregion
                            #region 修正项名称
                            ArrayList tmpalxz = new ArrayList();
                            tmpalxz.Clear();
                            tmpalxz.AddRange(new string[] { "1、区域因素_交通条件_道路通达度", "2、区域因素_交通条件_离港口距离", "3、区域因素_基础设施_供电保证率", "4、区域因素_基础设施_供水保证率", "5、区域因素_基础设施_排水状况",
                                "6、区域因素_产业聚集程度","7、区域因素_城市规划状况","8、个别因素_宗地面积","9、个别因素_地形条件","10、个别因素_地质状况与地基承载力","11、个别因素_宗地形状"}.ToList<string>());
                            if (tmpalxz.Count != 11) throw new Exception("工业修正需要11项");
                            ((LandGy)gy).Range_Xz = tmpalxz;
                            #endregion
                            #region 修正项等级 eg:优,良...
                            ArrayList tmpalxzsz = new ArrayList();
                            tmpalxzsz.Clear();
                            tmpalxzsz.AddRange(new string[] { "优", "较优", "一般", "较劣", "劣" }.ToList<string>());
                            if (tmpalxzsz.Count != 5) throw new Exception("工业修正项等级需要5项");
                            ((LandGy)gy).Range_Xzsz = tmpalxzsz;
                            #endregion
                        }

                    }
                    else if (li.Type == "商住")
                    {
                        gy = new LandSz();
                        if (this.landDatumValue.szszys.Count == 1)
                        {
                            #region 商住具体条件
                            ArrayList[] al = new ArrayList[23];
                            ArrayList tmpal = new ArrayList();
                            tmpal.Clear();
                            int j = 0;
                            for (int i = 1; i < 116; i++)
                            {
                                tmpal.Add(this.landDatumValue.szszys.Rows[0][string.Format("s{0}", i + 1)].ToString());
                                if (i % 5 == 0 && i != 0)
                                {
                                    al[j] = new ArrayList();
                                    for (int t = 0; t < 5; t++)
                                    {
                                        al[j].Add(tmpal[t]);
                                    }
                                    tmpal.Clear();
                                    j++;
                                }

                            }
                            ((LandSz)gy).Range_Jttj_1 = al[0];
                            ((LandSz)gy).Range_Jttj_2 = al[1];
                            ((LandSz)gy).Range_Jttj_3 = al[2];
                            ((LandSz)gy).Range_Jttj_4 = al[3];
                            ((LandSz)gy).Range_Jttj_5 = al[4];
                            ((LandSz)gy).Range_Jttj_6 = al[5];
                            ((LandSz)gy).Range_Jttj_7 = al[6];
                            ((LandSz)gy).Range_Jttj_8 = al[7];
                            ((LandSz)gy).Range_Jttj_9 = al[8];
                            ((LandSz)gy).Range_Jttj_10 = al[9];
                            ((LandSz)gy).Range_Jttj_11 = al[10];
                            ((LandSz)gy).Range_Jttj_12 = al[11];
                            ((LandSz)gy).Range_Jttj_13 = al[12];
                            ((LandSz)gy).Range_Jttj_14 = al[13];
                            ((LandSz)gy).Range_Jttj_15 = al[14];
                            ((LandSz)gy).Range_Jttj_16 = al[15];
                            ((LandSz)gy).Range_Jttj_17 = al[16];
                            ((LandSz)gy).Range_Jttj_18 = al[17];
                            ((LandSz)gy).Range_Jttj_19 = al[18];
                            ((LandSz)gy).Range_Jttj_20 = al[19];
                            ((LandSz)gy).Range_Jttj_21 = al[20];
                            ((LandSz)gy).Range_Jttj_22 = al[21];
                            ((LandSz)gy).Range_Jttj_23 = al[22];
                            #endregion
                            #region 商住具体修正系数
                            ArrayList[] al1 = new ArrayList[23];
                            ArrayList tmpal1 = new ArrayList();
                            tmpal1.Clear();
                            int j1 = 0;
                            for (int i = 1; i < 116; i++)
                            {
                                tmpal1.Add(this.landDatumValue.szszxs.Rows[0][string.Format("s{0}", i + 1)].ToString());
                                if (i % 5 == 0 && i != 0)
                                {
                                    al1[j1] = new ArrayList();
                                    for (int t = 0; t < 5; t++)
                                    {
                                        al1[j1].Add(tmpal1[t]);
                                    }
                                    tmpal1.Clear();
                                    j1++;
                                }

                            }
                            ((LandSz)gy).Range_Xzxs_1 = al1[0];
                            ((LandSz)gy).Range_Xzxs_2 = al1[1];
                            ((LandSz)gy).Range_Xzxs_3 = al1[2];
                            ((LandSz)gy).Range_Xzxs_4 = al1[3];
                            ((LandSz)gy).Range_Xzxs_5 = al1[4];
                            ((LandSz)gy).Range_Xzxs_6 = al1[5];
                            ((LandSz)gy).Range_Xzxs_7 = al1[6];
                            ((LandSz)gy).Range_Xzxs_8 = al1[7];
                            ((LandSz)gy).Range_Xzxs_9 = al1[8];
                            ((LandSz)gy).Range_Xzxs_10 = al1[9];
                            ((LandSz)gy).Range_Xzxs_11 = al1[10];
                            ((LandSz)gy).Range_Xzxs_12 = al1[11];
                            ((LandSz)gy).Range_Xzxs_13 = al1[12];
                            ((LandSz)gy).Range_Xzxs_14 = al1[13];
                            ((LandSz)gy).Range_Xzxs_15 = al1[14];
                            ((LandSz)gy).Range_Xzxs_16 = al1[15];
                            ((LandSz)gy).Range_Xzxs_17 = al1[16];
                            ((LandSz)gy).Range_Xzxs_18 = al1[17];
                            ((LandSz)gy).Range_Xzxs_19 = al1[18];
                            ((LandSz)gy).Range_Xzxs_20 = al1[19];
                            ((LandSz)gy).Range_Xzxs_21 = al1[20];
                            ((LandSz)gy).Range_Xzxs_22 = al1[21];
                            ((LandSz)gy).Range_Xzxs_23 = al1[22];
                            #endregion
                            #region 修正项名称
                            ArrayList tmpalxz = new ArrayList();
                            tmpalxz.Clear();
                            tmpalxz.AddRange(new string[] { "1、区域因素_繁华程度_商服中心距离", "2、区域因素_交通条件_道路通达度" ,"3、区域因素_基本设施状况_供电保证率","4、区域因素_基本设施状况_供水保证率","5、区域因素_基本设施状况_排水状况","6、区域因素_基本设施状况_公园距离","7、区域因素_基本设施状况_体育场馆距离",
                            "8、区域因素_基本设施状况_中学距离","9、区域因素_基本设施状况_小学距离","10、区域因素_基本设施状况_幼儿园距离","11、区域因素_环境优劣度_治安状况","12、区域因素_环境优劣度_绿化状况","13、区域因素_环境优劣度_大气污染","14、区域因素_环境优劣度_噪声污染","15、区域因素_人口状况_人口密度","16、区域因素_城市规划_城市规划状况","17、个别因素_临街状况","18、个别因素_临街深度","19、个别因素_宽深比","20、个别因素_宗地面积","21、个别因素_宗地形状","22、个别因素_地形条件","23、个别因素_地质状况与地基承载力"}.ToList<string>());
                            if (tmpalxz.Count != 23) throw new Exception("商住修正需要23项");
                            ((LandSz)gy).Range_Xz = tmpalxz;
                            #endregion
                            #region 修正项等级 eg:优,良...
                            ArrayList tmpalxzsz = new ArrayList();
                            tmpalxzsz.Clear();
                            tmpalxzsz.AddRange(new string[] { "优", "较优", "一般", "较劣", "劣" }.ToList<string>());
                            if (tmpalxzsz.Count != 5) throw new Exception("商住修正项等级需要5项");
                            ((LandSz)gy).Range_Xzsz = tmpalxzsz;
                            #endregion
                        }
                    }
                    else if (li.Type == "住宅")
                    {
                        gy = new LandZz();
                        if (this.landDatumValue.zzszys.Count == 1)
                        {
                            #region 住宅具体条件
                            ArrayList[] al = new ArrayList[19];
                            ArrayList tmpal = new ArrayList();
                            tmpal.Clear();
                            int j = 0;
                            for (int i = 1; i < 96; i++)
                            {
                                tmpal.Add(this.landDatumValue.zzszys.Rows[0][string.Format("s{0}", i + 1)].ToString());
                                if (i % 5 == 0 && i != 0)
                                {
                                    al[j] = new ArrayList();
                                    for (int t = 0; t < 5; t++)
                                    {
                                        al[j].Add(tmpal[t]);
                                    }
                                    tmpal.Clear();
                                    j++;
                                }

                            }
                            ((LandZz)gy).Range_Jttj_1 = al[0];
                            ((LandZz)gy).Range_Jttj_2 = al[1];
                            ((LandZz)gy).Range_Jttj_3 = al[2];
                            ((LandZz)gy).Range_Jttj_4 = al[3];
                            ((LandZz)gy).Range_Jttj_5 = al[4];
                            ((LandZz)gy).Range_Jttj_6 = al[5];
                            ((LandZz)gy).Range_Jttj_7 = al[6];
                            ((LandZz)gy).Range_Jttj_8 = al[7];
                            ((LandZz)gy).Range_Jttj_9 = al[8];
                            ((LandZz)gy).Range_Jttj_10 = al[9];
                            ((LandZz)gy).Range_Jttj_11 = al[10];
                            ((LandZz)gy).Range_Jttj_12 = al[11];
                            ((LandZz)gy).Range_Jttj_13 = al[12];
                            ((LandZz)gy).Range_Jttj_14 = al[13];
                            ((LandZz)gy).Range_Jttj_15 = al[14];
                            ((LandZz)gy).Range_Jttj_16 = al[15];
                            ((LandZz)gy).Range_Jttj_17 = al[16];
                            ((LandZz)gy).Range_Jttj_18 = al[17];
                            ((LandZz)gy).Range_Jttj_19 = al[18];
                            #endregion
                            #region 住宅具体修正系数
                            ArrayList[] al1 = new ArrayList[19];
                            ArrayList tmpal1 = new ArrayList();
                            tmpal1.Clear();
                            int j1 = 0;
                            for (int i = 1; i < 96; i++)
                            {
                                tmpal1.Add(this.landDatumValue.zzszxs.Rows[0][string.Format("s{0}", i + 1)].ToString());
                                if (i % 5 == 0 && i != 0)
                                {
                                    al1[j1] = new ArrayList();
                                    for (int t = 0; t < 5; t++)
                                    {
                                        al1[j1].Add(tmpal1[t]);
                                    }
                                    tmpal1.Clear();
                                    j1++;
                                }

                            }
                            ((LandZz)gy).Range_Xzxs_1 = al1[0];
                            ((LandZz)gy).Range_Xzxs_2 = al1[1];
                            ((LandZz)gy).Range_Xzxs_3 = al1[2];
                            ((LandZz)gy).Range_Xzxs_4 = al1[3];
                            ((LandZz)gy).Range_Xzxs_5 = al1[4];
                            ((LandZz)gy).Range_Xzxs_6 = al1[5];
                            ((LandZz)gy).Range_Xzxs_7 = al1[6];
                            ((LandZz)gy).Range_Xzxs_8 = al1[7];
                            ((LandZz)gy).Range_Xzxs_9 = al1[8];
                            ((LandZz)gy).Range_Xzxs_10 = al1[9];
                            ((LandZz)gy).Range_Xzxs_11 = al1[10];
                            ((LandZz)gy).Range_Xzxs_12 = al1[11];
                            ((LandZz)gy).Range_Xzxs_13 = al1[12];
                            ((LandZz)gy).Range_Xzxs_14 = al1[13];
                            ((LandZz)gy).Range_Xzxs_15 = al1[14];
                            ((LandZz)gy).Range_Xzxs_16 = al1[15];
                            ((LandZz)gy).Range_Xzxs_17 = al1[16];
                            ((LandZz)gy).Range_Xzxs_18 = al1[17];
                            ((LandZz)gy).Range_Xzxs_19 = al1[18];
                            #endregion
                            #region 修正项名称
                            ArrayList tmpalxz = new ArrayList();
                            tmpalxz.Clear();
                            tmpalxz.AddRange(new string[] { "1、区域因素_繁华程度_商服中心距离", "2、区域因素_交通条件_道路通达度", "3、区域因素_基本设施状况_供电保证率", "4、区域因素_基本设施状况_供水保证率", "5、区域因素_基本设施状况_排水状况", "6、区域因素_基本设施状况_公园距离", "7、区域因素_基本设施状况_体育场馆距离", "8、区域因素_基本设施状况_中学距离", "9、区域因素_基本设施状况_小学距离", "10、区域因素_基本设施状况_幼儿园距离", "11、区域因素_环境优劣度_治安状况", "12、区域因素_环境优劣度_绿化状况", "13、区域因素_环境优劣度_大气污染", "14、区域因素_环境优劣度_噪声污染", "15、个别因素_城市规划", "16、个别因素_宗地面积", "17、个别因素_宗地形状", "18、个别因素_地形条件", "19、个别因素_地质条件" }.ToList<string>());
                            if (tmpalxz.Count != 19) throw new Exception("住宅修正需要19项");
                            ((LandZz)gy).Range_Xz = tmpalxz;
                            #endregion
                            #region 修正项等级 eg:优,良...
                            ArrayList tmpalxzsz = new ArrayList();
                            tmpalxzsz.Clear();
                            tmpalxzsz.AddRange(new string[] { "优", "较优", "一般", "较劣", "劣" }.ToList<string>());
                            if (tmpalxzsz.Count != 5) throw new Exception("住宅修正项等级需要5项");
                            ((LandZz)gy).Range_Xzsz = tmpalxzsz;
                            #endregion
                        }
                    }
                    else
                    {

                    }
                    mapper.Write(gy, @"c:\tmp.xls", excelFileName);
                    //=====================
                    //try
                    //{
                    //    if (gy != null)
                    //    {
                    //        mapper.Read(gy, excelFileName);
                    //    }
                    //}
                    //catch (Exception ex)
                    //{
                    //    throw new Exception(ex.Message.ToString());
                    //}
                }
                this.Invoke(new invokeDelegate(UpdateUI));
            }
            finally
            {
                //取消杀excel进程
                //afterTime = DateTime.Now;
                //KillExcel.KillExcelProcess(beforeTime, afterTime);
            }
            //try
            //{

            //}
            //catch(Exception ex)
            //{
            //    throw new Exception(ex.Message.ToString());
            //}
        }