deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted deleted