public String listSocials(Session viewerS, List<String> commands)
	{
		WikiFlag wiki = getWikiFlagRemoved(commands);
		final StringBuilder buf=new StringBuilder("^xAll Defined Socials: ^N\n\r");
		final int COL_LEN=CMLib.lister().fixColWidth(18.0,viewerS);
		int col=0;
		Set<String> baseDone = new HashSet<String>();
		for(String social : CMLib.socials().getSocialsList())
		{
			final Social soc=CMLib.socials().fetchSocial(social,true);
			if(baseDone.contains(soc.baseName()))
				continue;
			baseDone.add(soc.baseName());
			if(wiki == WikiFlag.WIKILIST)
				buf.append("*[["+social+"|"+social+"]]\n\r");
			else
			if(wiki == WikiFlag.WIKIHELP)
			{
				final String TargetNoneYouSee;
				final String TargetNoneOthersSee;
				final String TargetSomeoneNoTarget;
				final String TargetSomeoneYouSee;
				final String TargetSomeoneTargetSees;
				final String TargetSomeoneOthersSee;
				final String TargetSelfYouSee;
				final String TargetSelfOthersSee;
				final Social TargetNoneSoc = CMLib.socials().fetchSocial(soc.baseName(), true);
				if(TargetNoneSoc!=null)
				{
					TargetNoneYouSee = TargetNoneSoc.You_see();
					TargetNoneOthersSee = TargetNoneSoc.Third_party_sees();
				}
				else
				{
					TargetNoneYouSee = "";
					TargetNoneOthersSee = "";
				}
				final Social TargetSomeoneSoc = CMLib.socials().fetchSocial(soc.baseName()+" <T-NAME>", true);
				if(TargetSomeoneSoc!=null)
				{
					TargetSomeoneNoTarget = TargetSomeoneSoc.See_when_no_target();
					TargetSomeoneYouSee = TargetSomeoneSoc.You_see();
					TargetSomeoneOthersSee = TargetSomeoneSoc.Third_party_sees();
					TargetSomeoneTargetSees=TargetSomeoneSoc.Target_sees();
				}
				else
				{
					TargetSomeoneNoTarget = "";
					TargetSomeoneYouSee = "";
					TargetSomeoneOthersSee = "";
					TargetSomeoneTargetSees= "";
				}
				final Social TargetSelfSoc = CMLib.socials().fetchSocial(soc.baseName()+" SELF", true);
				if(TargetSelfSoc!=null)
				{
					TargetSelfYouSee = TargetSelfSoc.You_see();
					TargetSelfOthersSee = TargetSelfSoc.Third_party_sees();
				}
				else
				{
					TargetSelfYouSee = "";
					TargetSelfOthersSee = "";
				}
				buf.append("{{SocialTemplate"
						+ "|Name="+CMStrings.capitalizeAndLower(soc.baseName())
						+ "|TargetNoneUSee="+TargetNoneYouSee
						+ "|TargetNoneTheySee="+TargetNoneOthersSee
						+ "|TargetSomeoneNoTarget="+TargetSomeoneNoTarget
						+ "|TargetSomeoneUSee="+TargetSomeoneYouSee
						+ "|TargetSomeoneTargetSees="+TargetSomeoneTargetSees
						+ "|TargetSomeoneOthersSee="+TargetSomeoneOthersSee
						+ "|TargetSelfUSee="+TargetSelfYouSee
						+ "|TargetSelfOthersSee="+TargetSelfOthersSee
						+ "}}\n\r");
			}
			else
			{
				buf.append(CMStrings.padRight(social,COL_LEN)+" ");
				col++;
				if(col==4)
				{
					col=0;
					buf.append("\n\r");
				}
			}
		}
		if(buf.length()==0)
			return "None defined.";
		return buf.toString();
	}