Go to Post Also, I'm tired of the "FIRST is a simulation of the real world"-- it isn't. If the real world was like FIRST, there wouldn't be any need for this organization. - cadandcookies [more]
Home
Go Back   Chief Delphi > FIRST > General Forum
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Reply
Thread Tools Rating: Thread Rating: 5 votes, 5.00 average. Display Modes
  #31   Spotlight this post!  
Unread 20-11-2014, 13:32
Chris is me's Avatar
Chris is me Chris is me is offline
no bag, vex only, final destination
AKA: Pinecone
FRC #0228 (GUS Robotics); FRC #2170 (Titanium Tomahawks)
Team Role: Mentor
 
Join Date: Dec 2008
Rookie Year: 2006
Location: Glastonbury, CT
Posts: 7,766
Chris is me has a reputation beyond reputeChris is me has a reputation beyond reputeChris is me has a reputation beyond reputeChris is me has a reputation beyond reputeChris is me has a reputation beyond reputeChris is me has a reputation beyond reputeChris is me has a reputation beyond reputeChris is me has a reputation beyond reputeChris is me has a reputation beyond reputeChris is me has a reputation beyond reputeChris is me has a reputation beyond repute
Send a message via AIM to Chris is me
Re: [MCC] Minimum Competitive Concept 2014

I would argue the minimum competitive concept did not even need floor pickup. The ability to receive a ball from a human player and kiss pass it / spit the ball out is the minimum that was really needed to be competitive. Alternatively, a robot that was only capable of receiving the ball and then giving it back to the human player was a good robot.

We definitely would have had a better season if we built 5136's robot than what we fielded. 5254 had a very similar robot and was very competitive at its events this year.
__________________
Mentor / Drive Coach: 228 (2016-?)
--2016 Waterbury SFs (with 3314, 3719), RIDE #2 Seed / Winners (with 1058, 6153), Carver QFs (with 503, 359, 4607)
Mentor / Consultant Person: 2170 (2017-?)
.
College Mentor: 2791 (2010-2015)
-- 2015 TVR Motorola Quality, FLR GM Industrial Design -- 2014 FLR Motorola Quality / SFs (with 341, 4930)
-- 2013 BAE Motorola Quality, WPI Regional #1 Seed / Delphi Excellence in Engineering / Finalists (with 20, 3182)
-- 2012 BAE Imagery / Finalists (with 1519, 885), CT Xerox Creativity / SFs (with 2168, 118)
Student: 1714 (2009) - 2009 MN 10K Lakes Regional Winners (with 2826, 2470)
2791 Build Season Photo Gallery - Look here for mechanism photos My Robotics Blog (Updated April 11 2014)
Reply With Quote
  #32   Spotlight this post!  
Unread 20-11-2014, 14:09
mman1506's Avatar
mman1506 mman1506 is offline
Hater of Tiny Molex Connectors
AKA: Marcus Quintilian
no team (WARP7)
Team Role: Alumni
 
Join Date: Mar 2012
Rookie Year: 2012
Location: Toronto
Posts: 806
mman1506 has a reputation beyond reputemman1506 has a reputation beyond reputemman1506 has a reputation beyond reputemman1506 has a reputation beyond reputemman1506 has a reputation beyond reputemman1506 has a reputation beyond reputemman1506 has a reputation beyond reputemman1506 has a reputation beyond reputemman1506 has a reputation beyond reputemman1506 has a reputation beyond reputemman1506 has a reputation beyond repute
Quote:
Originally Posted by Chris is me View Post
I would argue the minimum competitive concept did not even need floor pickup. The ability to receive a ball from a human player and kiss pass it / spit the ball out is the minimum that was really needed to be competitive.

Hmmm, reminds me of something......
__________________
2014-2015: FRC 865 Warp7 Team Captain
2016: FRC 865 Mentor

2017: Free Agent Mentor, Inspector
Reply With Quote
  #33   Spotlight this post!  
Unread 20-11-2014, 14:26
Andrew Schreiber Andrew Schreiber is offline
Joining the 900 Meme Team
FRC #0079
 
Join Date: Jan 2005
Rookie Year: 2000
Location: Misplaced Michigander
Posts: 4,074
Andrew Schreiber has a reputation beyond reputeAndrew Schreiber has a reputation beyond reputeAndrew Schreiber has a reputation beyond reputeAndrew Schreiber has a reputation beyond reputeAndrew Schreiber has a reputation beyond reputeAndrew Schreiber has a reputation beyond reputeAndrew Schreiber has a reputation beyond reputeAndrew Schreiber has a reputation beyond reputeAndrew Schreiber has a reputation beyond reputeAndrew Schreiber has a reputation beyond reputeAndrew Schreiber has a reputation beyond repute
Re: [MCC] Minimum Competitive Concept 2014

Quote:
Originally Posted by Chris is me View Post
I would argue the minimum competitive concept did not even need floor pickup. The ability to receive a ball from a human player and kiss pass it / spit the ball out is the minimum that was really needed to be competitive. Alternatively, a robot that was only capable of receiving the ball and then giving it back to the human player was a good robot.

We definitely would have had a better season if we built 5136's robot than what we fielded. 5254 had a very similar robot and was very competitive at its events this year.
I strongly disagree. By adding the floor pickup the MCC also becomes a reasonable contender for being the middle bot in a 3 bot no truss cycle. Still worth a fair number of points. It's a tactical flexibility that is simple enough to add to be worth it.

Typically floor pickups are considered a nice to have, but with only one game piece they become more important. Oh, HP inbounds bad, or robot is hit and misses getting the ball? Suddenly you're out an assist.
__________________




.
Reply With Quote
  #34   Spotlight this post!  
Unread 20-11-2014, 16:16
Michael Corsetto's Avatar
Michael Corsetto Michael Corsetto is offline
Breathe in... Breathe out...
FRC #1678 (Citrus Circuits)
Team Role: Mentor
 
Join Date: May 2004
Rookie Year: 2002
Location: Davis, CA
Posts: 1,139
Michael Corsetto has a reputation beyond reputeMichael Corsetto has a reputation beyond reputeMichael Corsetto has a reputation beyond reputeMichael Corsetto has a reputation beyond reputeMichael Corsetto has a reputation beyond reputeMichael Corsetto has a reputation beyond reputeMichael Corsetto has a reputation beyond reputeMichael Corsetto has a reputation beyond reputeMichael Corsetto has a reputation beyond reputeMichael Corsetto has a reputation beyond reputeMichael Corsetto has a reputation beyond repute
Re: [MCC] Minimum Competitive Concept 2014

Quote:
Originally Posted by Andrew Schreiber View Post
I strongly disagree. By adding the floor pickup the MCC also becomes a reasonable contender for being the middle bot in a 3 bot no truss cycle. Still worth a fair number of points. It's a tactical flexibility that is simple enough to add to be worth it.

Typically floor pickups are considered a nice to have, but with only one game piece they become more important. Oh, HP inbounds bad, or robot is hit and misses getting the ball? Suddenly you're out an assist.
"Simple enough" is the assumption I find debatable. Even if a team builds an intake that works, their driver has to be able to get to the ball. A whole other issue for many FRC drivers...

We modified many alliance partners to reach the MCC level, and they competed better not only in our match together, but many other matches after that point. Modifying alliance partners to reach MCC was critical to seeding first this year.

Pickup ability was never a goal of ours when working with alliance partners to modify their robot. HP intake was always a requirement.
__________________
Team 1678: Citrus Circuits - Lead Technical Mentor, Drive Coach **Like Us On Facebook!**
Reply With Quote
  #35   Spotlight this post!  
Unread 20-11-2014, 16:29
Chris is me's Avatar
Chris is me Chris is me is offline
no bag, vex only, final destination
AKA: Pinecone
FRC #0228 (GUS Robotics); FRC #2170 (Titanium Tomahawks)
Team Role: Mentor
 
Join Date: Dec 2008
Rookie Year: 2006
Location: Glastonbury, CT
Posts: 7,766
Chris is me has a reputation beyond reputeChris is me has a reputation beyond reputeChris is me has a reputation beyond reputeChris is me has a reputation beyond reputeChris is me has a reputation beyond reputeChris is me has a reputation beyond reputeChris is me has a reputation beyond reputeChris is me has a reputation beyond reputeChris is me has a reputation beyond reputeChris is me has a reputation beyond reputeChris is me has a reputation beyond repute
Send a message via AIM to Chris is me
Re: [MCC] Minimum Competitive Concept 2014

Quote:
Originally Posted by Andrew Schreiber View Post
I strongly disagree. By adding the floor pickup the MCC also becomes a reasonable contender for being the middle bot in a 3 bot no truss cycle. Still worth a fair number of points. It's a tactical flexibility that is simple enough to add to be worth it.
I think it is absolutely worth trying, as a failed mechanism could simply be fixed to the frame and made into what I described. However, I don't believe it's the minimum competitive concept.

I think the minimum competitive concept is a combination of a tank drive for defense and the simplest possible way to get an assist into a cycle. A "pass back" robot can kiss pass to another robot anywhere on the field, put it in the low goal, or pass back to any human player (remember, you don't have to pass back to the SAME player!). Floor pickup is nice, but not absolutely required to be a quality third-assist robot.

After spending weeks of build season on building the best intake we could, and designing the entire robot around the best pickup prototype (a claw design), I was shocked at just how little we picked up off the floor this year. At the end of one off-season, we lost the ability to actuate our arm downward to do floor pickup. We put up basically the same number of points we did otherwise. Perhaps the only role that really could use a floor pickup is the post-truss finisher (trusses miss sometimes), but you don't need to play every role to be the minimum competitive concept.

Quote:
Originally Posted by Andrew Schreiber View Post
Typically floor pickups are considered a nice to have, but with only one game piece they become more important. Oh, HP inbounds bad, or robot is hit and misses getting the ball? Suddenly you're out an assist.
Any other robot on the alliance can just pass to an HP to give you another chance at assist 3. In my opinion this is easier than chasing the ball twice.
__________________
Mentor / Drive Coach: 228 (2016-?)
--2016 Waterbury SFs (with 3314, 3719), RIDE #2 Seed / Winners (with 1058, 6153), Carver QFs (with 503, 359, 4607)
Mentor / Consultant Person: 2170 (2017-?)
.
College Mentor: 2791 (2010-2015)
-- 2015 TVR Motorola Quality, FLR GM Industrial Design -- 2014 FLR Motorola Quality / SFs (with 341, 4930)
-- 2013 BAE Motorola Quality, WPI Regional #1 Seed / Delphi Excellence in Engineering / Finalists (with 20, 3182)
-- 2012 BAE Imagery / Finalists (with 1519, 885), CT Xerox Creativity / SFs (with 2168, 118)
Student: 1714 (2009) - 2009 MN 10K Lakes Regional Winners (with 2826, 2470)
2791 Build Season Photo Gallery - Look here for mechanism photos My Robotics Blog (Updated April 11 2014)

Last edited by Chris is me : 20-11-2014 at 18:13.
Reply With Quote
  #36   Spotlight this post!  
Unread 20-11-2014, 16:37
BrendanB BrendanB is offline
Registered User
AKA: Brendan Browne
FRC #1058 (PVC Pirates)
Team Role: Mentor
 
Join Date: Feb 2008
Rookie Year: 2003
Location: Londonderry, NH
Posts: 3,104
BrendanB has a reputation beyond reputeBrendanB has a reputation beyond reputeBrendanB has a reputation beyond reputeBrendanB has a reputation beyond reputeBrendanB has a reputation beyond reputeBrendanB has a reputation beyond reputeBrendanB has a reputation beyond reputeBrendanB has a reputation beyond reputeBrendanB has a reputation beyond reputeBrendanB has a reputation beyond reputeBrendanB has a reputation beyond repute
Re: [MCC] Minimum Competitive Concept 2014

Something to remember is that Aerial Assist was so different from previous games because the most basic robot that could play the game was one that just briefly possesses the ball either by supporting the ball (chairbot), herds the ball (kitbot), or launches the ball (passbackbot). Aerial Assist can be played at a bare miminum with the kibot.

Because this bare minimum is made by most teams on their first day or two of the season adding a floor intake (like 5136) when you see that you have six weeks left of build season is a smart idea. Turning an under performing team at an event into a passback/basic inbound possession bot is a wise idea when you are at or nearing the end of those six weeks.
__________________
1519 Mechanical M.A.Y.H.E.M. 2008 - 2010
3467 Windham Windup 2011 - 2015
1058 PVC Pirates 2016 - xxxx
Reply With Quote
  #37   Spotlight this post!  
Unread 20-11-2014, 17:33
JamesCH95's Avatar
JamesCH95 JamesCH95 is offline
Hardcore Dork
AKA: JCH
FRC #0095 (The Grasshoppers)
Team Role: Engineer
 
Join Date: Dec 2004
Rookie Year: 2001
Location: Enfield, NH
Posts: 1,884
JamesCH95 has a reputation beyond reputeJamesCH95 has a reputation beyond reputeJamesCH95 has a reputation beyond reputeJamesCH95 has a reputation beyond reputeJamesCH95 has a reputation beyond reputeJamesCH95 has a reputation beyond reputeJamesCH95 has a reputation beyond reputeJamesCH95 has a reputation beyond reputeJamesCH95 has a reputation beyond reputeJamesCH95 has a reputation beyond reputeJamesCH95 has a reputation beyond repute
Re: [MCC] Minimum Competitive Concept 2014

Quote:
Originally Posted by BrendanB View Post
Agreed. Looking back its extremely easy to see how a few strands of surgical tubing on a robot were a huge asset in the final rounds but I would not encourage a team to build a trampoline bot back in week 1 (which was a concept we penciled out day 1). If a kitbot with a basic structure and surgical tubing is what you can build might I suggest Vex or FTC which might better suit your team? Teams like 5136, 4908, 5112, and 4909 were extremely good at what they did with just intakes and practiced drivers.

Sadly when teams are successful at building a MCC you tend to get picked in tough positions (usually first/second round of the bottom four alliances) which is what happened to us in 2011.
This. We tried to build the 'ultimate assist & catch' robot last year and we wound up getting picked first-round at both events, but by the lower-half of the grid. We then got knocked out in the quarter-finals at both of our events, it's a tough fight for seeds 5-8!
__________________
Theory is a nice place, I'd like to go there one day, I hear everything works there.

Maturity is knowing you were an idiot, common sense is trying to not be an idiot, wisdom is knowing that you will still be an idiot.
Reply With Quote
  #38   Spotlight this post!  
Unread 20-11-2014, 17:49
IKE's Avatar
IKE IKE is offline
Not so Custom User Title
AKA: Isaac Rife
no team (N/A)
Team Role: Mechanical
 
Join Date: Jan 2008
Rookie Year: 2003
Location: Michigan
Posts: 2,151
IKE has a reputation beyond reputeIKE has a reputation beyond reputeIKE has a reputation beyond reputeIKE has a reputation beyond reputeIKE has a reputation beyond reputeIKE has a reputation beyond reputeIKE has a reputation beyond reputeIKE has a reputation beyond reputeIKE has a reputation beyond reputeIKE has a reputation beyond reputeIKE has a reputation beyond repute
Re: [MCC] Minimum Competitive Concept 2014

Quote:
Originally Posted by BJC View Post
Isaac Rife "IKE" usually posts up a thread like this once a year or so. I think its a pretty interesting thought exercise.
...snip...

Cheers, Bryan
I am often amazed at what one might assume as boring that ends up being insightful. Thanks for reviving this one. The previous years, there are usually a few examples of a couple teams having success with an MCC type concept, but most not having success with a jack of all trades.

I specifically did not do one this year, as to me, it seemed very driver centric/referee centric on what an MCC would be for a particular event. Why I mention refs is, what costitues a possession this year ranged wildly between events (though it was usually pretty consistent at any one particular event). Because of that, I would prefer an MCC there was no room for interpretation, they "possessed" that ball. This year did remind me a lot of 2009 in that it was another year that driving wasn't only important, but often a game changer.

The neat thing is, there were a lot of great examples of it this year, and a lot of teams that did well with it.

I also noticed a trend (at least in my opinion) for the "almost any year MCC".

If you have a decent base chassis (4 cim minimum though I prefer 4 CIM with shifting to get a bit more speed/torque like the Kitbot on Steroids concept), and you have a roller collector to manipulate the game piece, and 1 face that is max competition height, I think you can play elims at most any district.

I added the 1 tall face as this was a very beneficial defense item in:
2014, 2013, 2012 (blocking inbound, not shooters), 2007, 2006, 2005... the rest is before my time.

This year, a tall wall on a well driven base often shut down shooters that weren't ready for defense. It also was used very well towards the end of season as a way to block inbounding students. IE, go ahead and truss shot to HP, I am going to put a 60" wall in your face so you have a hard time inbounding...

And an active roller collector to manipulate the game piece was great for:
2014, 2013, 2012, 2011, 2010-ish, 2009, 2008, 2007, 2006...

Ignore fancy arms, and shooters and catapults and.... If you had something that could collect, move around the field, and release a game piece... I would likely want you within the top 24 at most events in any of those years.
This year, that skill was lethal as you were essentially worth 20 points for being the 3rd inbounder. Also, dumping to the 1pt. with a bunch of "passes" under your belt woften defeated good two team combos in elims (not the majority, but there were a lot of "upsets" this year).

My personal favorite MCC this year though was "Fridgebot". They actually picked a poor strategy (catching only), but executed it so well that they had a good deal of success throughout the season.
http://www.thebluealliance.com/team/5084/2014
https://www.youtube.com/watch?v=vgza-vzG2Fs
Reply With Quote
  #39   Spotlight this post!  
Unread 20-11-2014, 17:50
Sohaib's Avatar
Sohaib Sohaib is offline
Registered User
AKA: Sohaib Nadeem
FRC #5036 (The Robo Devils)
Team Role: Mentor
 
Join Date: Apr 2014
Rookie Year: 2013
Location: Toronto, Ontario
Posts: 130
Sohaib is a glorious beacon of lightSohaib is a glorious beacon of lightSohaib is a glorious beacon of lightSohaib is a glorious beacon of lightSohaib is a glorious beacon of light
Re: [MCC] Minimum Competitive Concept 2014

We built a robot that could inbound, and pass back to the human player and a goalie pole. Much different approach than 5136, we didn't have a pick-up, and could only get a ball by means of a human player. We also had a goalie pole, and would probably have been much more competitive had we heard of Cheesy Vision before championships.

The unfortunate problem for us was the parts for our inbound mechanism didn't come in until before championship.
__________________

2014 Season:
- Drive Coach
- Rookie All-Star Award (GTR-E)
2015 Season:
- Driver
- Deans List Semi-Finalist (GTR-E)
2016 Season:
- Driver
- Alliance Captain (GTR-E)
Reply With Quote
  #40   Spotlight this post!  
Unread 20-11-2014, 17:50
mman1506's Avatar
mman1506 mman1506 is offline
Hater of Tiny Molex Connectors
AKA: Marcus Quintilian
no team (WARP7)
Team Role: Alumni
 
Join Date: Mar 2012
Rookie Year: 2012
Location: Toronto
Posts: 806
mman1506 has a reputation beyond reputemman1506 has a reputation beyond reputemman1506 has a reputation beyond reputemman1506 has a reputation beyond reputemman1506 has a reputation beyond reputemman1506 has a reputation beyond reputemman1506 has a reputation beyond reputemman1506 has a reputation beyond reputemman1506 has a reputation beyond reputemman1506 has a reputation beyond reputemman1506 has a reputation beyond repute
Re: [MCC] Minimum Competitive Concept 2014

Quote:
Originally Posted by Andrew Schreiber View Post
I strongly disagree. By adding the floor pickup the MCC also becomes a reasonable contender for being the middle bot in a 3 bot no truss cycle. Still worth a fair number of points. It's a tactical flexibility that is simple enough to add to be worth it.

Typically floor pickups are considered a nice to have, but with only one game piece they become more important. Oh, HP inbounds bad, or robot is hit and misses getting the ball? Suddenly you're out an assist.
Cough... Cough....
__________________
2014-2015: FRC 865 Warp7 Team Captain
2016: FRC 865 Mentor

2017: Free Agent Mentor, Inspector
Reply With Quote
  #41   Spotlight this post!  
Unread 20-11-2014, 18:17
Tom Line's Avatar
Tom Line Tom Line is offline
Raptors can't turn doorknobs.
FRC #1718 (The Fighting Pi)
Team Role: Mentor
 
Join Date: Jan 2007
Rookie Year: 1999
Location: Armada, Michigan
Posts: 2,537
Tom Line has a reputation beyond reputeTom Line has a reputation beyond reputeTom Line has a reputation beyond reputeTom Line has a reputation beyond reputeTom Line has a reputation beyond reputeTom Line has a reputation beyond reputeTom Line has a reputation beyond reputeTom Line has a reputation beyond reputeTom Line has a reputation beyond reputeTom Line has a reputation beyond reputeTom Line has a reputation beyond repute
Re: [MCC] Minimum Competitive Concept 2014

Quote:
Originally Posted by BJC View Post
Assumptions are that one of the primary goals of the MCC is to play in elims (not necessarily win on Einstein), and your team has mid-pack to lower fabrication resources.
Please list your assumptions, strategy to seed high, estimate of a winning score, and what robot design elements would achieve this score.[/i]

I'll toss my two cents in later.

Cheers, Bryan
I made this post before reading the others in the thread, because I want to put down some unbiased thoughts. I'll make my comments using my frame of reference right now, because there were some assumptions our team was making early in the season that turned out to be not true.

Initial Assumptions from a mid-tier team point of view:
1. It's unlikely I'll be one of the top 4-5 robots at a given event.
2. Those top robots will be excel at the primary game focus.
3. There are secondary attributes to the game that are crucial to a playoff team.
4. If I can excel at those, I will have a competitive robot that might slip into the top 8, but will definitely be picked.

A 'top' robot will almost always be the finisher - the robot that does the actual scoring. So defining the support roles that need to be played is crucial.

Support roles (in no particular order):
1. Receive the inbound pass securely with little chance of a miss.
2. Perform a quick hand-off, or a quick return to the human player.
3. Be able to pick up quickly from the ground.
4. Have a strong enough shot to be able to truss from most places in the middle zone.
5. Be able to hit your ball in auton every time.
6. Be able to play good defense - some height is helpful.
7. Have a fast/quick drivetrain (not necessarily powerful).
8. Durability

When we were doing our scouting list this year, these were our priorities. Things we saw that made us shy away from teams:

Inbounding: Some teams routinely had the ball bounce out or through their robot. In some cases, if an opponent got between the human player and the inbound robot, the ball couldn't be thrown in. We avoided these.

Hand-off: We put a high priority on robots that could accept the ball and hand it off without turning. It was common for defense to be pounding the inbound robot, and we didn't want a robot that was stuck with a ball because they had to face their intake/output toward the human player up against the wall.

Ground Pick up: We put a low priority on this, because we never wanted to see our ball on the ground. A talented defensive driver could shut down a team once a ball ended up there. Look at what team 27 Rush did to our alliance in the State Championships. However, the team did HAVE to be able to pick up from the ground.

Trussing: Getting the ball over easily with a nice arc from pretty much everywhere was quite important. Almost all our strategies centered on the human player catching the ball. A high arc was a plus. A high-er release point or the event to throw while being defended was very important. We also stayed away from teams that had to lower an intake - they could be defended just by not allowing them to lower that intake.

Auto: You know that by the time you're in the final elim rounds or at champs, missing an auto score is often signing your death warrant. The robot has to nail those shots.

Defense: Defense was a matter of positioning, and that came down to drivetrain speed. Power wasn't all that important - you just had to be quick enough to get between your opponent and where they wanted to be. Many robots weren't able to accurately change their shooting locations, and that meant a defender could shut them down just by parking in the right spot, or by driving back and forth just inside the white line.

That split things up a bit for us: our ideal 2nd robot (inbound and truss) wasn't necessarily our ideal 3rd (inbound and defense). However, if I'm designing a bot I want to be able to truss, so I'm going to design our '2nd' bot.

So, if we were doing a decision matrix for that robot, I think it would look like the one attached, and my "MCC" would be a robot designed around the '3rd pick' column priorities.
Attached Thumbnails
Click image for larger version

Name:	Weighted Decision Matrix.png
Views:	59
Size:	9.2 KB
ID:	17493  

Last edited by Tom Line : 20-11-2014 at 18:20.
Reply With Quote
Reply


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 20:10.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi