Начинающему сетевому программисту

2019 год

Socket sTRX4 (или Socket SP3r3) – разъем для настольных высокопроизводительных процессоров AMD Ryzen Threadripper архитектуры Zen 2 (третьего поколения Threadripper, кодовое название Castle Peak). Сокет вышел в ноябре 2019 года.

Сокет выполнен в формате LGA. То есть, в нем расположены пружинные контакты, к которым прижимается устанавливаемый процессор. Количество контактов в разъеме — 4094.

Сокет пришел на смену разъему TR4, похож с ним по размерам и внешне, имеет такое-же количество контактов, однако, они не совместимы. То есть, процессоры для сокета TR4 не могут устанавливаться в Socket sTRX4 и наоборот.

Ограничения для необработанных сокетов

в Windows 7, Windows Vista, Windows XP с пакетом обновления 2 (sp2) и Windows XP с пакетом обновления 3 (sp3) возможность отправки трафика через необработанные сокеты ограничена несколькими способами:

  • Данные TCP не могут быть отправлены через необработанные сокеты.
  • UDP-датаграммы с недопустимым исходным адресом не могут быть отправлены через необработанные сокеты. IP-адрес источника для любой исходящей датаграммы UDP должен существовать в сетевом интерфейсе, или датаграмма удалена. Это изменение было сделано, чтобы ограничить способность вредоносного кода создавать распределенные атаки типа «отказ в обслуживании» и ограничивает возможность отправки ложных пакетов (пакетов TCP/IP с подложным исходным IP-адресом).
  • Вызов функции BIND с необработанным сокетом для _ протокола TCP иппрото не разрешен.

    Примечание

    Функция BIND с необработанным сокетом разрешена для других протоколов ( _ например, ИППРОТО IP, ИППРОТО _ UDP или иппрото _ SCTP).

указанные выше ограничения не относятся к Windows server 2008 R2, Windows Server 2008, Windows Server 2003 или к версиям операционной системы, предшествующим Windows XP с пакетом обновления 2 (SP2).

Примечание

реализация TCP/IP в корпорации майкрософт на Windows может открыть необработанный сокет UDP или TCP на основе указанных выше ограничений. Другие поставщики Winsock могут не поддерживать использование необработанных сокетов.

Существуют дополнительные ограничения для приложений, использующих сокет типа Сокк _ RAW. Например, все приложения, прослушивающие конкретный протокол, получат все пакеты, полученные для этого протокола. Это может быть нежелательным для нескольких приложений, использующих протокол. Это также не подходит для высокопроизводительных приложений. чтобы избежать этих проблем, может потребоваться написать Windows драйвер сетевого протокола (драйвер устройства) для конкретного сетевого протокола. в Windows Vista и более поздних версиях Winsock Kernel (WSK) — новый интерфейс сетевого программирования, не зависящий от транспорта, может использоваться для записи драйвера сетевого протокола. в Windows Server 2003 и более ранних версиях для поддержки сетевого протокола можно написать поставщик TDI (TDI) и библиотеку DLL модуля поддержки Winsock. Затем сетевой протокол будет добавлен в каталог Winsock как поддерживаемый протокол. Это позволяет нескольким приложениям открывать сокеты для этого конкретного протокола, и драйвер устройства может контролировать, какой сокет получает определенные пакеты и ошибки. сведения о создании поставщика сетевых протоколов см. в разделах WSK и TDI в комплекте Windows Driver Kit (WDK).

Приложениям также необходимо учитывать влияние параметров брандмауэра на отправку и получение пакетов с помощью необработанных сокетов.

Команда lshw

Команда List Hardware (lshw) — еще одна популярная команда, используемая системными администраторами для получения очень подробной информации об аппаратных характеристиках машины. Это делается путем чтения различных файлов в каталоге /proc на компьютере с Linux.

Для получения информации утилите lshw необходим root-доступ. Она может сообщить о конфигурации RAM, версии прошивки, конфигурации материнской платы, информацию о процессоре, конфигурации кэша, скорости шины и т.д. Эта команда присутствует по умолчанию в большинстве дистрибутивов Linux. Если приведенные ниже команды не работают, значит утилиты в вашем дистрибутиве нет. Для ее установки перейдите на официальную страницу GitHub.

Синтаксис команды:

Формат вывода может быть любым из следующих:

  • html — вывод аппаратной конфигурации в формате HTML;
  • xml — вывод аппаратной конфигурации в формате XML;
  • json — вывод аппаратной конфигурации как объект JSON;
  • short — отображает только основную информацию;
  • businfo — выводит информацию о шине.

Параметры могут быть любыми из следующих:

  • -class CLASS — показывает только определенный класс оборудования;
  • -C CLASS — такой же, как ‘-class CLASS’;
  • -c CLASS — такой же, как ‘-class CLASS’;
  • -disable TEST — отключить тест (например, pci, isapnp, cpuid и т.д.);
  • -enable TEST — включить тест (например, pci, isapnp, cpuid и т.д.);
  • -quiet — не отображать статус;
  • -sanitize — удалить конфиденциальную информацию, такую как серийные номера и т.д.;
  • -numeric — числовые идентификаторы (для PCI, USB и т.д.);
  • -notime — исключить изменяемые атрибуты (временные метки) из вывода.

Поскольку команда должна выполняться с правами root, используйте sudo перед командой:


Скриншот №7. Команда sudo

191028
Санкт-Петербург
Литейный пр., д. 26, Лит. А

+7 (812) 403-06-99

700
300

ООО «ИТГЛОБАЛКОМ ЛАБС»

700
300

Монтирование устройств[править]

Команда Описание
mount /путь_к_директории/образ.iso -o loop /media/iso Монтирование образа iso в созданную/имеющуюся директорию /media/iso
mount file.iso /media/iso/ -t iso9660 -o loop Монтирование образа iso в созданную/имеющуюся директорию /media/iso
umount /media/iso/ Размонтирование образа из директории /media/iso/
modprobe loop При «Ошибка подключения ISO образа». Невозможно найти ни одного устройства обратной связи. Может быть ядро не знает об устройствах обратной связи.(В этом случае перекомпилируется ядро или выполните modprode loop)
ls /home | grep back Узнать существует каталог vps-backup для монтирования по команде mount /home/vps-backup, при ее отсутствии терминал вернет — mount: /home/vps-backup: Нет такого файла или каталога
mount | grep /dev/sdb Посмотреть куда примонтирован «sdb»
mount | column -t Получить информацию о текущих смонтированных файловых системах с удобным оформлением по столбцам
findmnt Отображает информацию в виде красивого дерева и сама форматирует столбцы, а также может найти нужную файловую систему
mount -t ntfs-3g -o rw,flush /dev/sdXx /mnt Принудительное монтирование раздела sdXx (,где Хх — ваш номер диска) с ntfs
ntfsfix /dev/sdxX Если не монтируется раздел с ntfs после перезагрузки с windows 10

listen()¶

См.также

  • http://unixhelp.ed.ac.uk/CGI/man-cgi?listen+2

Подготавливает привязываемый сокет к принятию входящих соединений. Данная функция применима только к типам сокетов SOCK_STREAM и SOCK_SEQPACKET. Принимает два аргумента:

  1. sockfd — корректный дескриптор сокета.
  2. backlog — целое число, означающее число установленных соединений, которые могут быть обработаны в любой момент времени. Операционная система обычно ставит его равным максимальному значению.

Примечание

После принятия соединения оно выводится из очереди. В случае успеха возвращается 0, в случае возникновения ошибки возвращается −1.

Пример на Си

#include <sys/socket.h>
int listen(int sockfd, int backlog);

Пример на Python

2014 год

Socket FM2+ (FM2b, FM2r2) — это процессорный разъём, используемый APU Kaveri и APU Godavari (на базе микроархитектуры Steamroller)

Процессорное гнездо Socket FM2+ совместимо как с существующими APU поколений Trinity и Richland, так и с Kaveri и Godavari (поставки Kaveri в настольном сегменте начались в начале 2014 г., а в мобильном секторе – в 2014 году).

Перспективные APU под кодовым именем Carrizo тоже поддерживаются FM2+.

Socket AM1 — торговая марка разъёма процессора Socket FS1b компании AMD, выпущенного в апреле 2014 года для настольных SoC в нижнем ценовом сегменте.

Первые совместимые процессоры AMD, спроектированные как APU, представляют собой 4 микросхемы в семействе Kabini микроархитектуры Jaguar, выпущенные на рынок под названиями Athlon и Sempron и анонсированные 9 апреля 2014.

Хотя мобильные процессоры AMD доступны в одном 722-контактном корпусе Socket FS1, но нет официальной информации о совместимости этих процессоров с Socket AM1.

Первый квартал 2011 года

LGA 1155 (Socket H2) — процессорный разъём для процессоров Intel, использующих микроархитектуру Sandy Bridge (Sandy Bridge и последующий Ivy Bridge). Анонсирован 3 января 2011 года.

Выполнен по технологии LGA (Land Grid Array) и представляет собой разъём с подпружиненными или мягкими контактами, к которым с помощью специального держателя с захватом и рычага прижимается процессор, не имеющий штырьковых контактов.

Socket H2 разработан в качестве замены Socket H (LGA 1156). Несмотря на схожую конструкцию, процессоры LGA 1155 и LGA 1156 несовместимы друг с другом и у них разные расположения пазов.

Системы охлаждения с креплением для LGA 1156 совместимы с LGA 1155 новых процессоров, что позволило не покупать новую систему охлаждения.

Как проверить ваш процессор — Inxi

Inxi — это удобный инструмент, который после установки может предоставить вам массу полезной информации о вашем компьютере, от процессора до ядра, информации о памяти, хранилище и т. Д. Чтобы использовать Inxi для проверки информации о вашем процессоре, вам сначала необходимо: установить его.

Чтобы установить Inxi, откройте окно терминала. Вы можете открыть окно терминала, нажав Ctrl + Alt + T на клавиатуре или выполнив поиск в меню приложения. После открытия окна терминала следуйте инструкциям ниже, чтобы Inxi заработал.

Arch Linux

sudo pacman -S git base-devel

git clone https://aur.archlinux.org/trizen.git

cd trizen/

makepkg -sri

trizen -S inxi

OpenSUSE

sudo zypper install inxi

Установив Inxi, вы можете использовать его для поиска информации о процессоре, используя команду inxi -C ниже.

inxi -C

Если вы хотите сохранить этот вывод информации о вашем процессоре в текстовый файл, вы можете сделать это, введя следующую команду.

inxi -C > ~/my-cpu-info.txt

Чтобы просмотреть этот файл, введите следующую команду или щелкните «my-cpu-info.txt» в диспетчере файлов.

Нужно посмотреть температуру процессора? Ознакомьтесь с нашим руководством.

Как выбрать сокет?

При покупке процессора в компьютерных магазинах рядом с процессором обычно имеется табличка, на которой вы можете прочитать, для какого сокета предназначен данный процессор. Если на вашей материнке используется один тип разъёма, а указанный процессор предназначен для другого сокета, то подключить ЦП к материнской плате не получится (ряд исключений есть у АМД, у которой, например, на материнские платы с сокетом АМ3+ можно установить процессоры, предназначенные для более архаичного сокета АМ3).

Как узнать Сокет у вас в компьютере

Как же узнать, какой сокет у вас используется? Для этого есть несколько возможных путей:

  • Документация к материнской плате вашего ПК. Там обычно содержится детальная информация об использующемся на МП типе сокета. Также можно обследовать материнку ПК на предмет данных о её модели, затем вбить эти данные на сайте производителя, и получить всю сопутствующую информацию, в том числе и о специфике использованного сокета;
  • Различные тестирующие программы снабдят вас информацией о внутренних компонентах ПК («AIDA64», «CPU-Z» и аналоги);
  • На пластмассовом или металлическом участке материнской платы рядом с процессором, на разъёме сокета и т.д. (для получения подобной информации может понадобиться снятие с процессора системы охлаждения, чего я делать не рекомендую, особенно в случае, когда вы не уверены в своей компетенции).

CPU_OPT что это на материнской плате?

Каждое поколение материнских плат содержат новые функции, переключатели, разъемы, не говоря уже о поддержки новых процессоров, типа памяти.

Рассмотрим один из разъемов — CPU_OPT.

Кулер для процессора с двумя вентиляторами

Для многих не секрет, что чем дороже и производительнее процессор, тем больше он потребляет энергии, а чем больше он потребляет энергии, тем сильнее он нагревается. Так вот для некоторых топовых процессоров, которые к тому же еще и разгоняют, нужны производительные системы охлаждения. Одна из таких систем – это башенный тип с двумя вентиляторами.

Система охлаждения процессора с двумя вентиляторами

Некоторые уже догадались для чего нужен cpu_opt. Совершенно верно – для подключения второго вентилятора двухвентиляторного кулера процессора. OPT в названии разъема расшифровывается как optional. То есть если опционально есть второй вентилятор для охлаждения процессора, то он подключается именно к cpu_opt.

На основании всего вышесказанного может возникнуть вопрос: куда подключать второй вентилятор, если этого разъема нет?! Ответ прост – на разъем обычного корпусного вентилятора cha_fan, который присутствует как минимум в единственном экземпляре даже на самой дешевой плате.

Описание CPU_OPT

CPU_OPT — четырехпиновый разъем (штекер) на материнской плате для подключения второго вентилятора на радиаторе процессора. Один в разъем CPU_FAN, второй — CPU_OPT.

Продвинутые воздушные системы охлаждения для процессоров в своем составе имеют два вентилятора, размещенных по бокам радиатора. Данный тип конструкции повышает эффективность теплоотвода.

Обороты автоматически регулируются в зависимости от температуры процессора (если в биосе не настроено иначе).

Внешний вид CPU_OPT

При отсутствии CPU_OPT допускается использование CHA_FAN2. Однако учтите, CHA_FAN2 предназначен для корпусного вентилятора.

Важно. Вентиляторы с четырехконтактым подключением поддерживают PWM-управление (Pulse-width modulation — Широтно-импульсная модуляция), с трехконтактным — управление по напряжению

CPU_FAN может поддерживать оба типа. Новые материнки способны самостоятельно определять тип подключения.

Количество об/м регулируется в биосе, либо программно. Например для материнских плат Асус существуют утилиты Fan Xpert, Thermal Radar.

Вместо фирменных утилит для настройки оборотов/режимов работы надежнее использовать UEFI BIOS.

На материнке может располагаться четырехпиновый разъем High Amp Fan — необходим для подключения вентиляторов с током до 3 А.

2016 год

АМ4 — разъём процессора (сокет) для микропроцессоров от компании AMD с микроархитектурой Zen (бренд Ryzen) и последующих. Представлен в 2016 году. Разъём относится к типу PGA (pin grid array) и имеет 1331 контакт.

Он стал первым сокетом от AMD для материнских плат с поддержкой стандарта памяти DDR4 и единым разъёмом как для высокопроизводительных процессоров без интегрированного видеоядра (по аналогии с Socket AM3+), так и для недорогих процессоров и APU (ранее использовали различные сокеты серий AM / FM). Продукты AMD планируется реализовывать на АМ4, вместо ранее предполагавшегося сокета FM3.

Крепление на сокет AM4 систем процессорного охлаждения, таких как радиаторы и теплообменники СВО, стало частично несовместимым с предыдущими креплениями сокетов АМ2, АМ3, АМ3+, FM2 — стандартное крепление на защёлку-«качели» через пластиковые проставки совместимость не потеряло, но изменившееся расположение отверстий не позволит использовать системы охлаждения от предыдущих сокетов с креплением непосредственно к материнской плате. Также, существуют единичные модели материнских плат с совмещёнными отверстиями AM3/AM4.

Характеристики сокета:

  • Поддерживает шину PCI-E 3.0. Суммарно, в зависимости от чипсета, доступно до 24 линий. Чипсет обеспечивает линии со скоростью PCIe 2.0 (х570 и Zen2 PCI Express 4.0 x16 1 ед)
  • Поддерживается до 4 модулей памяти DDR4 SDRAM, со скоростями до 3200 МГц, организованные в два канала памяти
  • Чипсеты для платформы поддерживают USB 3.0 и USB 3.1 gen 2 (5 и 10 Гбит/с), NVMe, SATA Express

Как узнать PID приложения

Для того, чтобы узнать PID приложения в Windows, вам нужно в области пуск кликнуть правой кнопкой мыши и из контекстного меню выбрать Диспетчер задач

В диспетчере задач, найдите поле ИД процесса .если его не будет то добавьте.

Теперь давайте смотреть, в правой части я вижу приложение skype и оно имеет PID 4352, смотрим в левой части экрана и видим порты и Ip адрес, которые слушает данной приложение.

Ну и еще есть утилита TCPView, про нее я уже отдельно писал. Утилита бесплатная и имеет графический интерфейс, запустив ее вы сразу видите кому какой PID принадлежит. Так же видно все сокеты и их состояния.

Думаю, у вас теперь не должно быть вопроса, что такое сокеты windows и как их посмотреть, всем спасибо за прочтение.

Какие сокеты выпускались AMD

  • Super Socket 7. Модифицированный вариант универсального сокета, задача которого максимальное раскрытие вычислительной мощности.
  • Slot A. Представлен в 1999 году как решение для нового ЦП Athlon — главного конкурента Pentium III.
  • Socket A (462). Модификация, которая поддерживала как дорогие «Атлоны», так и бюджетные Duron и впоследствии Sempron.
  • 754. Обновление для 64-разрядных «Атлонов».
  • 939. «Упрощенная» версия серверного Socket 940. Применялся с 2004 года.
  • AM2. Выпущен в 2006 году как замена для двух предыдущих. Добавлена поддержка Phenom на архитектуре К10.
  • AM2+. Модификация, выпущенная в 2007 году. Добавлена поддержка ядер Agena, Toliman и Kuma.

  • AM3. Появился в 2009 году. Предназначен для процессоров, которые уже поддерживали DDR3.
  • AM3+. Логическое развитие линейки, анонсированное в 2010 году. Ориентирован на высокопроизводительные процессоры с архитектурой Bulldozer .
  • FM1. Представлен в 2011 году как решение для гибридных CPU с архитектурой Fusion.
  • FM2. Выпускается с 2012 года для гибридных процессоров с ядрами Trinity и Richland.
  • FM2+. В 2014 году добавлена поддержка микроархитектуры Steamroller.
  • AM1. Появился в 2014 году для бюджетных ЦП семейства Kabini с микроархитектурой Jaguar.
  • AM4. В 2016 году представлен как слот для процессоров бренда Ryzen на архитектуре Zen.
  • TR4. Модификация под процессоры Ryzen Threadripper, выпущенная в 2017 году.
  • TRX4. Сокет АМД для процессоров на архитектуре Zen 2. Представлен в 2019 году.

Как и в предыдущем случае, последние три слота в списке пока что являются самыми актуальными на данный момент.

Также советую почитать о лучшем процессоре на сокет FM2 (уже на блоге).

2014 год

LGA2011-3 (второе название — Socket R3) — разъём, используемый для подключения к материнской плате процессоров микроархитектуры Haswell-E/EP и Broadwell-E/EP.

Предназначен для высокопроизводительных настольных систем, рабочих станций и серверов. Сокет выпущен в 2014 году на смену сокету LGA2011. Позже, в 2017 году, ему на смену вышел сокет LGA2066.

Количество контактов в LGA2011-3 осталось таким же, как у LGA2011 (их 2011). Однако, эти разъемы не совместимы (нельзя использовать одни и те же процессоры). В то же время, отверстия для крепления системы охлаждения у LGA2011-3, LGA2011 и LGA2066 расположены одинаково (можно использовать одни и те же кулеры).

Как уже видно из названия, сокет LGA2011-3 выполнен в LGA-формате, то есть, внутри него расположены подпружиненные ножки, к которым своими контактными площадками прижимается процессор.

Устанавливаемые в него процессоры не имеют встроенной графики, включают контроллер памяти (4 канала DDR4) и контроллер PCIe (до 40 каналов PCI Express 3.0). Большинство из них поддерживают многопоточность (Hyper-Threading).

Для настольных систем с сокетом LGA2011-3 предназначены материнские платы на базе чипсета Intel X99. В серверных материнских платах с этим сокетом используется чипсет Intel C612.

2000 год

Socket A (также известный как Socket 462) — разъём процессора процессоров AMD, от Athlon Thunderbird до Athlon XP/MP 3200+ и для бюджетных Duron и Sempron, также может использоваться с Geode NX.

Конструктивно выполнен в виде ZIF-разъёма с 453 рабочими контактами (9 из 462 контактов заблокированы, но, тем не менее, в названии фигурирует число 462). Частота системной шины для AMD Athlon XP и Sempron составляет 100, 133, 166 и 200 МГц.

Технические спецификации

AMD Sempron 2200 (1500 МГц) вид со стороны контактов

  • Поддерживаются процессоры с частотой от 600 МГц (Duron) до 2333 MHz (Athlon XP 3200+).
  • Удвоение частоты рабочей шины (данные передаются по обоим фронтам тактовых импульсов) 100, 133, 166 и 200 МГц для процессоров Duron, Athlon XP и Sempron, используется шина DEC Alpha EV6.

Ограничения на максимальные механические нагрузки

Все используемые процессоры для данного сокета имеют ограничение на максимальные механические нагрузки (приведены ниже в таблице). При несоблюдении данных нормативов возможны механические повреждения и выход системы из строя.

Положение Динамические нагрузки Статические нагрузки
Поверхность 445H 133H
Края 44H 44H

Приведённые здесь ограничения являются гораздо более строгими, по сравнению с подобными ограничениями для процессоров сокета Socket 478. Большинство процессоров для Socket A не имеют защитного металлического корпуса, поэтому очень велика вероятность механического повреждения кристалла процессора при установке/снятии процессорного кулера

Особую осторожность нужно проявлять при использовании нестандартных, самодельных и не рекомендованных AMD для использования систем охлаждения

Рекомендуемая AMD масса охладителя для Socket A не должна превышать 300 г. Более тяжёлые кулеры могут привести к механическим повреждениям и вызвать выход системы из строя.

2012 год

Socket FM2 был представлен в 2012 г., всего через год после Socket FM1. Хотя Socket FM2 является развитием сокета FM1, он не имеет обратной совместимости с ним.

Socket FM2 — процессорный разъём для гибридных процессоров (APU) фирмы AMD с архитектурой ядра Piledriver: Trinity и Richland, а также отмененных Komodo, Sepang и Terramar (MCM — многочиповый модуль). Конструктивно представляет собой ZIF-разъем c 904 контактами, который рассчитан на установку процессоров в корпусах типа PGA.

Процессоры Trinity имеют до 4 ядер, серверные чипы Komodo и Sepang — до 10, а Terramar — до 20 ядер.Однако объявлено о прекращении разработки Sepang и Terramar; интересно, что работы над данными решениями прекращены на достаточно поздней стадии, поскольку их анонс предполагался в 2012 году, вкупе с серверными платформами G2012 и C2012. Планы компании изменились, и теперь AMD готовит другие серверные CPU — Abu Dhabi, в состав которых входит до 16 ядер Piledriver.

Сбор данных о системе с помощью HardInfo

В Windows, дабы узнать подробные сведения о «железе» пользователи как обычно используют специальные программы, например AIDA64 и сходные. Уверяем вас, что Linux не является в этом плане обиженным. Пусть в нем нет такого разнообразия подобных программ, но буквально найдутся те, которые предоставят вам полный отчет о конфигурации вашего ПК. Одной из таких программ является HardInfo (после аппараты отображается в меню как System Profiler and Benchmark). При поддержки данной утилиты вы сможете получить наиболее целое представление о скрывающейся от вас аппаратной «начинке» компьютера. Водворить ее можно из репозитория вашего дистрибутива.

В програмке в доступной графической форме представлены основные пункты по каким вы можете получить информацию. Вам нужно лишь позвать мышкой на нужной иконке и программа отобразит главные характеристики системы. Также в программе предусмотрено творение отчета в формате html, который вы сможете потом просмотреть в браузере. Для этого вам нужно нажать «Generate Report», избрать пункты по которым вы хотите увидеть отчет и дожидаться результата. Несмотря на все свои плюсы, программа HardInfo воображает более скудные результаты чем те, которые вы получите при применении терминала и нескольких команд.

Подведём итоги

Эта статья отвечает на вопрос людей, что такое сокет, столкнувшихся с проблемой выбора процессора или потребностью в его модернизации путём установки современных деталей. В обзоре представлены лучшие варианты решений проблемы выбора разъёма, в зависимости от потребностей пользователя ПК.

И ещё один совет: если вы не являетесь профессионалом, имеете только базовые компьютерные знания, лучше проконсультируйтесь перед покупкой деталей для установки в ПК со специалистами, которые помогут квалифицированно разобраться в нюансах подбора комплектующих, позаботятся об их совместимости.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: