-- MySQL dump 10.18  Distrib 10.3.27-MariaDB, for debian-linux-gnu (x86_64)
--
-- Host: localhost    Database: 
-- ------------------------------------------------------
-- Server version	10.3.27-MariaDB-0+deb10u1

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Current Database: `mysql`
--

CREATE DATABASE /*!32312 IF NOT EXISTS*/ `mysql` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;

USE `mysql`;

--
-- Table structure for table `column_stats`
--

DROP TABLE IF EXISTS `column_stats`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `column_stats` (
  `db_name` varchar(64) COLLATE utf8_bin NOT NULL,
  `table_name` varchar(64) COLLATE utf8_bin NOT NULL,
  `column_name` varchar(64) COLLATE utf8_bin NOT NULL,
  `min_value` varbinary(255) DEFAULT NULL,
  `max_value` varbinary(255) DEFAULT NULL,
  `nulls_ratio` decimal(12,4) DEFAULT NULL,
  `avg_length` decimal(12,4) DEFAULT NULL,
  `avg_frequency` decimal(12,4) DEFAULT NULL,
  `hist_size` tinyint(3) unsigned DEFAULT NULL,
  `hist_type` enum('SINGLE_PREC_HB','DOUBLE_PREC_HB') COLLATE utf8_bin DEFAULT NULL,
  `histogram` varbinary(255) DEFAULT NULL,
  PRIMARY KEY (`db_name`,`table_name`,`column_name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Statistics on Columns';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `column_stats`
--

LOCK TABLES `column_stats` WRITE;
/*!40000 ALTER TABLE `column_stats` DISABLE KEYS */;
/*!40000 ALTER TABLE `column_stats` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `columns_priv`
--

DROP TABLE IF EXISTS `columns_priv`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `columns_priv` (
  `Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
  `Db` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
  `User` char(80) COLLATE utf8_bin NOT NULL DEFAULT '',
  `Table_name` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
  `Column_name` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
  `Timestamp` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `Column_priv` set('Select','Insert','Update','References') CHARACTER SET utf8 NOT NULL DEFAULT '',
  PRIMARY KEY (`Host`,`Db`,`User`,`Table_name`,`Column_name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Column privileges';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `columns_priv`
--

LOCK TABLES `columns_priv` WRITE;
/*!40000 ALTER TABLE `columns_priv` DISABLE KEYS */;
/*!40000 ALTER TABLE `columns_priv` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `db`
--

DROP TABLE IF EXISTS `db`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `db` (
  `Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
  `Db` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
  `User` char(80) COLLATE utf8_bin NOT NULL DEFAULT '',
  `Select_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Insert_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Update_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Delete_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Create_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Drop_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Grant_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `References_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Index_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Alter_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Create_tmp_table_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Lock_tables_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Create_view_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Show_view_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Create_routine_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Alter_routine_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Execute_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Event_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Trigger_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Delete_history_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  PRIMARY KEY (`Host`,`Db`,`User`),
  KEY `User` (`User`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Database privileges';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `db`
--

LOCK TABLES `db` WRITE;
/*!40000 ALTER TABLE `db` DISABLE KEYS */;
INSERT INTO `db` VALUES ('localhost','phpadmin','phpadmin','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'),('localhost','wordpress','wordpress','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
/*!40000 ALTER TABLE `db` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `event`
--

DROP TABLE IF EXISTS `event`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `event` (
  `db` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
  `name` char(64) NOT NULL DEFAULT '',
  `body` longblob NOT NULL,
  `definer` char(141) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
  `execute_at` datetime DEFAULT NULL,
  `interval_value` int(11) DEFAULT NULL,
  `interval_field` enum('YEAR','QUARTER','MONTH','DAY','HOUR','MINUTE','WEEK','SECOND','MICROSECOND','YEAR_MONTH','DAY_HOUR','DAY_MINUTE','DAY_SECOND','HOUR_MINUTE','HOUR_SECOND','MINUTE_SECOND','DAY_MICROSECOND','HOUR_MICROSECOND','MINUTE_MICROSECOND','SECOND_MICROSECOND') DEFAULT NULL,
  `created` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `modified` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `last_executed` datetime DEFAULT NULL,
  `starts` datetime DEFAULT NULL,
  `ends` datetime DEFAULT NULL,
  `status` enum('ENABLED','DISABLED','SLAVESIDE_DISABLED') NOT NULL DEFAULT 'ENABLED',
  `on_completion` enum('DROP','PRESERVE') NOT NULL DEFAULT 'DROP',
  `sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT') NOT NULL DEFAULT '',
  `comment` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
  `originator` int(10) unsigned NOT NULL,
  `time_zone` char(64) CHARACTER SET latin1 NOT NULL DEFAULT 'SYSTEM',
  `character_set_client` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
  `collation_connection` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
  `db_collation` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
  `body_utf8` longblob DEFAULT NULL,
  PRIMARY KEY (`db`,`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Events';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `func`
--

DROP TABLE IF EXISTS `func`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `func` (
  `name` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
  `ret` tinyint(1) NOT NULL DEFAULT 0,
  `dl` char(128) COLLATE utf8_bin NOT NULL DEFAULT '',
  `type` enum('function','aggregate') CHARACTER SET utf8 NOT NULL,
  PRIMARY KEY (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='User defined functions';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `func`
--

LOCK TABLES `func` WRITE;
/*!40000 ALTER TABLE `func` DISABLE KEYS */;
/*!40000 ALTER TABLE `func` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `gtid_slave_pos`
--

DROP TABLE IF EXISTS `gtid_slave_pos`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `gtid_slave_pos` (
  `domain_id` int(10) unsigned NOT NULL,
  `sub_id` bigint(20) unsigned NOT NULL,
  `server_id` int(10) unsigned NOT NULL,
  `seq_no` bigint(20) unsigned NOT NULL,
  PRIMARY KEY (`domain_id`,`sub_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Replication slave GTID position';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `gtid_slave_pos`
--

LOCK TABLES `gtid_slave_pos` WRITE;
/*!40000 ALTER TABLE `gtid_slave_pos` DISABLE KEYS */;
/*!40000 ALTER TABLE `gtid_slave_pos` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `help_category`
--

DROP TABLE IF EXISTS `help_category`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `help_category` (
  `help_category_id` smallint(5) unsigned NOT NULL,
  `name` char(64) NOT NULL,
  `parent_category_id` smallint(5) unsigned DEFAULT NULL,
  `url` text NOT NULL,
  PRIMARY KEY (`help_category_id`),
  UNIQUE KEY `name` (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='help categories';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `help_category`
--

LOCK TABLES `help_category` WRITE;
/*!40000 ALTER TABLE `help_category` DISABLE KEYS */;
INSERT INTO `help_category` VALUES (1,'Geographic',0,''),(2,'Polygon properties',34,''),(3,'WKT',34,''),(4,'Numeric Functions',38,''),(5,'Plugins',35,''),(6,'MBR',34,''),(7,'Control flow functions',38,''),(8,'Transactions',35,''),(9,'Help Metadata',35,''),(10,'Account Management',35,''),(11,'Point properties',34,''),(12,'Encryption Functions',38,''),(13,'LineString properties',34,''),(14,'Miscellaneous Functions',38,''),(15,'Logical operators',38,''),(16,'Functions and Modifiers for Use with GROUP BY',35,''),(17,'Information Functions',38,''),(18,'Comparison operators',38,''),(19,'Bit Functions',38,''),(20,'Table Maintenance',35,''),(21,'User-Defined Functions',35,''),(22,'Data Types',35,''),(23,'Compound Statements',35,''),(24,'Geometry constructors',34,''),(25,'GeometryCollection properties',1,''),(26,'Administration',35,''),(27,'Data Manipulation',35,''),(28,'Utility',35,''),(29,'Language Structure',35,''),(30,'Geometry relations',34,''),(31,'Date and Time Functions',38,''),(32,'WKB',34,''),(33,'Procedures',35,''),(34,'Geographic Features',35,''),(35,'Contents',0,''),(36,'Geometry properties',34,''),(37,'String Functions',38,''),(38,'Functions',35,''),(39,'Data Definition',35,'');
/*!40000 ALTER TABLE `help_category` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `help_keyword`
--

DROP TABLE IF EXISTS `help_keyword`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `help_keyword` (
  `help_keyword_id` int(10) unsigned NOT NULL,
  `name` char(64) NOT NULL,
  PRIMARY KEY (`help_keyword_id`),
  UNIQUE KEY `name` (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='help keywords';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `help_keyword`
--

LOCK TABLES `help_keyword` WRITE;
/*!40000 ALTER TABLE `help_keyword` DISABLE KEYS */;
INSERT INTO `help_keyword` VALUES (0,'JOIN'),(1,'HOST'),(2,'REPEAT'),(3,'SERIALIZABLE'),(4,'REPLACE'),(5,'AT'),(6,'SCHEDULE'),(7,'RETURNS'),(8,'STARTS'),(9,'MASTER_SSL_CA'),(10,'NCHAR'),(11,'COLUMNS'),(12,'COMPLETION'),(13,'WORK'),(14,'DATETIME'),(15,'MODE'),(16,'OPEN'),(17,'INTEGER'),(18,'ESCAPE'),(19,'VALUE'),(20,'MASTER_SSL_VERIFY_SERVER_CERT'),(21,'SQL_BIG_RESULT'),(22,'DROP'),(23,'GEOMETRYCOLLECTIONFROMWKB'),(24,'EVENTS'),(25,'MONTH'),(26,'PROFILES'),(27,'DUPLICATE'),(28,'REPLICATION'),(29,'UNLOCK'),(30,'INNODB'),(31,'YEAR_MONTH'),(32,'SUBJECT'),(33,'PREPARE'),(34,'LOCK'),(35,'NDB'),(36,'CHECK'),(37,'FULL'),(38,'INT4'),(39,'BY'),(40,'NO'),(41,'MINUTE'),(42,'PARTITION'),(43,'DATA'),(44,'DAY'),(45,'SHARE'),(46,'REAL'),(47,'SEPARATOR'),(48,'MESSAGE_TEXT'),(49,'MASTER_HEARTBEAT_PERIOD'),(50,'DELETE'),(51,'ON'),(52,'COLUMN_NAME'),(53,'CONNECTION'),(54,'CLOSE'),(55,'X509'),(56,'USE'),(57,'SUBCLASS_ORIGIN'),(58,'WHERE'),(59,'PRIVILEGES'),(60,'SPATIAL'),(61,'EVENT'),(62,'SUPER'),(63,'SQL_BUFFER_RESULT'),(64,'IGNORE'),(65,'SHA2'),(66,'QUICK'),(67,'SIGNED'),(68,'OFFLINE'),(69,'SECURITY'),(70,'AUTOEXTEND_SIZE'),(71,'NDBCLUSTER'),(72,'POLYGONFROMWKB'),(73,'FALSE'),(74,'LEVEL'),(75,'FORCE'),(76,'BINARY'),(77,'TO'),(78,'CHANGE'),(79,'CURRENT_USER'),(80,'HOUR_MINUTE'),(81,'UPDATE'),(82,'PRESERVE'),(83,'TABLE_NAME'),(84,'INTO'),(85,'FEDERATED'),(86,'VARYING'),(87,'MAX_SIZE'),(88,'HOUR_SECOND'),(89,'VARIABLE'),(90,'ROLLBACK'),(91,'PROCEDURE'),(92,'TIMESTAMP'),(93,'IMPORT'),(94,'AGAINST'),(95,'CHECKSUM'),(96,'COUNT'),(97,'LONGBINARY'),(98,'THEN'),(99,'INSERT'),(100,'ENGINES'),(101,'HANDLER'),(102,'PORT'),(103,'DAY_SECOND'),(104,'EXISTS'),(105,'MUTEX'),(106,'HELP_DATE'),(107,'RELEASE'),(108,'BOOLEAN'),(109,'MOD'),(110,'DEFAULT'),(111,'TYPE'),(112,'NO_WRITE_TO_BINLOG'),(113,'OPTIMIZE'),(114,'SQLSTATE'),(115,'RESET'),(116,'CLASS_ORIGIN'),(117,'INSTALL'),(118,'ITERATE'),(119,'DO'),(120,'BIGINT'),(121,'SET'),(122,'ISSUER'),(123,'DATE'),(124,'STATUS'),(125,'FULLTEXT'),(126,'COMMENT'),(127,'MASTER_CONNECT_RETRY'),(128,'INNER'),(129,'RELAYLOG'),(130,'STOP'),(131,'MASTER_LOG_FILE'),(132,'MRG_MYISAM'),(133,'PRECISION'),(134,'REQUIRE'),(135,'TRAILING'),(136,'PARTITIONS'),(137,'LONG'),(138,'OPTION'),(139,'REORGANIZE'),(140,'ELSE'),(141,'DEALLOCATE'),(142,'IO_THREAD'),(143,'CASE'),(144,'CIPHER'),(145,'CONTINUE'),(146,'FROM'),(147,'READ'),(148,'LEFT'),(149,'ELSEIF'),(150,'MINUTE_SECOND'),(151,'COMPACT'),(152,'DEC'),(153,'FOR'),(154,'WARNINGS'),(155,'MIN_ROWS'),(156,'STRING'),(157,'CONDITION'),(158,'ENCLOSED'),(159,'FUNCTION'),(160,'AGGREGATE'),(161,'FIELDS'),(162,'INT3'),(163,'ARCHIVE'),(164,'AVG_ROW_LENGTH'),(165,'ADD'),(166,'KILL'),(167,'FLOAT4'),(168,'TABLESPACE'),(169,'VIEW'),(170,'REPEATABLE'),(171,'INFILE'),(172,'HELP_VERSION'),(173,'ORDER'),(174,'USING'),(175,'CONSTRAINT_CATALOG'),(176,'MIDDLEINT'),(177,'GRANT'),(178,'UNSIGNED'),(179,'DECIMAL'),(180,'GEOMETRYFROMTEXT'),(181,'INDEXES'),(182,'FOREIGN'),(183,'CACHE'),(184,'HOSTS'),(185,'MYSQL_ERRNO'),(186,'COMMIT'),(187,'SCHEMAS'),(188,'LEADING'),(189,'SNAPSHOT'),(190,'CONSTRAINT_NAME'),(191,'DECLARE'),(192,'LOAD'),(193,'SQL_CACHE'),(194,'CONVERT'),(195,'DYNAMIC'),(196,'COLLATE'),(197,'POLYGONFROMTEXT'),(198,'BYTE'),(199,'GLOBAL'),(200,'LINESTRINGFROMWKB'),(201,'WHEN'),(202,'HAVING'),(203,'AS'),(204,'STARTING'),(205,'RELOAD'),(206,'AUTOCOMMIT'),(207,'REVOKE'),(208,'GRANTS'),(209,'OUTER'),(210,'CURSOR_NAME'),(211,'FLOOR'),(212,'EXPLAIN'),(213,'WITH'),(214,'AFTER'),(215,'STD'),(216,'CSV'),(217,'DISABLE'),(218,'UNINSTALL'),(219,'OUTFILE'),(220,'LOW_PRIORITY'),(221,'FILE'),(222,'NODEGROUP'),(223,'SCHEMA'),(224,'SONAME'),(225,'POW'),(226,'DUAL'),(227,'MULTIPOINTFROMWKB'),(228,'INDEX'),(229,'MULTIPOINTFROMTEXT'),(230,'DEFINER'),(231,'MASTER_BIND'),(232,'REMOVE'),(233,'EXTENDED'),(234,'MULTILINESTRINGFROMWKB'),(235,'CROSS'),(236,'CONTRIBUTORS'),(237,'NATIONAL'),(238,'GROUP'),(239,'SHA'),(240,'ONLINE'),(241,'UNDO'),(242,'IGNORE_SERVER_IDS'),(243,'ZEROFILL'),(244,'CLIENT'),(245,'MASTER_PASSWORD'),(246,'OWNER'),(247,'RELAY_LOG_FILE'),(248,'TRUE'),(249,'CHARACTER'),(250,'MASTER_USER'),(251,'SCHEMA_NAME'),(252,'TABLE'),(253,'ENGINE'),(254,'INSERT_METHOD'),(255,'CASCADE'),(256,'RELAY_LOG_POS'),(257,'SQL_CALC_FOUND_ROWS'),(258,'UNION'),(259,'MYISAM'),(260,'LEAVE'),(261,'MODIFY'),(262,'MATCH'),(263,'MASTER_LOG_POS'),(264,'DISTINCTROW'),(265,'DESC'),(266,'TIME'),(267,'NUMERIC'),(268,'EXPANSION'),(269,'CODE'),(270,'CURSOR'),(271,'GEOMETRYCOLLECTIONFROMTEXT'),(272,'CHAIN'),(273,'LOGFILE'),(274,'FLUSH'),(275,'CREATE'),(276,'DESCRIBE'),(277,'EXTENT_SIZE'),(278,'MAX_UPDATES_PER_HOUR'),(279,'INT2'),(280,'PROCESSLIST'),(281,'ENDS'),(282,'LOGS'),(283,'DISCARD'),(284,'HEAP'),(285,'SOUNDS'),(286,'BETWEEN'),(287,'MULTILINESTRINGFROMTEXT'),(288,'REPAIR'),(289,'PACK_KEYS'),(290,'FAST'),(291,'VALUES'),(292,'CALL'),(293,'LOOP'),(294,'VARCHARACTER'),(295,'BEFORE'),(296,'TRUNCATE'),(297,'SHOW'),(298,'ALL'),(299,'REDUNDANT'),(300,'USER_RESOURCES'),(301,'PARTIAL'),(302,'BINLOG'),(303,'END'),(304,'SECOND'),(305,'AND'),(306,'FLOAT8'),(307,'PREV'),(308,'HOUR'),(309,'SELECT'),(310,'DATABASES'),(311,'OR'),(312,'IDENTIFIED'),(313,'WRAPPER'),(314,'MASTER_SSL_CIPHER'),(315,'SQL_SLAVE_SKIP_COUNTER'),(316,'BOTH'),(317,'BOOL'),(318,'YEAR'),(319,'MASTER_PORT'),(320,'CONCURRENT'),(321,'HELP'),(322,'UNIQUE'),(323,'TRIGGERS'),(324,'PROCESS'),(325,'OPTIONS'),(326,'RESIGNAL'),(327,'CONSISTENT'),(328,'MASTER_SSL'),(329,'DATE_ADD'),(330,'MAX_CONNECTIONS_PER_HOUR'),(331,'LIKE'),(332,'PLUGIN'),(333,'FETCH'),(334,'IN'),(335,'COLUMN'),(336,'DUMPFILE'),(337,'USAGE'),(338,'EXECUTE'),(339,'MEMORY'),(340,'CEIL'),(341,'QUERY'),(342,'MASTER_HOST'),(343,'LINES'),(344,'SQL_THREAD'),(345,'SERVER'),(346,'MAX_QUERIES_PER_HOUR'),(347,'MASTER_SSL_CERT'),(348,'MULTIPOLYGONFROMWKB'),(349,'TRANSACTION'),(350,'DAY_MINUTE'),(351,'STDDEV'),(352,'DATE_SUB'),(353,'REBUILD'),(354,'GEOMETRYFROMWKB'),(355,'INT1'),(356,'RENAME'),(357,'PARSER'),(358,'RIGHT'),(359,'ALTER'),(360,'MAX_ROWS'),(361,'SOCKET'),(362,'STRAIGHT_JOIN'),(363,'NATURAL'),(364,'VARIABLES'),(365,'ESCAPED'),(366,'SHA1'),(367,'KEY_BLOCK_SIZE'),(368,'PASSWORD'),(369,'OFFSET'),(370,'CHAR'),(371,'NEXT'),(372,'ERRORS'),(373,'SQL_LOG_BIN'),(374,'TEMPORARY'),(375,'COMMITTED'),(376,'SQL_SMALL_RESULT'),(377,'UPGRADE'),(378,'BEGIN'),(379,'DELAY_KEY_WRITE'),(380,'PROFILE'),(381,'MEDIUM'),(382,'INTERVAL'),(383,'SSL'),(384,'DAY_HOUR'),(385,'NAME'),(386,'REFERENCES'),(387,'AES_ENCRYPT'),(388,'STORAGE'),(389,'ISOLATION'),(390,'CEILING'),(391,'EVERY'),(392,'INT8'),(393,'AUTHORS'),(394,'RESTRICT'),(395,'UNCOMMITTED'),(396,'LINESTRINGFROMTEXT'),(397,'IS'),(398,'NOT'),(399,'ANALYSE'),(400,'DATAFILE'),(401,'DES_KEY_FILE'),(402,'SIGNAL'),(403,'COMPRESSED'),(404,'START'),(405,'PLUGINS'),(406,'SAVEPOINT'),(407,'IF'),(408,'ROWS'),(409,'PRIMARY'),(410,'PURGE'),(411,'LAST'),(412,'USER'),(413,'EXIT'),(414,'KEYS'),(415,'LIMIT'),(416,'KEY'),(417,'MERGE'),(418,'UNTIL'),(419,'SQL_NO_CACHE'),(420,'DELAYED'),(421,'CONSTRAINT_SCHEMA'),(422,'ANALYZE'),(423,'CONSTRAINT'),(424,'SERIAL'),(425,'ACTION'),(426,'WRITE'),(427,'INITIAL_SIZE'),(428,'SESSION'),(429,'DATABASE'),(430,'NULL'),(431,'POWER'),(432,'USE_FRM'),(433,'TERMINATED'),(434,'SLAVE'),(435,'NVARCHAR'),(436,'ASC'),(437,'RETURN'),(438,'OPTIONALLY'),(439,'ENABLE'),(440,'DIRECTORY'),(441,'MAX_USER_CONNECTIONS'),(442,'WHILE'),(443,'LOCAL'),(444,'DISTINCT'),(445,'AES_DECRYPT'),(446,'MASTER_SSL_KEY'),(447,'NONE'),(448,'TABLES'),(449,'<>'),(450,'RLIKE'),(451,'TRIGGER'),(452,'COLLATION'),(453,'SHUTDOWN'),(454,'HIGH_PRIORITY'),(455,'BTREE'),(456,'FIRST'),(457,'COALESCE'),(458,'WAIT'),(459,'CATALOG_NAME'),(460,'MASTER'),(461,'FIXED'),(462,'MULTIPOLYGONFROMTEXT'),(463,'ROW_FORMAT');
/*!40000 ALTER TABLE `help_keyword` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `help_relation`
--

DROP TABLE IF EXISTS `help_relation`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `help_relation` (
  `help_topic_id` int(10) unsigned NOT NULL,
  `help_keyword_id` int(10) unsigned NOT NULL,
  PRIMARY KEY (`help_keyword_id`,`help_topic_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='keyword-topic relation';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `help_relation`
--

LOCK TABLES `help_relation` WRITE;
/*!40000 ALTER TABLE `help_relation` DISABLE KEYS */;
INSERT INTO `help_relation` VALUES (1,0),(356,0),(473,1),(232,2),(447,3),(3,4),(130,4),(421,4),(89,5),(89,6),(406,6),(97,7),(89,8),(185,9),(430,10),(21,11),(347,11),(421,11),(463,11),(468,11),(89,12),(406,12),(146,13),(230,14),(88,15),(356,15),(18,16),(106,16),(134,16),(347,16),(97,17),(500,17),(380,18),(3,19),(104,19),(243,19),(374,19),(459,19),(185,20),(356,21),(9,22),(30,22),(34,22),(87,22),(186,22),(237,22),(263,22),(276,22),(300,22),(331,22),(405,22),(415,22),(416,22),(463,22),(478,22),(108,23),(122,24),(170,24),(424,24),(376,25),(82,26),(104,27),(199,28),(36,29),(347,30),(468,30),(376,31),(199,32),(35,33),(237,33),(36,34),(356,34),(468,35),(417,36),(463,36),(468,36),(21,37),(294,37),(347,37),(451,37),(468,37),(500,38),(48,39),(77,39),(83,39),(130,39),(199,39),(356,39),(361,39),(421,39),(463,39),(468,39),(468,40),(472,40),(376,41),(463,42),(468,42),(212,43),(421,43),(468,43),(473,43),(376,44),(356,45),(97,46),(314,46),(361,47),(374,48),(459,48),(185,49),(48,50),(468,50),(472,50),(1,51),(89,51),(406,51),(472,51),(374,52),(459,52),(176,53),(468,53),(51,54),(106,54),(199,55),(1,56),(55,56),(194,56),(374,57),(459,57),(48,58),(83,58),(106,58),(193,59),(199,59),(249,59),(210,60),(463,60),(89,61),(300,61),(358,61),(406,61),(199,62),(356,63),(1,64),(83,64),(104,64),(130,64),(356,64),(421,64),(463,64),(66,65),(48,66),(417,66),(466,66),(230,67),(87,68),(210,68),(463,68),(199,69),(194,70),(468,71),(91,72),(482,72),(385,73),(447,74),(1,75),(39,76),(230,76),(269,76),(185,77),(269,77),(460,77),(185,78),(463,78),(89,79),(406,79),(376,80),(83,81),(104,81),(356,81),(472,81),(89,82),(406,82),(374,83),(459,83),(3,84),(104,84),(304,84),(356,84),(468,85),(257,86),(194,87),(376,88),(129,89),(146,90),(460,90),(17,91),(189,91),(302,91),(328,91),(347,91),(356,91),(416,91),(439,91),(488,91),(99,92),(188,92),(421,93),(463,93),(88,94),(401,95),(468,95),(69,96),(330,96),(433,96),(285,97),(28,98),(57,98),(85,98),(104,99),(195,99),(301,99),(486,99),(282,100),(347,100),(106,101),(313,101),(473,102),(376,103),(9,104),(30,104),(89,104),(155,104),(186,104),(276,104),(300,104),(347,105),(365,105),(109,106),(146,107),(460,107),(24,108),(88,108),(113,109),(174,109),(3,110),(104,110),(155,110),(200,110),(212,110),(243,110),(463,110),(468,110),(463,111),(115,112),(326,112),(466,112),(470,112),(115,113),(463,113),(374,114),(459,114),(38,115),(119,115),(151,115),(264,115),(374,116),(459,116),(419,117),(124,118),(89,119),(125,119),(406,119),(496,119),(221,120),(3,121),(83,121),(104,121),(129,121),(130,121),(146,121),(155,121),(182,121),(212,121),(333,121),(347,121),(356,121),(374,121),(421,121),(459,121),(463,121),(468,121),(472,121),(477,121),(494,121),(199,122),(132,123),(230,123),(262,123),(376,123),(58,124),(137,124),(215,124),(223,124),(328,124),(336,124),(347,124),(365,124),(210,125),(463,125),(468,125),(89,126),(194,126),(210,126),(406,126),(468,126),(185,127),(1,128),(424,129),(52,130),(185,131),(468,132),(314,133),(199,134),(455,135),(255,136),(285,137),(199,138),(249,138),(463,139),(57,140),(85,140),(237,141),(52,142),(324,142),(57,143),(85,143),(199,144),(313,145),(48,146),(122,146),(347,146),(356,146),(424,146),(455,146),(36,147),(106,147),(447,147),(1,148),(28,149),(376,150),(468,151),(209,152),(180,153),(313,153),(347,153),(356,153),(420,153),(330,154),(347,154),(468,155),(97,156),(180,157),(421,158),(34,159),(68,159),(97,159),(211,159),(233,159),(302,159),(336,159),(347,159),(393,159),(405,159),(416,159),(97,160),(347,161),(421,161),(252,162),(468,163),(463,164),(468,164),(60,165),(194,165),(463,165),(478,165),(176,166),(168,167),(194,168),(415,168),(463,168),(478,168),(30,169),(159,169),(454,169),(447,170),(130,171),(421,171),(190,172),(48,173),(83,173),(356,173),(361,173),(463,173),(1,174),(48,174),(86,174),(374,175),(459,175),(252,176),(199,177),(249,177),(24,178),(128,178),(168,178),(209,178),(230,178),(314,178),(500,178),(97,179),(156,179),(230,179),(411,180),(347,181),(463,182),(468,182),(472,182),(473,182),(101,183),(151,183),(304,183),(145,184),(347,184),(374,185),(459,185),(146,186),(160,187),(347,187),(455,188),(146,189),(374,190),(459,190),(180,191),(200,191),(313,191),(420,191),(304,192),(421,192),(356,193),(230,194),(377,194),(468,195),(155,196),(212,196),(468,196),(395,197),(465,198),(129,199),(137,199),(182,199),(349,199),(447,199),(452,200),(57,201),(85,201),(356,202),(1,203),(36,203),(356,203),(421,204),(199,205),(146,206),(249,207),(192,208),(347,208),(1,209),(374,210),(459,210),(221,211),(255,212),(88,213),(199,213),(210,213),(463,213),(468,213),(463,214),(260,215),(421,216),(468,216),(89,217),(406,217),(463,217),(291,218),(356,219),(3,220),(36,220),(48,220),(83,220),(104,220),(130,220),(421,220),(199,221),(194,222),(155,223),(186,223),(212,223),(309,223),(347,223),(97,224),(277,225),(279,226),(464,227),(1,228),(60,228),(87,228),(101,228),(210,228),(304,228),(308,228),(347,228),(463,228),(468,228),(425,229),(89,230),(406,230),(185,231),(463,232),(255,233),(466,233),(272,234),(1,235),(7,236),(347,236),(257,237),(430,237),(194,238),(226,238),(356,238),(427,239),(87,240),(210,240),(463,240),(313,241),(185,242),(24,243),(128,243),(168,243),(209,243),(314,243),(500,243),(199,244),(185,245),(473,246),(185,247),(385,248),(130,249),(155,249),(212,249),(257,249),(333,249),(347,249),(356,249),(421,249),(430,249),(468,249),(185,250),(374,251),(459,251),(60,252),(110,252),(115,252),(215,252),(276,252),(278,252),(321,252),(347,252),(401,252),(417,252),(463,252),(466,252),(468,252),(470,252),(194,253),(347,253),(365,253),(415,253),(463,253),(468,253),(478,253),(468,254),(30,255),(276,255),(468,255),(472,255),(185,256),(356,257),(305,258),(468,259),(310,260),(463,261),(88,262),(185,263),(356,264),(329,265),(356,265),(361,265),(230,266),(315,266),(375,266),(209,267),(88,268),(68,269),(488,269),(420,270),(246,271),(146,272),(194,273),(226,273),(151,274),(326,274),(17,275),(22,275),(60,275),(77,275),(89,275),(97,275),(155,275),(194,275),(210,275),(211,275),(278,275),(302,275),(309,275),(347,275),(358,275),(393,275),(454,275),(468,275),(473,275),(329,276),(194,277),(199,278),(234,279),(347,280),(451,280),(89,281),(39,282),(269,282),(347,282),(463,283),(468,284),(378,285),(147,286),(107,287),(463,288),(466,288),(468,289),(417,290),(3,291),(104,291),(339,292),(344,293),(257,294),(269,295),(321,296),(463,296),(7,297),(10,297),(17,297),(21,297),(25,297),(33,297),(39,297),(58,297),(68,297),(69,297),(82,297),(122,297),(134,297),(137,297),(145,297),(160,297),(170,297),(192,297),(193,297),(215,297),(223,297),(278,297),(282,297),(294,297),(308,297),(309,297),(328,297),(330,297),(333,297),(336,297),(347,297),(349,297),(358,297),(365,297),(393,297),(424,297),(451,297),(487,297),(488,297),(492,297),(38,298),(199,298),(249,298),(305,298),(356,298),(468,299),(326,300),(468,301),(122,302),(350,302),(28,303),(57,303),(85,303),(232,303),(327,303),(344,303),(496,303),(376,304),(147,305),(316,305),(314,306),(106,307),(376,308),(3,309),(104,309),(255,309),(301,309),(356,309),(160,310),(347,310),(141,311),(77,312),(130,312),(199,312),(473,313),(185,314),(182,315),(455,316),(24,317),(111,317),(376,318),(185,319),(130,320),(421,320),(118,321),(390,321),(463,322),(25,323),(347,323),(199,324),(373,325),(473,325),(374,326),(146,327),(185,328),(376,329),(199,330),(347,331),(378,331),(291,332),(347,332),(419,332),(383,333),(88,334),(122,334),(356,334),(424,334),(463,335),(356,336),(199,337),(86,338),(199,338),(356,339),(397,340),(88,341),(151,341),(176,341),(185,342),(130,343),(421,343),(52,344),(324,344),(9,345),(373,345),(473,345),(199,346),(185,347),(123,348),(146,349),(447,349),(376,350),(407,351),(376,352),(463,353),(144,354),(24,355),(110,356),(222,356),(406,356),(463,356),(210,357),(463,357),(468,357),(1,358),(60,359),(159,359),(199,359),(212,359),(226,359),(233,359),(373,359),(406,359),(439,359),(463,359),(478,359),(463,360),(468,360),(473,361),(1,362),(356,362),(1,363),(347,364),(349,364),(421,365),(427,366),(468,367),(77,368),(199,368),(473,368),(477,368),(356,369),(230,370),(465,370),(106,371),(69,372),(347,372),(494,373),(276,374),(447,375),(356,376),(212,377),(417,377),(146,378),(327,378),(468,379),(487,380),(417,381),(89,382),(376,382),(199,383),(376,384),(212,385),(199,386),(468,386),(472,386),(443,387),(282,388),(447,389),(448,390),(89,391),(128,392),(10,393),(347,393),(30,394),(276,394),(472,394),(447,395),(56,396),(84,397),(206,397),(368,397),(456,397),(84,398),(89,398),(155,398),(206,398),(312,398),(189,399),(194,400),(478,400),(326,401),(459,402),(468,403),(146,404),(324,404),(33,405),(460,406),(9,407),(28,407),(30,407),(89,407),(155,407),(186,407),(276,407),(300,407),(479,407),(130,408),(463,409),(269,410),(106,411),(77,412),(222,412),(331,412),(473,412),(313,413),(308,414),(347,414),(463,414),(48,415),(83,415),(106,415),(122,415),(356,415),(424,415),(60,416),(104,416),(463,416),(468,416),(472,416),(468,417),(232,418),(356,419),(3,420),(104,420),(486,420),(374,421),(459,421),(463,422),(470,422),(463,423),(468,423),(243,424),(468,424),(468,425),(472,425),(36,426),(194,427),(478,427),(129,428),(137,428),(349,428),(447,428),(155,429),(186,429),(212,429),(309,429),(347,429),(473,429),(84,430),(368,430),(472,430),(483,431),(466,432),(421,433),(38,434),(52,434),(89,434),(145,434),(223,434),(324,434),(406,434),(257,435),(356,436),(361,436),(491,437),(421,438),(89,439),(406,439),(463,439),(212,440),(468,440),(199,441),(496,442),(36,443),(115,443),(130,443),(326,443),(421,443),(466,443),(470,443),(0,444),(96,444),(288,444),(305,444),(356,444),(361,444),(384,444),(433,444),(497,445),(185,446),(199,447),(36,448),(134,448),(294,448),(347,448),(495,449),(27,450),(22,451),(263,451),(347,451),(347,452),(492,452),(199,453),(104,454),(356,454),(210,455),(106,456),(463,456),(468,456),(463,457),(194,458),(478,458),(374,459),(459,459),(39,460),(58,460),(185,460),(264,460),(269,460),(209,461),(468,461),(201,462),(468,463);
/*!40000 ALTER TABLE `help_relation` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `help_topic`
--

DROP TABLE IF EXISTS `help_topic`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `help_topic` (
  `help_topic_id` int(10) unsigned NOT NULL,
  `name` char(64) NOT NULL,
  `help_category_id` smallint(5) unsigned NOT NULL,
  `description` text NOT NULL,
  `example` text NOT NULL,
  `url` text NOT NULL,
  PRIMARY KEY (`help_topic_id`),
  UNIQUE KEY `name` (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='help topics';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `help_topic`
--

LOCK TABLES `help_topic` WRITE;
/*!40000 ALTER TABLE `help_topic` DISABLE KEYS */;
INSERT INTO `help_topic` VALUES (0,'MIN',16,'Syntax:\nMIN([DISTINCT] expr)\n\nReturns the minimum value of expr. MIN() may take a string argument; in\nsuch cases, it returns the minimum string value.\nThe DISTINCT keyword can be used to find the minimum of the distinct values\nof expr, however, this produces the same result as omitting DISTINCT.\n\nMIN() returns NULL if there were no matching rows.\n\nURL: https://mariadb.com/kb/en/min/\n\n','MariaDB> SELECT student_name, MIN(test_score), MAX(test_score)\n    ->        FROM student\n    ->        GROUP BY student_name;\n','https://mariadb.com/kb/en/min/'),(1,'JOIN',27,'MySQL supports the following JOIN syntaxes for the table_references\npart of SELECT statements and multiple-table DELETE and UPDATE\nstatements:\n\ntable_references:\n    table_reference [, table_reference] ...\n\ntable_reference:\n    table_factor\n  | join_table\n\ntable_factor:\n    tbl_name [[AS] alias] [index_hint_list]\n  | table_subquery [AS] alias\n  | ( table_references )\n  | { OJ table_reference LEFT OUTER JOIN table_reference\n        ON conditional_expr }\n\njoin_table:\n    table_reference [INNER | CROSS] JOIN table_factor [join_condition]\n  | table_reference STRAIGHT_JOIN table_factor\n  | table_reference STRAIGHT_JOIN table_factor ON conditional_expr\n  | table_reference {LEFT|RIGHT} [OUTER] JOIN table_reference join_condition\n  | table_reference NATURAL [{LEFT|RIGHT} [OUTER]] JOIN table_factor\n\njoin_condition:\n    ON conditional_expr\n  | USING (column_list)\n\nindex_hint_list:\n    index_hint [, index_hint] ...\n\nindex_hint:\n    USE {INDEX|KEY}\n      [FOR {JOIN|ORDER BY|GROUP BY}] ([index_list])\n  | IGNORE {INDEX|KEY}\n      [FOR {JOIN|ORDER BY|GROUP BY}] (index_list)\n  | FORCE {INDEX|KEY}\n      [FOR {JOIN|ORDER BY|GROUP BY}] (index_list)\n\nindex_list:\n    index_name [, index_name] ...\n\nA table reference is also known as a join expression.\n\nThe syntax of table_factor is extended in comparison with the SQL\nStandard. The latter accepts only table_reference, not a list of them\ninside a pair of parentheses.\n\nThis is a conservative extension if we consider each comma in a list of\ntable_reference items as equivalent to an inner join. For example:\n\nSELECT * FROM t1 LEFT JOIN (t2, t3, t4)\n                 ON (t2.a=t1.a AND t3.b=t1.b AND t4.c=t1.c)\n\nis equivalent to:\n\nSELECT * FROM t1 LEFT JOIN (t2 CROSS JOIN t3 CROSS JOIN t4)\n                 ON (t2.a=t1.a AND t3.b=t1.b AND t4.c=t1.c)\n\nIn MySQL, JOIN, CROSS JOIN, and INNER JOIN are syntactic equivalents\n(they can replace each other). In standard SQL, they are not\nequivalent. INNER JOIN is used with an ON clause, CROSS JOIN is used\notherwise.\n\nIn general, parentheses can be ignored in join expressions containing\nonly inner join operations.\n\nIndex hints can be specified to affect how the MySQL optimizer makes\nuse of indexes. For more information, see\nhttps://mariadb.com/kb/en/how-to-force-query-plans/.\n\nURL: https://mariadb.com/kb/en/join-syntax/\n\n','SELECT left_tbl.*\n  FROM left_tbl LEFT JOIN right_tbl ON left_tbl.id = right_tbl.id\n  WHERE right_tbl.id IS NULL;\n','https://mariadb.com/kb/en/join-syntax/'),(2,'HEX',37,'Syntax:\nHEX(str), HEX(N)\n\nFor a string argument str, HEX() returns a hexadecimal string\nrepresentation of str where each character in str is converted to two\nhexadecimal digits. The inverse of this operation is performed by the\nUNHEX() function.\n\nFor a numeric argument N, HEX() returns a hexadecimal string\nrepresentation of the value of N treated as a longlong (BIGINT) number.\nThis is equivalent to CONV(N,10,16). The inverse of this operation is\nperformed by CONV(HEX(N),16,10).\n\nURL: https://mariadb.com/kb/en/hex/\n\n','MariaDB> SELECT 0x616263, HEX(\'abc\'), UNHEX(HEX(\'abc\'));\n        -> \'abc\', 616263, \'abc\'\nMariaDB> SELECT HEX(255), CONV(HEX(255),16,10);\n        -> \'FF\', 255\n','https://mariadb.com/kb/en/hex/'),(3,'REPLACE',27,'Syntax:\nREPLACE [LOW_PRIORITY | DELAYED]\n    [INTO] tbl_name [(col_name,...)]\n    {VALUES | VALUE} ({expr | DEFAULT},...),(...),...\n\nOr:\n\nREPLACE [LOW_PRIORITY | DELAYED]\n    [INTO] tbl_name\n    SET col_name={expr | DEFAULT}, ...\n\nOr:\n\nREPLACE [LOW_PRIORITY | DELAYED]\n    [INTO] tbl_name [(col_name,...)]\n    SELECT ...\n\nREPLACE works exactly like INSERT, except that if an old row in the\ntable has the same value as a new row for a PRIMARY KEY or a UNIQUE\nindex, the old row is deleted before the new row is inserted. See [HELP\nINSERT].\n\nREPLACE is a MySQL extension to the SQL standard. It either inserts, or\ndeletes and inserts. For another MySQL extension to standard SQL---that\neither inserts or updates---see\nhttps://mariadb.com/kb/en/insert-on-duplicate-key-update/.\n\nNote that unless the table has a PRIMARY KEY or UNIQUE index, using a\nREPLACE statement makes no sense. It becomes equivalent to INSERT,\nbecause there is no index to be used to determine whether a new row\nduplicates another.\n\nValues for all columns are taken from the values specified in the\nREPLACE statement. Any missing columns are set to their default values,\njust as happens for INSERT. You cannot refer to values from the current\nrow and use them in the new row. If you use an assignment such as SET\ncol_name = col_name + 1, the reference to the column name on the right\nhand side is treated as DEFAULT(col_name), so the assignment is\nequivalent to SET col_name = DEFAULT(col_name) + 1.\n\nTo use REPLACE, you must have both the INSERT and DELETE privileges for\nthe table.\n\nURL: https://mariadb.com/kb/en/replace/\n\n','','https://mariadb.com/kb/en/replace/'),(4,'CONTAINS',30,'Contains(g1,g2)\n\nReturns 1 or 0 to indicate whether g1 completely contains g2. This\ntests the opposite relationship as Within().\n\nURL: https://mariadb.com/kb/en/contains/\n\n','','https://mariadb.com/kb/en/contains/'),(5,'SRID',36,'SRID(g)\n\nReturns an integer indicating the Spatial Reference System ID for the\ngeometry value g.\n\nIn MySQL, the SRID value is just an integer associated with the\ngeometry value. All calculations are done assuming Euclidean (planar)\ngeometry.\n\nURL: https://mariadb.com/kb/en/srid/\n\n','MariaDB> SELECT SRID(GeomFromText(\'LineString(1 1,2 2)\',101));\n+-----------------------------------------------+\n| SRID(GeomFromText(\'LineString(1 1,2 2)\',101)) |\n+-----------------------------------------------+\n|                                           101 |\n+-----------------------------------------------+\n','https://mariadb.com/kb/en/srid/'),(6,'CURRENT_TIMESTAMP',31,'Syntax:\nCURRENT_TIMESTAMP, CURRENT_TIMESTAMP()\n\nCURRENT_TIMESTAMP and CURRENT_TIMESTAMP() are synonyms for NOW().\n\nURL: https://mariadb.com/kb/en/current_timestamp/\n\n','','https://mariadb.com/kb/en/current_timestamp/'),(7,'SHOW CONTRIBUTORS',26,'Syntax:\nSHOW CONTRIBUTORS\n\nThe SHOW CONTRIBUTORS statement displays information about the people\nwho contribute to MySQL source or to causes that we support. For each\ncontributor, it displays Name, Location, and Comment values.\n\nURL: https://mariadb.com/kb/en/show-contributors/\n\n','','https://mariadb.com/kb/en/show-contributors/'),(8,'VARIANCE',16,'Syntax:\nVARIANCE(expr)\n\nReturns the population standard variance of expr. This is an extension\nto standard SQL. The standard SQL function VAR_POP() can be used\ninstead.\n\nVARIANCE() returns NULL if there were no matching rows.\n\nURL: https://mariadb.com/kb/en/variance/\n\n','','https://mariadb.com/kb/en/variance/'),(9,'DROP SERVER',39,'Syntax:\nDROP SERVER [ IF EXISTS ] server_name\n\nDrops the server definition for the server named server_name. The\ncorresponding row within the mysql.servers table will be deleted. This\nstatement requires the SUPER privilege.\n\nDropping a server for a table does not affect any FEDERATED tables that\nused this connection information when they were created. See [HELP\nCREATE SERVER].\n\nURL: https://mariadb.com/kb/en/drop-server/\n\n','','https://mariadb.com/kb/en/drop-server/'),(10,'SHOW AUTHORS',26,'Syntax:\nSHOW AUTHORS\n\nThe SHOW AUTHORS statement displays information about the people who\nwork on MySQL. For each author, it displays Name, Location, and Comment\nvalues.\n\nURL: https://mariadb.com/kb/en/show-authors/\n\n','','https://mariadb.com/kb/en/show-authors/'),(11,'VAR_SAMP',16,'Syntax:\nVAR_SAMP(expr)\n\nReturns the sample variance of expr. That is, the denominator is the\nnumber of rows minus one.\n\nVAR_SAMP() returns NULL if there were no matching rows.\n\nURL: https://mariadb.com/kb/en/var_samp/\n\n','','https://mariadb.com/kb/en/var_samp/'),(12,'CONCAT',37,'Syntax:\nCONCAT(str1,str2,...)\n\nReturns the string that results from concatenating the arguments. May\nhave one or more arguments. If all arguments are nonbinary strings, the\nresult is a nonbinary string. If the arguments include any binary\nstrings, the result is a binary string. A numeric argument is converted\nto its equivalent string form. This is a nonbinary string as of MySQL\n5.5.3. Before 5.5.3, it is a binary string; to to avoid that and\nproduce a nonbinary string, you can use an explicit type cast, as in\nthis example:\n\nSELECT CONCAT(CAST(int_col AS CHAR), char_col);\n\nCONCAT() returns NULL if any argument is NULL.\n\nURL: https://mariadb.com/kb/en/concat/\n\n','MariaDB> SELECT CONCAT(\'My\', \'S\', \'QL\');\n        -> \'MySQL\'\nMariaDB> SELECT CONCAT(\'My\', NULL, \'QL\');\n        -> NULL\nMariaDB> SELECT CONCAT(14.3);\n        -> \'14.3\'\n','https://mariadb.com/kb/en/concat/'),(13,'GEOMETRY HIERARCHY',34,'Geometry is the base class. It is an abstract class. The instantiable\nsubclasses of Geometry are restricted to zero-, one-, and\ntwo-dimensional geometric objects that exist in two-dimensional\ncoordinate space. All instantiable geometry classes are defined so that\nvalid instances of a geometry class are topologically closed (that is,\nall defined geometries include their boundary).\n\nThe base Geometry class has subclasses for Point, Curve, Surface, and\nGeometryCollection:\n\no Point represents zero-dimensional objects.\n\no Curve represents one-dimensional objects, and has subclass\n  LineString, with sub-subclasses Line and LinearRing.\n\no Surface is designed for two-dimensional objects and has subclass\n  Polygon.\n\no GeometryCollection has specialized zero-, one-, and two-dimensional\n  collection classes named MultiPoint, MultiLineString, and\n  MultiPolygon for modeling geometries corresponding to collections of\n  Points, LineStrings, and Polygons, respectively. MultiCurve and\n  MultiSurface are introduced as abstract superclasses that generalize\n  the collection interfaces to handle Curves and Surfaces.\n\nGeometry, Curve, Surface, MultiCurve, and MultiSurface are defined as\nnoninstantiable classes. They define a common set of methods for their\nsubclasses and are included for extensibility.\n\nPoint, LineString, Polygon, GeometryCollection, MultiPoint,\nMultiLineString, and MultiPolygon are instantiable classes.\n\nURL: https://mariadb.com/kb/en/geometry-hierarchy/\n\n','','https://mariadb.com/kb/en/geometry-hierarchy/'),(14,'CHAR FUNCTION',37,'Syntax:\nCHAR(N,... [USING charset_name])\n\nCHAR() interprets each argument N as an integer and returns a string\nconsisting of the characters given by the code values of those\nintegers. NULL values are skipped.\nBy default, CHAR() returns a binary string. To produce a string in a\ngiven character set, use the optional USING clause:\n\nMariaDB> SELECT CHARSET(CHAR(0x65)), CHARSET(CHAR(0x65 USING utf8));\n+---------------------+--------------------------------+\n| CHARSET(CHAR(0x65)) | CHARSET(CHAR(0x65 USING utf8)) |\n+---------------------+--------------------------------+\n| binary              | utf8                           |\n+---------------------+--------------------------------+\n\nIf USING is given and the result string is illegal for the given\ncharacter set, a warning is issued. Also, if strict SQL mode is\nenabled, the result from CHAR() becomes NULL.\n\nURL: https://mariadb.com/kb/en/char-function/\n\n','MariaDB> SELECT CHAR(77,121,83,81,\'76\');\n        -> \'MySQL\'\nMariaDB> SELECT CHAR(77,77.3,\'77.3\');\n        -> \'MMM\'\n','https://mariadb.com/kb/en/char-function/'),(15,'DATETIME',22,'DATETIME\n\nA date and time combination. The supported range is \'1000-01-01\n00:00:00\' to \'9999-12-31 23:59:59\'. MySQL displays DATETIME values in\n\'YYYY-MM-DD HH:MM:SS\' format, but permits assignment of values to\nDATETIME columns using either strings or numbers.\n\nURL: https://mariadb.com/kb/en/datetime/\n\n','','https://mariadb.com/kb/en/datetime/'),(16,'SHOW CREATE TRIGGER',26,'Syntax:\nSHOW CREATE TRIGGER trigger_name\n\nThis statement shows a CREATE TRIGGER statement that creates the given\ntrigger.\n\nURL: https://mariadb.com/kb/en/show-create-trigger/\n\n','','https://mariadb.com/kb/en/show-create-trigger/'),(17,'SHOW CREATE PROCEDURE',26,'Syntax:\nSHOW CREATE PROCEDURE proc_name\n\nThis statement is a MySQL extension. It returns the exact string that\ncan be used to re-create the named stored procedure. A similar\nstatement, SHOW CREATE FUNCTION, displays information about stored\nfunctions (see [HELP SHOW CREATE FUNCTION]).\n\nBoth statements require that you be the owner of the routine or have\nSELECT access to the mysql.proc table. If you do not have privileges\nfor the routine itself, the value displayed for the Create Procedure or\nCreate Function field will be NULL.\n\nURL: https://mariadb.com/kb/en/show-create-procedure/\n\n','MariaDB> SHOW CREATE PROCEDURE test.simpleproc\\G\n*************************** 1. row ***************************\n           Procedure: simpleproc\n            sql_mode:\n    Create Procedure: CREATE PROCEDURE `simpleproc`(OUT param1 INT)\n                      BEGIN\n                      SELECT COUNT(*) INTO param1 FROM t;\n                      END\ncharacter_set_client: latin1\ncollation_connection: latin1_swedish_ci\n  Database Collation: latin1_swedish_ci\n\nMariaDB> SHOW CREATE FUNCTION test.hello\\G\n*************************** 1. row ***************************\n            Function: hello\n            sql_mode:\n     Create Function: CREATE FUNCTION `hello`(s CHAR(20))\n                      RETURNS CHAR(50)\n                      RETURN CONCAT(\'Hello, \',s,\'!\')\ncharacter_set_client: latin1\ncollation_connection: latin1_swedish_ci\n  Database Collation: latin1_swedish_ci\n','https://mariadb.com/kb/en/show-create-procedure/'),(18,'OPEN',23,'Syntax:\nOPEN cursor_name\n\nThis statement opens a previously declared cursor. For an example, see\nhttps://mariadb.com/kb/en/cursor-overview/.\n\nURL: https://mariadb.com/kb/en/open/\n\n','','https://mariadb.com/kb/en/open/'),(19,'INTEGER',22,'INTEGER[(M)] [UNSIGNED] [ZEROFILL]\n\nThis type is a synonym for INT.\n\nURL: https://mariadb.com/kb/en/sql_language-data_types-int\n\n','','https://mariadb.com/kb/en/sql_language-data_types-int'),(20,'LOWER',37,'Syntax:\nLOWER(str)\n\nReturns the string str with all characters changed to lowercase\naccording to the current character set mapping. The default is latin1\n(cp1252 West European).\n\nMariaDB> SELECT LOWER(\'QUADRATICALLY\');\n        -> \'quadratically\'\n\nLOWER() (and UPPER()) are ineffective when applied to binary strings\n(BINARY, VARBINARY, BLOB). To perform lettercase conversion, convert\nthe string to a nonbinary string:\n\nMariaDB> SET @str = BINARY \'New York\';\nMariaDB> SELECT LOWER(@str), LOWER(CONVERT(@str USING latin1));\n+-------------+-----------------------------------+\n| LOWER(@str) | LOWER(CONVERT(@str USING latin1)) |\n+-------------+-----------------------------------+\n| New York    | new york                          |\n+-------------+-----------------------------------+\n\nURL: https://mariadb.com/kb/en/lower/\n\n','','https://mariadb.com/kb/en/lower/'),(21,'SHOW COLUMNS',26,'Syntax:\nSHOW [FULL] COLUMNS {FROM | IN} tbl_name [{FROM | IN} db_name]\n    [LIKE \'pattern\' | WHERE expr]\n\nSHOW COLUMNS displays information about the columns in a given table.\nIt also works for views. The LIKE clause, if present, indicates which\ncolumn names to match. The WHERE clause can be given to select rows\nusing more general conditions, as discussed in\nhttps://mariadb.com/kb/en/extended-show/.\n\nSHOW COLUMNS displays information only for those columns for which you\nhave some privilege.\n\nMariaDB> SHOW COLUMNS FROM City;\n+------------+----------+------+-----+---------+----------------+\n| Field      | Type     | Null | Key | Default | Extra          |\n+------------+----------+------+-----+---------+----------------+\n| Id         | int(11)  | NO   | PRI | NULL    | auto_increment |\n| Name       | char(35) | NO   |     |         |                |\n| Country    | char(3)  | NO   | UNI |         |                |\n| District   | char(20) | YES  | MUL |         |                |\n| Population | int(11)  | NO   |     | 0       |                |\n+------------+----------+------+-----+---------+----------------+\n5 rows in set (0.00 sec)\n\nIf the data types differ from what you expect them to be based on a\nCREATE TABLE statement, note that MySQL sometimes changes data types\nwhen you create or alter a table. The conditions under which this\noccurs are described in\nhttps://mariadb.com/kb/en/silent-column-changes/.\n\nThe FULL keyword causes the output to include the column collation and\ncomments, as well as the privileges you have for each column.\n\nYou can use db_name.tbl_name as an alternative to the tbl_name FROM\ndb_name syntax. In other words, these two statements are equivalent:\n\nMariaDB> SHOW COLUMNS FROM mytable FROM mydb;\nMariaDB> SHOW COLUMNS FROM mydb.mytable;\n\nSHOW COLUMNS displays the following values for each table column:\n\nField indicates the column name.\n\nType indicates the column data type.\n\nCollation indicates the collation for nonbinary string columns, or NULL\nfor other columns. This value is displayed only if you use the FULL\nkeyword.\n\nThe Null field contains YES if NULL values can be stored in the column,\nNO if not.\n\nThe Key field indicates whether the column is indexed:\n\no If Key is empty, the column either is not indexed or is indexed only\n  as a secondary column in a multiple-column, nonunique index.\n\no If Key is PRI, the column is a PRIMARY KEY or is one of the columns\n  in a multiple-column PRIMARY KEY.\n\no If Key is UNI, the column is the first column of a UNIQUE index. (A\n  UNIQUE index permits multiple NULL values, but you can tell whether\n  the column permits NULL by checking the Null field.)\n\no If Key is MUL, the column is the first column of a nonunique index in\n  which multiple occurrences of a given value are permitted within the\n  column.\n\nIf more than one of the Key values applies to a given column of a\ntable, Key displays the one with the highest priority, in the order\nPRI, UNI, MUL.\n\nA UNIQUE index may be displayed as PRI if it cannot contain NULL values\nand there is no PRIMARY KEY in the table. A UNIQUE index may display as\nMUL if several columns form a composite UNIQUE index; although the\ncombination of the columns is unique, each column can still hold\nmultiple occurrences of a given value.\n\nThe Default field indicates the default value that is assigned to the\ncolumn. This is NULL if the column has an explicit default of NULL, or\nif the column definition has no DEFAULT clause.\n\nThe Extra field contains any additional information that is available\nabout a given column. The value is nonempty in these cases:\nauto_increment for columns that have the AUTO_INCREMENT attribute; on\nupdate CURRENT_TIMESTAMP for TIMESTAMP columns that have the ON UPDATE\nCURRENT_TIMESTAMP attribute.\n\nPrivileges indicates the privileges you have for the column. This value\nis displayed only if you use the FULL keyword.\n\nComment indicates any comment the column has. This value is displayed\nonly if you use the FULL keyword.\n\nSHOW FIELDS is a synonym for SHOW COLUMNS. You can also list a table\'s\ncolumns with the mysqlshow db_name tbl_name command.\n\nThe DESCRIBE statement provides information similar to SHOW COLUMNS.\nSee [HELP DESCRIBE].\n\nThe SHOW CREATE TABLE, SHOW TABLE STATUS, and SHOW INDEX statements\nalso provide information about tables. See [HELP SHOW].\n\nURL: https://mariadb.com/kb/en/show-columns/\n\n','','https://mariadb.com/kb/en/show-columns/'),(22,'CREATE TRIGGER',39,'Syntax:\nCREATE\n    [DEFINER = { user | CURRENT_USER }]\n    TRIGGER trigger_name trigger_time trigger_event\n    ON tbl_name FOR EACH ROW trigger_body\n\nThis statement creates a new trigger. A trigger is a named database\nobject that is associated with a table, and that activates when a\nparticular event occurs for the table. The trigger becomes associated\nwith the table named tbl_name, which must refer to a permanent table.\nYou cannot associate a trigger with a TEMPORARY table or a view.\n\nCREATE TRIGGER requires the TRIGGER privilege for the table associated\nwith the trigger. The statement might also require the SUPER privilege,\ndepending on the DEFINER value, as described later in this section. If\nbinary logging is enabled, CREATE TRIGGER might require the SUPER\nprivilege, as described in\nhttps://mariadb.com/kb/en/binary-logging-of-stored-routines/.\n\nThe DEFINER clause determines the security context to be used when\nchecking access privileges at trigger activation time. See later in\nthis section for more information.\n\ntrigger_time is the trigger action time. It can be BEFORE or AFTER to\nindicate that the trigger activates before or after each row to be\nmodified.\n\ntrigger_event indicates the kind of statement that activates the\ntrigger. The trigger_event can be one of the following:\n\no INSERT: The trigger is activated whenever a new row is inserted into\n  the table; for example, through INSERT, LOAD DATA, and REPLACE\n  statements.\n\no UPDATE: The trigger is activated whenever a row is modified; for\n  example, through UPDATE statements.\n\no DELETE: The trigger is activated whenever a row is deleted from the\n  table; for example, through DELETE and REPLACE statements. However,\n  DROP TABLE and TRUNCATE TABLE statements on the table do not activate\n  this trigger, because they do not use DELETE. Dropping a partition\n  does not activate DELETE triggers, either. See [HELP TRUNCATE TABLE].\n\nURL: https://mariadb.com/kb/en/create-trigger/\n\n','','https://mariadb.com/kb/en/create-trigger/'),(23,'MONTH',31,'Syntax:\nMONTH(date)\n\nReturns the month for date, in the range 1 to 12 for January to\nDecember, or 0 for dates such as \'0000-00-00\' or \'2008-00-00\' that have\na zero month part.\n\nURL: https://mariadb.com/kb/en/month/\n\n','MariaDB> SELECT MONTH(\'2008-02-03\');\n        -> 2\n','https://mariadb.com/kb/en/month/'),(24,'TINYINT',22,'TINYINT[(M)] [UNSIGNED] [ZEROFILL]\n\nA very small integer. The signed range is -128 to 127. The unsigned\nrange is 0 to 255.\n\nURL: https://mariadb.com/kb/en/tinyint/\n\n','','https://mariadb.com/kb/en/tinyint/'),(25,'SHOW TRIGGERS',26,'Syntax:\nSHOW TRIGGERS [{FROM | IN} db_name]\n    [LIKE \'pattern\' | WHERE expr]\n\nSHOW TRIGGERS lists the triggers currently defined for tables in a\ndatabase (the default database unless a FROM clause is given). This\nstatement returns results only for databases and tables for which you\nhave the TRIGGER privilege. The LIKE clause, if present, indicates\nwhich table names to match and causes the statement to display triggers\nfor those tables. The WHERE clause can be given to select rows using\nmore general conditions, as discussed in\nhttps://mariadb.com/kb/en/extended-show/.\n\nFor the trigger ins_sum as defined in\nhttps://mariadb.com/kb/en/triggers/, the output of\nthis statement is as shown here:\n\nMariaDB> SHOW TRIGGERS LIKE \'acc%\'\\G\n*************************** 1. row ***************************\n             Trigger: ins_sum\n               Event: INSERT\n               Table: account\n           Statement: SET @sum = @sum + NEW.amount\n              Timing: BEFORE\n             Created: NULL\n            sql_mode:\n             Definer: myname@localhost\ncharacter_set_client: latin1\ncollation_connection: latin1_swedish_ci\n  Database Collation: latin1_swedish_ci\n\ncharacter_set_client is the session value of the character_set_client\nsystem variable when the trigger was created. collation_connection is\nthe session value of the collation_connection system variable when the\ntrigger was created. Database Collation is the collation of the\ndatabase with which the trigger is associated.\n\nURL: https://mariadb.com/kb/en/show-triggers/\n\n','','https://mariadb.com/kb/en/show-triggers/'),(26,'MASTER_POS_WAIT',14,'Syntax:\nMASTER_POS_WAIT(log_name,log_pos[,timeout])\n\nThis function is useful for control of master/slave synchronization. It\nblocks until the slave has read and applied all updates up to the\nspecified position in the master log. The return value is the number of\nlog events the slave had to wait for to advance to the specified\nposition. The function returns NULL if the slave SQL thread is not\nstarted, the slave\'s master information is not initialized, the\narguments are incorrect, or an error occurs. It returns -1 if the\ntimeout has been exceeded. If the slave SQL thread stops while\nMASTER_POS_WAIT() is waiting, the function returns NULL. If the slave\nis past the specified position, the function returns immediately.\n\nIf a timeout value is specified, MASTER_POS_WAIT() stops waiting when\ntimeout seconds have elapsed. timeout must be greater than 0; a zero or\nnegative timeout means no timeout.\n\nURL: https://mariadb.com/kb/en/master_pos_wait/\n\n','','https://mariadb.com/kb/en/master_pos_wait/'),(27,'REGEXP',37,'Syntax:\nexpr REGEXP pat, expr RLIKE pat\n\nPerforms a pattern match of a string expression expr against a pattern\npat. The pattern can be an extended regular expression. The syntax for\nregular expressions is discussed in\nhttps://mariadb.com/kb/en/regexp/. Returns 1 if expr\nmatches pat; otherwise it returns 0. If either expr or pat is NULL, the\nresult is NULL. RLIKE is a synonym for REGEXP, provided for mSQL\ncompatibility.\n\nThe pattern need not be a literal string. For example, it can be\nspecified as a string expression or table column.\n\n*Note*: Because MySQL uses the C escape syntax in strings (for example,\n\"\\n\" to represent the newline character), you must double any \"\\\" that\nyou use in your REGEXP strings.\n\nREGEXP is not case sensitive, except when used with binary strings.\n\nURL: https://mariadb.com/kb/en/regexp/\n\n','MariaDB> SELECT \'Monty!\' REGEXP \'.*\';\n        -> 1\nMariaDB> SELECT \'new*\\n*line\' REGEXP \'new\\\\*.\\\\*line\';\n        -> 1\nMariaDB> SELECT \'a\' REGEXP \'A\', \'a\' REGEXP BINARY \'A\';\n        -> 1  0\nMariaDB> SELECT \'a\' REGEXP \'^[a-d]\';\n        -> 1\n','https://mariadb.com/kb/en/regexp/'),(28,'IF STATEMENT',23,'Syntax:\nIF search_condition THEN statement_list\n    [ELSEIF search_condition THEN statement_list] ...\n    [ELSE statement_list]\nEND IF\n\nThe IF statement for stored programs implements a basic conditional\nconstruct.\n\n*Note*: There is also an IF() function, which differs from the IF\nstatement described here. See\nhttps://mariadb.com/kb/en/if-function/. The\nIF statement can have THEN, ELSE, and ELSEIF clauses, and it is\nterminated with END IF.\n\nIf the search_condition evaluates to true, the corresponding THEN or\nELSEIF clause statement_list executes. If no search_condition matches,\nthe ELSE clause statement_list executes.\n\nEach statement_list consists of one or more SQL statements; an empty\nstatement_list is not permitted.\n\nURL: https://mariadb.com/kb/en/if-statement/\n\n','','https://mariadb.com/kb/en/if-statement/'),(29,'^',19,'Syntax:\n^\n\nBitwise XOR:\n\nURL: https://mariadb.com/kb/en/bitwise-xor/\n\n','MariaDB> SELECT 1 ^ 1;\n        -> 0\nMariaDB> SELECT 1 ^ 0;\n        -> 1\nMariaDB> SELECT 11 ^ 3;\n        -> 8\n','https://mariadb.com/kb/en/bitwise-xor/'),(30,'DROP VIEW',39,'Syntax:\nDROP VIEW [IF EXISTS]\n    view_name [, view_name] ...\n    [RESTRICT | CASCADE]\n\nDROP VIEW removes one or more views. You must have the DROP privilege\nfor each view. If any of the views named in the argument list do not\nexist, MySQL returns an error indicating by name which nonexisting\nviews it was unable to drop, but it also drops all of the views in the\nlist that do exist.\n\nThe IF EXISTS clause prevents an error from occurring for views that\ndon\'t exist. When this clause is given, a NOTE is generated for each\nnonexistent view. See [HELP SHOW WARNINGS].\n\nRESTRICT and CASCADE, if given, are parsed and ignored.\n\nURL: https://mariadb.com/kb/en/drop-view/\n\n','','https://mariadb.com/kb/en/drop-view/'),(31,'WITHIN',30,'Within(g1,g2)\n\nReturns 1 or 0 to indicate whether g1 is spatially within g2. This\ntests the opposite relationship as Contains().\n\nURL: https://mariadb.com/kb/en/within/\n\n','','https://mariadb.com/kb/en/within/'),(32,'WEEK',31,'Syntax:\nWEEK(date[,mode])\n\nThis function returns the week number for date. The two-argument form\nof WEEK() enables you to specify whether the week starts on Sunday or\nMonday and whether the return value should be in the range from 0 to 53\nor from 1 to 53. If the mode argument is omitted, the value of the\ndefault_week_format system variable is used. See\nhttps://mariadb.com/kb/en/server-system-variables/.\n\nURL: https://mariadb.com/kb/en/week/\n\n','MariaDB> SELECT WEEK(\'2008-02-20\');\n        -> 7\nMariaDB> SELECT WEEK(\'2008-02-20\',0);\n        -> 7\nMariaDB> SELECT WEEK(\'2008-02-20\',1);\n        -> 8\nMariaDB> SELECT WEEK(\'2008-12-31\',1);\n        -> 53\n','https://mariadb.com/kb/en/week/'),(33,'SHOW PLUGINS',26,'Syntax:\nSHOW PLUGINS\n\nSHOW PLUGINS displays information about server plugins. Plugin\ninformation is also available in the INFORMATION_SCHEMA.PLUGINS table.\nSee https://mariadb.com/kb/en/information_schemaplugins-table/.\n\nExample of SHOW PLUGINS output:\n\nMariaDB> SHOW PLUGINS\\G\n*************************** 1. row ***************************\n   Name: binlog\n Status: ACTIVE\n   Type: STORAGE ENGINE\nLibrary: NULL\nLicense: GPL\n*************************** 2. row ***************************\n   Name: CSV\n Status: ACTIVE\n   Type: STORAGE ENGINE\nLibrary: NULL\nLicense: GPL\n*************************** 3. row ***************************\n   Name: MEMORY\n Status: ACTIVE\n   Type: STORAGE ENGINE\nLibrary: NULL\nLicense: GPL\n*************************** 4. row ***************************\n   Name: MyISAM\n Status: ACTIVE\n   Type: STORAGE ENGINE\nLibrary: NULL\nLicense: GPL\n...\n\nURL: https://mariadb.com/kb/en/show-plugins/\n\n','','https://mariadb.com/kb/en/show-plugins/'),(34,'DROP FUNCTION UDF',21,'Syntax:\nDROP FUNCTION function_name\n\nThis statement drops the user-defined function (UDF) named\nfunction_name.\n\nTo drop a function, you must have the DELETE privilege for the mysql\ndatabase. This is because DROP FUNCTION removes a row from the\nmysql.func system table that records the function\'s name, type, and\nshared library name.\n\nURL: https://mariadb.com/kb/en/drop-function-udf/\n\n','','https://mariadb.com/kb/en/drop-function-udf/'),(35,'PREPARE',8,'Syntax:\nPREPARE stmt_name FROM preparable_stmt\n\nThe PREPARE statement prepares a statement and assigns it a name,\nstmt_name, by which to refer to the statement later. Statement names\nare not case sensitive. preparable_stmt is either a string literal or a\nuser variable that contains the text of the statement. The text must\nrepresent a single SQL statement, not multiple statements. Within the\nstatement, \"?\" characters can be used as parameter markers to indicate\nwhere data values are to be bound to the query later when you execute\nit. The \"?\" characters should not be enclosed within quotation marks,\neven if you intend to bind them to string values. Parameter markers can\nbe used only where data values should appear, not for SQL keywords,\nidentifiers, and so forth.\n\nIf a prepared statement with the given name already exists, it is\ndeallocated implicitly before the new statement is prepared. This means\nthat if the new statement contains an error and cannot be prepared, an\nerror is returned and no statement with the given name exists.\n\nA prepared statement is executed with EXECUTE and released with\nDEALLOCATE PREPARE.\n\nThe scope of a prepared statement is the session within which it is\ncreated. Other sessions cannot see it.\n\nURL: https://mariadb.com/kb/en/prepare-statement/\n\n','','https://mariadb.com/kb/en/prepare-statement/'),(36,'LOCK',8,'Syntax:\nLOCK TABLES\n    tbl_name [[AS] alias] lock_type\n    [, tbl_name [[AS] alias] lock_type] ...\n\nlock_type:\n    READ [LOCAL]\n  | [LOW_PRIORITY] WRITE\n\nUNLOCK TABLES\n\nMySQL enables client sessions to acquire table locks explicitly for the\npurpose of cooperating with other sessions for access to tables, or to\nprevent other sessions from modifying tables during periods when a\nsession requires exclusive access to them. A session can acquire or\nrelease locks only for itself. One session cannot acquire locks for\nanother session or release locks held by another session.\n\nLocks may be used to emulate transactions or to get more speed when\nupdating tables. This is explained in more detail later in this\nsection.\n\nLOCK TABLES explicitly acquires table locks for the current client\nsession. Table locks can be acquired for base tables or views. You must\nhave the LOCK TABLES privilege, and the SELECT privilege for each\nobject to be locked.\n\nFor view locking, LOCK TABLES adds all base tables used in the view to\nthe set of tables to be locked and locks them automatically. If you\nlock a table explicitly with LOCK TABLES, any tables used in triggers\nare also locked implicitly, as described in\nhttps://mariadb.com/kb/en/triggers-and-implicit-locks/.\n\nUNLOCK TABLES explicitly releases any table locks held by the current\nsession. LOCK TABLES implicitly releases any table locks held by the\ncurrent session before acquiring new locks.\n\nAnother use for UNLOCK TABLES is to release the global read lock\nacquired with the FLUSH TABLES WITH READ LOCK statement, which enables\nyou to lock all tables in all databases. See [HELP FLUSH]. (This is a\nvery convenient way to get backups if you have a file system such as\nVeritas that can take snapshots in time.)\n\nURL: https://mariadb.com/kb/en/transactions-lock/\n\n','','https://mariadb.com/kb/en/transactions-lock/'),(37,'UPDATEXML',37,'Syntax:\nUpdateXML(xml_target, xpath_expr, new_xml)\n\nThis function replaces a single portion of a given fragment of XML\nmarkup xml_target with a new XML fragment new_xml, and then returns the\nchanged XML. The portion of xml_target that is replaced matches an\nXPath expression xpath_expr supplied by the user. In MySQL 5.5, the\nXPath expression can contain at most 127 characters. (This limitation\nis lifted in MySQL 5.6.)\n\nIf no expression matching xpath_expr is found, or if multiple matches\nare found, the function returns the original xml_target XML fragment.\nAll three arguments should be strings.\n\nURL: https://mariadb.com/kb/en/updatexml/\n\n','MariaDB> SELECT\n    ->   UpdateXML(\'<a><b>ccc</b><d></d></a>\', \'/a\', \'<e>fff</e>\') AS val1,\n    ->   UpdateXML(\'<a><b>ccc</b><d></d></a>\', \'/b\', \'<e>fff</e>\') AS val2,\n    ->   UpdateXML(\'<a><b>ccc</b><d></d></a>\', \'//b\', \'<e>fff</e>\') AS val3,\n    ->   UpdateXML(\'<a><b>ccc</b><d></d></a>\', \'/a/d\', \'<e>fff</e>\') AS val4,\n    ->   UpdateXML(\'<a><d></d><b>ccc</b><d></d></a>\', \'/a/d\', \'<e>fff</e>\') AS val5\n    -> \\G\n\n*************************** 1. row ***************************\nval1: <e>fff</e>\nval2: <a><b>ccc</b><d></d></a>\nval3: <a><e>fff</e><d></d></a>\nval4: <a><b>ccc</b><e>fff</e></a>\nval5: <a><d></d><b>ccc</b><d></d></a>\n','https://mariadb.com/kb/en/updatexml/'),(38,'RESET SLAVE',8,'Syntax:\nRESET SLAVE [ALL]\n\nRESET SLAVE makes the slave forget its replication position in the\nmaster\'s binary log. This statement is meant to be used for a clean\nstart: It deletes the master.info and relay-log.info files, all the\nrelay log files, and starts a new relay log file. To use RESET SLAVE,\nthe slave replication threads must be stopped (use STOP SLAVE if\nnecessary).\n\n*Note*: All relay log files are deleted, even if they have not been\ncompletely executed by the slave SQL thread. (This is a condition\nlikely to exist on a replication slave if you have issued a STOP SLAVE\nstatement or if the slave is highly loaded.)\n\nIn MySQL 5.5 (unlike the case in MySQL 5.1 and earlier), RESET SLAVE\ndoes not change any replication connection parameters such as master\nhost, master port, master user, or master password, which are retained\nin memory. This means that START SLAVE can be issued without requiring\na CHANGE MASTER TO statement following RESET SLAVE.\n\nIn MySQL 5.5.16 and later, you can use RESET SLAVE ALL to reset these\nconnection parameters (Bug #11809016). Connection parameters are also\nreset if the slave mysqld is shut down.\n\nIf the slave SQL thread was in the middle of replicating temporary\ntables when it was stopped, and RESET SLAVE is issued, these replicated\ntemporary tables are deleted on the slave.\n\nURL: https://mariadb.com/kb/en/reset-slave-connection_name/\n\n','','https://mariadb.com/kb/en/reset-slave-connection_name/'),(39,'SHOW BINARY LOGS',26,'Syntax:\nSHOW BINARY LOGS\nSHOW MASTER LOGS\n\nLists the binary log files on the server. This statement is used as\npart of the procedure described in [HELP PURGE BINARY LOGS], that shows\nhow to determine which logs can be purged.\n\nMariaDB> SHOW BINARY LOGS;\n+---------------+-----------+\n| Log_name      | File_size |\n+---------------+-----------+\n| binlog.000015 |    724935 |\n| binlog.000016 |    733481 |\n+---------------+-----------+\n\nURL: https://mariadb.com/kb/en/show-binary-logs/\n\n','','https://mariadb.com/kb/en/show-binary-logs/'),(40,'POLYGON',24,'Polygon(ls1,ls2,...)\n\nConstructs a Polygon value from a number of LineString or WKB\nLineString arguments. If any argument does not represent a LinearRing\n(that is, not a closed and simple LineString), the return value is\nNULL.\n\nURL: https://mariadb.com/kb/en/polygon/\n\n','','https://mariadb.com/kb/en/polygon/'),(41,'MINUTE',31,'Syntax:\nMINUTE(time)\n\nReturns the minute for time, in the range 0 to 59.\n\nURL: https://mariadb.com/kb/en/minute/\n\n','MariaDB> SELECT MINUTE(\'2008-02-03 10:05:03\');\n        -> 5\n','https://mariadb.com/kb/en/minute/'),(42,'DAY',31,'Syntax:\nDAY(date)\n\nDAY() is a synonym for DAYOFMONTH().\n\nURL: https://mariadb.com/kb/en/day/\n\n','','https://mariadb.com/kb/en/day/'),(43,'MID',37,'Syntax:\nMID(str,pos,len)\n\nMID(str,pos,len) is a synonym for SUBSTRING(str,pos,len).\n\nURL: https://mariadb.com/kb/en/mid/\n\n','','https://mariadb.com/kb/en/mid/'),(44,'UUID',14,'Syntax:\nUUID()\n\nReturns a Universal Unique Identifier (UUID) generated according to\n\"DCE 1.1: Remote Procedure Call\" (Appendix A) CAE (Common Applications\nEnvironment) Specifications published by The Open Group in October 1997\n(Document Number C706,\nhttp://www.opengroup.org/public/pubs/catalog/c706.htm).\n\nA UUID is designed as a number that is globally unique in space and\ntime. Two calls to UUID() are expected to generate two different\nvalues, even if these calls are performed on two separate computers\nthat are not connected to each other.\n\nA UUID is a 128-bit number represented by a utf8 string of five\nhexadecimal numbers in aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee format:\n\no The first three numbers are generated from a timestamp.\n\no The fourth number preserves temporal uniqueness in case the timestamp\n  value loses monotonicity (for example, due to daylight saving time).\n\no The fifth number is an IEEE 802 node number that provides spatial\n  uniqueness. A random number is substituted if the latter is not\n  available (for example, because the host computer has no Ethernet\n  card, or we do not know how to find the hardware address of an\n  interface on your operating system). In this case, spatial uniqueness\n  cannot be guaranteed. Nevertheless, a collision should have very low\n  probability.\n\n  Currently, the MAC address of an interface is taken into account only\n  on FreeBSD and Linux. On other operating systems, MySQL uses a\n  randomly generated 48-bit number.\n\nURL: https://mariadb.com/kb/en/uuid/\n\n','MariaDB> SELECT UUID();\n        -> \'6ccd780c-baba-1026-9564-0040f4311e29\'\n','https://mariadb.com/kb/en/uuid/'),(45,'LINESTRING',24,'LineString(pt1,pt2,...)\n\nConstructs a LineString value from a number of Point or WKB Point\narguments. If the number of arguments is less than two, the return\nvalue is NULL.\n\nURL: https://mariadb.com/kb/en/linestring/\n\n','','https://mariadb.com/kb/en/linestring/'),(46,'SLEEP',14,'Syntax:\nSLEEP(duration)\n\nSleeps (pauses) for the number of seconds given by the duration\nargument, then returns 0. If SLEEP() is interrupted, it returns 1. The\nduration may have a fractional part given in microseconds.\n\nURL: https://mariadb.com/kb/en/sleep/\n\n','','https://mariadb.com/kb/en/sleep/'),(47,'CONNECTION_ID',17,'Syntax:\nCONNECTION_ID()\n\nReturns the connection ID (thread ID) for the connection. Every\nconnection has an ID that is unique among the set of currently\nconnected clients.\n\nURL: https://mariadb.com/kb/en/connection_id/\n\n','MariaDB> SELECT CONNECTION_ID();\n        -> 23786\n','https://mariadb.com/kb/en/connection_id/'),(48,'DELETE',27,'Syntax:\nSingle-table syntax:\n\nDELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name\n    [WHERE where_condition]\n    [ORDER BY ...]\n    [LIMIT row_count]\n\nMultiple-table syntax:\n\nDELETE [LOW_PRIORITY] [QUICK] [IGNORE]\n    tbl_name[.*] [, tbl_name[.*]] ...\n    FROM table_references\n    [WHERE where_condition]\n\nOr:\n\nDELETE [LOW_PRIORITY] [QUICK] [IGNORE]\n    FROM tbl_name[.*] [, tbl_name[.*]] ...\n    USING table_references\n    [WHERE where_condition]\n\nFor the single-table syntax, the DELETE statement deletes rows from\ntbl_name and returns a count of the number of deleted rows. This count\ncan be obtained by calling the ROW_COUNT() function (see\nhttps://mariadb.com/kb/en/information-functions-row_count/). The\nWHERE clause, if given, specifies the conditions that identify which\nrows to delete. With no WHERE clause, all rows are deleted. If the\nORDER BY clause is specified, the rows are deleted in the order that is\nspecified. The LIMIT clause places a limit on the number of rows that\ncan be deleted.\n\nFor the multiple-table syntax, DELETE deletes from each tbl_name the\nrows that satisfy the conditions. In this case, ORDER BY and LIMIT\ncannot be used.\n\nwhere_condition is an expression that evaluates to true for each row to\nbe deleted. It is specified as described in\nhttps://mariadb.com/kb/en/select/.\n\nCurrently, you cannot delete from a table and select from the same\ntable in a subquery.\n\nYou need the DELETE privilege on a table to delete rows from it. You\nneed only the SELECT privilege for any columns that are only read, such\nas those named in the WHERE clause.\n\nAs stated, a DELETE statement with no WHERE clause deletes all rows. A\nfaster way to do this, when you do not need to know the number of\ndeleted rows, is to use TRUNCATE TABLE. However, within a transaction\nor if you have a lock on the table, TRUNCATE TABLE cannot be used\nwhereas DELETE can. See [HELP TRUNCATE TABLE], and [HELP LOCK].\n\nURL: https://mariadb.com/kb/en/delete/\n\n','','https://mariadb.com/kb/en/delete/'),(49,'ROUND',4,'Syntax:\nROUND(X), ROUND(X,D)\n\nRounds the argument X to D decimal places. The rounding algorithm\ndepends on the data type of X. D defaults to 0 if not specified. D can\nbe negative to cause D digits left of the decimal point of the value X\nto become zero.\n\nURL: https://mariadb.com/kb/en/round/\n\n','MariaDB> SELECT ROUND(-1.23);\n        -> -1\nMariaDB> SELECT ROUND(-1.58);\n        -> -2\nMariaDB> SELECT ROUND(1.58);\n        -> 2\nMariaDB> SELECT ROUND(1.298, 1);\n        -> 1.3\nMariaDB> SELECT ROUND(1.298, 0);\n        -> 1\nMariaDB> SELECT ROUND(23.298, -1);\n        -> 20\n','https://mariadb.com/kb/en/round/'),(50,'NULLIF',7,'Syntax:\nNULLIF(expr1,expr2)\n\nReturns NULL if expr1 = expr2 is true, otherwise returns expr1. This is\nthe same as CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END.\n\nURL: https://mariadb.com/kb/en/nullif/\n\n','MariaDB> SELECT NULLIF(1,1);\n        -> NULL\nMariaDB> SELECT NULLIF(1,2);\n        -> 1\n','https://mariadb.com/kb/en/nullif/'),(51,'CLOSE',23,'Syntax:\nCLOSE cursor_name\n\nThis statement closes a previously opened cursor. For an example, see\nhttps://mariadb.com/kb/en/cursor-overview/.\n\nAn error occurs if the cursor is not open.\n\nIf not closed explicitly, a cursor is closed at the end of the BEGIN\n... END block in which it was declared.\n\nURL: https://mariadb.com/kb/en/close/\n\n','','https://mariadb.com/kb/en/close/'),(52,'STOP SLAVE',8,'Syntax:\nSTOP SLAVE [thread_types]\n\nthread_types:\n    [thread_type [, thread_type] ... ]\n\nthread_type: IO_THREAD | SQL_THREAD\n\nStops the slave threads. STOP SLAVE requires the SUPER privilege.\nRecommended best practice is to execute STOP SLAVE on the slave before\nstopping the slave server (see\nhttp://dev.mysql.com/doc/refman/5.5/en/server-shutdown.html, for more\ninformation).\n\nWhen using the row-based logging format: You should execute STOP SLAVE\non the slave prior to shutting down the slave server if you are\nreplicating any tables that use a nontransactional storage engine (see\nthe Note later in this section). In MySQL 5.5.9 and later, you can also\nuse STOP SLAVE SQL_THREAD for this purpose.\n\nLike START SLAVE, this statement may be used with the IO_THREAD and\nSQL_THREAD options to name the thread or threads to be stopped.\n\n*Note*: In MySQL 5.5, STOP SLAVE waits until the current replication\nevent group affecting one or more non-transactional tables has finished\nexecuting (if there is any such replication group), or until the user\nissues a KILL QUERY or KILL CONNECTION statement. (Bug #319, Bug\n#38205)\n\nURL: https://mariadb.com/kb/en/stop-slave/\n\n','','https://mariadb.com/kb/en/stop-slave/'),(53,'TIMEDIFF',31,'Syntax:\nTIMEDIFF(expr1,expr2)\n\nTIMEDIFF() returns expr1 - expr2 expressed as a time value. expr1 and\nexpr2 are time or date-and-time expressions, but both must be of the\nsame type.\n\nThe result returned by TIMEDIFF() is limited to the range allowed for\nTIME values. Alternatively, you can use either of the functions\nTIMESTAMPDIFF() and UNIX_TIMESTAMP(), both of which return integers.\n\nURL: https://mariadb.com/kb/en/timediff/\n\n','MariaDB> SELECT TIMEDIFF(\'2000:01:01 00:00:00\',\n    ->                 \'2000:01:01 00:00:00.000001\');\n        -> \'-00:00:00.000001\'\nMariaDB> SELECT TIMEDIFF(\'2008-12-31 23:59:59.000001\',\n    ->                 \'2008-12-30 01:01:01.000002\');\n        -> \'46:58:57.999999\'\n','https://mariadb.com/kb/en/timediff/'),(54,'REPLACE FUNCTION',37,'Syntax:\nREPLACE(str,from_str,to_str)\n\nReturns the string str with all occurrences of the string from_str\nreplaced by the string to_str. REPLACE() performs a case-sensitive\nmatch when searching for from_str.\n\nURL: https://mariadb.com/kb/en/replace-function/\n\n','MariaDB> SELECT REPLACE(\'www.mariadb.org\', \'w\', \'Ww\');\n        -> \'WwWwWw.mariadb.org\'\n','https://mariadb.com/kb/en/replace-function/'),(55,'USE',28,'Syntax:\nUSE db_name\n\nThe USE db_name statement tells MySQL to use the db_name database as\nthe default (current) database for subsequent statements. The database\nremains the default until the end of the session or another USE\nstatement is issued:\n\nUSE db1;\nSELECT COUNT(*) FROM mytable;   # selects from db1.mytable\nUSE db2;\nSELECT COUNT(*) FROM mytable;   # selects from db2.mytable\n\nURL: https://mariadb.com/kb/en/use/\n\n','','https://mariadb.com/kb/en/use/'),(56,'LINEFROMTEXT',3,'LineFromText(wkt[,srid]), LineStringFromText(wkt[,srid])\n\nConstructs a LINESTRING value using its WKT representation and SRID.\n\nURL: https://mariadb.com/kb/en/linefromtext/\n\n','','https://mariadb.com/kb/en/linefromtext/'),(57,'CASE OPERATOR',7,'Syntax:\nCASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN\nresult ...] [ELSE result] END\n\nCASE WHEN [condition] THEN result [WHEN [condition] THEN result ...]\n[ELSE result] END\n\nThe first version returns the result where value=compare_value. The\nsecond version returns the result for the first condition that is true.\nIf there was no matching result value, the result after ELSE is\nreturned, or NULL if there is no ELSE part.\n\nURL: https://mariadb.com/kb/en/case-operator/\n\n','MariaDB> SELECT CASE 1 WHEN 1 THEN \'one\'\n    ->     WHEN 2 THEN \'two\' ELSE \'more\' END;\n        -> \'one\'\nMariaDB> SELECT CASE WHEN 1>0 THEN \'true\' ELSE \'false\' END;\n        -> \'true\'\nMariaDB> SELECT CASE BINARY \'B\'\n    ->     WHEN \'a\' THEN 1 WHEN \'b\' THEN 2 END;\n        -> NULL\n','https://mariadb.com/kb/en/case-operator/'),(58,'SHOW MASTER STATUS',26,'Syntax:\nSHOW MASTER STATUS\n\nThis statement provides status information about the binary log files\nof the master. It requires either the SUPER or REPLICATION CLIENT\nprivilege.\n\nExample:\n\nMariaDB> SHOW MASTER STATUS;\n+---------------+----------+--------------+------------------+\n| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB |\n+---------------+----------+--------------+------------------+\n| mysql-bin.003 | 73       | test         | manual,mysql     |\n+---------------+----------+--------------+------------------+\n\nURL: https://mariadb.com/kb/en/show-master-status/\n\n','','https://mariadb.com/kb/en/show-master-status/'),(59,'ADDTIME',31,'Syntax:\nADDTIME(expr1,expr2)\n\nADDTIME() adds expr2 to expr1 and returns the result. expr1 is a time\nor datetime expression, and expr2 is a time expression.\n\nURL: https://mariadb.com/kb/en/addtime/\n\n','MariaDB> SELECT ADDTIME(\'2007-12-31 23:59:59.999999\', \'1 1:1:1.000002\');\n        -> \'2008-01-02 01:01:01.000001\'\nMariaDB> SELECT ADDTIME(\'01:00:00.999999\', \'02:00:00.999998\');\n        -> \'03:00:01.999997\'\n','https://mariadb.com/kb/en/addtime/'),(60,'SPATIAL',34,'For MyISAM tables, MySQL can create spatial indexes using syntax\nsimilar to that for creating regular indexes, but extended with the\nSPATIAL keyword. Currently, columns in spatial indexes must be declared\nNOT NULL. The following examples demonstrate how to create spatial\nindexes:\n\no With CREATE TABLE:\n\nCREATE TABLE geom (g GEOMETRY NOT NULL, SPATIAL INDEX(g)) ENGINE=MyISAM;\n\no With ALTER TABLE:\n\nALTER TABLE geom ADD SPATIAL INDEX(g);\n\no With CREATE INDEX:\n\nCREATE SPATIAL INDEX sp_index ON geom (g);\n\nFor MyISAM tables, SPATIAL INDEX creates an R-tree index. For storage\nengines that support nonspatial indexing of spatial columns, the engine\ncreates a B-tree index. A B-tree index on spatial values will be useful\nfor exact-value lookups, but not for range scans.\n\nFor more information on indexing spatial columns, see [HELP CREATE\nINDEX].\n\nTo drop spatial indexes, use ALTER TABLE or DROP INDEX:\n\no With ALTER TABLE:\n\nALTER TABLE geom DROP INDEX g;\n\no With DROP INDEX:\n\nDROP INDEX sp_index ON geom;\n\nExample: Suppose that a table geom contains more than 32,000\ngeometries, which are stored in the column g of type GEOMETRY. The\ntable also has an AUTO_INCREMENT column fid for storing object ID\nvalues.\n\nURL: https://mariadb.com/kb/en/spatial/\n\n','','https://mariadb.com/kb/en/spatial/'),(61,'TO_SECONDS',31,'Syntax:\nTO_SECONDS(expr)\n\nGiven a date or datetime expr, returns a the number of seconds since\nthe year 0. If expr is not a valid date or datetime value, returns\nNULL.\n\nURL: https://mariadb.com/kb/en/to_seconds/\n\n','MariaDB> SELECT TO_SECONDS(950501);\n        -> 62966505600\nMariaDB> SELECT TO_SECONDS(\'2009-11-29\');\n        -> 63426672000\nMariaDB> SELECT TO_SECONDS(\'2009-11-29 13:43:32\');\n        -> 63426721412\nMariaDB> SELECT TO_SECONDS( NOW() );\n        -> 63426721458\n','https://mariadb.com/kb/en/to_seconds/'),(62,'TIMESTAMPDIFF',31,'Syntax:\nTIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)\n\nReturns datetime_expr2 - datetime_expr1, where datetime_expr1 and\ndatetime_expr2 are date or datetime expressions. One expression may be\na date and the other a datetime; a date value is treated as a datetime\nhaving the time part \'00:00:00\' where necessary. The unit for the\nresult (an integer) is given by the unit argument. The legal values for\nunit are the same as those listed in the description of the\nTIMESTAMPADD() function.\n\nURL: https://mariadb.com/kb/en/timestampdiff/\n\n','MariaDB> SELECT TIMESTAMPDIFF(MONTH,\'2003-02-01\',\'2003-05-01\');\n        -> 3\nMariaDB> SELECT TIMESTAMPDIFF(YEAR,\'2002-05-01\',\'2001-01-01\');\n        -> -1\nMariaDB> SELECT TIMESTAMPDIFF(MINUTE,\'2003-02-01\',\'2003-05-01 12:05:55\');\n        -> 128885\n','https://mariadb.com/kb/en/timestampdiff/'),(63,'UPPER',37,'Syntax:\nUPPER(str)\n\nReturns the string str with all characters changed to uppercase\naccording to the current character set mapping. The default is latin1\n(cp1252 West European).\n\nMariaDB> SELECT UPPER(\'Hej\');\n        -> \'HEJ\'\n\nSee the description of LOWER() for information that also applies to\nUPPER(), such as information about how to perform lettercase conversion\nof binary strings (BINARY, VARBINARY, BLOB) for which these functions\nare ineffective.\n\nURL: https://mariadb.com/kb/en/upper/\n\n','','https://mariadb.com/kb/en/upper/'),(64,'FROM_UNIXTIME',31,'Syntax:\nFROM_UNIXTIME(unix_timestamp), FROM_UNIXTIME(unix_timestamp,format)\n\nReturns a representation of the unix_timestamp argument as a value in\n\'YYYY-MM-DD HH:MM:SS\' or YYYYMMDDHHMMSS.uuuuuu format, depending on\nwhether the function is used in a string or numeric context. The value\nis expressed in the current time zone. unix_timestamp is an internal\ntimestamp value such as is produced by the UNIX_TIMESTAMP() function.\n\nIf format is given, the result is formatted according to the format\nstring, which is used the same way as listed in the entry for the\nDATE_FORMAT() function.\n\nURL: https://mariadb.com/kb/en/from_unixtime/\n\n','MariaDB> SELECT FROM_UNIXTIME(1196440219);\n        -> \'2007-11-30 10:30:19\'\nMariaDB> SELECT FROM_UNIXTIME(1196440219) + 0;\n        -> 20071130103019.000000\nMariaDB> SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(),\n    ->                      \'%Y %D %M %h:%i:%s %x\');\n        -> \'2007 30th November 10:30:59 2007\'\n','https://mariadb.com/kb/en/from_unixtime/'),(65,'MEDIUMBLOB',22,'MEDIUMBLOB\n\nA BLOB column with a maximum length of 16,777,215 (224 - 1) bytes. Each\nMEDIUMBLOB value is stored using a 3-byte length prefix that indicates\nthe number of bytes in the value.\n\nURL: https://mariadb.com/kb/en/mediumblob/\n\n','','https://mariadb.com/kb/en/mediumblob/'),(66,'SHA2',12,'Syntax:\nSHA2(str, hash_length)\n\nCalculates the SHA-2 family of hash functions (SHA-224, SHA-256,\nSHA-384, and SHA-512). The first argument is the cleartext string to be\nhashed. The second argument indicates the desired bit length of the\nresult, which must have a value of 224, 256, 384, 512, or 0 (which is\nequivalent to 256). If either argument is NULL or the hash length is\nnot one of the permitted values, the return value is NULL. Otherwise,\nthe function result is a hash value containing the desired number of\nbits. See the notes at the beginning of this section about storing hash\nvalues efficiently.\n\nAs of MySQL 5.5.6, the return value is a nonbinary string in the\nconnection character set. Before 5.5.6, the return value is a binary\nstring; see the notes at the beginning of this section about using the\nvalue as a nonbinary string.\n\nURL: https://mariadb.com/kb/en/sha2/\n\n','MariaDB> SELECT SHA2(\'abc\', 224);\n        -> \'23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7\'\n','https://mariadb.com/kb/en/sha2/'),(67,'IFNULL',7,'Syntax:\nIFNULL(expr1,expr2)\n\nIf expr1 is not NULL, IFNULL() returns expr1; otherwise it returns\nexpr2. IFNULL() returns a numeric or string value, depending on the\ncontext in which it is used.\n\nURL: https://mariadb.com/kb/en/ifnull/\n\n','MariaDB> SELECT IFNULL(1,0);\n        -> 1\nMariaDB> SELECT IFNULL(NULL,10);\n        -> 10\nMariaDB> SELECT IFNULL(1/0,10);\n        -> 10\nMariaDB> SELECT IFNULL(1/0,\'yes\');\n        -> \'yes\'\n','https://mariadb.com/kb/en/ifnull/'),(68,'SHOW FUNCTION CODE',26,'Syntax:\nSHOW FUNCTION CODE func_name\n\nThis statement is similar to SHOW PROCEDURE CODE but for stored\nfunctions. See [HELP SHOW PROCEDURE CODE].\n\nURL: https://mariadb.com/kb/en/show-function-code/\n\n','','https://mariadb.com/kb/en/show-function-code/'),(69,'SHOW ERRORS',26,'Syntax:\nSHOW ERRORS [LIMIT [offset,] row_count]\nSHOW COUNT(*) ERRORS\n\nThis statement is similar to SHOW WARNINGS, except that it displays\ninformation only for errors, rather than for errors, warnings, and\nnotes.\n\nThe LIMIT clause has the same syntax as for the SELECT statement. See\nhttps://mariadb.com/kb/en/select/.\n\nThe SHOW COUNT(*) ERRORS statement displays the number of errors. You\ncan also retrieve this number from the error_count variable:\n\nSHOW COUNT(*) ERRORS;\nSELECT @@error_count;\n\nSHOW ERRORS and error_count apply only to errors, not warnings or\nnotes. In other respects, they are similar to SHOW WARNINGS and\nwarning_count. In particular, SHOW ERRORS cannot display information\nfor more than max_error_count messages, and error_count can exceed the\nvalue of max_error_count if the number of errors exceeds\nmax_error_count.\n\nURL: https://mariadb.com/kb/en/show-errors/\n\n','','https://mariadb.com/kb/en/show-errors/'),(70,'LEAST',18,'Syntax:\nLEAST(value1,value2,...)\n\nWith two or more arguments, returns the smallest (minimum-valued)\nargument. The arguments are compared using the following rules:\n\no If any argument is NULL, the result is NULL. No comparison is needed.\n\no If the return value is used in an INTEGER context or all arguments\n  are integer-valued, they are compared as integers.\n\no If the return value is used in a REAL context or all arguments are\n  real-valued, they are compared as reals.\n\no If the arguments comprise a mix of numbers and strings, they are\n  compared as numbers.\n\no If any argument is a nonbinary (character) string, the arguments are\n  compared as nonbinary strings.\n\no In all other cases, the arguments are compared as binary strings.\n\nURL: https://mariadb.com/kb/en/least/\n\n','MariaDB> SELECT LEAST(2,0);\n        -> 0\nMariaDB> SELECT LEAST(34.0,3.0,5.0,767.0);\n        -> 3.0\nMariaDB> SELECT LEAST(\'B\',\'A\',\'C\');\n        -> \'A\'\n','https://mariadb.com/kb/en/least/'),(71,'=',18,'=\n\nEqual:\n\nURL: https://mariadb.com/kb/en/equal/\n\n','MariaDB> SELECT 1 = 0;\n        -> 0\nMariaDB> SELECT \'0\' = 0;\n        -> 1\nMariaDB> SELECT \'0.0\' = 0;\n        -> 1\nMariaDB> SELECT \'0.01\' = 0;\n        -> 0\nMariaDB> SELECT \'.01\' = 0.01;\n        -> 1\n','https://mariadb.com/kb/en/equal/'),(72,'REVERSE',37,'Syntax:\nREVERSE(str)\n\nReturns the string str with the order of the characters reversed.\n\nURL: https://mariadb.com/kb/en/reverse/\n\n','MariaDB> SELECT REVERSE(\'abc\');\n        -> \'cba\'\n','https://mariadb.com/kb/en/reverse/'),(73,'ISNULL',18,'Syntax:\nISNULL(expr)\n\nIf expr is NULL, ISNULL() returns 1, otherwise it returns 0.\n\nURL: https://mariadb.com/kb/en/isnull/\n\n','MariaDB> SELECT ISNULL(1+1);\n        -> 0\nMariaDB> SELECT ISNULL(1/0);\n        -> 1\n','https://mariadb.com/kb/en/isnull/'),(74,'BINARY',22,'BINARY(M)\n\nThe BINARY type is similar to the CHAR type, but stores binary byte\nstrings rather than nonbinary character strings. M represents the\ncolumn length in bytes.\n\nURL: https://mariadb.com/kb/en/binary/\n\n','','https://mariadb.com/kb/en/binary/'),(75,'BLOB DATA TYPE',22,'A BLOB is a binary large object that can hold a variable amount of\ndata. The four BLOB types are TINYBLOB, BLOB, MEDIUMBLOB, and LONGBLOB.\nThese differ only in the maximum length of the values they can hold.\nThe four TEXT types are TINYTEXT, TEXT, MEDIUMTEXT, and LONGTEXT. These\ncorrespond to the four BLOB types and have the same maximum lengths and\nstorage requirements. See\nhttps://mariadb.com/kb/en/data-type-storage-requirements/.\n\nURL: https://mariadb.com/kb/en/sql_language-data_types-blob/\n\n','','https://mariadb.com/kb/en/sql_language-data_types-blob/'),(76,'BOUNDARY',36,'Boundary(g)\n\nReturns a geometry that is the closure of the combinatorial boundary of\nthe geometry value g.\n\nURL: https://mariadb.com/kb/en/boundary/\n\n','','https://mariadb.com/kb/en/boundary/'),(77,'CREATE USER',10,'Syntax:\nCREATE USER user_specification\n    [, user_specification] ...\n\nuser_specification:\n    user\n    [\n        IDENTIFIED BY [PASSWORD] \'password\'\n      | IDENTIFIED WITH auth_plugin [AS \'auth_string\']\n    ]\n\nThe CREATE USER statement creates new MySQL accounts. To use it, you\nmust have the global CREATE USER privilege or the INSERT privilege for\nthe mysql database. For each account, CREATE USER creates a new row in\nthe mysql.user table and assigns the account no privileges. An error\noccurs if the account already exists.\n\nEach account name uses the format described in\nhttps://mariadb.com/kb/en/create-user#account-names. For example:\n\nCREATE USER \'jeffrey\'@\'localhost\' IDENTIFIED BY \'mypass\';\n\nIf you specify only the user name part of the account name, a host name\npart of \'%\' is used.\n\nThe user specification may indicate how the user should authenticate\nwhen connecting to the server:\n\no To enable the user to connect with no password (which is insecure),\n  include no IDENTIFIED BY clause:\n\nCREATE USER \'jeffrey\'@\'localhost\';\n\n  In this case, the account uses built-in authentication and clients\n  must provide no password.\n\no To assign a password, use IDENTIFIED BY with the literal plaintext\n  password value:\n\nCREATE USER \'jeffrey\'@\'localhost\' IDENTIFIED BY \'mypass\';\n\n  The account uses built-in authentication and clients must match the\n  given password.\n\no To avoid specifying the plaintext password if you know its hash value\n  (the value that PASSWORD() would return for the password), specify\n  the hash value preceded by the keyword PASSWORD:\n\nCREATE USER \'jeffrey\'@\'localhost\'\nIDENTIFIED BY PASSWORD \'*90E462C37378CED12064BB3388827D2BA3A9B689\';\n\n  The account uses built-in authentication and clients must match the\n  given password.\n\no To authenticate the account using a specific authentication plugin,\n  use IDENTIFIED WITH, where auth_plugin is the plugin name. It can be\n  an unquoted name or a quoted string literal. \'auth_string\' is an\n  optional quoted string literal to pass to the plugin. The plugin\n  interprets the meaning of the string, so its format is plugin\n  specific. Consult the documentation for a given plugin for\n  information about the authentication string values it accepts.\n\nCREATE USER \'jeffrey\'@\'localhost\'\nIDENTIFIED WITH my_auth_plugin;\n\n  For connections that use this account, the server invokes the named\n  plugin and clients must provide credentials as required for the\n  authentication method that the plugin implements. If the server\n  cannot find the plugin, either at account-creation time or connect\n  time, an error occurs. IDENTIFIED WITH can be used as of MySQL 5.5.7.\n\nThe IDENTIFIED BY and IDENTIFIED WITH clauses are mutually exclusive,\nso at most one of them can be specified for a given user.\n\nFor additional information about setting passwords, see\nhttps://mariadb.com/kb/en/create-user/.\n\nURL: https://mariadb.com/kb/en/create-user/\n\n','','https://mariadb.com/kb/en/create-user/'),(78,'POINT',24,'Point(x,y)\n\nConstructs a Point using its coordinates.\n\nURL: https://mariadb.com/kb/en/point/\n\n','','https://mariadb.com/kb/en/point/'),(79,'CURRENT_USER',17,'Syntax:\nCURRENT_USER, CURRENT_USER()\n\nReturns the user name and host name combination for the MySQL account\nthat the server used to authenticate the current client. This account\ndetermines your access privileges. The return value is a string in the\nutf8 character set.\n\nThe value of CURRENT_USER() can differ from the value of USER().\n\nURL: https://mariadb.com/kb/en/current_user/\n\n','MariaDB> SELECT USER();\n        -> \'davida@localhost\'\nMariaDB> SELECT * FROM mysql.user;\nERROR 1044: Access denied for user \'\'@\'localhost\' to\ndatabase \'mysql\'\nMariaDB> SELECT CURRENT_USER();\n        -> \'@localhost\'\n','https://mariadb.com/kb/en/current_user/'),(80,'LCASE',37,'Syntax:\nLCASE(str)\n\nLCASE() is a synonym for LOWER().\n\nURL: https://mariadb.com/kb/en/lcase/\n\n','','https://mariadb.com/kb/en/lcase/'),(81,'<=',18,'Syntax:\n<=\n\nLess than or equal:\n\nURL: https://mariadb.com/kb/en/less-than-or-equal/\n\n','MariaDB> SELECT 0.1 <= 2;\n        -> 1\n','https://mariadb.com/kb/en/less-than-or-equal/'),(82,'SHOW PROFILES',26,'Syntax:\nSHOW PROFILES\n\nThe SHOW PROFILES statement, together with SHOW PROFILE, displays\nprofiling information that indicates resource usage for statements\nexecuted during the course of the current session. For more\ninformation, see [HELP SHOW PROFILE].\n\nURL: https://mariadb.com/kb/en/show-profiles/\n\n','','https://mariadb.com/kb/en/show-profiles/'),(83,'UPDATE',27,'Syntax:\nSingle-table syntax:\n\nUPDATE [LOW_PRIORITY] [IGNORE] table_reference\n    SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...\n    [WHERE where_condition]\n    [ORDER BY ...]\n    [LIMIT row_count]\n\nMultiple-table syntax:\n\nUPDATE [LOW_PRIORITY] [IGNORE] table_references\n    SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...\n    [WHERE where_condition]\n\nFor the single-table syntax, the UPDATE statement updates columns of\nexisting rows in the named table with new values. The SET clause\nindicates which columns to modify and the values they should be given.\nEach value can be given as an expression, or the keyword DEFAULT to set\na column explicitly to its default value. The WHERE clause, if given,\nspecifies the conditions that identify which rows to update. With no\nWHERE clause, all rows are updated. If the ORDER BY clause is\nspecified, the rows are updated in the order that is specified. The\nLIMIT clause places a limit on the number of rows that can be updated.\n\nFor the multiple-table syntax, UPDATE updates rows in each table named\nin table_references that satisfy the conditions. In this case, ORDER BY\nand LIMIT cannot be used.\n\nwhere_condition is an expression that evaluates to true for each row to\nbe updated. For expression syntax, see\nhttp://dev.mysql.com/doc/refman/5.5/en/expressions.html.\n\ntable_references and where_condition are is specified as described in\nhttps://mariadb.com/kb/en/select/.\n\nYou need the UPDATE privilege only for columns referenced in an UPDATE\nthat are actually updated. You need only the SELECT privilege for any\ncolumns that are read but not modified.\n\nThe UPDATE statement supports the following modifiers:\n\no With the LOW_PRIORITY keyword, execution of the UPDATE is delayed\n  until no other clients are reading from the table. This affects only\n  storage engines that use only table-level locking (such as MyISAM,\n  MEMORY, and MERGE).\n\no With the IGNORE keyword, the update statement does not abort even if\n  errors occur during the update. Rows for which duplicate-key\n  conflicts occur are not updated. Rows for which columns are updated\n  to values that would cause data conversion errors are updated to the\n  closest valid values instead.\n\nURL: https://mariadb.com/kb/en/update/\n\n','','https://mariadb.com/kb/en/update/'),(84,'IS NOT NULL',18,'Syntax:\nIS NOT NULL\n\nTests whether a value is not NULL.\n\nURL: https://mariadb.com/kb/en/is-not-null/\n\n','MariaDB> SELECT 1 IS NOT NULL, 0 IS NOT NULL, NULL IS NOT NULL;\n        -> 1, 1, 0\n','https://mariadb.com/kb/en/is-not-null/'),(85,'CASE STATEMENT',23,'Syntax:\nCASE case_value\n    WHEN when_value THEN statement_list\n    [WHEN when_value THEN statement_list] ...\n    [ELSE statement_list]\nEND CASE\n\nOr:\n\nCASE\n    WHEN search_condition THEN statement_list\n    [WHEN search_condition THEN statement_list] ...\n    [ELSE statement_list]\nEND CASE\n\nThe CASE statement for stored programs implements a complex conditional\nconstruct.\n\n*Note*: There is also a CASE expression, which differs from the CASE\nstatement described here. See\nhttps://mariadb.com/kb/en/case-operator/. The\nCASE statement cannot have an ELSE NULL clause, and it is terminated\nwith END CASE instead of END.\n\nFor the first syntax, case_value is an expression. This value is\ncompared to the when_value expression in each WHEN clause until one of\nthem is equal. When an equal when_value is found, the corresponding\nTHEN clause statement_list executes. If no when_value is equal, the\nELSE clause statement_list executes, if there is one.\n\nThis syntax cannot be used to test for equality with NULL because NULL\n= NULL is false. See\nhttps://mariadb.com/kb/en/null-values/.\n\nFor the second syntax, each WHEN clause search_condition expression is\nevaluated until one is true, at which point its corresponding THEN\nclause statement_list executes. If no search_condition is equal, the\nELSE clause statement_list executes, if there is one.\n\nIf no when_value or search_condition matches the value tested and the\nCASE statement contains no ELSE clause, a Case not found for CASE\nstatement error results.\n\nEach statement_list consists of one or more SQL statements; an empty\nstatement_list is not permitted.\n\nTo handle situations where no value is matched by any WHEN clause, use\nan ELSE containing an empty BEGIN ... END block, as shown in this\nexample. (The indentation used here in the ELSE clause is for purposes\nof clarity only, and is not otherwise significant.)\n\nDELIMITER |\n\nCREATE PROCEDURE p()\n  BEGIN\n    DECLARE v INT DEFAULT 1;\n\n    CASE v\n      WHEN 2 THEN SELECT v;\n      WHEN 3 THEN SELECT 0;\n      ELSE\n        BEGIN\n        END;\n    END CASE;\n  END;\n  |\n\nURL: https://mariadb.com/kb/en/case-statement/\n\n','','https://mariadb.com/kb/en/case-statement/'),(86,'EXECUTE STATEMENT',8,'Syntax:\nEXECUTE stmt_name\n    [USING @var_name [, @var_name] ...]\n\nAfter preparing a statement with PREPARE, you execute it with an\nEXECUTE statement that refers to the prepared statement name. If the\nprepared statement contains any parameter markers, you must supply a\nUSING clause that lists user variables containing the values to be\nbound to the parameters. Parameter values can be supplied only by user\nvariables, and the USING clause must name exactly as many variables as\nthe number of parameter markers in the statement.\n\nYou can execute a given prepared statement multiple times, passing\ndifferent variables to it or setting the variables to different values\nbefore each execution.\n\nURL: https://mariadb.com/kb/en/execute-statement/\n\n','','https://mariadb.com/kb/en/execute-statement/'),(87,'DROP INDEX',39,'Syntax:\nDROP [ONLINE|OFFLINE] INDEX index_name ON tbl_name\n\nDROP INDEX drops the index named index_name from the table tbl_name.\nThis statement is mapped to an ALTER TABLE statement to drop the index.\nSee [HELP ALTER TABLE].\n\nTo drop a primary key, the index name is always PRIMARY, which must be\nspecified as a quoted identifier because PRIMARY is a reserved word:\n\nDROP INDEX `PRIMARY` ON t;\n\nURL: https://mariadb.com/kb/en/drop-index/\n\n','','https://mariadb.com/kb/en/drop-index/'),(88,'MATCH AGAINST',37,'Syntax:\nMATCH (col1,col2,...) AGAINST (expr [search_modifier])\n\nMySQL has support for full-text indexing and searching:\n\no A full-text index in MySQL is an index of type FULLTEXT.\n\no Full-text indexes can be used only with MyISAM tables, and can be\n  created only for CHAR, VARCHAR, or TEXT columns.\n\no A FULLTEXT index definition can be given in the CREATE TABLE\n  statement when a table is created, or added later using ALTER TABLE\n  or CREATE INDEX.\n\no For large data sets, it is much faster to load your data into a table\n  that has no FULLTEXT index and then create the index after that, than\n  to load data into a table that has an existing FULLTEXT index.\n\nFull-text searching is performed using MATCH() ... AGAINST syntax.\nMATCH() takes a comma-separated list that names the columns to be\nsearched. AGAINST takes a string to search for, and an optional\nmodifier that indicates what type of search to perform. The search\nstring must be a literal string, not a variable or a column name. There\nare three types of full-text searches:\n\no A natural language search interprets the search string as a phrase in\n  natural human language (a phrase in free text). There are no special\n  operators. The stopword list applies. In addition, words that are\n  present in 50% or more of the rows are considered common and do not\n  match.\n\n  Full-text searches are natural language searches if the IN NATURAL\n  LANGUAGE MODE modifier is given or if no modifier is given. For more\n  information, see\n  https://mariadb.com/kb/en/fulltext-index-overview#in-natural-language-mode\n  .\n\no A boolean search interprets the search string using the rules of a\n  special query language. The string contains the words to search for.\n  It can also contain operators that specify requirements such that a\n  word must be present or absent in matching rows, or that it should be\n  weighted higher or lower than usual. Common words such as \"some\" or\n  \"then\" are stopwords and do not match if present in the search\n  string. The IN BOOLEAN MODE modifier specifies a boolean search. For\n  more information, see\n  https://mariadb.com/kb/en/fulltext-index-overview#in-boolean-mode.\n\no A query expansion search is a modification of a natural language\n  search. The search string is used to perform a natural language\n  search. Then words from the most relevant rows returned by the search\n  are added to the search string and the search is done again. The\n  query returns the rows from the second search. The IN NATURAL\n  LANGUAGE MODE WITH QUERY EXPANSION or WITH QUERY EXPANSION modifier\n  specifies a query expansion search. For more information, see\n  https://mariadb.com/kb/en/fulltext-index-overview#with-query-expansion.\n\nURL: https://mariadb.com/kb/en/match-against/\n\n','MariaDB> SELECT id, body, MATCH (title,body) AGAINST\n    -> (\'Security implications of running MySQL as root\'\n    -> IN NATURAL LANGUAGE MODE) AS score\n    -> FROM articles WHERE MATCH (title,body) AGAINST\n    -> (\'Security implications of running MySQL as root\'\n    -> IN NATURAL LANGUAGE MODE);\n+----+-------------------------------------+-----------------+\n| id | body                                | score           |\n+----+-------------------------------------+-----------------+\n|  4 | 1. Never run mysqld as root. 2. ... | 1.5219271183014 |\n|  6 | When configured properly, MySQL ... | 1.3114095926285 |\n+----+-------------------------------------+-----------------+\n2 rows in set (0.00 sec)\n','https://mariadb.com/kb/en/match-against/'),(89,'CREATE EVENT',39,'Syntax:\nCREATE\n    [DEFINER = { user | CURRENT_USER }]\n    EVENT\n    [IF NOT EXISTS]\n    event_name\n    ON SCHEDULE schedule\n    [ON COMPLETION [NOT] PRESERVE]\n    [ENABLE | DISABLE | DISABLE ON SLAVE]\n    [COMMENT \'comment\']\n    DO event_body;\n\nschedule:\n    AT timestamp [+ INTERVAL interval] ...\n  | EVERY interval\n    [STARTS timestamp [+ INTERVAL interval] ...]\n    [ENDS timestamp [+ INTERVAL interval] ...]\n\ninterval:\n    quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |\n              WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |\n              DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}\n\nThis statement creates and schedules a new event. The event will not\nrun unless the Event Scheduler is enabled. For information about\nchecking Event Scheduler status and enabling it if necessary, see\nhttps://mariadb.com/kb/en/events/.\n\nCREATE EVENT requires the EVENT privilege for the schema in which the\nevent is to be created. It might also require the SUPER privilege,\ndepending on the DEFINER value, as described later in this section.\n\nThe minimum requirements for a valid CREATE EVENT statement are as\nfollows:\n\no The keywords CREATE EVENT plus an event name, which uniquely\n  identifies the event in a database schema.\n\no An ON SCHEDULE clause, which determines when and how often the event\n  executes.\n\no A DO clause, which contains the SQL statement to be executed by an\n  event.\n\nThis is an example of a minimal CREATE EVENT statement:\n\nCREATE EVENT myevent\n    ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 HOUR\n    DO\n      UPDATE myschema.mytable SET mycol = mycol + 1;\n\nThe previous statement creates an event named myevent. This event\nexecutes once---one hour following its creation---by running an SQL\nstatement that increments the value of the myschema.mytable table\'s\nmycol column by 1.\n\nThe event_name must be a valid MySQL identifier with a maximum length\nof 64 characters. Event names are not case sensitive, so you cannot\nhave two events named myevent and MyEvent in the same schema. In\ngeneral, the rules governing event names are the same as those for\nnames of stored routines. See\nhttps://mariadb.com/kb/en/identifier-names/.\n\nAn event is associated with a schema. If no schema is indicated as part\nof event_name, the default (current) schema is assumed. To create an\nevent in a specific schema, qualify the event name with a schema using\nschema_name.event_name syntax.\n\nURL: https://mariadb.com/kb/en/create-event/\n\n','','https://mariadb.com/kb/en/create-event/'),(90,'ABS',4,'Syntax:\nABS(X)\n\nReturns the absolute value of X.\n\nURL: https://mariadb.com/kb/en/abs/\n\n','MariaDB> SELECT ABS(2);\n        -> 2\nMariaDB> SELECT ABS(-32);\n        -> 32\n','https://mariadb.com/kb/en/abs/'),(91,'POLYFROMWKB',32,'PolyFromWKB(wkb[,srid]), PolygonFromWKB(wkb[,srid])\n\nConstructs a POLYGON value using its WKB representation and SRID.\n\nURL: https://mariadb.com/kb/en/polyfromwkb/\n\n','','https://mariadb.com/kb/en/polyfromwkb/'),(92,'NOT LIKE',37,'Syntax:\nexpr NOT LIKE pat [ESCAPE \'escape_char\']\n\nThis is the same as NOT (expr LIKE pat [ESCAPE \'escape_char\']).\n\nURL: https://mariadb.com/kb/en/not-like/\n\n','','https://mariadb.com/kb/en/not-like/'),(93,'SPACE',37,'Syntax:\nSPACE(N)\n\nReturns a string consisting of N space characters.\n\nURL: https://mariadb.com/kb/en/space/\n\n','MariaDB> SELECT SPACE(6);\n        -> \'      \'\n','https://mariadb.com/kb/en/space/'),(94,'MBR DEFINITION',6,'Its MBR (Minimum Bounding Rectangle), or Envelope. This is the bounding\ngeometry, formed by the minimum and maximum (X,Y) coordinates:\n\nURL: https://mariadb.com/kb/en/mbr-definition/\n\n','((MINX MINY, MAXX MINY, MAXX MAXY, MINX MAXY, MINX MINY))\n','https://mariadb.com/kb/en/mbr-definition/'),(95,'GEOMETRYCOLLECTION',24,'GeometryCollection(g1,g2,...)\n\nConstructs a GeometryCollection.\n\nURL: https://mariadb.com/kb/en/geometrycollection/\n\n','','https://mariadb.com/kb/en/geometrycollection/'),(96,'MAX',16,'Syntax:\nMAX([DISTINCT] expr)\n\nReturns the maximum value of expr. MAX() may take a string argument; in\nsuch cases, it returns the maximum string value. See\nhttps://mariadb.com/kb/en/max/. The DISTINCT\nkeyword can be used to find the maximum of the distinct values of expr,\nhowever, this produces the same result as omitting DISTINCT.\n\nMAX() returns NULL if there were no matching rows.\n\nURL: https://mariadb.com/kb/en/max/\n\n','MariaDB> SELECT student_name, MIN(test_score), MAX(test_score)\n    ->        FROM student\n    ->        GROUP BY student_name;\n','https://mariadb.com/kb/en/max/'),(97,'CREATE FUNCTION UDF',21,'Syntax:\nCREATE [AGGREGATE] FUNCTION function_name RETURNS {STRING|INTEGER|REAL|DECIMAL}\n    SONAME shared_library_name\n\nA user-defined function (UDF) is a way to extend MySQL with a new\nfunction that works like a native (built-in) MySQL function such as\nABS() or CONCAT().\n\nfunction_name is the name that should be used in SQL statements to\ninvoke the function. The RETURNS clause indicates the type of the\nfunction\'s return value. DECIMAL is a legal value after RETURNS, but\ncurrently DECIMAL functions return string values and should be written\nlike STRING functions.\n\nshared_library_name is the basename of the shared object file that\ncontains the code that implements the function. The file must be\nlocated in the plugin directory. This directory is given by the value\nof the plugin_dir system variable. For more information, see\nhttp://dev.mysql.com/doc/refman/5.5/en/udf-compiling.html.\n\nTo create a function, you must have the INSERT privilege for the mysql\ndatabase. This is necessary because CREATE FUNCTION adds a row to the\nmysql.func system table that records the function\'s name, type, and\nshared library name. If you do not have this table, you should run the\nmysql_upgrade command to create it. See\nhttps://mariadb.com/kb/en/mysql_upgrade/.\n\nURL: https://mariadb.com/kb/en/create-function-udf/\n\n','','https://mariadb.com/kb/en/create-function-udf/'),(98,'*',4,'Syntax:\n*\n\nMultiplication:\n\nURL: https://mariadb.com/kb/en/multiplication-operator/\n\n','MariaDB> SELECT 3*5;\n        -> 15\nMariaDB> SELECT 18014398509481984*18014398509481984.0;\n        -> 324518553658426726783156020576256.0\nMariaDB> SELECT 18014398509481984*18014398509481984;\n        -> 0\n','https://mariadb.com/kb/en/multiplication-operator/'),(99,'TIMESTAMP',22,'TIMESTAMP\n\nA timestamp. The range is \'1970-01-01 00:00:01\' UTC to \'2038-01-19\n03:14:07\' UTC. TIMESTAMP values are stored as the number of seconds\nsince the epoch (\'1970-01-01 00:00:00\' UTC). A TIMESTAMP cannot\nrepresent the value \'1970-01-01 00:00:00\' because that is equivalent to\n0 seconds from the epoch and the value 0 is reserved for representing\n\'0000-00-00 00:00:00\', the \"zero\" TIMESTAMP value.\n\nUnless specified otherwise, the first TIMESTAMP column in a table is\ndefined to be automatically set to the date and time of the most recent\nmodification if not explicitly assigned a value. This makes TIMESTAMP\nuseful for recording the timestamp of an INSERT or UPDATE operation.\nYou can also set any TIMESTAMP column to the current date and time by\nassigning it a NULL value, unless it has been defined with the NULL\nattribute to permit NULL values. The automatic initialization and\nupdating to the current date and time can be specified using DEFAULT\nCURRENT_TIMESTAMP and ON UPDATE CURRENT_TIMESTAMP clauses, as described\nin\nhttps://mariadb.com/kb/en/timestamp/.\n\n*Note*: The TIMESTAMP format that was used prior to MySQL 4.1 is not\nsupported in MySQL 5.5; see MySQL 3.23, 4.0, 4.1 Reference Manual for\ninformation regarding the old format.\n\nURL: https://mariadb.com/kb/en/timestamp/\n\n','','https://mariadb.com/kb/en/timestamp/'),(100,'DES_DECRYPT',12,'Syntax:\nDES_DECRYPT(crypt_str[,key_str])\n\nDecrypts a string encrypted with DES_ENCRYPT(). If an error occurs,\nthis function returns NULL.\n\nThis function works only if MySQL has been configured with SSL support.\nSee https://mariadb.com/kb/en/ssl-connections/.\n\nIf no key_str argument is given, DES_DECRYPT() examines the first byte\nof the encrypted string to determine the DES key number that was used\nto encrypt the original string, and then reads the key from the DES key\nfile to decrypt the message. For this to work, the user must have the\nSUPER privilege. The key file can be specified with the --des-key-file\nserver option.\n\nIf you pass this function a key_str argument, that string is used as\nthe key for decrypting the message.\n\nIf the crypt_str argument does not appear to be an encrypted string,\nMySQL returns the given crypt_str.\n\nURL: https://mariadb.com/kb/en/des_decrypt/\n\n','','https://mariadb.com/kb/en/des_decrypt/'),(101,'CACHE INDEX',26,'Syntax:\nCACHE INDEX\n  tbl_index_list [, tbl_index_list] ...\n  [PARTITION (partition_list | ALL)]\n  IN key_cache_name\n\ntbl_index_list:\n  tbl_name [[INDEX|KEY] (index_name[, index_name] ...)]\n\npartition_list:\n  partition_name[, partition_name][, ...]\n\nThe CACHE INDEX statement assigns table indexes to a specific key\ncache. It is used only for MyISAM tables. After the indexes have been\nassigned, they can be preloaded into the cache if desired with LOAD\nINDEX INTO CACHE.\n\nThe following statement assigns indexes from the tables t1, t2, and t3\nto the key cache named hot_cache:\n\nMariaDB> CACHE INDEX t1, t2, t3 IN hot_cache;\n+---------+--------------------+----------+----------+\n| Table   | Op                 | Msg_type | Msg_text |\n+---------+--------------------+----------+----------+\n| test.t1 | assign_to_keycache | status   | OK       |\n| test.t2 | assign_to_keycache | status   | OK       |\n| test.t3 | assign_to_keycache | status   | OK       |\n+---------+--------------------+----------+----------+\n\nURL: https://mariadb.com/kb/en/cache-index/\n\n','','https://mariadb.com/kb/en/cache-index/'),(102,'ENDPOINT',13,'EndPoint(ls)\n\nReturns the Point that is the endpoint of the LineString value ls.\n\nURL: https://mariadb.com/kb/en/endpoint/\n\n','MariaDB> SET @ls = \'LineString(1 1,2 2,3 3)\';\nMariaDB> SELECT AsText(EndPoint(GeomFromText(@ls)));\n+-------------------------------------+\n| AsText(EndPoint(GeomFromText(@ls))) |\n+-------------------------------------+\n| POINT(3 3)                          |\n+-------------------------------------+\n','https://mariadb.com/kb/en/endpoint/'),(103,'COMPRESS',12,'Syntax:\nCOMPRESS(string_to_compress)\n\nCompresses a string and returns the result as a binary string. This\nfunction requires MySQL to have been compiled with a compression\nlibrary such as zlib. Otherwise, the return value is always NULL. The\ncompressed string can be uncompressed with UNCOMPRESS().\n\nURL: https://mariadb.com/kb/en/compress/\n\n','MariaDB> SELECT LENGTH(COMPRESS(REPEAT(\'a\',1000)));\n        -> 21\nMariaDB> SELECT LENGTH(COMPRESS(\'\'));\n        -> 0\nMariaDB> SELECT LENGTH(COMPRESS(\'a\'));\n        -> 13\nMariaDB> SELECT LENGTH(COMPRESS(REPEAT(\'a\',16)));\n        -> 15\n','https://mariadb.com/kb/en/compress/'),(104,'INSERT',27,'Syntax:\nINSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]\n    [INTO] tbl_name [(col_name,...)]\n    {VALUES | VALUE} ({expr | DEFAULT},...),(...),...\n    [ ON DUPLICATE KEY UPDATE\n      col_name=expr\n        [, col_name=expr] ... ]\n\nOr:\n\nINSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]\n    [INTO] tbl_name\n    SET col_name={expr | DEFAULT}, ...\n    [ ON DUPLICATE KEY UPDATE\n      col_name=expr\n        [, col_name=expr] ... ]\n\nOr:\n\nINSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]\n    [INTO] tbl_name [(col_name,...)]\n    SELECT ...\n    [ ON DUPLICATE KEY UPDATE\n      col_name=expr\n        [, col_name=expr] ... ]\n\nINSERT inserts new rows into an existing table. The INSERT ... VALUES\nand INSERT ... SET forms of the statement insert rows based on\nexplicitly specified values. The INSERT ... SELECT form inserts rows\nselected from another table or tables. INSERT ... SELECT is discussed\nfurther in [HELP INSERT SELECT].\n\nURL: https://mariadb.com/kb/en/insert/\n\n','','https://mariadb.com/kb/en/insert/'),(105,'COUNT',16,'Syntax:\nCOUNT(expr)\n\nReturns a count of the number of non-NULL values of expr in the rows\nretrieved by a SELECT statement. The result is a BIGINT value.\n\nCOUNT() returns 0 if there were no matching rows.\n\nURL: https://mariadb.com/kb/en/count/\n\n','MariaDB> SELECT student.student_name,COUNT(*)\n    ->        FROM student,course\n    ->        WHERE student.student_id=course.student_id\n    ->        GROUP BY student_name;\n','https://mariadb.com/kb/en/count/'),(106,'HANDLER',27,'Syntax:\nHANDLER tbl_name OPEN [ [AS] alias]\n\nHANDLER tbl_name READ index_name { = | <= | >= | < | > } (value1,value2,...)\n    [ WHERE where_condition ] [LIMIT ... ]\nHANDLER tbl_name READ index_name { FIRST | NEXT | PREV | LAST }\n    [ WHERE where_condition ] [LIMIT ... ]\nHANDLER tbl_name READ { FIRST | NEXT }\n    [ WHERE where_condition ] [LIMIT ... ]\n\nHANDLER tbl_name CLOSE\n\nThe HANDLER statement provides direct access to table storage engine\ninterfaces. It is available for MyISAM and InnoDB tables.\n\nURL: https://mariadb.com/kb/en/handler-commands/\n\n','','https://mariadb.com/kb/en/handler-commands/'),(107,'MLINEFROMTEXT',3,'MLineFromText(wkt[,srid]), MultiLineStringFromText(wkt[,srid])\n\nConstructs a MULTILINESTRING value using its WKT representation and\nSRID.\n\nURL: https://mariadb.com/kb/en/mlinefromtext/\n\n','','https://mariadb.com/kb/en/mlinefromtext/'),(108,'GEOMCOLLFROMWKB',32,'GeomCollFromWKB(wkb[,srid]), GeometryCollectionFromWKB(wkb[,srid])\n\nConstructs a GEOMETRYCOLLECTION value using its WKB representation and\nSRID.\n\nURL: https://mariadb.com/kb/en/geomcollfromwkb/\n\n','','https://mariadb.com/kb/en/geomcollfromwkb/'),(109,'HELP_DATE',9,'This help information was generated from the MySQL 5.5 Reference Manual\non: 2012-08-25\n','',''),(110,'RENAME TABLE',39,'Syntax:\nRENAME TABLE tbl_name TO new_tbl_name\n    [, tbl_name2 TO new_tbl_name2] ...\n\nThis statement renames one or more tables.\n\nThe rename operation is done atomically, which means that no other\nsession can access any of the tables while the rename is running. For\nexample, if you have an existing table old_table, you can create\nanother table new_table that has the same structure but is empty, and\nthen replace the existing table with the empty one as follows (assuming\nthat backup_table does not already exist):\n\nURL: https://mariadb.com/kb/en/rename-table/\n\n','CREATE TABLE new_table (...);\nRENAME TABLE old_table TO backup_table, new_table TO old_table;\n','https://mariadb.com/kb/en/rename-table/'),(111,'BOOLEAN',22,'BOOL, BOOLEAN\n\nThese types are synonyms for TINYINT(1). A value of zero is considered\nfalse. Nonzero values are considered true:\n\nMariaDB> SELECT IF(0, \'true\', \'false\');\n+------------------------+\n| IF(0, \'true\', \'false\') |\n+------------------------+\n| false                  |\n+------------------------+\n\nMariaDB> SELECT IF(1, \'true\', \'false\');\n+------------------------+\n| IF(1, \'true\', \'false\') |\n+------------------------+\n| true                   |\n+------------------------+\n\nMariaDB> SELECT IF(2, \'true\', \'false\');\n+------------------------+\n| IF(2, \'true\', \'false\') |\n+------------------------+\n| true                   |\n+------------------------+\n\nHowever, the values TRUE and FALSE are merely aliases for 1 and 0,\nrespectively, as shown here:\n\nMariaDB> SELECT IF(0 = FALSE, \'true\', \'false\');\n+--------------------------------+\n| IF(0 = FALSE, \'true\', \'false\') |\n+--------------------------------+\n| true                           |\n+--------------------------------+\n\nMariaDB> SELECT IF(1 = TRUE, \'true\', \'false\');\n+-------------------------------+\n| IF(1 = TRUE, \'true\', \'false\') |\n+-------------------------------+\n| true                          |\n+-------------------------------+\n\nMariaDB> SELECT IF(2 = TRUE, \'true\', \'false\');\n+-------------------------------+\n| IF(2 = TRUE, \'true\', \'false\') |\n+-------------------------------+\n| false                         |\n+-------------------------------+\n\nMariaDB> SELECT IF(2 = FALSE, \'true\', \'false\');\n+--------------------------------+\n| IF(2 = FALSE, \'true\', \'false\') |\n+--------------------------------+\n| false                          |\n+--------------------------------+\n\nThe last two statements display the results shown because 2 is equal to\nneither 1 nor 0.\n\nURL: https://mariadb.com/kb/en/boolean/\n\n','','https://mariadb.com/kb/en/boolean/'),(112,'DEFAULT',14,'Syntax:\nDEFAULT(col_name)\n\nReturns the default value for a table column. An error results if the\ncolumn has no default value.\n\nURL: https://mariadb.com/kb/en/default/\n\n','MariaDB> UPDATE t SET i = DEFAULT(i)+1 WHERE id < 100;\n','https://mariadb.com/kb/en/default/'),(113,'MOD',4,'Syntax:\nMOD(N,M), N % M, N MOD M\n\nModulo operation. Returns the remainder of N divided by M.\n\nURL: https://mariadb.com/kb/en/mod/\n\n','MariaDB> SELECT MOD(234, 10);\n        -> 4\nMariaDB> SELECT 253 % 7;\n        -> 1\nMariaDB> SELECT MOD(29,9);\n        -> 2\nMariaDB> SELECT 29 MOD 9;\n        -> 2\n','https://mariadb.com/kb/en/mod/'),(114,'TINYTEXT',22,'TINYTEXT [CHARACTER SET charset_name] [COLLATE collation_name]\n\nA TEXT column with a maximum length of 255 (28 - 1) characters. The\neffective maximum length is less if the value contains multi-byte\ncharacters. Each TINYTEXT value is stored using a 1-byte length prefix\nthat indicates the number of bytes in the value.\n\nURL: https://mariadb.com/kb/en/tinytext/\n\n','','https://mariadb.com/kb/en/tinytext/'),(115,'OPTIMIZE TABLE',20,'Syntax:\nOPTIMIZE [NO_WRITE_TO_BINLOG | LOCAL] TABLE\n    tbl_name [, tbl_name] ...\n\nOPTIMIZE TABLE should be used if you have deleted a large part of a\ntable or if you have made many changes to a table with variable-length\nrows (tables that have VARCHAR, VARBINARY, BLOB, or TEXT columns).\nDeleted rows are maintained in a linked list and subsequent INSERT\noperations reuse old row positions. You can use OPTIMIZE TABLE to\nreclaim the unused space and to defragment the data file. After\nextensive changes to a table, this statement may also improve\nperformance of statements that use the table, sometimes significantly.\n\nThis statement requires SELECT and INSERT privileges for the table.\n\nOPTIMIZE TABLE is supported for partitioned tables, and you can use\nALTER TABLE ... OPTIMIZE PARTITION to optimize one or more partitions;\nfor more information, see [HELP ALTER TABLE], and\nhttp://dev.mysql.com/doc/refman/5.5/en/partitioning-maintenance.html.\n\nURL: https://mariadb.com/kb/en/optimize-table/\n\n','','https://mariadb.com/kb/en/optimize-table/'),(116,'DECODE',12,'Syntax:\nDECODE(crypt_str,pass_str)\n\nDecrypts the encrypted string crypt_str using pass_str as the password.\ncrypt_str should be a string returned from ENCODE().\n\nURL: https://mariadb.com/kb/en/decode/\n\n','','https://mariadb.com/kb/en/decode/'),(117,'<=>',18,'Syntax:\n<=>\n\nNULL-safe equal. This operator performs an equality comparison like the\n= operator, but returns 1 rather than NULL if both operands are NULL,\nand 0 rather than NULL if one operand is NULL.\n\nURL: https://mariadb.com/kb/en/null-safe-equal/\n\n','MariaDB> SELECT 1 <=> 1, NULL <=> NULL, 1 <=> NULL;\n        -> 1, 1, 0\nMariaDB> SELECT 1 = 1, NULL = NULL, 1 = NULL;\n        -> 1, NULL, NULL\n','https://mariadb.com/kb/en/null-safe-equal/'),(118,'HELP STATEMENT',28,'Syntax:\nHELP \'search_string\'\n\nThe HELP statement returns online information from the MySQL Reference\nmanual. Its proper operation requires that the help tables in the mysql\ndatabase be initialized with help topic information.\n\nThe HELP statement searches the help tables for the given search string\nand displays the result of the search. The search string is not case\nsensitive.\n\nURL: https://mariadb.com/kb/en/help-command/\n\n','','https://mariadb.com/kb/en/help-command/'),(119,'RESET',26,'Syntax:\nRESET reset_option [, reset_option] ...\n\nThe RESET statement is used to clear the state of various server\noperations. You must have the RELOAD privilege to execute RESET.\n\nRESET acts as a stronger version of the FLUSH statement. See [HELP\nFLUSH].\n\nThe RESET statement causes an implicit commit. See\nhttps://mariadb.com/kb/en/sql-statements-that-cause-an-implicit-commit/.\n\nURL: https://mariadb.com/kb/en/reset/\n\n','','https://mariadb.com/kb/en/reset/'),(120,'GET_LOCK',14,'Syntax:\nGET_LOCK(str,timeout)\n\nTries to obtain a lock with a name given by the string str, using a\ntimeout of timeout seconds. Returns 1 if the lock was obtained\nsuccessfully, 0 if the attempt timed out (for example, because another\nclient has previously locked the name), or NULL if an error occurred\n(such as running out of memory or the thread was killed with mysqladmin\nkill). If you have a lock obtained with GET_LOCK(), it is released when\nyou execute RELEASE_LOCK(), execute a new GET_LOCK(), or your\nconnection terminates (either normally or abnormally). Locks obtained\nwith GET_LOCK() do not interact with transactions. That is, committing\na transaction does not release any such locks obtained during the\ntransaction.\n\nThis function can be used to implement application locks or to simulate\nrecord locks. Names are locked on a server-wide basis. If a name has\nbeen locked by one client, GET_LOCK() blocks any request by another\nclient for a lock with the same name. This enables clients that agree\non a given lock name to use the name to perform cooperative advisory\nlocking. But be aware that it also enables a client that is not among\nthe set of cooperating clients to lock a name, either inadvertently or\ndeliberately, and thus prevent any of the cooperating clients from\nlocking that name. One way to reduce the likelihood of this is to use\nlock names that are database-specific or application-specific. For\nexample, use lock names of the form db_name.str or app_name.str.\n\nURL: https://mariadb.com/kb/en/get_lock/\n\n','MariaDB> SELECT GET_LOCK(\'lock1\',10);\n        -> 1\nMariaDB> SELECT IS_FREE_LOCK(\'lock2\');\n        -> 1\nMariaDB> SELECT GET_LOCK(\'lock2\',10);\n        -> 1\nMariaDB> SELECT RELEASE_LOCK(\'lock2\');\n        -> 1\nMariaDB> SELECT RELEASE_LOCK(\'lock1\');\n        -> NULL\n','https://mariadb.com/kb/en/get_lock/'),(121,'UCASE',37,'Syntax:\nUCASE(str)\n\nUCASE() is a synonym for UPPER().\n\nURL: https://mariadb.com/kb/en/ucase/\n\n','','https://mariadb.com/kb/en/ucase/'),(122,'SHOW BINLOG EVENTS',26,'Syntax:\nSHOW BINLOG EVENTS\n   [IN \'log_name\'] [FROM pos] [LIMIT [offset,] row_count]\n\nShows the events in the binary log. If you do not specify \'log_name\',\nthe first binary log is displayed.\n\nURL: https://mariadb.com/kb/en/show-binlog-events/\n\n','','https://mariadb.com/kb/en/show-binlog-events/'),(123,'MPOLYFROMWKB',32,'MPolyFromWKB(wkb[,srid]), MultiPolygonFromWKB(wkb[,srid])\n\nConstructs a MULTIPOLYGON value using its WKB representation and SRID.\n\nURL: https://mariadb.com/kb/en/mpolyfromwkb/\n\n','','https://mariadb.com/kb/en/mpolyfromwkb/'),(124,'ITERATE',23,'Syntax:\nITERATE label\n\nITERATE can appear only within LOOP, REPEAT, and WHILE statements.\nITERATE means \"start the loop again.\"\n\nURL: https://mariadb.com/kb/en/iterate/\n\n','','https://mariadb.com/kb/en/iterate/'),(125,'DO',27,'Syntax:\nDO expr [, expr] ...\n\nDO executes the expressions but does not return any results. In most\nrespects, DO is shorthand for SELECT expr, ..., but has the advantage\nthat it is slightly faster when you do not care about the result.\n\nDO is useful primarily with functions that have side effects, such as\nRELEASE_LOCK().\n\nURL: https://mariadb.com/kb/en/do/\n\n','','https://mariadb.com/kb/en/do/'),(126,'CURTIME',31,'Syntax:\nCURTIME()\n\nReturns the current time as a value in \'HH:MM:SS\' or HHMMSS.uuuuuu\nformat, depending on whether the function is used in a string or\nnumeric context. The value is expressed in the current time zone.\n\nURL: https://mariadb.com/kb/en/curtime/\n\n','MariaDB> SELECT CURTIME();\n        -> \'23:50:26\'\nMariaDB> SELECT CURTIME() + 0;\n        -> 235026.000000\n','https://mariadb.com/kb/en/curtime/'),(127,'CHAR_LENGTH',37,'Syntax:\nCHAR_LENGTH(str)\n\nReturns the length of the string str, measured in characters. A\nmulti-byte character counts as a single character. This means that for\na string containing five 2-byte characters, LENGTH() returns 10,\nwhereas CHAR_LENGTH() returns 5.\n\nURL: https://mariadb.com/kb/en/char_length/\n\n','','https://mariadb.com/kb/en/char_length/'),(128,'BIGINT',22,'BIGINT[(M)] [UNSIGNED] [ZEROFILL]\n\nA large integer. The signed range is -9223372036854775808 to\n9223372036854775807. The unsigned range is 0 to 18446744073709551615.\n\nSERIAL is an alias for BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE.\n\nURL: https://mariadb.com/kb/en/bigint/\n\n','','https://mariadb.com/kb/en/bigint/'),(129,'SET',26,'Syntax:\nSET variable_assignment [, variable_assignment] ...\n\nvariable_assignment:\n      user_var_name = expr\n    | [GLOBAL | SESSION] system_var_name = expr\n    | [@@global. | @@session. | @@]system_var_name = expr\n\nThe SET statement assigns values to different types of variables that\naffect the operation of the server or your client. Older versions of\nMySQL employed SET OPTION, but this syntax is deprecated in favor of\nSET without OPTION.\n\nURL: https://mariadb.com/kb/en/set/\n\n','','https://mariadb.com/kb/en/set/'),(130,'LOAD XML',27,'Syntax:\nLOAD XML [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE \'file_name\'\n    [REPLACE | IGNORE]\n    INTO TABLE [db_name.]tbl_name\n    [CHARACTER SET charset_name]\n    [ROWS IDENTIFIED BY \'<tagname>\']\n    [IGNORE number {LINES | ROWS}]\n    [(column_or_user_var,...)]\n    [SET col_name = expr,...]\n\nThe LOAD XML statement reads data from an XML file into a table. The\nfile_name must be given as a literal string. The tagname in the\noptional ROWS IDENTIFIED BY clause must also be given as a literal\nstring, and must be surrounded by angle brackets (< and >).\n\nLOAD XML acts as the complement of running the mysql client in XML\noutput mode (that is, starting the client with the --xml option). To\nwrite data from a table to an XML file, use a command such as the\nfollowing one from the system shell:\n\nshell> mysql --xml -e \'SELECT * FROM mytable\' > file.xml\n\nTo read the file back into a table, use LOAD XML INFILE. By default,\nthe <row> element is considered to be the equivalent of a database\ntable row; this can be changed using the ROWS IDENTIFIED BY clause.\n\nThis statement supports three different XML formats:\n\no Column names as attributes and column values as attribute values:\n\n<row column1=\"value1\" column2=\"value2\" .../>\n\no Column names as tags and column values as the content of these tags:\n\n<row>\n  <column1>value1</column1>\n  <column2>value2</column2>\n</row>\n\no Column names are the name attributes of <field> tags, and values are\n  the contents of these tags:\n\n<row>\n  <field name=\'column1\'>value1</field>\n  <field name=\'column2\'>value2</field>\n</row>\n\n  This is the format used by other MySQL tools, such as mysqldump.\n\nAll 3 formats can be used in the same XML file; the import routine\nautomatically detects the format for each row and interprets it\ncorrectly. Tags are matched based on the tag or attribute name and the\ncolumn name.\n\nThe following clauses work essentially the same way for LOAD XML as\nthey do for LOAD DATA:\n\no LOW_PRIORITY or CONCURRENT\n\no LOCAL\n\no REPLACE or IGNORE\n\no CHARACTER SET\n\no (column_or_user_var,...)\n\no SET\n\nSee [HELP LOAD DATA], for more information about these clauses.\n\nThe IGNORE number LINES or IGNORE number ROWS clause causes the first\nnumber rows in the XML file to be skipped. It is analogous to the LOAD\nDATA statement\'s IGNORE ... LINES clause.\n\nURL: https://mariadb.com/kb/en/load-xml/\n\n','','https://mariadb.com/kb/en/load-xml/'),(131,'CONV',4,'Syntax:\nCONV(N,from_base,to_base)\n\nConverts numbers between different number bases. Returns a string\nrepresentation of the number N, converted from base from_base to base\nto_base. Returns NULL if any argument is NULL. The argument N is\ninterpreted as an integer, but may be specified as an integer or a\nstring. The minimum base is 2 and the maximum base is 36. If to_base is\na negative number, N is regarded as a signed number. Otherwise, N is\ntreated as unsigned. CONV() works with 64-bit precision.\n\nURL: https://mariadb.com/kb/en/conv/\n\n','MariaDB> SELECT CONV(\'a\',16,2);\n        -> \'1010\'\nMariaDB> SELECT CONV(\'6E\',18,8);\n        -> \'172\'\nMariaDB> SELECT CONV(-17,10,-18);\n        -> \'-H\'\nMariaDB> SELECT CONV(10+\'10\'+\'10\'+0xa,10,10);\n        -> \'40\'\n','https://mariadb.com/kb/en/conv/'),(132,'DATE',22,'DATE\n\nA date. The supported range is \'1000-01-01\' to \'9999-12-31\'. MySQL\ndisplays DATE values in \'YYYY-MM-DD\' format, but permits assignment of\nvalues to DATE columns using either strings or numbers.\n\nURL: https://mariadb.com/kb/en/date/\n\n','','https://mariadb.com/kb/en/date/'),(133,'ASSIGN-VALUE',15,'Syntax:\n:=\n\nAssignment operator. Causes the user variable on the left hand side of\nthe operator to take on the value to its right. The value on the right\nhand side may be a literal value, another variable storing a value, or\nany legal expression that yields a scalar value, including the result\nof a query (provided that this value is a scalar value). You can\nperform multiple assignments in the same SET statement. You can perform\nmultiple assignments in the same statement-\n\nUnlike =, the := operator is never interpreted as a comparison\noperator. This means you can use := in any valid SQL statement (not\njust in SET statements) to assign a value to a variable.\n\nURL: https://mariadb.com/kb/en/assignment-operator/\n\n','MariaDB> SELECT @var1, @var2;\n        -> NULL, NULL\nMariaDB> SELECT @var1 := 1, @var2;\n        -> 1, NULL\nMariaDB> SELECT @var1, @var2;\n        -> 1, NULL\nMariaDB> SELECT @var1, @var2 := @var1;\n        -> 1, 1\nMariaDB> SELECT @var1, @var2;\n        -> 1, 1\n\nMariaDB> SELECT @var1:=COUNT(*) FROM t1;\n        -> 4\nMariaDB> SELECT @var1;\n        -> 4\n','https://mariadb.com/kb/en/assignment-operator/'),(134,'SHOW OPEN TABLES',26,'Syntax:\nSHOW OPEN TABLES [{FROM | IN} db_name]\n    [LIKE \'pattern\' | WHERE expr]\n\nSHOW OPEN TABLES lists the non-TEMPORARY tables that are currently open\nin the table cache. See\nhttp://dev.mysql.com/doc/refman/5.5/en/table-cache.html. The FROM\nclause, if present, restricts the tables shown to those present in the\ndb_name database. The LIKE clause, if present, indicates which table\nnames to match. The WHERE clause can be given to select rows using more\ngeneral conditions, as discussed in\nhttps://mariadb.com/kb/en/extended-show/.\n\nURL: https://mariadb.com/kb/en/show-open-tables/\n\n','','https://mariadb.com/kb/en/show-open-tables/'),(135,'EXTRACT',31,'Syntax:\nEXTRACT(unit FROM date)\n\nThe EXTRACT() function uses the same kinds of unit specifiers as\nDATE_ADD() or DATE_SUB(), but extracts parts from the date rather than\nperforming date arithmetic.\n\nURL: https://mariadb.com/kb/en/extract/\n\n','MariaDB> SELECT EXTRACT(YEAR FROM \'2009-07-02\');\n       -> 2009\nMariaDB> SELECT EXTRACT(YEAR_MONTH FROM \'2009-07-02 01:02:03\');\n       -> 200907\nMariaDB> SELECT EXTRACT(DAY_MINUTE FROM \'2009-07-02 01:02:03\');\n       -> 20102\nMariaDB> SELECT EXTRACT(MICROSECOND\n    ->                FROM \'2003-01-02 10:30:00.000123\');\n        -> 123\n','https://mariadb.com/kb/en/extract/'),(136,'ENCRYPT',12,'Syntax:\nENCRYPT(str[,salt])\n\nEncrypts str using the Unix crypt() system call and returns a binary\nstring. The salt argument must be a string with at least two characters\nor the result will be NULL. If no salt argument is given, a random\nvalue is used.\n\nURL: https://mariadb.com/kb/en/encrypt/\n\n','MariaDB> SELECT ENCRYPT(\'hello\');\n        -> \'VxuFAJXVARROc\'\n','https://mariadb.com/kb/en/encrypt/'),(137,'SHOW STATUS',26,'Syntax:\nSHOW [GLOBAL | SESSION] STATUS\n    [LIKE \'pattern\' | WHERE expr]\n\nSHOW STATUS provides server status information. This information also\ncan be obtained using the mysqladmin extended-status command. The LIKE\nclause, if present, indicates which variable names to match. The WHERE\nclause can be given to select rows using more general conditions, as\ndiscussed in https://mariadb.com/kb/en/extended-show/.\nThis statement does not require any privilege. It requires only the\nability to connect to the server.\nWith a LIKE clause, the statement displays only rows for those\nvariables with names that match the pattern:\n\nMariaDB> SHOW STATUS LIKE \'Key%\';\n+--------------------+----------+\n| Variable_name      | Value    |\n+--------------------+----------+\n| Key_blocks_used    | 14955    |\n| Key_read_requests  | 96854827 |\n| Key_reads          | 162040   |\n| Key_write_requests | 7589728  |\n| Key_writes         | 3813196  |\n+--------------------+----------+\n\nWith the GLOBAL modifier, SHOW STATUS displays the status values for\nall connections to MySQL. With SESSION, it displays the status values\nfor the current connection. If no modifier is present, the default is\nSESSION. LOCAL is a synonym for SESSION.\n\nSome status variables have only a global value. For these, you get the\nsame value for both GLOBAL and SESSION. The scope for each status\nvariable is listed at\nhttps://mariadb.com/kb/en/server-status-variables/.\n\nEach invocation of the SHOW STATUS statement uses an internal temporary\ntable and increments the global Created_tmp_tables value.\n\nURL: https://mariadb.com/kb/en/show-status/\n\n','','https://mariadb.com/kb/en/show-status/'),(138,'EXTRACTVALUE',37,'Syntax:\nExtractValue(xml_frag, xpath_expr)\n\nExtractValue() takes two string arguments, a fragment of XML markup\nxml_frag and an XPath expression xpath_expr (also known as a locator);\nit returns the text (CDATA) of the first text node which is a child of\nthe elements or elements matched by the XPath expression. In MySQL 5.5,\nthe XPath expression can contain at most 127 characters. (This\nlimitation is lifted in MySQL 5.6.)\n\nUsing this function is the equivalent of performing a match using the\nxpath_expr after appending /text(). In other words,\nExtractValue(\'<a><b>Sakila</b></a>\', \'/a/b\') and\nExtractValue(\'<a><b>Sakila</b></a>\', \'/a/b/text()\') produce the same\nresult.\n\nIf multiple matches are found, the content of the first child text node\nof each matching element is returned (in the order matched) as a\nsingle, space-delimited string.\n\nIf no matching text node is found for the expression (including the\nimplicit /text())---for whatever reason, as long as xpath_expr is\nvalid, and xml_frag consists of elements which are properly nested and\nclosed---an empty string is returned. No distinction is made between a\nmatch on an empty element and no match at all. This is by design.\n\nIf you need to determine whether no matching element was found in\nxml_frag or such an element was found but contained no child text\nnodes, you should test the result of an expression that uses the XPath\ncount() function. For example, both of these statements return an empty\nstring, as shown here:\n\nMariaDB> SELECT ExtractValue(\'<a><b/></a>\', \'/a/b\');\n+-------------------------------------+\n| ExtractValue(\'<a><b/></a>\', \'/a/b\') |\n+-------------------------------------+\n|                                     |\n+-------------------------------------+\n1 row in set (0.00 sec)\n\nMariaDB> SELECT ExtractValue(\'<a><c/></a>\', \'/a/b\');\n+-------------------------------------+\n| ExtractValue(\'<a><c/></a>\', \'/a/b\') |\n+-------------------------------------+\n|                                     |\n+-------------------------------------+\n1 row in set (0.00 sec)\n\nHowever, you can determine whether there was actually a matching\nelement using the following:\n\nMariaDB> SELECT ExtractValue(\'<a><b/></a>\', \'count(/a/b)\');\n+-------------------------------------+\n| ExtractValue(\'<a><b/></a>\', \'count(/a/b)\') |\n+-------------------------------------+\n| 1                                   |\n+-------------------------------------+\n1 row in set (0.00 sec)\n\nMariaDB> SELECT ExtractValue(\'<a><c/></a>\', \'count(/a/b)\');\n+-------------------------------------+\n| ExtractValue(\'<a><c/></a>\', \'count(/a/b)\') |\n+-------------------------------------+\n| 0                                   |\n+-------------------------------------+\n1 row in set (0.01 sec)\n\n*Important*: ExtractValue() returns only CDATA, and does not return any\ntags that might be contained within a matching tag, nor any of their\ncontent (see the result returned as val1 in the following example).\n\nURL: https://mariadb.com/kb/en/extractvalue/\n\n','MariaDB> SELECT\n    ->   ExtractValue(\'<a>ccc<b>ddd</b></a>\', \'/a\') AS val1,\n    ->   ExtractValue(\'<a>ccc<b>ddd</b></a>\', \'/a/b\') AS val2,\n    ->   ExtractValue(\'<a>ccc<b>ddd</b></a>\', \'//b\') AS val3,\n    ->   ExtractValue(\'<a>ccc<b>ddd</b></a>\', \'/b\') AS val4,\n    ->   ExtractValue(\'<a>ccc<b>ddd</b><b>eee</b></a>\', \'//b\') AS val5;\n\n+------+------+------+------+---------+\n| val1 | val2 | val3 | val4 | val5    |\n+------+------+------+------+---------+\n| ccc  | ddd  | ddd  |      | ddd eee |\n+------+------+------+------+---------+\n','https://mariadb.com/kb/en/extractvalue/'),(139,'OLD_PASSWORD',12,'Syntax:\nOLD_PASSWORD(str)\n\nOLD_PASSWORD() was added when the implementation of PASSWORD() was\nchanged in MySQL 4.1 to improve security. OLD_PASSWORD() returns the\nvalue of the pre-4.1 implementation of PASSWORD() as a string, and is\nintended to permit you to reset passwords for any pre-4.1 clients that\nneed to connect to your version 5.5 MySQL server without locking them\nout. See http://dev.mysql.com/doc/refman/5.1/en/password-hashing.html.\n\nAs of MySQL 5.5.3, the return value is a nonbinary string in the\nconnection character set. Before 5.5.3, the return value is a binary\nstring.\n\nURL: https://mariadb.com/kb/en/old_password/\n\n','','https://mariadb.com/kb/en/old_password/'),(140,'FORMAT',37,'Syntax:\nFORMAT(X,D[,locale])\n\nFormats the number X to a format like \'#,###,###.##\', rounded to D\ndecimal places, and returns the result as a string. If D is 0, the\nresult has no decimal point or fractional part.\n\nThe optional third parameter enables a locale to be specified to be\nused for the result number\'s decimal point, thousands separator, and\ngrouping between separators. Permissible locale values are the same as\nthe legal values for the lc_time_names system variable (see\nhttps://mariadb.com/kb/en/server-locale/). If no\nlocale is specified, the default is \'en_US\'.\n\nURL: https://mariadb.com/kb/en/format/\n\n','MariaDB> SELECT FORMAT(12332.123456, 4);\n        -> \'12,332.1235\'\nMariaDB> SELECT FORMAT(12332.1,4);\n        -> \'12,332.1000\'\nMariaDB> SELECT FORMAT(12332.2,0);\n        -> \'12,332\'\nMariaDB> SELECT FORMAT(12332.2,2,\'de_DE\');\n        -> \'12.332,20\'\n','https://mariadb.com/kb/en/format/'),(141,'||',15,'Syntax:\nOR, ||\n\nLogical OR. When both operands are non-NULL, the result is 1 if any\noperand is nonzero, and 0 otherwise. With a NULL operand, the result is\n1 if the other operand is nonzero, and NULL otherwise. If both operands\nare NULL, the result is NULL.\n\nURL: https://mariadb.com/kb/en/or/\n\n','MariaDB> SELECT 1 || 1;\n        -> 1\nMariaDB> SELECT 1 || 0;\n        -> 1\nMariaDB> SELECT 0 || 0;\n        -> 0\nMariaDB> SELECT 0 || NULL;\n        -> NULL\nMariaDB> SELECT 1 || NULL;\n        -> 1\n','https://mariadb.com/kb/en/or/'),(142,'BIT_LENGTH',37,'Syntax:\nBIT_LENGTH(str)\n\nReturns the length of the string str in bits.\n\nURL: https://mariadb.com/kb/en/bit_length/\n\n','MariaDB> SELECT BIT_LENGTH(\'text\');\n        -> 32\n','https://mariadb.com/kb/en/bit_length/'),(143,'EXTERIORRING',2,'ExteriorRing(poly)\n\nReturns the exterior ring of the Polygon value poly as a LineString.\n\nURL: https://mariadb.com/kb/en/exteriorring/\n\n','MariaDB> SET @poly =\n    -> \'Polygon((0 0,0 3,3 3,3 0,0 0),(1 1,1 2,2 2,2 1,1 1))\';\nMariaDB> SELECT AsText(ExteriorRing(GeomFromText(@poly)));\n+-------------------------------------------+\n| AsText(ExteriorRing(GeomFromText(@poly))) |\n+-------------------------------------------+\n| LINESTRING(0 0,0 3,3 3,3 0,0 0)           |\n+-------------------------------------------+\n','https://mariadb.com/kb/en/exteriorring/'),(144,'GEOMFROMWKB',32,'GeomFromWKB(wkb[,srid]), GeometryFromWKB(wkb[,srid])\n\nConstructs a geometry value of any type using its WKB representation\nand SRID.\n\nURL: https://mariadb.com/kb/en/geomfromwkb/\n\n','','https://mariadb.com/kb/en/geomfromwkb/'),(145,'SHOW SLAVE HOSTS',26,'Syntax:\nSHOW SLAVE HOSTS\n\nDisplays a list of replication slaves currently registered with the\nmaster. (Before MySQL 5.5.3, only slaves started with the\n--report-host=host_name option are visible in this list.)\n\nThe list is displayed on any server (not just the master server). The\noutput looks like this:\n\nMariaDB> SHOW SLAVE HOSTS;\n+------------+-----------+------+-----------+\n| Server_id  | Host      | Port | Master_id |\n+------------+-----------+------+-----------+\n|  192168010 | iconnect2 | 3306 | 192168011 |\n| 1921680101 | athena    | 3306 | 192168011 |\n+------------+-----------+------+-----------+\n\no Server_id: The unique server ID of the slave server, as configured in\n  the server\'s option file, or on the command line with\n  --server-id=value.\n\no Host: The host name of the slave server, as configured in the\n  server\'s option file, or on the command line with\n  --report-host=host_name. Note that this can differ from the machine\n  name as configured in the operating system.\n\no Port: The port the slave server is listening on.\n\n  In MySQL 5.5.23 and later, a zero in this column means that the slave\n  port (--report-port) was not set. Prior to MySQL 5.5.23, 3306 was\n  used as the default in such cases (Bug #13333431).\n\no Master_id: The unique server ID of the master server that the slave\n  server is replicating from.\n\nSome MySQL versions report another variable, Rpl_recovery_rank. This\nvariable was never used, and was removed in MySQL 5.5.3. (Bug #13963)\n\nURL: https://mariadb.com/kb/en/show-slave-hosts/\n\n','','https://mariadb.com/kb/en/show-slave-hosts/'),(146,'START TRANSACTION',8,'Syntax:\nSTART TRANSACTION [WITH CONSISTENT SNAPSHOT]\nBEGIN [WORK]\nCOMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE]\nROLLBACK [WORK] [AND [NO] CHAIN] [[NO] RELEASE]\nSET autocommit = {0 | 1}\n\nThese statements provide control over use of transactions:\n\no START TRANSACTION or BEGIN start a new transaction.\n\no COMMIT commits the current transaction, making its changes permanent.\n\no ROLLBACK rolls back the current transaction, canceling its changes.\n\no SET autocommit disables or enables the default autocommit mode for\n  the current session.\n\nBy default, MySQL runs with autocommit mode enabled. This means that as\nsoon as you execute a statement that updates (modifies) a table, MySQL\nstores the update on disk to make it permanent. The change cannot be\nrolled back.\n\nTo disable autocommit mode implicitly for a single series of\nstatements, use the START TRANSACTION statement:\n\nSTART TRANSACTION;\nSELECT @A:=SUM(salary) FROM table1 WHERE type=1;\nUPDATE table2 SET summary=@A WHERE type=1;\nCOMMIT;\n\nWith START TRANSACTION, autocommit remains disabled until you end the\ntransaction with COMMIT or ROLLBACK. The autocommit mode then reverts\nto its previous state.\n\nYou can also begin a transaction like this:\n\nSTART TRANSACTION WITH CONSISTENT SNAPSHOT;\n\nThe WITH CONSISTENT SNAPSHOT option starts a consistent read for\nstorage engines that are capable of it. This applies only to InnoDB.\nThe effect is the same as issuing a START TRANSACTION followed by a\nSELECT from any InnoDB table. See\nhttp://dev.mysql.com/doc/refman/5.5/en/innodb-consistent-read.html. The\nWITH CONSISTENT SNAPSHOT option does not change the current transaction\nisolation level, so it provides a consistent snapshot only if the\ncurrent isolation level is one that permits consistent read (REPEATABLE\nREAD or SERIALIZABLE).\n\n*Important*: Many APIs used for writing MySQL client applications (such\nas JDBC) provide their own methods for starting transactions that can\n(and sometimes should) be used instead of sending a START TRANSACTION\nstatement from the client. See\nhttp://dev.mysql.com/doc/refman/5.5/en/connectors-apis.html, or the\ndocumentation for your API, for more information.\n\nTo disable autocommit mode explicitly, use the following statement:\n\nSET autocommit=0;\n\nAfter disabling autocommit mode by setting the autocommit variable to\nzero, changes to transaction-safe tables (such as those for InnoDB) are not made permanent immediately. You must use COMMIT to\nstore your changes to disk or ROLLBACK to ignore the changes.\n\nautocommit is a session variable and must be set for each session. To\ndisable autocommit mode for each new connection, see the description of\nthe autocommit system variable at\nhttps://mariadb.com/kb/en/server-system-variables/.\n\nBEGIN and BEGIN WORK are supported as aliases of START TRANSACTION for\ninitiating a transaction. START TRANSACTION is standard SQL syntax and\nis the recommended way to start an ad-hoc transaction.\n\nThe BEGIN statement differs from the use of the BEGIN keyword that\nstarts a BEGIN ... END compound statement. The latter does not begin a\ntransaction. See [HELP BEGIN END].\n\n*Note*: Within all stored programs (stored procedures and functions,\ntriggers, and events), the parser treats BEGIN [WORK] as the beginning\nof a BEGIN ... END block. Begin a transaction in this context with\nSTART TRANSACTION instead.\n\nThe optional WORK keyword is supported for COMMIT and ROLLBACK, as are\nthe CHAIN and RELEASE clauses. CHAIN and RELEASE can be used for\nadditional control over transaction completion. The value of the\ncompletion_type system variable determines the default completion\nbehavior. See\nhttps://mariadb.com/kb/en/server-system-variables/.\n\nThe AND CHAIN clause causes a new transaction to begin as soon as the\ncurrent one ends, and the new transaction has the same isolation level\nas the just-terminated transaction. The RELEASE clause causes the\nserver to disconnect the current client session after terminating the\ncurrent transaction. Including the NO keyword suppresses CHAIN or\nRELEASE completion, which can be useful if the completion_type system\nvariable is set to cause chaining or release completion by default.\n\nURL: https://mariadb.com/kb/en/start-transaction/\n\n','','https://mariadb.com/kb/en/start-transaction/'),(147,'BETWEEN AND',18,'Syntax:\nexpr BETWEEN min AND max\n\nIf expr is greater than or equal to min and expr is less than or equal\nto max, BETWEEN returns 1, otherwise it returns 0. This is equivalent\nto the expression (min <= expr AND expr <= max) if all the arguments\nare of the same type. Otherwise type conversion takes place according\nto the rules described in\nhttps://mariadb.com/kb/en/type-conversion/, but\napplied to all the three arguments.\n\nURL: https://mariadb.com/kb/en/between-and/\n\n','MariaDB> SELECT 2 BETWEEN 1 AND 3, 2 BETWEEN 3 and 1;\n        -> 1, 0\nMariaDB> SELECT 1 BETWEEN 2 AND 3;\n        -> 0\nMariaDB> SELECT \'b\' BETWEEN \'a\' AND \'c\';\n        -> 1\nMariaDB> SELECT 2 BETWEEN 2 AND \'3\';\n        -> 1\nMariaDB> SELECT 2 BETWEEN 2 AND \'x-3\';\n        -> 0\n','https://mariadb.com/kb/en/between-and/'),(148,'MULTIPOLYGON',24,'MultiPolygon(poly1,poly2,...)\n\nConstructs a MultiPolygon value from a set of Polygon or WKB Polygon\narguments.\n\nURL: https://mariadb.com/kb/en/multipolygon/\n\n','','https://mariadb.com/kb/en/multipolygon/'),(149,'TIME_FORMAT',31,'Syntax:\nTIME_FORMAT(time,format)\n\nThis is used like the DATE_FORMAT() function, but the format string may\ncontain format specifiers only for hours, minutes, seconds, and\nmicroseconds. Other specifiers produce a NULL value or 0.\n\nURL: https://mariadb.com/kb/en/time_format/\n\n','MariaDB> SELECT TIME_FORMAT(\'100:00:00\', \'%H %k %h %I %l\');\n        -> \'100 100 04 04 4\'\n','https://mariadb.com/kb/en/time_format/'),(150,'LEFT',37,'Syntax:\nLEFT(str,len)\n\nReturns the leftmost len characters from the string str, or NULL if any\nargument is NULL.\n\nURL: https://mariadb.com/kb/en/left/\n\n','MariaDB> SELECT LEFT(\'foobarbar\', 5);\n        -> \'fooba\'\n','https://mariadb.com/kb/en/left/'),(151,'FLUSH QUERY CACHE',26,'You can defragment the query cache to better utilize its memory with\nthe FLUSH QUERY CACHE statement. The statement does not remove any\nqueries from the cache.\n\nThe RESET QUERY CACHE statement removes all query results from the\nquery cache. The FLUSH TABLES statement also does this.\n\nURL: https://mariadb.com/kb/en/flush-query-cache/\n\n','','https://mariadb.com/kb/en/flush-query-cache/'),(152,'SET DATA TYPE',22,'SET(\'value1\',\'value2\',...) [CHARACTER SET charset_name] [COLLATE\ncollation_name]\n\nA set. A string object that can have zero or more values, each of which\nmust be chosen from the list of values \'value1\', \'value2\', ... A SET\ncolumn can have a maximum of 64 members. SET values are represented\ninternally as integers.\n\nURL: https://mariadb.com/kb/en/set-data-type/\n\n','','https://mariadb.com/kb/en/set-data-type/'),(153,'RAND',4,'Syntax:\nRAND(), RAND(N)\n\nReturns a random floating-point value v in the range 0 <= v < 1.0. If a\nconstant integer argument N is specified, it is used as the seed value,\nwhich produces a repeatable sequence of column values. In the following\nexample, note that the sequences of values produced by RAND(3) is the\nsame both places where it occurs.\n\nURL: https://mariadb.com/kb/en/rand/\n\n','MariaDB> CREATE TABLE t (i INT);\nQuery OK, 0 rows affected (0.42 sec)\n\nMariaDB> INSERT INTO t VALUES(1),(2),(3);\nQuery OK, 3 rows affected (0.00 sec)\nRecords: 3  Duplicates: 0  Warnings: 0\n\nMariaDB> SELECT i, RAND() FROM t;\n+------+------------------+\n| i    | RAND()           |\n+------+------------------+\n|    1 | 0.61914388706828 |\n|    2 | 0.93845168309142 |\n|    3 | 0.83482678498591 |\n+------+------------------+\n3 rows in set (0.00 sec)\n\nMariaDB> SELECT i, RAND(3) FROM t;\n+------+------------------+\n| i    | RAND(3)          |\n+------+------------------+\n|    1 | 0.90576975597606 |\n|    2 | 0.37307905813035 |\n|    3 | 0.14808605345719 |\n+------+------------------+\n3 rows in set (0.00 sec)\n\nMariaDB> SELECT i, RAND() FROM t;\n+------+------------------+\n| i    | RAND()           |\n+------+------------------+\n|    1 | 0.35877890638893 |\n|    2 | 0.28941420772058 |\n|    3 | 0.37073435016976 |\n+------+------------------+\n3 rows in set (0.00 sec)\n\nMariaDB> SELECT i, RAND(3) FROM t;\n+------+------------------+\n| i    | RAND(3)          |\n+------+------------------+\n|    1 | 0.90576975597606 |\n|    2 | 0.37307905813035 |\n|    3 | 0.14808605345719 |\n+------+------------------+\n3 rows in set (0.01 sec)\n','https://mariadb.com/kb/en/rand/'),(154,'RPAD',37,'Syntax:\nRPAD(str,len,padstr)\n\nReturns the string str, right-padded with the string padstr to a length\nof len characters. If str is longer than len, the return value is\nshortened to len characters.\n\nURL: https://mariadb.com/kb/en/rpad/\n\n','MariaDB> SELECT RPAD(\'hi\',5,\'?\');\n        -> \'hi???\'\nMariaDB> SELECT RPAD(\'hi\',1,\'?\');\n        -> \'h\'\n','https://mariadb.com/kb/en/rpad/'),(155,'CREATE DATABASE',39,'Syntax:\nCREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name\n    [create_specification] ...\n\ncreate_specification:\n    [DEFAULT] CHARACTER SET [=] charset_name\n  | [DEFAULT] COLLATE [=] collation_name\n\nCREATE DATABASE creates a database with the given name. To use this\nstatement, you need the CREATE privilege for the database. CREATE\nSCHEMA is a synonym for CREATE DATABASE.\n\nURL: https://mariadb.com/kb/en/create-database/\n\n','','https://mariadb.com/kb/en/create-database/'),(156,'DEC',22,'DEC[(M[,D])] [UNSIGNED] [ZEROFILL], NUMERIC[(M[,D])] [UNSIGNED]\n[ZEROFILL], FIXED[(M[,D])] [UNSIGNED] [ZEROFILL]\n\nThese types are synonyms for DECIMAL. The FIXED synonym is available\nfor compatibility with other database systems.\n\nURL: https://mariadb.com/kb/en/dec-numeric-fixed/\n\n','','https://mariadb.com/kb/en/dec-numeric-fixed/'),(157,'VAR_POP',16,'Syntax:\nVAR_POP(expr)\n\nReturns the population standard variance of expr. It considers rows as\nthe whole population, not as a sample, so it has the number of rows as\nthe denominator. You can also use VARIANCE(), which is equivalent but\nis not standard SQL.\n\nVAR_POP() returns NULL if there were no matching rows.\n\nURL: https://mariadb.com/kb/en/var_pop/\n\n','','https://mariadb.com/kb/en/var_pop/'),(158,'ELT',37,'Syntax:\nELT(N,str1,str2,str3,...)\n\nReturns str1 if N = 1, str2 if N = 2, and so on. Returns NULL if N is\nless than 1 or greater than the number of arguments. ELT() is the\ncomplement of FIELD().\n\nURL: https://mariadb.com/kb/en/elt/.html\n\n','MariaDB> SELECT ELT(1, \'ej\', \'Heja\', \'hej\', \'foo\');\n        -> \'ej\'\nMariaDB> SELECT ELT(4, \'ej\', \'Heja\', \'hej\', \'foo\');\n        -> \'foo\'\n','https://mariadb.com/kb/en/elt/.html'),(159,'ALTER VIEW',39,'Syntax:\nALTER\n    [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]\n    [DEFINER = { user | CURRENT_USER }]\n    [SQL SECURITY { DEFINER | INVOKER }]\n    VIEW view_name [(column_list)]\n    AS select_statement\n    [WITH [CASCADED | LOCAL] CHECK OPTION]\n\nThis statement changes the definition of a view, which must exist. The\nsyntax is similar to that for CREATE VIEW and the effect is the same as\nfor CREATE OR REPLACE VIEW. See [HELP CREATE VIEW]. This statement\nrequires the CREATE VIEW and DROP privileges for the view, and some\nprivilege for each column referred to in the SELECT statement. ALTER\nVIEW is permitted only to the definer or users with the SUPER\nprivilege.\n\nURL: https://mariadb.com/kb/en/alter-view/\n\n','','https://mariadb.com/kb/en/alter-view/'),(160,'SHOW DATABASES',26,'Syntax:\nSHOW {DATABASES | SCHEMAS}\n    [LIKE \'pattern\' | WHERE expr]\n\nSHOW DATABASES lists the databases on the MySQL server host. SHOW\nSCHEMAS is a synonym for SHOW DATABASES. The LIKE clause, if present,\nindicates which database names to match. The WHERE clause can be given\nto select rows using more general conditions, as discussed in\nhttps://mariadb.com/kb/en/extended-show/.\n\nYou see only those databases for which you have some kind of privilege,\nunless you have the global SHOW DATABASES privilege. You can also get\nthis list using the mysqlshow command.\n\nIf the server was started with the --skip-show-database option, you\ncannot use this statement at all unless you have the SHOW DATABASES\nprivilege.\n\nURL: https://mariadb.com/kb/en/show-databases/\n\n','','https://mariadb.com/kb/en/show-databases/'),(161,'~',19,'Syntax:\n~\n\nInvert all bits.\n\nURL: https://mariadb.com/kb/en/3489/\n\n','MariaDB> SELECT 5 & ~1;\n        -> 4\n','https://mariadb.com/kb/en/3489/'),(162,'TEXT',22,'TEXT[(M)] [CHARACTER SET charset_name] [COLLATE collation_name]\n\nA TEXT column with a maximum length of 65,535 (216 - 1) characters. The\neffective maximum length is less if the value contains multi-byte\ncharacters. Each TEXT value is stored using a 2-byte length prefix that\nindicates the number of bytes in the value.\n\nAn optional length M can be given for this type. If this is done, MySQL\ncreates the column as the smallest TEXT type large enough to hold\nvalues M characters long.\n\nURL: https://mariadb.com/kb/en/text/\n\n','','https://mariadb.com/kb/en/text/'),(163,'CONCAT_WS',37,'Syntax:\nCONCAT_WS(separator,str1,str2,...)\n\nCONCAT_WS() stands for Concatenate With Separator and is a special form\nof CONCAT(). The first argument is the separator for the rest of the\narguments. The separator is added between the strings to be\nconcatenated. The separator can be a string, as can the rest of the\narguments. If the separator is NULL, the result is NULL.\n\nURL: https://mariadb.com/kb/en/concat_ws/\n\n','MariaDB> SELECT CONCAT_WS(\',\',\'First name\',\'Second name\',\'Last Name\');\n        -> \'First name,Second name,Last Name\'\nMariaDB> SELECT CONCAT_WS(\',\',\'First name\',NULL,\'Last Name\');\n        -> \'First name,Last Name\'\n','https://mariadb.com/kb/en/concat_ws/'),(164,'ROW_COUNT',17,'Syntax:\nROW_COUNT()\n\nBefore MySQL 5.5.5, ROW_COUNT() returns the number of rows changed,\ndeleted, or inserted by the last statement if it was an UPDATE, DELETE,\nor INSERT. For other statements, the value may not be meaningful.\n\nAs of MySQL 5.5.5, ROW_COUNT() returns a value as follows:\n\no DDL statements: 0. This applies to statements such as CREATE TABLE or\n  DROP TABLE.\n\no DML statements other than SELECT: The number of affected rows. This\n  applies to statements such as UPDATE, INSERT, or DELETE (as before),\n  but now also to statements such as ALTER TABLE and LOAD DATA INFILE.\n\no SELECT: -1 if the statement returns a result set, or the number of\n  rows \"affected\" if it does not. For example, for SELECT * FROM t1,\n  ROW_COUNT() returns -1. For SELECT * FROM t1 INTO OUTFILE\n  \'file_name\', ROW_COUNT() returns the number of rows written to the\n  file.\n\no SIGNAL statements: 0.\n\nFor UPDATE statements, the affected-rows value by default is the number\nof rows actually changed. If you specify the CLIENT_FOUND_ROWS flag to\nmysql_real_connect() when connecting to mysqld, the affected-rows value\nis the number of rows \"found\"; that is, matched by the WHERE clause.\n\nFor REPLACE statements, the affected-rows value is 2 if the new row\nreplaced an old row, because in this case, one row was inserted after\nthe duplicate was deleted.\n\nFor INSERT ... ON DUPLICATE KEY UPDATE statements, the affected-rows\nvalue is 1 if the row is inserted as a new row and 2 if an existing row\nis updated.\n\nThe ROW_COUNT() value is similar to the value from the\nmysql_affected_rows() C API function and the row count that the mysql\nclient displays following statement execution.\n\nURL: https://mariadb.com/kb/en/information-functions-row_count/\n\n','MariaDB> INSERT INTO t VALUES(1),(2),(3);\nQuery OK, 3 rows affected (0.00 sec)\nRecords: 3  Duplicates: 0  Warnings: 0\n\nMariaDB> SELECT ROW_COUNT();\n+-------------+\n| ROW_COUNT() |\n+-------------+\n|           3 |\n+-------------+\n1 row in set (0.00 sec)\n\nMariaDB> DELETE FROM t WHERE i IN(1,2);\nQuery OK, 2 rows affected (0.00 sec)\n\nMariaDB> SELECT ROW_COUNT();\n+-------------+\n| ROW_COUNT() |\n+-------------+\n|           2 |\n+-------------+\n1 row in set (0.00 sec)\n','https://mariadb.com/kb/en/information-functions-row_count/'),(165,'ASIN',4,'Syntax:\nASIN(X)\n\nReturns the arc sine of X, that is, the value whose sine is X. Returns\nNULL if X is not in the range -1 to 1.\n\nURL: https://mariadb.com/kb/en/asin/\n\n','MariaDB> SELECT ASIN(0.2);\n        -> 0.20135792079033\nMariaDB> SELECT ASIN(\'foo\');\n\n+-------------+\n| ASIN(\'foo\') |\n+-------------+\n|           0 |\n+-------------+\n1 row in set, 1 warning (0.00 sec)\n\nMariaDB> SHOW WARNINGS;\n+---------+------+-----------------------------------------+\n| Level   | Code | Message                                 |\n+---------+------+-----------------------------------------+\n| Warning | 1292 | Truncated incorrect DOUBLE value: \'foo\' |\n+---------+------+-----------------------------------------+\n','https://mariadb.com/kb/en/asin/'),(166,'SIGN',4,'Syntax:\nSIGN(X)\n\nReturns the sign of the argument as -1, 0, or 1, depending on whether X\nis negative, zero, or positive.\n\nURL: https://mariadb.com/kb/en/sign/\n\n','MariaDB> SELECT SIGN(-32);\n        -> -1\nMariaDB> SELECT SIGN(0);\n        -> 0\nMariaDB> SELECT SIGN(234);\n        -> 1\n','https://mariadb.com/kb/en/sign/'),(167,'SEC_TO_TIME',31,'Syntax:\nSEC_TO_TIME(seconds)\n\nReturns the seconds argument, converted to hours, minutes, and seconds,\nas a TIME value. The range of the result is constrained to that of the\nTIME data type. A warning occurs if the argument corresponds to a value\noutside that range.\n\nURL: https://mariadb.com/kb/en/sec_to_time/\n\n','MariaDB> SELECT SEC_TO_TIME(2378);\n        -> \'00:39:38\'\nMariaDB> SELECT SEC_TO_TIME(2378) + 0;\n        -> 3938\n','https://mariadb.com/kb/en/sec_to_time/'),(168,'FLOAT',22,'FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]\n\nA small (single-precision) floating-point number. Permissible values\nare -3.402823466E+38 to -1.175494351E-38, 0, and 1.175494351E-38 to\n3.402823466E+38. These are the theoretical limits, based on the IEEE\nstandard. The actual range might be slightly smaller depending on your\nhardware or operating system.\n\nM is the total number of digits and D is the number of digits following\nthe decimal point. If M and D are omitted, values are stored to the\nlimits permitted by the hardware. A single-precision floating-point\nnumber is accurate to approximately 7 decimal places.\n\nUNSIGNED, if specified, disallows negative values.\n\nUsing FLOAT might give you some unexpected problems because all\ncalculations in MySQL are done with double precision. See\nhttps://mariadb.com/kb/en/floating-point-accuracy/.\n\nURL: https://mariadb.com/kb/en/float/\n\n','','https://mariadb.com/kb/en/float/'),(169,'LOCATE',37,'Syntax:\nLOCATE(substr,str), LOCATE(substr,str,pos)\n\nThe first syntax returns the position of the first occurrence of\nsubstring substr in string str. The second syntax returns the position\nof the first occurrence of substring substr in string str, starting at\nposition pos. Returns 0 if substr is not in str.\n\nURL: https://mariadb.com/kb/en/locate/\n\n','MariaDB> SELECT LOCATE(\'bar\', \'foobarbar\');\n        -> 4\nMariaDB> SELECT LOCATE(\'xbar\', \'foobar\');\n        -> 0\nMariaDB> SELECT LOCATE(\'bar\', \'foobarbar\', 5);\n        -> 7\n','https://mariadb.com/kb/en/locate/'),(170,'SHOW EVENTS',26,'Syntax:\nSHOW EVENTS [{FROM | IN} schema_name]\n    [LIKE \'pattern\' | WHERE expr]\n\nThis statement displays information about Event Manager events. It\nrequires the EVENT privilege for the database from which the events are\nto be shown.\n\nIn its simplest form, SHOW EVENTS lists all of the events in the\ncurrent schema:\n\nMariaDB> SELECT CURRENT_USER(), SCHEMA();\n+----------------+----------+\n| CURRENT_USER() | SCHEMA() |\n+----------------+----------+\n| jon@ghidora    | myschema |\n+----------------+----------+\n1 row in set (0.00 sec)\n\nMariaDB> SHOW EVENTS\\G\n*************************** 1. row ***************************\n                  Db: myschema\n                Name: e_daily\n             Definer: jon@ghidora\n           Time zone: SYSTEM\n                Type: RECURRING\n          Execute at: NULL\n      Interval value: 10\n      Interval field: SECOND\n              Starts: 2006-02-09 10:41:23\n                Ends: NULL\n              Status: ENABLED\n          Originator: 0\ncharacter_set_client: latin1\ncollation_connection: latin1_swedish_ci\n  Database Collation: latin1_swedish_ci\n\nTo see events for a specific schema, use the FROM clause. For example,\nto see events for the test schema, use the following statement:\n\nSHOW EVENTS FROM test;\n\nThe LIKE clause, if present, indicates which event names to match. The\nWHERE clause can be given to select rows using more general conditions,\nas discussed in\nhttps://mariadb.com/kb/en/extended-show/.\n\nURL: https://mariadb.com/kb/en/show-events/\n\n','','https://mariadb.com/kb/en/show-events/'),(171,'CHARSET',17,'Syntax:\nCHARSET(str)\n\nReturns the character set of the string argument.\n\nURL: https://mariadb.com/kb/en/charset/\n\n','MariaDB> SELECT CHARSET(\'abc\');\n        -> \'latin1\'\nMariaDB> SELECT CHARSET(CONVERT(\'abc\' USING utf8));\n        -> \'utf8\'\nMariaDB> SELECT CHARSET(USER());\n        -> \'utf8\'\n','https://mariadb.com/kb/en/charset/'),(172,'SUBDATE',31,'Syntax:\nSUBDATE(date,INTERVAL expr unit), SUBDATE(expr,days)\n\nWhen invoked with the INTERVAL form of the second argument, SUBDATE()\nis a synonym for DATE_SUB(). For information on the INTERVAL unit\nargument, see the discussion for DATE_ADD().\n\nMariaDB> SELECT DATE_SUB(\'2008-01-02\', INTERVAL 31 DAY);\n        -> \'2007-12-02\'\nMariaDB> SELECT SUBDATE(\'2008-01-02\', INTERVAL 31 DAY);\n        -> \'2007-12-02\'\n\nThe second form enables the use of an integer value for days. In such\ncases, it is interpreted as the number of days to be subtracted from\nthe date or datetime expression expr.\n\nMariaDB> SELECT SUBDATE(\'2008-01-02 12:00:00\', 31);\n        -> \'2007-12-02 12:00:00\'\n\nURL: https://mariadb.com/kb/en/subdate/\n\n','','https://mariadb.com/kb/en/subdate/'),(173,'DAYOFYEAR',31,'Syntax:\nDAYOFYEAR(date)\n\nReturns the day of the year for date, in the range 1 to 366.\n\nURL: https://mariadb.com/kb/en/dayofyear/\n\n','MariaDB> SELECT DAYOFYEAR(\'2007-02-03\');\n        -> 34\n','https://mariadb.com/kb/en/dayofyear/'),(174,'%',4,'Syntax:\nN % M, N MOD M\n\nModulo operation. Returns the remainder of N divided by M. For more\ninformation, see the description for the MOD() function in\nhttps://mariadb.com/kb/en/mod/.\n\nURL: https://mariadb.com/kb/en/modulo-operator/\n\n','','https://mariadb.com/kb/en/modulo-operator/'),(175,'LONGTEXT',22,'LONGTEXT [CHARACTER SET charset_name] [COLLATE collation_name]\n\nA TEXT column with a maximum length of 4,294,967,295 or 4GB (232 - 1)\ncharacters. The effective maximum length is less if the value contains\nmulti-byte characters. The effective maximum length of LONGTEXT columns\nalso depends on the configured maximum packet size in the client/server\nprotocol and available memory. Each LONGTEXT value is stored using a\n4-byte length prefix that indicates the number of bytes in the value.\n\nURL: https://mariadb.com/kb/en/longtext/\n\n','','https://mariadb.com/kb/en/longtext/'),(176,'KILL',26,'Syntax:\nKILL [CONNECTION | QUERY] thread_id\n\nEach connection to mysqld runs in a separate thread. You can see which\nthreads are running with the SHOW PROCESSLIST statement and kill a\nthread with the KILL thread_id statement.\n\nKILL permits an optional CONNECTION or QUERY modifier:\n\no KILL CONNECTION is the same as KILL with no modifier: It terminates\n  the connection associated with the given thread_id.\n\no KILL QUERY terminates the statement that the connection is currently\n  executing, but leaves the connection itself intact.\n\nIf you have the PROCESS privilege, you can see all threads. If you have\nthe SUPER privilege, you can kill all threads and statements.\nOtherwise, you can see and kill only your own threads and statements.\n\nYou can also use the mysqladmin processlist and mysqladmin kill\ncommands to examine and kill threads.\n\n*Note*: You cannot use KILL with the Embedded MySQL Server library\nbecause the embedded server merely runs inside the threads of the host\napplication. It does not create any connection threads of its own.\n\nURL: https://mariadb.com/kb/en/data-manipulation-kill-connection-query/\n\n','','https://mariadb.com/kb/en/data-manipulation-kill-connection-query/'),(177,'DISJOINT',30,'Disjoint(g1,g2)\n\nReturns 1 or 0 to indicate whether g1 is spatially disjoint from (does\nnot intersect) g2.\n\nURL: https://mariadb.com/kb/en/disjoint/\n\n','','https://mariadb.com/kb/en/disjoint/'),(178,'ASTEXT',3,'AsText(g), AsWKT(g)\n\nConverts a value in internal geometry format to its WKT representation\nand returns the string result.\n\nURL: https://mariadb.com/kb/en/astext/\n\n','MariaDB> SET @g = \'LineString(1 1,2 2,3 3)\';\nMariaDB> SELECT AsText(GeomFromText(@g));\n+--------------------------+\n| AsText(GeomFromText(@g)) |\n+--------------------------+\n| LINESTRING(1 1,2 2,3 3)  |\n+--------------------------+\n','https://mariadb.com/kb/en/astext/'),(179,'LPAD',37,'Syntax:\nLPAD(str,len,padstr)\n\nReturns the string str, left-padded with the string padstr to a length\nof len characters. If str is longer than len, the return value is\nshortened to len characters.\n\n\nURL: https://mariadb.com/kb/en/lpad/\n\n','MariaDB> SELECT LPAD(\'hi\',4,\'??\');\n        -> \'??hi\'\nMariaDB> SELECT LPAD(\'hi\',1,\'??\');\n        -> \'h\'\n','https://mariadb.com/kb/en/lpad/'),(180,'DECLARE CONDITION',23,'Syntax:\nDECLARE condition_name CONDITION FOR condition_value\n\ncondition_value:\n    mysql_error_code\n  | SQLSTATE [VALUE] sqlstate_value\n\nThe DECLARE ... CONDITION statement declares a named error condition,\nassociating a name with a condition that needs specific handling. The\nname can be referred to in a subsequent DECLARE ... HANDLER statement\n(see [HELP DECLARE HANDLER]).\n\nCondition declarations must appear before cursor or handler\ndeclarations.\n\nThe condition_value for DECLARE ... CONDITION can be a MySQL error code\n(a number) or an SQLSTATE value (a 5-character string literal). You\nshould not use MySQL error code 0 or SQLSTATE values that begin with\n\'00\', because those indicate success rather than an error condition.\nFor a list of MySQL error codes and SQLSTATE values, see\nhttps://mariadb.com/kb/en/mariadb-error-codes/.\n\nURL: https://mariadb.com/kb/en/declare-condition/\n\n','','https://mariadb.com/kb/en/declare-condition/'),(181,'OVERLAPS',30,'Overlaps(g1,g2)\n\nReturns 1 or 0 to indicate whether g1 spatially overlaps g2. The term\nspatially overlaps is used if two geometries intersect and their\nintersection results in a geometry of the same dimension but not equal\nto either of the given geometries.\n\nURL: https://mariadb.com/kb/en/overlaps/\n\n','','https://mariadb.com/kb/en/overlaps/'),(182,'SET GLOBAL SQL_SLAVE_SKIP_COUNTER',8,'Syntax:\nSET GLOBAL sql_slave_skip_counter = N\n\nThis statement skips the next N events from the master. This is useful\nfor recovering from replication stops caused by a statement.\n\nThis statement is valid only when the slave threads are not running.\nOtherwise, it produces an error.\n\nURL: https://mariadb.com/kb/en/set-global-sql_slave_skip_counter/\n\n','','https://mariadb.com/kb/en/set-global-sql_slave_skip_counter/'),(183,'NUMGEOMETRIES',25,'NumGeometries(gc)\n\nReturns the number of geometries in the GeometryCollection value gc.\n\nURL: https://mariadb.com/kb/en/numgeometries/\n\n','MariaDB> SET @gc = \'GeometryCollection(Point(1 1),LineString(2 2, 3 3))\';\nMariaDB> SELECT NumGeometries(GeomFromText(@gc));\n+----------------------------------+\n| NumGeometries(GeomFromText(@gc)) |\n+----------------------------------+\n|                                2 |\n+----------------------------------+\n','https://mariadb.com/kb/en/numgeometries/'),(184,'MONTHNAME',31,'Syntax:\nMONTHNAME(date)\n\nReturns the full name of the month for date. The language used for the\nname is controlled by the value of the lc_time_names system variable\n(https://mariadb.com/kb/en/server-locale/).\n\nURL: https://mariadb.com/kb/en/monthname/\n\n','MariaDB> SELECT MONTHNAME(\'2008-02-03\');\n        -> \'February\'\n','https://mariadb.com/kb/en/monthname/'),(185,'CHANGE MASTER TO',8,'Syntax:\nCHANGE MASTER TO option [, option] ...\n\noption:\n    MASTER_BIND = \'interface_name\'\n  | MASTER_HOST = \'host_name\'\n  | MASTER_USER = \'user_name\'\n  | MASTER_PASSWORD = \'password\'\n  | MASTER_PORT = port_num\n  | MASTER_CONNECT_RETRY = interval\n  | MASTER_HEARTBEAT_PERIOD = interval\n  | MASTER_LOG_FILE = \'master_log_name\'\n  | MASTER_LOG_POS = master_log_pos\n  | RELAY_LOG_FILE = \'relay_log_name\'\n  | RELAY_LOG_POS = relay_log_pos\n  | MASTER_SSL = {0|1}\n  | MASTER_SSL_CA = \'ca_file_name\'\n  | MASTER_SSL_CAPATH = \'ca_directory_name\'\n  | MASTER_SSL_CERT = \'cert_file_name\'\n  | MASTER_SSL_KEY = \'key_file_name\'\n  | MASTER_SSL_CIPHER = \'cipher_list\'\n  | MASTER_SSL_VERIFY_SERVER_CERT = {0|1}\n  | IGNORE_SERVER_IDS = (server_id_list)\n\nserver_id_list:\n    [server_id [, server_id] ... ]\n\nCHANGE MASTER TO changes the parameters that the slave server uses for\nconnecting to the master server, for reading the master binary log, and\nreading the slave relay log. It also updates the contents of the\nmaster.info and relay-log.info files. To use CHANGE MASTER TO, the\nslave replication threads must be stopped (use STOP SLAVE if\nnecessary).\n\nOptions not specified retain their value, except as indicated in the\nfollowing discussion. Thus, in most cases, there is no need to specify\noptions that do not change. For example, if the password to connect to\nyour MySQL master has changed, you just need to issue these statements\nto tell the slave about the new password:\n\nSTOP SLAVE; -- if replication was running\nCHANGE MASTER TO MASTER_PASSWORD=\'new3cret\';\nSTART SLAVE; -- if you want to restart replication\n\nMASTER_HOST, MASTER_USER, MASTER_PASSWORD, and MASTER_PORT provide\ninformation to the slave about how to connect to its master:\n\no MASTER_HOST and MASTER_PORT are the host name (or IP address) of the\n  master host and its TCP/IP port.\n\n  *Note*: Replication cannot use Unix socket files. You must be able to\n  connect to the master MySQL server using TCP/IP.\n\n  If you specify the MASTER_HOST or MASTER_PORT option, the slave\n  assumes that the master server is different from before (even if the\n  option value is the same as its current value.) In this case, the old\n  values for the master binary log file name and position are\n  considered no longer applicable, so if you do not specify\n  MASTER_LOG_FILE and MASTER_LOG_POS in the statement,\n  MASTER_LOG_FILE=\'\' and MASTER_LOG_POS=4 are silently appended to it.\n\n  Setting MASTER_HOST=\'\' (that is, setting its value explicitly to an\n  empty string) is not the same as not setting MASTER_HOST at all.\n  Beginning with MySQL 5.5, trying to set MASTER_HOST to an empty\n  string fails with an error. Previously, setting MASTER_HOST to an\n  empty string caused START SLAVE subsequently to fail. (Bug #28796)\n\no MASTER_USER and MASTER_PASSWORD are the user name and password of the\n  account to use for connecting to the master.\n\n  In MySQL 5.5.20 and later, MASTER_USER cannot be made empty; setting\n  MASTER_USER = \'\' or leaving it unset when setting a value for for\n  MASTER_PASSWORD causes an error (Bug #13427949).\n\n  Currently, a password used for a replication slave account is\n  effectively limited to 32 characters in length; the password can be\n  longer, but any excess characters are truncated. This is not due to\n  any limit imposed by the MySQL Server generally, but rather is an\n  issue specific to MySQL Replication. (For more information, see Bug\n  #43439.)\n\n  The text of a running CHANGE MASTER TO statement, including values\n  for MASTER_USER and MASTER_PASSWORD, can be seen in the output of a\n  concurrent SHOW PROCESSLIST statement.\n\nThe MASTER_SSL_xxx options provide information about using SSL for the\nconnection. They correspond to the --ssl-xxx options described in\nhttps://mariadb.com/kb/en/ssl-server-system-variables/, and\nhttp://dev.mysql.com/doc/refman/5.5/en/replication-solutions-ssl.html.\nThese options can be changed even on slaves that are compiled without\nSSL support. They are saved to the master.info file, but are ignored if\nthe slave does not have SSL support enabled.\n\nMASTER_CONNECT_RETRY specifies how many seconds to wait between connect\nretries. The default is 60. The number of reconnection attempts is\nlimited by the --master-retry-count server option; for more\ninformation, see\nhttps://mariadb.com/kb/en/replication-and-binary-log-server-system-variables/.\n\nMASTER_HEARTBEAT_PERIOD sets the interval in seconds between\nreplication heartbeats. Whenever the master\'s binary log is updated\nwith an event, the waiting period for the next heartbeat is reset.\ninterval is a decimal value having the range 0 to 4294967 seconds and a\nresolution in milliseconds; the smallest nonzero value is 0.001.\nHeartbeats are sent by the master only if there are no unsent events in\nthe binary log file for a period longer than interval.\n\nSetting interval to 0 disables heartbeats altogether. The default value\nfor interval is equal to the value of slave_net_timeout divided by 2.\n\nSetting @@global.slave_net_timeout to a value less than that of the\ncurrent heartbeat interval results in a warning being issued. The\neffect of issuing RESET SLAVE on the heartbeat interval is to reset it\nto the default value.\n\nMASTER_LOG_FILE and MASTER_LOG_POS are the coordinates at which the\nslave I/O thread should begin reading from the master the next time the\nthread starts. RELAY_LOG_FILE and RELAY_LOG_POS are the coordinates at\nwhich the slave SQL thread should begin reading from the relay log the\nnext time the thread starts. If you specify either of MASTER_LOG_FILE\nor MASTER_LOG_POS, you cannot specify RELAY_LOG_FILE or RELAY_LOG_POS.\nIf neither of MASTER_LOG_FILE or MASTER_LOG_POS is specified, the slave\nuses the last coordinates of the slave SQL thread before CHANGE MASTER\nTO was issued. This ensures that there is no discontinuity in\nreplication, even if the slave SQL thread was late compared to the\nslave I/O thread, when you merely want to change, say, the password to\nuse.\n\nCHANGE MASTER TO deletes all relay log files and starts a new one,\nunless you specify RELAY_LOG_FILE or RELAY_LOG_POS. In that case, relay\nlog files are kept; the relay_log_purge global variable is set silently\nto 0.\n\nPrior to MySQL 5.5, RELAY_LOG_FILE required an absolute path. In MySQL\n5.5, the path can be relative, in which case the path is assumed to be\nrelative to the slave\'s data directory. (Bug #12190)\n\nIGNORE_SERVER_IDS was added in MySQL 5.5. This option takes a\ncomma-separated list of 0 or more server IDs. Events originating from\nthe corresponding servers are ignored, with the exception of log\nrotation and deletion events, which are still recorded in the relay\nlog.\n\nIn circular replication, the originating server normally acts as the\nterminator of its own events, so that they are not applied more than\nonce. Thus, this option is useful in circular replication when one of\nthe servers in the circle is removed. Suppose that you have a circular\nreplication setup with 4 servers, having server IDs 1, 2, 3, and 4, and\nserver 3 fails. When bridging the gap by starting replication from\nserver 2 to server 4, you can include IGNORE_SERVER_IDS = (3) in the\nCHANGE MASTER TO statement that you issue on server 4 to tell it to use\nserver 2 as its master instead of server 3. Doing so causes it to\nignore and not to propagate any statements that originated with the\nserver that is no longer in use.\n\nIf a CHANGE MASTER TO statement is issued without any IGNORE_SERVER_IDS\noption, any existing list is preserved; RESET SLAVE also has no effect\non the server ID list. To clear the list of ignored servers, it is\nnecessary to use the option with an empty list:\n\nCHANGE MASTER TO IGNORE_SERVER_IDS = ();\n\nIf IGNORE_SERVER_IDS contains the server\'s own ID and the server was\nstarted with the --replicate-same-server-id option enabled, an error\nresults.\n\nAlso beginning with MySQL 5.5, the master.info file and the output of\nSHOW SLAVE STATUS are extended to provide the list of servers that are\ncurrently ignored. For more information, see\nhttps://mariadb.com/kb/en/show-slave-status/, and\n[HELP SHOW SLAVE STATUS].\n\nBeginning with MySQL 5.5.5, invoking CHANGE MASTER TO causes the\nprevious values for MASTER_HOST, MASTER_PORT, MASTER_LOG_FILE, and\nMASTER_LOG_POS to be written to the error log, along with other\ninformation about the slave\'s state prior to execution.\n\nCHANGE MASTER TO is useful for setting up a slave when you have the\nsnapshot of the master and have recorded the master binary log\ncoordinates corresponding to the time of the snapshot. After loading\nthe snapshot into the slave to synchronize it to the slave, you can run\nCHANGE MASTER TO MASTER_LOG_FILE=\'log_name\', MASTER_LOG_POS=log_pos on\nthe slave to specify the coordinates at which the slave should begin\nreading the master binary log.\n\nThe following example changes the master server the slave uses and\nestablishes the master binary log coordinates from which the slave\nbegins reading. This is used when you want to set up the slave to\nreplicate the master:\n\nCHANGE MASTER TO\n  MASTER_HOST=\'master2.mycompany.com\',\n  MASTER_USER=\'replication\',\n  MASTER_PASSWORD=\'bigs3cret\',\n  MASTER_PORT=3306,\n  MASTER_LOG_FILE=\'master2-bin.001\',\n  MASTER_LOG_POS=4,\n  MASTER_CONNECT_RETRY=10;\n\nThe next example shows an operation that is less frequently employed.\nIt is used when the slave has relay log files that you want it to\nexecute again for some reason. To do this, the master need not be\nreachable. You need only use CHANGE MASTER TO and start the SQL thread\n(START SLAVE SQL_THREAD):\n\nCHANGE MASTER TO\n  RELAY_LOG_FILE=\'slave-relay-bin.006\',\n  RELAY_LOG_POS=4025;\n\nURL: https://mariadb.com/kb/en/change-master-to/\n\n','','https://mariadb.com/kb/en/change-master-to/'),(186,'DROP DATABASE',39,'Syntax:\nDROP {DATABASE | SCHEMA} [IF EXISTS] db_name\n\nDROP DATABASE drops all tables in the database and deletes the\ndatabase. Be very careful with this statement! To use DROP DATABASE,\nyou need the DROP privilege on the database. DROP SCHEMA is a synonym\nfor DROP DATABASE.\n\n*Important*: When a database is dropped, user privileges on the\ndatabase are not automatically dropped. See [HELP GRANT].\n\nIF EXISTS is used to prevent an error from occurring if the database\ndoes not exist.\n\nURL: https://mariadb.com/kb/en/drop-database/\n\n','','https://mariadb.com/kb/en/drop-database/'),(187,'MBREQUAL',6,'MBREqual(g1,g2)\n\nReturns 1 or 0 to indicate whether the Minimum Bounding Rectangles of\nthe two geometries g1 and g2 are the same.\n\nURL: https://mariadb.com/kb/en/mbrequal/\n\n','','https://mariadb.com/kb/en/mbrequal/'),(188,'TIMESTAMP FUNCTION',31,'Syntax:\nTIMESTAMP(expr), TIMESTAMP(expr1,expr2)\n\nWith a single argument, this function returns the date or datetime\nexpression expr as a datetime value. With two arguments, it adds the\ntime expression expr2 to the date or datetime expression expr1 and\nreturns the result as a datetime value.\n\nURL: https://mariadb.com/kb/en/timestamp-function/\n\n','MariaDB> SELECT TIMESTAMP(\'2003-12-31\');\n        -> \'2003-12-31 00:00:00\'\nMariaDB> SELECT TIMESTAMP(\'2003-12-31 12:00:00\',\'12:00:00\');\n        -> \'2004-01-01 00:00:00\'\n','https://mariadb.com/kb/en/timestamp-function/'),(189,'PROCEDURE ANALYSE',33,'Syntax:\nANALYSE([max_elements[,max_memory]])\n\nANALYSE() examines the result from a query and returns an analysis of\nthe results that suggests optimal data types for each column that may\nhelp reduce table sizes. To obtain this analysis, append PROCEDURE\nANALYSE to the end of a SELECT statement:\n\nSELECT ... FROM ... WHERE ... PROCEDURE ANALYSE([max_elements,[max_memory]])\n\nFor example:\n\nSELECT col1, col2 FROM table1 PROCEDURE ANALYSE(10, 2000);\n\nThe results show some statistics for the values returned by the query,\nand propose an optimal data type for the columns. This can be helpful\nfor checking your existing tables, or after importing new data. You may\nneed to try different settings for the arguments so that PROCEDURE\nANALYSE() does not suggest the ENUM data type when it is not\nappropriate.\n\nThe arguments are optional and are used as follows:\n\no max_elements (default 256) is the maximum number of distinct values\n  that ANALYSE() notices per column. This is used by ANALYSE() to check\n  whether the optimal data type should be of type ENUM; if there are\n  more than max_elements distinct values, then ENUM is not a suggested\n  type.\n\no max_memory (default 8192) is the maximum amount of memory that\n  ANALYSE() should allocate per column while trying to find all\n  distinct values.\n\nURL: https://mariadb.com/kb/en/procedure-analyse/\n\n','','https://mariadb.com/kb/en/procedure-analyse/'),(190,'HELP_VERSION',9,'This help information was generated from the MySQL 5.5 Reference Manual\non: 2012-08-25 (revision: 31914)\n\nThis information applies to MySQL 5.5 through 5.5.29.\n','',''),(191,'CHARACTER_LENGTH',37,'Syntax:\nCHARACTER_LENGTH(str)\n\nCHARACTER_LENGTH() is a synonym for CHAR_LENGTH().\n\nURL: https://mariadb.com/kb/en/character_length/\n\n','','https://mariadb.com/kb/en/character_length/'),(192,'SHOW GRANTS',26,'Syntax:\nSHOW GRANTS [FOR user]\n\nThis statement lists the GRANT statement or statements that must be\nissued to duplicate the privileges that are granted to a MySQL user\naccount. The account is named using the same format as for the GRANT\nstatement; for example, \'jeffrey\'@\'localhost\'. If you specify only the\nuser name part of the account name, a host name part of \'%\' is used.\nFor additional information about specifying account names, see [HELP\nGRANT].\n\nMariaDB> SHOW GRANTS FOR \'root\'@\'localhost\';\n+---------------------------------------------------------------------+\n| Grants for root@localhost                                           |\n+---------------------------------------------------------------------+\n| GRANT ALL PRIVILEGES ON *.* TO \'root\'@\'localhost\' WITH GRANT OPTION |\n+---------------------------------------------------------------------+\n\nTo list the privileges granted to the account that you are using to\nconnect to the server, you can use any of the following statements:\n\nSHOW GRANTS;\nSHOW GRANTS FOR CURRENT_USER;\nSHOW GRANTS FOR CURRENT_USER();\n\nIf SHOW GRANTS FOR CURRENT_USER (or any of the equivalent syntaxes) is\nused in DEFINER context, such as within a stored procedure that is\ndefined with SQL SECURITY DEFINER), the grants displayed are those of\nthe definer and not the invoker.\n\nURL: https://mariadb.com/kb/en/show-grants/\n\n','','https://mariadb.com/kb/en/show-grants/'),(193,'SHOW PRIVILEGES',26,'Syntax:\nSHOW PRIVILEGES\n\nSHOW PRIVILEGES shows the list of system privileges that the MySQL\nserver supports. The exact list of privileges depends on the version of\nyour server.\n\nURL: https://mariadb.com/kb/en/show-privileges/\n\n','','https://mariadb.com/kb/en/show-privileges/'),(194,'CREATE TABLESPACE',39,'Syntax:\nCREATE TABLESPACE tablespace_name\n    ADD DATAFILE \'file_name\'\n    USE LOGFILE GROUP logfile_group\n    [EXTENT_SIZE [=] extent_size]\n    [INITIAL_SIZE [=] initial_size]\n    [AUTOEXTEND_SIZE [=] autoextend_size]\n    [MAX_SIZE [=] max_size]\n    [NODEGROUP [=] nodegroup_id]\n    [WAIT]\n    [COMMENT [=] comment_text]\n    ENGINE [=] engine_name\n\nThis statement is used with NDB cluster, which is not supported by MariaDB.','','https://mariadb.com/kb/en/create-tablespace/'),(195,'INSERT FUNCTION',37,'Syntax:\nINSERT(str,pos,len,newstr)\n\nReturns the string str, with the substring beginning at position pos\nand len characters long replaced by the string newstr. Returns the\noriginal string if pos is not within the length of the string. Replaces\nthe rest of the string from position pos if len is not within the\nlength of the rest of the string. Returns NULL if any argument is NULL.\n\nURL: https://mariadb.com/kb/en/insert-function/\n\n','MariaDB> SELECT INSERT(\'Quadratic\', 3, 4, \'What\');\n        -> \'QuWhattic\'\nMariaDB> SELECT INSERT(\'Quadratic\', -1, 4, \'What\');\n        -> \'Quadratic\'\nMariaDB> SELECT INSERT(\'Quadratic\', 3, 100, \'What\');\n        -> \'QuWhat\'\n','https://mariadb.com/kb/en/insert-function/'),(196,'CRC32',4,'Syntax:\nCRC32(expr)\n\nComputes a cyclic redundancy check value and returns a 32-bit unsigned\nvalue. The result is NULL if the argument is NULL. The argument is\nexpected to be a string and (if possible) is treated as one if it is\nnot.\n\nURL: https://mariadb.com/kb/en/crc32/\n\n','MariaDB> SELECT CRC32(\'MySQL\');\n        -> 3259397556\nMariaDB> SELECT CRC32(\'mysql\');\n        -> 2501908538\n','https://mariadb.com/kb/en/crc32/'),(197,'XOR',15,'Syntax:\nXOR\n\nLogical XOR. Returns NULL if either operand is NULL. For non-NULL\noperands, evaluates to 1 if an odd number of operands is nonzero,\notherwise 0 is returned.\n\nURL: https://mariadb.com/kb/en/xor/\n\n','MariaDB> SELECT 1 XOR 1;\n        -> 0\nMariaDB> SELECT 1 XOR 0;\n        -> 1\nMariaDB> SELECT 1 XOR NULL;\n        -> NULL\nMariaDB> SELECT 1 XOR 1 XOR 1;\n        -> 1\n','https://mariadb.com/kb/en/xor/'),(198,'STARTPOINT',13,'StartPoint(ls)\n\nReturns the Point that is the start point of the LineString value ls.\n\nURL: https://mariadb.com/kb/en/startpoint/\n\n','MariaDB> SET @ls = \'LineString(1 1,2 2,3 3)\';\nMariaDB> SELECT AsText(StartPoint(GeomFromText(@ls)));\n+---------------------------------------+\n| AsText(StartPoint(GeomFromText(@ls))) |\n+---------------------------------------+\n| POINT(1 1)                            |\n+---------------------------------------+\n','https://mariadb.com/kb/en/startpoint/'),(199,'GRANT',10,'Syntax:\nGRANT\n    priv_type [(column_list)]\n      [, priv_type [(column_list)]] ...\n    ON [object_type] priv_level\n    TO user_specification [, user_specification] ...\n    [REQUIRE {NONE | ssl_option [[AND] ssl_option] ...}]\n    [WITH with_option ...]\n\nGRANT PROXY ON user_specification\n    TO user_specification [, user_specification] ...\n    [WITH GRANT OPTION]\n\nobject_type:\n    TABLE\n  | FUNCTION\n  | PROCEDURE\n\npriv_level:\n    *\n  | *.*\n  | db_name.*\n  | db_name.tbl_name\n  | tbl_name\n  | db_name.routine_name\n\nuser_specification:\n    user\n    [\n        IDENTIFIED BY [PASSWORD] \'password\'\n      | IDENTIFIED WITH auth_plugin [AS \'auth_string\']\n    ]\n\nssl_option:\n    SSL\n  | X509\n  | CIPHER \'cipher\'\n  | ISSUER \'issuer\'\n  | SUBJECT \'subject\'\n\nwith_option:\n    GRANT OPTION\n  | MAX_QUERIES_PER_HOUR count\n  | MAX_UPDATES_PER_HOUR count\n  | MAX_CONNECTIONS_PER_HOUR count\n  | MAX_USER_CONNECTIONS count\n\nThe GRANT statement grants privileges to MySQL user accounts. GRANT\nalso serves to specify other account characteristics such as use of\nsecure connections and limits on access to server resources. To use\nGRANT, you must have the GRANT OPTION privilege, and you must have the\nprivileges that you are granting.\n\nNormally, a database administrator first uses CREATE USER to create an\naccount, then GRANT to define its privileges and characteristics. For\nexample:\n\nCREATE USER \'jeffrey\'@\'localhost\' IDENTIFIED BY \'mypass\';\nGRANT ALL ON db1.* TO \'jeffrey\'@\'localhost\';\nGRANT SELECT ON db2.invoice TO \'jeffrey\'@\'localhost\';\nGRANT USAGE ON *.* TO \'jeffrey\'@\'localhost\' WITH MAX_QUERIES_PER_HOUR 90;\n\nHowever, if an account named in a GRANT statement does not already\nexist, GRANT may create it under the conditions described later in the\ndiscussion of the NO_AUTO_CREATE_USER SQL mode.\n\nThe REVOKE statement is related to GRANT and enables administrators to\nremove account privileges. See [HELP REVOKE].\n\nWhen successfully executed from the mysql program, GRANT responds with\nQuery OK, 0 rows affected. To determine what privileges result from the\noperation, use SHOW GRANTS. See [HELP SHOW GRANTS].\n\nURL: https://mariadb.com/kb/en/grant/\n\n','','https://mariadb.com/kb/en/grant/'),(200,'DECLARE VARIABLE',23,'Syntax:\nDECLARE var_name [, var_name] ... type [DEFAULT value]\n\nThis statement declares local variables within stored programs. To\nprovide a default value for a variable, include a DEFAULT clause. The\nvalue can be specified as an expression; it need not be a constant. If\nthe DEFAULT clause is missing, the initial value is NULL.\n\nLocal variables are treated like stored routine parameters with respect\nto data type and overflow checking. See [HELP CREATE PROCEDURE].\n\nVariable declarations must appear before cursor or handler\ndeclarations.\n\nLocal variable names are not case sensitive. Permissible characters and\nquoting rules are the same as for other identifiers, as described in\nhttps://mariadb.com/kb/en/identifier-names/.\n\nThe scope of a local variable is the BEGIN ... END block within which\nit is declared. The variable can be referred to in blocks nested within\nthe declaring block, except those blocks that declare a variable with\nthe same name.\n\nURL: https://mariadb.com/kb/en/declare-variable/\n\n','','https://mariadb.com/kb/en/declare-variable/'),(201,'MPOLYFROMTEXT',3,'MPolyFromText(wkt[,srid]), MultiPolygonFromText(wkt[,srid])\n\nConstructs a MULTIPOLYGON value using its WKT representation and SRID.\n\nURL: https://mariadb.com/kb/en/mpolyfromtext/\n\n','','https://mariadb.com/kb/en/mpolyfromtext/'),(202,'MBRINTERSECTS',6,'MBRIntersects(g1,g2)\n\nReturns 1 or 0 to indicate whether the Minimum Bounding Rectangles of\nthe two geometries g1 and g2 intersect.\n\nURL: https://mariadb.com/kb/en/mbrintersects/\n\n','','https://mariadb.com/kb/en/mbrintersects/'),(203,'BIT_OR',16,'Syntax:\nBIT_OR(expr)\n\nReturns the bitwise OR of all bits in expr. The calculation is\nperformed with 64-bit (BIGINT) precision.\n\nURL: https://mariadb.com/kb/en/bit_or/\n\n','','https://mariadb.com/kb/en/bit_or/'),(204,'YEARWEEK',31,'Syntax:\nYEARWEEK(date), YEARWEEK(date,mode)\n\nReturns year and week for a date. The mode argument works exactly like\nthe mode argument to WEEK(). The year in the result may be different\nfrom the year in the date argument for the first and the last week of\nthe year.\n\nURL: https://mariadb.com/kb/en/yearweek/\n\n','MariaDB> SELECT YEARWEEK(\'1987-01-01\');\n        -> 198653\n','https://mariadb.com/kb/en/yearweek/'),(205,'NOT BETWEEN',18,'Syntax:\nexpr NOT BETWEEN min AND max\n\nThis is the same as NOT (expr BETWEEN min AND max).\n\nURL: https://mariadb.com/kb/en/not-between/\n\n','','https://mariadb.com/kb/en/not-between/'),(206,'IS NOT',18,'Syntax:\nIS NOT boolean_value\n\nTests a value against a boolean value, where boolean_value can be TRUE,\nFALSE, or UNKNOWN.\n\nURL: https://mariadb.com/kb/en/is-not/\n\n','MariaDB> SELECT 1 IS NOT UNKNOWN, 0 IS NOT UNKNOWN, NULL IS NOT UNKNOWN;\n        -> 1, 1, 0\n','https://mariadb.com/kb/en/is-not/'),(207,'LOG10',4,'Syntax:\nLOG10(X)\n\nReturns the base-10 logarithm of X.\n\nURL: https://mariadb.com/kb/en/log10/\n\n','MariaDB> SELECT LOG10(2);\n        -> 0.30102999566398\nMariaDB> SELECT LOG10(100);\n        -> 2\nMariaDB> SELECT LOG10(-100);\n        -> NULL\n','https://mariadb.com/kb/en/log10/'),(208,'SQRT',4,'Syntax:\nSQRT(X)\n\nReturns the square root of a nonnegative number X.\n\nURL: https://mariadb.com/kb/en/sqrt/\n\n','MariaDB> SELECT SQRT(4);\n        -> 2\nMariaDB> SELECT SQRT(20);\n        -> 4.4721359549996\nMariaDB> SELECT SQRT(-16);\n        -> NULL\n','https://mariadb.com/kb/en/sqrt/'),(209,'DECIMAL',22,'DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]\n\nA packed \"exact\" fixed-point number. M is the total number of digits\n(the precision) and D is the number of digits after the decimal point\n(the scale). The decimal point and (for negative numbers) the \"-\" sign\nare not counted in M. If D is 0, values have no decimal point or\nfractional part. The maximum number of digits (M) for DECIMAL is 65.\nThe maximum number of supported decimals (D) is 30. If D is omitted,\nthe default is 0. If M is omitted, the default is 10.\n\nUNSIGNED, if specified, disallows negative values.\n\nAll basic calculations (+, -, *, /) with DECIMAL columns are done with\na precision of 65 digits.\n\nURL: https://mariadb.com/kb/en/decimal/\n\n','','https://mariadb.com/kb/en/decimal/'),(210,'CREATE INDEX',39,'Syntax:\nCREATE [ONLINE|OFFLINE] [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name\n    [index_type]\n    ON tbl_name (index_col_name,...)\n    [index_option] ...\n\nindex_col_name:\n    col_name [(length)] [ASC | DESC]\n\nindex_type:\n    USING {BTREE | HASH}\n\nindex_option:\n    KEY_BLOCK_SIZE [=] value\n  | index_type\n  | WITH PARSER parser_name\n  | COMMENT \'string\'\n\nCREATE INDEX is mapped to an ALTER TABLE statement to create indexes.\nSee [HELP ALTER TABLE]. CREATE INDEX cannot be used to create a PRIMARY\nKEY; use ALTER TABLE instead. For more information about indexes, see\nhttps://mariadb.com/kb/en/optimization-and-indexes/.\n\nURL: https://mariadb.com/kb/en/create-index/\n\n','','https://mariadb.com/kb/en/create-index/'),(211,'CREATE FUNCTION',39,'The CREATE FUNCTION statement is used to create stored functions and\nuser-defined functions (UDFs):\n\no For information about creating stored functions, see [HELP CREATE\n  PROCEDURE].\n\no For information about creating user-defined functions, see [HELP\n  CREATE FUNCTION UDF].\n\nURL: https://mariadb.com/kb/en/create-function/\n\n','','https://mariadb.com/kb/en/create-function/'),(212,'ALTER DATABASE',39,'Syntax:\nALTER {DATABASE | SCHEMA} [db_name]\n    alter_specification ...\nALTER {DATABASE | SCHEMA} db_name\n    UPGRADE DATA DIRECTORY NAME\n\nalter_specification:\n    [DEFAULT] CHARACTER SET [=] charset_name\n  | [DEFAULT] COLLATE [=] collation_name\n\nALTER DATABASE enables you to change the overall characteristics of a\ndatabase. These characteristics are stored in the db.opt file in the\ndatabase directory. To use ALTER DATABASE, you need the ALTER privilege\non the database. ALTER SCHEMA is a synonym for ALTER DATABASE.\n\nThe database name can be omitted from the first syntax, in which case\nthe statement applies to the default database.\n\nNational Language Characteristics\n\nThe CHARACTER SET clause changes the default database character set.\nThe COLLATE clause changes the default database collation.\nhttps://mariadb.com/kb/en/data-types-character-sets-and-collations/, discusses\ncharacter set and collation names.\n\nYou can see what character sets and collations are available using,\nrespectively, the SHOW CHARACTER SET and SHOW COLLATION statements. See\n[HELP SHOW CHARACTER SET], and [HELP SHOW COLLATION], for more\ninformation.\n\nIf you change the default character set or collation for a database,\nstored routines that use the database defaults must be dropped and\nrecreated so that they use the new defaults. (In a stored routine,\nvariables with character data types use the database defaults if the\ncharacter set or collation are not specified explicitly. See [HELP\nCREATE PROCEDURE].)\n\nUpgrading from Versions Older than MySQL 5.1\n\nThe syntax that includes the UPGRADE DATA DIRECTORY NAME clause updates\nthe name of the directory associated with the database to use the\nencoding implemented in MySQL 5.1 for mapping database names to\ndatabase directory names (see\nhttps://mariadb.com/kb/en/identifier-to-file-name-mapping/). This\nclause is for use under these conditions:\n\no It is intended when upgrading MySQL to 5.1 or later from older\n  versions.\n\no It is intended to update a database directory name to the current\n  encoding format if the name contains special characters that need\n  encoding.\n\no The statement is used by mysqlcheck (as invoked by mysql_upgrade).\n\nFor example, if a database in MySQL 5.0 has the name a-b-c, the name\ncontains instances of the - (dash) character. In MySQL 5.0, the\ndatabase directory is also named a-b-c, which is not necessarily safe\nfor all file systems. In MySQL 5.1 and later, the same database name is\nencoded as a@002db@002dc to produce a file system-neutral directory\nname.\n\nWhen a MySQL installation is upgraded to MySQL 5.1 or later from an\nolder version,the server displays a name such as a-b-c (which is in the\nold format) as #mysql50#a-b-c, and you must refer to the name using the\n#mysql50# prefix. Use UPGRADE DATA DIRECTORY NAME in this case to\nexplicitly tell the server to re-encode the database directory name to\nthe current encoding format:\n\nALTER DATABASE `#mysql50#a-b-c` UPGRADE DATA DIRECTORY NAME;\n\nAfter executing this statement, you can refer to the database as a-b-c\nwithout the special #mysql50# prefix.\n\nURL: https://mariadb.com/kb/en/alter-database/\n\n','','https://mariadb.com/kb/en/alter-database/'),(213,'GEOMETRYN',25,'GeometryN(gc,N)\n\nReturns the N-th geometry in the GeometryCollection value gc.\nGeometries are numbered beginning with 1.\n\nURL: https://mariadb.com/kb/en/geometryn/\n\n','MariaDB> SET @gc = \'GeometryCollection(Point(1 1),LineString(2 2, 3 3))\';\nMariaDB> SELECT AsText(GeometryN(GeomFromText(@gc),1));\n+----------------------------------------+\n| AsText(GeometryN(GeomFromText(@gc),1)) |\n+----------------------------------------+\n| POINT(1 1)                             |\n+----------------------------------------+\n','https://mariadb.com/kb/en/geometryn/'),(214,'<<',19,'Syntax:\n<<\n\nShifts a longlong (BIGINT) number to the left.\n\nURL: https://mariadb.com/kb/en/shift-left/\n\n','MariaDB> SELECT 1 << 2;\n        -> 4\n','https://mariadb.com/kb/en/shift-left/'),(215,'SHOW TABLE STATUS',26,'Syntax:\nSHOW TABLE STATUS [{FROM | IN} db_name]\n    [LIKE \'pattern\' | WHERE expr]\n\nSHOW TABLE STATUS works likes SHOW TABLES, but provides a lot of\ninformation about each non-TEMPORARY table. You can also get this list\nusing the mysqlshow --status db_name command. The LIKE clause, if\npresent, indicates which table names to match. The WHERE clause can be\ngiven to select rows using more general conditions, as discussed in\nhttps://mariadb.com/kb/en/extended-show/.\n\nURL: https://mariadb.com/kb/en/show-table-status/\n\n','','https://mariadb.com/kb/en/show-table-status/'),(216,'MD5',12,'Syntax:\nMD5(str)\n\nCalculates an MD5 128-bit checksum for the string. The value is\nreturned as a string of 32 hex digits, or NULL if the argument was\nNULL. The return value can, for example, be used as a hash key. See the\nnotes at the beginning of this section about storing hash values\nefficiently.\n\nAs of MySQL 5.5.3, the return value is a nonbinary string in the\nconnection character set. Before 5.5.3, the return value is a binary\nstring; see the notes at the beginning of this section about using the\nvalue as a nonbinary string.\n\nURL: https://mariadb.com/kb/en/md5/\n\n','MariaDB> SELECT MD5(\'testing\');\n        -> \'ae2b1fca515949e5d54fb22b8ed95575\'\n','https://mariadb.com/kb/en/md5/'),(217,'<',18,'Syntax:\n<\n\nLess than:\n\nURL: https://mariadb.com/kb/en/less-than/\n\n','MariaDB> SELECT 2 < 2;\n        -> 0\n','https://mariadb.com/kb/en/less-than/'),(218,'UNIX_TIMESTAMP',31,'Syntax:\nUNIX_TIMESTAMP(), UNIX_TIMESTAMP(date)\n\nIf called with no argument, returns a Unix timestamp (seconds since\n\'1970-01-01 00:00:00\' UTC) as an unsigned integer. If UNIX_TIMESTAMP()\nis called with a date argument, it returns the value of the argument as\nseconds since \'1970-01-01 00:00:00\' UTC. date may be a DATE string, a\nDATETIME string, a TIMESTAMP, or a number in the format YYMMDD or\nYYYYMMDD. The server interprets date as a value in the current time\nzone and converts it to an internal value in UTC. Clients can set their\ntime zone as described in\nhttps://mariadb.com/kb/en/time-zones/.\n\nURL: https://mariadb.com/kb/en/unix_timestamp/\n\n','MariaDB> SELECT UNIX_TIMESTAMP();\n        -> 1196440210\nMariaDB> SELECT UNIX_TIMESTAMP(\'2007-11-30 10:30:19\');\n        -> 1196440219\n','https://mariadb.com/kb/en/unix_timestamp/'),(219,'DAYOFMONTH',31,'Syntax:\nDAYOFMONTH(date)\n\nReturns the day of the month for date, in the range 1 to 31, or 0 for\ndates such as \'0000-00-00\' or \'2008-00-00\' that have a zero day part.\n\nURL: https://mariadb.com/kb/en/dayofmonth/\n\n','MariaDB> SELECT DAYOFMONTH(\'2007-02-03\');\n        -> 3\n','https://mariadb.com/kb/en/dayofmonth/'),(220,'ASCII',37,'Syntax:\nASCII(str)\n\nReturns the numeric value of the leftmost character of the string str.\nReturns 0 if str is the empty string. Returns NULL if str is NULL.\nASCII() works for 8-bit characters.\n\nURL: https://mariadb.com/kb/en/ascii/\n\n','MariaDB> SELECT ASCII(\'2\');\n        -> 50\nMariaDB> SELECT ASCII(2);\n        -> 50\nMariaDB> SELECT ASCII(\'dx\');\n        -> 100\n','https://mariadb.com/kb/en/ascii/'),(221,'DIV',4,'Syntax:\nDIV\n\nInteger division. Similar to FLOOR(), but is safe with BIGINT values.\n\nAs of MySQL 5.5.3, if either operand has a noninteger type, the\noperands are converted to DECIMAL and divided using DECIMAL arithmetic\nbefore converting the result to BIGINT. If the result exceeds BIGINT\nrange, an error occurs. Before MySQL 5.5.3, incorrect results may occur\nfor noninteger operands that exceed BIGINT range.\n\nURL: https://mariadb.com/kb/en/div/\n\n','MariaDB> SELECT 5 DIV 2;\n        -> 2\n','https://mariadb.com/kb/en/div/'),(222,'RENAME USER',10,'Syntax:\nRENAME USER old_user TO new_user\n    [, old_user TO new_user] ...\n\nThe RENAME USER statement renames existing MySQL accounts. To use it,\nyou must have the global CREATE USER privilege or the UPDATE privilege\nfor the mysql database. An error occurs if any old account does not\nexist or any new account exists. Each account name uses the format\ndescribed in https://mariadb.com/kb/en/create-user/#account-names.\nFor example:\n\nRENAME USER \'jeffrey\'@\'localhost\' TO \'jeff\'@\'127.0.0.1\';\n\nIf you specify only the user name part of the account name, a host name\npart of \'%\' is used.\n\nRENAME USER causes the privileges held by the old user to be those held\nby the new user. However, RENAME USER does not automatically drop or\ninvalidate databases or objects within them that the old user created.\nThis includes stored programs or views for which the DEFINER attribute\nnames the old user. Attempts to access such objects may produce an\nerror if they execute in definer security context. (For information\nabout security context, see\nhttps://mariadb.com/kb/en/stored-routine-privileges/.)\n\nThe privilege changes take effect as indicated in\nhttp://dev.mysql.com/doc/refman/5.5/en/privilege-changes.html.\n\nURL: https://mariadb.com/kb/en/rename-user/\n\n','','https://mariadb.com/kb/en/rename-user/'),(223,'SHOW SLAVE STATUS',26,'Syntax:\nSHOW SLAVE STATUS\n\nThis statement provides status information on essential parameters of\nthe slave threads. It requires either the SUPER or REPLICATION CLIENT\nprivilege.\n\nIf you issue this statement using the mysql client, you can use a \\G\nstatement terminator rather than a semicolon to obtain a more readable\nvertical layout:\n\nMariaDB> SHOW SLAVE STATUS\\G\n*************************** 1. row ***************************\n               Slave_IO_State: Waiting for master to send event\n                  Master_Host: localhost\n                  Master_User: root\n                  Master_Port: 3306\n                Connect_Retry: 3\n              Master_Log_File: gbichot-bin.005\n          Read_Master_Log_Pos: 79\n               Relay_Log_File: gbichot-relay-bin.005\n                Relay_Log_Pos: 548\n        Relay_Master_Log_File: gbichot-bin.005\n             Slave_IO_Running: Yes\n            Slave_SQL_Running: Yes\n              Replicate_Do_DB:\n          Replicate_Ignore_DB:\n           Replicate_Do_Table:\n       Replicate_Ignore_Table:\n      Replicate_Wild_Do_Table:\n  Replicate_Wild_Ignore_Table:\n                   Last_Errno: 0\n                   Last_Error:\n                 Skip_Counter: 0\n          Exec_Master_Log_Pos: 79\n              Relay_Log_Space: 552\n              Until_Condition: None\n               Until_Log_File:\n                Until_Log_Pos: 0\n           Master_SSL_Allowed: No\n           Master_SSL_CA_File:\n           Master_SSL_CA_Path:\n              Master_SSL_Cert:\n            Master_SSL_Cipher:\n               Master_SSL_Key:\n        Seconds_Behind_Master: 8\nMaster_SSL_Verify_Server_Cert: No\n                Last_IO_Errno: 0\n                Last_IO_Error:\n               Last_SQL_Errno: 0\n               Last_SQL_Error:\n  Replicate_Ignore_Server_Ids: 0\n             Master_Server_Id: 1\n\nURL: https://mariadb.com/kb/en/show-slave-status/\n\n','','https://mariadb.com/kb/en/show-slave-status/'),(224,'GEOMETRY',34,'MySQL provides a standard way of creating spatial columns for geometry\ntypes, for example, with CREATE TABLE or ALTER TABLE. Currently,\nspatial columns are supported for MyISAM, Aria, InnoDB and ARCHIVE\ntables. See also the annotations about spatial indexes under [HELP\nSPATIAL].\n\nURL: https://mariadb.com/kb/en/gis-functionality/\n\n','CREATE TABLE geom (g GEOMETRY);\n','https://mariadb.com/kb/en/gis-functionality/'),(225,'NUMPOINTS',13,'NumPoints(ls)\n\nReturns the number of Point objects in the LineString value ls.\n\nURL: https://mariadb.com/kb/en/numpoints/\n\n','MariaDB> SET @ls = \'LineString(1 1,2 2,3 3)\';\nMariaDB> SELECT NumPoints(GeomFromText(@ls));\n+------------------------------+\n| NumPoints(GeomFromText(@ls)) |\n+------------------------------+\n|                            3 |\n+------------------------------+\n','https://mariadb.com/kb/en/numpoints/'),(226,'ALTER LOGFILE GROUP',39,'Syntax:\nALTER LOGFILE GROUP logfile_group\n    ADD UNDOFILE \'file_name\'\n    [INITIAL_SIZE [=] size]\n    [WAIT]\n    ENGINE [=] engine_name\n\nThis statement is used with NDB cluster, which is not supported by MariaDB.\n','','https://mariadb.com/kb/en/alter-logfile-group/'),(227,'&',19,'Syntax:\n&\n\nBitwise AND:\n\nURL: https://mariadb.com/kb/en/bitwise_and/\n\n','MariaDB> SELECT 29 & 15;\n        -> 13\n','https://mariadb.com/kb/en/bitwise_and/'),(228,'LOCALTIMESTAMP',31,'Syntax:\nLOCALTIMESTAMP, LOCALTIMESTAMP()\n\nLOCALTIMESTAMP and LOCALTIMESTAMP() are synonyms for NOW().\n\nURL: https://mariadb.com/kb/en/localtimestamp/\n\n','','https://mariadb.com/kb/en/localtimestamp/'),(229,'ASSIGN-EQUAL',15,'Syntax:\n=\n\nThis operator is used to perform value assignments in two cases,\ndescribed in the next two paragraphs.\n\nWithin a SET statement, = is treated as an assignment operator that\ncauses the user variable on the left hand side of the operator to take\non the value to its right. (In other words, when used in a SET\nstatement, = is treated identically to :=.) The value on the right hand\nside may be a literal value, another variable storing a value, or any\nlegal expression that yields a scalar value, including the result of a\nquery (provided that this value is a scalar value). You can perform\nmultiple assignments in the same SET statement.\n\nIn the SET clause of an UPDATE statement, = also acts as an assignment\noperator; in this case, however, it causes the column named on the left\nhand side of the operator to assume the value given to the right,\nprovided any WHERE conditions that are part of the UPDATE are met. You\ncan make multiple assignments in the same SET clause of an UPDATE\nstatement.\n\nIn any other context, = is treated as a comparison operator.\n\nURL: https://mariadb.com/kb/en/assignment-operators-assignment-operator/\n\n','MariaDB> SELECT @var1, @var2;\n        -> NULL, NULL\nMariaDB> SELECT @var1 := 1, @var2;\n        -> 1, NULL\nMariaDB> SELECT @var1, @var2;\n        -> 1, NULL\nMariaDB> SELECT @var1, @var2 := @var1;\n        -> 1, 1\nMariaDB> SELECT @var1, @var2;\n        -> 1, 1\n','https://mariadb.com/kb/en/assignment-operators-assignment-operator/'),(230,'CONVERT',37,'Syntax:\nCONVERT(expr,type), CONVERT(expr USING transcoding_name)\n\nThe CONVERT() and CAST() functions take an expression of any type and\nproduce a result value of a specified type.\n\nThe type for the result can be one of the following values:\n\no BINARY[(N)]\n\no CHAR[(N)]\n\no DATE\n\no DATETIME\n\no DECIMAL[(M[,D])]\n\no SIGNED [INTEGER]\n\no TIME\n\no UNSIGNED [INTEGER]\n\nBINARY produces a string with the BINARY data type. See\nhttps://mariadb.com/kb/en/binary/ for a\ndescription of how this affects comparisons. If the optional length N\nis given, BINARY(N) causes the cast to use no more than N bytes of the\nargument. Values shorter than N bytes are padded with 0x00 bytes to a\nlength of N.\n\nCHAR(N) causes the cast to use no more than N characters of the\nargument.\n\nCAST() and CONVERT(... USING ...) are standard SQL syntax. The\nnon-USING form of CONVERT() is ODBC syntax.\n\nCONVERT() with USING is used to convert data between different\ncharacter sets. In MySQL, transcoding names are the same as the\ncorresponding character set names. For example, this statement converts\nthe string \'abc\' in the default character set to the corresponding\nstring in the utf8 character set:\n\nSELECT CONVERT(\'abc\' USING utf8);\n\nURL: https://mariadb.com/kb/en/convert/\n\n','SELECT enum_col FROM tbl_name ORDER BY CAST(enum_col AS CHAR);\n','https://mariadb.com/kb/en/convert/'),(231,'ADDDATE',31,'Syntax:\nADDDATE(date,INTERVAL expr unit), ADDDATE(expr,days)\n\nWhen invoked with the INTERVAL form of the second argument, ADDDATE()\nis a synonym for DATE_ADD(). The related function SUBDATE() is a\nsynonym for DATE_SUB(). For information on the INTERVAL unit argument,\nsee the discussion for DATE_ADD().\n\nMariaDB> SELECT DATE_ADD(\'2008-01-02\', INTERVAL 31 DAY);\n        -> \'2008-02-02\'\nMariaDB> SELECT ADDDATE(\'2008-01-02\', INTERVAL 31 DAY);\n        -> \'2008-02-02\'\n\nWhen invoked with the days form of the second argument, MySQL treats it\nas an integer number of days to be added to expr.\n\nURL: https://mariadb.com/kb/en/adddate/\n\n','MariaDB> SELECT ADDDATE(\'2008-01-02\', 31);\n        -> \'2008-02-02\'\n','https://mariadb.com/kb/en/adddate/'),(232,'REPEAT LOOP',23,'Syntax:\n[begin_label:] REPEAT\n    statement_list\nUNTIL search_condition\nEND REPEAT [end_label]\n\nThe statement list within a REPEAT statement is repeated until the\nsearch_condition expression is true. Thus, a REPEAT always enters the\nloop at least once. statement_list consists of one or more statements,\neach terminated by a semicolon (;) statement delimiter.\n\nA REPEAT statement can be labeled. For the rules regarding label use,\nsee [HELP labels].\n\nURL: https://mariadb.com/kb/en/repeat-loop/\n\n','MariaDB> delimiter //\n\nMariaDB> CREATE PROCEDURE dorepeat(p1 INT)\n    -> BEGIN\n    ->   SET @x = 0;\n    ->   REPEAT\n    ->     SET @x = @x + 1;\n    ->   UNTIL @x > p1 END REPEAT;\n    -> END\n    -> //\nQuery OK, 0 rows affected (0.00 sec)\n\nMariaDB> CALL dorepeat(1000)//\nQuery OK, 0 rows affected (0.00 sec)\n\nMariaDB> SELECT @x//\n+------+\n| @x   |\n+------+\n| 1001 |\n+------+\n1 row in set (0.00 sec)\n','https://mariadb.com/kb/en/repeat-loop/'),(233,'ALTER FUNCTION',39,'Syntax:\nALTER FUNCTION func_name [characteristic ...]\n\ncharacteristic:\n    COMMENT \'string\'\n  | LANGUAGE SQL\n  | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }\n  | SQL SECURITY { DEFINER | INVOKER }\n\nThis statement can be used to change the characteristics of a stored\nfunction. More than one change may be specified in an ALTER FUNCTION\nstatement. However, you cannot change the parameters or body of a\nstored function using this statement; to make such changes, you must\ndrop and re-create the function using DROP FUNCTION and CREATE\nFUNCTION.\n\nYou must have the ALTER ROUTINE privilege for the function. (That\nprivilege is granted automatically to the function creator.) If binary\nlogging is enabled, the ALTER FUNCTION statement might also require the\nSUPER privilege, as described in\nhttps://mariadb.com/kb/en/binary-logging-of-stored-routines/.\n\nURL: https://mariadb.com/kb/en/alter-function/\n\n','','https://mariadb.com/kb/en/alter-function/'),(234,'SMALLINT',22,'SMALLINT[(M)] [UNSIGNED] [ZEROFILL]\n\nA small integer. The signed range is -32768 to 32767. The unsigned\nrange is 0 to 65535.\n\nURL: https://mariadb.com/kb/en/smallint/\n\n','','https://mariadb.com/kb/en/smallint/'),(235,'DOUBLE PRECISION',22,'DOUBLE PRECISION[(M,D)] [UNSIGNED] [ZEROFILL], REAL[(M,D)] [UNSIGNED]\n[ZEROFILL]\n\nThese types are synonyms for DOUBLE. Exception: If the REAL_AS_FLOAT\nSQL mode is enabled, REAL is a synonym for FLOAT rather than DOUBLE.\n\nURL: https://mariadb.com/kb/en/double-precision/\n\n','','https://mariadb.com/kb/en/double-precision/'),(236,'ORD',37,'Syntax:\nORD(str)\n\nIf the leftmost character of the string str is a multi-byte character,\nreturns the code for that character, calculated from the numeric values\nof its constituent bytes using this formula:\n\n  (1st byte code)\n+ (2nd byte code * 256)\n+ (3rd byte code * 2562) ...\n\nIf the leftmost character is not a multi-byte character, ORD() returns\nthe same value as the ASCII() function.\n\nURL: https://mariadb.com/kb/en/ord/\n\n','MariaDB> SELECT ORD(\'2\');\n        -> 50\n','https://mariadb.com/kb/en/ord/'),(237,'DEALLOCATE PREPARE',8,'Syntax:\n{DEALLOCATE | DROP} PREPARE stmt_name\n\nTo deallocate a prepared statement produced with PREPARE, use a\nDEALLOCATE PREPARE statement that refers to the prepared statement\nname. Attempting to execute a prepared statement after deallocating it\nresults in an error.\n\nURL: https://mariadb.com/kb/en/deallocate-drop-prepared-statement/\n\n','','https://mariadb.com/kb/en/deallocate-drop-prepared-statement/'),(238,'ENVELOPE',36,'Envelope(g)\n\nReturns the Minimum Bounding Rectangle (MBR) for the geometry value g.\nThe result is returned as a Polygon value.\n\nThe polygon is defined by the corner points of the bounding box:\n\nPOLYGON((MINX MINY, MAXX MINY, MAXX MAXY, MINX MAXY, MINX MINY))\n\nURL: https://mariadb.com/kb/en/envelope/\n\n','MariaDB> SELECT AsText(Envelope(GeomFromText(\'LineString(1 1,2 2)\')));\n+-------------------------------------------------------+\n| AsText(Envelope(GeomFromText(\'LineString(1 1,2 2)\'))) |\n+-------------------------------------------------------+\n| POLYGON((1 1,2 1,2 2,1 2,1 1))                        |\n+-------------------------------------------------------+\n','https://mariadb.com/kb/en/envelope/'),(239,'IS_FREE_LOCK',14,'Syntax:\nIS_FREE_LOCK(str)\n\nChecks whether the lock named str is free to use (that is, not locked).\nReturns 1 if the lock is free (no one is using the lock), 0 if the lock\nis in use, and NULL if an error occurs (such as an incorrect argument).\n\nURL: https://mariadb.com/kb/en/is_free_lock/\n\n','','https://mariadb.com/kb/en/is_free_lock/'),(240,'TOUCHES',30,'Touches(g1,g2)\n\nReturns 1 or 0 to indicate whether g1 spatially touches g2. Two\ngeometries spatially touch if the interiors of the geometries do not\nintersect, but the boundary of one of the geometries intersects either\nthe boundary or the interior of the other.\n\nURL: https://mariadb.com/kb/en/touches/\n\n','','https://mariadb.com/kb/en/touches/'),(241,'INET_ATON',14,'Syntax:\nINET_ATON(expr)\n\nGiven the dotted-quad representation of an IPv4 network address as a\nstring, returns an integer that represents the numeric value of the\naddress in network byte order (big endian). INET_ATON() returns NULL if\nit does not understand its argument.\n\nURL: https://mariadb.com/kb/en/inet_aton/\n\n','MariaDB> SELECT INET_ATON(\'10.0.5.9\');\n        -> 167773449\n','https://mariadb.com/kb/en/inet_aton/'),(242,'UNCOMPRESS',12,'Syntax:\nUNCOMPRESS(string_to_uncompress)\n\nUncompresses a string compressed by the COMPRESS() function. If the\nargument is not a compressed value, the result is NULL. This function\nrequires MySQL to have been compiled with a compression library such as\nzlib. Otherwise, the return value is always NULL.\n\nURL: https://mariadb.com/kb/en/uncompress/\n\n','MariaDB> SELECT UNCOMPRESS(COMPRESS(\'any string\'));\n        -> \'any string\'\nMariaDB> SELECT UNCOMPRESS(\'any string\');\n        -> NULL\n','https://mariadb.com/kb/en/uncompress/'),(243,'AUTO_INCREMENT',22,'The AUTO_INCREMENT attribute can be used to generate a unique identity\nfor new rows:\n\nURL: https://mariadb.com/kb/en/auto_increment/\n\n','CREATE TABLE animals (\n     id MEDIUMINT NOT NULL AUTO_INCREMENT,\n     name CHAR(30) NOT NULL,\n     PRIMARY KEY (id)\n);\n\nINSERT INTO animals (name) VALUES\n    (\'dog\'),(\'cat\'),(\'penguin\'),\n    (\'lax\'),(\'whale\'),(\'ostrich\');\n\nSELECT * FROM animals;\n','https://mariadb.com/kb/en/auto_increment/'),(244,'ISSIMPLE',36,'IsSimple(g)\n\nCurrently, this function is a placeholder and should not be used. If\nimplemented, its behavior will be as described in the next paragraph.\n\nReturns 1 if the geometry value g has no anomalous geometric points,\nsuch as self-intersection or self-tangency. IsSimple() returns 0 if the\nargument is not simple, and -1 if it is NULL.\n\nThe description of each instantiable geometric class given earlier in\nthe chapter includes the specific conditions that cause an instance of\nthat class to be classified as not simple. (See [HELP Geometry\nhierarchy].)\n\nURL: https://mariadb.com/kb/en/issimple/\n\n','','https://mariadb.com/kb/en/issimple/'),(245,'- BINARY',4,'Syntax:\n-\n\nSubtraction:\n\nURL: https://mariadb.com/kb/en/subtraction-operator-/\n\n','MariaDB> SELECT 3-5;\n        -> -2\n','https://mariadb.com/kb/en/subtraction-operator-/'),(246,'GEOMCOLLFROMTEXT',3,'GeomCollFromText(wkt[,srid]), GeometryCollectionFromText(wkt[,srid])\n\nConstructs a GEOMETRYCOLLECTION value using its WKT representation and\nSRID.\n\nURL: https://mariadb.com/kb/en/geomcollfromtext/\n\n','','https://mariadb.com/kb/en/geomcollfromtext/'),(247,'WKT DEFINITION',3,'The Well-Known Text (WKT) representation of Geometry is designed to\nexchange geometry data in ASCII form. For a Backus-Naur grammar that\nspecifies the formal production rules for writing WKT values, see the\nOpenGIS specification document referenced in\nhttps://mariadb.com/kb/en/gis-resources/.\n\nURL: https://mariadb.com/kb/en/wkt-definition/\n\n','','https://mariadb.com/kb/en/wkt-definition/'),(248,'CURRENT_TIME',31,'Syntax:\nCURRENT_TIME, CURRENT_TIME()\n\nCURRENT_TIME and CURRENT_TIME() are synonyms for CURTIME().\n\nURL: https://mariadb.com/kb/en/current_time/\n\n','','https://mariadb.com/kb/en/current_time/'),(249,'REVOKE',10,'Syntax:\nREVOKE\n    priv_type [(column_list)]\n      [, priv_type [(column_list)]] ...\n    ON [object_type] priv_level\n    FROM user [, user] ...\n\nREVOKE ALL PRIVILEGES, GRANT OPTION\n    FROM user [, user] ...\n\nREVOKE PROXY ON user\n    FROM user [, user] ...\n\nThe REVOKE statement enables system administrators to revoke privileges\nfrom MySQL accounts. Each account name uses the format described in\nhttps://mariadb.com/kb/en/create-user#account-names. For example:\n\nREVOKE INSERT ON *.* FROM \'jeffrey\'@\'localhost\';\n\nIf you specify only the user name part of the account name, a host name\npart of \'%\' is used.\n\nFor details on the levels at which privileges exist, the permissible\npriv_type and priv_level values, and the syntax for specifying users\nand passwords, see [HELP GRANT]\n\nTo use the first REVOKE syntax, you must have the GRANT OPTION\nprivilege, and you must have the privileges that you are revoking.\n\nTo revoke all privileges, use the second syntax, which drops all\nglobal, database, table, column, and routine privileges for the named\nuser or users:\n\nREVOKE ALL PRIVILEGES, GRANT OPTION FROM user [, user] ...\n\nTo use this REVOKE syntax, you must have the global CREATE USER\nprivilege or the UPDATE privilege for the mysql database.\n\nURL: https://mariadb.com/kb/en/revoke/\n\n','','https://mariadb.com/kb/en/revoke/'),(250,'LAST_INSERT_ID',17,'Syntax:\nLAST_INSERT_ID(), LAST_INSERT_ID(expr)\n\nLAST_INSERT_ID() (with no argument) returns a BIGINT (64-bit) value\nrepresenting the first automatically generated value successfully\ninserted for an AUTO_INCREMENT column as a result of the most recently\nexecuted INSERT statement. The value of LAST_INSERT_ID() remains\nunchanged if no rows are successfully inserted.\n\nFor example, after inserting a row that generates an AUTO_INCREMENT\nvalue, you can get the value like this:\n\nMariaDB> SELECT LAST_INSERT_ID();\n        -> 195\n\nThe currently executing statement does not affect the value of\nLAST_INSERT_ID(). Suppose that you generate an AUTO_INCREMENT value\nwith one statement, and then refer to LAST_INSERT_ID() in a\nmultiple-row INSERT statement that inserts rows into a table with its\nown AUTO_INCREMENT column. The value of LAST_INSERT_ID() will remain\nstable in the second statement; its value for the second and later rows\nis not affected by the earlier row insertions. (However, if you mix\nreferences to LAST_INSERT_ID() and LAST_INSERT_ID(expr), the effect is\nundefined.)\n\nIf the previous statement returned an error, the value of\nLAST_INSERT_ID() is undefined. For transactional tables, if the\nstatement is rolled back due to an error, the value of LAST_INSERT_ID()\nis left undefined. For manual ROLLBACK, the value of LAST_INSERT_ID()\nis not restored to that before the transaction; it remains as it was at\nthe point of the ROLLBACK.\n\nWithin the body of a stored routine (procedure or function) or a\ntrigger, the value of LAST_INSERT_ID() changes the same way as for\nstatements executed outside the body of these kinds of objects. The\neffect of a stored routine or trigger upon the value of\nLAST_INSERT_ID() that is seen by following statements depends on the\nkind of routine:\n\no If a stored procedure executes statements that change the value of\n  LAST_INSERT_ID(), the changed value is seen by statements that follow\n  the procedure call.\n\no For stored functions and triggers that change the value, the value is\n  restored when the function or trigger ends, so following statements\n  will not see a changed value.\n\nURL: https://mariadb.com/kb/en/last_insert_id/\n\n','','https://mariadb.com/kb/en/last_insert_id/'),(251,'LAST_DAY',31,'Syntax:\nLAST_DAY(date)\n\nTakes a date or datetime value and returns the corresponding value for\nthe last day of the month. Returns NULL if the argument is invalid.\n\nURL: https://mariadb.com/kb/en/last_day/\n\n','MariaDB> SELECT LAST_DAY(\'2003-02-05\');\n        -> \'2003-02-28\'\nMariaDB> SELECT LAST_DAY(\'2004-02-05\');\n        -> \'2004-02-29\'\nMariaDB> SELECT LAST_DAY(\'2004-01-01 01:01:01\');\n        -> \'2004-01-31\'\nMariaDB> SELECT LAST_DAY(\'2003-03-32\');\n        -> NULL\n','https://mariadb.com/kb/en/last_day/'),(252,'MEDIUMINT',22,'MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]\n\nA medium-sized integer. The signed range is -8388608 to 8388607. The\nunsigned range is 0 to 16777215.\n\nURL: https://mariadb.com/kb/en/mediumint/\n\n','','https://mariadb.com/kb/en/mediumint/'),(253,'FLOOR',4,'Syntax:\nFLOOR(X)\n\nReturns the largest integer value not greater than X.\n\nURL: https://mariadb.com/kb/en/floor/\n\n','MariaDB> SELECT FLOOR(1.23);\n        -> 1\nMariaDB> SELECT FLOOR(-1.23);\n        -> -2\n','https://mariadb.com/kb/en/floor/'),(254,'RTRIM',37,'Syntax:\nRTRIM(str)\n\nReturns the string str with trailing space characters removed.\n\nURL: https://mariadb.com/kb/en/rtrim/\n\n','MariaDB> SELECT RTRIM(\'barbar   \');\n        -> \'barbar\'\n','https://mariadb.com/kb/en/rtrim/'),(255,'EXPLAIN',28,'Syntax:\nEXPLAIN [explain_type] SELECT select_options\n\nexplain_type:\n    EXTENDED\n  | PARTITIONS\n\nOr:\n\nEXPLAIN tbl_name\n\nThe EXPLAIN statement can be used either as a way to obtain information\nabout how MySQL executes a statement, or as a synonym for DESCRIBE:\n\no When you precede a SELECT statement with the keyword EXPLAIN, MySQL\n  displays information from the optimizer about the query execution\n  plan. That is, MySQL explains how it would process the statement,\n  including information about how tables are joined and in which order.\n  EXPLAIN EXTENDED can be used to obtain additional information.\n\n  For information about using EXPLAIN and EXPLAIN EXTENDED to obtain\n  query execution plan information, see\n  https://mariadb.com/kb/en/explain/.\n\no EXPLAIN PARTITIONS is useful only when examining queries involving\n  partitioned tables. For details, see\n  http://dev.mysql.com/doc/refman/5.5/en/partitioning-info.html.\n\no EXPLAIN tbl_name is synonymous with DESCRIBE tbl_name or SHOW COLUMNS\n  FROM tbl_name. For information about DESCRIBE and SHOW COLUMNS, see\n  [HELP DESCRIBE], and [HELP SHOW COLUMNS].\n\nURL: https://mariadb.com/kb/en/explain/\n\n','','https://mariadb.com/kb/en/explain/'),(256,'DEGREES',4,'Syntax:\nDEGREES(X)\n\nReturns the argument X, converted from radians to degrees.\n\nURL: https://mariadb.com/kb/en/degrees/\n\n','MariaDB> SELECT DEGREES(PI());\n        -> 180\nMariaDB> SELECT DEGREES(PI() / 2);\n        -> 90\n','https://mariadb.com/kb/en/degrees/'),(257,'VARCHAR',22,'[NATIONAL] VARCHAR(M) [CHARACTER SET charset_name] [COLLATE\ncollation_name]\n\nA variable-length string. M represents the maximum column length in\ncharacters. The range of M is 0 to 65,535. The effective maximum length\nof a VARCHAR is subject to the maximum row size (65,535 bytes, which is\nshared among all columns) and the character set used. For example, utf8\ncharacters can require up to three bytes per character, so a VARCHAR\ncolumn that uses the utf8 character set can be declared to be a maximum\nof 21,844 characters. See\nhttp://dev.mysql.com/doc/refman/5.5/en/column-count-limit.html.\n\nMySQL stores VARCHAR values as a 1-byte or 2-byte length prefix plus\ndata. The length prefix indicates the number of bytes in the value. A\nVARCHAR column uses one length byte if values require no more than 255\nbytes, two length bytes if values may require more than 255 bytes.\n\n*Note*: MySQL 5.5 follows the standard SQL specification, and does not\nremove trailing spaces from VARCHAR values.\n\nVARCHAR is shorthand for CHARACTER VARYING. NATIONAL VARCHAR is the\nstandard SQL way to define that a VARCHAR column should use some\npredefined character set. MySQL 4.1 and up uses utf8 as this predefined\ncharacter set.\nhttps://mariadb.com/kb/en/varchar/. NVARCHAR\nis shorthand for NATIONAL VARCHAR.\n\nURL: https://mariadb.com/kb/en/varchar/\n\n','','https://mariadb.com/kb/en/varchar/'),(258,'UNHEX',37,'Syntax:\n\nUNHEX(str)\n\nFor a string argument str, UNHEX(str) performs the inverse operation of\nHEX(str). That is, it interprets each pair of characters in the\nargument as a hexadecimal number and converts it to the character\nrepresented by the number. The return value is a binary string.\n\nURL: https://mariadb.com/kb/en/unhex/\n\n','MariaDB> SELECT UNHEX(\'4D7953514C\');\n        -> \'MySQL\'\nMariaDB> SELECT 0x4D7953514C;\n        -> \'MySQL\'\nMariaDB> SELECT UNHEX(HEX(\'string\'));\n        -> \'string\'\nMariaDB> SELECT HEX(UNHEX(\'1267\'));\n        -> \'1267\'\n','https://mariadb.com/kb/en/unhex/'),(259,'- UNARY',4,'Syntax:\n-\n\nUnary minus. This operator changes the sign of the operand.\n\nURL: https://mariadb.com/kb/en/subtraction-operator-/\n\n','MariaDB> SELECT - 2;\n        -> -2\n','https://mariadb.com/kb/en/subtraction-operator-/'),(260,'STD',16,'Syntax:\nSTD(expr)\n\nReturns the population standard deviation of expr. This is an extension\nto standard SQL. The standard SQL function STDDEV_POP() can be used\ninstead.\n\nThis function returns NULL if there were no matching rows.\n\nURL: https://mariadb.com/kb/en/std/\n\n','','https://mariadb.com/kb/en/std/'),(261,'COS',4,'Syntax:\nCOS(X)\n\nReturns the cosine of X, where X is given in radians.\n\nURL: https://mariadb.com/kb/en/cos/\n\n','MariaDB> SELECT COS(PI());\n        -> -1\n','https://mariadb.com/kb/en/cos/'),(262,'DATE FUNCTION',31,'Syntax:\nDATE(expr)\n\nExtracts the date part of the date or datetime expression expr.\n\nURL: https://mariadb.com/kb/en/date-function/\n\n','MariaDB> SELECT DATE(\'2003-12-31 01:02:03\');\n        -> \'2003-12-31\'\n','https://mariadb.com/kb/en/date-function/'),(263,'DROP TRIGGER',39,'Syntax:\nDROP TRIGGER [IF EXISTS] [schema_name.]trigger_name\n\nThis statement drops a trigger. The schema (database) name is optional.\nIf the schema is omitted, the trigger is dropped from the default\nschema. DROP TRIGGER requires the TRIGGER privilege for the table\nassociated with the trigger.\n\nUse IF EXISTS to prevent an error from occurring for a trigger that\ndoes not exist. A NOTE is generated for a nonexistent trigger when\nusing IF EXISTS. See [HELP SHOW WARNINGS].\n\nTriggers for a table are also dropped if you drop the table.\n\nURL: https://mariadb.com/kb/en/drop-trigger/\n\n','','https://mariadb.com/kb/en/drop-trigger/'),(264,'RESET MASTER',8,'Syntax:\nRESET MASTER\n\nDeletes all binary log files listed in the index file, resets the\nbinary log index file to be empty, and creates a new binary log file.\nThis statement is intended to be used only when the master is started\nfor the first time.\n\nURL: https://mariadb.com/kb/en/reset-master/\n\n','','https://mariadb.com/kb/en/reset-master/'),(265,'TAN',4,'Syntax:\nTAN(X)\n\nReturns the tangent of X, where X is given in radians.\n\nURL: https://mariadb.com/kb/en/tan/\n\n','MariaDB> SELECT TAN(PI());\n        -> -1.2246063538224e-16\nMariaDB> SELECT TAN(PI()+1);\n        -> 1.5574077246549\n','https://mariadb.com/kb/en/tan/'),(266,'PI',4,'Syntax:\nPI()\n\nReturns the value of π (pi). The default number of decimal places\ndisplayed is seven, but MySQL uses the full double-precision value\ninternally.\n\nURL: https://mariadb.com/kb/en/pi/\n\n','MariaDB> SELECT PI();\n        -> 3.141593\nMariaDB> SELECT PI()+0.000000000000000000;\n        -> 3.141592653589793116\n','https://mariadb.com/kb/en/pi/'),(267,'WEEKOFYEAR',31,'Syntax:\nWEEKOFYEAR(date)\n\nReturns the calendar week of the date as a number in the range from 1\nto 53. WEEKOFYEAR() is a compatibility function that is equivalent to\nWEEK(date,3).\n\nURL: https://mariadb.com/kb/en/weekofyear/\n\n','MariaDB> SELECT WEEKOFYEAR(\'2008-02-20\');\n        -> 8\n','https://mariadb.com/kb/en/weekofyear/'),(268,'/',4,'Syntax:\n/\n\nDivision:\n\nURL: https://mariadb.com/kb/en/division-operator/\n\n','MariaDB> SELECT 3/5;\n        -> 0.60\n','https://mariadb.com/kb/en/division-operator/'),(269,'PURGE BINARY LOGS',8,'Syntax:\nPURGE { BINARY | MASTER } LOGS\n    { TO \'log_name\' | BEFORE datetime_expr }\n\nThe binary log is a set of files that contain information about data\nmodifications made by the MySQL server. The log consists of a set of\nbinary log files, plus an index file (see\nhttps://mariadb.com/kb/en/overview-of-the-binary-log/).\n\nThe PURGE BINARY LOGS statement deletes all the binary log files listed\nin the log index file prior to the specified log file name or date.\nBINARY and MASTER are synonyms. Deleted log files also are removed from\nthe list recorded in the index file, so that the given log file becomes\nthe first in the list.\n\nThis statement has no effect if the server was not started with the\n--log-bin option to enable binary logging.\n\nURL: https://mariadb.com/kb/en/sql-commands-purge-logs/\n\n','PURGE BINARY LOGS TO \'mysql-bin.010\';\nPURGE BINARY LOGS BEFORE \'2008-04-02 22:46:26\';\n','https://mariadb.com/kb/en/sql-commands-purge-logs/'),(270,'STDDEV_SAMP',16,'Syntax:\nSTDDEV_SAMP(expr)\n\nReturns the sample standard deviation of expr (the square root of\nVAR_SAMP().\n\nSTDDEV_SAMP() returns NULL if there were no matching rows.\n\nURL: https://mariadb.com/kb/en/stddev_samp/\n\n','','https://mariadb.com/kb/en/stddev_samp/'),(271,'SCHEMA',17,'Syntax:\nSCHEMA()\n\nThis function is a synonym for DATABASE().\n\nURL: https://mariadb.com/kb/en/schema/\n\n','','https://mariadb.com/kb/en/schema/'),(272,'MLINEFROMWKB',32,'MLineFromWKB(wkb[,srid]), MultiLineStringFromWKB(wkb[,srid])\n\nConstructs a MULTILINESTRING value using its WKB representation and\nSRID.\n\nURL: https://mariadb.com/kb/en/mlinefromwkb/\n\n','','https://mariadb.com/kb/en/mlinefromwkb/'),(273,'LOG2',4,'Syntax:\nLOG2(X)\n\nReturns the base-2 logarithm of X.\n\nURL: https://mariadb.com/kb/en/log2/\n\n','MariaDB> SELECT LOG2(65536);\n        -> 16\nMariaDB> SELECT LOG2(-100);\n        -> NULL\n','https://mariadb.com/kb/en/log2/'),(274,'SUBTIME',31,'Syntax:\nSUBTIME(expr1,expr2)\n\nSUBTIME() returns expr1 - expr2 expressed as a value in the same format\nas expr1. expr1 is a time or datetime expression, and expr2 is a time\nexpression.\n\nURL: https://mariadb.com/kb/en/subtime/\n\n','MariaDB> SELECT SUBTIME(\'2007-12-31 23:59:59.999999\',\'1 1:1:1.000002\');\n        -> \'2007-12-30 22:58:58.999997\'\nMariaDB> SELECT SUBTIME(\'01:00:00.999999\', \'02:00:00.999998\');\n        -> \'-00:59:59.999999\'\n','https://mariadb.com/kb/en/subtime/'),(275,'UNCOMPRESSED_LENGTH',12,'Syntax:\nUNCOMPRESSED_LENGTH(compressed_string)\n\nReturns the length that the compressed string had before being\ncompressed.\n\nURL: https://mariadb.com/kb/en/uncompressed_length/\n\n','MariaDB> SELECT UNCOMPRESSED_LENGTH(COMPRESS(REPEAT(\'a\',30)));\n        -> 30\n','https://mariadb.com/kb/en/uncompressed_length/'),(276,'DROP TABLE',39,'Syntax:\nDROP [TEMPORARY] TABLE [IF EXISTS]\n    tbl_name [, tbl_name] ...\n    [RESTRICT | CASCADE]\n\nDROP TABLE removes one or more tables. You must have the DROP privilege\nfor each table. All table data and the table definition are removed, so\nbe careful with this statement! If any of the tables named in the\nargument list do not exist, MySQL returns an error indicating by name\nwhich nonexisting tables it was unable to drop, but it also drops all\nof the tables in the list that do exist.\n\n*Important*: When a table is dropped, user privileges on the table are\nnot automatically dropped. See [HELP GRANT].\n\nNote that for a partitioned table, DROP TABLE permanently removes the\ntable definition, all of its partitions, and all of the data which was\nstored in those partitions. It also removes the partitioning definition\n(.par) file associated with the dropped table.\n\nUse IF EXISTS to prevent an error from occurring for tables that do not\nexist. A NOTE is generated for each nonexistent table when using IF\nEXISTS. See [HELP SHOW WARNINGS].\n\nRESTRICT and CASCADE are permitted to make porting easier. In MySQL\n5.5, they do nothing.\n\n*Note*: DROP TABLE automatically commits the current active\ntransaction, unless you use the TEMPORARY keyword.\n\nURL: https://mariadb.com/kb/en/drop-table/\n\n','','https://mariadb.com/kb/en/drop-table/'),(277,'POW',4,'Syntax:\nPOW(X,Y)\n\nReturns the value of X raised to the power of Y.\n\nURL: https://mariadb.com/kb/en/pow/\n\n','MariaDB> SELECT POW(2,2);\n        -> 4\nMariaDB> SELECT POW(2,-2);\n        -> 0.25\n','https://mariadb.com/kb/en/pow/'),(278,'SHOW CREATE TABLE',26,'Syntax:\nSHOW CREATE TABLE tbl_name\n\nShows the CREATE TABLE statement that creates the given table. To use\nthis statement, you must have some privilege for the table. This\nstatement also works with views.\nSHOW CREATE TABLE quotes table and column names according to the value\nof the sql_quote_show_create option. See\nhttps://mariadb.com/kb/en/server-system-variables/.\n\nURL: https://mariadb.com/kb/en/show-create-table/\n\n','MariaDB> SHOW CREATE TABLE t\\G\n*************************** 1. row ***************************\n       Table: t\nCreate Table: CREATE TABLE t (\n  id INT(11) default NULL auto_increment,\n  s char(60) default NULL,\n  PRIMARY KEY (id)\n) ENGINE=MyISAM\n','https://mariadb.com/kb/en/show-create-table/'),(279,'DUAL',27,'You are permitted to specify DUAL as a dummy table name in situations\nwhere no tables are referenced:\n\nMariaDB> SELECT 1 + 1 FROM DUAL;\n        -> 2\n\nDUAL is purely for the convenience of people who require that all\nSELECT statements should have FROM and possibly other clauses. MySQL\nmay ignore the clauses. MySQL does not require FROM DUAL if no tables\nare referenced.\n\nURL: https://mariadb.com/kb/en/dual/\n\n','','https://mariadb.com/kb/en/dual/'),(280,'INSTR',37,'Syntax:\nINSTR(str,substr)\n\nReturns the position of the first occurrence of substring substr in\nstring str. This is the same as the two-argument form of LOCATE(),\nexcept that the order of the arguments is reversed.\n\nURL: https://mariadb.com/kb/en/instr/\n\n','MariaDB> SELECT INSTR(\'foobarbar\', \'bar\');\n        -> 4\nMariaDB> SELECT INSTR(\'xbar\', \'foobar\');\n        -> 0\n','https://mariadb.com/kb/en/instr/'),(281,'NOW',31,'Syntax:\nNOW()\n\nReturns the current date and time as a value in \'YYYY-MM-DD HH:MM:SS\'\nor YYYYMMDDHHMMSS.uuuuuu format, depending on whether the function is\nused in a string or numeric context. The value is expressed in the\ncurrent time zone.\n\nURL: https://mariadb.com/kb/en/now/\n\n','MariaDB> SELECT NOW();\n        -> \'2007-12-15 23:50:26\'\nMariaDB> SELECT NOW() + 0;\n        -> 20071215235026.000000\n','https://mariadb.com/kb/en/now/'),(282,'SHOW ENGINES',26,'Syntax:\nSHOW [STORAGE] ENGINES\n\nSHOW ENGINES displays status information about the server\'s storage\nengines. This is particularly useful for checking whether a storage\nengine is supported, or to see what the default engine is.\n\nURL: https://mariadb.com/kb/en/show-engines/\n\n','','https://mariadb.com/kb/en/show-engines/'),(283,'>=',18,'Syntax:\n>=\n\nGreater than or equal:\n\nURL: https://mariadb.com/kb/en/greater-than-or-equal/\n\n','MariaDB> SELECT 2 >= 2;\n        -> 1\n','https://mariadb.com/kb/en/greater-than-or-equal/'),(284,'EXP',4,'Syntax:\nEXP(X)\n\nReturns the value of e (the base of natural logarithms) raised to the\npower of X. The inverse of this function is LOG() (using a single\nargument only) or LN().\n\nURL: https://mariadb.com/kb/en/exp/\n\n','MariaDB> SELECT EXP(2);\n        -> 7.3890560989307\nMariaDB> SELECT EXP(-2);\n        -> 0.13533528323661\nMariaDB> SELECT EXP(0);\n        -> 1\n','https://mariadb.com/kb/en/exp/'),(285,'LONGBLOB',22,'LONGBLOB\n\nA BLOB column with a maximum length of 4,294,967,295 or 4GB (232 - 1)\nbytes. The effective maximum length of LONGBLOB columns depends on the\nconfigured maximum packet size in the client/server protocol and\navailable memory. Each LONGBLOB value is stored using a 4-byte length\nprefix that indicates the number of bytes in the value.\n\nURL: https://mariadb.com/kb/en/longblob/\n\n','','https://mariadb.com/kb/en/longblob/'),(286,'POINTN',13,'PointN(ls,N)\n\nReturns the N-th Point in the Linestring value ls. Points are numbered\nbeginning with 1.\n\nURL: https://mariadb.com/kb/en/pointn/\n\n','MariaDB> SET @ls = \'LineString(1 1,2 2,3 3)\';\nMariaDB> SELECT AsText(PointN(GeomFromText(@ls),2));\n+-------------------------------------+\n| AsText(PointN(GeomFromText(@ls),2)) |\n+-------------------------------------+\n| POINT(2 2)                          |\n+-------------------------------------+\n','https://mariadb.com/kb/en/pointn/'),(287,'YEAR DATA TYPE',22,'YEAR[(2|4)]\n\nA year in two-digit or four-digit format. The default is four-digit\nformat. YEAR(2) or YEAR(4) differ in display format, but have the same\nrange of values. In four-digit format, values display as 1901 to 2155,\nand 0000. In two-digit format, values display as 70 to 69, representing\nyears from 1970 to 2069. MySQL displays YEAR values in YYYY or\nYYformat, but permits assignment of values to YEAR columns using either\nstrings or numbers.\n\n*Note*: The YEAR(2) data type has certain issues that you should\nconsider before choosing to use it. As of MySQL 5.5.27, YEAR(2) is\ndeprecated. For more information, see\nhttp://dev.mysql.com/doc/refman/5.5/en/migrating-to-year4.html.\n\nFor additional information about YEAR display format and inerpretation\nof input values, see https://mariadb.com/kb/en/year-data-type/.\n\nURL: https://mariadb.com/kb/en/year-data-type/\n\n','','https://mariadb.com/kb/en/year-data-type/'),(288,'SUM',16,'Syntax:\nSUM([DISTINCT] expr)\n\nReturns the sum of expr. If the return set has no rows, SUM() returns\nNULL. The DISTINCT keyword can be used to sum only the distinct values\nof expr.\n\nSUM() returns NULL if there were no matching rows.\n\nURL: https://mariadb.com/kb/en/sum/\n\n','','https://mariadb.com/kb/en/sum/'),(289,'OCT',37,'Syntax:\nOCT(N)\n\nReturns a string representation of the octal value of N, where N is a\nlonglong (BIGINT) number. This is equivalent to CONV(N,10,8). Returns\nNULL if N is NULL.\n\nURL: https://mariadb.com/kb/en/oct/\n\n','MariaDB> SELECT OCT(12);\n        -> \'14\'\n','https://mariadb.com/kb/en/oct/'),(290,'SYSDATE',31,'Syntax:\nSYSDATE()\n\nReturns the current date and time as a value in \'YYYY-MM-DD HH:MM:SS\'\nor YYYYMMDDHHMMSS.uuuuuu format, depending on whether the function is\nused in a string or numeric context.\n\nSYSDATE() returns the time at which it executes. This differs from the\nbehavior for NOW(), which returns a constant time that indicates the\ntime at which the statement began to execute. (Within a stored function\nor trigger, NOW() returns the time at which the function or triggering\nstatement began to execute.)\n\nMariaDB> SELECT NOW(), SLEEP(2), NOW();\n+---------------------+----------+---------------------+\n| NOW()               | SLEEP(2) | NOW()               |\n+---------------------+----------+---------------------+\n| 2006-04-12 13:47:36 |        0 | 2006-04-12 13:47:36 |\n+---------------------+----------+---------------------+\n\nMariaDB> SELECT SYSDATE(), SLEEP(2), SYSDATE();\n+---------------------+----------+---------------------+\n| SYSDATE()           | SLEEP(2) | SYSDATE()           |\n+---------------------+----------+---------------------+\n| 2006-04-12 13:47:44 |        0 | 2006-04-12 13:47:46 |\n+---------------------+----------+---------------------+\n\nIn addition, the SET TIMESTAMP statement affects the value returned by\nNOW() but not by SYSDATE(). This means that timestamp settings in the\nbinary log have no effect on invocations of SYSDATE().\n\nBecause SYSDATE() can return different values even within the same\nstatement, and is not affected by SET TIMESTAMP, it is nondeterministic\nand therefore unsafe for replication if statement-based binary logging\nis used. If that is a problem, you can use row-based logging.\n\nAlternatively, you can use the --sysdate-is-now option to cause\nSYSDATE() to be an alias for NOW(). This works if the option is used on\nboth the master and the slave.\n\nThe nondeterministic nature of SYSDATE() also means that indexes cannot\nbe used for evaluating expressions that refer to it.\n\nURL: https://mariadb.com/kb/en/sysdate/\n\n','','https://mariadb.com/kb/en/sysdate/'),(291,'UNINSTALL PLUGIN',5,'Syntax:\nUNINSTALL PLUGIN plugin_name\n\nThis statement removes an installed server plugin. It requires the\nDELETE privilege for the mysql.plugin table.\n\nplugin_name must be the name of some plugin that is listed in the\nmysql.plugin table. The server executes the plugin\'s deinitialization\nfunction and removes the row for the plugin from the mysql.plugin\ntable, so that subsequent server restarts will not load and initialize\nthe plugin. UNINSTALL PLUGIN does not remove the plugin\'s shared\nlibrary file.\n\nURL: https://mariadb.com/kb/en/uninstall-plugin/\n\n','','https://mariadb.com/kb/en/uninstall-plugin/'),(292,'ASBINARY',32,'AsBinary(g), AsWKB(g)\n\nConverts a value in internal geometry format to its WKB representation\nand returns the binary result.\n\nURL: https://mariadb.com/kb/en/asbinary/\n\n','SELECT AsBinary(g) FROM geom;\n','https://mariadb.com/kb/en/asbinary/'),(293,'REPEAT FUNCTION',37,'Syntax:\nREPEAT(str,count)\n\nReturns a string consisting of the string str repeated count times. If\ncount is less than 1, returns an empty string. Returns NULL if str or\ncount are NULL.\n\nURL: https://mariadb.com/kb/en/repeat-function/\n\n','MariaDB> SELECT REPEAT(\'MySQL\', 3);\n        -> \'MySQLMySQLMySQL\'\n','https://mariadb.com/kb/en/repeat-function/'),(294,'SHOW TABLES',26,'Syntax:\nSHOW [FULL] TABLES [{FROM | IN} db_name]\n    [LIKE \'pattern\' | WHERE expr]\n\nSHOW TABLES lists the non-TEMPORARY tables in a given database. You can\nalso get this list using the mysqlshow db_name command. The LIKE\nclause, if present, indicates which table names to match. The WHERE\nclause can be given to select rows using more general conditions, as\ndiscussed in https://mariadb.com/kb/en/extended-show/.\n\nThis statement also lists any views in the database. The FULL modifier\nis supported such that SHOW FULL TABLES displays a second output\ncolumn. Values for the second column are BASE TABLE for a table and\nVIEW for a view.\n\nIf you have no privileges for a base table or view, it does not show up\nin the output from SHOW TABLES or mysqlshow db_name.\n\nURL: https://mariadb.com/kb/en/show-tables/\n\n','','https://mariadb.com/kb/en/show-tables/'),(295,'MAKEDATE',31,'Syntax:\nMAKEDATE(year,dayofyear)\n\nReturns a date, given year and day-of-year values. dayofyear must be\ngreater than 0 or the result is NULL.\n\nURL: https://mariadb.com/kb/en/makedate/\n\n','MariaDB> SELECT MAKEDATE(2011,31), MAKEDATE(2011,32);\n        -> \'2011-01-31\', \'2011-02-01\'\nMariaDB> SELECT MAKEDATE(2011,365), MAKEDATE(2014,365);\n        -> \'2011-12-31\', \'2014-12-31\'\nMariaDB> SELECT MAKEDATE(2011,0);\n        -> NULL\n','https://mariadb.com/kb/en/makedate/'),(296,'BINARY OPERATOR',37,'Syntax:\nBINARY\n\nThe BINARY operator casts the string following it to a binary string.\nThis is an easy way to force a column comparison to be done byte by\nbyte rather than character by character. This causes the comparison to\nbe case sensitive even if the column is not defined as BINARY or BLOB.\nBINARY also causes trailing spaces to be significant.\n\nURL: https://mariadb.com/kb/en/binary-operator/\n\n','MariaDB> SELECT \'a\' = \'A\';\n        -> 1\nMariaDB> SELECT BINARY \'a\' = \'A\';\n        -> 0\nMariaDB> SELECT \'a\' = \'a \';\n        -> 1\nMariaDB> SELECT BINARY \'a\' = \'a \';\n        -> 0\n','https://mariadb.com/kb/en/binary-operator/'),(297,'MBROVERLAPS',6,'MBROverlaps(g1,g2)\n\nReturns 1 or 0 to indicate whether the Minimum Bounding Rectangles of\nthe two geometries g1 and g2 overlap. The term spatially overlaps is\nused if two geometries intersect and their intersection results in a\ngeometry of the same dimension but not equal to either of the given\ngeometries.\n\nURL: https://mariadb.com/kb/en/mbroverlaps/\n\n','','https://mariadb.com/kb/en/mbroverlaps/'),(298,'SOUNDEX',37,'Syntax:\nSOUNDEX(str)\n\nReturns a soundex string from str. Two strings that sound almost the\nsame should have identical soundex strings. A standard soundex string\nis four characters long, but the SOUNDEX() function returns an\narbitrarily long string. You can use SUBSTRING() on the result to get a\nstandard soundex string. All nonalphabetic characters in str are\nignored. All international alphabetic characters outside the A-Z range\nare treated as vowels.\n\n*Important*: When using SOUNDEX(), you should be aware of the following\nlimitations:\n\no This function, as currently implemented, is intended to work well\n  with strings that are in the English language only. Strings in other\n  languages may not produce reliable results.\n\no This function is not guaranteed to provide consistent results with\n  strings that use multi-byte character sets, including utf-8.\n\n  We hope to remove these limitations in a future release. See Bug\n  #22638 for more information.\n\nURL: https://mariadb.com/kb/en/soundex/\n\n','MariaDB> SELECT SOUNDEX(\'Hello\');\n        -> \'H400\'\nMariaDB> SELECT SOUNDEX(\'Quadratically\');\n        -> \'Q36324\'\n','https://mariadb.com/kb/en/soundex/'),(299,'MBRTOUCHES',6,'MBRTouches(g1,g2)\n\nReturns 1 or 0 to indicate whether the Minimum Bounding Rectangles of\nthe two geometries g1 and g2 touch. Two geometries spatially touch if\nthe interiors of the geometries do not intersect, but the boundary of\none of the geometries intersects either the boundary or the interior of\nthe other.\n\nURL: https://mariadb.com/kb/en/mbrtouches/\n\n','','https://mariadb.com/kb/en/mbrtouches/'),(300,'DROP EVENT',39,'Syntax:\nDROP EVENT [IF EXISTS] event_name\n\nThis statement drops the event named event_name. The event immediately\nceases being active, and is deleted completely from the server.\n\nIf the event does not exist, the error ERROR 1517 (HY000): Unknown\nevent \'event_name\' results. You can override this and cause the\nstatement to generate a warning for nonexistent events instead using IF\nEXISTS.\n\nThis statement requires the EVENT privilege for the schema to which the\nevent to be dropped belongs.\n\nURL: https://mariadb.com/kb/en/drop-event/\n\n','','https://mariadb.com/kb/en/drop-event/'),(301,'INSERT SELECT',27,'Syntax:\nINSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]\n    [INTO] tbl_name [(col_name,...)]\n    SELECT ...\n    [ ON DUPLICATE KEY UPDATE col_name=expr, ... ]\n\nWith INSERT ... SELECT, you can quickly insert many rows into a table\nfrom one or many tables. For example:\n\nINSERT INTO tbl_temp2 (fld_id)\n  SELECT tbl_temp1.fld_order_id\n  FROM tbl_temp1 WHERE tbl_temp1.fld_order_id > 100;\n\nURL: https://mariadb.com/kb/en/insert-select/\n\n','','https://mariadb.com/kb/en/insert-select/'),(302,'CREATE PROCEDURE',39,'Syntax:\nCREATE\n    [DEFINER = { user | CURRENT_USER }]\n    PROCEDURE sp_name ([proc_parameter[,...]])\n    [characteristic ...] routine_body\n\nCREATE\n    [DEFINER = { user | CURRENT_USER }]\n    FUNCTION sp_name ([func_parameter[,...]])\n    RETURNS type\n    [characteristic ...] routine_body\n\nproc_parameter:\n    [ IN | OUT | INOUT ] param_name type\n\nfunc_parameter:\n    param_name type\n\ntype:\n    Any valid MySQL data type\n\ncharacteristic:\n    COMMENT \'string\'\n  | LANGUAGE SQL\n  | [NOT] DETERMINISTIC\n  | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }\n  | SQL SECURITY { DEFINER | INVOKER }\n\nroutine_body:\n    Valid SQL routine statement\n\nThese statements create stored routines. By default, a routine is\nassociated with the default database. To associate the routine\nexplicitly with a given database, specify the name as db_name.sp_name\nwhen you create it.\n\nThe CREATE FUNCTION statement is also used in MySQL to support UDFs\n(user-defined functions). See\nhttps://mariadb.com/kb/en/create-function-udf/. A UDF can\nbe regarded as an external stored function. Stored functions share\ntheir namespace with UDFs. See\nhttp://dev.mysql.com/doc/refman/5.5/en/function-resolution.html, for\nthe rules describing how the server interprets references to different\nkinds of functions.\n\nTo invoke a stored procedure, use the CALL statement (see [HELP CALL]).\nTo invoke a stored function, refer to it in an expression. The function\nreturns a value during expression evaluation.\n\nCREATE PROCEDURE and CREATE FUNCTION require the CREATE ROUTINE\nprivilege. They might also require the SUPER privilege, depending on\nthe DEFINER value, as described later in this section. If binary\nlogging is enabled, CREATE FUNCTION might require the SUPER privilege,\nas described in\nhttps://mariadb.com/kb/en/binary-logging-of-stored-routines/.\n\nBy default, MySQL automatically grants the ALTER ROUTINE and EXECUTE\nprivileges to the routine creator. This behavior can be changed by\ndisabling the automatic_sp_privileges system variable. See\nhttps://mariadb.com/kb/en/stored-routine-privileges/.\n\nThe DEFINER and SQL SECURITY clauses specify the security context to be\nused when checking access privileges at routine execution time, as\ndescribed later in this section.\n\nIf the routine name is the same as the name of a built-in SQL function,\na syntax error occurs unless you use a space between the name and the\nfollowing parenthesis when defining the routine or invoking it later.\nFor this reason, avoid using the names of existing SQL functions for\nyour own stored routines.\n\nThe IGNORE_SPACE SQL mode applies to built-in functions, not to stored\nroutines. It is always permissible to have spaces after a stored\nroutine name, regardless of whether IGNORE_SPACE is enabled.\n\nThe parameter list enclosed within parentheses must always be present.\nIf there are no parameters, an empty parameter list of () should be\nused. Parameter names are not case sensitive.\n\nEach parameter is an IN parameter by default. To specify otherwise for\na parameter, use the keyword OUT or INOUT before the parameter name.\n\n*Note*: Specifying a parameter as IN, OUT, or INOUT is valid only for a\nPROCEDURE. For a FUNCTION, parameters are always regarded as IN\nparameters.\n\nAn IN parameter passes a value into a procedure. The procedure might\nmodify the value, but the modification is not visible to the caller\nwhen the procedure returns. An OUT parameter passes a value from the\nprocedure back to the caller. Its initial value is NULL within the\nprocedure, and its value is visible to the caller when the procedure\nreturns. An INOUT parameter is initialized by the caller, can be\nmodified by the procedure, and any change made by the procedure is\nvisible to the caller when the procedure returns.\n\nFor each OUT or INOUT parameter, pass a user-defined variable in the\nCALL statement that invokes the procedure so that you can obtain its\nvalue when the procedure returns. If you are calling the procedure from\nwithin another stored procedure or function, you can also pass a\nroutine parameter or local routine variable as an IN or INOUT\nparameter.\n\nThe following example shows a simple stored procedure that uses an OUT\nparameter:\n\nMariaDB> delimiter //\n\nMariaDB> CREATE PROCEDURE simpleproc (OUT param1 INT)\n    -> BEGIN\n    ->   SELECT COUNT(*) INTO param1 FROM t;\n    -> END//\nQuery OK, 0 rows affected (0.00 sec)\n\nMariaDB> delimiter ;\n\nMariaDB> CALL simpleproc(@a);\nQuery OK, 0 rows affected (0.00 sec)\n\nMariaDB> SELECT @a;\n+------+\n| @a   |\n+------+\n| 3    |\n+------+\n1 row in set (0.00 sec)\n\nThe example uses the mysql client delimiter command to change the\nstatement delimiter from ; to // while the procedure is being defined.\nThis enables the ; delimiter used in the procedure body to be passed\nthrough to the server rather than being interpreted by mysql itself.\nSee\nhttps://mariadb.com/kb/en/stored-procedure-overview/.\n\nThe RETURNS clause may be specified only for a FUNCTION, for which it\nis mandatory. It indicates the return type of the function, and the\nfunction body must contain a RETURN value statement. If the RETURN\nstatement returns a value of a different type, the value is coerced to\nthe proper type. For example, if a function specifies an ENUM or SET\nvalue in the RETURNS clause, but the RETURN statement returns an\ninteger, the value returned from the function is the string for the\ncorresponding ENUM member of set of SET members.\n\nThe following example function takes a parameter, performs an operation\nusing an SQL function, and returns the result. In this case, it is\nunnecessary to use delimiter because the function definition contains\nno internal ; statement delimiters:\n\nMariaDB> CREATE FUNCTION hello (s CHAR(20))\nMariaDB> RETURNS CHAR(50) DETERMINISTIC\n    -> RETURN CONCAT(\'Hello, \',s,\'!\');\nQuery OK, 0 rows affected (0.00 sec)\n\nMariaDB> SELECT hello(\'world\');\n+----------------+\n| hello(\'world\') |\n+----------------+\n| Hello, world!  |\n+----------------+\n1 row in set (0.00 sec)\n\nParameter types and function return types can be declared to use any\nvalid data type, except that the COLLATE attribute cannot be used prior\nto MySQL 5.5.3. As of 5.5.3, COLLATE can be used if preceded by the\nCHARACTER SET attribute.\n\nThe routine_body consists of a valid SQL routine statement. This can be\na simple statement such as SELECT or INSERT, or a compound statement\nwritten using BEGIN and END. Compound statements can contain\ndeclarations, loops, and other control structure statements. The syntax\nfor these statements is described in\nhttps://mariadb.com/kb/programmatic-and-compound-statements.\n\nMySQL permits routines to contain DDL statements, such as CREATE and\nDROP. MySQL also permits stored procedures (but not stored functions)\nto contain SQL transaction statements such as COMMIT. Stored functions\nmay not contain statements that perform explicit or implicit commit or\nrollback. Support for these statements is not required by the SQL\nstandard, which states that each DBMS vendor may decide whether to\npermit them.\n\nStatements that return a result set can be used within a stored\nprocedure but not within a stored function. This prohibition includes\nSELECT statements that do not have an INTO var_list clause and other\nstatements such as SHOW, EXPLAIN, and CHECK TABLE. For statements that\ncan be determined at function definition time to return a result set, a\nNot allowed to return a result set from a function error occurs\n(ER_SP_NO_RETSET). For statements that can be determined only at\nruntime to return a result set, a PROCEDURE %s can\'t return a result\nset in the given context error occurs (ER_SP_BADSELECT).\n\nUSE statements within stored routines are not permitted. When a routine\nis invoked, an implicit USE db_name is performed (and undone when the\nroutine terminates). The causes the routine to have the given default\ndatabase while it executes. References to objects in databases other\nthan the routine default database should be qualified with the\nappropriate database name.\n\nFor additional information about statements that are not permitted in\nstored routines, see\nhttps://mariadb.com/kb/en/stored-routine-privileges/\n.\n\nFor information about invoking stored procedures from within programs\nwritten in a language that has a MySQL interface, see [HELP CALL].\n\nMySQL stores the sql_mode system variable setting that is in effect at\nthe time a routine is created, and always executes the routine with\nthis setting in force, regardless of the server SQL mode in effect when\nthe routine is invoked.\n\nThe switch from the SQL mode of the invoker to that of the routine\noccurs after evaluation of arguments and assignment of the resulting\nvalues to routine parameters. If you define a routine in strict SQL\nmode but invoke it in nonstrict mode, assignment of arguments to\nroutine parameters does not take place in strict mode. If you require\nthat expressions passed to a routine be assigned in strict SQL mode,\nyou should invoke the routine with strict mode in effect.\n\nURL: https://mariadb.com/kb/en/create-procedure/\n\n','','https://mariadb.com/kb/en/create-procedure/'),(303,'VARBINARY',22,'VARBINARY(M)\n\nThe VARBINARY type is similar to the VARCHAR type, but stores binary\nbyte strings rather than nonbinary character strings. M represents the\nmaximum column length in bytes.\n\nURL: https://mariadb.com/kb/en/varbinary/\n\n','','https://mariadb.com/kb/en/varbinary/'),(304,'LOAD INDEX',26,'Syntax:\nLOAD INDEX INTO CACHE\n  tbl_index_list [, tbl_index_list] ...\n\ntbl_index_list:\n  tbl_name\n    [PARTITION (partition_list | ALL)]\n    [[INDEX|KEY] (index_name[, index_name] ...)]\n    [IGNORE LEAVES]\n\npartition_list:\n    partition_name[, partition_name][, ...]\n\nThe LOAD INDEX INTO CACHE statement preloads a table index into the key\ncache to which it has been assigned by an explicit CACHE INDEX\nstatement, or into the default key cache otherwise.\n\nLOAD INDEX INTO CACHE is used only for MyISAM tables. In MySQL 5.5, it\nis also supported for partitioned MyISAM tables; in addition, indexes\non partitioned tables can be preloaded for one, several, or all\npartitions.\n\nThe IGNORE LEAVES modifier causes only blocks for the nonleaf nodes of\nthe index to be preloaded.\n\nIGNORE LEAVES is also supported for partitioned MyISAM tables.\n\nURL: https://mariadb.com/kb/en/load-index/\n\n','','https://mariadb.com/kb/en/load-index/'),(305,'UNION',27,'Syntax:\nSELECT ...\nUNION [ALL | DISTINCT] SELECT ...\n[UNION [ALL | DISTINCT] SELECT ...]\n\nUNION is used to combine the result from multiple SELECT statements\ninto a single result set.\n\nThe column names from the first SELECT statement are used as the column\nnames for the results returned. Selected columns listed in\ncorresponding positions of each SELECT statement should have the same\ndata type. (For example, the first column selected by the first\nstatement should have the same type as the first column selected by the\nother statements.)\n\nURL: https://mariadb.com/kb/en/union/\n\n','','https://mariadb.com/kb/en/union/'),(306,'TO_DAYS',31,'Syntax:\nTO_DAYS(date)\n\nGiven a date date, returns a day number (the number of days since year\n0).\n\nURL: https://mariadb.com/kb/en/to_days/\n\n','MariaDB> SELECT TO_DAYS(950501);\n        -> 728779\nMariaDB> SELECT TO_DAYS(\'2007-10-07\');\n        -> 733321\n','https://mariadb.com/kb/en/to_days/'),(307,'NOT REGEXP',37,'Syntax:\nexpr NOT REGEXP pat, expr NOT RLIKE pat\n\nThis is the same as NOT (expr REGEXP pat).\n\nURL: https://mariadb.com/kb/en/not-regexp/\n\n','','https://mariadb.com/kb/en/not-regexp/'),(308,'SHOW INDEX',26,'Syntax:\nSHOW {INDEX | INDEXES | KEYS}\n    {FROM | IN} tbl_name\n    [{FROM | IN} db_name]\n    [WHERE expr]\n\nSHOW INDEX returns table index information. The format resembles that\nof the SQLStatistics call in ODBC. This statement requires some\nprivilege for any column in the table.\nYou can use db_name.tbl_name as an alternative to the tbl_name FROM\ndb_name syntax. These two statements are equivalent:\n\nSHOW INDEX FROM mytable FROM mydb;\nSHOW INDEX FROM mydb.mytable;\n\nThe WHERE clause can be given to select rows using more general\nconditions, as discussed in\nhttps://mariadb.com/kb/en/extended-show/.\n\nYou can also list a table\'s indexes with the mysqlshow -k db_name\ntbl_name command.\n\nURL: https://mariadb.com/kb/en/show-index/\n\n','','https://mariadb.com/kb/en/show-index/'),(309,'SHOW CREATE DATABASE',26,'Syntax:\nSHOW CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name\n\nShows the CREATE DATABASE statement that creates the given database. If\nthe SHOW statement includes an IF NOT EXISTS clause, the output too\nincludes such a clause. SHOW CREATE SCHEMA is a synonym for SHOW CREATE\nDATABASE.\n\nURL: https://mariadb.com/kb/en/show-create-database/\n\n','MariaDB> SHOW CREATE DATABASE test\\G\n*************************** 1. row ***************************\n       Database: test\nCreate Database: CREATE DATABASE `test`\n                 /*!40100 DEFAULT CHARACTER SET latin1 */\n\nMariaDB> SHOW CREATE SCHEMA test\\G\n*************************** 1. row ***************************\n       Database: test\nCreate Database: CREATE DATABASE `test`\n                 /*!40100 DEFAULT CHARACTER SET latin1 */\n','https://mariadb.com/kb/en/show-create-database/'),(310,'LEAVE',23,'Syntax:\nLEAVE label\n\nThis statement is used to exit the flow control construct that has the\ngiven label. If the label is for the outermost stored program block,\nLEAVE exits the program.\n\nLEAVE can be used within BEGIN ... END or loop constructs (LOOP,\nREPEAT, WHILE).\n\nURL: https://mariadb.com/kb/en/leave/\n\n','','https://mariadb.com/kb/en/leave/'),(311,'NOT IN',18,'Syntax:\nexpr NOT IN (value,...)\n\nThis is the same as NOT (expr IN (value,...)).\n\nURL: https://mariadb.com/kb/en/not-in/\n\n','','https://mariadb.com/kb/en/not-in/'),(312,'!',15,'Syntax:\nNOT, !\n\nLogical NOT. Evaluates to 1 if the operand is 0, to 0 if the operand is\nnonzero, and NOT NULL returns NULL.\n\nURL: https://mariadb.com/kb/en/not/\n\n','MariaDB> SELECT NOT 10;\n        -> 0\nMariaDB> SELECT NOT 0;\n        -> 1\nMariaDB> SELECT NOT NULL;\n        -> NULL\nMariaDB> SELECT ! (1+1);\n        -> 0\nMariaDB> SELECT ! 1+1;\n        -> 1\n','https://mariadb.com/kb/en/not/'),(313,'DECLARE HANDLER',23,'Syntax:\nDECLARE handler_action HANDLER\n    FOR condition_value [, condition_value] ...\n    statement\n\nhandler_action:\n    CONTINUE\n  | EXIT\n  | UNDO\n\ncondition_value:\n    mysql_error_code\n  | SQLSTATE [VALUE] sqlstate_value\n  | condition_name\n  | SQLWARNING\n  | NOT FOUND\n  | SQLEXCEPTION\n\nThe DECLARE ... HANDLER statement specifies a handler that deals with\none or more conditions. If one of these conditions occurs, the\nspecified statement executes. statement can be a simple statement such\nas SET var_name = value, or a compound statement written using BEGIN\nand END (see [HELP BEGIN END]).\n\nHandler declarations must appear after variable or condition\ndeclarations.\n\nThe handler_action value indicates what action the handler takes after\nexecution of the handler statement:\n\no CONTINUE: Execution of the current program continues.\n\no EXIT: Execution terminates for the BEGIN ... END compound statement\n  in which the handler is declared. This is true even if the condition\n  occurs in an inner block.\n\no UNDO: Not supported.\n\nThe condition_value for DECLARE ... HANDLER indicates the specific\ncondition or class of conditions that activates the handler:\n\no A MySQL error code (a number) or an SQLSTATE value (a 5-character\n  string literal). You should not use MySQL error code 0 or SQLSTATE\n  values that begin with \'00\', because those indicate success rather\n  than an error condition. For a list of MySQL error codes and SQLSTATE\n  values, see\n  https://mariadb.com/kb/en/mariadb-error-codes/.\n\no A condition name previously specified with DECLARE ... CONDITION. A\n  condition name can be associated with a MySQL error code or SQLSTATE\n  value. See [HELP DECLARE CONDITION].\n\no SQLWARNING is shorthand for the class of SQLSTATE values that begin\n  with \'01\'.\n\no NOT FOUND is shorthand for the class of SQLSTATE values that begin\n  with \'02\'. This is relevant within the context of cursors and is used\n  to control what happens when a cursor reaches the end of a data set.\n  If no more rows are available, a No Data condition occurs with\n  SQLSTATE value \'02000\'. To detect this condition, you can set up a\n  handler for it (or for a NOT FOUND condition). For an example, see\n  https://mariadb.com/kb/en/cursor-overview/. This condition\n  also occurs for SELECT ... INTO var_list statements that retrieve no\n  rows.\n\no SQLEXCEPTION is shorthand for the class of SQLSTATE values that do\n  not begin with \'00\', \'01\', or \'02\'.\n\nIf a condition occurs for which no handler has been declared, the\naction taken depends on the condition class:\n\no For SQLEXCEPTION conditions, the stored program terminates at the\n  statement that raised the condition, as if there were an EXIT\n  handler. If the program was called by another stored program, the\n  calling program handles the condition using the handler selection\n  rules applied to its own handlers.\n\no For SQLWARNING conditions, the program continues executing, as if\n  there were a CONTINUE handler.\n\no For NOT FOUND conditions, if the condition was raised normally, the\n  action is CONTINUE. If it was raised by SIGNAL or RESIGNAL, the\n  action is EXIT.\n\nURL: https://mariadb.com/kb/en/declare-handler/\n\n','MariaDB> CREATE TABLE test.t (s1 INT, PRIMARY KEY (s1));\nQuery OK, 0 rows affected (0.00 sec)\n\nMariaDB> delimiter //\n\nMariaDB> CREATE PROCEDURE handlerdemo ()\n    -> BEGIN\n    ->   DECLARE CONTINUE HANDLER FOR SQLSTATE \'23000\' SET @x2 = 1;\n    ->   SET @x = 1;\n    ->   INSERT INTO test.t VALUES (1);\n    ->   SET @x = 2;\n    ->   INSERT INTO test.t VALUES (1);\n    ->   SET @x = 3;\n    -> END;\n    -> //\nQuery OK, 0 rows affected (0.00 sec)\n\nMariaDB> CALL handlerdemo()//\nQuery OK, 0 rows affected (0.00 sec)\n\nMariaDB> SELECT @x//\n    +------+\n    | @x   |\n    +------+\n    | 3    |\n    +------+\n    1 row in set (0.00 sec)\n','https://mariadb.com/kb/en/declare-handler/'),(314,'DOUBLE',22,'DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]\n\nA normal-size (double-precision) floating-point number. Permissible\nvalues are -1.7976931348623157E+308 to -2.2250738585072014E-308, 0, and\n2.2250738585072014E-308 to 1.7976931348623157E+308. These are the\ntheoretical limits, based on the IEEE standard. The actual range might\nbe slightly smaller depending on your hardware or operating system.\n\nM is the total number of digits and D is the number of digits following\nthe decimal point. If M and D are omitted, values are stored to the\nlimits permitted by the hardware. A double-precision floating-point\nnumber is accurate to approximately 15 decimal places.\n\nUNSIGNED, if specified, disallows negative values.\n\nURL: https://mariadb.com/kb/en/double/\n\n','','https://mariadb.com/kb/en/double/'),(315,'TIME',22,'TIME\n\nA time. The range is \'-838:59:59\' to \'838:59:59\'. MySQL displays TIME\nvalues in \'HH:MM:SS\' format, but permits assignment of values to TIME\ncolumns using either strings or numbers.\n\nURL: https://mariadb.com/kb/en/time/\n\n','','https://mariadb.com/kb/en/time/'),(316,'&&',15,'Syntax:\nAND, &&\n\nLogical AND. Evaluates to 1 if all operands are nonzero and not NULL,\nto 0 if one or more operands are 0, otherwise NULL is returned.\n\nURL: https://mariadb.com/kb/en/and/\n\n','MariaDB> SELECT 1 && 1;\n        -> 1\nMariaDB> SELECT 1 && 0;\n        -> 0\nMariaDB> SELECT 1 && NULL;\n        -> NULL\nMariaDB> SELECT 0 && NULL;\n        -> 0\nMariaDB> SELECT NULL && 0;\n        -> 0\n','https://mariadb.com/kb/en/and/'),(317,'X',11,'X(p)\n\nReturns the X-coordinate value for the Point object p as a\ndouble-precision number.\n\nURL: https://mariadb.com/kb/en/x/\n\n','MariaDB> SELECT X(POINT(56.7, 53.34));\n+-----------------------+\n| X(POINT(56.7, 53.34)) |\n+-----------------------+\n|                  56.7 |\n+-----------------------+\n','https://mariadb.com/kb/en/x/'),(318,'SYSTEM_USER',17,'Syntax:\nSYSTEM_USER()\n\nSYSTEM_USER() is a synonym for USER().\n\nURL: https://mariadb.com/kb/en/system_user/\n\n','','https://mariadb.com/kb/en/system_user/'),(319,'FOUND_ROWS',17,'Syntax:\nFOUND_ROWS()\n\nA SELECT statement may include a LIMIT clause to restrict the number of\nrows the server returns to the client. In some cases, it is desirable\nto know how many rows the statement would have returned without the\nLIMIT, but without running the statement again. To obtain this row\ncount, include a SQL_CALC_FOUND_ROWS option in the SELECT statement,\nand then invoke FOUND_ROWS() afterward:\n\nURL: https://mariadb.com/kb/en/found_rows/\n\n','MariaDB> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name\n    -> WHERE id > 100 LIMIT 10;\nMariaDB> SELECT FOUND_ROWS();\n','https://mariadb.com/kb/en/found_rows/'),(320,'CROSSES',30,'Crosses(g1,g2)\n\nReturns 1 if g1 spatially crosses g2. Returns NULL if g1 is a Polygon\nor a MultiPolygon, or if g2 is a Point or a MultiPoint. Otherwise,\nreturns 0.\n\nThe term spatially crosses denotes a spatial relation between two given\ngeometries that has the following properties:\n\no The two geometries intersect\n\no Their intersection results in a geometry that has a dimension that is\n  one less than the maximum dimension of the two given geometries\n\no Their intersection is not equal to either of the two given geometries\n\nURL: https://mariadb.com/kb/en/crosses/\n\n','','https://mariadb.com/kb/en/crosses/'),(321,'TRUNCATE TABLE',39,'Syntax:\nTRUNCATE [TABLE] tbl_name\n\nTRUNCATE TABLE empties a table completely. It requires the DROP\nprivilege.\n\nLogically, TRUNCATE TABLE is similar to a DELETE statement that deletes\nall rows, or a sequence of DROP TABLE and CREATE TABLE statements. To\nachieve high performance, it bypasses the DML method of deleting data.\nThus, it cannot be rolled back, it does not cause ON DELETE triggers to\nfire, and it cannot be performed for InnoDB tables with parent-child\nforeign key relationships.\n\nAlthough TRUNCATE TABLE is similar to DELETE, it is classified as a DDL\nstatement rather than a DML statement. It differs from DELETE in the\nfollowing ways in MySQL 5.5:\n\no Truncate operations drop and re-create the table, which is much\n  faster than deleting rows one by one, particularly for large tables.\n\no Truncate operations cause an implicit commit, and so cannot be rolled\n  back.\n\no Truncation operations cannot be performed if the session holds an\n  active table lock.\n\no TRUNCATE TABLE fails for an InnoDB table if there are any FOREIGN KEY\n  constraints from other tables that reference the table. Foreign key\n  constraints between columns of the same table are permitted.\n\no Truncation operations do not return a meaningful value for the number\n  of deleted rows. The usual result is \"0 rows affected,\" which should\n  be interpreted as \"no information.\"\n\no As long as the table format file tbl_name.frm is valid, the table can\n  be re-created as an empty table with TRUNCATE TABLE, even if the data\n  or index files have become corrupted.\n\no Any AUTO_INCREMENT value is reset to its start value. This is true\n  even for MyISAM and InnoDB, which normally do not reuse sequence\n  values.\n\no When used with partitioned tables, TRUNCATE TABLE preserves the\n  partitioning; that is, the data and index files are dropped and\n  re-created, while the partition definitions (.par) file is\n  unaffected.\n\no The TRUNCATE TABLE statement does not invoke ON DELETE triggers.\n\nURL: https://mariadb.com/kb/en/truncate-table/\n\n','','https://mariadb.com/kb/en/truncate-table/'),(322,'BIT_XOR',16,'Syntax:\nBIT_XOR(expr)\n\nReturns the bitwise XOR of all bits in expr. The calculation is\nperformed with 64-bit (BIGINT) precision.\n\nURL: https://mariadb.com/kb/en/bit_xor/\n\n','','https://mariadb.com/kb/en/bit_xor/'),(323,'CURRENT_DATE',31,'Syntax:\nCURRENT_DATE, CURRENT_DATE()\n\nCURRENT_DATE and CURRENT_DATE() are synonyms for CURDATE().\n\nURL: https://mariadb.com/kb/en/current_date/\n\n','','https://mariadb.com/kb/en/current_date/'),(324,'START SLAVE',8,'Syntax:\nSTART SLAVE [thread_types]\n\nSTART SLAVE [SQL_THREAD] UNTIL\n    MASTER_LOG_FILE = \'log_name\', MASTER_LOG_POS = log_pos\n\nSTART SLAVE [SQL_THREAD] UNTIL\n    RELAY_LOG_FILE = \'log_name\', RELAY_LOG_POS = log_pos\n\nthread_types:\n    [thread_type [, thread_type] ... ]\n\nthread_type: IO_THREAD | SQL_THREAD\n\nSTART SLAVE with no thread_type options starts both of the slave\nthreads. The I/O thread reads events from the master server and stores\nthem in the relay log. The SQL thread reads events from the relay log\nand executes them. START SLAVE requires the SUPER privilege.\n\nIf START SLAVE succeeds in starting the slave threads, it returns\nwithout any error. However, even in that case, it might be that the\nslave threads start and then later stop (for example, because they do\nnot manage to connect to the master or read its binary log, or some\nother problem). START SLAVE does not warn you about this. You must\ncheck the slave\'s error log for error messages generated by the slave\nthreads, or check that they are running satisfactorily with SHOW SLAVE\nSTATUS.\n\nURL: https://mariadb.com/kb/en/start-slave/\n\n','','https://mariadb.com/kb/en/start-slave/'),(325,'AREA',2,'Area(poly)\n\nReturns as a double-precision number the area of the Polygon value\npoly, as measured in its spatial reference system.\n\nURL: https://mariadb.com/kb/en/area/\n\n','MariaDB> SET @poly = \'Polygon((0 0,0 3,3 0,0 0),(1 1,1 2,2 1,1 1))\';\nMariaDB> SELECT Area(GeomFromText(@poly));\n+---------------------------+\n| Area(GeomFromText(@poly)) |\n+---------------------------+\n|                         4 |\n+---------------------------+\n','https://mariadb.com/kb/en/area/'),(326,'FLUSH',26,'Syntax:\nFLUSH [NO_WRITE_TO_BINLOG | LOCAL]\n    flush_option [, flush_option] ...\n\nThe FLUSH statement has several variant forms that clear or reload\nvarious internal caches, flush tables, or acquire locks. To execute\nFLUSH, you must have the RELOAD privilege. Specific flush options might\nrequire additional privileges, as described later.\n\nBy default, the server writes FLUSH statements to the binary log so\nthat they replicate to replication slaves. To suppress logging, use the\noptional NO_WRITE_TO_BINLOG keyword or its alias LOCAL.\n\n*Note*: FLUSH LOGS, FLUSH MASTER, FLUSH SLAVE, and FLUSH TABLES WITH\nREAD LOCK (with or without a table list) are not written to the binary\nlog in any case because they would cause problems if replicated to a\nslave.\n\nThe FLUSH statement causes an implicit commit. See\nhttp://dev.mysql.com/doc/refman/5.5/en/implicit-commit.html.\n\nThe RESET statement is similar to FLUSH. See [HELP RESET], for\ninformation about using the RESET statement with replication.\n\nURL: https://mariadb.com/kb/en/flush/\n\n','','https://mariadb.com/kb/en/flush/'),(327,'BEGIN END',23,'Syntax:\n[begin_label:] BEGIN\n    [statement_list]\nEND [end_label]\n\nBEGIN ... END syntax is used for writing compound statements, which can\nappear within stored programs (stored procedures and functions,\ntriggers, and events). A compound statement can contain multiple\nstatements, enclosed by the BEGIN and END keywords. statement_list\nrepresents a list of one or more statements, each terminated by a\nsemicolon (;) statement delimiter. The statement_list itself is\noptional, so the empty compound statement (BEGIN END) is legal.\n\nBEGIN ... END blocks can be nested.\n\nUse of multiple statements requires that a client is able to send\nstatement strings containing the ; statement delimiter. In the mysql\ncommand-line client, this is handled with the delimiter command.\nChanging the ; end-of-statement delimiter (for example, to //) permit ;\nto be used in a program body. For an example, see\nhttps://mariadb.com/kb/en/stored-procedure-overview/.\n\nA BEGIN ... END block can be labeled. See [HELP labels].\n\nURL: https://mariadb.com/kb/en/begin-end/\n\n','','https://mariadb.com/kb/en/begin-end/'),(328,'SHOW PROCEDURE STATUS',26,'Syntax:\nSHOW PROCEDURE STATUS\n    [LIKE \'pattern\' | WHERE expr]\n\nThis statement is a MySQL extension. It returns characteristics of a\nstored procedure, such as the database, name, type, creator, creation\nand modification dates, and character set information. A similar\nstatement, SHOW FUNCTION STATUS, displays information about stored\nfunctions (see [HELP SHOW FUNCTION STATUS]).\n\nThe LIKE clause, if present, indicates which procedure or function\nnames to match. The WHERE clause can be given to select rows using more\ngeneral conditions, as discussed in\nhttps://mariadb.com/kb/en/extended-show/.\n\nURL: https://mariadb.com/kb/en/show-procedure-status/\n\n','MariaDB> SHOW PROCEDURE STATUS LIKE \'sp1\'\\G\n*************************** 1. row ***************************\n                  Db: test\n                Name: sp1\n                Type: PROCEDURE\n             Definer: testuser@localhost\n            Modified: 2004-08-03 15:29:37\n             Created: 2004-08-03 15:29:37\n       Security_type: DEFINER\n             Comment:\ncharacter_set_client: latin1\ncollation_connection: latin1_swedish_ci\n  Database Collation: latin1_swedish_ci\n','https://mariadb.com/kb/en/show-procedure-status/'),(329,'DESCRIBE',28,'Syntax:\n{DESCRIBE | DESC} tbl_name [col_name | wild]\n\nDESCRIBE provides information about the columns in a table. It is a\nshortcut for SHOW COLUMNS FROM. These statements also display\ninformation for views. (See [HELP SHOW COLUMNS].)\n\ncol_name can be a column name, or a string containing the SQL \"%\" and\n\"_\" wildcard characters to obtain output only for the columns with\nnames matching the string. There is no need to enclose the string\nwithin quotation marks unless it contains spaces or other special\ncharacters.\n\nMariaDB> DESCRIBE City;\n+------------+----------+------+-----+---------+----------------+\n| Field      | Type     | Null | Key | Default | Extra          |\n+------------+----------+------+-----+---------+----------------+\n| Id         | int(11)  | NO   | PRI | NULL    | auto_increment |\n| Name       | char(35) | NO   |     |         |                |\n| Country    | char(3)  | NO   | UNI |         |                |\n| District   | char(20) | YES  | MUL |         |                |\n| Population | int(11)  | NO   |     | 0       |                |\n+------------+----------+------+-----+---------+----------------+\n5 rows in set (0.00 sec)\n\nThe description for SHOW COLUMNS provides more information about the\noutput columns (see [HELP SHOW COLUMNS]).\n\nURL: https://mariadb.com/kb/en/describe/\n\n','','https://mariadb.com/kb/en/describe/'),(330,'SHOW WARNINGS',26,'Syntax:\nSHOW WARNINGS [LIMIT [offset,] row_count]\nSHOW COUNT(*) WARNINGS\n\nSHOW WARNINGS shows information about the conditions (errors, warnings,\nand notes) that resulted from the last statement in the current session\nthat generated messages. It shows nothing if the last statement used a\ntable and generated no messages. (That is, a statement that uses a\ntable but generates no messages clears the message list.) Statements\nthat do not use tables and do not generate messages have no effect on\nthe message list.\n\nWarnings are generated for DML statements such as INSERT, UPDATE, and\nLOAD DATA INFILE as well as DDL statements such as CREATE TABLE and\nALTER TABLE.\n\nSHOW WARNINGS is also used following EXPLAIN EXTENDED, to display the\nextra information generated by EXPLAIN when the EXTENDED keyword is\nused. See https://mariadb.com/kb/en/explain#explain-extended.\n\nThe LIMIT clause has the same syntax as for the SELECT statement. See\nhttps://mariadb.com/kb/en/select/.\n\nA related statement, SHOW ERRORS, shows only the error conditions (it\nexcludes warnings and notes). See [HELP SHOW ERRORS].\n\nThe SHOW COUNT(*) WARNINGS statement displays the total number of\nerrors, warnings, and notes. You can also retrieve this number from the\nwarning_count system variable:\n\nSHOW COUNT(*) WARNINGS;\nSELECT @@warning_count;\n\nURL: https://mariadb.com/kb/en/show-warnings/\n\n','','https://mariadb.com/kb/en/show-warnings/'),(331,'DROP USER',10,'Syntax:\nDROP USER user [, user] ...\n\nThe DROP USER statement removes one or more MySQL accounts and their\nprivileges. It removes privilege rows for the account from all grant\ntables. To use this statement, you must have the global CREATE USER\nprivilege or the DELETE privilege for the mysql database. Each account\nname uses the format described in\nhttps://mariadb.com/kb/en/create-user#account-names. For example:\n\nDROP USER \'jeffrey\'@\'localhost\';\n\nIf you specify only the user name part of the account name, a host name\npart of \'%\' is used.\n\nURL: https://mariadb.com/kb/en/drop-user/\n\n','','https://mariadb.com/kb/en/drop-user/'),(332,'STDDEV_POP',16,'Syntax:\nSTDDEV_POP(expr)\n\nReturns the population standard deviation of expr (the square root of\nVAR_POP()). You can also use STD() or STDDEV(), which are equivalent\nbut not standard SQL.\n\nSTDDEV_POP() returns NULL if there were no matching rows.\n\nURL: https://mariadb.com/kb/en/stddev_pop/\n\n','','https://mariadb.com/kb/en/stddev_pop/'),(333,'SHOW CHARACTER SET',26,'Syntax:\nSHOW CHARACTER SET\n    [LIKE \'pattern\' | WHERE expr]\n\nThe SHOW CHARACTER SET statement shows all available character sets.\nThe LIKE clause, if present, indicates which character set names to\nmatch. The WHERE clause can be given to select rows using more general\nconditions, as discussed in\nhttps://mariadb.com/kb/en/extended-show/. For example:\n\nMariaDB> SHOW CHARACTER SET LIKE \'latin%\';\n+---------+-----------------------------+-------------------+--------+\n| Charset | Description                 | Default collation | Maxlen |\n+---------+-----------------------------+-------------------+--------+\n| latin1  | cp1252 West European        | latin1_swedish_ci |      1 |\n| latin2  | ISO 8859-2 Central European | latin2_general_ci |      1 |\n| latin5  | ISO 8859-9 Turkish          | latin5_turkish_ci |      1 |\n| latin7  | ISO 8859-13 Baltic          | latin7_general_ci |      1 |\n+---------+-----------------------------+-------------------+--------+\n\nURL: https://mariadb.com/kb/en/show-character-set/\n\n','','https://mariadb.com/kb/en/show-character-set/'),(334,'SUBSTRING',37,'Syntax:\nSUBSTRING(str,pos), SUBSTRING(str FROM pos), SUBSTRING(str,pos,len),\nSUBSTRING(str FROM pos FOR len)\n\nThe forms without a len argument return a substring from string str\nstarting at position pos. The forms with a len argument return a\nsubstring len characters long from string str, starting at position\npos. The forms that use FROM are standard SQL syntax. It is also\npossible to use a negative value for pos. In this case, the beginning\nof the substring is pos characters from the end of the string, rather\nthan the beginning. A negative value may be used for pos in any of the\nforms of this function.\n\nFor all forms of SUBSTRING(), the position of the first character in\nthe string from which the substring is to be extracted is reckoned as\n1.\n\nURL: https://mariadb.com/kb/en/substring/\n\n','MariaDB> SELECT SUBSTRING(\'Quadratically\',5);\n        -> \'ratically\'\nMariaDB> SELECT SUBSTRING(\'foobarbar\' FROM 4);\n        -> \'barbar\'\nMariaDB> SELECT SUBSTRING(\'Quadratically\',5,6);\n        -> \'ratica\'\nMariaDB> SELECT SUBSTRING(\'Sakila\', -3);\n        -> \'ila\'\nMariaDB> SELECT SUBSTRING(\'Sakila\', -5, 3);\n        -> \'aki\'\nMariaDB> SELECT SUBSTRING(\'Sakila\' FROM -4 FOR 2);\n        -> \'ki\'\n','https://mariadb.com/kb/en/substring/'),(335,'ISEMPTY',36,'IsEmpty(g)\n\nReturns 1 if the geometry value g is the empty geometry, 0 if it is not\nempty, and -1 if the argument is NULL. If the geometry is empty, it\nrepresents the empty point set.\n\nURL: https://mariadb.com/kb/en/isempty/\n\n','','https://mariadb.com/kb/en/isempty/'),(336,'SHOW FUNCTION STATUS',26,'Syntax:\nSHOW FUNCTION STATUS\n    [LIKE \'pattern\' | WHERE expr]\n\nThis statement is similar to SHOW PROCEDURE STATUS but for stored\nfunctions. See [HELP SHOW PROCEDURE STATUS].\n\nURL: https://mariadb.com/kb/en/show-function-status/\n\n','','https://mariadb.com/kb/en/show-function-status/'),(337,'LTRIM',37,'Syntax:\nLTRIM(str)\n\nReturns the string str with leading space characters removed.\n\nURL: https://mariadb.com/kb/en/ltrim/\n\n','MariaDB> SELECT LTRIM(\'  barbar\');\n        -> \'barbar\'\n','https://mariadb.com/kb/en/ltrim/'),(338,'INTERSECTS',30,'Intersects(g1,g2)\n\nReturns 1 or 0 to indicate whether g1 spatially intersects g2.\n\nURL: https://mariadb.com/kb/en/intersects/\n\n','','https://mariadb.com/kb/en/intersects/'),(339,'CALL',27,'Syntax:\nCALL sp_name([parameter[,...]])\nCALL sp_name[()]\n\nThe CALL statement invokes a stored procedure that was defined\npreviously with CREATE PROCEDURE.\n\nStored procedures that take no arguments can be invoked without\nparentheses. That is, CALL p() and CALL p are equivalent.\n\nCALL can pass back values to its caller using parameters that are\ndeclared as OUT or INOUT parameters. When the procedure returns, a\nclient program can also obtain the number of rows affected for the\nfinal statement executed within the routine: At the SQL level, call the\nROW_COUNT() function; from the C API, call the mysql_affected_rows()\nfunction.\n\nURL: https://mariadb.com/kb/en/call/\n\n','','https://mariadb.com/kb/en/call/'),(340,'MBRDISJOINT',6,'MBRDisjoint(g1,g2)\n\nReturns 1 or 0 to indicate whether the Minimum Bounding Rectangles of\nthe two geometries g1 and g2 are disjoint (do not intersect).\n\nURL: https://mariadb.com/kb/en/mbrdisjoint/\n\n','','https://mariadb.com/kb/en/mbrdisjoint/'),(341,'VALUES',14,'Syntax:\nVALUES(col_name)\n\nIn an INSERT ... ON DUPLICATE KEY UPDATE statement, you can use the\nVALUES(col_name) function in the UPDATE clause to refer to column\nvalues from the INSERT portion of the statement. In other words,\nVALUES(col_name) in the UPDATE clause refers to the value of col_name\nthat would be inserted, had no duplicate-key conflict occurred. This\nfunction is especially useful in multiple-row inserts. The VALUES()\nfunction is meaningful only in the ON DUPLICATE KEY UPDATE clause of\nINSERT statements and returns NULL otherwise. See\nhttps://mariadb.com/kb/en/insert-on-duplicate-key-update/.\n\nURL: https://mariadb.com/kb/en/values/\n\n','MariaDB> INSERT INTO table (a,b,c) VALUES (1,2,3),(4,5,6)\n    -> ON DUPLICATE KEY UPDATE c=VALUES(a)+VALUES(b);\n','https://mariadb.com/kb/en/values/'),(342,'SUBSTRING_INDEX',37,'Syntax:\nSUBSTRING_INDEX(str,delim,count)\n\nReturns the substring from string str before count occurrences of the\ndelimiter delim. If count is positive, everything to the left of the\nfinal delimiter (counting from the left) is returned. If count is\nnegative, everything to the right of the final delimiter (counting from\nthe right) is returned. SUBSTRING_INDEX() performs a case-sensitive\nmatch when searching for delim.\n\nURL: https://mariadb.com/kb/en/substring_index/\n\n','MariaDB> SELECT SUBSTRING_INDEX(\'www.mariadb.org\', \'.\', 2);\n        -> \'www.mariadb\'\nMariaDB> SELECT SUBSTRING_INDEX(\'www.mariadb.org\', \'.\', -2);\n        -> \'mariadb.org\'\n','https://mariadb.com/kb/en/substring_index/'),(343,'ENCODE',12,'Syntax:\nENCODE(str,pass_str)\n\nEncrypt str using pass_str as the password. To decrypt the result, use\nDECODE().\n\nThe result is a binary string of the same length as str.\n\nThe strength of the encryption is based on how good the random\ngenerator is. It should suffice for short strings.\n\nURL: https://mariadb.com/kb/en/encode/\n\n','','https://mariadb.com/kb/en/encode/'),(344,'LOOP',23,'Syntax:\n[begin_label:] LOOP\n    statement_list\nEND LOOP [end_label]\n\nLOOP implements a simple loop construct, enabling repeated execution of\nthe statement list, which consists of one or more statements, each\nterminated by a semicolon (;) statement delimiter. The statements\nwithin the loop are repeated until the loop is terminated. Usually,\nthis is accomplished with a LEAVE statement. Within a stored function,\nRETURN can also be used, which exits the function entirely.\n\nNeglecting to include a loop-termination statement results in an\ninfinite loop.\n\nA LOOP statement can be labeled. For the rules regarding label use, see\n[HELP labels].\n\nURL: https://mariadb.com/kb/en/loop/\n\n','CREATE PROCEDURE doiterate(p1 INT)\nBEGIN\n  label1: LOOP\n    SET p1 = p1 + 1;\n    IF p1 < 10 THEN\n      ITERATE label1;\n    END IF;\n    LEAVE label1;\n  END LOOP label1;\n  SET @x = p1;\nEND;\n','https://mariadb.com/kb/en/loop/'),(345,'TRUNCATE',4,'Syntax:\nTRUNCATE(X,D)\n\nReturns the number X, truncated to D decimal places. If D is 0, the\nresult has no decimal point or fractional part. D can be negative to\ncause D digits left of the decimal point of the value X to become zero.\n\nURL: https://mariadb.com/kb/en/truncate/\n\n','MariaDB> SELECT TRUNCATE(1.223,1);\n        -> 1.2\nMariaDB> SELECT TRUNCATE(1.999,1);\n        -> 1.9\nMariaDB> SELECT TRUNCATE(1.999,0);\n        -> 1\nMariaDB> SELECT TRUNCATE(-1.999,1);\n        -> -1.9\nMariaDB> SELECT TRUNCATE(122,-2);\n       -> 100\nMariaDB> SELECT TRUNCATE(10.28*100,0);\n       -> 1028\n','https://mariadb.com/kb/en/truncate/'),(346,'TIMESTAMPADD',31,'Syntax:\nTIMESTAMPADD(unit,interval,datetime_expr)\n\nAdds the integer expression interval to the date or datetime expression\ndatetime_expr. The unit for interval is given by the unit argument,\nwhich should be one of the following values: MICROSECOND\n(microseconds), SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, or\nYEAR.\n\nIt is possible to use FRAC_SECOND in place of MICROSECOND, but\nFRAC_SECOND is deprecated. FRAC_SECOND was removed in MySQL 5.5.3.\n\nThe unit value may be specified using one of keywords as shown, or with\na prefix of SQL_TSI_. For example, DAY and SQL_TSI_DAY both are legal.\n\nURL: https://mariadb.com/kb/en/timestampadd/\n\n','MariaDB> SELECT TIMESTAMPADD(MINUTE,1,\'2003-01-02\');\n        -> \'2003-01-02 00:01:00\'\nMariaDB> SELECT TIMESTAMPADD(WEEK,1,\'2003-01-02\');\n        -> \'2003-01-09\'\n','https://mariadb.com/kb/en/timestampadd/'),(347,'SHOW',26,'SHOW has many forms that provide information about databases, tables,\ncolumns, or status information about the server. This section describes\nthose following:\n\nSHOW AUTHORS\nSHOW {BINARY | MASTER} LOGS\nSHOW BINLOG EVENTS [IN \'log_name\'] [FROM pos] [LIMIT [offset,] row_count]\nSHOW CHARACTER SET [like_or_where]\nSHOW COLLATION [like_or_where]\nSHOW [FULL] COLUMNS FROM tbl_name [FROM db_name] [like_or_where]\nSHOW CONTRIBUTORS\nSHOW CREATE DATABASE db_name\nSHOW CREATE EVENT event_name\nSHOW CREATE FUNCTION func_name\nSHOW CREATE PROCEDURE proc_name\nSHOW CREATE TABLE tbl_name\nSHOW CREATE TRIGGER trigger_name\nSHOW CREATE VIEW view_name\nSHOW DATABASES [like_or_where]\nSHOW ENGINE engine_name {STATUS | MUTEX}\nSHOW [STORAGE] ENGINES\nSHOW ERRORS [LIMIT [offset,] row_count]\nSHOW EVENTS\nSHOW FUNCTION CODE func_name\nSHOW FUNCTION STATUS [like_or_where]\nSHOW GRANTS FOR user\nSHOW INDEX FROM tbl_name [FROM db_name]\nSHOW MASTER STATUS\nSHOW OPEN TABLES [FROM db_name] [like_or_where]\nSHOW PLUGINS\nSHOW PROCEDURE CODE proc_name\nSHOW PROCEDURE STATUS [like_or_where]\nSHOW PRIVILEGES\nSHOW [FULL] PROCESSLIST\nSHOW PROFILE [types] [FOR QUERY n] [OFFSET n] [LIMIT n]\nSHOW PROFILES\nSHOW SLAVE HOSTS\nSHOW SLAVE STATUS\nSHOW [GLOBAL | SESSION] STATUS [like_or_where]\nSHOW TABLE STATUS [FROM db_name] [like_or_where]\nSHOW [FULL] TABLES [FROM db_name] [like_or_where]\nSHOW TRIGGERS [FROM db_name] [like_or_where]\nSHOW [GLOBAL | SESSION] VARIABLES [like_or_where]\nSHOW WARNINGS [LIMIT [offset,] row_count]\n\nlike_or_where:\n    LIKE \'pattern\'\n  | WHERE expr\n\nIf the syntax for a given SHOW statement includes a LIKE \'pattern\'\npart, \'pattern\' is a string that can contain the SQL \"%\" and \"_\"\nwildcard characters. The pattern is useful for restricting statement\noutput to matching values.\n\nSeveral SHOW statements also accept a WHERE clause that provides more\nflexibility in specifying which rows to display. See\nhttps://mariadb.com/kb/en/extended-show/.\n\nURL: https://mariadb.com/kb/en/show/\n\n','','https://mariadb.com/kb/en/show/'),(348,'GREATEST',18,'Syntax:\nGREATEST(value1,value2,...)\n\nWith two or more arguments, returns the largest (maximum-valued)\nargument. The arguments are compared using the same rules as for\nLEAST().\n\nURL: https://mariadb.com/kb/en/greatest/\n\n','MariaDB> SELECT GREATEST(2,0);\n        -> 2\nMariaDB> SELECT GREATEST(34.0,3.0,5.0,767.0);\n        -> 767.0\nMariaDB> SELECT GREATEST(\'B\',\'A\',\'C\');\n        -> \'C\'\n','https://mariadb.com/kb/en/greatest/'),(349,'SHOW VARIABLES',26,'Syntax:\nSHOW [GLOBAL | SESSION] VARIABLES\n    [LIKE \'pattern\' | WHERE expr]\n\nSHOW VARIABLES shows the values of MySQL system variables. This\ninformation also can be obtained using the mysqladmin variables\ncommand. The LIKE clause, if present, indicates which variable names to\nmatch. The WHERE clause can be given to select rows using more general\nconditions, as discussed in\nhttps://mariadb.com/kb/en/extended-show/. This\nstatement does not require any privilege. It requires only the ability\nto connect to the server.\n\nWith the GLOBAL modifier, SHOW VARIABLES displays the values that are\nused for new connections to MySQL. As of MySQL 5.5.3, if a variable has\nno global value, no value is displayed. Before 5.5.3, the session value\nis displayed. With SESSION, SHOW VARIABLES displays the values that are\nin effect for the current connection. If no modifier is present, the\ndefault is SESSION. LOCAL is a synonym for SESSION.\nWith a LIKE clause, the statement displays only rows for those\nvariables with names that match the pattern. To obtain the row for a\nspecific variable, use a LIKE clause as shown:\n\nSHOW VARIABLES LIKE \'max_join_size\';\nSHOW SESSION VARIABLES LIKE \'max_join_size\';\n\nTo get a list of variables whose name match a pattern, use the \"%\"\nwildcard character in a LIKE clause:\n\nSHOW VARIABLES LIKE \'%size%\';\nSHOW GLOBAL VARIABLES LIKE \'%size%\';\n\nWildcard characters can be used in any position within the pattern to\nbe matched. Strictly speaking, because \"_\" is a wildcard that matches\nany single character, you should escape it as \"\\_\" to match it\nliterally. In practice, this is rarely necessary.\n\nURL: https://mariadb.com/kb/en/show-variables/\n\n','','https://mariadb.com/kb/en/show-variables/'),(350,'BINLOG',26,'Syntax:\nBINLOG \'str\'\n\nBINLOG is an internal-use statement. It is generated by the mysqlbinlog\nprogram as the printable representation of certain events in binary log\nfiles. (See https://mariadb.com/kb/en/mysqlbinlog/.)\nThe \'str\' value is a base 64-encoded string the that server decodes to\ndetermine the data change indicated by the corresponding event. This\nstatement requires the SUPER privilege.\n\nURL: https://mariadb.com/kb/en/binlog/\n\n','','https://mariadb.com/kb/en/binlog/'),(351,'BIT_AND',16,'Syntax:\nBIT_AND(expr)\n\nReturns the bitwise AND of all bits in expr. The calculation is\nperformed with 64-bit (BIGINT) precision.\n\nURL: https://mariadb.com/kb/en/bit_and/\n\n','','https://mariadb.com/kb/en/bit_and/'),(352,'SECOND',31,'Syntax:\nSECOND(time)\n\nReturns the second for time, in the range 0 to 59.\n\nURL: https://mariadb.com/kb/en/second/\n\n','MariaDB> SELECT SECOND(\'10:05:03\');\n        -> 3\n','https://mariadb.com/kb/en/second/'),(353,'ATAN2',4,'Syntax:\nATAN(Y,X), ATAN2(Y,X)\n\nReturns the arc tangent of the two variables X and Y. It is similar to\ncalculating the arc tangent of Y / X, except that the signs of both\narguments are used to determine the quadrant of the result.\n\nURL: https://mariadb.com/kb/en/atan2/\n\n','MariaDB> SELECT ATAN(-2,2);\n        -> -0.78539816339745\nMariaDB> SELECT ATAN2(PI(),0);\n        -> 1.5707963267949\n','https://mariadb.com/kb/en/atan2/'),(354,'MBRCONTAINS',6,'MBRContains(g1,g2)\n\nReturns 1 or 0 to indicate whether the Minimum Bounding Rectangle of g1\ncontains the Minimum Bounding Rectangle of g2. This tests the opposite\nrelationship as MBRWithin().\n\nURL: https://mariadb.com/kb/en/mbrcontains/\n\n','MariaDB> SET @g1 = GeomFromText(\'Polygon((0 0,0 3,3 3,3 0,0 0))\');\nMariaDB> SET @g2 = GeomFromText(\'Point(1 1)\');\nMariaDB> SELECT MBRContains(@g1,@g2), MBRContains(@g2,@g1);\n----------------------+----------------------+\n| MBRContains(@g1,@g2) | MBRContains(@g2,@g1) |\n+----------------------+----------------------+\n|                    1 |                    0 |\n+----------------------+----------------------+\n','https://mariadb.com/kb/en/mbrcontains/'),(355,'HOUR',31,'Syntax:\nHOUR(time)\n\nReturns the hour for time. The range of the return value is 0 to 23 for\ntime-of-day values. However, the range of TIME values actually is much\nlarger, so HOUR can return values greater than 23.\n\nURL: https://mariadb.com/kb/en/hour/\n\n','MariaDB> SELECT HOUR(\'10:05:03\');\n        -> 10\nMariaDB> SELECT HOUR(\'272:59:59\');\n        -> 272\n','https://mariadb.com/kb/en/hour/'),(356,'SELECT',27,'Syntax:\nSELECT\n    [ALL | DISTINCT | DISTINCTROW ]\n      [HIGH_PRIORITY]\n      [STRAIGHT_JOIN]\n      [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]\n      [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]\n    select_expr [, select_expr ...]\n    [FROM table_references\n    [WHERE where_condition]\n    [GROUP BY {col_name | expr | position}\n      [ASC | DESC], ... [WITH ROLLUP]]\n    [HAVING where_condition]\n    [ORDER BY {col_name | expr | position}\n      [ASC | DESC], ...]\n    [LIMIT {[offset,] row_count | row_count OFFSET offset}]\n    [PROCEDURE procedure_name(argument_list)]\n    [INTO OUTFILE \'file_name\'\n        [CHARACTER SET charset_name]\n        export_options\n      | INTO DUMPFILE \'file_name\'\n      | INTO var_name [, var_name]]\n    [FOR UPDATE | LOCK IN SHARE MODE]]\n\nSELECT is used to retrieve rows selected from one or more tables, and\ncan include UNION statements and subqueries. See [HELP UNION], and\nhttps://mariadb.com/kb/en/subqueries/.\n\nThe most commonly used clauses of SELECT statements are these:\n\no Each select_expr indicates a column that you want to retrieve. There\n  must be at least one select_expr.\n\no table_references indicates the table or tables from which to retrieve\n  rows. Its syntax is described in [HELP JOIN].\n\no The WHERE clause, if given, indicates the condition or conditions\n  that rows must satisfy to be selected. where_condition is an\n  expression that evaluates to true for each row to be selected. The\n  statement selects all rows if there is no WHERE clause.\n\n  In the WHERE expression, you can use any of the functions and\n  operators that MySQL supports, except for aggregate (summary)\n  functions. See\n  https://mariadb.com/kb/en/select#select-expressions, and\n  https://mariadb.com/kb/en/functions-and-operators/.\n\nSELECT can also be used to retrieve rows computed without reference to\nany table.\n\nURL: https://mariadb.com/kb/en/select/\n\n','','https://mariadb.com/kb/en/select/'),(357,'COT',4,'Syntax:\nCOT(X)\n\nReturns the cotangent of X.\n\nURL: https://mariadb.com/kb/en/cot/\n\n','MariaDB> SELECT COT(12);\n        -> -1.5726734063977\nMariaDB> SELECT COT(0);\n        -> NULL\n','https://mariadb.com/kb/en/cot/'),(358,'SHOW CREATE EVENT',26,'Syntax:\nSHOW CREATE EVENT event_name\n\nThis statement displays the CREATE EVENT statement needed to re-create\na given event. It requires the EVENT privilege for the database from\nwhich the event is to be shown. For example (using the same event\ne_daily defined and then altered in [HELP SHOW EVENTS]):\n\nURL: https://mariadb.com/kb/en/show-create-event/\n\n','MariaDB> SHOW CREATE EVENT test.e_daily\\G\n*************************** 1. row ***************************\n               Event: e_daily\n            sql_mode:\n           time_zone: SYSTEM\n        Create Event: CREATE EVENT `e_daily`\n                        ON SCHEDULE EVERY 1 DAY\n                        STARTS CURRENT_TIMESTAMP + INTERVAL 6 HOUR\n                        ON COMPLETION NOT PRESERVE\n                        ENABLE\n                        COMMENT \'Saves total number of sessions then\n                                clears the table each day\'\n                        DO BEGIN\n                          INSERT INTO site_activity.totals (time, total)\n                            SELECT CURRENT_TIMESTAMP, COUNT(*)\n                            FROM site_activity.sessions;\n                          DELETE FROM site_activity.sessions;\n                        END\ncharacter_set_client: latin1\ncollation_connection: latin1_swedish_ci\n  Database Collation: latin1_swedish_ci\n','https://mariadb.com/kb/en/show-create-event/'),(359,'LOAD_FILE',37,'Syntax:\nLOAD_FILE(file_name)\n\nReads the file and returns the file contents as a string. To use this\nfunction, the file must be located on the server host, you must specify\nthe full path name to the file, and you must have the FILE privilege.\nThe file must be readable by all and its size less than\nmax_allowed_packet bytes. If the secure_file_priv system variable is\nset to a nonempty directory name, the file to be loaded must be located\nin that directory.\n\nIf the file does not exist or cannot be read because one of the\npreceding conditions is not satisfied, the function returns NULL.\n\nThe character_set_filesystem system variable controls interpretation of\nfile names that are given as literal strings.\n\nURL: https://mariadb.com/kb/en/load_file/\n\n','MariaDB> UPDATE t\n            SET blob_col=LOAD_FILE(\'/tmp/picture\')\n            WHERE id=1;\n','https://mariadb.com/kb/en/load_file/'),(360,'POINTFROMTEXT',3,'PointFromText(wkt[,srid])\n\nConstructs a POINT value using its WKT representation and SRID.\n\nURL: https://mariadb.com/kb/en/pointfromtext/\n\n','','https://mariadb.com/kb/en/pointfromtext/'),(361,'GROUP_CONCAT',16,'Syntax:\nGROUP_CONCAT(expr)\n\nThis function returns a string result with the concatenated non-NULL\nvalues from a group. It returns NULL if there are no non-NULL values.\nThe full syntax is as follows:\n\nGROUP_CONCAT([DISTINCT] expr [,expr ...]\n             [ORDER BY {unsigned_integer | col_name | expr}\n                 [ASC | DESC] [,col_name ...]]\n             [SEPARATOR str_val])\n\nURL: https://mariadb.com/kb/en/group_concat/\n\n','MariaDB> SELECT student_name,\n    ->     GROUP_CONCAT(test_score)\n    ->     FROM student\n    ->     GROUP BY student_name;\n','https://mariadb.com/kb/en/group_concat/'),(362,'DATE_FORMAT',31,'Syntax:\nDATE_FORMAT(date,format)\n\nFormats the date value according to the format string.\n\nURL: https://mariadb.com/kb/en/date_format/\n\n','MariaDB> SELECT DATE_FORMAT(\'2009-10-04 22:23:00\', \'%W %M %Y\');\n        -> \'Sunday October 2009\'\nMariaDB> SELECT DATE_FORMAT(\'2007-10-04 22:23:00\', \'%H:%i:%s\');\n        -> \'22:23:00\'\nMariaDB> SELECT DATE_FORMAT(\'1900-10-04 22:23:00\',\n    ->                 \'%D %y %a %d %m %b %j\');\n        -> \'4th 00 Thu 04 10 Oct 277\'\nMariaDB> SELECT DATE_FORMAT(\'1997-10-04 22:23:00\',\n    ->                 \'%H %k %I %r %T %S %w\');\n        -> \'22 22 10 10:23:00 PM 22:23:00 00 6\'\nMariaDB> SELECT DATE_FORMAT(\'1999-01-01\', \'%X %V\');\n        -> \'1998 52\'\nMariaDB> SELECT DATE_FORMAT(\'2006-06-00\', \'%d\');\n        -> \'00\'\n','https://mariadb.com/kb/en/date_format/'),(363,'BENCHMARK',17,'Syntax:\nBENCHMARK(count,expr)\n\nThe BENCHMARK() function executes the expression expr repeatedly count\ntimes. It may be used to time how quickly MySQL processes the\nexpression. The result value is always 0. The intended use is from\nwithin the mysql client, which reports query execution times:\n\nURL: https://mariadb.com/kb/en/benchmark/\n\n','MariaDB> SELECT BENCHMARK(1000000,ENCODE(\'hello\',\'goodbye\'));\n+----------------------------------------------+\n| BENCHMARK(1000000,ENCODE(\'hello\',\'goodbye\')) |\n+----------------------------------------------+\n|                                            0 |\n+----------------------------------------------+\n1 row in set (4.74 sec)\n','https://mariadb.com/kb/en/benchmark/'),(364,'YEAR',31,'Syntax:\nYEAR(date)\n\nReturns the year for date, in the range 1000 to 9999, or 0 for the\n\"zero\" date.\n\nURL: https://mariadb.com/kb/en/year/\n\n','MariaDB> SELECT YEAR(\'1987-01-01\');\n        -> 1987\n','https://mariadb.com/kb/en/year/'),(365,'SHOW ENGINE',26,'Syntax:\nSHOW ENGINE engine_name {STATUS | MUTEX}\n\nSHOW ENGINE displays operational information about a storage engine.\nThe following statements currently are supported:\n\nSHOW ENGINE INNODB STATUS\nSHOW ENGINE INNODB MUTEX\nSHOW ENGINE PERFORMANCE_SCHEMA STATUS\n\nSHOW ENGINE INNODB STATUS displays extensive information from the\nstandard InnoDB Monitor about the state of the InnoDB storage engine.\nFor information about the standard monitor and other InnoDB Monitors\nthat provide information about InnoDB processing, see\nhttp://dev.mysql.com/doc/refman/5.5/en/innodb-monitors.html.\n\nSHOW ENGINE INNODB MUTEX displays InnoDB mutex statistics. The\nstatement displays the following fields:\n\no Type\n\n  Always InnoDB.\n\no Name\n\n  The source file where the mutex is implemented, and the line number\n  in the file where the mutex is created. The line number may change\n  depending on your version of MySQL.\n\no Status\n\n  The mutex status. This field displays several values if UNIV_DEBUG\n  was defined at MySQL compilation time (for example, in include/univ.i\n  in the InnoDB part of the MySQL source tree). If UNIV_DEBUG was not\n  defined, the statement displays only the os_waits value. In the\n  latter case (without UNIV_DEBUG), the information on which the output\n  is based is insufficient to distinguish regular mutexes and mutexes\n  that protect rw-locks (which permit multiple readers or a single\n  writer). Consequently, the output may appear to contain multiple rows\n  for the same mutex.\n\n  o count indicates how many times the mutex was requested.\n\n  o spin_waits indicates how many times the spinlock had to run.\n\n  o spin_rounds indicates the number of spinlock rounds. (spin_rounds\n    divided by spin_waits provides the average round count.)\n\n  o os_waits indicates the number of operating system waits. This\n    occurs when the spinlock did not work (the mutex was not locked\n    during the spinlock and it was necessary to yield to the operating\n    system and wait).\n\n  o os_yields indicates the number of times a the thread trying to lock\n    a mutex gave up its timeslice and yielded to the operating system\n    (on the presumption that permitting other threads to run will free\n    the mutex so that it can be locked).\n\n  o os_wait_times indicates the amount of time (in ms) spent in\n    operating system waits, if the timed_mutexes system variable is 1\n    (ON). If timed_mutexes is 0 (OFF), timing is disabled, so\n    os_wait_times is 0. timed_mutexes is off by default.\n\nInformation from this statement can be used to diagnose system\nproblems. For example, large values of spin_waits and spin_rounds may\nindicate scalability problems.\n\nUse SHOW ENGINE PERFORMANCE_SCHEMA STATUS to inspect the internal\noperation of the Performance Schema code:\n\nMariaDB> SHOW ENGINE PERFORMANCE_SCHEMA STATUS\\G\n...\n*************************** 3. row ***************************\n  Type: performance_schema\n  Name: events_waits_history.row_size\nStatus: 76\n*************************** 4. row ***************************\n  Type: performance_schema\n  Name: events_waits_history.row_count\nStatus: 10000\n*************************** 5. row ***************************\n  Type: performance_schema\n  Name: events_waits_history.memory\nStatus: 760000\n...\n*************************** 57. row ***************************\n  Type: performance_schema\n  Name: performance_schema.memory\nStatus: 26459600\n...\n\nThe intent of this statement is to help the DBA to understand the\neffects that different options have on memory requirements.\n\nName values consist of two parts, which name an internal buffer and an\nattribute of the buffer, respectively:\n\no Internal buffers that are exposed as a table in the\n  performance_schema database are named after the table. Examples:\n  events_waits_history.row_size, mutex_instances.row_count.\n\no Internal buffers that are not exposed as a table are named within\n  parentheses. Examples: (pfs_cond_class).row_size,\n  (pfs_mutex_class).memory.\n\no Values that apply to the Performance Schema as a whole begin with\n  performance_schema. Example: performance_schema.memory.\n\nAttributes have these meanings:\n\no row_size cannot be changed. It is the size of the internal record\n  used by the implementation.\n\no row_count can be changed depending on the configuration options.\n\no For a table, tbl_name.memory is the product of row_size multiplied by\n  row_count. For the Performance Schema as a whole,\n  performance_schema.memory is the sum of all the memory used (the sum\n  of all other memory values).\n\nIn some cases, there is a direct relationship between a configuration\nparameter and a SHOW ENGINE value. For example,\nevents_waits_history_long.row_count corresponds to\nperformance_schema_events_waits_history_long_size. In other cases, the\nrelationship is more complex. For example,\nevents_waits_history.row_count corresponds to\nperformance_schema_events_waits_history_size (the number of rows per\nthread) multiplied by performance_schema_max_thread_instances ( the\nnumber of threads).\n\nURL: https://mariadb.com/kb/en/show-engine/\n\n','','https://mariadb.com/kb/en/show-engine/'),(366,'NAME_CONST',14,'Syntax:\nNAME_CONST(name,value)\n\nReturns the given value. When used to produce a result set column,\nNAME_CONST() causes the column to have the given name. The arguments\nshould be constants.\n\nMariaDB> SELECT NAME_CONST(\'myname\', 14);\n+--------+\n| myname |\n+--------+\n|     14 |\n+--------+\n\nURL: https://mariadb.com/kb/en/name_const/\n\n','','https://mariadb.com/kb/en/name_const/'),(367,'RELEASE_LOCK',14,'Syntax:\nRELEASE_LOCK(str)\n\nReleases the lock named by the string str that was obtained with\nGET_LOCK(). Returns 1 if the lock was released, 0 if the lock was not\nestablished by this thread (in which case the lock is not released),\nand NULL if the named lock did not exist. The lock does not exist if it\nwas never obtained by a call to GET_LOCK() or if it has previously been\nreleased.\n\nThe DO statement is convenient to use with RELEASE_LOCK(). See [HELP\nDO].\n\nURL: https://mariadb.com/kb/en/release_lock/\n\n','','https://mariadb.com/kb/en/release_lock/'),(368,'IS NULL',18,'Syntax:\nIS NULL\n\nTests whether a value is NULL.\n\nURL: https://mariadb.com/kb/en/is-null/\n\n','MariaDB> SELECT 1 IS NULL, 0 IS NULL, NULL IS NULL;\n        -> 0, 0, 1\n','https://mariadb.com/kb/en/is-null/'),(369,'CONVERT_TZ',31,'Syntax:\nCONVERT_TZ(dt,from_tz,to_tz)\n\nCONVERT_TZ() converts a datetime value dt from the time zone given by\nfrom_tz to the time zone given by to_tz and returns the resulting\nvalue. Time zones are specified as described in\nhttps://mariadb.com/kb/en/time-zones/. This\nfunction returns NULL if the arguments are invalid.\n\nURL: https://mariadb.com/kb/en/convert_tz/\n\n','MariaDB> SELECT CONVERT_TZ(\'2004-01-01 12:00:00\',\'GMT\',\'MET\');\n        -> \'2004-01-01 13:00:00\'\nMariaDB> SELECT CONVERT_TZ(\'2004-01-01 12:00:00\',\'+00:00\',\'+10:00\');\n        -> \'2004-01-01 22:00:00\'\n','https://mariadb.com/kb/en/convert_tz/'),(370,'TIME_TO_SEC',31,'Syntax:\nTIME_TO_SEC(time)\n\nReturns the time argument, converted to seconds.\n\nURL: https://mariadb.com/kb/en/time_to_sec/\n\n','MariaDB> SELECT TIME_TO_SEC(\'22:23:00\');\n        -> 80580\nMariaDB> SELECT TIME_TO_SEC(\'00:39:38\');\n        -> 2378\n','https://mariadb.com/kb/en/time_to_sec/'),(371,'WEEKDAY',31,'Syntax:\nWEEKDAY(date)\n\nReturns the weekday index for date (0 = Monday, 1 = Tuesday, ... 6 =\nSunday).\n\nURL: https://mariadb.com/kb/en/weekday/\n\n','MariaDB> SELECT WEEKDAY(\'2008-02-03 22:23:00\');\n        -> 6\nMariaDB> SELECT WEEKDAY(\'2007-11-06\');\n        -> 1\n','https://mariadb.com/kb/en/weekday/'),(372,'EXPORT_SET',37,'Syntax:\nEXPORT_SET(bits,on,off[,separator[,number_of_bits]])\n\nReturns a string such that for every bit set in the value bits, you get\nan on string and for every bit not set in the value, you get an off\nstring. Bits in bits are examined from right to left (from low-order to\nhigh-order bits). Strings are added to the result from left to right,\nseparated by the separator string (the default being the comma\ncharacter \",\"). The number of bits examined is given by number_of_bits,\nwhich has a default of 64 if not specified. number_of_bits is silently\nclipped to 64 if larger than 64. It is treated as an unsigned integer,\nso a value of -1 is effectively the same as 64.\n\nURL: https://mariadb.com/kb/en/export_set/\n\n','MariaDB> SELECT EXPORT_SET(5,\'Y\',\'N\',\',\',4);\n        -> \'Y,N,Y,N\'\nMariaDB> SELECT EXPORT_SET(6,\'1\',\'0\',\',\',10);\n        -> \'0,1,1,0,0,0,0,0,0,0\'\n','https://mariadb.com/kb/en/export_set/'),(373,'ALTER SERVER',39,'Syntax:\nALTER SERVER  server_name\n    OPTIONS (option [, option] ...)\n\nAlters the server information for server_name, adjusting any of the\noptions permitted in the CREATE SERVER statement. See [HELP CREATE\nSERVER]. The corresponding fields in the mysql.servers table are\nupdated accordingly. This statement requires the SUPER privilege.\n\nURL: https://mariadb.com/kb/en/alter-server/\n\n','ALTER SERVER s OPTIONS (USER \'sally\');\n','https://mariadb.com/kb/en/alter-server/'),(374,'RESIGNAL',23,'Syntax:\nRESIGNAL [condition_value]\n    [SET signal_information_item\n    [, signal_information_item] ...]\n\ncondition_value:\n    SQLSTATE [VALUE] sqlstate_value\n  | condition_name\n\nsignal_information_item:\n    condition_information_item_name = simple_value_specification\n\ncondition_information_item_name:\n    CLASS_ORIGIN\n  | SUBCLASS_ORIGIN\n  | MESSAGE_TEXT\n  | MYSQL_ERRNO\n  | CONSTRAINT_CATALOG\n  | CONSTRAINT_SCHEMA\n  | CONSTRAINT_NAME\n  | CATALOG_NAME\n  | SCHEMA_NAME\n  | TABLE_NAME\n  | COLUMN_NAME\n  | CURSOR_NAME\n\ncondition_name, simple_value_specification:\n    (see following discussion)\n\nRESIGNAL passes on the error condition information that is available\nduring execution of a condition handler within a compound statement\ninside a stored procedure or function, trigger, or event. RESIGNAL may\nchange some or all information before passing it on. RESIGNAL is\nrelated to SIGNAL, but instead of originating a condition as SIGNAL\ndoes, RESIGNAL relays existing condition information, possibly after\nmodifying it.\n\nRESIGNAL makes it possible to both handle an error and return the error\ninformation. Otherwise, by executing an SQL statement within the\nhandler, information that caused the handler\'s activation is destroyed.\nRESIGNAL also can make some procedures shorter if a given handler can\nhandle part of a situation, then pass the condition \"up the line\" to\nanother handler.\n\nNo special privileges are required to execute the RESIGNAL statement.\n\nFor condition_value and signal_information_item, the definitions and\nrules are the same for RESIGNAL as for SIGNAL (see [HELP SIGNAL]).\n\nThe RESIGNAL statement takes condition_value and SET clauses, both of\nwhich are optional. This leads to several possible uses:\n\no RESIGNAL alone:\n\nRESIGNAL;\n\no RESIGNAL with new signal information:\n\nRESIGNAL SET signal_information_item [, signal_information_item] ...;\n\no RESIGNAL with a condition value and possibly new signal information:\n\nRESIGNAL condition_value\n    [SET signal_information_item [, signal_information_item] ...];\n\nURL: https://mariadb.com/kb/en/resignal/\n\n','','https://mariadb.com/kb/en/resignal/'),(375,'TIME FUNCTION',31,'Syntax:\nTIME(expr)\n\nExtracts the time part of the time or datetime expression expr and\nreturns it as a string.\n\nURL: https://mariadb.com/kb/en/time-function/\n\n','MariaDB> SELECT TIME(\'2003-12-31 01:02:03\');\n        -> \'01:02:03\'\nMariaDB> SELECT TIME(\'2003-12-31 01:02:03.000123\');\n        -> \'01:02:03.000123\'\n','https://mariadb.com/kb/en/time-function/'),(376,'DATE_ADD',31,'Syntax:\nDATE_ADD(date,INTERVAL expr unit), DATE_SUB(date,INTERVAL expr unit)\n\nThese functions perform date arithmetic. The date argument specifies\nthe starting date or datetime value. expr is an expression specifying\nthe interval value to be added or subtracted from the starting date.\nexpr is a string; it may start with a \"-\" for negative intervals. unit\nis a keyword indicating the units in which the expression should be\ninterpreted.\n\nURL: https://mariadb.com/kb/en/date_add/\n\n','MariaDB> SELECT \'2008-12-31 23:59:59\' + INTERVAL 1 SECOND;\n        -> \'2009-01-01 00:00:00\'\nMariaDB> SELECT INTERVAL 1 DAY + \'2008-12-31\';\n        -> \'2009-01-01\'\nMariaDB> SELECT \'2005-01-01\' - INTERVAL 1 SECOND;\n        -> \'2004-12-31 23:59:59\'\nMariaDB> SELECT DATE_ADD(\'2000-12-31 23:59:59\',\n    ->                 INTERVAL 1 SECOND);\n        -> \'2001-01-01 00:00:00\'\nMariaDB> SELECT DATE_ADD(\'2010-12-31 23:59:59\',\n    ->                 INTERVAL 1 DAY);\n        -> \'2011-01-01 23:59:59\'\nMariaDB> SELECT DATE_ADD(\'2100-12-31 23:59:59\',\n    ->                 INTERVAL \'1:1\' MINUTE_SECOND);\n        -> \'2101-01-01 00:01:00\'\nMariaDB> SELECT DATE_SUB(\'2005-01-01 00:00:00\',\n    ->                 INTERVAL \'1 1:1:1\' DAY_SECOND);\n        -> \'2004-12-30 22:58:59\'\nMariaDB> SELECT DATE_ADD(\'1900-01-01 00:00:00\',\n    ->                 INTERVAL \'-1 10\' DAY_HOUR);\n        -> \'1899-12-30 14:00:00\'\nMariaDB> SELECT DATE_SUB(\'1998-01-02\', INTERVAL 31 DAY);\n        -> \'1997-12-02\'\nMariaDB> SELECT DATE_ADD(\'1992-12-31 23:59:59.000002\',\n    ->            INTERVAL \'1.999999\' SECOND_MICROSECOND);\n        -> \'1993-01-01 00:00:01.000001\'\n','https://mariadb.com/kb/en/date_add/'),(377,'CAST',37,'Syntax:\nCAST(expr AS type)\n\nThe CAST() function takes an expression of any type and produces a\nresult value of a specified type, similar to CONVERT(). See the\ndescription of CONVERT() for more information.\n\nURL: https://mariadb.com/kb/en/cast/\n\n','','https://mariadb.com/kb/en/cast/'),(378,'SOUNDS LIKE',37,'Syntax:\nexpr1 SOUNDS LIKE expr2\n\nThis is the same as SOUNDEX(expr1) = SOUNDEX(expr2).\n\nURL: https://mariadb.com/kb/en/sounds-like/\n\n','','https://mariadb.com/kb/en/sounds-like/'),(379,'PERIOD_DIFF',31,'Syntax:\nPERIOD_DIFF(P1,P2)\n\nReturns the number of months between periods P1 and P2. P1 and P2\nshould be in the format YYMM or YYYYMM. Note that the period arguments\nP1 and P2 are not date values.\n\nURL: https://mariadb.com/kb/en/period_diff/\n\n','MariaDB> SELECT PERIOD_DIFF(200802,200703);\n        -> 11\n','https://mariadb.com/kb/en/period_diff/'),(380,'LIKE',37,'Syntax:\nexpr LIKE pat [ESCAPE \'escape_char\']\n\nPattern matching using SQL simple regular expression comparison.\nReturns 1 (TRUE) or 0 (FALSE). If either expr or pat is NULL, the\nresult is NULL.\n\nThe pattern need not be a literal string. For example, it can be\nspecified as a string expression or table column.\n\nURL: https://mariadb.com/kb/en/like/\n\n','MariaDB> SELECT \'David!\' LIKE \'David_\';\n        -> 1\nMariaDB> SELECT \'David!\' LIKE \'%D%v%\';\n        -> 1\n','https://mariadb.com/kb/en/like/'),(381,'MULTIPOINT',24,'MultiPoint(pt1,pt2,...)\n\nConstructs a MultiPoint value using Point or WKB Point arguments.\n\nURL: https://mariadb.com/kb/en/multipoint/\n\n','','https://mariadb.com/kb/en/multipoint/'),(382,'>>',19,'Syntax:\n>>\n\nShifts a longlong (BIGINT) number to the right.\n\nURL: https://mariadb.com/kb/en/shift-right/\n\n','MariaDB> SELECT 4 >> 2;\n        -> 1\n','https://mariadb.com/kb/en/shift-right/'),(383,'FETCH',23,'Syntax:\nFETCH [[NEXT] FROM] cursor_name INTO var_name [, var_name] ...\n\nThis statement fetches the next row for the SELECT statement associated\nwith the specified cursor (which must be open), and advances the cursor\npointer. If a row exists, the fetched columns are stored in the named\nvariables. The number of columns retrieved by the SELECT statement must\nmatch the number of output variables specified in the FETCH statement.\n\nIf no more rows are available, a No Data condition occurs with SQLSTATE\nvalue \'02000\'. To detect this condition, you can set up a handler for\nit (or for a NOT FOUND condition). For an example, see\nhttps://mariadb.com/kb/en/cursor-overview/.\n\nURL: https://mariadb.com/kb/en/fetch/\n\n','','https://mariadb.com/kb/en/fetch/'),(384,'AVG',16,'Syntax:\nAVG([DISTINCT] expr)\n\nReturns the average value of expr. The DISTINCT option can be used to\nreturn the average of the distinct values of expr.\n\nAVG() returns NULL if there were no matching rows.\n\nURL: https://mariadb.com/kb/en/avg/\n\n','MariaDB> SELECT student_name, AVG(test_score)\n    ->        FROM student\n    ->        GROUP BY student_name;\n','https://mariadb.com/kb/en/avg/'),(385,'TRUE FALSE',29,'The constants TRUE and FALSE evaluate to 1 and 0, respectively. The\nconstant names can be written in any lettercase.\n\nMariaDB> SELECT TRUE, true, FALSE, false;\n        -> 1, 1, 0, 0\n\nURL: https://mariadb.com/kb/en/true-false/\n\n','','https://mariadb.com/kb/en/true-false/'),(386,'MBRWITHIN',6,'MBRWithin(g1,g2)\n\nReturns 1 or 0 to indicate whether the Minimum Bounding Rectangle of g1\nis within the Minimum Bounding Rectangle of g2. This tests the opposite\nrelationship as MBRContains().\n\nURL: https://mariadb.com/kb/en/mbrwithin/\n\n','MariaDB> SET @g1 = GeomFromText(\'Polygon((0 0,0 3,3 3,3 0,0 0))\');\nMariaDB> SET @g2 = GeomFromText(\'Polygon((0 0,0 5,5 5,5 0,0 0))\');\nMariaDB> SELECT MBRWithin(@g1,@g2), MBRWithin(@g2,@g1);\n+--------------------+--------------------+\n| MBRWithin(@g1,@g2) | MBRWithin(@g2,@g1) |\n+--------------------+--------------------+\n|                  1 |                  0 |\n+--------------------+--------------------+\n','https://mariadb.com/kb/en/mbrwithin/'),(387,'SESSION_USER',17,'Syntax:\nSESSION_USER()\n\nSESSION_USER() is a synonym for USER().\n\nURL: https://mariadb.com/kb/en/session_user/\n\n','','https://mariadb.com/kb/en/session_user/'),(388,'IN',18,'Syntax:\nexpr IN (value,...)\n\nReturns 1 if expr is equal to any of the values in the IN list, else\nreturns 0. If all values are constants, they are evaluated according to\nthe type of expr and sorted. The search for the item then is done using\na binary search. This means IN is very quick if the IN value list\nconsists entirely of constants. Otherwise, type conversion takes place\naccording to the rules described in\nhttps://mariadb.com/kb/en/type-conversion/, but\napplied to all the arguments.\n\nURL: https://mariadb.com/kb/en/in/\n\n','MariaDB> SELECT 2 IN (0,3,5,7);\n        -> 0\nMariaDB> SELECT \'wefwf\' IN (\'wee\',\'wefwf\',\'weg\');\n        -> 1\n','https://mariadb.com/kb/en/in/'),(389,'QUOTE',37,'Syntax:\nQUOTE(str)\n\nQuotes a string to produce a result that can be used as a properly\nescaped data value in an SQL statement. The string is returned enclosed\nby single quotation marks and with each instance of backslash (\"\\\"),\nsingle quote (\"\'\"), ASCII NUL, and Control+Z preceded by a backslash.\nIf the argument is NULL, the return value is the word \"NULL\" without\nenclosing single quotation marks.\n\nURL: https://mariadb.com/kb/en/quote/\n\n','MariaDB> SELECT QUOTE(\'Don\\\'t!\');\n        -> \'Don\\\'t!\'\nMariaDB> SELECT QUOTE(NULL);\n        -> NULL\n','https://mariadb.com/kb/en/quote/'),(390,'HELP COMMAND',26,'Syntax:\nMariaDB> help search_string\n\nIf you provide an argument to the help command, mysql uses it as a\nsearch string to access server-side help from the contents of the MySQL\nReference Manual. The proper operation of this command requires that\nthe help tables in the mysql database be initialized with help topic\ninformation .\n\nIf there is no match for the search string, the search fails:\n\nMariaDB> help me\n\nNothing found\nPlease try to run \'help contents\' for a list of all accessible topics\n\nUse help contents to see a list of the help categories:\n\nMariaDB> help contents\nYou asked for help about help category: \"Contents\"\nFor more information, type \'help <item>\', where <item> is one of the\nfollowing categories:\n   Account Management\n   Administration\n   Data Definition\n   Data Manipulation\n   Data Types\n   Functions\n   Functions and Modifiers for Use with GROUP BY\n   Geographic Features\n   Language Structure\n   Plugins\n   Storage Engines\n   Stored Routines\n   Table Maintenance\n   Transactions\n   Triggers\n\nIf the search string matches multiple items, mysql shows a list of\nmatching topics:\n\nMariaDB> help logs\nMany help items for your request exist.\nTo make a more specific request, please type \'help <item>\',\nwhere <item> is one of the following topics:\n   SHOW\n   SHOW BINARY LOGS\n   SHOW ENGINE\n   SHOW LOGS\n\nUse a topic as the search string to see the help entry for that topic:\n\nMariaDB> help show binary logs\nName: \'SHOW BINARY LOGS\'\nDescription:\nSyntax:\nSHOW BINARY LOGS\nSHOW MASTER LOGS\n\nLists the binary log files on the server. This statement is used as\npart of the procedure described in [purge-binary-logs], that shows how\nto determine which logs can be purged.\n\nMariaDB> SHOW BINARY LOGS;\n+---------------+-----------+\n| Log_name      | File_size |\n+---------------+-----------+\n| binlog.000015 |    724935 |\n| binlog.000016 |    733481 |\n+---------------+-----------+\n\nURL: https://mariadb.com/kb/en/help-command/\n\n','','https://mariadb.com/kb/en/help-command/'),(391,'QUARTER',31,'Syntax:\nQUARTER(date)\n\nReturns the quarter of the year for date, in the range 1 to 4.\n\nURL: https://mariadb.com/kb/en/quarter/\n\n','MariaDB> SELECT QUARTER(\'2008-04-01\');\n        -> 2\n','https://mariadb.com/kb/en/quarter/'),(392,'POSITION',37,'Syntax:\nPOSITION(substr IN str)\n\nPOSITION(substr IN str) is a synonym for LOCATE(substr,str).\n\nURL: https://mariadb.com/kb/en/position/\n\n','','https://mariadb.com/kb/en/position/'),(393,'SHOW CREATE FUNCTION',26,'Syntax:\nSHOW CREATE FUNCTION func_name\n\nThis statement is similar to SHOW CREATE PROCEDURE but for stored\nfunctions. See [HELP SHOW CREATE PROCEDURE].\n\nURL: https://mariadb.com/kb/en/show-create-function/\n\n','','https://mariadb.com/kb/en/show-create-function/'),(394,'IS_USED_LOCK',14,'Syntax:\nIS_USED_LOCK(str)\n\nChecks whether the lock named str is in use (that is, locked). If so,\nit returns the connection identifier of the client that holds the lock.\nOtherwise, it returns NULL.\n\nURL: https://mariadb.com/kb/en/is_used_lock/\n\n','','https://mariadb.com/kb/en/is_used_lock/'),(395,'POLYFROMTEXT',3,'PolyFromText(wkt[,srid]), PolygonFromText(wkt[,srid])\n\nConstructs a POLYGON value using its WKT representation and SRID.\n\nURL: https://mariadb.com/kb/en/polyfromtext/\n\n','','https://mariadb.com/kb/en/polyfromtext/'),(396,'DES_ENCRYPT',12,'Syntax:\nDES_ENCRYPT(str[,{key_num|key_str}])\n\nEncrypts the string with the given key using the Triple-DES algorithm.\n\nThis function works only if MySQL has been configured with SSL support.\nSee https://mariadb.com/kb/en/ssl-connections/.\n\nThe encryption key to use is chosen based on the second argument to\nDES_ENCRYPT(), if one was given. With no argument, the first key from\nthe DES key file is used. With a key_num argument, the given key number\n(0 to 9) from the DES key file is used. With a key_str argument, the\ngiven key string is used to encrypt str.\n\nThe key file can be specified with the --des-key-file server option.\n\nThe return string is a binary string where the first character is\nCHAR(128 | key_num). If an error occurs, DES_ENCRYPT() returns NULL.\n\nThe 128 is added to make it easier to recognize an encrypted key. If\nyou use a string key, key_num is 127.\n\nThe string length for the result is given by this formula:\n\nnew_len = orig_len + (8 - (orig_len % 8)) + 1\n\nEach line in the DES key file has the following format:\n\nkey_num des_key_str\n\nEach key_num value must be a number in the range from 0 to 9. Lines in\nthe file may be in any order. des_key_str is the string that is used to\nencrypt the message. There should be at least one space between the\nnumber and the key. The first key is the default key that is used if\nyou do not specify any key argument to DES_ENCRYPT().\n\nYou can tell MySQL to read new key values from the key file with the\nFLUSH DES_KEY_FILE statement. This requires the RELOAD privilege.\n\nOne benefit of having a set of default keys is that it gives\napplications a way to check for the existence of encrypted column\nvalues, without giving the end user the right to decrypt those values.\n\nURL: https://mariadb.com/kb/en/des_encrypt/\n\n','MariaDB> SELECT customer_address FROM customer_table \n     > WHERE crypted_credit_card = DES_ENCRYPT(\'credit_card_number\');\n','https://mariadb.com/kb/en/des_encrypt/'),(397,'CEIL',4,'Syntax:\nCEIL(X)\n\nCEIL() is a synonym for CEILING().\n\nURL: https://mariadb.com/kb/en/ceil/\n\n','','https://mariadb.com/kb/en/ceil/'),(398,'LENGTH',37,'Syntax:\nLENGTH(str)\n\nReturns the length of the string str, measured in bytes. A multi-byte\ncharacter counts as multiple bytes. This means that for a string\ncontaining five 2-byte characters, LENGTH() returns 10, whereas\nCHAR_LENGTH() returns 5.\n\nURL: https://mariadb.com/kb/en/length/\n\n','MariaDB> SELECT LENGTH(\'text\');\n        -> 4\n','https://mariadb.com/kb/en/length/'),(399,'STR_TO_DATE',31,'Syntax:\nSTR_TO_DATE(str,format)\n\nThis is the inverse of the DATE_FORMAT() function. It takes a string\nstr and a format string format. STR_TO_DATE() returns a DATETIME value\nif the format string contains both date and time parts, or a DATE or\nTIME value if the string contains only date or time parts. If the date,\ntime, or datetime value extracted from str is illegal, STR_TO_DATE()\nreturns NULL and produces a warning.\n\nThe server scans str attempting to match format to it. The format\nstring can contain literal characters and format specifiers beginning\nwith %. Literal characters in format must match literally in str.\nFormat specifiers in format must match a date or time part in str. For\nthe specifiers that can be used in format, see the DATE_FORMAT()\nfunction description.\n\nMariaDB> SELECT STR_TO_DATE(\'01,5,2013\',\'%d,%m,%Y\');\n        -> \'2013-05-01\'\nMariaDB> SELECT STR_TO_DATE(\'May 1, 2013\',\'%M %d,%Y\');\n        -> \'2013-05-01\'\n\nScanning starts at the beginning of str and fails if format is found\nnot to match. Extra characters at the end of str are ignored.\n\nMariaDB> SELECT STR_TO_DATE(\'a09:30:17\',\'a%h:%i:%s\');\n        -> \'09:30:17\'\nMariaDB> SELECT STR_TO_DATE(\'a09:30:17\',\'%h:%i:%s\');\n        -> NULL\nMariaDB> SELECT STR_TO_DATE(\'09:30:17a\',\'%h:%i:%s\');\n        -> \'09:30:17\'\n\nUnspecified date or time parts have a value of 0, so incompletely\nspecified values in str produce a result with some or all parts set to\n0:\n\nMariaDB> SELECT STR_TO_DATE(\'abc\',\'abc\');\n        -> \'0000-00-00\'\nMariaDB> SELECT STR_TO_DATE(\'9\',\'%m\');\n        -> \'0000-09-00\'\nMariaDB> SELECT STR_TO_DATE(\'9\',\'%s\');\n        -> \'00:00:09\'\n\nURL: https://mariadb.com/kb/en/str_to_date/\n\n','','https://mariadb.com/kb/en/str_to_date/'),(400,'Y',11,'Y(p)\n\nReturns the Y-coordinate value for the Point object p as a\ndouble-precision number.\n\nURL: https://mariadb.com/kb/en/y/\n\n','MariaDB> SELECT Y(POINT(56.7, 53.34));\n+-----------------------+\n| Y(POINT(56.7, 53.34)) |\n+-----------------------+\n|                 53.34 |\n+-----------------------+\n','https://mariadb.com/kb/en/y/'),(401,'CHECKSUM TABLE',20,'Syntax:\nCHECKSUM TABLE tbl_name [, tbl_name] ... [ QUICK | EXTENDED ]\n\nCHECKSUM TABLE reports a table checksum. This statement requires the\nSELECT privilege for the table.\n\nWith QUICK, the live table checksum is reported if it is available, or\nNULL otherwise. This is very fast. A live checksum is enabled by\nspecifying the CHECKSUM=1 table option when you create the table;\ncurrently, this is supported only for MyISAM tables. See [HELP CREATE\nTABLE].\n\nWith EXTENDED, the entire table is read row by row and the checksum is\ncalculated. This can be very slow for large tables.\n\nIf neither QUICK nor EXTENDED is specified, MySQL returns a live\nchecksum if the table storage engine supports it and scans the table\notherwise.\n\nFor a nonexistent table, CHECKSUM TABLE returns NULL and generates a\nwarning.\n\nIn MySQL 5.5, CHECKSUM TABLE returns 0 for partitioned tables unless\nyou include the EXTENDED option. This issue is resolved in MySQL 5.6.\n(Bug #11933226, Bug #60681)\n\nThe checksum value depends on the table row format. If the row format\nchanges, the checksum also changes. For example, the storage format for\nVARCHAR changed between MySQL 4.1 and 5.0, so if a 4.1 table is\nupgraded to MySQL 5.0, the checksum value may change.\n\nURL: https://mariadb.com/kb/en/checksum-table/\n\n','','https://mariadb.com/kb/en/checksum-table/'),(402,'NUMINTERIORRINGS',2,'NumInteriorRings(poly)\n\nReturns the number of interior rings in the Polygon value poly.\n\nURL: https://mariadb.com/kb/en/numinteriorrings/\n\n','MariaDB> SET @poly =\n    -> \'Polygon((0 0,0 3,3 3,3 0,0 0),(1 1,1 2,2 2,2 1,1 1))\';\nMariaDB> SELECT NumInteriorRings(GeomFromText(@poly));\n+---------------------------------------+\n| NumInteriorRings(GeomFromText(@poly)) |\n+---------------------------------------+\n|                                     1 |\n+---------------------------------------+\n','https://mariadb.com/kb/en/numinteriorrings/'),(403,'INTERIORRINGN',2,'InteriorRingN(poly,N)\n\nReturns the N-th interior ring for the Polygon value poly as a\nLineString. Rings are numbered beginning with 1.\n\nURL: https://mariadb.com/kb/en/interiorringn/\n\n','MariaDB> SET @poly =\n    -> \'Polygon((0 0,0 3,3 3,3 0,0 0),(1 1,1 2,2 2,2 1,1 1))\';\nMariaDB> SELECT AsText(InteriorRingN(GeomFromText(@poly),1));\n+----------------------------------------------+\n| AsText(InteriorRingN(GeomFromText(@poly),1)) |\n+----------------------------------------------+\n| LINESTRING(1 1,1 2,2 2,2 1,1 1)              |\n+----------------------------------------------+\n','https://mariadb.com/kb/en/interiorringn/'),(404,'UTC_TIME',31,'Syntax:\nUTC_TIME, UTC_TIME()\n\nReturns the current UTC time as a value in \'HH:MM:SS\' or HHMMSS.uuuuuu\nformat, depending on whether the function is used in a string or\nnumeric context.\n\nURL: https://mariadb.com/kb/en/utc_time/\n\n','MariaDB> SELECT UTC_TIME(), UTC_TIME() + 0;\n        -> \'18:07:53\', 180753.000000\n','https://mariadb.com/kb/en/utc_time/'),(405,'DROP FUNCTION',39,'The DROP FUNCTION statement is used to drop stored functions and\nuser-defined functions (UDFs):\n\no For information about dropping stored functions, see [HELP DROP\n  PROCEDURE].\n\no For information about dropping user-defined functions, see [HELP DROP\n  FUNCTION UDF].\n\nURL: https://mariadb.com/kb/en/drop-function/\n\n','','https://mariadb.com/kb/en/drop-function/'),(406,'ALTER EVENT',39,'Syntax:\nALTER\n    [DEFINER = { user | CURRENT_USER }]\n    EVENT event_name\n    [ON SCHEDULE schedule]\n    [ON COMPLETION [NOT] PRESERVE]\n    [RENAME TO new_event_name]\n    [ENABLE | DISABLE | DISABLE ON SLAVE]\n    [COMMENT \'comment\']\n    [DO event_body]\n\nThe ALTER EVENT statement changes one or more of the characteristics of\nan existing event without the need to drop and recreate it. The syntax\nfor each of the DEFINER, ON SCHEDULE, ON COMPLETION, COMMENT, ENABLE /\nDISABLE, and DO clauses is exactly the same as when used with CREATE\nEVENT. (See [HELP CREATE EVENT].)\n\nAny user can alter an event defined on a database for which that user\nhas the EVENT privilege. When a user executes a successful ALTER EVENT\nstatement, that user becomes the definer for the affected event.\n\nALTER EVENT works only with an existing event:\n\nMariaDB> ALTER EVENT no_such_event \n     >     ON SCHEDULE \n     >       EVERY \'2:3\' DAY_HOUR;\nERROR 1517 (HY000): Unknown event \'no_such_event\'\n\nURL: https://mariadb.com/kb/en/alter-event/\n\n','','https://mariadb.com/kb/en/alter-event/'),(407,'STDDEV',16,'Syntax:\nSTDDEV(expr)\n\nReturns the population standard deviation of expr. This function is\nprovided for compatibility with Oracle. The standard SQL function\nSTDDEV_POP() can be used instead.\n\nThis function returns NULL if there were no matching rows.\n\nURL: https://mariadb.com/kb/en/stddev/\n\n','','https://mariadb.com/kb/en/stddev/'),(408,'DATE_SUB',31,'Syntax:\nDATE_SUB(date,INTERVAL expr unit)\n\nSee the description for DATE_ADD().\n\nURL: https://mariadb.com/kb/en/date_sub/\n\n','','https://mariadb.com/kb/en/date_sub/'),(409,'PERIOD_ADD',31,'Syntax:\nPERIOD_ADD(P,N)\n\nAdds N months to period P (in the format YYMM or YYYYMM). Returns a\nvalue in the format YYYYMM. Note that the period argument P is not a\ndate value.\n\nURL: https://mariadb.com/kb/en/period_add/\n\n','MariaDB> SELECT PERIOD_ADD(200801,2);\n        -> 200803\n','https://mariadb.com/kb/en/period_add/'),(410,'|',19,'Syntax:\n|\n\nBitwise OR:\n\nURL: https://mariadb.com/kb/en/bitwise-or/\n\n','MariaDB> SELECT 29 | 15;\n        -> 31\n','https://mariadb.com/kb/en/bitwise-or/'),(411,'GEOMFROMTEXT',3,'GeomFromText(wkt[,srid]), GeometryFromText(wkt[,srid])\n\nConstructs a geometry value of any type using its WKT representation\nand SRID.\n\nURL: https://mariadb.com/kb/en/geomfromtext/\n\n','','https://mariadb.com/kb/en/geomfromtext/'),(412,'UUID_SHORT',14,'Syntax:\nUUID_SHORT()\n\nReturns a \"short\" universal identifier as a 64-bit unsigned integer\n(rather than a string-form 128-bit identifier as returned by the UUID()\nfunction).\n\nThe value of UUID_SHORT() is guaranteed to be unique if the following\nconditions hold:\n\no The server_id of the current host is unique among your set of master\n  and slave servers\n\no server_id is between 0 and 255\n\no You do not set back your system time for your server between mysqld\n  restarts\n\no You do not invoke UUID_SHORT() on average more than 16 million times\n  per second between mysqld restarts\n\nThe UUID_SHORT() return value is constructed this way:\n\n  (server_id & 255) << 56\n+ (server_startup_time_in_seconds << 24)\n+ incremented_variable++;\n\nURL: https://mariadb.com/kb/en/uuid_short/\n\n','MariaDB> SELECT UUID_SHORT();\n        -> 92395783831158784\n','https://mariadb.com/kb/en/uuid_short/'),(413,'RIGHT',37,'Syntax:\nRIGHT(str,len)\n\nReturns the rightmost len characters from the string str, or NULL if\nany argument is NULL.\n\nURL: https://mariadb.com/kb/en/right/\n\n','MariaDB> SELECT RIGHT(\'foobarbar\', 4);\n        -> \'rbar\'\n','https://mariadb.com/kb/en/right/'),(414,'DATEDIFF',31,'Syntax:\nDATEDIFF(expr1,expr2)\n\nDATEDIFF() returns expr1 - expr2 expressed as a value in days from one\ndate to the other. expr1 and expr2 are date or date-and-time\nexpressions. Only the date parts of the values are used in the\ncalculation.\n\nURL: https://mariadb.com/kb/en/datediff/\n\n','MariaDB> SELECT DATEDIFF(\'2007-12-31 23:59:59\',\'2007-12-30\');\n        -> 1\nMariaDB> SELECT DATEDIFF(\'2010-11-30 23:59:59\',\'2010-12-31\');\n        -> -31\n','https://mariadb.com/kb/en/datediff/'),(415,'DROP TABLESPACE',39,'Syntax:\nDROP TABLESPACE tablespace_name\n    ENGINE [=] engine_name\n\nThis statement is used with NDB cluster, which is not supported by MariaDB.\n\nURL: https://mariadb.com/kb/en/drop-tablespace/\n\n','','https://mariadb.com/kb/en/drop-tablespace/'),(416,'DROP PROCEDURE',39,'Syntax:\nDROP {PROCEDURE | FUNCTION} [IF EXISTS] sp_name\n\nThis statement is used to drop a stored procedure or function. That is,\nthe specified routine is removed from the server. You must have the\nALTER ROUTINE privilege for the routine. (If the\nautomatic_sp_privileges system variable is enabled, that privilege and\nEXECUTE are granted automatically to the routine creator when the\nroutine is created and dropped from the creator when the routine is\ndropped. See\nhttps://mariadb.com/kb/en/stored-routine-privileges/.\n)\n\nThe IF EXISTS clause is a MySQL extension. It prevents an error from\noccurring if the procedure or function does not exist. A warning is\nproduced that can be viewed with SHOW WARNINGS.\n\nURL: https://mariadb.com/kb/en/drop-procedure/\n\n','','https://mariadb.com/kb/en/drop-procedure/'),(417,'CHECK TABLE',20,'Syntax:\nCHECK TABLE tbl_name [, tbl_name] ... [option] ...\n\noption = {FOR UPGRADE | QUICK | FAST | MEDIUM | EXTENDED | CHANGED}\n\nCHECK TABLE checks a table or tables for errors. CHECK TABLE works for\nInnoDB, MyISAM, ARCHIVE, and CSV tables. For MyISAM tables, the key\nstatistics are updated as well.\n\nTo check a table, you must have some privilege for it.\n\nCHECK TABLE can also check views for problems, such as tables that are\nreferenced in the view definition that no longer exist.\n\nCHECK TABLE is supported for partitioned tables, and you can use ALTER\nTABLE ... CHECK PARTITION to check one or more partitions; for more\ninformation, see [HELP ALTER TABLE].\n\nURL: https://mariadb.com/kb/en/sql-commands-check-table/\n\n','','https://mariadb.com/kb/en/sql-commands-check-table/'),(418,'BIN',37,'Syntax:\nBIN(N)\n\nReturns a string representation of the binary value of N, where N is a\nlonglong (BIGINT) number. This is equivalent to CONV(N,10,2). Returns\nNULL if N is NULL.\n\nURL: https://mariadb.com/kb/en/bin/\n\n','MariaDB> SELECT BIN(12);\n        -> \'1100\'\n','https://mariadb.com/kb/en/bin/'),(419,'INSTALL PLUGIN',5,'Syntax:\nINSTALL PLUGIN plugin_name SONAME \'shared_library_name\'\n\nThis statement installs a server plugin. It requires the INSERT\nprivilege for the mysql.plugin table.\n\nplugin_name is the name of the plugin as defined in the plugin\ndescriptor structure contained in the library file (see\nhttp://dev.mysql.com/doc/refman/5.5/en/plugin-data-structures.html).\nPlugin names are not case sensitive. For maximal compatibility, plugin\nnames should be limited to ASCII letters, digits, and underscore\nbecause they are used in C source files, shell command lines, M4 and\nBourne shell scripts, and SQL environments.\n\nshared_library_name is the name of the shared library that contains the\nplugin code. The name includes the file name extension (for example,\nlibmyplugin.so, libmyplugin.dll, or libmyplugin.dylib).\n\nThe shared library must be located in the plugin directory (the\ndirectory named by the plugin_dir system variable). The library must be\nin the plugin directory itself, not in a subdirectory. By default,\nplugin_dir is the plugin directory under the directory named by the\npkglibdir configuration variable, but it can be changed by setting the\nvalue of plugin_dir at server startup. For example, set its value in a\nmy.cnf file:\n\n[mysqld]\nplugin_dir=/path/to/plugin/directory\n\nIf the value of plugin_dir is a relative path name, it is taken to be\nrelative to the MySQL base directory (the value of the basedir system\nvariable).\n\nINSTALL PLUGIN loads and initializes the plugin code to make the plugin\navailable for use. A plugin is initialized by executing its\ninitialization function, which handles any setup that the plugin must\nperform before it can be used. When the server shuts down, it executes\nthe deinitialization function for each plugin that is loaded so that\nthe plugin has a change to perform any final cleanup.\n\nINSTALL PLUGIN also registers the plugin by adding a line that\nindicates the plugin name and library file name to the mysql.plugin\ntable. At server startup, the server loads and initializes any plugin\nthat is listed in the mysql.plugin table. This means that a plugin is\ninstalled with INSTALL PLUGIN only once, not every time the server\nstarts. Plugin loading at startup does not occur if the server is\nstarted with the --skip-grant-tables option.\n\nA plugin library can contain multiple plugins. For each of them to be\ninstalled, use a separate INSTALL PLUGIN statement. Each statement\nnames a different plugin, but all of them specify the same library\nname.\n\nURL: https://mariadb.com/kb/en/install-plugin/\n\n','','https://mariadb.com/kb/en/install-plugin/'),(420,'DECLARE CURSOR',23,'Syntax:\nDECLARE cursor_name CURSOR FOR select_statement\n\nThis statement declares a cursor and associates it with a SELECT\nstatement that retrieves the rows to be traversed by the cursor. To\nfetch the rows later, use a FETCH statement. The number of columns\nretrieved by the SELECT statement must match the number of output\nvariables specified in the FETCH statement.\n\nThe SELECT statement cannot have an INTO clause.\n\nCursor declarations must appear before handler declarations and after\nvariable and condition declarations.\n\nA stored program may contain multiple cursor declarations, but each\ncursor declared in a given block must have a unique name. For an\nexample, see https://mariadb.com/kb/en/programmatic-and-compound-statements-cursors/.\n\nFor information available through SHOW statements, it is possible in\nmany cases to obtain equivalent information by using a cursor with an\nINFORMATION_SCHEMA table.\n\nURL: https://mariadb.com/kb/en/declare-cursor/\n\n','','https://mariadb.com/kb/en/declare-cursor/'),(421,'LOAD DATA',27,'Syntax:\nLOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE \'file_name\'\n    [REPLACE | IGNORE]\n    INTO TABLE tbl_name\n    [CHARACTER SET charset_name]\n    [{FIELDS | COLUMNS}\n        [TERMINATED BY \'string\']\n        [[OPTIONALLY] ENCLOSED BY \'char\']\n        [ESCAPED BY \'char\']\n    ]\n    [LINES\n        [STARTING BY \'string\']\n        [TERMINATED BY \'string\']\n    ]\n    [IGNORE number {LINES | ROWS}]\n    [(col_name_or_user_var,...)]\n    [SET col_name = expr,...]\n\nThe LOAD DATA INFILE statement reads rows from a text file into a table\nat a very high speed. The file name must be given as a literal string.\n\nLOAD DATA INFILE is the complement of SELECT ... INTO OUTFILE. (See\nhttps://mariadb.com/kb/en/select-into/.) To write data\nfrom a table to a file, use SELECT ... INTO OUTFILE. To read the file\nback into a table, use LOAD DATA INFILE. The syntax of the FIELDS and\nLINES clauses is the same for both statements. Both clauses are\noptional, but FIELDS must precede LINES if both are specified.\n\nFor more information about the efficiency of INSERT versus LOAD DATA\nINFILE and speeding up LOAD DATA INFILE, see\nhttp://dev.mysql.com/doc/refman/5.5/en/insert-speed.html.\n\nThe character set indicated by the character_set_database system\nvariable is used to interpret the information in the file. SET NAMES\nand the setting of character_set_client do not affect interpretation of\ninput. If the contents of the input file use a character set that\ndiffers from the default, it is usually preferable to specify the\ncharacter set of the file by using the CHARACTER SET clause. A\ncharacter set of binary specifies \"no conversion.\"\n\nLOAD DATA INFILE interprets all fields in the file as having the same\ncharacter set, regardless of the data types of the columns into which\nfield values are loaded. For proper interpretation of file contents,\nyou must ensure that it was written with the correct character set. For\nexample, if you write a data file with mysqldump -T or by issuing a\nSELECT ... INTO OUTFILE statement in mysql, be sure to use a\n--default-character-set option with mysqldump or mysql so that output\nis written in the character set to be used when the file is loaded with\nLOAD DATA INFILE.\n\n*Note*: It is not possible to load data files that use the ucs2, utf16,\nor utf32 character set.\n\nThe character_set_filesystem system variable controls the\ninterpretation of the file name.\n\nYou can also load data files by using the mysqlimport utility; it\noperates by sending a LOAD DATA INFILE statement to the server. The\n--local option causes mysqlimport to read data files from the client\nhost. You can specify the --compress option to get better performance\nover slow networks if the client and server support the compressed\nprotocol. See https://mariadb.com/kb/en/mysqlimport/.\n\nIf you use LOW_PRIORITY, execution of the LOAD DATA statement is\ndelayed until no other clients are reading from the table. This affects\nonly storage engines that use only table-level locking (such as MyISAM,\nMEMORY, and MERGE).\n\nIf you specify CONCURRENT with a MyISAM table that satisfies the\ncondition for concurrent inserts (that is, it contains no free blocks\nin the middle), other threads can retrieve data from the table while\nLOAD DATA is executing. Using this option affects the performance of\nLOAD DATA a bit, even if no other thread is using the table at the same\ntime.\n\nPrior to MySQL 5.5.1, CONCURRENT was not replicated when using\nstatement-based replication (see Bug #34628). However, it is replicated\nwhen using row-based replication, regardless of the version. See\nhttp://dev.mysql.com/doc/refman/5.5/en/replication-features-load-data.h\ntml, for more information.\n\nThe LOCAL keyword, if specified, is interpreted with respect to the\nclient end of the connection:\n\no If LOCAL is specified, the file is read by the client program on the\n  client host and sent to the server. The file can be given as a full\n  path name to specify its exact location. If given as a relative path\n  name, the name is interpreted relative to the directory in which the\n  client program was started.\n\n  When using LOCAL with LOAD DATA, a copy of the file is created in the\n  server\'s temporary directory. This is not the directory determined by\n  the value of tmpdir or slave_load_tmpdir, but rather the operating\n  system\'s temporary directory, and is not configurable in the MySQL\n  Server. (Typically the system temporary directory is /tmp on Linux\n  systems and C:\\WINDOWS\\TEMP on Windows.) Lack of sufficient space for\n  the copy in this directory can cause the LOAD DATA LOCAL statement to\n  fail.\n\no If LOCAL is not specified, the file must be located on the server\n  host and is read directly by the server. The server uses the\n  following rules to locate the file:\n\n  o If the file name is an absolute path name, the server uses it as\n    given.\n\n  o If the file name is a relative path name with one or more leading\n    components, the server searches for the file relative to the\n    server\'s data directory.\n\n  o If a file name with no leading components is given, the server\n    looks for the file in the database directory of the default\n    database.\n\nNote that, in the non-LOCAL case, these rules mean that a file named as\n./myfile.txt is read from the server\'s data directory, whereas the file\nnamed as myfile.txt is read from the database directory of the default\ndatabase. For example, if db1 is the default database, the following\nLOAD DATA statement reads the file data.txt from the database directory\nfor db1, even though the statement explicitly loads the file into a\ntable in the db2 database:\n\nLOAD DATA INFILE \'data.txt\' INTO TABLE db2.my_table;\n\nWindows path names are specified using forward slashes rather than\nbackslashes. If you do use backslashes, you must double them.\n\nFor security reasons, when reading text files located on the server,\nthe files must either reside in the database directory or be readable\nby all. Also, to use LOAD DATA INFILE on server files, you must have\nthe FILE privilege. See\nhttps://mariadb.com/kb/en/grant/. For\nnon-LOCAL load operations, if the secure_file_priv system variable is\nset to a nonempty directory name, the file to be loaded must be located\nin that directory.\n\nURL: https://mariadb.com/kb/en/load-data-infile/\n\n','','https://mariadb.com/kb/en/load-data-infile/'),(422,'MULTILINESTRING',24,'MultiLineString(ls1,ls2,...)\n\nConstructs a MultiLineString value using LineString or WKB LineString\narguments.\n\nURL: https://mariadb.com/kb/en/multilinestring/\n\n','','https://mariadb.com/kb/en/multilinestring/'),(423,'LOCALTIME',31,'Syntax:\nLOCALTIME, LOCALTIME()\n\nLOCALTIME and LOCALTIME() are synonyms for NOW().\n\nURL: https://mariadb.com/kb/en/localtime/\n\n','','https://mariadb.com/kb/en/localtime/'),(424,'SHOW RELAYLOG EVENTS',26,'Syntax:\nSHOW RELAYLOG EVENTS\n   [IN \'log_name\'] [FROM pos] [LIMIT [offset,] row_count]\n\nShows the events in the relay log of a replication slave. If you do not\nspecify \'log_name\', the first relay log is displayed. This statement\nhas no effect on the master.\n\nURL: https://mariadb.com/kb/en/show-relaylog-events/\n\n','','https://mariadb.com/kb/en/show-relaylog-events/'),(425,'MPOINTFROMTEXT',3,'MPointFromText(wkt[,srid]), MultiPointFromText(wkt[,srid])\n\nConstructs a MULTIPOINT value using its WKT representation and SRID.\n\nURL: https://mariadb.com/kb/en/mpointfromtext/\n\n','','https://mariadb.com/kb/en/mpointfromtext/'),(426,'BLOB',22,'BLOB[(M)]\n\nA BLOB column with a maximum length of 65,535 (216 - 1) bytes. Each\nBLOB value is stored using a 2-byte length prefix that indicates the\nnumber of bytes in the value.\n\nAn optional length M can be given for this type. If this is done, MySQL\ncreates the column as the smallest BLOB type large enough to hold\nvalues M bytes long.\n\nURL: https://mariadb.com/kb/en/blob/\n\n','','https://mariadb.com/kb/en/blob/'),(427,'SHA1',12,'Syntax:\nSHA1(str), SHA(str)\n\nCalculates an SHA-1 160-bit checksum for the string, as described in\nRFC 3174 (Secure Hash Algorithm). The value is returned as a string of\n40 hex digits, or NULL if the argument was NULL. One of the possible\nuses for this function is as a hash key. See the notes at the beginning\nof this section about storing hash values efficiently. You can also use\nSHA1() as a cryptographic function for storing passwords. SHA() is\nsynonymous with SHA1().\n\nAs of MySQL 5.5.3, the return value is a nonbinary string in the\nconnection character set. Before 5.5.3, the return value is a binary\nstring; see the notes at the beginning of this section about using the\nvalue as a nonbinary string.\n\nURL: https://mariadb.com/kb/en/sha1/\n\n','MariaDB> SELECT SHA1(\'abc\');\n        -> \'a9993e364706816aba3e25717850c26c9cd0d89d\'\n','https://mariadb.com/kb/en/sha1/'),(428,'SUBSTR',37,'Syntax:\nSUBSTR(str,pos), SUBSTR(str FROM pos), SUBSTR(str,pos,len), SUBSTR(str\nFROM pos FOR len)\n\nSUBSTR() is a synonym for SUBSTRING().\n\nURL: https://mariadb.com/kb/en/substr/\n\n','','https://mariadb.com/kb/en/substr/'),(429,'PASSWORD',12,'Syntax:\nPASSWORD(str)\n\nCalculates and returns a hashed password string from the plaintext\npassword str and returns a nonbinary string in the connection character\nset (a binary string before MySQL 5.5.3), or NULL if the argument is\nNULL. This function is the SQL interface to the algorithm used by the\nserver to encrypt MySQL passwords for storage in the mysql.user grant\ntable.\n\nThe password hashing method used by PASSWORD() depends on the value of\nthe old_passwords system variable:\n\nURL: https://mariadb.com/kb/en/password/\n\n','MariaDB> SET old_passwords = 0;\nMariaDB> SELECT PASSWORD(\'mypass\');\n+-------------------------------------------+\n| PASSWORD(\'mypass\')                        |\n+-------------------------------------------+\n| *6C8989366EAF75BB670AD8EA7A7FC1176A95CEF4 |\n+-------------------------------------------+\n\nMariaDB> SET old_passwords = 1;\nMariaDB> SELECT PASSWORD(\'mypass\');\n+--------------------+\n| PASSWORD(\'mypass\') |\n+--------------------+\n| 6f8c114b58f2ce9e   |\n+--------------------+\n','https://mariadb.com/kb/en/password/'),(430,'CHAR',22,'[NATIONAL] CHAR[(M)] [CHARACTER SET charset_name] [COLLATE\ncollation_name]\n\nA fixed-length string that is always right-padded with spaces to the\nspecified length when stored. M represents the column length in\ncharacters. The range of M is 0 to 255. If M is omitted, the length is\n1.\n\n*Note*: Trailing spaces are removed when CHAR values are retrieved\nunless the PAD_CHAR_TO_FULL_LENGTH SQL mode is enabled.\n\nURL: https://mariadb.com/kb/en/char/\n\n','','https://mariadb.com/kb/en/char/'),(431,'UTC_DATE',31,'Syntax:\nUTC_DATE, UTC_DATE()\n\nReturns the current UTC date as a value in \'YYYY-MM-DD\' or YYYYMMDD\nformat, depending on whether the function is used in a string or\nnumeric context.\n\nURL: https://mariadb.com/kb/en/utc_date/\n\n','MariaDB> SELECT UTC_DATE(), UTC_DATE() + 0;\n        -> \'2003-08-14\', 20030814\n','https://mariadb.com/kb/en/utc_date/'),(432,'DIMENSION',36,'Dimension(g)\n\nReturns the inherent dimension of the geometry value g. The result can\nbe -1, 0, 1, or 2. The meaning of these values is given in\nhttps://mariadb.com/kb/en/dimension/.\n\nURL: https://mariadb.com/kb/en/dimension/\n\n','MariaDB> SELECT Dimension(GeomFromText(\'LineString(1 1,2 2)\'));\n+------------------------------------------------+\n| Dimension(GeomFromText(\'LineString(1 1,2 2)\')) |\n+------------------------------------------------+\n|                                              1 |\n+------------------------------------------------+\n','https://mariadb.com/kb/en/dimension/'),(433,'COUNT DISTINCT',16,'Syntax:\nCOUNT(DISTINCT expr,[expr...])\n\nReturns a count of the number of rows with different non-NULL expr\nvalues.\n\nCOUNT(DISTINCT) returns 0 if there were no matching rows.\n\nURL: https://mariadb.com/kb/en/count-distinct/\n\n','MariaDB> SELECT COUNT(DISTINCT results) FROM student;\n','https://mariadb.com/kb/en/count-distinct/'),(434,'BIT',22,'BIT[(M)]\n\nA bit-field type. M indicates the number of bits per value, from 1 to\n64. The default is 1 if M is omitted.\n\nURL: https://mariadb.com/kb/en/bit/\n\n','','https://mariadb.com/kb/en/bit/'),(435,'EQUALS',30,'Equals(g1,g2)\n\nReturns 1 or 0 to indicate whether g1 is spatially equal to g2.\n\nURL: https://mariadb.com/kb/en/equals/\n\n','','https://mariadb.com/kb/en/equals/'),(436,'SHOW CREATE VIEW',26,'Syntax:\nSHOW CREATE VIEW view_name\n\nThis statement shows a CREATE VIEW statement that creates the given\nview.\n\nURL: https://mariadb.com/kb/en/show-create-view/\n\n','','https://mariadb.com/kb/en/show-create-view/'),(437,'INTERVAL',18,'Syntax:\nINTERVAL(N,N1,N2,N3,...)\n\nReturns 0 if N < N1, 1 if N < N2 and so on or -1 if N is NULL. All\narguments are treated as integers. It is required that N1 < N2 < N3 <\n... < Nn for this function to work correctly. This is because a binary\nsearch is used (very fast).\n\nURL: https://mariadb.com/kb/en/interval/\n\n','MariaDB> SELECT INTERVAL(23, 1, 15, 17, 30, 44, 200);\n        -> 3\nMariaDB> SELECT INTERVAL(10, 1, 10, 100, 1000);\n        -> 2\nMariaDB> SELECT INTERVAL(22, 23, 30, 44, 200);\n        -> 0\n','https://mariadb.com/kb/en/interval/'),(438,'FROM_DAYS',31,'Syntax:\nFROM_DAYS(N)\n\nGiven a day number N, returns a DATE value.\n\nURL: https://mariadb.com/kb/en/from_days/\n\n','MariaDB> SELECT FROM_DAYS(730669);\n        -> \'2007-07-03\'\n','https://mariadb.com/kb/en/from_days/'),(439,'ALTER PROCEDURE',39,'Syntax:\nALTER PROCEDURE proc_name [characteristic ...]\n\ncharacteristic:\n    COMMENT \'string\'\n  | LANGUAGE SQL\n  | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }\n  | SQL SECURITY { DEFINER | INVOKER }\n\nThis statement can be used to change the characteristics of a stored\nprocedure. More than one change may be specified in an ALTER PROCEDURE\nstatement. However, you cannot change the parameters or body of a\nstored procedure using this statement; to make such changes, you must\ndrop and re-create the procedure using DROP PROCEDURE and CREATE\nPROCEDURE.\n\nYou must have the ALTER ROUTINE privilege for the procedure. By\ndefault, that privilege is granted automatically to the procedure\ncreator. This behavior can be changed by disabling the\nautomatic_sp_privileges system variable. See\nhttps://mariadb.com/kb/en/stored-routine-privileges/.\n\nURL: https://mariadb.com/kb/en/alter-procedure/\n\n','','https://mariadb.com/kb/en/alter-procedure/'),(440,'BIT_COUNT',19,'Syntax:\nBIT_COUNT(N)\n\nReturns the number of bits that are set in the argument N.\n\nURL: https://mariadb.com/kb/en/bit_count/\n\n','MariaDB> SELECT BIT_COUNT(29), BIT_COUNT(b\'101010\');\n        -> 4, 3\n','https://mariadb.com/kb/en/bit_count/'),(441,'OCTET_LENGTH',37,'Syntax:\nOCTET_LENGTH(str)\n\nOCTET_LENGTH() is a synonym for LENGTH().\n\nURL: https://mariadb.com/kb/en/octet_length/\n\n','','https://mariadb.com/kb/en/octet_length/'),(442,'UTC_TIMESTAMP',31,'Syntax:\nUTC_TIMESTAMP, UTC_TIMESTAMP()\n\nReturns the current UTC date and time as a value in \'YYYY-MM-DD\nHH:MM:SS\' or YYYYMMDDHHMMSS.uuuuuu format, depending on whether the\nfunction is used in a string or numeric context.\n\nURL: https://mariadb.com/kb/en/utc_timestamp/\n\n','MariaDB> SELECT UTC_TIMESTAMP(), UTC_TIMESTAMP() + 0;\n        -> \'2003-08-14 18:08:04\', 20030814180804.000000\n','https://mariadb.com/kb/en/utc_timestamp/'),(443,'AES_ENCRYPT',12,'Syntax:\nAES_ENCRYPT(str,key_str)\n\nAES_ENCRYPT() and AES_DECRYPT() enable encryption and decryption of\ndata using the official AES (Advanced Encryption Standard) algorithm,\npreviously known as \"Rijndael.\" Encoding with a 128-bit key length is\nused, but you can extend it up to 256 bits by modifying the source. We\nchose 128 bits because it is much faster and it is secure enough for\nmost purposes.\n\nAES_ENCRYPT() encrypts a string and returns a binary string.\nAES_DECRYPT() decrypts the encrypted string and returns the original\nstring. The input arguments may be any length. If either argument is\nNULL, the result of this function is also NULL.\n\nBecause AES is a block-level algorithm, padding is used to encode\nuneven length strings and so the result string length may be calculated\nusing this formula:\n\n16 * (trunc(string_length / 16) + 1)\n\nIf AES_DECRYPT() detects invalid data or incorrect padding, it returns\nNULL. However, it is possible for AES_DECRYPT() to return a non-NULL\nvalue (possibly garbage) if the input data or the key is invalid.\n\nYou can use the AES functions to store data in an encrypted form by\nmodifying your queries:\n\nURL: https://mariadb.com/kb/en/aes_encrypt/\n\n','INSERT INTO t VALUES (1,AES_ENCRYPT(\'text\',\'password\'));\n','https://mariadb.com/kb/en/aes_encrypt/'),(444,'+',4,'Syntax:\n+\n\nAddition:\n\nURL: https://mariadb.com/kb/en/addition-operator/\n\n','MariaDB> SELECT 3+5;\n        -> 8\n','https://mariadb.com/kb/en/addition-operator/'),(445,'INET_NTOA',14,'Syntax:\nINET_NTOA(expr)\n\nGiven a numeric IPv4 network address in network byte order, returns the\ndotted-quad representation of the address as a string. INET_NTOA()\nreturns NULL if it does not understand its argument.\n\nAs of MySQL 5.5.3, the return value is a nonbinary string in the\nconnection character set. Before 5.5.3, the return value is a binary\nstring.\n\nURL: https://mariadb.com/kb/en/inet_ntoa/\n\n','MariaDB> SELECT INET_NTOA(167773449);\n        -> \'10.0.5.9\'\n','https://mariadb.com/kb/en/inet_ntoa/'),(446,'ACOS',4,'Syntax:\nACOS(X)\n\nReturns the arc cosine of X, that is, the value whose cosine is X.\nReturns NULL if X is not in the range -1 to 1.\n\nURL: https://mariadb.com/kb/en/acos/\n\n','MariaDB> SELECT ACOS(1);\n        -> 0\nMariaDB> SELECT ACOS(1.0001);\n        -> NULL\nMariaDB> SELECT ACOS(0);\n        -> 1.5707963267949\n','https://mariadb.com/kb/en/acos/'),(447,'ISOLATION',8,'Syntax:\nSET [GLOBAL | SESSION] TRANSACTION ISOLATION LEVEL\n  {\n       REPEATABLE READ\n     | READ COMMITTED\n     | READ UNCOMMITTED\n     | SERIALIZABLE\n   }\n\nThis statement sets the transaction isolation level, used for\noperations on InnoDB tables.\n\nScope of the Isolation Level\n\nYou can set the isolation level globally, for the current session, or\nfor the next transaction:\n\no With the GLOBAL keyword, the statement sets the default transaction\n  level globally for all subsequent sessions. Existing sessions are\n  unaffected.\n\no With the SESSION keyword, the statement sets the default transaction\n  level for all subsequent transactions performed within the current\n  session.\n\no Without any SESSION or GLOBAL keyword, the statement sets the\n  isolation level for the next (not started) transaction performed\n  within the current session.\n\nA change to the global default isolation level requires the SUPER\nprivilege. Any session is free to change its session isolation level\n(even in the middle of a transaction), or the isolation level for its\nnext transaction.\n\nSET TRANSACTION ISOLATION LEVEL without GLOBAL or SESSION is not\npermitted while there is an active transaction:\n\nMariaDB> START TRANSACTION;\nQuery OK, 0 rows affected (0.02 sec)\n\nMariaDB> SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;\nERROR 1568 (25001): Transaction isolation level can\'t be changed\nwhile a transaction is in progress\n\nTo set the global default isolation level at server startup, use the\n--transaction-isolation=level option to mysqld on the command line or\nin an option file. Values of level for this option use dashes rather\nthan spaces, so the permissible values are READ-UNCOMMITTED,\nREAD-COMMITTED, REPEATABLE-READ, or SERIALIZABLE. For example, to set\nthe default isolation level to REPEATABLE READ, use these lines in the\n[mysqld] section of an option file:\n\n[mysqld]\ntransaction-isolation = REPEATABLE-READ\n\nIt is possible to check or set the global and session transaction\nisolation levels at runtime by using the tx_isolation system variable:\n\nSELECT @@GLOBAL.tx_isolation, @@tx_isolation;\nSET GLOBAL tx_isolation=\'REPEATABLE-READ\';\nSET SESSION tx_isolation=\'SERIALIZABLE\';\n\nDetails and Usage of Isolation Levels\n\nInnoDB supports each of the transaction isolation levels described here\nusing different locking strategies. You can enforce a high degree of\nconsistency with the default REPEATABLE READ level, for operations on\ncrucial data where ACID compliance is important. Or you can relax the\nconsistency rules with READ COMMITTED or even READ UNCOMMITTED, in\nsituations such as bulk reporting where precise consistency and\nrepeatable results are less important than minimizing the amount of\noverhead for locking. SERIALIZABLE enforces even stricter rules than\nREPEATABLE READ, and is used mainly in specialized situations, such as\nwith XA transactions and for troubleshooting issues with concurrency\nand deadlocks.\n\nFor full information about how these isolation levels work with InnoDB\ntransactions, see\nhttp://dev.mysql.com/doc/refman/5.1/en/innodb-transaction-model.html.\nIn particular, for additional information about InnoDB record-level\nlocks and how it uses them to execute various types of statements, see\nhttp://dev.mysql.com/doc/refman/5.5/en/innodb-record-level-locks.html\nand http://dev.mysql.com/doc/refman/5.5/en/innodb-locks-set.html.\n\nThe following list describes how MySQL supports the different\ntransaction levels. The list goes from the most commonly used level to\nthe least used.\n\no REPEATABLE READ\n\n  This is the default isolation level for InnoDB. For consistent reads,\n  there is an important difference from the READ COMMITTED isolation\n  level: All consistent reads within the same transaction read the\n  snapshot established by the first read. This convention means that if\n  you issue several plain (nonlocking) SELECT statements within the\n  same transaction, these SELECT statements are consistent also with\n  respect to each other. See\n  http://dev.mysql.com/doc/refman/5.5/en/innodb-consistent-read.html.\n\n  For locking reads (SELECT with FOR UPDATE or LOCK IN SHARE MODE),\n  UPDATE, and DELETE statements, locking depends on whether the\n  statement uses a unique index with a unique search condition, or a\n  range-type search condition. For a unique index with a unique search\n  condition, InnoDB locks only the index record found, not the gap\n  before it. For other search conditions, InnoDB locks the index range\n  scanned, using gap locks or next-key (gap plus index-record) locks to\n  block insertions by other sessions into the gaps covered by the\n  range.\n\no READ COMMITTED\n\n  A somewhat Oracle-like isolation level with respect to consistent\n  (nonlocking) reads: Each consistent read, even within the same\n  transaction, sets and reads its own fresh snapshot. See\n  http://dev.mysql.com/doc/refman/5.5/en/innodb-consistent-read.html.\n\n  For locking reads (SELECT with FOR UPDATE or LOCK IN SHARE MODE),\n  InnoDB locks only index records, not the gaps before them, and thus\n  permits the free insertion of new records next to locked records. For\n  UPDATE and DELETE statements, locking depends on whether the\n  statement uses a unique index with a unique search condition (such as\n  WHERE id = 100), or a range-type search condition (such as WHERE id >\n  100). For a unique index with a unique search condition, InnoDB locks\n  only the index record found, not the gap before it. For range-type\n  searches, InnoDB locks the index range scanned, using gap locks or\n  next-key (gap plus index-record) locks to block insertions by other\n  sessions into the gaps covered by the range. This is necessary\n  because \"phantom rows\" must be blocked for MySQL replication and\n  recovery to work.\n\n  *Note*: In MySQL 5.5, if the READ COMMITTED isolation level is used\n  or the innodb_locks_unsafe_for_binlog system variable is enabled,\n  there is no InnoDB gap locking except for foreign-key constraint\n  checking and duplicate-key checking. Also, record locks for\n  nonmatching rows are released after MySQL has evaluated the WHERE\n  condition. If you use READ COMMITTED or enable\n  innodb_locks_unsafe_for_binlog, you must use row-based binary\n  logging.\n\no READ UNCOMMITTED\n\n  SELECT statements are performed in a nonlocking fashion, but a\n  possible earlier version of a row might be used. Thus, using this\n  isolation level, such reads are not consistent. This is also called a\n  \"dirty read.\" Otherwise, this isolation level works like READ\n  COMMITTED.\n\no SERIALIZABLE\n\n  This level is like REPEATABLE READ, but InnoDB implicitly converts\n  all plain SELECT statements to SELECT ... LOCK IN SHARE MODE if\n  autocommit is disabled. If autocommit is enabled, the SELECT is its\n  own transaction. It therefore is known to be read only and can be\n  serialized if performed as a consistent (nonlocking) read and need\n  not block for other transactions. (To force a plain SELECT to block\n  if other transactions have modified the selected rows, disable\n  autocommit.)\n\nURL: https://mariadb.com/kb/en/set-transaction-isolation-level/\n\n','','https://mariadb.com/kb/en/set-transaction-isolation-level/'),(448,'CEILING',4,'Syntax:\nCEILING(X)\n\nReturns the smallest integer value not less than X.\n\nURL: https://mariadb.com/kb/en/ceiling/\n\n','MariaDB> SELECT CEILING(1.23);\n        -> 2\nMariaDB> SELECT CEILING(-1.23);\n        -> -1\n','https://mariadb.com/kb/en/ceiling/'),(449,'SIN',4,'Syntax:\nSIN(X)\n\nReturns the sine of X, where X is given in radians.\n\nURL: https://mariadb.com/kb/en/sin/\n\n','MariaDB> SELECT SIN(PI());\n        -> 1.2246063538224e-16\nMariaDB> SELECT ROUND(SIN(PI()));\n        -> 0\n','https://mariadb.com/kb/en/sin/'),(450,'DAYOFWEEK',31,'Syntax:\nDAYOFWEEK(date)\n\nReturns the weekday index for date (1 = Sunday, 2 = Monday, ..., 7 =\nSaturday). These index values correspond to the ODBC standard.\n\nURL: https://mariadb.com/kb/en/dayofweek/\n\n','MariaDB> SELECT DAYOFWEEK(\'2007-02-03\');\n        -> 7\n','https://mariadb.com/kb/en/dayofweek/'),(451,'SHOW PROCESSLIST',26,'Syntax:\nSHOW [FULL] PROCESSLIST\n\nSHOW PROCESSLIST shows you which threads are running. You can also get\nthis information from the INFORMATION_SCHEMA PROCESSLIST table or the\nmysqladmin processlist command. If you have the PROCESS privilege, you\ncan see all threads. Otherwise, you can see only your own threads (that\nis, threads associated with the MySQL account that you are using). If\nyou do not use the FULL keyword, only the first 100 characters of each\nstatement are shown in the Info field.\n\nURL: https://mariadb.com/kb/en/show-processlist/\n\n','','https://mariadb.com/kb/en/show-processlist/'),(452,'LINEFROMWKB',32,'LineFromWKB(wkb[,srid]), LineStringFromWKB(wkb[,srid])\n\nConstructs a LINESTRING value using its WKB representation and SRID.\n\nURL: https://mariadb.com/kb/en/linefromwkb/\n\n','','https://mariadb.com/kb/en/linefromwkb/'),(453,'GEOMETRYTYPE',36,'GeometryType(g)\n\nReturns as a binary string the name of the geometry type of which the\ngeometry instance g is a member. The name corresponds to one of the\ninstantiable Geometry subclasses.\n\nURL: https://mariadb.com/kb/en/geometrytype/\n\n','MariaDB> SELECT GeometryType(GeomFromText(\'POINT(1 1)\'));\n+------------------------------------------+\n| GeometryType(GeomFromText(\'POINT(1 1)\')) |\n+------------------------------------------+\n| POINT                                    |\n+------------------------------------------+\n','https://mariadb.com/kb/en/geometrytype/'),(454,'CREATE VIEW',39,'Syntax:\nCREATE\n    [OR REPLACE]\n    [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]\n    [DEFINER = { user | CURRENT_USER }]\n    [SQL SECURITY { DEFINER | INVOKER }]\n    VIEW view_name [(column_list)]\n    AS select_statement\n    [WITH [CASCADED | LOCAL] CHECK OPTION]\n\nThe CREATE VIEW statement creates a new view, or replaces an existing\none if the OR REPLACE clause is given. If the view does not exist,\nCREATE OR REPLACE VIEW is the same as CREATE VIEW. If the view does\nexist, CREATE OR REPLACE VIEW is the same as ALTER VIEW.\n\nThe select_statement is a SELECT statement that provides the definition\nof the view. (When you select from the view, you select in effect using\nthe SELECT statement.) select_statement can select from base tables or\nother views.\n\nThe view definition is \"frozen\" at creation time, so changes to the\nunderlying tables afterward do not affect the view definition. For\nexample, if a view is defined as SELECT * on a table, new columns added\nto the table later do not become part of the view.\n\nThe ALGORITHM clause affects how MySQL processes the view. The DEFINER\nand SQL SECURITY clauses specify the security context to be used when\nchecking access privileges at view invocation time. The WITH CHECK\nOPTION clause can be given to constrain inserts or updates to rows in\ntables referenced by the view. These clauses are described later in\nthis section.\n\nThe CREATE VIEW statement requires the CREATE VIEW privilege for the\nview, and some privilege for each column selected by the SELECT\nstatement. For columns used elsewhere in the SELECT statement you must\nhave the SELECT privilege. If the OR REPLACE clause is present, you\nmust also have the DROP privilege for the view. CREATE VIEW might also\nrequire the SUPER privilege, depending on the DEFINER value, as\ndescribed later in this section.\n\nWhen a view is referenced, privilege checking occurs as described later\nin this section.\n\nA view belongs to a database. By default, a new view is created in the\ndefault database. To create the view explicitly in a given database,\nspecify the name as db_name.view_name when you create it:\n\nMariaDB> CREATE VIEW test.v AS SELECT * FROM t;\n\nWithin a database, base tables and views share the same namespace, so a\nbase table and a view cannot have the same name.\n\nColumns retrieved by the SELECT statement can be simple references to\ntable columns. They can also be expressions that use functions,\nconstant values, operators, and so forth.\n\nViews must have unique column names with no duplicates, just like base\ntables. By default, the names of the columns retrieved by the SELECT\nstatement are used for the view column names. To define explicit names\nfor the view columns, the optional column_list clause can be given as a\nlist of comma-separated identifiers. The number of names in column_list\nmust be the same as the number of columns retrieved by the SELECT\nstatement.\n\nUnqualified table or view names in the SELECT statement are interpreted\nwith respect to the default database. A view can refer to tables or\nviews in other databases by qualifying the table or view name with the\nproper database name.\n\nA view can be created from many kinds of SELECT statements. It can\nrefer to base tables or other views. It can use joins, UNION, and\nsubqueries. The SELECT need not even refer to any tables. The following\nexample defines a view that selects two columns from another table, as\nwell as an expression calculated from those columns:\n\nMariaDB> CREATE TABLE t (qty INT, price INT);\nMariaDB> INSERT INTO t VALUES(3, 50);\nMariaDB> CREATE VIEW v AS SELECT qty, price, qty*price AS value FROM t;\nMariaDB> SELECT * FROM v;\n+------+-------+-------+\n| qty  | price | value |\n+------+-------+-------+\n|    3 |    50 |   150 |\n+------+-------+-------+\n\nA view definition is subject to the following restrictions:\n\no The SELECT statement cannot contain a subquery in the FROM clause.\n\no The SELECT statement cannot refer to system or user variables.\n\no Within a stored program, the definition cannot refer to program\n  parameters or local variables.\n\no The SELECT statement cannot refer to prepared statement parameters.\n\no Any table or view referred to in the definition must exist. However,\n  after a view has been created, it is possible to drop a table or view\n  that the definition refers to. In this case, use of the view results\n  in an error. To check a view definition for problems of this kind,\n  use the CHECK TABLE statement.\n\no The definition cannot refer to a TEMPORARY table, and you cannot\n  create a TEMPORARY view.\n\no Any tables named in the view definition must exist at definition\n  time.\n\no You cannot associate a trigger with a view.\n\no Aliases for column names in the SELECT statement are checked against\n  the maximum column length of 64 characters (not the maximum alias\n  length of 256 characters).\n\nORDER BY is permitted in a view definition, but it is ignored if you\nselect from a view using a statement that has its own ORDER BY.\n\nFor other options or clauses in the definition, they are added to the\noptions or clauses of the statement that references the view, but the\neffect is undefined. For example, if a view definition includes a LIMIT\nclause, and you select from the view using a statement that has its own\nLIMIT clause, it is undefined which limit applies. This same principle\napplies to options such as ALL, DISTINCT, or SQL_SMALL_RESULT that\nfollow the SELECT keyword, and to clauses such as INTO, FOR UPDATE,\nLOCK IN SHARE MODE, and PROCEDURE.\n\nIf you create a view and then change the query processing environment\nby changing system variables, that may affect the results that you get\nfrom the view:\n\nMariaDB> CREATE VIEW v (mycol) AS SELECT \'abc\';\nQuery OK, 0 rows affected (0.01 sec)\n\nMariaDB> SET sql_mode = \'\';\nQuery OK, 0 rows affected (0.00 sec)\n\nMariaDB> SELECT \"mycol\" FROM v;\n+-------+\n| mycol |\n+-------+\n| mycol |\n+-------+\n1 row in set (0.01 sec)\n\nMariaDB> SET sql_mode = \'ANSI_QUOTES\';\nQuery OK, 0 rows affected (0.00 sec)\n\nMariaDB> SELECT \"mycol\" FROM v;\n+-------+\n| mycol |\n+-------+\n| abc   |\n+-------+\n1 row in set (0.00 sec)\n\nThe DEFINER and SQL SECURITY clauses determine which MySQL account to\nuse when checking access privileges for the view when a statement is\nexecuted that references the view. The valid SQL SECURITY\ncharacteristic values are DEFINER and INVOKER. These indicate that the\nrequired privileges must be held by the user who defined or invoked the\nview, respectively. The default SQL SECURITY value is DEFINER.\n\nIf a user value is given for the DEFINER clause, it should be a MySQL\naccount specified as \'user_name\'@\'host_name\' (the same format used in\nthe GRANT statement), CURRENT_USER, or CURRENT_USER(). The default\nDEFINER value is the user who executes the CREATE VIEW statement. This\nis the same as specifying DEFINER = CURRENT_USER explicitly.\n\nIf you specify the DEFINER clause, these rules determine the valid\nDEFINER user values:\n\no If you do not have the SUPER privilege, the only valid user value is\n  your own account, either specified literally or by using\n  CURRENT_USER. You cannot set the definer to some other account.\n\no If you have the SUPER privilege, you can specify any syntactically\n  valid account name. If the account does not actually exist, a warning\n  is generated.\n\no Although it is possible to create a view with a nonexistent DEFINER\n  account, an error occurs when the view is referenced if the SQL\n  SECURITY value is DEFINER but the definer account does not exist.\n\nFor more information about view security, see\nhttps://mariadb.com/kb/en/stored-routine-privileges/.\n\nWithin a view definition, CURRENT_USER returns the view\'s DEFINER value\nby default. For views defined with the SQL SECURITY INVOKER\ncharacteristic, CURRENT_USER returns the account for the view\'s\ninvoker. For information about user auditing within views, see\nhttp://dev.mysql.com/doc/refman/5.5/en/account-activity-auditing.html.\n\nWithin a stored routine that is defined with the SQL SECURITY DEFINER\ncharacteristic, CURRENT_USER returns the routine\'s DEFINER value. This\nalso affects a view defined within such a routine, if the view\ndefinition contains a DEFINER value of CURRENT_USER.\n\nView privileges are checked like this:\n\no At view definition time, the view creator must have the privileges\n  needed to use the top-level objects accessed by the view. For\n  example, if the view definition refers to table columns, the creator\n  must have some privilege for each column in the select list of the\n  definition, and the SELECT privilege for each column used elsewhere\n  in the definition. If the definition refers to a stored function,\n  only the privileges needed to invoke the function can be checked. The\n  privileges required at function invocation time can be checked only\n  as it executes: For different invocations, different execution paths\n  within the function might be taken.\n\no The user who references a view must have appropriate privileges to\n  access it (SELECT to select from it, INSERT to insert into it, and so\n  forth.)\n\no When a view has been referenced, privileges for objects accessed by\n  the view are checked against the privileges held by the view DEFINER\n  account or invoker, depending on whether the SQL SECURITY\n  characteristic is DEFINER or INVOKER, respectively.\n\no If reference to a view causes execution of a stored function,\n  privilege checking for statements executed within the function depend\n  on whether the function SQL SECURITY characteristic is DEFINER or\n  INVOKER. If the security characteristic is DEFINER, the function runs\n  with the privileges of the DEFINER account. If the characteristic is\n  INVOKER, the function runs with the privileges determined by the\n  view\'s SQL SECURITY characteristic.\n\nExample: A view might depend on a stored function, and that function\nmight invoke other stored routines. For example, the following view\ninvokes a stored function f():\n\nCREATE VIEW v AS SELECT * FROM t WHERE t.id = f(t.name);\n\nSuppose that f() contains a statement such as this:\n\nIF name IS NULL then\n  CALL p1();\nELSE\n  CALL p2();\nEND IF;\n\nThe privileges required for executing statements within f() need to be\nchecked when f() executes. This might mean that privileges are needed\nfor p1() or p2(), depending on the execution path within f(). Those\nprivileges must be checked at runtime, and the user who must possess\nthe privileges is determined by the SQL SECURITY values of the view v\nand the function f().\n\nThe DEFINER and SQL SECURITY clauses for views are extensions to\nstandard SQL. In standard SQL, views are handled using the rules for\nSQL SECURITY DEFINER. The standard says that the definer of the view,\nwhich is the same as the owner of the view\'s schema, gets applicable\nprivileges on the view (for example, SELECT) and may grant them. MySQL\nhas no concept of a schema \"owner\", so MySQL adds a clause to identify\nthe definer. The DEFINER clause is an extension where the intent is to\nhave what the standard has; that is, a permanent record of who defined\nthe view. This is why the default DEFINER value is the account of the\nview creator.\n\nThe optional ALGORITHM clause is a MySQL extension to standard SQL. It\naffects how MySQL processes the view. ALGORITHM takes three values:\nMERGE, TEMPTABLE, or UNDEFINED. The default algorithm is UNDEFINED if\nno ALGORITHM clause is present. For more information, see\nhttps://mariadb.com/kb/en/view-algorithms/.\n\nSome views are updatable. That is, you can use them in statements such\nas UPDATE, DELETE, or INSERT to update the contents of the underlying\ntable. For a view to be updatable, there must be a one-to-one\nrelationship between the rows in the view and the rows in the\nunderlying table. There are also certain other constructs that make a\nview nonupdatable.\n\nThe WITH CHECK OPTION clause can be given for an updatable view to\nprevent inserts or updates to rows except those for which the WHERE\nclause in the select_statement is true.\n\nIn a WITH CHECK OPTION clause for an updatable view, the LOCAL and\nCASCADED keywords determine the scope of check testing when the view is\ndefined in terms of another view. The LOCAL keyword restricts the CHECK\nOPTION only to the view being defined. CASCADED causes the checks for\nunderlying views to be evaluated as well. When neither keyword is\ngiven, the default is CASCADED.\n\nFor more information about updatable views and the WITH CHECK OPTION\nclause, see\nhttps://mariadb.com/kb/en/inserting-and-updating-with-views/.\n\nURL: https://mariadb.com/kb/en/create-view/\n\n','','https://mariadb.com/kb/en/create-view/'),(455,'TRIM',37,'Syntax:\nTRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str), TRIM([remstr\nFROM] str)\n\nReturns the string str with all remstr prefixes or suffixes removed. If\nnone of the specifiers BOTH, LEADING, or TRAILING is given, BOTH is\nassumed. remstr is optional and, if not specified, spaces are removed.\n\nURL: https://mariadb.com/kb/en/trim/\n\n','MariaDB> SELECT TRIM(\'  bar   \');\n        -> \'bar\'\nMariaDB> SELECT TRIM(LEADING \'x\' FROM \'xxxbarxxx\');\n        -> \'barxxx\'\nMariaDB> SELECT TRIM(BOTH \'x\' FROM \'xxxbarxxx\');\n        -> \'bar\'\nMariaDB> SELECT TRIM(TRAILING \'xyz\' FROM \'barxxyz\');\n        -> \'barx\'\n','https://mariadb.com/kb/en/trim/'),(456,'IS',18,'Syntax:\nIS boolean_value\n\nTests a value against a boolean value, where boolean_value can be TRUE,\nFALSE, or UNKNOWN.\n\nURL: https://mariadb.com/kb/en/is/\n\n','MariaDB> SELECT 1 IS TRUE, 0 IS FALSE, NULL IS UNKNOWN;\n        -> 1, 1, 1\n','https://mariadb.com/kb/en/is/'),(457,'GET_FORMAT',31,'Syntax:\nGET_FORMAT({DATE|TIME|DATETIME}, {\'EUR\'|\'USA\'|\'JIS\'|\'ISO\'|\'INTERNAL\'})\n\nReturns a format string. This function is useful in combination with\nthe DATE_FORMAT() and the STR_TO_DATE() functions.\n\nURL: https://mariadb.com/kb/en/get_format/\n\n','MariaDB> SELECT DATE_FORMAT(\'2003-10-03\',GET_FORMAT(DATE,\'EUR\'));\n        -> \'03.10.2003\'\nMariaDB> SELECT STR_TO_DATE(\'10.31.2003\',GET_FORMAT(DATE,\'USA\'));\n        -> \'2003-10-31\'\n','https://mariadb.com/kb/en/get_format/'),(458,'TINYBLOB',22,'TINYBLOB\n\nA BLOB column with a maximum length of 255 (28 - 1) bytes. Each\nTINYBLOB value is stored using a 1-byte length prefix that indicates\nthe number of bytes in the value.\n\nURL: https://mariadb.com/kb/en/tinyblob/\n\n','','https://mariadb.com/kb/en/tinyblob/'),(459,'SIGNAL',23,'Syntax:\nSIGNAL condition_value\n    [SET signal_information_item\n    [, signal_information_item] ...]\n\ncondition_value:\n    SQLSTATE [VALUE] sqlstate_value\n  | condition_name\n\nsignal_information_item:\n    condition_information_item_name = simple_value_specification\n\ncondition_information_item_name:\n    CLASS_ORIGIN\n  | SUBCLASS_ORIGIN\n  | MESSAGE_TEXT\n  | MYSQL_ERRNO\n  | CONSTRAINT_CATALOG\n  | CONSTRAINT_SCHEMA\n  | CONSTRAINT_NAME\n  | CATALOG_NAME\n  | SCHEMA_NAME\n  | TABLE_NAME\n  | COLUMN_NAME\n  | CURSOR_NAME\n\ncondition_name, simple_value_specification:\n    (see following discussion)\n\nSIGNAL is the way to \"return\" an error. SIGNAL provides error\ninformation to a handler, to an outer portion of the application, or to\nthe client. Also, it provides control over the error\'s characteristics\n(error number, SQLSTATE value, message). Without SIGNAL, it is\nnecessary to resort to workarounds such as deliberately referring to a\nnonexistent table to cause a routine to return an error.\n\nNo special privileges are required to execute the SIGNAL statement.\n\nThe condition_value in a SIGNAL statement indicates the error value to\nbe returned. It can be an SQLSTATE value (a 5-character string literal)\nor a condition_name that refers to a named condition previously defined\nwith DECLARE ... CONDITION (see [HELP DECLARE CONDITION]).\n\nAn SQLSTATE value can indicate errors, warnings, or \"not found.\" The\nfirst two characters of the value indicate its error class, as\ndiscussed in\nhttps://mariadb.com/kb/en/signal/#signal-condition-inf\normation-items. Some signal values cause statement termination; see\nhttps://mariadb.com/kb/en/signal/#signal-effects.\n\nThe SQLSTATE value for a SIGNAL statement should not start with \'00\'\nbecause such values indicate success and are not valid for signaling an\nerror. This is true whether the SQLSTATE value is specified directly in\nthe SIGNAL statement or in a named condition referred to in the\nstatement. If the value is invalid, a Bad SQLSTATE error occurs.\n\nTo signal a generic SQLSTATE value, use \'45000\', which means \"unhandled\nuser-defined exception.\"\n\nThe SIGNAL statement optionally includes a SET clause that contains\nmultiple signal items, in a comma-separated list of\ncondition_information_item_name = simple_value_specification\nassignments.\n\nEach condition_information_item_name may be specified only once in the\nSET clause. Otherwise, a Duplicate condition information item error\noccurs.\n\nValid simple_value_specification designators can be specified using\nstored procedure or function parameters, stored program local variables\ndeclared with DECLARE, user-defined variables, system variables, or\nliterals. A character literal may include a _charset introducer.\n\nFor information about permissible condition_information_item_name\nvalues, see\nhttps://mariadb.com/kb/en/signal/#signal-condition-inf\normation-items.\n\nURL: https://mariadb.com/kb/en/signal/\n\n','CREATE PROCEDURE p (pval INT)\nBEGIN\n  DECLARE specialty CONDITION FOR SQLSTATE \'45000\';\n  IF pval = 0 THEN\n    SIGNAL SQLSTATE \'01000\';\n  ELSEIF pval = 1 THEN\n    SIGNAL SQLSTATE \'45000\'\n      SET MESSAGE_TEXT = \'An error occurred\';\n  ELSEIF pval = 2 THEN\n    SIGNAL specialty\n      SET MESSAGE_TEXT = \'An error occurred\';\n  ELSE\n    SIGNAL SQLSTATE \'01000\'\n      SET MESSAGE_TEXT = \'A warning occurred\', MYSQL_ERRNO = 1000;\n    SIGNAL SQLSTATE \'45000\'\n      SET MESSAGE_TEXT = \'An error occurred\', MYSQL_ERRNO = 1001;\n  END IF;\nEND;\n','https://mariadb.com/kb/en/signal/'),(460,'SAVEPOINT',8,'Syntax:\nSAVEPOINT identifier\nROLLBACK [WORK] TO [SAVEPOINT] identifier\nRELEASE SAVEPOINT identifier\n\nInnoDB supports the SQL statements SAVEPOINT, ROLLBACK TO SAVEPOINT,\nRELEASE SAVEPOINT and the optional WORK keyword for ROLLBACK.\n\nURL: https://mariadb.com/kb/en/savepoint/\n\n','','https://mariadb.com/kb/en/savepoint/'),(461,'USER',17,'Syntax:\nUSER()\n\nReturns the current MySQL user name and host name as a string in the\nutf8 character set.\n\nURL: https://mariadb.com/kb/en/user/\n\n','MariaDB> SELECT USER();\n        -> \'davida@localhost\'\n','https://mariadb.com/kb/en/user/'),(462,'LABELS',23,'Syntax:\n[begin_label:] BEGIN\n    [statement_list]\nEND [end_label]\n\n[begin_label:] LOOP\n    statement_list\nEND LOOP [end_label]\n\n[begin_label:] REPEAT\n    statement_list\nUNTIL search_condition\nEND REPEAT [end_label]\n\n[begin_label:] WHILE search_condition DO\n    statement_list\nEND WHILE [end_label]\n\nLabels are permitted for BEGIN ... END blocks and for the LOOP, REPEAT,\nand WHILE statements. Label use for those statements follows these\nrules:\n\no begin_label must be followed by a colon.\n\no begin_label can be given without end_label. If end_label is present,\n  it must be the same as begin_label.\n\no end_label cannot be given without begin_label.\n\no Labels at the same nesting level must be distinct.\n\no Labels can be up to 16 characters long.\n\nTo refer to a label within the labeled construct, use an ITERATE or\nLEAVE statement. The following example uses those statements to\ncontinue iterating or terminate the loop:\n\nCREATE PROCEDURE doiterate(p1 INT)\nBEGIN\n  label1: LOOP\n    SET p1 = p1 + 1;\n    IF p1 < 10 THEN ITERATE label1; END IF;\n    LEAVE label1;\n  END LOOP label1;\nEND;\n\nThe scope of a block label does not include the code for handlers\ndeclared within the block. For details, see [HELP DECLARE HANDLER].\n\nURL: https://mariadb.com/kb/en/labels/\n\n','','https://mariadb.com/kb/en/labels/'),(463,'ALTER TABLE',39,'Syntax:\nALTER [ONLINE | OFFLINE] [IGNORE] TABLE tbl_name\n    [alter_specification [, alter_specification] ...]\n    [partition_options]\n\nalter_specification:\n    table_options\n  | ADD [COLUMN] col_name column_definition\n        [FIRST | AFTER col_name ]\n  | ADD [COLUMN] (col_name column_definition,...)\n  | ADD {INDEX|KEY} [index_name]\n        [index_type] (index_col_name,...) [index_option] ...\n  | ADD [CONSTRAINT [symbol]] PRIMARY KEY\n        [index_type] (index_col_name,...) [index_option] ...\n  | ADD [CONSTRAINT [symbol]]\n        UNIQUE [INDEX|KEY] [index_name]\n        [index_type] (index_col_name,...) [index_option] ...\n  | ADD FULLTEXT [INDEX|KEY] [index_name]\n        (index_col_name,...) [index_option] ...\n  | ADD SPATIAL [INDEX|KEY] [index_name]\n        (index_col_name,...) [index_option] ...\n  | ADD [CONSTRAINT [symbol]]\n        FOREIGN KEY [index_name] (index_col_name,...)\n        reference_definition\n  | ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}\n  | CHANGE [COLUMN] old_col_name new_col_name column_definition\n        [FIRST|AFTER col_name]\n  | MODIFY [COLUMN] col_name column_definition\n        [FIRST | AFTER col_name]\n  | DROP [COLUMN] col_name\n  | DROP PRIMARY KEY\n  | DROP {INDEX|KEY} index_name\n  | DROP FOREIGN KEY fk_symbol\n  | MAX_ROWS = rows\n  | DISABLE KEYS\n  | ENABLE KEYS\n  | RENAME [TO|AS] new_tbl_name\n  | ORDER BY col_name [, col_name] ...\n  | CONVERT TO CHARACTER SET charset_name [COLLATE collation_name]\n  | [DEFAULT] CHARACTER SET [=] charset_name [COLLATE [=] collation_name]\n  | DISCARD TABLESPACE\n  | IMPORT TABLESPACE\n  | FORCE\n  | ADD PARTITION (partition_definition)\n  | DROP PARTITION partition_names\n  | TRUNCATE PARTITION {partition_names | ALL}\n  | COALESCE PARTITION number\n  | REORGANIZE PARTITION [partition_names INTO (partition_definitions)]\n  | ANALYZE PARTITION {partition_names | ALL}\n  | CHECK PARTITION {partition_names | ALL}\n  | OPTIMIZE PARTITION {partition_names | ALL}\n  | REBUILD PARTITION {partition_names | ALL}\n  | REPAIR PARTITION {partition_names | ALL}\n  | PARTITION BY partitioning_expression\n  | REMOVE PARTITIONING\n\nindex_col_name:\n    col_name [(length)] [ASC | DESC]\n\nindex_type:\n    USING {BTREE | HASH}\n\nindex_option:\n    KEY_BLOCK_SIZE [=] value\n  | index_type\n  | WITH PARSER parser_name\n  | COMMENT \'string\'\n\ntable_options:\n    table_option [[,] table_option] ...  (see CREATE TABLE options)\n\npartition_options:\n    (see CREATE TABLE options)\n\nALTER TABLE changes the structure of a table. For example, you can add\nor delete columns, create or destroy indexes, change the type of\nexisting columns, or rename columns or the table itself. You can also\nchange characteristics such as the storage engine used for the table or\nthe table comment.\n\nPartitioning-related clauses for ALTER TABLE can be used with\npartitioned tables for repartitioning, for adding, dropping, merging,\nand splitting partitions, and for performing partitioning maintenance.\nFor more information, see\nhttp://dev.mysql.com/doc/refman/5.5/en/alter-table-partition-operations\n.html.\n\nFollowing the table name, specify the alterations to be made. If none\nare given, ALTER TABLE does nothing.\n\nURL: https://mariadb.com/kb/en/alter-table/\n\n','','https://mariadb.com/kb/en/alter-table/'),(464,'MPOINTFROMWKB',32,'MPointFromWKB(wkb[,srid]), MultiPointFromWKB(wkb[,srid])\n\nConstructs a MULTIPOINT value using its WKB representation and SRID.\n\nURL: https://mariadb.com/kb/en/mpointfromwkb/\n\n','','https://mariadb.com/kb/en/mpointfromwkb/'),(465,'CHAR BYTE',22,'The CHAR BYTE data type is an alias for the BINARY data type. This is a\ncompatibility feature.\n\nURL: https://mariadb.com/kb/en/char-byte/\n\n','','https://mariadb.com/kb/en/char-byte/'),(466,'REPAIR TABLE',20,'Syntax:\nREPAIR [NO_WRITE_TO_BINLOG | LOCAL] TABLE\n    tbl_name [, tbl_name] ...\n    [QUICK] [EXTENDED] [USE_FRM]\n\nREPAIR TABLE repairs a possibly corrupted table. By default, it has the\nsame effect as myisamchk --recover tbl_name. REPAIR TABLE works for\nMyISAM, ARCHIVE, and CSV tables. See\nhttps://mariadb.com/kb/en/myisam-storage-engine/, and\nhttps://mariadb.com/kb/en/archive/, and\nhttps://mariadb.com/kb/en/csv/\n\nThis statement requires SELECT and INSERT privileges for the table.\n\nREPAIR TABLE is supported for partitioned tables. However, the USE_FRM\noption cannot be used with this statement on a partitioned table.\n\nYou can use ALTER TABLE ... REPAIR PARTITION to repair one or more\npartitions; for more information, see [HELP ALTER TABLE], and\nhttp://dev.mysql.com/doc/refman/5.5/en/partitioning-maintenance.html.\n\nURL: https://mariadb.com/kb/en/repair-table/\n\n','','https://mariadb.com/kb/en/repair-table/'),(467,'MERGE',39,'The MERGE storage engine, also known as the MRG_MyISAM engine, is a\ncollection of identical MyISAM tables that can be used as one.\n\"Identical\" means that all tables have identical column and index\ninformation. You cannot merge MyISAM tables in which the columns are\nlisted in a different order, do not have exactly the same columns, or\nhave the indexes in different order. However, any or all of the MyISAM\ntables can be compressed with myisampack. See\nhttps://mariadb.com/kb/en/myisampack/. Differences in\ntable options such as AVG_ROW_LENGTH, MAX_ROWS, or PACK_KEYS do not\nmatter.\n\nURL: https://mariadb.com/kb/en/merge/\n\n','MariaDB> CREATE TABLE t1 (\n    ->    a INT NOT NULL AUTO_INCREMENT PRIMARY KEY,\n    ->    message CHAR(20)) ENGINE=MyISAM;\nMariaDB> CREATE TABLE t2 (\n    ->    a INT NOT NULL AUTO_INCREMENT PRIMARY KEY,\n    ->    message CHAR(20)) ENGINE=MyISAM;\nMariaDB> INSERT INTO t1 (message) VALUES (\'Testing\'),(\'table\'),(\'t1\');\nMariaDB> INSERT INTO t2 (message) VALUES (\'Testing\'),(\'table\'),(\'t2\');\nMariaDB> CREATE TABLE total (\n    ->    a INT NOT NULL AUTO_INCREMENT,\n    ->    message CHAR(20), INDEX(a))\n    ->    ENGINE=MERGE UNION=(t1,t2) INSERT_METHOD=LAST;\n','https://mariadb.com/kb/en/merge/'),(468,'CREATE TABLE',39,'Syntax:\nCREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name\n    (create_definition,...)\n    [table_options]\n    [partition_options]\n\nOr:\n\nCREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name\n    [(create_definition,...)]\n    [table_options]\n    [partition_options]\n    select_statement\n\nOr:\n\nCREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name\n    { LIKE old_tbl_name | (LIKE old_tbl_name) }\n\ncreate_definition:\n    col_name column_definition\n  | [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...)\n      [index_option] ...\n  | {INDEX|KEY} [index_name] [index_type] (index_col_name,...)\n      [index_option] ...\n  | [CONSTRAINT [symbol]] UNIQUE [INDEX|KEY]\n      [index_name] [index_type] (index_col_name,...)\n      [index_option] ...\n  | {FULLTEXT|SPATIAL} [INDEX|KEY] [index_name] (index_col_name,...)\n      [index_option] ...\n  | [CONSTRAINT [symbol]] FOREIGN KEY\n      [index_name] (index_col_name,...) reference_definition\n  | CHECK (expr)\n\ncolumn_definition:\n    data_type [NOT NULL | NULL] [DEFAULT default_value]\n      [AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY]\n      [COMMENT \'string\']\n      [COLUMN_FORMAT {FIXED|DYNAMIC|DEFAULT}]\n      [STORAGE {DISK|MEMORY|DEFAULT}]\n      [reference_definition]\n\ndata_type:\n    BIT[(length)]\n  | TINYINT[(length)] [UNSIGNED] [ZEROFILL]\n  | SMALLINT[(length)] [UNSIGNED] [ZEROFILL]\n  | MEDIUMINT[(length)] [UNSIGNED] [ZEROFILL]\n  | INT[(length)] [UNSIGNED] [ZEROFILL]\n  | INTEGER[(length)] [UNSIGNED] [ZEROFILL]\n  | BIGINT[(length)] [UNSIGNED] [ZEROFILL]\n  | REAL[(length,decimals)] [UNSIGNED] [ZEROFILL]\n  | DOUBLE[(length,decimals)] [UNSIGNED] [ZEROFILL]\n  | FLOAT[(length,decimals)] [UNSIGNED] [ZEROFILL]\n  | DECIMAL[(length[,decimals])] [UNSIGNED] [ZEROFILL]\n  | NUMERIC[(length[,decimals])] [UNSIGNED] [ZEROFILL]\n  | DATE\n  | TIME\n  | TIMESTAMP\n  | DATETIME\n  | YEAR\n  | CHAR[(length)]\n      [CHARACTER SET charset_name] [COLLATE collation_name]\n  | VARCHAR(length)\n      [CHARACTER SET charset_name] [COLLATE collation_name]\n  | BINARY[(length)]\n  | VARBINARY(length)\n  | TINYBLOB\n  | BLOB\n  | MEDIUMBLOB\n  | LONGBLOB\n  | TINYTEXT [BINARY]\n      [CHARACTER SET charset_name] [COLLATE collation_name]\n  | TEXT [BINARY]\n      [CHARACTER SET charset_name] [COLLATE collation_name]\n  | MEDIUMTEXT [BINARY]\n      [CHARACTER SET charset_name] [COLLATE collation_name]\n  | LONGTEXT [BINARY]\n      [CHARACTER SET charset_name] [COLLATE collation_name]\n  | ENUM(value1,value2,value3,...)\n      [CHARACTER SET charset_name] [COLLATE collation_name]\n  | SET(value1,value2,value3,...)\n      [CHARACTER SET charset_name] [COLLATE collation_name]\n  | spatial_type\n\nindex_col_name:\n    col_name [(length)] [ASC | DESC]\n\nindex_type:\n    USING {BTREE | HASH}\n\nindex_option:\n    KEY_BLOCK_SIZE [=] value\n  | index_type\n  | WITH PARSER parser_name\n  | COMMENT \'string\'\n\nreference_definition:\n    REFERENCES tbl_name (index_col_name,...)\n      [MATCH FULL | MATCH PARTIAL | MATCH SIMPLE]\n      [ON DELETE reference_option]\n      [ON UPDATE reference_option]\n\nreference_option:\n    RESTRICT | CASCADE | SET NULL | NO ACTION\n\ntable_options:\n    table_option [[,] table_option] ...\n\ntable_option:\n    ENGINE [=] engine_name\n  | AUTO_INCREMENT [=] value\n  | AVG_ROW_LENGTH [=] value\n  | [DEFAULT] CHARACTER SET [=] charset_name\n  | CHECKSUM [=] {0 | 1}\n  | [DEFAULT] COLLATE [=] collation_name\n  | COMMENT [=] \'string\'\n  | CONNECTION [=] \'connect_string\'\n  | DATA DIRECTORY [=] \'absolute path to directory\'\n  | DELAY_KEY_WRITE [=] {0 | 1}\n  | INDEX DIRECTORY [=] \'absolute path to directory\'\n  | INSERT_METHOD [=] { NO | FIRST | LAST }\n  | KEY_BLOCK_SIZE [=] value\n  | MAX_ROWS [=] value\n  | MIN_ROWS [=] value\n  | PACK_KEYS [=] {0 | 1 | DEFAULT}\n  | PASSWORD [=] \'string\'\n  | ROW_FORMAT [=] {DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT}\n  | TABLESPACE tablespace_name [STORAGE {DISK|MEMORY|DEFAULT}]\n  | UNION [=] (tbl_name[,tbl_name]...)\n\npartition_options:\n    PARTITION BY\n        { [LINEAR] HASH(expr)\n        | [LINEAR] KEY(column_list)\n        | RANGE{(expr) | COLUMNS(column_list)}\n        | LIST{(expr) | COLUMNS(column_list)} }\n    [PARTITIONS num]\n    [SUBPARTITION BY\n        { [LINEAR] HASH(expr)\n        | [LINEAR] KEY(column_list) }\n      [SUBPARTITIONS num]\n    ]\n    [(partition_definition [, partition_definition] ...)]\n\npartition_definition:\n    PARTITION partition_name\n        [VALUES \n            {LESS THAN {(expr | value_list) | MAXVALUE} \n            | \n            IN (value_list)}]\n        [[STORAGE] ENGINE [=] engine_name]\n        [COMMENT [=] \'comment_text\' ]\n        [DATA DIRECTORY [=] \'data_dir\']\n        [INDEX DIRECTORY [=] \'index_dir\']\n        [MAX_ROWS [=] max_number_of_rows]\n        [MIN_ROWS [=] min_number_of_rows]\n        [TABLESPACE [=] tablespace_name]\n        [NODEGROUP [=] node_group_id]\n        [(subpartition_definition [, subpartition_definition] ...)]\n\nsubpartition_definition:\n    SUBPARTITION logical_name\n        [[STORAGE] ENGINE [=] engine_name]\n        [COMMENT [=] \'comment_text\' ]\n        [DATA DIRECTORY [=] \'data_dir\']\n        [INDEX DIRECTORY [=] \'index_dir\']\n        [MAX_ROWS [=] max_number_of_rows]\n        [MIN_ROWS [=] min_number_of_rows]\n        [TABLESPACE [=] tablespace_name]\n        [NODEGROUP [=] node_group_id]\n\nselect_statement:\n    [IGNORE | REPLACE] [AS] SELECT ...   (Some valid select statement)\n\nCREATE TABLE creates a table with the given name. You must have the\nCREATE privilege for the table.\n\nRules for permissible table names are given in\nhttps://mariadb.com/kb/en/identifier-names/. By default,\nthe table is created in the default database, using the InnoDB storage\nengine. An error occurs if the table exists, if there is no default\ndatabase, or if the database does not exist.\n\nURL: https://mariadb.com/kb/en/create-table/\n\n','','https://mariadb.com/kb/en/create-table/'),(469,'>',18,'Syntax:\n>\n\nGreater than:\n\nURL: https://mariadb.com/kb/en/greater-than/\n\n','MariaDB> SELECT 2 > 2;\n        -> 0\n','https://mariadb.com/kb/en/greater-than/'),(470,'ANALYZE TABLE',20,'Syntax:\nANALYZE [NO_WRITE_TO_BINLOG | LOCAL] TABLE\n    tbl_name [, tbl_name] ...\n\nANALYZE TABLE analyzes and stores the key distribution for a table.\nDuring the analysis, the table is locked with a read lock for InnoDB\nand MyISAM. This statement works with InnoDB, Aria and MyISAM tables.\nFor MyISAM tables, this statement is equivalent to using myisamchk\n--analyze.\n\nFor more information on how the analysis works within InnoDB, see\nhttp://dev.mysql.com/doc/refman/5.5/en/innodb-restrictions.html.\n\nMySQL uses the stored key distribution to decide the order in which\ntables should be joined when you perform a join on something other than\na constant. In addition, key distributions can be used when deciding\nwhich indexes to use for a specific table within a query.\n\nThis statement requires SELECT and INSERT privileges for the table.\n\nANALYZE TABLE is supported for partitioned tables, and you can use\nALTER TABLE ... ANALYZE PARTITION to analyze one or more partitions;\nfor more information, see [HELP ALTER TABLE], and\nhttp://dev.mysql.com/doc/refman/5.5/en/partitioning-maintenance.html.\n\nURL: https://mariadb.com/kb/en/analyze-table/\n\n','','https://mariadb.com/kb/en/analyze-table/'),(471,'MICROSECOND',31,'Syntax:\nMICROSECOND(expr)\n\nReturns the microseconds from the time or datetime expression expr as a\nnumber in the range from 0 to 999999.\n\nURL: https://mariadb.com/kb/en/microsecond/\n\n','MariaDB> SELECT MICROSECOND(\'12:00:00.123456\');\n        -> 123456\nMariaDB> SELECT MICROSECOND(\'2009-12-31 23:59:59.000010\');\n        -> 10\n','https://mariadb.com/kb/en/microsecond/'),(472,'CONSTRAINT',39,'InnoDB supports foreign keys, which let you cross-reference related\ndata across tables, and foreign key constraints, which help keep this\nspread-out data consistent. The syntax for an InnoDB foreign key\nconstraint definition in the CREATE TABLE or ALTER TABLE statement\nlooks like this:\n\n[CONSTRAINT [symbol]] FOREIGN KEY\n    [index_name] (index_col_name, ...)\n    REFERENCES tbl_name (index_col_name,...)\n    [ON DELETE reference_option]\n    [ON UPDATE reference_option]\n\nreference_option:\n    RESTRICT | CASCADE | SET NULL | NO ACTION\n\nURL: https://mariadb.com/kb/en/constraint/\n\n','CREATE TABLE product (category INT NOT NULL, id INT NOT NULL,\n                      price DECIMAL,\n                      PRIMARY KEY(category, id)) ENGINE=INNODB;\nCREATE TABLE customer (id INT NOT NULL,\n                       PRIMARY KEY (id)) ENGINE=INNODB;\nCREATE TABLE product_order (no INT NOT NULL AUTO_INCREMENT,\n                            product_category INT NOT NULL,\n                            product_id INT NOT NULL,\n                            customer_id INT NOT NULL,\n                            PRIMARY KEY(no),\n                            INDEX (product_category, product_id),\n                            FOREIGN KEY (product_category, product_id)\n                              REFERENCES product(category, id)\n                              ON UPDATE CASCADE ON DELETE RESTRICT,\n                            INDEX (customer_id),\n                            FOREIGN KEY (customer_id)\n                              REFERENCES customer(id)) ENGINE=INNODB;\n','https://mariadb.com/kb/en/constraint/'),(473,'CREATE SERVER',39,'Syntax:\nCREATE SERVER server_name\n    FOREIGN DATA WRAPPER wrapper_name\n    OPTIONS (option [, option] ...)\n\noption:\n  { HOST character-literal\n  | DATABASE character-literal\n  | USER character-literal\n  | PASSWORD character-literal\n  | SOCKET character-literal\n  | OWNER character-literal\n  | PORT numeric-literal }\n\nThis statement creates the definition of a server for use with the\nFEDERATED storage engine. The CREATE SERVER statement creates a new row\nwithin the servers table within the mysql database. This statement\nrequires the SUPER privilege.\n\nThe server_name should be a unique reference to the server. Server\ndefinitions are global within the scope of the server, it is not\npossible to qualify the server definition to a specific database.\nserver_name has a maximum length of 64 characters (names longer than 64\ncharacters are silently truncated), and is case insensitive. You may\nspecify the name as a quoted string.\n\nThe wrapper_name should be mysql, and may be quoted with single\nquotation marks. Other values for wrapper_name are not currently\nsupported.\n\nFor each option you must specify either a character literal or numeric\nliteral. Character literals are UTF-8, support a maximum length of 64\ncharacters and default to a blank (empty) string. String literals are\nsilently truncated to 64 characters. Numeric literals must be a number\nbetween 0 and 9999, default value is 0.\n\n*Note*: Note that the OWNER option is currently not applied, and has no\neffect on the ownership or operation of the server connection that is\ncreated.\n\nThe CREATE SERVER statement creates an entry in the mysql.servers table\nthat can later be used with the CREATE TABLE statement when creating a\nFEDERATED table. The options that you specify will be used to populate\nthe columns in the mysql.servers table. The table columns are\nServer_name, Host, Db, Username, Password, Port and Socket.\n\nURL: https://mariadb.com/kb/en/create-server/\n\n','CREATE SERVER s\nFOREIGN DATA WRAPPER mysql\nOPTIONS (USER \'Remote\', HOST \'192.168.1.106\', DATABASE \'test\');\n','https://mariadb.com/kb/en/create-server/'),(474,'FIELD',37,'Syntax:\nFIELD(str,str1,str2,str3,...)\n\nReturns the index (position) of str in the str1, str2, str3, ... list.\nReturns 0 if str is not found.\n\nIf all arguments to FIELD() are strings, all arguments are compared as\nstrings. If all arguments are numbers, they are compared as numbers.\nOtherwise, the arguments are compared as double.\n\nIf str is NULL, the return value is 0 because NULL fails equality\ncomparison with any value. FIELD() is the complement of ELT().\n\nURL: https://mariadb.com/kb/en/field/\n\n','MariaDB> SELECT FIELD(\'ej\', \'Hej\', \'ej\', \'Heja\', \'hej\', \'foo\');\n        -> 2\nMariaDB> SELECT FIELD(\'fo\', \'Hej\', \'ej\', \'Heja\', \'hej\', \'foo\');\n        -> 0\n','https://mariadb.com/kb/en/field/'),(475,'MAKETIME',31,'Syntax:\nMAKETIME(hour,minute,second)\n\nReturns a time value calculated from the hour, minute, and second\narguments.\n\nURL: https://mariadb.com/kb/en/maketime/\n\n','MariaDB> SELECT MAKETIME(12,15,30);\n        -> \'12:15:30\'\n','https://mariadb.com/kb/en/maketime/'),(476,'CURDATE',31,'Syntax:\nCURDATE()\n\nReturns the current date as a value in \'YYYY-MM-DD\' or YYYYMMDD format,\ndepending on whether the function is used in a string or numeric\ncontext.\n\nURL: https://mariadb.com/kb/en/curdate/\n\n','MariaDB> SELECT CURDATE();\n        -> \'2008-06-13\'\nMariaDB> SELECT CURDATE() + 0;\n        -> 20080613\n','https://mariadb.com/kb/en/curdate/'),(477,'SET PASSWORD',10,'Syntax:\nSET PASSWORD [FOR user] =\n    {\n        PASSWORD(\'cleartext password\')\n      | OLD_PASSWORD(\'cleartext password\')\n      | \'encrypted password\'\n    }\n\nThe SET PASSWORD statement assigns a password to an existing MySQL user\naccount. When the read_only system variable is enabled, the SUPER\nprivilege is required to use SET PASSWORD, in addition to whatever\nother privileges might be required.\n\nIf the password is specified using the PASSWORD() or OLD_PASSWORD()\nfunction, the cleartext (unencrypted) password should be given as the\nargument to the function, which hashes the password and returns the\nencrypted password string. If the password is specified without using\neither function, it should be the already encrypted password value as a\nliteral string. In all cases, the encrypted password string must be in\nthe format required by the authentication method used for the account.\n\nThe old_passwords system variable value determines the hashing method\nused by PASSWORD(). If you specify the password using that function and\nSET PASSWORD rejects the password as not being in the correct format,\nit may be necessary to set old_passwords to change the hashing method.\nFor descriptions of the permitted values, see\nhttps://mariadb.com/kb/en/server-system-variables#old_passwords.\n\nWith no FOR user clause, this statement sets the password for the\ncurrent user. (To see which account the server authenticated you as,\ninvoke the CURRENT_USER() function.) Any client who successfully\nconnects to the server using a nonanonymous account can change the\npassword for that account.\n\nWith a FOR user clause, this statement sets the password for the named\nuser. You must have the UPDATE privilege for the mysql database to do\nthis. The user account name uses the format described in\nhttps://mariadb.com/kb/en/create-user#account-names. The user\nvalue should be given as \'user_name\'@\'host_name\', where \'user_name\' and\n\'host_name\' are exactly as listed in the User and Host columns of the\nmysql.user table row. (If you specify only a user name, a host name of\n\'%\' is used.) For example, to set the password for an account with User\nand Host column values of \'bob\' and \'%.example.org\', write the\nstatement like this:\n\nSET PASSWORD FOR \'bob\'@\'%.example.org\' = PASSWORD(\'cleartext password\');\n\nURL: https://mariadb.com/kb/en/set-password/\n\n','','https://mariadb.com/kb/en/set-password/'),(478,'ALTER TABLESPACE',39,'Syntax:\nALTER TABLESPACE tablespace_name\n    {ADD|DROP} DATAFILE \'file_name\'\n    [INITIAL_SIZE [=] size]\n    [WAIT]\n    ENGINE [=] engine_name\n\nThis statement is used with NDB cluster, which is not supported by MariaDB.\n\nURL: https://mariadb.com/kb/en/alter-tablespace/\n\n','','https://mariadb.com/kb/en/alter-tablespace/'),(479,'IF FUNCTION',7,'Syntax:\nIF(expr1,expr2,expr3)\n\nIf expr1 is TRUE (expr1 <> 0 and expr1 <> NULL) then IF() returns\nexpr2; otherwise it returns expr3. IF() returns a numeric or string\nvalue, depending on the context in which it is used.\n\nURL: https://mariadb.com/kb/en/if-function/\n\n','MariaDB> SELECT IF(1>2,2,3);\n        -> 3\nMariaDB> SELECT IF(1<2,\'yes\',\'no\');\n        -> \'yes\'\nMariaDB> SELECT IF(STRCMP(\'test\',\'test1\'),\'no\',\'yes\');\n        -> \'no\'\n','https://mariadb.com/kb/en/if-function/'),(480,'ENUM',22,'ENUM(\'value1\',\'value2\',...) [CHARACTER SET charset_name] [COLLATE\ncollation_name]\n\nAn enumeration. A string object that can have only one value, chosen\nfrom the list of values \'value1\', \'value2\', ..., NULL or the special \'\'\nerror value. An ENUM column can have a maximum of 65,535 distinct\nvalues. ENUM values are represented internally as integers.\n\nURL: https://mariadb.com/kb/en/enum/\n\n','','https://mariadb.com/kb/en/enum/'),(481,'DATABASE',17,'Syntax:\nDATABASE()\n\nReturns the default (current) database name as a string in the utf8\ncharacter set. If there is no default database, DATABASE() returns\nNULL. Within a stored routine, the default database is the database\nthat the routine is associated with, which is not necessarily the same\nas the database that is the default in the calling context.\n\nURL: https://mariadb.com/kb/en/database/\n\n','MariaDB> SELECT DATABASE();\n        -> \'test\'\n','https://mariadb.com/kb/en/database/'),(482,'POINTFROMWKB',32,'PointFromWKB(wkb[,srid])\n\nConstructs a POINT value using its WKB representation and SRID.\n\nURL: https://mariadb.com/kb/en/pointfromwkb/\n\n','','https://mariadb.com/kb/en/pointfromwkb/'),(483,'POWER',4,'Syntax:\nPOWER(X,Y)\n\nThis is a synonym for POW().\n\nURL: https://mariadb.com/kb/en/power/\n\n','','https://mariadb.com/kb/en/power/'),(484,'ATAN',4,'Syntax:\nATAN(X)\n\nReturns the arc tangent of X, that is, the value whose tangent is X.\n\nURL: https://mariadb.com/kb/en/atan/\n\n','MariaDB> SELECT ATAN(2);\n        -> 1.1071487177941\nMariaDB> SELECT ATAN(-2);\n        -> -1.1071487177941\n','https://mariadb.com/kb/en/atan/'),(485,'STRCMP',37,'Syntax:\nSTRCMP(expr1,expr2)\n\nSTRCMP() returns 0 if the strings are the same, -1 if the first\nargument is smaller than the second according to the current sort\norder, and 1 otherwise.\n\nURL: https://mariadb.com/kb/en/strcmp/\n\n','MariaDB> SELECT STRCMP(\'text\', \'text2\');\n        -> -1\nMariaDB> SELECT STRCMP(\'text2\', \'text\');\n        -> 1\nMariaDB> SELECT STRCMP(\'text\', \'text\');\n        -> 0\n','https://mariadb.com/kb/en/strcmp/'),(486,'INSERT DELAYED',27,'Syntax:\nINSERT DELAYED ...\n\nThe DELAYED option for the INSERT statement is a MySQL extension to\nstandard SQL that is very useful if you have clients that cannot or\nneed not wait for the INSERT to complete. This is a common situation\nwhen you use MySQL for logging and you also periodically run SELECT and\nUPDATE statements that take a long time to complete.\n\nWhen a client uses INSERT DELAYED, it gets an okay from the server at\nonce, and the row is queued to be inserted when the table is not in use\nby any other thread.\n\nAnother major benefit of using INSERT DELAYED is that inserts from many\nclients are bundled together and written in one block. This is much\nfaster than performing many separate inserts.\n\nNote that INSERT DELAYED is slower than a normal INSERT if the table is\nnot otherwise in use. There is also the additional overhead for the\nserver to handle a separate thread for each table for which there are\ndelayed rows. This means that you should use INSERT DELAYED only when\nyou are really sure that you need it.\n\nThe queued rows are held only in memory until they are inserted into\nthe table. This means that if you terminate mysqld forcibly (for\nexample, with kill -9) or if mysqld dies unexpectedly, any queued rows\nthat have not been written to disk are lost.\n\nThere are some constraints on the use of DELAYED:\n\no INSERT DELAYED works only with MyISAM, MEMORY, ARCHIVE, and BLACKHOLE\n  tables. For engines that do not support DELAYED, an error occurs.\n\no An error occurs for INSERT DELAYED if used with a table that has been\n  locked with LOCK TABLES because the insert must be handled by a\n  separate thread, not by the session that holds the lock.\n\no For MyISAM tables, if there are no free blocks in the middle of the\n  data file, concurrent SELECT and INSERT statements are supported.\n  Under these circumstances, you very seldom need to use INSERT DELAYED\n  with MyISAM.\n\no INSERT DELAYED should be used only for INSERT statements that specify\n  value lists. The server ignores DELAYED for INSERT ... SELECT or\n  INSERT ... ON DUPLICATE KEY UPDATE statements.\n\no Because the INSERT DELAYED statement returns immediately, before the\n  rows are inserted, you cannot use LAST_INSERT_ID() to get the\n  AUTO_INCREMENT value that the statement might generate.\n\no DELAYED rows are not visible to SELECT statements until they actually\n  have been inserted.\n\no Prior to MySQL 5.5.7, INSERT DELAYED was treated as a normal INSERT\n  if the statement inserted multiple rows, binary logging was enabled,\n  and the global logging format was statement-based (that is, whenever\n  binlog_format was set to STATEMENT). Beginning with MySQL 5.5.7,\n  INSERT DELAYED is always handled as a simple INSERT (that is, without\n  the DELAYED option) whenever the value of binlog_format is STATEMENT\n  or MIXED. (In the latter case, the statement no longer triggers a\n  switch to row-based logging, and so is logged using the\n  statement-based format.)\n\n  This does not apply when using row-based binary logging mode\n  (binlog_format set to ROW), in which INSERT DELAYED statements are\n  always executed using the DELAYED option as specified, and logged as\n  row-update events.\n\no DELAYED is ignored on slave replication servers, so that INSERT\n  DELAYED is treated as a normal INSERT on slaves. This is because\n  DELAYED could cause the slave to have different data than the master.\n\no Pending INSERT DELAYED statements are lost if a table is write locked\n  and ALTER TABLE is used to modify the table structure.\n\no INSERT DELAYED is not supported for views.\n\no INSERT DELAYED is not supported for partitioned tables.\n\nURL: https://mariadb.com/kb/en/insert-delayed/\n\n','','https://mariadb.com/kb/en/insert-delayed/'),(487,'SHOW PROFILE',26,'Syntax:\nSHOW PROFILE [type [, type] ... ]\n    [FOR QUERY n]\n    [LIMIT row_count [OFFSET offset]]\n\ntype:\n    ALL\n  | BLOCK IO\n  | CONTEXT SWITCHES\n  | CPU\n  | IPC\n  | MEMORY\n  | PAGE FAULTS\n  | SOURCE\n  | SWAPS\n\nThe SHOW PROFILE and SHOW PROFILES statements display profiling\ninformation that indicates resource usage for statements executed\nduring the course of the current session.\n\nProfiling is controlled by the profiling session variable, which has a\ndefault value of 0 (OFF). Profiling is enabled by setting profiling to\n1 or ON:\n\nMariaDB> SET profiling = 1;\n\nSHOW PROFILES displays a list of the most recent statements sent to the\nserver. The size of the list is controlled by the\nprofiling_history_size session variable, which has a default value of\n15. The maximum value is 100. Setting the value to 0 has the practical\neffect of disabling profiling.\n\nAll statements are profiled except SHOW PROFILE and SHOW PROFILES, so\nyou will find neither of those statements in the profile list.\nMalformed statements are profiled. For example, SHOW PROFILING is an\nillegal statement, and a syntax error occurs if you try to execute it,\nbut it will show up in the profiling list.\n\nSHOW PROFILE displays detailed information about a single statement.\nWithout the FOR QUERY n clause, the output pertains to the most\nrecently executed statement. If FOR QUERY n is included, SHOW PROFILE\ndisplays information for statement n. The values of n correspond to the\nQuery_ID values displayed by SHOW PROFILES.\n\nThe LIMIT row_count clause may be given to limit the output to\nrow_count rows. If LIMIT is given, OFFSET offset may be added to begin\nthe output offset rows into the full set of rows.\n\nBy default, SHOW PROFILE displays Status and Duration columns. The\nStatus values are like the State values displayed by SHOW PROCESSLIST,\nalthough there might be some minor differences in interpretion for the\ntwo statements for some status values (see\nhttp://dev.mysql.com/doc/refman/5.5/en/thread-information.html).\n\nOptional type values may be specified to display specific additional\ntypes of information:\n\no ALL displays all information\n\no BLOCK IO displays counts for block input and output operations\n\no CONTEXT SWITCHES displays counts for voluntary and involuntary\n  context switches\n\no CPU displays user and system CPU usage times\n\no IPC displays counts for messages sent and received\n\no MEMORY is not currently implemented\n\no PAGE FAULTS displays counts for major and minor page faults\n\no SOURCE displays the names of functions from the source code, together\n  with the name and line number of the file in which the function\n  occurs\n\no SWAPS displays swap counts\n\nProfiling is enabled per session. When a session ends, its profiling\ninformation is lost.\n\nURL: https://mariadb.com/kb/en/show-profile/\n\n','MariaDB> SELECT @@profiling;\n+-------------+\n| @@profiling |\n+-------------+\n|           0 |\n+-------------+\n1 row in set (0.00 sec)\n\nMariaDB> SET profiling = 1;\nQuery OK, 0 rows affected (0.00 sec)\n\nMariaDB> DROP TABLE IF EXISTS t1;\nQuery OK, 0 rows affected, 1 warning (0.00 sec)\n\nMariaDB> CREATE TABLE T1 (id INT);\nQuery OK, 0 rows affected (0.01 sec)\n\nMariaDB> SHOW PROFILES;\n+----------+----------+--------------------------+\n| Query_ID | Duration | Query                    |\n+----------+----------+--------------------------+\n|        0 | 0.000088 | SET PROFILING = 1        |\n|        1 | 0.000136 | DROP TABLE IF EXISTS t1  |\n|        2 | 0.011947 | CREATE TABLE t1 (id INT) |\n+----------+----------+--------------------------+\n3 rows in set (0.00 sec)\n\nMariaDB> SHOW PROFILE;\n+----------------------+----------+\n| Status               | Duration |\n+----------------------+----------+\n| checking permissions | 0.000040 |\n| creating table       | 0.000056 |\n| After create         | 0.011363 |\n| query end            | 0.000375 |\n| freeing items        | 0.000089 |\n| logging slow query   | 0.000019 |\n| cleaning up          | 0.000005 |\n+----------------------+----------+\n7 rows in set (0.00 sec)\n\nMariaDB> SHOW PROFILE FOR QUERY 1;\n+--------------------+----------+\n| Status             | Duration |\n+--------------------+----------+\n| query end          | 0.000107 |\n| freeing items      | 0.000008 |\n| logging slow query | 0.000015 |\n| cleaning up        | 0.000006 |\n+--------------------+----------+\n4 rows in set (0.00 sec)\n\nMariaDB> SHOW PROFILE CPU FOR QUERY 2;\n+----------------------+----------+----------+------------+\n| Status               | Duration | CPU_user | CPU_system |\n+----------------------+----------+----------+------------+\n| checking permissions | 0.000040 | 0.000038 |   0.000002 |\n| creating table       | 0.000056 | 0.000028 |   0.000028 |\n| After create         | 0.011363 | 0.000217 |   0.001571 |\n| query end            | 0.000375 | 0.000013 |   0.000028 |\n| freeing items        | 0.000089 | 0.000010 |   0.000014 |\n| logging slow query   | 0.000019 | 0.000009 |   0.000010 |\n| cleaning up          | 0.000005 | 0.000003 |   0.000002 |\n+----------------------+----------+----------+------------+\n7 rows in set (0.00 sec)\n','https://mariadb.com/kb/en/show-profile/'),(488,'SHOW PROCEDURE CODE',26,'Syntax:\nSHOW PROCEDURE CODE proc_name\n\nThis statement is a MySQL extension that is available only for servers\nthat have been built with debugging support. It displays a\nrepresentation of the internal implementation of the named stored\nprocedure. A similar statement, SHOW FUNCTION CODE, displays\ninformation about stored functions (see [HELP SHOW FUNCTION CODE]).\n\nBoth statements require that you be the owner of the routine or have\nSELECT access to the mysql.proc table.\n\nIf the named routine is available, each statement produces a result\nset. Each row in the result set corresponds to one \"instruction\" in the\nroutine. The first column is Pos, which is an ordinal number beginning\nwith 0. The second column is Instruction, which contains an SQL\nstatement (usually changed from the original source), or a directive\nwhich has meaning only to the stored-routine handler.\n\nURL: https://mariadb.com/kb/en/show-procedure-code/\n\n','MariaDB> DELIMITER //\nMariaDB> CREATE PROCEDURE p1 ()\n    -> BEGIN\n    ->   DECLARE fanta INT DEFAULT 55;\n    ->   DROP TABLE t2;\n    ->   LOOP\n    ->     INSERT INTO t3 VALUES (fanta);\n    ->     END LOOP;\n    ->   END//\nQuery OK, 0 rows affected (0.00 sec)\n\nMariaDB> SHOW PROCEDURE CODE p1//\n+-----+----------------------------------------+\n| Pos | Instruction                            |\n+-----+----------------------------------------+\n|   0 | set fanta@0 55                         |\n|   1 | stmt 9 \"DROP TABLE t2\"                 |\n|   2 | stmt 5 \"INSERT INTO t3 VALUES (fanta)\" |\n|   3 | jump 2                                 |\n+-----+----------------------------------------+\n4 rows in set (0.00 sec)\n','https://mariadb.com/kb/en/show-procedure-code/'),(489,'MEDIUMTEXT',22,'MEDIUMTEXT [CHARACTER SET charset_name] [COLLATE collation_name]\n\nA TEXT column with a maximum length of 16,777,215 (224 - 1) characters.\nThe effective maximum length is less if the value contains multi-byte\ncharacters. Each MEDIUMTEXT value is stored using a 3-byte length\nprefix that indicates the number of bytes in the value.\n\nURL: https://mariadb.com/kb/en/mediumtext/\n\n','','https://mariadb.com/kb/en/mediumtext/'),(490,'LN',4,'Syntax:\nLN(X)\n\nReturns the natural logarithm of X; that is, the base-e logarithm of X.\nIf X is less than or equal to 0, then NULL is returned.\n\nURL: https://mariadb.com/kb/en/ln/\n\n','MariaDB> SELECT LN(2);\n        -> 0.69314718055995\nMariaDB> SELECT LN(-2);\n        -> NULL\n','https://mariadb.com/kb/en/ln/'),(491,'RETURN',23,'Syntax:\nRETURN expr\n\nThe RETURN statement terminates execution of a stored function and\nreturns the value expr to the function caller. There must be at least\none RETURN statement in a stored function. There may be more than one\nif the function has multiple exit points.\n\nThis statement is not used in stored procedures, triggers, or events.\nThe LEAVE statement can be used to exit a stored program of those\ntypes.\n\nURL: https://mariadb.com/kb/en/return/\n\n','','https://mariadb.com/kb/en/return/'),(492,'SHOW COLLATION',26,'Syntax:\nSHOW COLLATION\n    [LIKE \'pattern\' | WHERE expr]\n\nThis statement lists collations supported by the server. By default,\nthe output from SHOW COLLATION includes all available collations. The\nLIKE clause, if present, indicates which collation names to match. The\nWHERE clause can be given to select rows using more general conditions,\nas discussed in\nhttps://mariadb.com/kb/en/extended-show/. For example:\n\nMariaDB> SHOW COLLATION LIKE \'latin1%\';\n+-------------------+---------+----+---------+----------+---------+\n| Collation         | Charset | Id | Default | Compiled | Sortlen |\n+-------------------+---------+----+---------+----------+---------+\n| latin1_german1_ci | latin1  |  5 |         |          |       0 |\n| latin1_swedish_ci | latin1  |  8 | Yes     | Yes      |       0 |\n| latin1_danish_ci  | latin1  | 15 |         |          |       0 |\n| latin1_german2_ci | latin1  | 31 |         | Yes      |       2 |\n| latin1_bin        | latin1  | 47 |         | Yes      |       0 |\n| latin1_general_ci | latin1  | 48 |         |          |       0 |\n| latin1_general_cs | latin1  | 49 |         |          |       0 |\n| latin1_spanish_ci | latin1  | 94 |         |          |       0 |\n+-------------------+---------+----+---------+----------+---------+\n\nURL: https://mariadb.com/kb/en/show-collation/\n\n','','https://mariadb.com/kb/en/show-collation/'),(493,'LOG',4,'Syntax:\nLOG(X), LOG(B,X)\n\nIf called with one parameter, this function returns the natural\nlogarithm of X. If X is less than or equal to 0, then NULL is returned.\n\nThe inverse of this function (when called with a single argument) is\nthe EXP() function.\n\nURL: https://mariadb.com/kb/en/log/\n\n','MariaDB> SELECT LOG(2);\n        -> 0.69314718055995\nMariaDB> SELECT LOG(-2);\n        -> NULL\n','https://mariadb.com/kb/en/log/'),(494,'SET SQL_LOG_BIN',8,'Syntax:\nSET sql_log_bin = {0|1}\n\nThe sql_log_bin variable controls whether logging to the binary log is\ndone. The default value is 1 (do logging). To change logging for the\ncurrent session, change the session value of this variable. The session\nuser must have the SUPER privilege to set this variable.\n\nBeginning with MySQL 5.5.5, it is no longer possible to set\n@@session.sql_log_bin within a transaction or subquery. (Bug #53437)\n\nURL: https://mariadb.com/kb/en/set-sql_log_bin/\n\n','','https://mariadb.com/kb/en/set-sql_log_bin/'),(495,'!=',18,'Syntax:\n<>, !=\n\nNot equal:\n\nURL: https://mariadb.com/kb/en/not-equal/\n\n','MariaDB> SELECT \'.01\' <> \'0.01\';\n        -> 1\nMariaDB> SELECT .01 <> \'0.01\';\n        -> 0\nMariaDB> SELECT \'zapp\' <> \'zappp\';\n        -> 1\n','https://mariadb.com/kb/en/not-equal/'),(496,'WHILE',23,'Syntax:\n[begin_label:] WHILE search_condition DO\n    statement_list\nEND WHILE [end_label]\n\nThe statement list within a WHILE statement is repeated as long as the\nsearch_condition expression is true. statement_list consists of one or\nmore SQL statements, each terminated by a semicolon (;) statement\ndelimiter.\n\nA WHILE statement can be labeled. For the rules regarding label use,\nsee [HELP labels].\n\nURL: https://mariadb.com/kb/en/while/\n\n','CREATE PROCEDURE dowhile()\nBEGIN\n  DECLARE v1 INT DEFAULT 5;\n\n  WHILE v1 > 0 DO\n    ...\n    SET v1 = v1 - 1;\n  END WHILE;\nEND;\n','https://mariadb.com/kb/en/while/'),(497,'AES_DECRYPT',12,'Syntax:\nAES_DECRYPT(crypt_str,key_str)\n\nThis function decrypts data using the official AES (Advanced Encryption\nStandard) algorithm. For more information, see the description of\nAES_ENCRYPT().\n\nURL: https://mariadb.com/kb/en/aes_decrypt/\n\n','','https://mariadb.com/kb/en/aes_decrypt/'),(498,'DAYNAME',31,'Syntax:\nDAYNAME(date)\n\nReturns the name of the weekday for date. The language used for the\nname is controlled by the value of the lc_time_names system variable\n(https://mariadb.com/kb/en/server-system-variables#lc_time_names).\n\nURL: https://mariadb.com/kb/en/dayname/\n\n','MariaDB> SELECT DAYNAME(\'2007-02-03\');\n        -> \'Saturday\'\n','https://mariadb.com/kb/en/dayname/'),(499,'COERCIBILITY',17,'Syntax:\nCOERCIBILITY(str)\n\nReturns the collation coercibility value of the string argument.\n\nURL: https://mariadb.com/kb/en/coercibility/\n\n','MariaDB> SELECT COERCIBILITY(\'abc\' COLLATE latin1_swedish_ci);\n        -> 0\nMariaDB> SELECT COERCIBILITY(USER());\n        -> 3\nMariaDB> SELECT COERCIBILITY(\'abc\');\n        -> 4\n','https://mariadb.com/kb/en/coercibility/'),(500,'INT',22,'INT[(M)] [UNSIGNED] [ZEROFILL]\n\nA normal-size integer. The signed range is -2147483648 to 2147483647.\nThe unsigned range is 0 to 4294967295.\n\nURL: https://mariadb.com/kb/en/int/\n\n','','https://mariadb.com/kb/en/int/'),(501,'GLENGTH',13,'GLength(ls)\n\nReturns as a double-precision number the length of the LineString value\nls in its associated spatial reference.\n\nURL: https://mariadb.com/kb/en/glength/\n\n','MariaDB> SET @ls = \'LineString(1 1,2 2,3 3)\';\nMariaDB> SELECT GLength(GeomFromText(@ls));\n+----------------------------+\n| GLength(GeomFromText(@ls)) |\n+----------------------------+\n|            2.8284271247462 |\n+----------------------------+\n','https://mariadb.com/kb/en/glength/'),(502,'RADIANS',4,'Syntax:\nRADIANS(X)\n\nReturns the argument X, converted from degrees to radians. (Note that\nπ radians equals 180 degrees.)\n\nURL: https://mariadb.com/kb/en/radians/\n\n','MariaDB> SELECT RADIANS(90);\n        -> 1.5707963267949\n','https://mariadb.com/kb/en/radians/'),(503,'COLLATION',17,'Syntax:\nCOLLATION(str)\n\nReturns the collation of the string argument.\n\nURL: https://mariadb.com/kb/en/collation/\n\n','MariaDB> SELECT COLLATION(\'abc\');\n        -> \'latin1_swedish_ci\'\nMariaDB> SELECT COLLATION(_utf8\'abc\');\n        -> \'utf8_general_ci\'\n','https://mariadb.com/kb/en/collation/'),(504,'COALESCE',18,'Syntax:\nCOALESCE(value,...)\n\nReturns the first non-NULL value in the list, or NULL if there are no\nnon-NULL values.\n\nURL: https://mariadb.com/kb/en/coalesce/\n\n','MariaDB> SELECT COALESCE(NULL,1);\n        -> 1\nMariaDB> SELECT COALESCE(NULL,NULL,NULL);\n        -> NULL\n','https://mariadb.com/kb/en/coalesce/'),(505,'VERSION',17,'Syntax:\nVERSION()\n\nReturns a string that indicates the MySQL server version. The string\nuses the utf8 character set. The value might have a suffix in addition\nto the version number. See the description of the version system\nvariable in\nhttps://mariadb.com/kb/en/server-system-variables#version.\n\nURL: https://mariadb.com/kb/en/version/\n\n','MariaDB> SELECT VERSION();\n        -> \'5.5.29-standard\'\n','https://mariadb.com/kb/en/version/'),(506,'MAKE_SET',37,'Syntax:\nMAKE_SET(bits,str1,str2,...)\n\nReturns a set value (a string containing substrings separated by \",\"\ncharacters) consisting of the strings that have the corresponding bit\nin bits set. str1 corresponds to bit 0, str2 to bit 1, and so on. NULL\nvalues in str1, str2, ... are not appended to the result.\n\nURL: https://mariadb.com/kb/en/make_set/\n\n','MariaDB> SELECT MAKE_SET(1,\'a\',\'b\',\'c\');\n        -> \'a\'\nMariaDB> SELECT MAKE_SET(1 | 4,\'hello\',\'nice\',\'world\');\n        -> \'hello,world\'\nMariaDB> SELECT MAKE_SET(1 | 4,\'hello\',\'nice\',NULL,\'world\');\n        -> \'hello\'\nMariaDB> SELECT MAKE_SET(0,\'a\',\'b\',\'c\');\n        -> \'\'\n','https://mariadb.com/kb/en/make_set/'),(507,'FIND_IN_SET',37,'Syntax:\nFIND_IN_SET(str,strlist)\n\nReturns a value in the range of 1 to N if the string str is in the\nstring list strlist consisting of N substrings. A string list is a\nstring composed of substrings separated by \",\" characters. If the first\nargument is a constant string and the second is a column of type SET,\nthe FIND_IN_SET() function is optimized to use bit arithmetic. Returns\n0 if str is not in strlist or if strlist is the empty string. Returns\nNULL if either argument is NULL. This function does not work properly\nif the first argument contains a comma (\",\") character.\n\nURL: https://mariadb.com/kb/en/find_in_set/\n\n','MariaDB> SELECT FIND_IN_SET(\'b\',\'a,b,c,d\');\n        -> 2\n','https://mariadb.com/kb/en/find_in_set/');
/*!40000 ALTER TABLE `help_topic` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `host`
--

DROP TABLE IF EXISTS `host`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `host` (
  `Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
  `Db` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
  `Select_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Insert_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Update_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Delete_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Create_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Drop_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Grant_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `References_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Index_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Alter_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Create_tmp_table_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Lock_tables_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Create_view_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Show_view_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Create_routine_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Alter_routine_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Execute_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Trigger_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  PRIMARY KEY (`Host`,`Db`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Host privileges;  Merged with database privileges';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `host`
--

LOCK TABLES `host` WRITE;
/*!40000 ALTER TABLE `host` DISABLE KEYS */;
/*!40000 ALTER TABLE `host` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `index_stats`
--

DROP TABLE IF EXISTS `index_stats`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `index_stats` (
  `db_name` varchar(64) COLLATE utf8_bin NOT NULL,
  `table_name` varchar(64) COLLATE utf8_bin NOT NULL,
  `index_name` varchar(64) COLLATE utf8_bin NOT NULL,
  `prefix_arity` int(11) unsigned NOT NULL,
  `avg_frequency` decimal(12,4) DEFAULT NULL,
  PRIMARY KEY (`db_name`,`table_name`,`index_name`,`prefix_arity`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Statistics on Indexes';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `index_stats`
--

LOCK TABLES `index_stats` WRITE;
/*!40000 ALTER TABLE `index_stats` DISABLE KEYS */;
/*!40000 ALTER TABLE `index_stats` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `innodb_index_stats`
--

DROP TABLE IF EXISTS `innodb_index_stats`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `innodb_index_stats` (
  `database_name` varchar(64) COLLATE utf8_bin NOT NULL,
  `table_name` varchar(199) COLLATE utf8_bin NOT NULL,
  `index_name` varchar(64) COLLATE utf8_bin NOT NULL,
  `last_update` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `stat_name` varchar(64) COLLATE utf8_bin NOT NULL,
  `stat_value` bigint(20) unsigned NOT NULL,
  `sample_size` bigint(20) unsigned DEFAULT NULL,
  `stat_description` varchar(1024) COLLATE utf8_bin NOT NULL,
  PRIMARY KEY (`database_name`,`table_name`,`index_name`,`stat_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin STATS_PERSISTENT=0;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `innodb_index_stats`
--

LOCK TABLES `innodb_index_stats` WRITE;
/*!40000 ALTER TABLE `innodb_index_stats` DISABLE KEYS */;
INSERT INTO `innodb_index_stats` VALUES ('mysql','gtid_slave_pos','PRIMARY','2021-06-08 02:27:46','n_diff_pfx01',0,1,'domain_id'),('mysql','gtid_slave_pos','PRIMARY','2021-06-08 02:27:46','n_diff_pfx02',0,1,'domain_id,sub_id'),('mysql','gtid_slave_pos','PRIMARY','2021-06-08 02:27:46','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('mysql','gtid_slave_pos','PRIMARY','2021-06-08 02:27:46','size',1,NULL,'Number of pages in the index'),('wordpress','wp_commentmeta','PRIMARY','2021-06-08 02:35:33','n_diff_pfx01',0,1,'meta_id'),('wordpress','wp_commentmeta','PRIMARY','2021-06-08 02:35:33','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_commentmeta','PRIMARY','2021-06-08 02:35:33','size',1,NULL,'Number of pages in the index'),('wordpress','wp_commentmeta','comment_id','2021-06-08 02:35:33','n_diff_pfx01',0,1,'comment_id'),('wordpress','wp_commentmeta','comment_id','2021-06-08 02:35:33','n_diff_pfx02',0,1,'comment_id,meta_id'),('wordpress','wp_commentmeta','comment_id','2021-06-08 02:35:33','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_commentmeta','comment_id','2021-06-08 02:35:33','size',1,NULL,'Number of pages in the index'),('wordpress','wp_commentmeta','meta_key','2021-06-08 02:35:33','n_diff_pfx01',0,1,'meta_key'),('wordpress','wp_commentmeta','meta_key','2021-06-08 02:35:33','n_diff_pfx02',0,1,'meta_key,meta_id'),('wordpress','wp_commentmeta','meta_key','2021-06-08 02:35:33','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_commentmeta','meta_key','2021-06-08 02:35:33','size',1,NULL,'Number of pages in the index'),('wordpress','wp_comments','PRIMARY','2021-06-08 02:35:33','n_diff_pfx01',0,1,'comment_ID'),('wordpress','wp_comments','PRIMARY','2021-06-08 02:35:33','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_comments','PRIMARY','2021-06-08 02:35:33','size',1,NULL,'Number of pages in the index'),('wordpress','wp_comments','comment_approved_date_gmt','2021-06-08 02:35:33','n_diff_pfx01',0,1,'comment_approved'),('wordpress','wp_comments','comment_approved_date_gmt','2021-06-08 02:35:33','n_diff_pfx02',0,1,'comment_approved,comment_date_gmt'),('wordpress','wp_comments','comment_approved_date_gmt','2021-06-08 02:35:33','n_diff_pfx03',0,1,'comment_approved,comment_date_gmt,comment_ID'),('wordpress','wp_comments','comment_approved_date_gmt','2021-06-08 02:35:33','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_comments','comment_approved_date_gmt','2021-06-08 02:35:33','size',1,NULL,'Number of pages in the index'),('wordpress','wp_comments','comment_author_email','2021-06-08 02:35:33','n_diff_pfx01',0,1,'comment_author_email'),('wordpress','wp_comments','comment_author_email','2021-06-08 02:35:33','n_diff_pfx02',0,1,'comment_author_email,comment_ID'),('wordpress','wp_comments','comment_author_email','2021-06-08 02:35:33','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_comments','comment_author_email','2021-06-08 02:35:33','size',1,NULL,'Number of pages in the index'),('wordpress','wp_comments','comment_date_gmt','2021-06-08 02:35:33','n_diff_pfx01',0,1,'comment_date_gmt'),('wordpress','wp_comments','comment_date_gmt','2021-06-08 02:35:33','n_diff_pfx02',0,1,'comment_date_gmt,comment_ID'),('wordpress','wp_comments','comment_date_gmt','2021-06-08 02:35:33','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_comments','comment_date_gmt','2021-06-08 02:35:33','size',1,NULL,'Number of pages in the index'),('wordpress','wp_comments','comment_parent','2021-06-08 02:35:33','n_diff_pfx01',0,1,'comment_parent'),('wordpress','wp_comments','comment_parent','2021-06-08 02:35:33','n_diff_pfx02',0,1,'comment_parent,comment_ID'),('wordpress','wp_comments','comment_parent','2021-06-08 02:35:33','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_comments','comment_parent','2021-06-08 02:35:33','size',1,NULL,'Number of pages in the index'),('wordpress','wp_comments','comment_post_ID','2021-06-08 02:35:33','n_diff_pfx01',0,1,'comment_post_ID'),('wordpress','wp_comments','comment_post_ID','2021-06-08 02:35:33','n_diff_pfx02',0,1,'comment_post_ID,comment_ID'),('wordpress','wp_comments','comment_post_ID','2021-06-08 02:35:33','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_comments','comment_post_ID','2021-06-08 02:35:33','size',1,NULL,'Number of pages in the index'),('wordpress','wp_links','PRIMARY','2021-06-08 02:35:33','n_diff_pfx01',0,1,'link_id'),('wordpress','wp_links','PRIMARY','2021-06-08 02:35:33','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_links','PRIMARY','2021-06-08 02:35:33','size',1,NULL,'Number of pages in the index'),('wordpress','wp_links','link_visible','2021-06-08 02:35:33','n_diff_pfx01',0,1,'link_visible'),('wordpress','wp_links','link_visible','2021-06-08 02:35:33','n_diff_pfx02',0,1,'link_visible,link_id'),('wordpress','wp_links','link_visible','2021-06-08 02:35:33','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_links','link_visible','2021-06-08 02:35:33','size',1,NULL,'Number of pages in the index'),('wordpress','wp_options','PRIMARY','2021-06-08 02:36:01','n_diff_pfx01',142,3,'option_id'),('wordpress','wp_options','PRIMARY','2021-06-08 02:36:01','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_options','PRIMARY','2021-06-08 02:36:01','size',97,NULL,'Number of pages in the index'),('wordpress','wp_options','autoload','2021-06-08 02:36:01','n_diff_pfx01',2,1,'autoload'),('wordpress','wp_options','autoload','2021-06-08 02:36:01','n_diff_pfx02',142,1,'autoload,option_id'),('wordpress','wp_options','autoload','2021-06-08 02:36:01','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_options','autoload','2021-06-08 02:36:01','size',1,NULL,'Number of pages in the index'),('wordpress','wp_options','option_name','2021-06-08 02:36:01','n_diff_pfx01',142,1,'option_name'),('wordpress','wp_options','option_name','2021-06-08 02:36:01','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_options','option_name','2021-06-08 02:36:01','size',1,NULL,'Number of pages in the index'),('wordpress','wp_postmeta','PRIMARY','2021-06-08 02:35:51','n_diff_pfx01',2,1,'meta_id'),('wordpress','wp_postmeta','PRIMARY','2021-06-08 02:35:51','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_postmeta','PRIMARY','2021-06-08 02:35:51','size',1,NULL,'Number of pages in the index'),('wordpress','wp_postmeta','meta_key','2021-06-08 02:35:51','n_diff_pfx01',1,1,'meta_key'),('wordpress','wp_postmeta','meta_key','2021-06-08 02:35:51','n_diff_pfx02',2,1,'meta_key,meta_id'),('wordpress','wp_postmeta','meta_key','2021-06-08 02:35:51','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_postmeta','meta_key','2021-06-08 02:35:51','size',1,NULL,'Number of pages in the index'),('wordpress','wp_postmeta','post_id','2021-06-08 02:35:51','n_diff_pfx01',2,1,'post_id'),('wordpress','wp_postmeta','post_id','2021-06-08 02:35:51','n_diff_pfx02',2,1,'post_id,meta_id'),('wordpress','wp_postmeta','post_id','2021-06-08 02:35:51','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_postmeta','post_id','2021-06-08 02:35:51','size',1,NULL,'Number of pages in the index'),('wordpress','wp_posts','PRIMARY','2021-06-08 02:35:41','n_diff_pfx01',4,1,'ID'),('wordpress','wp_posts','PRIMARY','2021-06-08 02:35:41','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_posts','PRIMARY','2021-06-08 02:35:41','size',1,NULL,'Number of pages in the index'),('wordpress','wp_posts','post_author','2021-06-08 02:35:41','n_diff_pfx01',1,1,'post_author'),('wordpress','wp_posts','post_author','2021-06-08 02:35:41','n_diff_pfx02',4,1,'post_author,ID'),('wordpress','wp_posts','post_author','2021-06-08 02:35:41','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_posts','post_author','2021-06-08 02:35:41','size',1,NULL,'Number of pages in the index'),('wordpress','wp_posts','post_name','2021-06-08 02:35:41','n_diff_pfx01',4,1,'post_name'),('wordpress','wp_posts','post_name','2021-06-08 02:35:41','n_diff_pfx02',4,1,'post_name,ID'),('wordpress','wp_posts','post_name','2021-06-08 02:35:41','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_posts','post_name','2021-06-08 02:35:41','size',1,NULL,'Number of pages in the index'),('wordpress','wp_posts','post_parent','2021-06-08 02:35:41','n_diff_pfx01',1,1,'post_parent'),('wordpress','wp_posts','post_parent','2021-06-08 02:35:41','n_diff_pfx02',4,1,'post_parent,ID'),('wordpress','wp_posts','post_parent','2021-06-08 02:35:41','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_posts','post_parent','2021-06-08 02:35:41','size',1,NULL,'Number of pages in the index'),('wordpress','wp_posts','type_status_date','2021-06-08 02:35:41','n_diff_pfx01',2,1,'post_type'),('wordpress','wp_posts','type_status_date','2021-06-08 02:35:41','n_diff_pfx02',4,1,'post_type,post_status'),('wordpress','wp_posts','type_status_date','2021-06-08 02:35:41','n_diff_pfx03',4,1,'post_type,post_status,post_date'),('wordpress','wp_posts','type_status_date','2021-06-08 02:35:41','n_diff_pfx04',4,1,'post_type,post_status,post_date,ID'),('wordpress','wp_posts','type_status_date','2021-06-08 02:35:41','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_posts','type_status_date','2021-06-08 02:35:41','size',1,NULL,'Number of pages in the index'),('wordpress','wp_term_relationships','PRIMARY','2021-06-08 02:35:33','n_diff_pfx01',0,1,'object_id'),('wordpress','wp_term_relationships','PRIMARY','2021-06-08 02:35:33','n_diff_pfx02',0,1,'object_id,term_taxonomy_id'),('wordpress','wp_term_relationships','PRIMARY','2021-06-08 02:35:33','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_term_relationships','PRIMARY','2021-06-08 02:35:33','size',1,NULL,'Number of pages in the index'),('wordpress','wp_term_relationships','term_taxonomy_id','2021-06-08 02:35:33','n_diff_pfx01',0,1,'term_taxonomy_id'),('wordpress','wp_term_relationships','term_taxonomy_id','2021-06-08 02:35:33','n_diff_pfx02',0,1,'term_taxonomy_id,object_id'),('wordpress','wp_term_relationships','term_taxonomy_id','2021-06-08 02:35:33','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_term_relationships','term_taxonomy_id','2021-06-08 02:35:33','size',1,NULL,'Number of pages in the index'),('wordpress','wp_term_taxonomy','PRIMARY','2021-06-08 02:35:33','n_diff_pfx01',0,1,'term_taxonomy_id'),('wordpress','wp_term_taxonomy','PRIMARY','2021-06-08 02:35:33','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_term_taxonomy','PRIMARY','2021-06-08 02:35:33','size',1,NULL,'Number of pages in the index'),('wordpress','wp_term_taxonomy','taxonomy','2021-06-08 02:35:33','n_diff_pfx01',0,1,'taxonomy'),('wordpress','wp_term_taxonomy','taxonomy','2021-06-08 02:35:33','n_diff_pfx02',0,1,'taxonomy,term_taxonomy_id'),('wordpress','wp_term_taxonomy','taxonomy','2021-06-08 02:35:33','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_term_taxonomy','taxonomy','2021-06-08 02:35:33','size',1,NULL,'Number of pages in the index'),('wordpress','wp_term_taxonomy','term_id_taxonomy','2021-06-08 02:35:33','n_diff_pfx01',0,1,'term_id'),('wordpress','wp_term_taxonomy','term_id_taxonomy','2021-06-08 02:35:33','n_diff_pfx02',0,1,'term_id,taxonomy'),('wordpress','wp_term_taxonomy','term_id_taxonomy','2021-06-08 02:35:33','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_term_taxonomy','term_id_taxonomy','2021-06-08 02:35:33','size',1,NULL,'Number of pages in the index'),('wordpress','wp_termmeta','PRIMARY','2021-06-08 02:35:33','n_diff_pfx01',0,1,'meta_id'),('wordpress','wp_termmeta','PRIMARY','2021-06-08 02:35:33','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_termmeta','PRIMARY','2021-06-08 02:35:33','size',1,NULL,'Number of pages in the index'),('wordpress','wp_termmeta','meta_key','2021-06-08 02:35:33','n_diff_pfx01',0,1,'meta_key'),('wordpress','wp_termmeta','meta_key','2021-06-08 02:35:33','n_diff_pfx02',0,1,'meta_key,meta_id'),('wordpress','wp_termmeta','meta_key','2021-06-08 02:35:33','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_termmeta','meta_key','2021-06-08 02:35:33','size',1,NULL,'Number of pages in the index'),('wordpress','wp_termmeta','term_id','2021-06-08 02:35:33','n_diff_pfx01',0,1,'term_id'),('wordpress','wp_termmeta','term_id','2021-06-08 02:35:33','n_diff_pfx02',0,1,'term_id,meta_id'),('wordpress','wp_termmeta','term_id','2021-06-08 02:35:33','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_termmeta','term_id','2021-06-08 02:35:33','size',1,NULL,'Number of pages in the index'),('wordpress','wp_terms','PRIMARY','2021-06-08 02:35:33','n_diff_pfx01',0,1,'term_id'),('wordpress','wp_terms','PRIMARY','2021-06-08 02:35:33','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_terms','PRIMARY','2021-06-08 02:35:33','size',1,NULL,'Number of pages in the index'),('wordpress','wp_terms','name','2021-06-08 02:35:33','n_diff_pfx01',0,1,'name'),('wordpress','wp_terms','name','2021-06-08 02:35:33','n_diff_pfx02',0,1,'name,term_id'),('wordpress','wp_terms','name','2021-06-08 02:35:33','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_terms','name','2021-06-08 02:35:33','size',1,NULL,'Number of pages in the index'),('wordpress','wp_terms','slug','2021-06-08 02:35:33','n_diff_pfx01',0,1,'slug'),('wordpress','wp_terms','slug','2021-06-08 02:35:33','n_diff_pfx02',0,1,'slug,term_id'),('wordpress','wp_terms','slug','2021-06-08 02:35:33','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_terms','slug','2021-06-08 02:35:33','size',1,NULL,'Number of pages in the index'),('wordpress','wp_usermeta','PRIMARY','2021-06-08 02:36:11','n_diff_pfx01',18,1,'umeta_id'),('wordpress','wp_usermeta','PRIMARY','2021-06-08 02:36:11','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_usermeta','PRIMARY','2021-06-08 02:36:11','size',1,NULL,'Number of pages in the index'),('wordpress','wp_usermeta','meta_key','2021-06-08 02:36:11','n_diff_pfx01',18,1,'meta_key'),('wordpress','wp_usermeta','meta_key','2021-06-08 02:36:11','n_diff_pfx02',18,1,'meta_key,umeta_id'),('wordpress','wp_usermeta','meta_key','2021-06-08 02:36:11','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_usermeta','meta_key','2021-06-08 02:36:11','size',1,NULL,'Number of pages in the index'),('wordpress','wp_usermeta','user_id','2021-06-08 02:36:11','n_diff_pfx01',1,1,'user_id'),('wordpress','wp_usermeta','user_id','2021-06-08 02:36:11','n_diff_pfx02',18,1,'user_id,umeta_id'),('wordpress','wp_usermeta','user_id','2021-06-08 02:36:11','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_usermeta','user_id','2021-06-08 02:36:11','size',1,NULL,'Number of pages in the index'),('wordpress','wp_users','PRIMARY','2021-06-08 02:35:33','n_diff_pfx01',0,1,'ID'),('wordpress','wp_users','PRIMARY','2021-06-08 02:35:33','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_users','PRIMARY','2021-06-08 02:35:33','size',1,NULL,'Number of pages in the index'),('wordpress','wp_users','user_email','2021-06-08 02:35:33','n_diff_pfx01',0,1,'user_email'),('wordpress','wp_users','user_email','2021-06-08 02:35:33','n_diff_pfx02',0,1,'user_email,ID'),('wordpress','wp_users','user_email','2021-06-08 02:35:33','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_users','user_email','2021-06-08 02:35:33','size',1,NULL,'Number of pages in the index'),('wordpress','wp_users','user_login_key','2021-06-08 02:35:33','n_diff_pfx01',0,1,'user_login'),('wordpress','wp_users','user_login_key','2021-06-08 02:35:33','n_diff_pfx02',0,1,'user_login,ID'),('wordpress','wp_users','user_login_key','2021-06-08 02:35:33','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_users','user_login_key','2021-06-08 02:35:33','size',1,NULL,'Number of pages in the index'),('wordpress','wp_users','user_nicename','2021-06-08 02:35:33','n_diff_pfx01',0,1,'user_nicename'),('wordpress','wp_users','user_nicename','2021-06-08 02:35:33','n_diff_pfx02',0,1,'user_nicename,ID'),('wordpress','wp_users','user_nicename','2021-06-08 02:35:33','n_leaf_pages',1,NULL,'Number of leaf pages in the index'),('wordpress','wp_users','user_nicename','2021-06-08 02:35:33','size',1,NULL,'Number of pages in the index');
/*!40000 ALTER TABLE `innodb_index_stats` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `innodb_table_stats`
--

DROP TABLE IF EXISTS `innodb_table_stats`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `innodb_table_stats` (
  `database_name` varchar(64) COLLATE utf8_bin NOT NULL,
  `table_name` varchar(199) COLLATE utf8_bin NOT NULL,
  `last_update` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `n_rows` bigint(20) unsigned NOT NULL,
  `clustered_index_size` bigint(20) unsigned NOT NULL,
  `sum_of_other_index_sizes` bigint(20) unsigned NOT NULL,
  PRIMARY KEY (`database_name`,`table_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin STATS_PERSISTENT=0;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `innodb_table_stats`
--

LOCK TABLES `innodb_table_stats` WRITE;
/*!40000 ALTER TABLE `innodb_table_stats` DISABLE KEYS */;
INSERT INTO `innodb_table_stats` VALUES ('mysql','gtid_slave_pos','2021-06-08 02:27:46',0,1,0),('wordpress','wp_commentmeta','2021-06-08 02:35:33',0,1,2),('wordpress','wp_comments','2021-06-08 02:35:33',0,1,5),('wordpress','wp_links','2021-06-08 02:35:33',0,1,1),('wordpress','wp_options','2021-06-08 02:36:01',142,97,2),('wordpress','wp_postmeta','2021-06-08 02:35:51',2,1,2),('wordpress','wp_posts','2021-06-08 02:35:41',4,1,4),('wordpress','wp_term_relationships','2021-06-08 02:35:33',0,1,1),('wordpress','wp_term_taxonomy','2021-06-08 02:35:33',0,1,2),('wordpress','wp_termmeta','2021-06-08 02:35:33',0,1,2),('wordpress','wp_terms','2021-06-08 02:35:33',0,1,2),('wordpress','wp_usermeta','2021-06-08 02:36:11',18,1,2),('wordpress','wp_users','2021-06-08 02:35:33',0,1,3);
/*!40000 ALTER TABLE `innodb_table_stats` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `plugin`
--

DROP TABLE IF EXISTS `plugin`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `plugin` (
  `name` varchar(64) NOT NULL DEFAULT '',
  `dl` varchar(128) NOT NULL DEFAULT '',
  PRIMARY KEY (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='MySQL plugins';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `plugin`
--

LOCK TABLES `plugin` WRITE;
/*!40000 ALTER TABLE `plugin` DISABLE KEYS */;
/*!40000 ALTER TABLE `plugin` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `proc`
--

DROP TABLE IF EXISTS `proc`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `proc` (
  `db` char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
  `name` char(64) NOT NULL DEFAULT '',
  `type` enum('FUNCTION','PROCEDURE','PACKAGE','PACKAGE BODY') NOT NULL,
  `specific_name` char(64) NOT NULL DEFAULT '',
  `language` enum('SQL') NOT NULL DEFAULT 'SQL',
  `sql_data_access` enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA') NOT NULL DEFAULT 'CONTAINS_SQL',
  `is_deterministic` enum('YES','NO') NOT NULL DEFAULT 'NO',
  `security_type` enum('INVOKER','DEFINER') NOT NULL DEFAULT 'DEFINER',
  `param_list` blob NOT NULL,
  `returns` longblob NOT NULL,
  `body` longblob NOT NULL,
  `definer` char(141) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
  `created` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `modified` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `sql_mode` set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT') NOT NULL DEFAULT '',
  `comment` text CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `character_set_client` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
  `collation_connection` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
  `db_collation` char(32) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL,
  `body_utf8` longblob DEFAULT NULL,
  `aggregate` enum('NONE','GROUP') NOT NULL DEFAULT 'NONE',
  PRIMARY KEY (`db`,`name`,`type`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Stored Procedures';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `proc`
--

LOCK TABLES `proc` WRITE;
/*!40000 ALTER TABLE `proc` DISABLE KEYS */;
INSERT INTO `proc` VALUES ('mysql','AddGeometryColumn','PROCEDURE','AddGeometryColumn','SQL','CONTAINS_SQL','NO','INVOKER','catalog varchar(64), t_schema varchar(64),\n   t_name varchar(64), geometry_column varchar(64), t_srid int','','begin\n  set @qwe= concat(\'ALTER TABLE \', t_schema, \'.\', t_name, \' ADD \', geometry_column,\' GEOMETRY REF_SYSTEM_ID=\', t_srid); PREPARE ls from @qwe; execute ls; deallocate prepare ls; end','root@localhost','2021-06-08 02:27:46','2021-06-08 02:27:46','','','utf8','utf8_general_ci','utf8mb4_general_ci','begin\n  set @qwe= concat(\'ALTER TABLE \', t_schema, \'.\', t_name, \' ADD \', geometry_column,\' GEOMETRY REF_SYSTEM_ID=\', t_srid); PREPARE ls from @qwe; execute ls; deallocate prepare ls; end','NONE'),('mysql','DropGeometryColumn','PROCEDURE','DropGeometryColumn','SQL','CONTAINS_SQL','NO','INVOKER','catalog varchar(64), t_schema varchar(64),\n   t_name varchar(64), geometry_column varchar(64)','','begin\n  set @qwe= concat(\'ALTER TABLE \', t_schema, \'.\', t_name, \' DROP \', geometry_column); PREPARE ls from @qwe; execute ls; deallocate prepare ls; end','root@localhost','2021-06-08 02:27:46','2021-06-08 02:27:46','','','utf8','utf8_general_ci','utf8mb4_general_ci','begin\n  set @qwe= concat(\'ALTER TABLE \', t_schema, \'.\', t_name, \' DROP \', geometry_column); PREPARE ls from @qwe; execute ls; deallocate prepare ls; end','NONE');
/*!40000 ALTER TABLE `proc` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `procs_priv`
--

DROP TABLE IF EXISTS `procs_priv`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `procs_priv` (
  `Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
  `Db` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
  `User` char(80) COLLATE utf8_bin NOT NULL DEFAULT '',
  `Routine_name` char(64) CHARACTER SET utf8 NOT NULL DEFAULT '',
  `Routine_type` enum('FUNCTION','PROCEDURE','PACKAGE','PACKAGE BODY') COLLATE utf8_bin NOT NULL,
  `Grantor` char(141) COLLATE utf8_bin NOT NULL DEFAULT '',
  `Proc_priv` set('Execute','Alter Routine','Grant') CHARACTER SET utf8 NOT NULL DEFAULT '',
  `Timestamp` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`Host`,`Db`,`User`,`Routine_name`,`Routine_type`),
  KEY `Grantor` (`Grantor`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Procedure privileges';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `procs_priv`
--

LOCK TABLES `procs_priv` WRITE;
/*!40000 ALTER TABLE `procs_priv` DISABLE KEYS */;
/*!40000 ALTER TABLE `procs_priv` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `proxies_priv`
--

DROP TABLE IF EXISTS `proxies_priv`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `proxies_priv` (
  `Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
  `User` char(80) COLLATE utf8_bin NOT NULL DEFAULT '',
  `Proxied_host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
  `Proxied_user` char(80) COLLATE utf8_bin NOT NULL DEFAULT '',
  `With_grant` tinyint(1) NOT NULL DEFAULT 0,
  `Grantor` char(141) COLLATE utf8_bin NOT NULL DEFAULT '',
  `Timestamp` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`Host`,`User`,`Proxied_host`,`Proxied_user`),
  KEY `Grantor` (`Grantor`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='User proxy privileges';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `proxies_priv`
--

LOCK TABLES `proxies_priv` WRITE;
/*!40000 ALTER TABLE `proxies_priv` DISABLE KEYS */;
INSERT INTO `proxies_priv` VALUES ('localhost','root','','',1,'','2021-06-08 02:27:46');
/*!40000 ALTER TABLE `proxies_priv` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `roles_mapping`
--

DROP TABLE IF EXISTS `roles_mapping`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `roles_mapping` (
  `Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
  `User` char(80) COLLATE utf8_bin NOT NULL DEFAULT '',
  `Role` char(80) COLLATE utf8_bin NOT NULL DEFAULT '',
  `Admin_option` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  UNIQUE KEY `Host` (`Host`,`User`,`Role`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Granted roles';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `roles_mapping`
--

LOCK TABLES `roles_mapping` WRITE;
/*!40000 ALTER TABLE `roles_mapping` DISABLE KEYS */;
/*!40000 ALTER TABLE `roles_mapping` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `servers`
--

DROP TABLE IF EXISTS `servers`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `servers` (
  `Server_name` char(64) NOT NULL DEFAULT '',
  `Host` varchar(2048) NOT NULL DEFAULT '',
  `Db` char(64) NOT NULL DEFAULT '',
  `Username` char(80) NOT NULL DEFAULT '',
  `Password` char(64) NOT NULL DEFAULT '',
  `Port` int(4) NOT NULL DEFAULT 0,
  `Socket` char(64) NOT NULL DEFAULT '',
  `Wrapper` char(64) NOT NULL DEFAULT '',
  `Owner` varchar(512) NOT NULL DEFAULT '',
  PRIMARY KEY (`Server_name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='MySQL Foreign Servers table';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `servers`
--

LOCK TABLES `servers` WRITE;
/*!40000 ALTER TABLE `servers` DISABLE KEYS */;
/*!40000 ALTER TABLE `servers` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `table_stats`
--

DROP TABLE IF EXISTS `table_stats`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `table_stats` (
  `db_name` varchar(64) COLLATE utf8_bin NOT NULL,
  `table_name` varchar(64) COLLATE utf8_bin NOT NULL,
  `cardinality` bigint(21) unsigned DEFAULT NULL,
  PRIMARY KEY (`db_name`,`table_name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Statistics on Tables';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `table_stats`
--

LOCK TABLES `table_stats` WRITE;
/*!40000 ALTER TABLE `table_stats` DISABLE KEYS */;
/*!40000 ALTER TABLE `table_stats` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `tables_priv`
--

DROP TABLE IF EXISTS `tables_priv`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `tables_priv` (
  `Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
  `Db` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
  `User` char(80) COLLATE utf8_bin NOT NULL DEFAULT '',
  `Table_name` char(64) COLLATE utf8_bin NOT NULL DEFAULT '',
  `Grantor` char(141) COLLATE utf8_bin NOT NULL DEFAULT '',
  `Timestamp` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `Table_priv` set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger','Delete versioning rows') CHARACTER SET utf8 NOT NULL DEFAULT '',
  `Column_priv` set('Select','Insert','Update','References') CHARACTER SET utf8 NOT NULL DEFAULT '',
  PRIMARY KEY (`Host`,`Db`,`User`,`Table_name`),
  KEY `Grantor` (`Grantor`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Table privileges';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `tables_priv`
--

LOCK TABLES `tables_priv` WRITE;
/*!40000 ALTER TABLE `tables_priv` DISABLE KEYS */;
/*!40000 ALTER TABLE `tables_priv` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `time_zone`
--

DROP TABLE IF EXISTS `time_zone`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `time_zone` (
  `Time_zone_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `Use_leap_seconds` enum('Y','N') NOT NULL DEFAULT 'N',
  PRIMARY KEY (`Time_zone_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Time zones';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `time_zone`
--

LOCK TABLES `time_zone` WRITE;
/*!40000 ALTER TABLE `time_zone` DISABLE KEYS */;
/*!40000 ALTER TABLE `time_zone` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `time_zone_leap_second`
--

DROP TABLE IF EXISTS `time_zone_leap_second`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `time_zone_leap_second` (
  `Transition_time` bigint(20) NOT NULL,
  `Correction` int(11) NOT NULL,
  PRIMARY KEY (`Transition_time`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Leap seconds information for time zones';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `time_zone_leap_second`
--

LOCK TABLES `time_zone_leap_second` WRITE;
/*!40000 ALTER TABLE `time_zone_leap_second` DISABLE KEYS */;
/*!40000 ALTER TABLE `time_zone_leap_second` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `time_zone_name`
--

DROP TABLE IF EXISTS `time_zone_name`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `time_zone_name` (
  `Name` char(64) NOT NULL,
  `Time_zone_id` int(10) unsigned NOT NULL,
  PRIMARY KEY (`Name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Time zone names';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `time_zone_name`
--

LOCK TABLES `time_zone_name` WRITE;
/*!40000 ALTER TABLE `time_zone_name` DISABLE KEYS */;
/*!40000 ALTER TABLE `time_zone_name` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `time_zone_transition`
--

DROP TABLE IF EXISTS `time_zone_transition`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `time_zone_transition` (
  `Time_zone_id` int(10) unsigned NOT NULL,
  `Transition_time` bigint(20) NOT NULL,
  `Transition_type_id` int(10) unsigned NOT NULL,
  PRIMARY KEY (`Time_zone_id`,`Transition_time`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Time zone transitions';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `time_zone_transition`
--

LOCK TABLES `time_zone_transition` WRITE;
/*!40000 ALTER TABLE `time_zone_transition` DISABLE KEYS */;
/*!40000 ALTER TABLE `time_zone_transition` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `time_zone_transition_type`
--

DROP TABLE IF EXISTS `time_zone_transition_type`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `time_zone_transition_type` (
  `Time_zone_id` int(10) unsigned NOT NULL,
  `Transition_type_id` int(10) unsigned NOT NULL,
  `Offset` int(11) NOT NULL DEFAULT 0,
  `Is_DST` tinyint(3) unsigned NOT NULL DEFAULT 0,
  `Abbreviation` char(8) NOT NULL DEFAULT '',
  PRIMARY KEY (`Time_zone_id`,`Transition_type_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Time zone transition types';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `time_zone_transition_type`
--

LOCK TABLES `time_zone_transition_type` WRITE;
/*!40000 ALTER TABLE `time_zone_transition_type` DISABLE KEYS */;
/*!40000 ALTER TABLE `time_zone_transition_type` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `user`
--

DROP TABLE IF EXISTS `user`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `user` (
  `Host` char(60) COLLATE utf8_bin NOT NULL DEFAULT '',
  `User` char(80) COLLATE utf8_bin NOT NULL DEFAULT '',
  `Password` char(41) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL DEFAULT '',
  `Select_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Insert_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Update_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Delete_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Create_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Drop_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Reload_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Shutdown_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Process_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `File_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Grant_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `References_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Index_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Alter_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Show_db_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Super_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Create_tmp_table_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Lock_tables_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Execute_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Repl_slave_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Repl_client_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Create_view_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Show_view_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Create_routine_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Alter_routine_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Create_user_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Event_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Trigger_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Create_tablespace_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `Delete_history_priv` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `ssl_type` enum('','ANY','X509','SPECIFIED') CHARACTER SET utf8 NOT NULL DEFAULT '',
  `ssl_cipher` blob NOT NULL,
  `x509_issuer` blob NOT NULL,
  `x509_subject` blob NOT NULL,
  `max_questions` int(11) unsigned NOT NULL DEFAULT 0,
  `max_updates` int(11) unsigned NOT NULL DEFAULT 0,
  `max_connections` int(11) unsigned NOT NULL DEFAULT 0,
  `max_user_connections` int(11) NOT NULL DEFAULT 0,
  `plugin` char(64) CHARACTER SET latin1 NOT NULL DEFAULT '',
  `authentication_string` text COLLATE utf8_bin NOT NULL,
  `password_expired` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `is_role` enum('N','Y') CHARACTER SET utf8 NOT NULL DEFAULT 'N',
  `default_role` char(80) COLLATE utf8_bin NOT NULL DEFAULT '',
  `max_statement_time` decimal(12,6) NOT NULL DEFAULT 0.000000,
  PRIMARY KEY (`Host`,`User`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Users and global privileges';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `user`
--

LOCK TABLES `user` WRITE;
/*!40000 ALTER TABLE `user` DISABLE KEYS */;
INSERT INTO `user` VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'unix_socket','','N','N','',0.000000),('localhost','phpadmin','*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','','','','',0,0,0,0,'','','N','N','',0.000000),('localhost','wordpress','*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','','','','',0,0,0,0,'','','N','N','',0.000000);
/*!40000 ALTER TABLE `user` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `general_log`
--

/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE IF NOT EXISTS `general_log` (
  `event_time` timestamp(6) NOT NULL DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),
  `user_host` mediumtext NOT NULL,
  `thread_id` bigint(21) unsigned NOT NULL,
  `server_id` int(10) unsigned NOT NULL,
  `command_type` varchar(64) NOT NULL,
  `argument` mediumtext NOT NULL
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='General log';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `slow_log`
--

/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE IF NOT EXISTS `slow_log` (
  `start_time` timestamp(6) NOT NULL DEFAULT current_timestamp(6) ON UPDATE current_timestamp(6),
  `user_host` mediumtext NOT NULL,
  `query_time` time(6) NOT NULL,
  `lock_time` time(6) NOT NULL,
  `rows_sent` int(11) NOT NULL,
  `rows_examined` int(11) NOT NULL,
  `db` varchar(512) NOT NULL,
  `last_insert_id` int(11) NOT NULL,
  `insert_id` int(11) NOT NULL,
  `server_id` int(10) unsigned NOT NULL,
  `sql_text` mediumtext NOT NULL,
  `thread_id` bigint(21) unsigned NOT NULL,
  `rows_affected` int(11) NOT NULL
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log';
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Table structure for table `transaction_registry`
--

/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE IF NOT EXISTS `transaction_registry` (
  `transaction_id` bigint(20) unsigned NOT NULL,
  `commit_id` bigint(20) unsigned NOT NULL,
  `begin_timestamp` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000',
  `commit_timestamp` timestamp(6) NOT NULL DEFAULT '0000-00-00 00:00:00.000000',
  `isolation_level` enum('READ-UNCOMMITTED','READ-COMMITTED','REPEATABLE-READ','SERIALIZABLE') COLLATE utf8_bin NOT NULL,
  PRIMARY KEY (`transaction_id`),
  UNIQUE KEY `commit_id` (`commit_id`),
  KEY `begin_timestamp` (`begin_timestamp`),
  KEY `commit_timestamp` (`commit_timestamp`,`transaction_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin STATS_PERSISTENT=0;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Current Database: `phpadmin`
--

CREATE DATABASE /*!32312 IF NOT EXISTS*/ `phpadmin` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;

USE `phpadmin`;

--
-- Current Database: `wordpress`
--

CREATE DATABASE /*!32312 IF NOT EXISTS*/ `wordpress` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;

USE `wordpress`;

--
-- Table structure for table `wp_commentmeta`
--

DROP TABLE IF EXISTS `wp_commentmeta`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `wp_commentmeta` (
  `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `comment_id` bigint(20) unsigned NOT NULL DEFAULT 0,
  `meta_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `meta_value` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  PRIMARY KEY (`meta_id`),
  KEY `comment_id` (`comment_id`),
  KEY `meta_key` (`meta_key`(191))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `wp_commentmeta`
--

LOCK TABLES `wp_commentmeta` WRITE;
/*!40000 ALTER TABLE `wp_commentmeta` DISABLE KEYS */;
/*!40000 ALTER TABLE `wp_commentmeta` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `wp_comments`
--

DROP TABLE IF EXISTS `wp_comments`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `wp_comments` (
  `comment_ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `comment_post_ID` bigint(20) unsigned NOT NULL DEFAULT 0,
  `comment_author` tinytext COLLATE utf8mb4_unicode_ci NOT NULL,
  `comment_author_email` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `comment_author_url` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `comment_author_IP` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `comment_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `comment_date_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `comment_content` text COLLATE utf8mb4_unicode_ci NOT NULL,
  `comment_karma` int(11) NOT NULL DEFAULT 0,
  `comment_approved` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '1',
  `comment_agent` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `comment_type` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'comment',
  `comment_parent` bigint(20) unsigned NOT NULL DEFAULT 0,
  `user_id` bigint(20) unsigned NOT NULL DEFAULT 0,
  PRIMARY KEY (`comment_ID`),
  KEY `comment_post_ID` (`comment_post_ID`),
  KEY `comment_approved_date_gmt` (`comment_approved`,`comment_date_gmt`),
  KEY `comment_date_gmt` (`comment_date_gmt`),
  KEY `comment_parent` (`comment_parent`),
  KEY `comment_author_email` (`comment_author_email`(10))
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `wp_comments`
--

LOCK TABLES `wp_comments` WRITE;
/*!40000 ALTER TABLE `wp_comments` DISABLE KEYS */;
INSERT INTO `wp_comments` VALUES (1,1,'A WordPress Commenter','wapuu@wordpress.example','https://wordpress.org/','','2021-06-08 03:35:34','2021-06-08 02:35:34','Hi, this is a comment.\nTo get started with moderating, editing, and deleting comments, please visit the Comments screen in the dashboard.\nCommenter avatars come from <a href=\"https://gravatar.com\">Gravatar</a>.',0,'1','','comment',0,0);
/*!40000 ALTER TABLE `wp_comments` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `wp_links`
--

DROP TABLE IF EXISTS `wp_links`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `wp_links` (
  `link_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `link_url` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `link_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `link_image` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `link_target` varchar(25) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `link_description` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `link_visible` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'Y',
  `link_owner` bigint(20) unsigned NOT NULL DEFAULT 1,
  `link_rating` int(11) NOT NULL DEFAULT 0,
  `link_updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `link_rel` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `link_notes` mediumtext COLLATE utf8mb4_unicode_ci NOT NULL,
  `link_rss` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  PRIMARY KEY (`link_id`),
  KEY `link_visible` (`link_visible`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `wp_links`
--

LOCK TABLES `wp_links` WRITE;
/*!40000 ALTER TABLE `wp_links` DISABLE KEYS */;
/*!40000 ALTER TABLE `wp_links` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `wp_options`
--

DROP TABLE IF EXISTS `wp_options`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `wp_options` (
  `option_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `option_name` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `option_value` longtext COLLATE utf8mb4_unicode_ci NOT NULL,
  `autoload` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'yes',
  PRIMARY KEY (`option_id`),
  UNIQUE KEY `option_name` (`option_name`),
  KEY `autoload` (`autoload`)
) ENGINE=InnoDB AUTO_INCREMENT=148 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `wp_options`
--

LOCK TABLES `wp_options` WRITE;
/*!40000 ALTER TABLE `wp_options` DISABLE KEYS */;
INSERT INTO `wp_options` VALUES (1,'siteurl','https://localhost/wordpress','yes'),(2,'home','https://localhost/wordpress','yes'),(3,'blogname','Website','yes'),(4,'blogdescription','Just another WordPress site','yes'),(5,'users_can_register','0','yes'),(6,'admin_email','djonker@student.codam.nl','yes'),(7,'start_of_week','1','yes'),(8,'use_balanceTags','0','yes'),(9,'use_smilies','1','yes'),(10,'require_name_email','1','yes'),(11,'comments_notify','1','yes'),(12,'posts_per_rss','10','yes'),(13,'rss_use_excerpt','0','yes'),(14,'mailserver_url','mail.example.com','yes'),(15,'mailserver_login','login@example.com','yes'),(16,'mailserver_pass','password','yes'),(17,'mailserver_port','110','yes'),(18,'default_category','1','yes'),(19,'default_comment_status','open','yes'),(20,'default_ping_status','open','yes'),(21,'default_pingback_flag','0','yes'),(22,'posts_per_page','10','yes'),(23,'date_format','j F Y','yes'),(24,'time_format','g:i a','yes'),(25,'links_updated_date_format','j F Y H:i','yes'),(26,'comment_moderation','0','yes'),(27,'moderation_notify','1','yes'),(28,'permalink_structure','','yes'),(29,'rewrite_rules','','yes'),(30,'hack_file','0','yes'),(31,'blog_charset','UTF-8','yes'),(32,'moderation_keys','','no'),(33,'active_plugins','a:0:{}','yes'),(34,'category_base','','yes'),(35,'ping_sites','http://rpc.pingomatic.com/','yes'),(36,'comment_max_links','2','yes'),(37,'gmt_offset','0','yes'),(38,'default_email_category','1','yes'),(39,'recently_edited','','no'),(40,'template','twentytwentyone','yes'),(41,'stylesheet','twentytwentyone','yes'),(42,'comment_registration','0','yes'),(43,'html_type','text/html','yes'),(44,'use_trackback','0','yes'),(45,'default_role','subscriber','yes'),(46,'db_version','49752','yes'),(47,'uploads_use_yearmonth_folders','1','yes'),(48,'upload_path','','yes'),(49,'blog_public','0','yes'),(50,'default_link_category','2','yes'),(51,'show_on_front','posts','yes'),(52,'tag_base','','yes'),(53,'show_avatars','1','yes'),(54,'avatar_rating','G','yes'),(55,'upload_url_path','','yes'),(56,'thumbnail_size_w','150','yes'),(57,'thumbnail_size_h','150','yes'),(58,'thumbnail_crop','1','yes'),(59,'medium_size_w','300','yes'),(60,'medium_size_h','300','yes'),(61,'avatar_default','mystery','yes'),(62,'large_size_w','1024','yes'),(63,'large_size_h','1024','yes'),(64,'image_default_link_type','none','yes'),(65,'image_default_size','','yes'),(66,'image_default_align','','yes'),(67,'close_comments_for_old_posts','0','yes'),(68,'close_comments_days_old','14','yes'),(69,'thread_comments','1','yes'),(70,'thread_comments_depth','5','yes'),(71,'page_comments','0','yes'),(72,'comments_per_page','50','yes'),(73,'default_comments_page','newest','yes'),(74,'comment_order','asc','yes'),(75,'sticky_posts','a:0:{}','yes'),(76,'widget_categories','a:2:{i:2;a:4:{s:5:\"title\";s:0:\"\";s:5:\"count\";i:0;s:12:\"hierarchical\";i:0;s:8:\"dropdown\";i:0;}s:12:\"_multiwidget\";i:1;}','yes'),(77,'widget_text','a:0:{}','yes'),(78,'widget_rss','a:0:{}','yes'),(79,'uninstall_plugins','a:0:{}','no'),(80,'timezone_string','Europe/London','yes'),(81,'page_for_posts','0','yes'),(82,'page_on_front','0','yes'),(83,'default_post_format','0','yes'),(84,'link_manager_enabled','0','yes'),(85,'finished_splitting_shared_terms','1','yes'),(86,'site_icon','0','yes'),(87,'medium_large_size_w','768','yes'),(88,'medium_large_size_h','0','yes'),(89,'wp_page_for_privacy_policy','3','yes'),(90,'show_comments_cookies_opt_in','1','yes'),(91,'admin_email_lifespan','1638671733','yes'),(92,'disallowed_keys','','no'),(93,'comment_previously_approved','1','yes'),(94,'auto_plugin_theme_update_emails','a:0:{}','no'),(95,'auto_update_core_dev','enabled','yes'),(96,'auto_update_core_minor','enabled','yes'),(97,'auto_update_core_major','enabled','yes'),(98,'initial_db_version','49752','yes'),(99,'wp_user_roles','a:5:{s:13:\"administrator\";a:2:{s:4:\"name\";s:13:\"Administrator\";s:12:\"capabilities\";a:61:{s:13:\"switch_themes\";b:1;s:11:\"edit_themes\";b:1;s:16:\"activate_plugins\";b:1;s:12:\"edit_plugins\";b:1;s:10:\"edit_users\";b:1;s:10:\"edit_files\";b:1;s:14:\"manage_options\";b:1;s:17:\"moderate_comments\";b:1;s:17:\"manage_categories\";b:1;s:12:\"manage_links\";b:1;s:12:\"upload_files\";b:1;s:6:\"import\";b:1;s:15:\"unfiltered_html\";b:1;s:10:\"edit_posts\";b:1;s:17:\"edit_others_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:10:\"edit_pages\";b:1;s:4:\"read\";b:1;s:8:\"level_10\";b:1;s:7:\"level_9\";b:1;s:7:\"level_8\";b:1;s:7:\"level_7\";b:1;s:7:\"level_6\";b:1;s:7:\"level_5\";b:1;s:7:\"level_4\";b:1;s:7:\"level_3\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:17:\"edit_others_pages\";b:1;s:20:\"edit_published_pages\";b:1;s:13:\"publish_pages\";b:1;s:12:\"delete_pages\";b:1;s:19:\"delete_others_pages\";b:1;s:22:\"delete_published_pages\";b:1;s:12:\"delete_posts\";b:1;s:19:\"delete_others_posts\";b:1;s:22:\"delete_published_posts\";b:1;s:20:\"delete_private_posts\";b:1;s:18:\"edit_private_posts\";b:1;s:18:\"read_private_posts\";b:1;s:20:\"delete_private_pages\";b:1;s:18:\"edit_private_pages\";b:1;s:18:\"read_private_pages\";b:1;s:12:\"delete_users\";b:1;s:12:\"create_users\";b:1;s:17:\"unfiltered_upload\";b:1;s:14:\"edit_dashboard\";b:1;s:14:\"update_plugins\";b:1;s:14:\"delete_plugins\";b:1;s:15:\"install_plugins\";b:1;s:13:\"update_themes\";b:1;s:14:\"install_themes\";b:1;s:11:\"update_core\";b:1;s:10:\"list_users\";b:1;s:12:\"remove_users\";b:1;s:13:\"promote_users\";b:1;s:18:\"edit_theme_options\";b:1;s:13:\"delete_themes\";b:1;s:6:\"export\";b:1;}}s:6:\"editor\";a:2:{s:4:\"name\";s:6:\"Editor\";s:12:\"capabilities\";a:34:{s:17:\"moderate_comments\";b:1;s:17:\"manage_categories\";b:1;s:12:\"manage_links\";b:1;s:12:\"upload_files\";b:1;s:15:\"unfiltered_html\";b:1;s:10:\"edit_posts\";b:1;s:17:\"edit_others_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:10:\"edit_pages\";b:1;s:4:\"read\";b:1;s:7:\"level_7\";b:1;s:7:\"level_6\";b:1;s:7:\"level_5\";b:1;s:7:\"level_4\";b:1;s:7:\"level_3\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:17:\"edit_others_pages\";b:1;s:20:\"edit_published_pages\";b:1;s:13:\"publish_pages\";b:1;s:12:\"delete_pages\";b:1;s:19:\"delete_others_pages\";b:1;s:22:\"delete_published_pages\";b:1;s:12:\"delete_posts\";b:1;s:19:\"delete_others_posts\";b:1;s:22:\"delete_published_posts\";b:1;s:20:\"delete_private_posts\";b:1;s:18:\"edit_private_posts\";b:1;s:18:\"read_private_posts\";b:1;s:20:\"delete_private_pages\";b:1;s:18:\"edit_private_pages\";b:1;s:18:\"read_private_pages\";b:1;}}s:6:\"author\";a:2:{s:4:\"name\";s:6:\"Author\";s:12:\"capabilities\";a:10:{s:12:\"upload_files\";b:1;s:10:\"edit_posts\";b:1;s:20:\"edit_published_posts\";b:1;s:13:\"publish_posts\";b:1;s:4:\"read\";b:1;s:7:\"level_2\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:12:\"delete_posts\";b:1;s:22:\"delete_published_posts\";b:1;}}s:11:\"contributor\";a:2:{s:4:\"name\";s:11:\"Contributor\";s:12:\"capabilities\";a:5:{s:10:\"edit_posts\";b:1;s:4:\"read\";b:1;s:7:\"level_1\";b:1;s:7:\"level_0\";b:1;s:12:\"delete_posts\";b:1;}}s:10:\"subscriber\";a:2:{s:4:\"name\";s:10:\"Subscriber\";s:12:\"capabilities\";a:2:{s:4:\"read\";b:1;s:7:\"level_0\";b:1;}}}','yes'),(100,'fresh_site','1','yes'),(101,'WPLANG','en_GB','yes'),(102,'widget_search','a:2:{i:2;a:1:{s:5:\"title\";s:0:\"\";}s:12:\"_multiwidget\";i:1;}','yes'),(103,'widget_recent-posts','a:2:{i:2;a:2:{s:5:\"title\";s:0:\"\";s:6:\"number\";i:5;}s:12:\"_multiwidget\";i:1;}','yes'),(104,'widget_recent-comments','a:2:{i:2;a:2:{s:5:\"title\";s:0:\"\";s:6:\"number\";i:5;}s:12:\"_multiwidget\";i:1;}','yes'),(105,'widget_archives','a:2:{i:2;a:3:{s:5:\"title\";s:0:\"\";s:5:\"count\";i:0;s:8:\"dropdown\";i:0;}s:12:\"_multiwidget\";i:1;}','yes'),(106,'widget_meta','a:2:{i:2;a:1:{s:5:\"title\";s:0:\"\";}s:12:\"_multiwidget\";i:1;}','yes'),(107,'sidebars_widgets','a:4:{s:19:\"wp_inactive_widgets\";a:0:{}s:9:\"sidebar-1\";a:3:{i:0;s:8:\"search-2\";i:1;s:14:\"recent-posts-2\";i:2;s:17:\"recent-comments-2\";}s:9:\"sidebar-2\";a:3:{i:0;s:10:\"archives-2\";i:1;s:12:\"categories-2\";i:2;s:6:\"meta-2\";}s:13:\"array_version\";i:3;}','yes'),(108,'cron','a:4:{i:1623123336;a:1:{s:34:\"wp_privacy_delete_old_export_files\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"hourly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:3600;}}}i:1623162936;a:4:{s:18:\"wp_https_detection\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}s:16:\"wp_version_check\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}s:17:\"wp_update_plugins\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}s:16:\"wp_update_themes\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:10:\"twicedaily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:43200;}}}i:1623206136;a:2:{s:30:\"wp_site_health_scheduled_check\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:6:\"weekly\";s:4:\"args\";a:0:{}s:8:\"interval\";i:604800;}}s:32:\"recovery_mode_clean_expired_keys\";a:1:{s:32:\"40cd750bba9870f18aada2478b24840a\";a:3:{s:8:\"schedule\";s:5:\"daily\";s:4:\"args\";a:0:{}s:8:\"interval\";i:86400;}}}s:7:\"version\";i:2;}','yes'),(109,'widget_pages','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(110,'widget_calendar','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(111,'widget_media_audio','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(112,'widget_media_image','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(113,'widget_media_gallery','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(114,'widget_media_video','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(115,'widget_tag_cloud','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(116,'widget_nav_menu','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(117,'widget_custom_html','a:1:{s:12:\"_multiwidget\";i:1;}','yes'),(119,'recovery_keys','a:0:{}','yes'),(120,'theme_mods_twentytwentyone','a:1:{s:18:\"custom_css_post_id\";i:-1;}','yes'),(121,'https_detection_errors','a:1:{s:23:\"ssl_verification_failed\";a:1:{i:0;s:24:\"SSL verification failed.\";}}','yes'),(125,'_site_transient_timeout_theme_roots','1623121537','no'),(126,'_site_transient_theme_roots','a:3:{s:14:\"twentynineteen\";s:7:\"/themes\";s:12:\"twentytwenty\";s:7:\"/themes\";s:15:\"twentytwentyone\";s:7:\"/themes\";}','no'),(128,'_site_transient_timeout_browser_c03f7c223f64b839523ee6de59d7481d','1623724540','no'),(129,'_site_transient_browser_c03f7c223f64b839523ee6de59d7481d','a:10:{s:4:\"name\";s:7:\"Firefox\";s:7:\"version\";s:4:\"89.0\";s:8:\"platform\";s:5:\"Linux\";s:10:\"update_url\";s:32:\"https://www.mozilla.org/firefox/\";s:7:\"img_src\";s:44:\"http://s.w.org/images/browsers/firefox.png?1\";s:11:\"img_src_ssl\";s:45:\"https://s.w.org/images/browsers/firefox.png?1\";s:15:\"current_version\";s:2:\"56\";s:7:\"upgrade\";b:0;s:8:\"insecure\";b:0;s:6:\"mobile\";b:0;}','no'),(130,'_site_transient_timeout_php_check_41c0e750af9891e9b7c1e7d65fb137c0','1623724541','no'),(131,'_site_transient_php_check_41c0e750af9891e9b7c1e7d65fb137c0','a:5:{s:19:\"recommended_version\";s:3:\"7.4\";s:15:\"minimum_version\";s:6:\"5.6.20\";s:12:\"is_supported\";b:0;s:9:\"is_secure\";b:1;s:13:\"is_acceptable\";b:1;}','no'),(132,'_site_transient_timeout_community-events-e2f2ed925cc0dc7eddd67ec58c0404fa','1623162942','no'),(133,'_site_transient_community-events-e2f2ed925cc0dc7eddd67ec58c0404fa','a:4:{s:9:\"sandboxed\";b:0;s:5:\"error\";N;s:8:\"location\";a:1:{s:2:\"ip\";s:10:\"172.17.0.0\";}s:6:\"events\";a:5:{i:0;a:10:{s:4:\"type\";s:6:\"meetup\";s:5:\"title\";s:43:\"WordPress Meetup Nijmegen: To be announced.\";s:3:\"url\";s:66:\"https://www.meetup.com/WordPress-Meetup-Nijmegen/events/277572569/\";s:6:\"meetup\";s:25:\"WordPress Meetup Nijmegen\";s:10:\"meetup_url\";s:49:\"https://www.meetup.com/WordPress-Meetup-Nijmegen/\";s:4:\"date\";s:19:\"2021-06-16 20:00:00\";s:8:\"end_date\";s:19:\"2021-06-16 22:00:00\";s:20:\"start_unix_timestamp\";i:1623866400;s:18:\"end_unix_timestamp\";i:1623873600;s:8:\"location\";a:4:{s:8:\"location\";s:6:\"Online\";s:7:\"country\";s:2:\"NL\";s:8:\"latitude\";d:51.840000152588;s:9:\"longitude\";d:5.8499999046326;}}i:1;a:10:{s:4:\"type\";s:6:\"meetup\";s:5:\"title\";s:23:\"WordPress Meetup Zwolle\";s:3:\"url\";s:68:\"https://www.meetup.com/Zwolle-WordPress-Meetup/events/nsmmmrycckblb/\";s:6:\"meetup\";s:23:\"WordPress Meetup Zwolle\";s:10:\"meetup_url\";s:47:\"https://www.meetup.com/Zwolle-WordPress-Meetup/\";s:4:\"date\";s:19:\"2021-07-08 18:45:00\";s:8:\"end_date\";s:19:\"2021-07-08 20:55:00\";s:20:\"start_unix_timestamp\";i:1625762700;s:18:\"end_unix_timestamp\";i:1625770500;s:8:\"location\";a:4:{s:8:\"location\";s:19:\"Zwolle, Netherlands\";s:7:\"country\";s:2:\"nl\";s:8:\"latitude\";d:52.508583068848;s:9:\"longitude\";d:6.0933017730713;}}i:2;a:10:{s:4:\"type\";s:6:\"meetup\";s:5:\"title\";s:23:\"WordPress Meetup Zwolle\";s:3:\"url\";s:68:\"https://www.meetup.com/Zwolle-WordPress-Meetup/events/nsmmmrycclbqb/\";s:6:\"meetup\";s:23:\"WordPress Meetup Zwolle\";s:10:\"meetup_url\";s:47:\"https://www.meetup.com/Zwolle-WordPress-Meetup/\";s:4:\"date\";s:19:\"2021-08-12 18:45:00\";s:8:\"end_date\";s:19:\"2021-08-12 20:55:00\";s:20:\"start_unix_timestamp\";i:1628786700;s:18:\"end_unix_timestamp\";i:1628794500;s:8:\"location\";a:4:{s:8:\"location\";s:19:\"Zwolle, Netherlands\";s:7:\"country\";s:2:\"nl\";s:8:\"latitude\";d:52.508583068848;s:9:\"longitude\";d:6.0933017730713;}}i:3;a:10:{s:4:\"type\";s:6:\"meetup\";s:5:\"title\";s:23:\"WordPress Meetup Zwolle\";s:3:\"url\";s:68:\"https://www.meetup.com/Zwolle-WordPress-Meetup/events/nsmmmryccmbmb/\";s:6:\"meetup\";s:23:\"WordPress Meetup Zwolle\";s:10:\"meetup_url\";s:47:\"https://www.meetup.com/Zwolle-WordPress-Meetup/\";s:4:\"date\";s:19:\"2021-09-09 18:45:00\";s:8:\"end_date\";s:19:\"2021-09-09 20:55:00\";s:20:\"start_unix_timestamp\";i:1631205900;s:18:\"end_unix_timestamp\";i:1631213700;s:8:\"location\";a:4:{s:8:\"location\";s:19:\"Zwolle, Netherlands\";s:7:\"country\";s:2:\"nl\";s:8:\"latitude\";d:52.508583068848;s:9:\"longitude\";d:6.0933017730713;}}i:4;a:10:{s:4:\"type\";s:6:\"meetup\";s:5:\"title\";s:23:\"WordPress Meetup Zwolle\";s:3:\"url\";s:68:\"https://www.meetup.com/Zwolle-WordPress-Meetup/events/nsmmmryccnbsb/\";s:6:\"meetup\";s:23:\"WordPress Meetup Zwolle\";s:10:\"meetup_url\";s:47:\"https://www.meetup.com/Zwolle-WordPress-Meetup/\";s:4:\"date\";s:19:\"2021-10-14 18:45:00\";s:8:\"end_date\";s:19:\"2021-10-14 20:55:00\";s:20:\"start_unix_timestamp\";i:1634229900;s:18:\"end_unix_timestamp\";i:1634237700;s:8:\"location\";a:4:{s:8:\"location\";s:19:\"Zwolle, Netherlands\";s:7:\"country\";s:2:\"nl\";s:8:\"latitude\";d:52.508583068848;s:9:\"longitude\";d:6.0933017730713;}}}}','no'),(134,'can_compress_scripts','1','no'),(135,'_transient_timeout_feed_94d0b45cbbe5640144493b43a9e8f566','1623162942','no'),(136,'_transient_feed_94d0b45cbbe5640144493b43a9e8f566','a:4:{s:5:\"child\";a:1:{s:0:\"\";a:1:{s:3:\"rss\";a:1:{i:0;a:6:{s:4:\"data\";s:3:\"\n\n\n\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:7:\"version\";s:3:\"2.0\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:1:{s:0:\"\";a:1:{s:7:\"channel\";a:1:{i:0;a:6:{s:4:\"data\";s:49:\"\n	\n	\n	\n	\n	\n	\n	\n	\n	\n	\n		\n		\n		\n		\n		\n		\n		\n		\n		\n	\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:3:{s:0:\"\";a:7:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:20:\"Blog | WordPress.org\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:27:\"https://en-gb.wordpress.org\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:0:\"\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:13:\"lastBuildDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 28 May 2021 10:31:53 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"language\";a:1:{i:0;a:5:{s:4:\"data\";s:5:\"en-GB\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:9:\"generator\";a:1:{i:0;a:5:{s:4:\"data\";s:40:\"https://wordpress.org/?v=5.8-alpha-51086\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"item\";a:10:{i:0;a:6:{s:4:\"data\";s:73:\"\n		\n		\n					\n		\n		\n		\n				\n		\n\n					\n										\n					\n					\n			\n		\n		\n			\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:5:{s:0:\"\";a:7:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:40:\"Belated 18th Birthday Wishes, WordPress!\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:78:\"https://en-gb.wordpress.org/2021/05/28/belated-18th-birthday-wishes-wordpress/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"comments\";a:1:{i:0;a:5:{s:4:\"data\";s:86:\"https://en-gb.wordpress.org/2021/05/28/belated-18th-birthday-wishes-wordpress/#respond\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 28 May 2021 10:31:53 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"News\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://en-gb.wordpress.org/?p=1456\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:247:\"WordPress was launched on 27 May 2003 and, yesterday, became an adult! WordPress now powers 40% of the web. To celebrate, here is a list of 40 milestones that have led to this remarkable achievement. Grab your favourite food and drink and dive in!\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:11:\"Mark Robson\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:347:\"\n<p>WordPress was launched on 27 May 2003 and, yesterday, became an adult!</p>\n\n\n\n<p>WordPress now powers 40% of the web.</p>\n\n\n\n<p>To celebrate, here is a list of 40 milestones that have led to this remarkable achievement.</p>\n\n\n\n<p>Grab your favourite food and drink and <a href=\"https://en-gb.wordpress.org/40-percent-of-web/\">dive in</a>!</p>\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:36:\"http://wellformedweb.org/CommentAPI/\";a:1:{s:10:\"commentRss\";a:1:{i:0;a:5:{s:4:\"data\";s:83:\"https://en-gb.wordpress.org/2021/05/28/belated-18th-birthday-wishes-wordpress/feed/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:38:\"http://purl.org/rss/1.0/modules/slash/\";a:1:{s:8:\"comments\";a:1:{i:0;a:5:{s:4:\"data\";s:1:\"0\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:1;a:6:{s:4:\"data\";s:76:\"\n		\n		\n					\n		\n		\n		\n				\n		\n		\n\n					\n										\n					\n					\n			\n		\n		\n			\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:5:{s:0:\"\";a:7:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"WordPress 5.7.2 Security Release\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:72:\"https://en-gb.wordpress.org/2021/05/13/wordpress-5-7-2-security-release/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"comments\";a:1:{i:0;a:5:{s:4:\"data\";s:80:\"https://en-gb.wordpress.org/2021/05/13/wordpress-5-7-2-security-release/#respond\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 13 May 2021 10:27:36 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:2:{i:0;a:5:{s:4:\"data\";s:8:\"Releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:8:\"Security\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://en-gb.wordpress.org/?p=1436\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:356:\"WordPress 5.7.2 is now available. This security release features one security fix. Because this is a security release, it is recommended that you update your sites immediately. All versions since WordPress 3.7 have also been updated. WordPress 5.7.2 is a short-cycle security release. The next major release will be version 5.8. You can update to [&#8230;]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:11:\"Mark Robson\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:2189:\"\n<p>WordPress 5.7.2 is now available.</p>\n\n\n\n<p>This security release features one security fix. Because this is a security release, it is recommended that you update your sites immediately. All versions since WordPress 3.7 have also been updated.</p>\n\n\n\n<p>WordPress 5.7.2 is a short-cycle security release. The next major release will be version 5.8.</p>\n\n\n\n<p>You can update to WordPress 5.7.2 by downloading from WordPress.org, or by visiting your Dashboard → Updates and clicking &#8220;Update Now&#8221;.</p>\n\n\n\n<p>If you have sites that support automatic background updates, they’ve already started the update process.</p>\n\n\n\n<h3>Security Updates</h3>\n\n\n\n<p>One security issue affecting WordPress versions between 3.7 and 5.7. If you haven’t yet updated to 5.7, all WordPress versions since 3.7 have also been updated to fix the following security issue:</p>\n\n\n\n<ul><li>Object injection in PHPMailer,&nbsp;<a href=\"https://nvd.nist.gov/vuln/detail/CVE-2020-36326\">CVE-2020-36326</a>&nbsp;and&nbsp;<a href=\"https://nvd.nist.gov/vuln/detail/CVE-2018-19296\">CVE-2018-19296</a>.</li></ul>\n\n\n\n<p>Thank you to the members of the WordPress security team for implementing these fixes in WordPress.</p>\n\n\n\n<p>For more information refer to&nbsp;<a href=\"https://wordpress.org/support/wordpress-version/version-5-7-2/\">the version 5.7.2 HelpHub documentation</a>&nbsp;page.</p>\n\n\n\n<h3>Thanks and props!</h3>\n\n\n\n<p>The 5.7.2 release was led by&nbsp;<a href=\"https://profiles.wordpress.org/peterwilsoncc/\">@peterwilsoncc</a>&nbsp;and&nbsp;<a href=\"https://profiles.wordpress.org/audrasjb/\">@audrasjb</a>.</p>\n\n\n\n<p>Thank you to everyone who helped make WordPress 5.7.2 happen:&nbsp;<a href=\"https://profiles.wordpress.org/audrasjb\">@audrasjb</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ayeshrajans\">@ayeshrajans</a>,&nbsp;<a href=\"https://profiles.wordpress.org/desrosj\">@desrosj</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dd32\">@dd32</a>,&nbsp;<a href=\"https://profiles.wordpress.org/peterwilsoncc\">@peterwilsoncc</a>,&nbsp;<a href=\"https://profiles.wordpress.org/SergeyBiryukov\">@SergeyBiryukov</a>, and&nbsp;<a href=\"https://profiles.wordpress.org/xknown\">@xknown</a>.</p>\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:36:\"http://wellformedweb.org/CommentAPI/\";a:1:{s:10:\"commentRss\";a:1:{i:0;a:5:{s:4:\"data\";s:77:\"https://en-gb.wordpress.org/2021/05/13/wordpress-5-7-2-security-release/feed/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:38:\"http://purl.org/rss/1.0/modules/slash/\";a:1:{s:8:\"comments\";a:1:{i:0;a:5:{s:4:\"data\";s:1:\"0\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:2;a:6:{s:4:\"data\";s:76:\"\n		\n		\n					\n		\n		\n		\n				\n		\n		\n\n					\n										\n					\n					\n			\n		\n		\n			\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:5:{s:0:\"\";a:7:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:48:\"WordPress 5.7.1 Security and Maintenance Release\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:88:\"https://en-gb.wordpress.org/2021/04/15/wordpress-5-7-1-security-and-maintenance-release/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"comments\";a:1:{i:0;a:5:{s:4:\"data\";s:96:\"https://en-gb.wordpress.org/2021/04/15/wordpress-5-7-1-security-and-maintenance-release/#respond\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 15 Apr 2021 11:16:48 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:2:{i:0;a:5:{s:4:\"data\";s:8:\"Releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:8:\"Security\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://en-gb.wordpress.org/?p=1405\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:399:\"WordPress 5.7.1 is now available! This security and maintenance release features&#160;26 bug fixes&#160;in addition to two security fixes. Because this is a&#160;security release, it is recommended that you update your sites immediately. All versions since WordPress 4.7 have also been updated. WordPress 5.7.1 is a short-cycle security and maintenance release. The next major release will [&#8230;]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:11:\"Mark Robson\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:8948:\"\n<p>WordPress 5.7.1 is now available!</p>\n\n\n\n<p>This security and maintenance release features&nbsp;<a href=\"https://core.trac.wordpress.org/query?milestone=5.7.1&amp;group=component&amp;col=id&amp;col=summary&amp;col=milestone&amp;col=owner&amp;col=type&amp;col=status&amp;col=priority&amp;order=priority\">26 bug fixes</a>&nbsp;in addition to two security fixes. Because this is a&nbsp;<strong>security release</strong>, it is recommended that you update your sites immediately. All versions since WordPress 4.7 have also been updated.</p>\n\n\n\n<p>WordPress 5.7.1 is a short-cycle security and maintenance release. The next major release will be version 5.8.</p>\n\n\n\n<p>You can download WordPress 5.7.1 by downloading from WordPress.org, or by visiting your Dashboard → Updates and clicking “Update Now”.</p>\n\n\n\n<p>If you have sites that support automatic background updates, they’ve already started the update process.</p>\n\n\n\n<h3>Security Updates</h3>\n\n\n\n<p>Two security issues affect WordPress versions between 4.7 and 5.7. If you haven’t yet updated to 5.7, all WordPress versions since 4.7 have also been updated to fix the following security issues:</p>\n\n\n\n<ul><li>Thank you <a href=\"https://www.sonarsource.com/\">SonarSource</a> for reporting an XXE vulnerability within the media library affecting PHP 8.</li><li>Thank you <a href=\"https://mikaelkorpela.fi/\">Mikael Korpela</a> for reporting a data exposure vulnerability within the REST API.</li></ul>\n\n\n\n<p>Thank you to all of the reporters for&nbsp;<a href=\"https://make.wordpress.org/core/handbook/testing/reporting-security-vulnerabilities/\">privately disclosing the vulnerabilities</a>. This gave the security team time to fix the vulnerabilities before WordPress sites could be attacked.</p>\n\n\n\n<p>Props to&nbsp;<a href=\"https://profiles.wordpress.org/zieladam/\">Adam Zielinski</a>,&nbsp;<a href=\"https://profiles.wordpress.org/swissspidy/\">Pascal Birchler</a>,&nbsp;<a href=\"https://profiles.wordpress.org/peterwilsoncc/\">Peter Wilson</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jrf/\">Juliette Reinders Folmer</a>,&nbsp;<a href=\"https://profiles.wordpress.org/xknown/\">Alex Concha</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ehtis/\">Ehtisham Siddiqui</a>,&nbsp;<a href=\"https://profiles.wordpress.org/timothyblynjacobs/\">Timothy Jacobs</a>&nbsp;and the WordPress security team for their work on these issues.</p>\n\n\n\n<p>For more information, browse the&nbsp;<a href=\"https://core.trac.wordpress.org/query?milestone=5.7.1&amp;group=component&amp;col=id&amp;col=summary&amp;col=milestone&amp;col=owner&amp;col=type&amp;col=status&amp;col=priority&amp;order=priority\">full list of changes</a>&nbsp;on Trac, or check out the&nbsp;<a href=\"https://wordpress.org/support/wordpress-version/version-5-7-1/\">version 5.7.1 HelpHub documentation page</a>.</p>\n\n\n\n<h2>Thanks and props!</h2>\n\n\n\n<p>The 5.7.1 release was led by&nbsp;<a href=\"https://profiles.wordpress.org/peterwilsoncc/\">@peterwilsoncc</a>&nbsp;and&nbsp;<a href=\"https://profiles.wordpress.org/audrasjb/\">@audrasjb</a>.</p>\n\n\n\n<p>In addition to the security researchers and release squad members mentioned above, thank you to everyone who helped make WordPress 5.7.1 happen:</p>\n\n\n\n<p><a href=\"https://profiles.wordpress.org/ninetyninew/\">99w</a>,&nbsp;<a href=\"https://profiles.wordpress.org/adamsilverstein/\">Adam Silverstein</a>,&nbsp;<a href=\"https://profiles.wordpress.org/azaozz/\">Andrew Ozz</a>,&nbsp;<a href=\"https://profiles.wordpress.org/annalamprou/\">annalamprou</a>,&nbsp;<a href=\"https://profiles.wordpress.org/anotherdave/\">anotherdave</a>,&nbsp;<a href=\"https://profiles.wordpress.org/aristath/\">Ari Stathopoulos</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ayeshrajans/\">Ayesh Karunaratne</a>,&nbsp;<a href=\"https://profiles.wordpress.org/bobbingwide/\">bobbingwide</a>,&nbsp;<a href=\"https://profiles.wordpress.org/brechtvds/\">Brecht</a>,&nbsp;<a href=\"https://profiles.wordpress.org/talldanwp/\">Daniel Richards</a>,&nbsp;<a href=\"https://profiles.wordpress.org/davidbaumwald/\">David Baumwald</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dkoo/\">dkoo</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ocean90/\">Dominik Schilling</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dragongate/\">dragongate</a>,&nbsp;<a href=\"https://profiles.wordpress.org/eatsleepcode/\">eatsleepcode</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ellatrix/\">Ella van Durpe</a>,&nbsp;<a href=\"https://profiles.wordpress.org/kebbet/\">Erik</a>,&nbsp;<a href=\"https://profiles.wordpress.org/fabianpimminger/\">Fabian Pimminger</a>,&nbsp;<a href=\"https://profiles.wordpress.org/flixos90/\">Felix Arntz</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mista-flo/\">Florian TIAR</a>,&nbsp;<a href=\"https://profiles.wordpress.org/gab81/\">gab81</a>,&nbsp;<a href=\"https://profiles.wordpress.org/galbaras/\">Gal Baras</a>,&nbsp;<a href=\"https://profiles.wordpress.org/geoffrey1963/\">Geoffrey</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mamaduka/\">George Mamadashvili</a>,&nbsp;<a href=\"https://profiles.wordpress.org/glendaviesnz/\">Glen Davies</a>,&nbsp;<a href=\"https://profiles.wordpress.org/gziolo/\">Greg Ziółkowski</a>,&nbsp;<a href=\"https://profiles.wordpress.org/grzim/\">grzim</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ipstenu/\">Ipstenu (Mika Epstein)</a>,&nbsp;<a href=\"https://profiles.wordpress.org/whyisjake/\">Jake Spurlock</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jaymanpandya/\">Jayman Pandya</a>,&nbsp;<a href=\"https://profiles.wordpress.org/audrasjb/\">Jb Audras</a>,&nbsp;<a href=\"https://profiles.wordpress.org/joen/\">Joen A.</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jonkastonka/\">Johan Jonk Stenström</a>,&nbsp;<a href=\"https://profiles.wordpress.org/goaroundagain/\">Johannes Kinast</a>,&nbsp;<a href=\"https://profiles.wordpress.org/johnbillion/\">John Blackbourn</a>,&nbsp;<a href=\"https://profiles.wordpress.org/johnjamesjacoby/\">John James Jacoby</a>,&nbsp;<a href=\"https://profiles.wordpress.org/desrosj/\">Jonathan Desrosiers</a>,&nbsp;<a href=\"https://profiles.wordpress.org/joseeyoast/\">Josee Wouters</a>,&nbsp;<a href=\"https://profiles.wordpress.org/joyously/\">Joy</a>,&nbsp;<a href=\"https://profiles.wordpress.org/k3nsai/\">k3nsai</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ryelle/\">Kelly Choyce-Dwan</a>,&nbsp;<a href=\"https://profiles.wordpress.org/gwwar/\">Kerry Liu</a>,&nbsp;<a href=\"https://profiles.wordpress.org/clorith/\">Marius L. J.</a>,&nbsp;<a href=\"https://profiles.wordpress.org/melchoyce/\">Mel Choyce-Dwan</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mihdan/\">Mikhail Kobzarev</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mmuyskens/\">mmuyskens</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mukesh27/\">Mukesh Panchal</a>,&nbsp;<a href=\"https://profiles.wordpress.org/nicegamer7/\">nicegamer7</a>,&nbsp;<a href=\"https://profiles.wordpress.org/otshelnik-fm/\">Otshelnik-Fm</a>,&nbsp;<a href=\"https://profiles.wordpress.org/paaljoachim/\">Paal Joachim Romdahl</a>,&nbsp;<a href=\"https://profiles.wordpress.org/palmiak/\">palmiak</a>,&nbsp;<a href=\"https://profiles.wordpress.org/swissspidy/\">Pascal Birchler</a>,&nbsp;<a href=\"https://profiles.wordpress.org/peterwilsoncc/\">Peter Wilson</a>,&nbsp;<a href=\"https://profiles.wordpress.org/pwallner/\">pwallner</a>,&nbsp;<a href=\"https://profiles.wordpress.org/rachelbaker/\">Rachel Baker</a>,&nbsp;<a href=\"https://profiles.wordpress.org/youknowriad/\">Riad Benguella</a>,&nbsp;<a href=\"https://profiles.wordpress.org/rinatkhaziev/\">Rinat Khaziev</a>,&nbsp;<a href=\"https://profiles.wordpress.org/noisysocks/\">Robert Anderson</a>,&nbsp;<a href=\"https://profiles.wordpress.org/rogertheriault/\">Roger Theriault</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sergeybiryukov/\">Sergey Biryukov</a>,&nbsp;<a href=\"https://profiles.wordpress.org/yakimun/\">Sergey Yakimov</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sirstuey/\">SirStuey</a>,&nbsp;<a href=\"https://profiles.wordpress.org/stefanjoebstl/\">stefanjoebstl</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sabernhardt/\">Stephen Bernhardt</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sumitsingh/\">Sumit Singh</a>,&nbsp;<a href=\"https://profiles.wordpress.org/cybr/\">Sybre Waaijer</a>,&nbsp;<a href=\"https://profiles.wordpress.org/synchro/\">Synchro</a>,&nbsp;<a href=\"https://profiles.wordpress.org/terriann/\">Terri Ann</a>,&nbsp;<a href=\"https://profiles.wordpress.org/tigertech/\">tigertech</a>,&nbsp;<a href=\"https://profiles.wordpress.org/timothyblynjacobs/\">Timothy Jacobs</a>,&nbsp;<a href=\"https://profiles.wordpress.org/tmatsuur/\">tmatsuur</a>,&nbsp;<a href=\"https://profiles.wordpress.org/tobiasbg/\">TobiasBg</a>,&nbsp;<a href=\"https://profiles.wordpress.org/hellofromtonya/\">Tonya Mork</a>,&nbsp;<a href=\"https://profiles.wordpress.org/toru/\">Toru Miki</a>,&nbsp;<a href=\"https://profiles.wordpress.org/grapplerulrich/\">Ulrich</a>, and&nbsp;<a href=\"https://profiles.wordpress.org/vladytimy/\">Vlad T</a>.</p>\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:36:\"http://wellformedweb.org/CommentAPI/\";a:1:{s:10:\"commentRss\";a:1:{i:0;a:5:{s:4:\"data\";s:93:\"https://en-gb.wordpress.org/2021/04/15/wordpress-5-7-1-security-and-maintenance-release/feed/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:38:\"http://purl.org/rss/1.0/modules/slash/\";a:1:{s:8:\"comments\";a:1:{i:0;a:5:{s:4:\"data\";s:1:\"0\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:3;a:6:{s:4:\"data\";s:74:\"\n		\n		\n					\n		\n		\n		\n				\n		\n\n					\n										\n					\n					\n			\n		\n		\n\n			\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:5:{s:0:\"\";a:8:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:29:\"WordPress 5.7 “Esperanza”\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:63:\"https://en-gb.wordpress.org/2021/03/10/wordpress-5-7-esperanza/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"comments\";a:1:{i:0;a:5:{s:4:\"data\";s:71:\"https://en-gb.wordpress.org/2021/03/10/wordpress-5-7-esperanza/#respond\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 10 Mar 2021 13:02:28 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:1:{i:0;a:5:{s:4:\"data\";s:8:\"Releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://en-gb.wordpress.org/?p=1352\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:364:\"Meet &#8220;Esperanza&#8221;, the first WordPress release of 2021. &#8220;Esperanza&#8221; is named in honour of Esperanza Spalding, a modern musical prodigy. Her path as a musician is varied and inspiring – learn more about her&#160;and give her music a listen! With this new version, WordPress brings you fresh colours. The editor helps you work in a [&#8230;]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:9:\"enclosure\";a:1:{i:0;a:5:{s:4:\"data\";s:0:\"\";s:7:\"attribs\";a:1:{s:0:\"\";a:3:{s:3:\"url\";s:60:\"https://s.w.org/images/core/5.7/about-57-drag-drop-image.mp4\";s:6:\"length\";s:6:\"183815\";s:4:\"type\";s:9:\"video/mp4\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:11:\"Mark Robson\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:42301:\"\n<div class=\"wp-block-cover\" style=\"background-color:#0a5b89\"><img class=\"wp-block-cover__image-background wp-image-9932\" alt=\"\" src=\"https://wordpress.org/news/files/2021/03/about-header-brushes.png\" data-object-fit=\"cover\" data-object-position=\"52% 67%\" /><div class=\"wp-block-cover__inner-container\">\n<p class=\"has-text-align-center has-large-font-size\"><strong>WordPress 5.7</strong> <strong>&#8220;Esperanza&#8221;</strong></p>\n\n\n\n<p class=\"has-text-align-center\">Bringing you fresh colours in the admin, simpler interactions in the editor, and controls right where you need them, WordPress 5.7 lets you focus on the content you create.</p>\n\n\n\n<div style=\"height:120px\" aria-hidden=\"true\" class=\"wp-block-spacer\"></div>\n\n\n\n<p></p>\n</div></div>\n\n\n\n<p>Meet &#8220;Esperanza&#8221;, the first WordPress release of 2021. &#8220;Esperanza&#8221; is named in honour of Esperanza Spalding, a modern musical prodigy. Her path as a musician is varied and inspiring – <a rel=\"noreferrer noopener\" target=\"_blank\" href=\"https://en.wikipedia.org/wiki/Esperanza_Spalding\">learn more about her</a>&nbsp;and give her music a listen!</p>\n\n\n\n<p>With this new version, WordPress brings you fresh colours. The editor helps you work in a few places you couldn’t before without getting into code or hiring a pro. The controls you use most are right where you need them. Layout changes that should be simple, are even simpler to make.</p>\n\n\n\n<h2>Now the new editor is easier to use</h2>\n\n\n\n<p><strong>Font-size adjustment in more places:</strong>&nbsp;now, font-size controls are right where you need them in the List and Code blocks. No more trekking to another screen to make that single change!</p>\n\n\n\n<p><strong>Reusable blocks:</strong>&nbsp;several enhancements make reusable blocks more stable and easier to use. And now they save automatically with the post when you click the Update button.</p>\n\n\n\n<p><strong>Inserter drag-and-drop:</strong>&nbsp;drag blocks and block patterns from the inserter right into your post.</p>\n\n\n\n<figure class=\"wp-block-video\"><video controls src=\"https://s.w.org/images/core/5.7/about-57-drag-drop-image.mp4\"></video></figure>\n\n\n\n<h2>You can do more without writing custom code</h2>\n\n\n\n<p><strong>Full-height alignment:</strong>&nbsp;have you ever wanted to make a block, like the Cover block, fill the whole window? Now you can.</p>\n\n\n\n<p><strong>Buttons block:</strong>&nbsp;now you can choose a vertical or a horizontal layout. And you can set the width of a button to a preset percentage.</p>\n\n\n\n<p><strong>Social Icons block:</strong>&nbsp;now you can change the size of the icons.</p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img src=\"https://s.w.org/images/core/5.7/about-57-cover.jpg\" alt=\"\" /></figure>\n\n\n\n<h2>A simpler default colour palette</h2>\n\n\n\n<p>This new streamlined colour palette collapses all the colours that used to be in the WordPress source code down to seven core colours and a range of 56 shades that meet the&nbsp;<a href=\"https://www.w3.org/WAI/WCAG2AAA-Conformance\">WCAG 2.0 AA recommended contrast ratio</a>&nbsp;against white or black.</p>\n\n\n\n<p>Find the new palette in the default WordPress Dashboard colour scheme, and use it when you’re building themes, plugins, or any other components. For all the details,&nbsp;<a href=\"https://make.wordpress.org/core/2021/02/23/standardization-of-wp-admin-colors-in-wordpress-5-7\">check out the Colour Palette developer note</a>.</p>\n\n\n\n<h2>From HTTP to HTTPS in a single click</h2>\n\n\n\n<p>Starting now, switching a site from HTTP to HTTPS is a one-click move. WordPress will automatically update database URLs when you make the switch. No more hunting and guessing!</p>\n\n\n\n<h2>New Robots API</h2>\n\n\n\n<p>The new Robots API lets you include the filter directives in the robots meta tag, and the API includes the&nbsp;<code>max-image-preview: large</code>&nbsp;directive by default. That means search engines can show bigger image previews, which can boost your traffic (unless the site is marked&nbsp;<em>not-public</em>).</p>\n\n\n\n<h2>Lazy-load your iFrames</h2>\n\n\n\n<p>Now it’s simple to let iframes lazy-load. By default, WordPress will add a&nbsp;<code>loading=\"lazy\"</code>&nbsp;attribute to iframe tags when both width and height are specified.</p>\n\n\n\n<h2>Ongoing cleanup after update to jQuery 3.5.1</h2>\n\n\n\n<p>For years, jQuery helped make things move on the screen in ways the basic tools couldn’t – but that keeps changing, and so does jQuery.</p>\n\n\n\n<p>In 5.7, jQuery gets more focused and less intrusive, with fewer messages in the console.</p>\n\n\n\n<h2>Check the Field Guide for more!</h2>\n\n\n\n<p>Check out the latest version of the WordPress Field Guide. It highlights developer notes for each change you may want to be aware of.&nbsp;<a href=\"https://make.wordpress.org/core/2021/02/23/wordpress-5-7-field-guide\">WordPress 5.7 Field Guide.</a></p>\n\n\n\n<h2>The Squad</h2>\n\n\n\n<p>The WordPress 5.7 release comes to you from a small and experienced release squad:&nbsp;&nbsp;</p>\n\n\n\n<ul><li><strong>Release Lead:</strong>&nbsp;Matt Mullenweg (<a href=\'https://profiles.wordpress.org/matt/\' class=\'mention\'><span class=\'mentions-prefix\'>@</span>matt</a>)</li><li><strong>Triage Lead:</strong>&nbsp;Tonya Mork (<a href=\'https://profiles.wordpress.org/hellofromtonya/\' class=\'mention\'><span class=\'mentions-prefix\'>@</span>hellofromtonya</a>)</li><li><strong>Release Coordinator:</strong>&nbsp;Ebonie Butler (<a href=\'https://profiles.wordpress.org/metalandcoffee/\' class=\'mention\'><span class=\'mentions-prefix\'>@</span>metalandcoffee</a>)</li><li><strong>Core Tech Lead:</strong>&nbsp;Sergey Biryukov (<a href=\'https://profiles.wordpress.org/sergeybiryukov/\' class=\'mention\'><span class=\'mentions-prefix\'>@</span>sergeybiryukov</a>)</li><li><strong>Editor Tech Lead:</strong>&nbsp;Robert Anderson (<a href=\'https://profiles.wordpress.org/noisysocks/\' class=\'mention\'><span class=\'mentions-prefix\'>@</span>noisysocks</a>)</li><li><strong>Design Lead:</strong>&nbsp;Tim Hengeveld (<a href=\'https://profiles.wordpress.org/hedgefield/\' class=\'mention\'><span class=\'mentions-prefix\'>@</span>hedgefield</a>)</li><li><strong>Accessibility Lead:</strong>&nbsp;Sarah Ricker (@sarahricke<strong>r</strong>)</li><li><strong>Documentation Lead:&nbsp;</strong>Jb Audras (<a href=\'https://profiles.wordpress.org/audrasjb/\' class=\'mention\'><span class=\'mentions-prefix\'>@</span>audrasjb</a>)</li><li><strong>Test Lead:</strong>&nbsp;Monika Rao (<a href=\'https://profiles.wordpress.org/monikarao/\' class=\'mention\'><span class=\'mentions-prefix\'>@</span>monikarao</a>)</li></ul>\n\n\n\n<p>This release is the reflection of the hard work of 481 generous volunteer contributors. Collaboration occurred on nearly 250 tickets on Trac and over 950 pull requests on GitHub.</p>\n\n\n\n<p><a href=\"https://profiles.wordpress.org/7studio/\">7studio</a>,&nbsp;<a href=\"https://profiles.wordpress.org/aaribaud/\">aaribaud</a>,&nbsp;<a href=\"https://profiles.wordpress.org/technosailor/\">Aaron Brazell</a>,&nbsp;<a href=\"https://profiles.wordpress.org/aaroncampbell/\">Aaron D. Campbell</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jorbin/\">Aaron Jorbin</a>,&nbsp;<a href=\"https://profiles.wordpress.org/aaronrobertshaw/\">aaronrobertshaw</a>,&nbsp;<a href=\"https://profiles.wordpress.org/abagtcs/\">abagtcs</a>,&nbsp;<a href=\"https://profiles.wordpress.org/acerempel/\">acerempel</a>,&nbsp;<a href=\"https://profiles.wordpress.org/activecoder/\">activecoder</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ad7six/\">ad7six</a>,&nbsp;<a href=\"https://profiles.wordpress.org/bosconiandynamics/\">Adam Bosco</a>,&nbsp;<a href=\"https://profiles.wordpress.org/adamsilverstein/\">Adam Silverstein</a>,&nbsp;<a href=\"https://profiles.wordpress.org/adamboro/\">adamboro</a>,&nbsp;<a href=\"https://profiles.wordpress.org/addiestavlo/\">Addison Stavlo</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mrahmadawais/\">Ahmad Awais</a>,&nbsp;<a href=\"https://profiles.wordpress.org/engahmeds3ed/\">Ahmed Saeed</a>,&nbsp;<a href=\"https://profiles.wordpress.org/aljullu/\">Albert Juhé Lluveras</a>,&nbsp;<a href=\"https://profiles.wordpress.org/albertomake/\">albertomake</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ajlende/\">Alex Lende</a>,&nbsp;<a href=\"https://profiles.wordpress.org/alexwoollam/\">Alex Woollam</a>,&nbsp;<a href=\"https://profiles.wordpress.org/alex27/\">alex27</a>,&nbsp;<a href=\"https://profiles.wordpress.org/chemiker/\">Alexander Lueken</a>,&nbsp;<a href=\"https://profiles.wordpress.org/alexstine/\">alexstine</a>,&nbsp;<a href=\"https://profiles.wordpress.org/allancole/\">allancole</a>,&nbsp;<a href=\"https://profiles.wordpress.org/allendav/\">Allen Snook</a>,&nbsp;<a href=\"https://profiles.wordpress.org/almendron/\">almendron</a>,&nbsp;<a href=\"https://profiles.wordpress.org/amandariu/\">Amanda Riu</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ambienthack/\">ambienthack</a>,&nbsp;<a href=\"https://profiles.wordpress.org/amolv/\">Amol Vhankalas</a>,&nbsp;<a href=\"https://profiles.wordpress.org/afercia/\">Andrea Fercia</a>,&nbsp;<a href=\"https://profiles.wordpress.org/andraganescu/\">Andrei Draganescu</a>,&nbsp;<a href=\"https://profiles.wordpress.org/aduth/\">Andrew Duthie</a>,&nbsp;<a href=\"https://profiles.wordpress.org/nacin/\">Andrew Nacin</a>,&nbsp;<a href=\"https://profiles.wordpress.org/anevins/\">Andrew Nevins</a>,&nbsp;<a href=\"https://profiles.wordpress.org/azaozz/\">Andrew Ozz</a>,&nbsp;<a href=\"https://profiles.wordpress.org/andrewserong/\">Andrew Serong</a>,&nbsp;<a href=\"https://profiles.wordpress.org/nosolosw/\">André Maneiro</a>,&nbsp;<a href=\"https://profiles.wordpress.org/afragen/\">Andy Fragen</a>,&nbsp;<a href=\"https://profiles.wordpress.org/apeatling/\">Andy Peatling</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ankitmaru/\">Ankit Panchal</a>,&nbsp;<a href=\"https://profiles.wordpress.org/annezazu/\">Anne McCarthy</a>,&nbsp;<a href=\"https://profiles.wordpress.org/antpb/\">Anthony Burchell</a>,&nbsp;<a href=\"https://profiles.wordpress.org/antonlukin/\">Anton Lukin</a>,&nbsp;<a href=\"https://profiles.wordpress.org/atimmer/\">Anton Timmermans</a>,&nbsp;<a href=\"https://profiles.wordpress.org/anyssa/\">Anyssa Ferreira</a>,&nbsp;<a href=\"https://profiles.wordpress.org/archon810/\">archon810</a>,&nbsp;<a href=\"https://profiles.wordpress.org/aristath/\">Ari Stathopoulos</a>,&nbsp;<a href=\"https://profiles.wordpress.org/passoniate/\">Arslan Ahmed</a>,&nbsp;<a href=\"https://profiles.wordpress.org/artpi/\">Artur Piszek</a>,&nbsp;<a href=\"https://profiles.wordpress.org/maigret/\">Aurélien Denis</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ayeshrajans/\">Ayesh Karunaratne</a>,&nbsp;<a href=\"https://profiles.wordpress.org/bartosz777/\">bartosz777</a>,&nbsp;<a href=\"https://profiles.wordpress.org/basscan/\">basscan</a>,&nbsp;<a href=\"https://profiles.wordpress.org/bduclos/\">bduclos</a>,&nbsp;<a href=\"https://profiles.wordpress.org/becdetat/\">becdetat</a>,&nbsp;<a href=\"https://profiles.wordpress.org/pixolin/\">Bego Mario Garde</a>,&nbsp;<a href=\"https://profiles.wordpress.org/scruffian/\">Ben Dwyer</a>,&nbsp;<a href=\"https://profiles.wordpress.org/bernhard%20reiter/\">Bernhard Reiter</a>,&nbsp;<a href=\"https://profiles.wordpress.org/bernhard-reiter/\">Bernhard Reiter</a>,&nbsp;<a href=\"https://profiles.wordpress.org/bhanusinghkre/\">bhanusinghkre</a>,&nbsp;<a href=\"https://profiles.wordpress.org/birgire/\">Birgir Erlendsson (birgire)</a>,&nbsp;<a href=\"https://profiles.wordpress.org/bph/\">Birgit Pauli-Haack</a>,&nbsp;<a href=\"https://profiles.wordpress.org/bobbingwide/\">bobbingwide</a>,&nbsp;<a href=\"https://profiles.wordpress.org/bonniebeeman/\">bonniebeeman</a>,&nbsp;<a href=\"https://profiles.wordpress.org/boonebgorges/\">Boone Gorges</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ibdz/\">Boy Witthaya</a>,&nbsp;<a href=\"https://profiles.wordpress.org/kraftbj/\">Brandon Kraft</a>,&nbsp;<a href=\"https://profiles.wordpress.org/brentswisher/\">Brent Swisher</a>,&nbsp;<a href=\"https://profiles.wordpress.org/brijeshb42/\">brijeshb42</a>,&nbsp;<a href=\"https://profiles.wordpress.org/burnuser/\">burnuser</a>,&nbsp;<a href=\"https://profiles.wordpress.org/icaleb/\">Caleb Burks</a>,&nbsp;<a href=\"https://profiles.wordpress.org/cvoell/\">Cameron Voell</a>,&nbsp;<a href=\"https://profiles.wordpress.org/carike/\">Carike</a>,&nbsp;<a href=\"https://profiles.wordpress.org/carloscastilloadhoc/\">carloscastilloadhoc</a>,&nbsp;<a href=\"https://profiles.wordpress.org/carlosgprim/\">carlosgprim</a>,&nbsp;<a href=\"https://profiles.wordpress.org/poena/\">Carolina Nymark</a>,&nbsp;<a href=\"https://profiles.wordpress.org/celendesign/\">celendesign</a>,&nbsp;<a href=\"https://profiles.wordpress.org/cenay/\">Cenay Nailor</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ceyhun0/\">ceyhun0</a>,&nbsp;<a href=\"https://profiles.wordpress.org/chexwarrior/\">chexwarrior</a>,&nbsp;<a href=\"https://profiles.wordpress.org/chipsnyder/\">Chip Snyder</a>,&nbsp;<a href=\"https://profiles.wordpress.org/cbringmann/\">Chloé Bringmann</a>,&nbsp;<a href=\"https://profiles.wordpress.org/chouby/\">Chouby</a>,&nbsp;<a href=\"https://profiles.wordpress.org/chrisvanpatten/\">Chris Van Patten</a>,&nbsp;<a href=\"https://profiles.wordpress.org/pixelverbieger/\">Christian Sabo</a>,&nbsp;<a href=\"https://profiles.wordpress.org/amethystanswers/\">Christina Workman</a>,&nbsp;<a href=\"https://profiles.wordpress.org/cfinke/\">Christopher Finke</a>,&nbsp;<a href=\"https://profiles.wordpress.org/clayray/\">clayray</a>,&nbsp;<a href=\"https://profiles.wordpress.org/claytoncollie/\">Clayton Collie</a>,&nbsp;<a href=\"https://profiles.wordpress.org/codeamp/\">Code Amp</a>,&nbsp;<a href=\"https://profiles.wordpress.org/collizo4sky/\">Collins Agbonghama</a>,&nbsp;<a href=\"https://profiles.wordpress.org/copons/\">Copons</a>,&nbsp;<a href=\"https://profiles.wordpress.org/coreyw/\">Corey</a>,&nbsp;<a href=\"https://profiles.wordpress.org/cristinasoponar/\">cristinasoponar</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dam6pl/\">Damian Nowak</a>,&nbsp;<a href=\"https://profiles.wordpress.org/danfarrow/\">Dan Farrow</a>,&nbsp;<a href=\"https://profiles.wordpress.org/talldanwp/\">Daniel Richards</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mte90/\">Daniele Scasciafratte</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dvankooten/\">Danny van Kooten</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dariak/\">Daria</a>,&nbsp;<a href=\"https://profiles.wordpress.org/nerrad/\">Darren Ethier (nerrad)</a>,&nbsp;<a href=\"https://profiles.wordpress.org/drw158/\">Dave Whitley</a>,&nbsp;<a href=\"https://profiles.wordpress.org/davidanderson/\">David Anderson</a>,&nbsp;<a href=\"https://profiles.wordpress.org/davidbaumwald/\">David Baumwald</a>,&nbsp;<a href=\"https://profiles.wordpress.org/davidbinda/\">David Biňovec</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dpcalhoun/\">David Calhoun</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dlh/\">David Herrera</a>,&nbsp;<a href=\"https://profiles.wordpress.org/davecpage/\">David Page</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dbtedg/\">dbtedg</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dd32/\">dd32</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dkarfa/\">Debabrata Karfa</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dekervit/\">dekervit</a>,&nbsp;<a href=\"https://profiles.wordpress.org/denisco/\">Denis Yanchevskiy</a>,&nbsp;<a href=\"https://profiles.wordpress.org/denishua/\">denishua</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dianeco/\">Diane Co</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dilipbheda/\">Dilip Bheda</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ocean90/\">Dominik Schilling</a>,&nbsp;<a href=\"https://profiles.wordpress.org/donmhico/\">donmhico</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dratwas/\">dratwas</a>,&nbsp;<a href=\"https://profiles.wordpress.org/drewapicture/\">Drew Jaynes</a>,&nbsp;<a href=\"https://profiles.wordpress.org/davidszabo/\">Dávid Szabó</a>,&nbsp;<a href=\"https://profiles.wordpress.org/e_baker/\">e_baker</a>,&nbsp;<a href=\"https://profiles.wordpress.org/metalandcoffee/\">Ebonie Butler</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ediamin/\">Edi Amin</a>,&nbsp;<a href=\"https://profiles.wordpress.org/iseulde/\">Ella van Durpe</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ellatrix/\">Ella van&nbsp;Durpe</a>,&nbsp;<a href=\"https://profiles.wordpress.org/erichmond/\">Elliott Richmond</a>,&nbsp;<a href=\"https://profiles.wordpress.org/enej/\">Enej Bajgorić</a>,&nbsp;<a href=\"https://profiles.wordpress.org/enricocarraro/\">Enrico Carraro</a>,&nbsp;<a href=\"https://profiles.wordpress.org/epicfaace/\">epicfaace</a>,&nbsp;<a href=\"https://profiles.wordpress.org/epiqueras/\">epiqueras</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ericlewis/\">Eric Andrew Lewis</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ebinnion/\">Eric Binnion</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ericmann/\">Eric Mann</a>,&nbsp;<a href=\"https://profiles.wordpress.org/kebbet/\">Erik Betshammar</a>,&nbsp;<a href=\"https://profiles.wordpress.org/folletto/\">Erin &#8216;Folletto&#8217; Casali</a>,&nbsp;<a href=\"https://profiles.wordpress.org/estelaris/\">Estela Rueda</a>,&nbsp;<a href=\"https://profiles.wordpress.org/etoledom/\">etoledom</a>,&nbsp;<a href=\"https://profiles.wordpress.org/eventualo/\">eventualo</a>,&nbsp;<a href=\"https://profiles.wordpress.org/fabiankaegy/\">Fabian Kägy</a>,&nbsp;<a href=\"https://profiles.wordpress.org/felipeelia/\">Felipe Elia</a>,&nbsp;<a href=\"https://profiles.wordpress.org/flixos90/\">Felix Arntz</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mista-flo/\">Florian TIAR</a>,&nbsp;<a href=\"https://profiles.wordpress.org/florianziegler/\">Florian Ziegler</a>,&nbsp;<a href=\"https://profiles.wordpress.org/floriswt/\">floriswt</a>,&nbsp;<a href=\"https://profiles.wordpress.org/francina/\">Francesca Marano</a>,&nbsp;<a href=\"https://profiles.wordpress.org/frank-klein/\">Frank Klein</a>,&nbsp;<a href=\"https://profiles.wordpress.org/fullofcaffeine/\">fullofcaffeine</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ecgan/\">Gan Eng Chin</a>,&nbsp;<a href=\"https://profiles.wordpress.org/garrett-eclipse/\">Garrett Hyder</a>,&nbsp;<a href=\"https://profiles.wordpress.org/pento/\">Gary Pendergast</a>,&nbsp;<a href=\"https://profiles.wordpress.org/geekpress/\">GeekPress</a>,&nbsp;<a href=\"https://profiles.wordpress.org/geekzebre/\">geekzebre</a>,&nbsp;<a href=\"https://profiles.wordpress.org/geoffguillain/\">Geoff Guillain</a>,&nbsp;<a href=\"https://profiles.wordpress.org/georgestephanis/\">George Stephanis</a>,&nbsp;<a href=\"https://profiles.wordpress.org/geriux/\">geriux</a>,&nbsp;<a href=\"https://profiles.wordpress.org/gkibria69/\">gKibria</a>,&nbsp;<a href=\"https://profiles.wordpress.org/glendaviesnz/\">glendaviesnz</a>,&nbsp;<a href=\"https://profiles.wordpress.org/gmariani405/\">gmariani405</a>,&nbsp;<a href=\"https://profiles.wordpress.org/alinod/\">Gord</a>,&nbsp;<a href=\"https://profiles.wordpress.org/greatsaltlake/\">greatsaltlake</a>,&nbsp;<a href=\"https://profiles.wordpress.org/gziolo/\">Greg Ziółkowski</a>,&nbsp;<a href=\"https://profiles.wordpress.org/grzim/\">grzim</a>,&nbsp;<a href=\"https://profiles.wordpress.org/gumacahin/\">gumacahin</a>,&nbsp;<a href=\"https://profiles.wordpress.org/gunnard/\">gunnard</a>,&nbsp;<a href=\"https://profiles.wordpress.org/bordoni/\">Gustavo Bordoni</a>,&nbsp;<a href=\"https://profiles.wordpress.org/hansjovisyoast/\">Hans-Christiaan Braun</a>,&nbsp;<a href=\"https://profiles.wordpress.org/hardeepasrani/\">Hardeep Asrani</a>,&nbsp;<a href=\"https://profiles.wordpress.org/hareesh-pillai/\">Hareesh</a>,&nbsp;<a href=\"https://profiles.wordpress.org/hauvong/\">hauvong</a>,&nbsp;<a href=\"https://profiles.wordpress.org/hazdiego/\">Haz</a>,&nbsp;<a href=\"https://profiles.wordpress.org/helen/\">Helen Hou-Sandi</a>,&nbsp;<a href=\"https://profiles.wordpress.org/helmutwalker/\">helmutwalker</a>,&nbsp;<a href=\"https://profiles.wordpress.org/tejwanihemant/\">Hemant Tejwani</a>,&nbsp;<a href=\"https://profiles.wordpress.org/herregroen/\">Herre Groen</a>,&nbsp;<a href=\"https://profiles.wordpress.org/nonverbla/\">hirasso</a>,&nbsp;<a href=\"https://profiles.wordpress.org/hmabpera/\">hmabpera</a>,&nbsp;<a href=\"https://profiles.wordpress.org/howdy_mcgee/\">Howdy_McGee</a>,&nbsp;<a href=\"https://profiles.wordpress.org/hsingyuc7/\">hsingyuc7</a>,&nbsp;<a href=\"https://profiles.wordpress.org/iandunn/\">Ian Dunn</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ianmjones/\">ianmjones</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ibiza69/\">ibiza69</a>,&nbsp;<a href=\"https://profiles.wordpress.org/igorradovanov/\">Igor Radovanov</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ingereck/\">ingereck</a>,&nbsp;<a href=\"https://profiles.wordpress.org/iprg/\">iprg</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ipstenu/\">Ipstenu (Mika Epstein)</a>,&nbsp;<a href=\"https://profiles.wordpress.org/isabel_brison/\">Isabel Brison</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ismailelkorchi/\">Ismail El Korchi</a>,&nbsp;<a href=\"https://profiles.wordpress.org/iviweb/\">iviweb</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jdgrimes/\">J.D. Grimes</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jadeddragoon/\">jadeddragoon</a>,&nbsp;<a href=\"https://profiles.wordpress.org/whyisjake/\">Jake Spurlock</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jakeparis/\">jakeparis</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jakubtyrcha/\">jakub.tyrcha</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jamesgol/\">James Golovich</a>,&nbsp;<a href=\"https://profiles.wordpress.org/macmanx/\">James Huff</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jameskoster/\">James Koster</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jnylen0/\">James Nylen</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jamesros161/\">James Rosado</a>,&nbsp;<a href=\"https://profiles.wordpress.org/janthiel/\">Jan Thiel</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jason_the_adams/\">Jason Adams</a>,&nbsp;<a href=\"https://profiles.wordpress.org/madtownlems/\">Jason LeMahieu (MadtownLems)</a>,&nbsp;<a href=\"https://profiles.wordpress.org/viablethought/\">Jason Ryan</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jaymanpandya/\">Jayman Pandya</a>,&nbsp;<a href=\"https://profiles.wordpress.org/audrasjb/\">Jean-Baptiste Audras</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jeffr0/\">Jeff Chandler</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jfarthing84/\">Jeff Farthing</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jeffpaul/\">Jeff Paul</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jmdodd/\">Jennifer M. Dodd</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jdy68/\">Jenny Dupuy</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jeremyfelt/\">Jeremy Felt</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jeremyyip/\">Jeremy Yip</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jeroenrotty/\">Jeroen Rotty</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jessplease/\">Jessica Duarte</a>,&nbsp;<a href=\"https://profiles.wordpress.org/luminuu/\">Jessica Lyschik</a>,&nbsp;<a href=\"https://profiles.wordpress.org/joanrho/\">joanrho</a>,&nbsp;<a href=\"https://profiles.wordpress.org/joedolson/\">Joe Dolson</a>,&nbsp;<a href=\"https://profiles.wordpress.org/joemcgill/\">Joe McGill</a>,&nbsp;<a href=\"https://profiles.wordpress.org/joelclimbsthings/\">joelclimbsthings</a>,&nbsp;<a href=\"https://profiles.wordpress.org/joen/\">Joen Asmussen</a>,&nbsp;<a href=\"https://profiles.wordpress.org/goaroundagain/\">Johannes Kinast</a>,&nbsp;<a href=\"https://profiles.wordpress.org/johnbillion/\">John Blackbourn</a>,&nbsp;<a href=\"https://profiles.wordpress.org/johnjamesjacoby/\">John James Jacoby</a>,&nbsp;<a href=\"https://profiles.wordpress.org/johnwatkins0/\">John Watkins</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jonsurrell/\">Jon Surrell</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jrchamp/\">Jonathan Champ</a>,&nbsp;<a href=\"https://profiles.wordpress.org/desrosj/\">Jonathan Desrosiers</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jonathanstegall/\">Jonathan Stegall</a>,&nbsp;<a href=\"https://profiles.wordpress.org/spacedmonkey/\">Jonny Harris</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jonoaldersonwp/\">Jono Alderson</a>,&nbsp;<a href=\"https://profiles.wordpress.org/joostdevalk/\">Joost de Valk</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jordesign/\">jordesign</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jorgefilipecosta/\">Jorge Costa</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jomisica/\">José Miguel</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jose64/\">Jose Luis</a>,&nbsp;<a href=\"https://profiles.wordpress.org/accessiblejoe/\">Joseph Karr O&#8217;Connor</a>,&nbsp;<a href=\"https://profiles.wordpress.org/chanthaboune/\">Josepha Haden</a>,&nbsp;<a href=\"https://profiles.wordpress.org/joshuatf/\">joshuatf</a>,&nbsp;<a href=\"https://profiles.wordpress.org/joshuawold/\">JoshuaWold</a>,&nbsp;<a href=\"https://profiles.wordpress.org/tai/\">JOTAKI, Taisuke</a>,&nbsp;<a href=\"https://profiles.wordpress.org/joyously/\">Joy</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jsmoriss/\">JS Morisset</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jsnajdr/\">jsnajdr</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jrf/\">Juliette Reinders Folmer</a>,&nbsp;<a href=\"https://profiles.wordpress.org/juliobox/\">Julio Potier</a>,&nbsp;<a href=\"https://profiles.wordpress.org/justinahinon/\">Justin Ahinon</a>,&nbsp;<a href=\"https://profiles.wordpress.org/justinsainton/\">Justin Sainton</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jtsternberg/\">Justin Sternberg</a>,&nbsp;<a href=\"https://profiles.wordpress.org/kafleg/\">kafleg</a>,&nbsp;<a href=\"https://profiles.wordpress.org/kevin940726/\">Kai Hao</a>,&nbsp;<a href=\"https://profiles.wordpress.org/trepmal/\">Kailey (trepmal)</a>,&nbsp;<a href=\"https://profiles.wordpress.org/akabarikalpesh/\">Kalpesh Akabari</a>,&nbsp;<a href=\"https://profiles.wordpress.org/karamcnair/\">kara.mcnair</a>,&nbsp;<a href=\"https://profiles.wordpress.org/vyskoczilova/\">Karolina Vyskocilova</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ryelle/\">Kelly Choyce-Dwan</a>,&nbsp;<a href=\"https://profiles.wordpress.org/gwwar/\">Kerry Liu</a>,&nbsp;<a href=\"https://profiles.wordpress.org/tmfespresso/\">kimdcottrell</a>,&nbsp;<a href=\"https://profiles.wordpress.org/kirilzh/\">Kiril Zhelyazkov</a>,&nbsp;<a href=\"https://profiles.wordpress.org/kburgoine/\">Kirsty Burgoine</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ixkaito/\">Kite</a>,&nbsp;<a href=\"https://profiles.wordpress.org/kjellr/\">Kjell Reigstad</a>,&nbsp;<a href=\"https://profiles.wordpress.org/knutsp/\">Knut Sparhell</a>,&nbsp;<a href=\"https://profiles.wordpress.org/hwk-fr/\">Konrad Chmielewski</a>,&nbsp;<a href=\"https://profiles.wordpress.org/obenland/\">Konstantin Obenland</a>,&nbsp;<a href=\"https://profiles.wordpress.org/xkon/\">Konstantinos Xenos</a>,&nbsp;<a href=\"https://profiles.wordpress.org/kurtpayne/\">Kurt Payne</a>,&nbsp;<a href=\"https://profiles.wordpress.org/kbjohnson90/\">Kyle B. Johnson</a>,&nbsp;<a href=\"https://profiles.wordpress.org/notlaura/\">Lara Schenck</a>,&nbsp;<a href=\"https://profiles.wordpress.org/laurelfulford/\">laurelfulford</a>,&nbsp;<a href=\"https://profiles.wordpress.org/laxman-prajapati/\">Laxman Prajapati</a>,&nbsp;<a href=\"https://profiles.wordpress.org/leogermani/\">leogermani</a>,&nbsp;<a href=\"https://profiles.wordpress.org/levdbas/\">Levdbas</a>,&nbsp;<a href=\"https://profiles.wordpress.org/oellin/\">Lihä</a>,&nbsp;<a href=\"https://profiles.wordpress.org/litemotiv/\">litemotiv</a>,&nbsp;<a href=\"https://profiles.wordpress.org/lovor/\">Lovro Hrust</a>,&nbsp;<a href=\"https://profiles.wordpress.org/lucasbustamante/\">lucasbustamante</a>,&nbsp;<a href=\"https://profiles.wordpress.org/_luigi/\">Luigi Cavalieri</a>,&nbsp;<a href=\"https://profiles.wordpress.org/lpawlik/\">Lukas Pawlik</a>,&nbsp;<a href=\"https://profiles.wordpress.org/lukecarbis/\">Luke Carbis</a>,&nbsp;<a href=\"https://profiles.wordpress.org/lukecavanagh/\">Luke Cavanagh</a>,&nbsp;<a href=\"https://profiles.wordpress.org/happiryu/\">Luke Walczak</a>,&nbsp;<a href=\"https://profiles.wordpress.org/magnuswebdesign/\">magnuswebdesign</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mahfuz01/\">Mahafuz</a>,&nbsp;<a href=\"https://profiles.wordpress.org/akramipro/\">Mahdi Akrami</a>,&nbsp;<a href=\"https://profiles.wordpress.org/malinajirka/\">malinajirka</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mallorydxw/\">mallorydxw</a>,&nbsp;<a href=\"https://profiles.wordpress.org/tomdxw/\">mallorydxw-old</a>,&nbsp;<a href=\"https://profiles.wordpress.org/manzoorwanijk/\">Manzoor Wani</a>,&nbsp;<a href=\"https://profiles.wordpress.org/manzurahammed/\">Manzur Ahammed</a>,&nbsp;<a href=\"https://profiles.wordpress.org/marcelo2605/\">marcelo2605</a>,&nbsp;<a href=\"https://profiles.wordpress.org/marcio-zebedeu/\">Marcio Zebedeu</a>,&nbsp;<a href=\"https://profiles.wordpress.org/netweblogic/\">Marcus</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mkaz/\">Marcus Kazmierczak</a>,&nbsp;<a href=\"https://profiles.wordpress.org/chaton666/\">Marie Comet</a>,&nbsp;<a href=\"https://profiles.wordpress.org/marijnkoopman/\">Marijn Koopman</a>,&nbsp;<a href=\"https://profiles.wordpress.org/tyxla/\">Marin Atanasov</a>,&nbsp;<a href=\"https://profiles.wordpress.org/clorith/\">Marius Jensen</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mdwolinski/\">Mark D Wolinski</a>,&nbsp;<a href=\"https://profiles.wordpress.org/markhowellsmead/\">Mark Howells-Mead</a>,&nbsp;<a href=\"https://profiles.wordpress.org/markscottrobson/\">Mark Robson</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mapk/\">Mark Uraine</a>,&nbsp;<a href=\"https://profiles.wordpress.org/vindl/\">Marko Andrijasevic</a>,&nbsp;<a href=\"https://profiles.wordpress.org/flootr/\">Markus</a>,&nbsp;<a href=\"https://profiles.wordpress.org/marybaum/\">Mary Baum</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mberard/\">Mathieu Berard Smartfire</a>,&nbsp;<a href=\"https://profiles.wordpress.org/imath/\">Mathieu Viet</a>,&nbsp;<a href=\"https://profiles.wordpress.org/matveb/\">Matias Ventura</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mattchowning/\">Matt Chowning</a>,&nbsp;<a href=\"https://profiles.wordpress.org/matt/\">Matt Mullenweg</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mattwiebe/\">Matt Wiebe</a>,&nbsp;<a href=\"https://profiles.wordpress.org/maxpertici/\">Maxime Pertici</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mayankmajeji/\">Mayank Majeji</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mdrockwell/\">mdrockwell</a>,&nbsp;<a href=\"https://profiles.wordpress.org/megphillips91/\">Meg Phillips</a>,&nbsp;<a href=\"https://profiles.wordpress.org/megabyterose/\">megabyterose</a>,&nbsp;<a href=\"https://profiles.wordpress.org/meher/\">Meher Bala</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mehrshaddarzi/\">Mehrshad Darzi</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mehulkaklotar/\">Mehul Kaklotar</a>,&nbsp;<a href=\"https://profiles.wordpress.org/melchoyce/\">Mel Choyce-Dwan</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mendezcode/\">mendezcode</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mgol/\">mgol</a>,&nbsp;<a href=\"https://profiles.wordpress.org/michael-arestad/\">Michael Arestad</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mbabker/\">Michael Babker</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mcsf/\">Miguel Fonseca</a>,&nbsp;<a href=\"https://profiles.wordpress.org/miinasikk/\">Miina Sikk</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mikeschroder/\">Mike Schroder</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dimadin/\">Milan Dinić</a>,&nbsp;<a href=\"https://profiles.wordpress.org/milana_cap/\">Milana Cap</a>,&nbsp;<a href=\"https://profiles.wordpress.org/0mirka00/\">mirka</a>,&nbsp;<a href=\"https://profiles.wordpress.org/daddou/\">Mohamed El Amine DADDOU</a>,&nbsp;<a href=\"https://profiles.wordpress.org/monika/\">Monika</a>,&nbsp;<a href=\"https://profiles.wordpress.org/monikarao/\">Monika Rao</a>,&nbsp;<a href=\"https://profiles.wordpress.org/morenaf/\">morenaf</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mrjoeldean/\">mrjoeldean</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mukesh27/\">Mukesh Panchal</a>,&nbsp;<a href=\"https://profiles.wordpress.org/munyagu/\">munyagu</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mzorz/\">mzorz</a>,&nbsp;<a href=\"https://profiles.wordpress.org/naveen17797/\">Naveen</a>,&nbsp;<a href=\"https://profiles.wordpress.org/krstarica/\">net</a>,&nbsp;<a href=\"https://profiles.wordpress.org/nre/\">nicky</a>,&nbsp;<a href=\"https://profiles.wordpress.org/nico23/\">Nico</a>,&nbsp;<a href=\"https://profiles.wordpress.org/nico_martin/\">Nico Martin</a>,&nbsp;<a href=\"https://profiles.wordpress.org/nicolalaserra/\">Nicola Laserra</a>,&nbsp;<a href=\"https://profiles.wordpress.org/rahe/\">Nicolas Juen</a>,&nbsp;<a href=\"https://profiles.wordpress.org/nicolaskulka/\">NicolasKulka</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ntsekouras/\">Nik Tsekouras</a>,&nbsp;<a href=\"https://profiles.wordpress.org/noahtallen/\">Noah Allen</a>,&nbsp;<a href=\"https://profiles.wordpress.org/nwjames/\">nwjames</a>,&nbsp;<a href=\"https://profiles.wordpress.org/oakesjosh/\">oakesjosh</a>,&nbsp;<a href=\"https://profiles.wordpress.org/oglekler/\">Olga Gleckler</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ovidiul/\">ovidiul</a>,&nbsp;<a href=\"https://profiles.wordpress.org/oxyc/\">oxyc</a>,&nbsp;<a href=\"https://profiles.wordpress.org/paaljoachim/\">Paal Joachim Romdahl</a>,&nbsp;<a href=\"https://profiles.wordpress.org/swissspidy/\">Pascal Birchler</a>,&nbsp;<a href=\"https://profiles.wordpress.org/pbearne/\">Paul Bearne</a>,&nbsp;<a href=\"https://profiles.wordpress.org/pbiron/\">Paul Biron</a>,&nbsp;<a href=\"https://profiles.wordpress.org/pabline/\">Paul Bunkham</a>,&nbsp;<a href=\"https://profiles.wordpress.org/paulschreiber/\">Paul Schreiber</a>,&nbsp;<a href=\"https://profiles.wordpress.org/pschrottky/\">Paul Von Schrottky</a>,&nbsp;<a href=\"https://profiles.wordpress.org/pawki07/\">pawki07</a>,&nbsp;<a href=\"https://profiles.wordpress.org/pbking/\">pbking</a>,&nbsp;<a href=\"https://profiles.wordpress.org/pedromendonca/\">Pedro Mendonça</a>,&nbsp;<a href=\"https://profiles.wordpress.org/gungeekatx/\">Pete Nelson</a>,&nbsp;<a href=\"https://profiles.wordpress.org/psmits1567/\">Peter Smits</a>,&nbsp;<a href=\"https://profiles.wordpress.org/peterwilsoncc/\">Peter Wilson</a>,&nbsp;<a href=\"https://profiles.wordpress.org/pinkalbeladiya/\">Pinkal Devani</a>,&nbsp;<a href=\"https://profiles.wordpress.org/boniu91/\">Piotrek Boniu</a>,&nbsp;<a href=\"https://profiles.wordpress.org/freewebmentor/\">Prem Tiwari</a>,&nbsp;<a href=\"https://profiles.wordpress.org/presstoke/\">presstoke</a>,&nbsp;<a href=\"https://profiles.wordpress.org/prettyboymp/\">prettyboymp</a>,&nbsp;<a href=\"https://profiles.wordpress.org/princeahmed/\">Prince</a>,&nbsp;<a href=\"https://profiles.wordpress.org/pypwalters/\">pypwalters</a>,&nbsp;<a href=\"https://profiles.wordpress.org/itsjonq/\">Q</a>,&nbsp;<a href=\"https://profiles.wordpress.org/r-a-y/\">r-a-y</a>,&nbsp;<a href=\"https://profiles.wordpress.org/rafaelgalani/\">Rafael Galani</a>,&nbsp;<a href=\"https://profiles.wordpress.org/rafhun/\">rafhun</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ramiy/\">Rami Yushuvaev</a>,&nbsp;<a href=\"https://profiles.wordpress.org/rahmohn/\">Ramon Ahnert</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ratneshk/\">ratneshk</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jontyravi/\">Ravi Vaghela</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ravipatel/\">ravipatel</a>,&nbsp;<a href=\"https://profiles.wordpress.org/retrofox/\">retrofox</a>,&nbsp;<a href=\"https://profiles.wordpress.org/reardestani/\">Reza Ardestani</a>,&nbsp;<a href=\"https://profiles.wordpress.org/youknowriad/\">Riad Benguella</a>,&nbsp;<a href=\"https://profiles.wordpress.org/rianrietveld/\">Rian Rietveld</a>,&nbsp;<a href=\"https://profiles.wordpress.org/iamfriendly/\">Richard Tape</a>,&nbsp;<a href=\"https://profiles.wordpress.org/noisysocks/\">Robert Anderson</a>,&nbsp;<a href=\"https://profiles.wordpress.org/rodrigosprimo/\">Rodrigo Primo</a>,&nbsp;<a href=\"https://profiles.wordpress.org/roger995/\">roger995</a>,&nbsp;<a href=\"https://profiles.wordpress.org/rolfsiebers/\">Rolf Siebers</a>,&nbsp;<a href=\"https://profiles.wordpress.org/romain-d/\">Romain</a>,&nbsp;<a href=\"https://profiles.wordpress.org/burtrw/\">Ronnie Burt</a>,&nbsp;<a href=\"https://profiles.wordpress.org/magicroundabout/\">Ross Wintle</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ryan/\">Ryan Boren</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sebastienserre/\">Sébastien SERRE</a>,&nbsp;<a href=\"https://profiles.wordpress.org/soean/\">Sören Wrede</a>,&nbsp;<a href=\"https://profiles.wordpress.org/stodorovic/\">Saša</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sanketchodavadiya/\">Sanket Chodavadiya</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sarahricker/\">Sarah Ricker</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sarayourfriend/\">sarayourfriend</a>,&nbsp;<a href=\"https://profiles.wordpress.org/wonderboymusic/\">Scott Taylor</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sebastianpisula/\">Sebastian Pisula</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sebsz/\">SeBsZ</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sergeybiryukov/\">Sergey Biryukov</a>,&nbsp;<a href=\"https://profiles.wordpress.org/yakimun/\">Sergey Yakimov</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sergiomdgomes/\">sergiomdgomes</a>,&nbsp;<a href=\"https://profiles.wordpress.org/shahinsid07/\">Shahin Sid</a>,&nbsp;<a href=\"https://profiles.wordpress.org/shaunandrews/\">shaunandrews</a>,&nbsp;<a href=\"https://profiles.wordpress.org/shital-patel/\">Shital Marakana</a>,&nbsp;<a href=\"https://profiles.wordpress.org/slaffik/\">Slava Abakumov</a>,&nbsp;<a href=\"https://profiles.wordpress.org/snapfractalpop/\">snapfractalpop</a>,&nbsp;<a href=\"https://profiles.wordpress.org/souri_wpaustria/\">souri_wpaustria</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ryokuhi/\">Stefano Minoia</a>,&nbsp;<a href=\"https://profiles.wordpress.org/hypest/\">Stefanos Togoulidis</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sabernhardt/\">Stephen Bernhardt</a>,&nbsp;<a href=\"https://profiles.wordpress.org/netweb/\">Stephen Edgar</a>,&nbsp;<a href=\"https://profiles.wordpress.org/stevenkword/\">Steven Word</a>,&nbsp;<a href=\"https://profiles.wordpress.org/subrataemfluence/\">Subrata Sarkar</a>,&nbsp;<a href=\"https://profiles.wordpress.org/quadthemes/\">Sunny</a>,&nbsp;<a href=\"https://profiles.wordpress.org/t-p/\">t-p</a>,&nbsp;<a href=\"https://profiles.wordpress.org/inc2734/\">Takashi Kitajima</a>,&nbsp;<a href=\"https://profiles.wordpress.org/patopaiar/\">Tami</a>,&nbsp;<a href=\"https://profiles.wordpress.org/karmatosed/\">Tammie Lister</a>,&nbsp;<a href=\"https://profiles.wordpress.org/tanvirul/\">Tanvirul Haque</a>,&nbsp;<a href=\"https://profiles.wordpress.org/voboghure/\">Tapan</a>,&nbsp;<a href=\"https://profiles.wordpress.org/teamdnk/\">TeamDNK</a>,&nbsp;<a href=\"https://profiles.wordpress.org/utz119/\">TeBenachi</a>,&nbsp;<a href=\"https://profiles.wordpress.org/tweetythierry/\">Thierry Muller</a>,&nbsp;<a href=\"https://profiles.wordpress.org/thorlentz/\">thorlentz</a>,&nbsp;<a href=\"https://profiles.wordpress.org/hedgefield/\">Tim Hengeveld</a>,&nbsp;<a href=\"https://profiles.wordpress.org/tnolte/\">Tim Nolte</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sippis/\">Timi Wahalahti</a>,&nbsp;<a href=\"https://profiles.wordpress.org/timothyblynjacobs/\">Timothy Jacobs</a>,&nbsp;<a href=\"https://profiles.wordpress.org/tinodidriksen/\">tinodidriksen</a>,&nbsp;<a href=\"https://profiles.wordpress.org/tkama/\">Tkama</a>,&nbsp;<a href=\"https://profiles.wordpress.org/tmatsuur/\">tmatsuur</a>,&nbsp;<a href=\"https://profiles.wordpress.org/tz-media/\">Tobias Zimpel</a>,&nbsp;<a href=\"https://profiles.wordpress.org/tobifjellner/\">tobifjellner (Tor-Bjorn Fjellner)</a>,&nbsp;<a href=\"https://profiles.wordpress.org/skithund/\">Toni Viemerö</a>,&nbsp;<a href=\"https://profiles.wordpress.org/arcangelini/\">Tony A</a>,&nbsp;<a href=\"https://profiles.wordpress.org/hellofromtonya/\">Tonya Mork</a>,&nbsp;<a href=\"https://profiles.wordpress.org/tonysandwich/\">tonysandwich</a>,&nbsp;<a href=\"https://profiles.wordpress.org/zodiac1978/\">Torsten Landsiedel</a>,&nbsp;<a href=\"https://profiles.wordpress.org/toru/\">Toru Miki</a>,&nbsp;<a href=\"https://profiles.wordpress.org/transl8or/\">transl8or</a>,&nbsp;<a href=\"https://profiles.wordpress.org/tylertork/\">Tyler Tork</a>,&nbsp;<a href=\"https://profiles.wordpress.org/grapplerulrich/\">Ulrich</a>,&nbsp;<a href=\"https://profiles.wordpress.org/umangvaghela123/\">Umang Vaghela</a>,&nbsp;<a href=\"https://profiles.wordpress.org/vandestouwe/\">vandestouwe</a>,&nbsp;<a href=\"https://profiles.wordpress.org/vcanales/\">vcanales</a>,&nbsp;<a href=\"https://profiles.wordpress.org/vipulc2/\">Vipul Chandel</a>,&nbsp;<a href=\"https://profiles.wordpress.org/vladytimy/\">Vlad T.</a>,&nbsp;<a href=\"https://profiles.wordpress.org/webcommsat/\">webcommsat AbhaNonStopNewsUK</a>,&nbsp;<a href=\"https://profiles.wordpress.org/webmandesign/\">WebMan Design | Oliver Juhas</a>,&nbsp;<a href=\"https://profiles.wordpress.org/wendyjchen/\">Wendy Chen</a>,&nbsp;<a href=\"https://profiles.wordpress.org/wesselvandenberg/\">wesselvandenberg</a>,&nbsp;<a href=\"https://profiles.wordpress.org/westonruter/\">Weston Ruter</a>,&nbsp;<a href=\"https://profiles.wordpress.org/wallstead/\">Willis Allstead</a>,&nbsp;<a href=\"https://profiles.wordpress.org/worldedu/\">worldedu</a>,&nbsp;<a href=\"https://profiles.wordpress.org/wponlinesupport/\">WP OnlineSupport</a>,&nbsp;<a href=\"https://profiles.wordpress.org/tikifez/\">Xristopher Anderton</a>,&nbsp;<a href=\"https://profiles.wordpress.org/yannkozon/\">Yann Kozon</a>,&nbsp;<a href=\"https://profiles.wordpress.org/yoavf/\">Yoav Farhi</a>,&nbsp;<a href=\"https://profiles.wordpress.org/yscik/\">yscik</a>,&nbsp;<a href=\"https://profiles.wordpress.org/fierevere/\">Yui</a>,&nbsp;<a href=\"https://profiles.wordpress.org/yuliyan/\">yuliyan</a>,&nbsp;<a href=\"https://profiles.wordpress.org/zebulan/\">Zebulan Stanphill</a>, and&nbsp;<a href=\"https://profiles.wordpress.org/zieladam/\">zieladam</a>.</p>\n\n\n\n<div class=\"wp-block-group has-background\" style=\"background-color:#0a5b89\"><div class=\"wp-block-group__inner-container\">\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container\">\n<p class=\"has-text-align-center has-white-color has-text-color has-large-font-size\"><strong>Code is poetry.</strong></p>\n</div></div>\n</div></div>\n\n\n\n<p></p>\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:36:\"http://wellformedweb.org/CommentAPI/\";a:1:{s:10:\"commentRss\";a:1:{i:0;a:5:{s:4:\"data\";s:68:\"https://en-gb.wordpress.org/2021/03/10/wordpress-5-7-esperanza/feed/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:38:\"http://purl.org/rss/1.0/modules/slash/\";a:1:{s:8:\"comments\";a:1:{i:0;a:5:{s:4:\"data\";s:1:\"0\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:4;a:6:{s:4:\"data\";s:73:\"\n		\n		\n					\n		\n		\n		\n				\n		\n\n					\n										\n					\n					\n			\n		\n		\n			\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:5:{s:0:\"\";a:7:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:75:\"FSE Programme Testing Call #2 – Build a Homepage with Site Editing Blocks\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:110:\"https://en-gb.wordpress.org/2021/02/24/fse-programme-testing-call-2-build-a-homepage-with-site-editing-blocks/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"comments\";a:1:{i:0;a:5:{s:4:\"data\";s:118:\"https://en-gb.wordpress.org/2021/02/24/fse-programme-testing-call-2-build-a-homepage-with-site-editing-blocks/#respond\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 24 Feb 2021 14:51:52 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:1:{i:0;a:5:{s:4:\"data\";s:3:\"FSE\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://en-gb.wordpress.org/?p=1340\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:308:\"Why not take a look at this post regarding the second call for testing as part of the Full Site Editing Outreach Programme. Here you will find everything you need to know about this exciting new programme and how you can get involved. Please leave any feedback in the comments of the post by Friday [&#8230;]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:11:\"Mark Robson\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:597:\"\n<p>Why not take a look at <a href=\"https://make.wordpress.org/test/2021/02/18/fse-program-testing-call-2-build-a-homepage-with-site-editing-blocks/\">this post</a> regarding the second call for testing as part of the Full Site Editing Outreach Programme. </p>\n\n\n\n<p>Here you will find everything you need to know about this exciting new programme and how you can get involved. </p>\n\n\n\n<p>Please leave any feedback in the comments of <a href=\"https://make.wordpress.org/test/2021/02/18/fse-program-testing-call-2-build-a-homepage-with-site-editing-blocks/\">the post</a> by Friday 5 March 2021.</p>\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:36:\"http://wellformedweb.org/CommentAPI/\";a:1:{s:10:\"commentRss\";a:1:{i:0;a:5:{s:4:\"data\";s:115:\"https://en-gb.wordpress.org/2021/02/24/fse-programme-testing-call-2-build-a-homepage-with-site-editing-blocks/feed/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:38:\"http://purl.org/rss/1.0/modules/slash/\";a:1:{s:8:\"comments\";a:1:{i:0;a:5:{s:4:\"data\";s:1:\"0\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:5;a:6:{s:4:\"data\";s:73:\"\n		\n		\n					\n		\n		\n		\n				\n		\n\n					\n										\n					\n					\n			\n		\n		\n			\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:5:{s:0:\"\";a:7:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"WordPress 5.6.2 Maintenance Release\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:75:\"https://en-gb.wordpress.org/2021/02/22/wordpress-5-6-2-maintenance-release/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"comments\";a:1:{i:0;a:5:{s:4:\"data\";s:83:\"https://en-gb.wordpress.org/2021/02/22/wordpress-5-6-2-maintenance-release/#respond\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 22 Feb 2021 17:23:27 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:1:{i:0;a:5:{s:4:\"data\";s:8:\"Releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://en-gb.wordpress.org/?p=1336\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:452:\"WordPress 5.6.2 is now available! This maintenance release includes&#160;5 bug fixes. These bugs affect WordPress version 5.6.1, so you’ll want to upgrade. You can&#160;download WordPress 5.6.2 directly, or visit the&#160;Dashboard → Updates&#160;screen&#160;and click&#160;Update Now. If your sites support automatic background updates, they’ve already started the update process. WordPress 5.6.2 is a small maintenance release focused [&#8230;]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:11:\"Mark Robson\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:5084:\"\n<p>WordPress 5.6.2 is now available!</p>\n\n\n\n<p>This maintenance release includes&nbsp;<a href=\"https://core.trac.wordpress.org/query?status=closed&amp;milestone=5.6.2&amp;group=component&amp;col=id&amp;col=summary&amp;col=status&amp;col=milestone&amp;col=owner&amp;col=type&amp;col=priority&amp;order=priority\">5 bug fixes</a>. These bugs affect WordPress version 5.6.1, so you’ll want to upgrade.</p>\n\n\n\n<p>You can&nbsp;<a href=\"https://wordpress.org/wordpress-5.6.2.zip\">download WordPress 5.6.2 directly</a>, or visit the<strong>&nbsp;Dashboard → Updates</strong>&nbsp;screen&nbsp;and click&nbsp;<strong>Update Now</strong>. If your sites support automatic background updates, they’ve already started the update process.</p>\n\n\n\n<p>WordPress 5.6.2 is a small maintenance release focused on fixing user-facing issues discovered in 5.6.1. The next major release will be <a href=\"https://make.wordpress.org/core/5-7/\">version 5.7</a>, currently scheduled for release on 9 March 2021.</p>\n\n\n\n<p>To see a full list of changes, you can browse the&nbsp;<a href=\"https://core.trac.wordpress.org/query?status=closed&amp;milestone=5.6.2&amp;group=component&amp;col=id&amp;col=summary&amp;col=status&amp;col=milestone&amp;col=owner&amp;col=type&amp;col=priority&amp;order=priority\">list on Trac</a>, read the&nbsp;<a href=\"https://make.wordpress.org/core/2021/02/17/wordpress-5-6-2-rc1/\">5.6.2 RC1</a>&nbsp;post, or visit the&nbsp;<a href=\"https://wordpress.org/support/wordpress-version/version-5-6-2/\">5.6.2 documentation page</a>.</p>\n\n\n\n<h2>Thanks and props!</h2>\n\n\n\n<p>The 5.6.2 release was led by&nbsp;<a href=\"https://profiles.wordpress.org/desrosj/\">@desrosj</a>. Special props to&nbsp;<a href=\"https://profiles.wordpress.org/isabel_brison/\">@isabel_brison</a>&nbsp;and&nbsp;<a href=\"https://profiles.wordpress.org/talldanwp/\">@talldanwp</a>&nbsp;for helping to prepare the block editor related fixes, and&nbsp;<a href=\"https://profiles.wordpress.org/audrasjb/\">@audrasjb</a>&nbsp;and&nbsp;<a href=\"https://profiles.wordpress.org/sergeybiryukov/\">@sergeybiryukov</a>&nbsp;for helping with other release related tasks.</p>\n\n\n\n<p>Props to everyone who helped make WordPress 5.6.2 happen:</p>\n\n\n\n<p><a href=\"https://profiles.wordpress.org/aaronrobertshaw/\">aaronrobertshaw</a>,&nbsp;<a href=\"https://profiles.wordpress.org/addiestavlo/\">Addie</a>,&nbsp;<a href=\"https://profiles.wordpress.org/nosolosw/\">André Maneiro</a>,&nbsp;<a href=\"https://profiles.wordpress.org/archon810/\">archon810</a>,&nbsp;<a href=\"https://profiles.wordpress.org/aristath/\">Ari Stathopoulos</a>,&nbsp;<a href=\"https://profiles.wordpress.org/bartosz777/\">bartosz777</a>,&nbsp;<a href=\"https://profiles.wordpress.org/bernhard-reiter/\">Bernhard Reiter</a>,&nbsp;<a href=\"https://profiles.wordpress.org/talldanwp/\">Daniel Richards</a>,&nbsp;<a href=\"https://profiles.wordpress.org/davidanderson/\">David Anderson</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dbtedg/\">dbtedg</a>,&nbsp;<a href=\"https://profiles.wordpress.org/glendaviesnz/\">glendaviesnz</a>,&nbsp;<a href=\"https://profiles.wordpress.org/hmabpera/\">hmabpera</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ibiza69/\">ibiza69</a>,&nbsp;<a href=\"https://profiles.wordpress.org/isabel_brison/\">Isabel Brison</a>,&nbsp;<a href=\"https://profiles.wordpress.org/viablethought/\">Jason Ryan</a>,&nbsp;<a href=\"https://profiles.wordpress.org/audrasjb/\">Jb Audras</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jrf/\">Juliette Reinders Folmer</a>,&nbsp;<a href=\"https://profiles.wordpress.org/kevin940726/\">Kai Hao</a>,&nbsp;<a href=\"https://profiles.wordpress.org/gwwar/\">Kerry Liu</a>,&nbsp;<a href=\"https://profiles.wordpress.org/hwk-fr/\">Konrad Chmielewski</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jorgefilipecosta/\">Jorge Costa</a>,&nbsp;<a href=\"https://profiles.wordpress.org/magnuswebdesign/\">magnuswebdesign</a>,&nbsp;<a href=\"https://profiles.wordpress.org/clorith/\">Marius L. J.</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mattwiebe/\">Matt Wiebe</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mukesh27/\">Mukesh Panchal</a>,&nbsp;<a href=\"https://profiles.wordpress.org/paaljoachim/\">Paal Joachim Romdahl</a>,&nbsp;<a href=\"https://profiles.wordpress.org/freewebmentor/\">Prem Tiwari</a>,&nbsp;<a href=\"https://profiles.wordpress.org/itsjonq/\">Q</a>,&nbsp;<a href=\"https://profiles.wordpress.org/youknowriad/\">Riad Benguella</a>,&nbsp;<a href=\"https://profiles.wordpress.org/noisysocks/\">Robert Anderson</a>,&nbsp;<a href=\"https://profiles.wordpress.org/roger995/\">roger995</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sergeybiryukov/\">Sergey Biryukov</a>,&nbsp;<a href=\"https://profiles.wordpress.org/yakimun/\">Sergey Yakimov</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sterndata/\">Steven Stern (sterndata)</a>,&nbsp;<a href=\"https://profiles.wordpress.org/inc2734/\">Takashi Kitajima</a>,&nbsp;<a href=\"https://profiles.wordpress.org/tonysandwich/\">tonysandwich</a>,&nbsp;<a href=\"https://profiles.wordpress.org/worldedu/\">worldedu</a>,&nbsp;<a href=\"https://profiles.wordpress.org/fierevere/\">Yui</a>.</p>\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:36:\"http://wellformedweb.org/CommentAPI/\";a:1:{s:10:\"commentRss\";a:1:{i:0;a:5:{s:4:\"data\";s:80:\"https://en-gb.wordpress.org/2021/02/22/wordpress-5-6-2-maintenance-release/feed/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:38:\"http://purl.org/rss/1.0/modules/slash/\";a:1:{s:8:\"comments\";a:1:{i:0;a:5:{s:4:\"data\";s:1:\"0\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:6;a:6:{s:4:\"data\";s:73:\"\n		\n		\n					\n		\n		\n		\n				\n		\n\n					\n										\n					\n					\n			\n		\n		\n			\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:5:{s:0:\"\";a:7:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"WordPress 5.6.1 Maintenance Release\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:75:\"https://en-gb.wordpress.org/2021/02/04/wordpress-5-6-1-maintenance-release/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"comments\";a:1:{i:0;a:5:{s:4:\"data\";s:83:\"https://en-gb.wordpress.org/2021/02/04/wordpress-5-6-1-maintenance-release/#respond\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 04 Feb 2021 16:48:30 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:1:{i:0;a:5:{s:4:\"data\";s:8:\"Releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://en-gb.wordpress.org/?p=1332\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:479:\"WordPress 5.6.1 is now available! This maintenance release features&#160;20 bug fixes&#160;as well as&#160;7 issues fixed for the&#160;block&#160;editor. These bugs affect WordPress version 5.6, so you’ll want to upgrade. You can&#160;download WordPress 5.6.1 directly, or visit the&#160;Dashboard → Updates&#160;screen&#160;and click&#160;Update Now. If your sites support automatic background updates, they’ve already started the update process. WordPress 5.6.1 [&#8230;]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:11:\"Mark Robson\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:8383:\"\n<p>WordPress 5.6.1 is now available!</p>\n\n\n\n<p>This maintenance release features&nbsp;<a href=\"https://core.trac.wordpress.org/query?status=closed&amp;milestone=5.6.1&amp;group=status&amp;col=id&amp;col=summary&amp;col=status&amp;col=milestone&amp;col=owner&amp;col=type&amp;col=priority&amp;order=priority\">20 bug fixes</a>&nbsp;as well as&nbsp;7 issues fixed for the&nbsp;block&nbsp;editor. These bugs affect WordPress version 5.6, so you’ll want to upgrade.</p>\n\n\n\n<p>You can&nbsp;<a href=\"https://wordpress.org/wordpress-5.6.1.zip\">download WordPress 5.6.1 directly</a>, or visit the<strong>&nbsp;Dashboard → Updates</strong>&nbsp;screen&nbsp;and click&nbsp;<strong>Update Now</strong>. If your sites support automatic background updates, they’ve already started the update process.</p>\n\n\n\n<p>WordPress 5.6.1 is a short-cycle maintenance release. The next major release will be&nbsp;<a href=\"https://make.wordpress.org/core/5-7/\">version 5.7</a>.</p>\n\n\n\n<p>To see a full list of changes, you can browse the&nbsp;<a href=\"https://core.trac.wordpress.org/query?status=closed&amp;milestone=5.6.1&amp;group=status&amp;col=id&amp;col=summary&amp;col=status&amp;col=milestone&amp;col=owner&amp;col=type&amp;col=priority&amp;order=priority\">list on Trac</a>, read the&nbsp;<a href=\"https://make.wordpress.org/core/2021/01/28/wordpress-5-6-1-rc1/\">5.6.1 RC1</a>&nbsp;post, or visit the&nbsp;<a href=\"https://wordpress.org/support/wordpress-version/version-5-6-1/\">5.6.1 documentation page</a>.</p>\n\n\n\n<h2>Thanks and props!</h2>\n\n\n\n<p>The 5.6.1 release was led by&nbsp;<a href=\"https://profiles.wordpress.org/audrasjb/\">@audrasjb</a>,&nbsp;<a href=\"https://profiles.wordpress.org/desrosj/\">@desrosj</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sergeybiryukov/\">@sergeybiryukov</a>&nbsp;and&nbsp;<a href=\"https://profiles.wordpress.org/whyisjake/\">@whyisjake</a>. Thanks to&nbsp;<a href=\"https://profiles.wordpress.org/metalandcoffee/\">@metalandcoffee</a>&nbsp;and&nbsp;<a href=\"https://profiles.wordpress.org/hellofromtonya/\">@hellofromtonya</a>&nbsp;for running bug scrubs,&nbsp;<a href=\"https://profiles.wordpress.org/planningwrite/\">@planningwrite</a>&nbsp;and&nbsp;<a href=\"https://profiles.wordpress.org/davidbaumwald/\">@davidbaumwald</a>&nbsp;for their help on the release post.</p>\n\n\n\n<p>Props to everyone who helped make WordPress 5.6.1 happen:</p>\n\n\n\n<p><a href=\"https://profiles.wordpress.org/aaribaud/\">aaribaud</a>,&nbsp;<a href=\"https://profiles.wordpress.org/aaroncampbell/\">Aaron D. Campbell</a>,&nbsp;<a href=\"https://profiles.wordpress.org/engahmeds3ed/\">Ahmed Saeed</a>,&nbsp;<a href=\"https://profiles.wordpress.org/azaozz/\">Andrew Ozz</a>,&nbsp;<a href=\"https://profiles.wordpress.org/antpb/\">Anthony Burchell</a>,&nbsp;<a href=\"https://profiles.wordpress.org/archon810/\">archon810</a>,&nbsp;<a href=\"https://profiles.wordpress.org/aristath/\">Ari Stathopoulos</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ayeshrajans/\">Ayesh Karunaratne</a>,&nbsp;<a href=\"https://profiles.wordpress.org/basscan/\">basscan</a>,&nbsp;<a href=\"https://profiles.wordpress.org/carloscastilloadhoc/\">carloscastilloadhoc</a>,&nbsp;<a href=\"https://profiles.wordpress.org/poena/\">Carolina Nymark</a>,&nbsp;<a href=\"https://profiles.wordpress.org/celendesign/\">celendesign</a>,&nbsp;<a href=\"https://profiles.wordpress.org/cfinke/\">Christopher Finke</a>,&nbsp;<a href=\"https://profiles.wordpress.org/copons/\">Copons</a>,&nbsp;<a href=\"https://profiles.wordpress.org/danfarrow/\">Dan Farrow</a>,&nbsp;<a href=\"https://profiles.wordpress.org/talldanwp/\">Daniel Richards</a>,&nbsp;<a href=\"https://profiles.wordpress.org/davidbinda/\">david.binda</a>,&nbsp;<a href=\"https://profiles.wordpress.org/denisco/\">Denis Yanchevskiy</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dilipbheda/\">Dilip Bheda</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ocean90/\">Dominik Schilling</a>,&nbsp;<a href=\"https://profiles.wordpress.org/metalandcoffee/\">Ebonie Butler</a>,&nbsp;<a href=\"https://profiles.wordpress.org/flixos90/\">Felix Arntz</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mista-flo/\">Florian TIAR</a>,&nbsp;<a href=\"https://profiles.wordpress.org/garrett-eclipse/\">Garrett Hyder</a>,&nbsp;<a href=\"https://profiles.wordpress.org/gkibria69/\">gKibria</a>,&nbsp;<a href=\"https://profiles.wordpress.org/gziolo/\">Greg Ziółkowski</a>,&nbsp;<a href=\"https://profiles.wordpress.org/helen/\">Helen Hou-Sandi</a>,&nbsp;<a href=\"https://profiles.wordpress.org/iandunn/\">Ian Dunn</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ifnoob/\">ifnoob</a>,&nbsp;<a href=\"https://profiles.wordpress.org/isabel_brison/\">Isabel Brison</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ismailelkorchi/\">Ismail El Korchi</a>,&nbsp;<a href=\"https://profiles.wordpress.org/whyisjake/\">Jake Spurlock</a>,&nbsp;<a href=\"https://profiles.wordpress.org/macmanx/\">James Huff</a>,&nbsp;<a href=\"https://profiles.wordpress.org/madtownlems/\">Jason LeMahieu (MadtownLems)</a>,&nbsp;<a href=\"https://profiles.wordpress.org/audrasjb/\">Jb Audras</a>,&nbsp;<a href=\"https://profiles.wordpress.org/johnbillion/\">John Blackbourn</a>,&nbsp;<a href=\"https://profiles.wordpress.org/desrosj/\">Jonathan Desrosiers</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jonathanstegall/\">Jonathan Stegall</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jorgefilipecosta/\">Jorge Costa</a>,&nbsp;<a href=\"https://profiles.wordpress.org/chanthaboune/\">Josepha</a>,&nbsp;<a href=\"https://profiles.wordpress.org/justinahinon/\">Justin Ahinon</a>,&nbsp;<a href=\"https://profiles.wordpress.org/kevin940726/\">Kai Hao</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ryelle/\">Kelly Choyce-Dwan</a>,&nbsp;<a href=\"https://profiles.wordpress.org/kjellr/\">Kjell Reigstad</a>,&nbsp;<a href=\"https://profiles.wordpress.org/xkon/\">Konstantinos Xenos</a>,&nbsp;<a href=\"https://profiles.wordpress.org/litemotiv/\">litemotiv</a>,&nbsp;<a href=\"https://profiles.wordpress.org/lucasbustamante/\">lucasbustamante</a>,&nbsp;<a href=\"https://profiles.wordpress.org/akramipro/\">Mahdi Akrami</a>,&nbsp;<a href=\"https://profiles.wordpress.org/majhajob/\">majhajob</a>,&nbsp;<a href=\"https://profiles.wordpress.org/manzurahammed/\">Manzur Ahammed</a>,&nbsp;<a href=\"https://profiles.wordpress.org/clorith/\">Marius L. J.</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mattwiebe/\">Matt Wiebe</a>,&nbsp;<a href=\"https://profiles.wordpress.org/maxpertici/\">Maxime Pertici</a>,&nbsp;<a href=\"https://profiles.wordpress.org/melchoyce/\">Mel Choyce-Dwan</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mbabker/\">Michael Babker</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mukesh27/\">Mukesh Panchal</a>,&nbsp;<a href=\"https://profiles.wordpress.org/nicolaskulka/\">NicolasKulka</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ntsekouras/\">Nik Tsekouras</a>,&nbsp;<a href=\"https://profiles.wordpress.org/oakesjosh/\">oakesjosh</a>,&nbsp;<a href=\"https://profiles.wordpress.org/peterwilsoncc/\">Peter Wilson</a>,&nbsp;<a href=\"https://profiles.wordpress.org/freewebmentor/\">Prem Tiwari</a>,&nbsp;<a href=\"https://profiles.wordpress.org/youknowriad/\">Riad Benguella</a>,&nbsp;<a href=\"https://profiles.wordpress.org/iamfriendly/\">Richard Tape</a>,&nbsp;<a href=\"https://profiles.wordpress.org/noisysocks/\">Robert Anderson</a>,&nbsp;<a href=\"https://profiles.wordpress.org/rodrigosprimo/\">Rodrigo Primo</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sebsz/\">SeBsZ</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sergeybiryukov/\">Sergey Biryukov</a>,&nbsp;<a href=\"https://profiles.wordpress.org/slaffik/\">Slava Abakumov</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sabernhardt/\">Stephen Bernhardt</a>,&nbsp;<a href=\"https://profiles.wordpress.org/t-p/\">t-p</a>,&nbsp;<a href=\"https://profiles.wordpress.org/inc2734/\">Takashi Kitajima</a>,&nbsp;<a href=\"https://profiles.wordpress.org/tanvirul/\">Tanvirul Haque</a>,&nbsp;<a href=\"https://profiles.wordpress.org/thorlentz/\">thorlentz</a>,&nbsp;<a href=\"https://profiles.wordpress.org/timothyblynjacobs/\">Timothy Jacobs</a>,&nbsp;<a href=\"https://profiles.wordpress.org/skithund/\">Toni Viemerö</a>,&nbsp;<a href=\"https://profiles.wordpress.org/arcangelini/\">Tony A</a>,&nbsp;<a href=\"https://profiles.wordpress.org/hellofromtonya/\">Tonya Mork</a>,&nbsp;<a href=\"https://profiles.wordpress.org/transl8or/\">transl8or</a>, and&nbsp;<a href=\"https://profiles.wordpress.org/vladytimy/\">Vlad T</a>.</p>\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:36:\"http://wellformedweb.org/CommentAPI/\";a:1:{s:10:\"commentRss\";a:1:{i:0;a:5:{s:4:\"data\";s:80:\"https://en-gb.wordpress.org/2021/02/04/wordpress-5-6-1-maintenance-release/feed/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:38:\"http://purl.org/rss/1.0/modules/slash/\";a:1:{s:8:\"comments\";a:1:{i:0;a:5:{s:4:\"data\";s:1:\"0\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:7;a:6:{s:4:\"data\";s:73:\"\n		\n		\n					\n		\n		\n		\n				\n		\n\n					\n										\n					\n					\n			\n		\n		\n			\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:5:{s:0:\"\";a:7:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:26:\"WordPress 5.6 “Simone”\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:60:\"https://en-gb.wordpress.org/2020/12/09/wordpress-5-6-simone/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"comments\";a:1:{i:0;a:5:{s:4:\"data\";s:68:\"https://en-gb.wordpress.org/2020/12/09/wordpress-5-6-simone/#respond\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 09 Dec 2020 00:01:07 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:1:{i:0;a:5:{s:4:\"data\";s:8:\"Releases\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://en-gb.wordpress.org/?p=1309\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:338:\"Meet Simone, our latest and greatest WordPress release. Named in honour of the legendary performer Nina Simone, who is known for tunes like “Feeling Good”, “Young, Gifted and Black”, and “Four Women”. Fire up a playlist with her best work and read on to discover what we have in store for you.  Welcome to WordPress [&#8230;]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:11:\"Mark Robson\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:61064:\"\n<p>Meet Simone, our latest and greatest WordPress release. Named in honour of the legendary performer Nina Simone, who is known for tunes like “Feeling Good”, “Young, Gifted and Black”, and “Four Women”. Fire up a playlist with her best work and read on to discover what we have in store for you. </p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https://i2.wp.com/wordpress.org/news/files/2020/12/wordpress-5-6_cover-a11y.jpg?resize=632%2C633&amp;ssl=1\" alt=\"WordPress 5.6 Simone with a photo of Nina Simone\" class=\"wp-image-9416\" /></figure>\n\n\n\n<p>Welcome to WordPress 5.6</p>\n\n\n\n<h3>Sharing your stories has never been easier.</h3>\n\n\n\n<p>WordPress 5.6 brings you countless ways to set your ideas free and bring them to life. With a brand-new default theme as your canvas, it supports an ever-growing collection of blocks as your brushes. Paint with words. Pictures. Sound. Or rich embedded media.</p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https://i0.wp.com/wordpress.org/news/files/2020/12/WordPress5-6-1.jpeg?resize=632%2C234&amp;ssl=1\" alt=\"colored circles\" class=\"wp-image-9346\" /></figure>\n\n\n\n<h3>Greater layout flexibility</h3>\n\n\n\n<p>Bring your stories to life with more tools that let you edit your layout with or without code. Single column blocks, designs using mixed widths and columns, full-width headers, and gradients in your cover block – make small changes or big statements with equal ease!</p>\n\n\n\n<h3>More block patterns</h3>\n\n\n\n<p>In some themes, preconfigured block patterns make setting up standard pages on your site a breeze. Let the power of patterns streamline your workflow and save you clicks. Plus, share these features with clients, editors, and more.</p>\n\n\n\n<h3>Better video captioning</h3>\n\n\n\n<p>To help you add subtitles or captions to your videos, you can now upload them within your post or page. This makes it easier than ever to make your videos accessible for anyone who needs or prefers to use subtitles.</p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https://i2.wp.com/wordpress.org/news/files/2020/12/WordPress5-6-2.jpeg?resize=632%2C120&amp;ssl=1\" alt=\"black vertical line\" class=\"wp-image-9347\" /></figure>\n\n\n\n<h2>Twenty Twenty-One is here!</h2>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https://i0.wp.com/wordpress.org/news/files/2020/12/TT1-Screenshots-Compressed.png?ssl=1\"><img src=\"https://i0.wp.com/wordpress.org/news/files/2020/12/TT1-Screenshots-Compressed.png?resize=632%2C714&amp;ssl=1\" alt=\"Examples of block patterns available in Twenty Twenty-One.\" class=\"wp-image-9426\" /></a></figure>\n\n\n\n<p>Twenty Twenty-One is a blank canvas for your ideas, and the block editor is the best brush. It is built for the block editor and packed with brand-new block patterns you can only get in the default themes. Try different layouts in a matter of seconds, and let the theme’s eye-catching, yet timeless design make your work shine.&nbsp;</p>\n\n\n\n<p>What’s more, this default theme puts accessibility at the heart of your website. It conforms to the&nbsp;<a href=\"https://make.wordpress.org/themes/handbook/review/accessibility/\">WordPress accessibility-ready guidelines</a>&nbsp;and addresses several more specialised standards from the&nbsp;<a href=\"https://www.w3.org/WAI/WCAG2AAA-Conformance\">Web Content Accessibility Guidelines (WCAG) 2.1 at level AAA</a>. It will help you meet the highest level of international accessibility standards when you create accessible content and choose plugins which are accessible too!</p>\n\n\n\n<h3>A rainbow of soft pastels</h3>\n\n\n\n<figure class=\"wp-block-image\"><a href=\"https://i2.wp.com/wordpress.org/news/files/2020/12/Rainbow-Compressed.png?ssl=1\"><img src=\"https://i2.wp.com/wordpress.org/news/files/2020/12/Rainbow-Compressed.png?resize=632%2C167&amp;ssl=1\" alt=\"A mobile screenshot of each included color palette in Twenty Twenty-One, going in ROYGBIV order.\" class=\"wp-image-9424\" /></a></figure>\n\n\n\n<p>Perfect for a new year, Twenty Twenty-One gives you a range of pre-selected colour palettes in pastel, all of which conform to AAA standards for contrast. You can also choose your own background colour for the theme, and the theme chooses accessibility-conscious text colours for you – automatically!</p>\n\n\n\n<p>Need more flexibility than that? You can also choose your own colour palette from the colour picker.</p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https://i0.wp.com/wordpress.org/news/files/2020/12/WordPress5-6-3.jpeg?resize=632%2C151&amp;ssl=1\" alt=\"colored circles\" class=\"wp-image-9351\" /></figure>\n\n\n\n<h2>Improvements for everyone</h2>\n\n\n\n<h3>Expanding auto-updates</h3>\n\n\n\n<p>For years, only developers have been able to update WordPress automatically. But now you have that option, right in your dashboard. If this is your first site, you have auto-updates ready to go, right now! Upgrading an existing site? No problem! Everything is the same as it was before.</p>\n\n\n\n<h3>Accessibility Statement&nbsp;</h3>\n\n\n\n<p>Even if you’re not an expert, you can start letting others know about your site’s commitment to accessibility! The new&nbsp;<a href=\"https://github.com/10degrees/accessibility-statement-plugin\">feature plugin</a>&nbsp;includes template copy for you to edit and publish, and it’s written to support different contexts and jurisdictions.&nbsp;&nbsp;</p>\n\n\n\n<h3>Built-in Patterns</h3>\n\n\n\n<p>If you’ve not had the chance to play with block patterns yet, all default themes now feature a range of block patterns that let you master complex layouts with minimal effort. Customise the patterns to your liking with the copy, images, and colours that fit your story or brand.&nbsp;</p>\n\n\n\n<figure class=\"wp-block-image\"><img src=\"https://i0.wp.com/wordpress.org/news/files/2020/12/WordPress-5-6-4.jpeg?resize=632%2C185&amp;ssl=1\" alt=\"colored and textured rectangles\" class=\"wp-image-9352\" /></figure>\n\n\n\n<h2>For developers</h2>\n\n\n\n<h3>REST API authentication with Application Passwords</h3>\n\n\n\n<p>Thanks to the API’s new Application Passwords authorisation feature, third-party apps can connect to your site seamlessly and securely. This new REST API feature lets you see what apps are connecting to your site and control what they do.&nbsp;</p>\n\n\n\n<h3>More PHP 8 support</h3>\n\n\n\n<p>5.6 marks the first steps toward WordPress Core support for PHP 8. Now is a great time to start planning how your WordPress products, services, and sites can support the latest PHP version. For more information about what to expect next,&nbsp;<a href=\"https://make.wordpress.org/core/2020/11/23/wordpress-and-php-8-0/\">read the PHP 8 developer note</a>.</p>\n\n\n\n<h3>jQuery</h3>\n\n\n\n<p>Updates to jQuery in WordPress take place across three releases 5.5, 5.6, and 5.7. As we reach the mid-point of this process,&nbsp;<a href=\"https://wordpress.org/plugins/wp-jquery-update-test/\">run the update test plugin to check your sites for errors</a>&nbsp;ahead of time.&nbsp;&nbsp;&nbsp;&nbsp;</p>\n\n\n\n<p>If you find issues with the way your site looks (eg a slider doesn’t work, a button is stuck – that sort of thing), install&nbsp;<a href=\"https://wordpress.org/plugins/enable-jquery-migrate-helper/\">the jQuery Migrate plugin</a>.</p>\n\n\n\n<h3>Check out the Field Guide</h3>\n\n\n\n<p><a href=\"https://make.wordpress.org/core/2020/11/20/wordpress-5-6-field-guide/\">Read about the latest version of WordPress in this guide</a>. It highlights developer notes for each change in the release.&nbsp;</p>\n\n\n\n<p>“It’s a new day, it’s a new life for me….and I’m feeling good”.</p>\n\n\n\n<h3>~Nina Simone</h3>\n\n\n\n<h2>The Squad</h2>\n\n\n\n<p>The WordPress 5.6 release comes to you from an all-women release squad:&nbsp;&nbsp;</p>\n\n\n\n<ul><li><strong>Release Lead:</strong>&nbsp;Josepha Haden (<a href=\"https://profiles.wordpress.org/chanthaboune/\">@chanthaboune</a>).&nbsp; Cohort: Chloé Bringmann (<a href=\"https://profiles.wordpress.org/cbringmann/\">@cbringmann</a>) and Angela Jin (<a href=\"https://profiles.wordpress.org/angelasjin/\">@angelasjin</a>).</li><li><strong>Release Coordinator:</strong>&nbsp;Dee Teal (<a href=\"https://profiles.wordpress.org/thewebprincess/\">@thewebprincess</a>).&nbsp; Cohort: Thelma Mutete (<a href=\"https://profiles.wordpress.org/thelmachido/\">@thelmachido</a>) and Laura Nelson (<a href=\"https://profiles.wordpress.org/laurora/\">@laurora</a>).</li><li><strong>Triage Lead:</strong>&nbsp;Tonya Mork (<a href=\"https://profiles.wordpress.org/hellofromtonya/\">@hellofromtonya</a>).&nbsp;</li><li><strong>Core Tech Lead:</strong>&nbsp;Helen Hou-Sandì (<a href=\"https://profiles.wordpress.org/helen/\">@helen</a>).&nbsp; Cohort: Amy Kamala (<a href=\"https://profiles.wordpress.org/amykamala/\">@amykamala</a>) and Ebonie Butler (<a href=\"https://profiles.wordpress.org/metalandcoffee/\">@metalandcoffee</a>).</li><li><strong>Editor Tech Lead:</strong>&nbsp;Isabel Brison (<a href=\"https://profiles.wordpress.org/isabel_brison/\">@isabel_brison</a>).&nbsp; Cohort: Chandrika Guntur (<a href=\"https://profiles.wordpress.org/cguntur/\">@cguntur</a>), Anchen le Roux (<a href=\"https://profiles.wordpress.org/anchenlr/\">@anchenlr</a>), and Rebecca Hum (<a href=\"https://profiles.wordpress.org/rebasaurus/\">@rebasaurus</a>).</li><li><strong>Design Leads:</strong>&nbsp;Ellen Bauer (<a href=\"https://profiles.wordpress.org/elmastudio/\">@elmastudio</a>) and Tammie Lister (<a href=\"https://profiles.wordpress.org/karmatosed/\">@karmatosed</a>).&nbsp; Cohort: Anyssa Ferreira (<a href=\"https://profiles.wordpress.org/anyssa/\">@anyssa</a>), Estela Rueda (<a href=\"https://profiles.wordpress.org/estelaris/\">@estelaris</a>), Tracy Apps (<a href=\"https://profiles.wordpress.org/tray/\">@tray</a>), and Sophia DeRosia (<a href=\"https://profiles.wordpress.org/eringoblog/\">@eringoblog</a>).</li><li><strong>Design Tech Lead:</strong>&nbsp;Shital Marakana (<a href=\"https://profiles.wordpress.org/shital-patel/\">@shital-patel</a>).</li><li><strong>Accessibility Lead:</strong>&nbsp;Sarah Ricker (<a href=\"https://profiles.wordpress.org/sarahricker/\">@sarahricke<strong>r</strong></a>).&nbsp;Cohort: Hauwa Abashiya (<a href=\"https://profiles.wordpress.org/azhiyadev/\">@azhiyadev</a>).</li><li><strong>Marketing &amp; Communications Leads:</strong>&nbsp;Abha Thakor (<a href=\"https://profiles.wordpress.org/webcommsat/\">@webcommsat</a>) and Yvette Sonneveld (<a href=\"https://profiles.wordpress.org/yvettesonneveld/\">@yvettesonneveld</a>).&nbsp;Cohort: Nalini Thakor (<a href=\"https://profiles.wordpress.org/nalininonstopnewsuk/\">@nalininonstopnewsuk</a>), Meher Bala (<a href=\"https://profiles.wordpress.org/meher/\">@meher</a>), Olga Gleckler (<a href=\"https://profiles.wordpress.org/oglekler/\">@ogleckler</a>), Larissa Murrillo (<a href=\"https://profiles.wordpress.org/lmurillom/\">@lmurillom</a>), Michelle Frechette (<a href=\"https://profiles.wordpress.org/michelleames/\">@michelleames</a>), Breann McDede (<a href=\"https://profiles.wordpress.org/bmcdede/\">@bmcdede</a>), and Afshana Diya (<a href=\"https://profiles.wordpress.org/afshanadiya/\">@afshanadiya</a>).</li><li><strong>Documentation Lead:&nbsp;</strong>Shawntelle Coker (<a href=\"https://profiles.wordpress.org/sncoker/\">@sncoker</a>). Cohort: Daisy Olsen (<a href=\"https://wordpress.slack.com/team/U8D7JFA3X\">@DaisyO</a>), Meher Bala (<a href=\"https://profiles.wordpress.org/meher/\">@meher</a>), Winstina Hughes (<a href=\"https://profiles.wordpress.org/planningwrite/\">@planningwrite</a>).</li><li><strong>Documentation Review Lead:</strong>&nbsp;Michele Butcher-Jones (<a href=\"https://profiles.wordpress.org/m_butcher/\">@m_butcher</a>).&nbsp; Cohort: Nidhi Jain (<a href=\"https://profiles.wordpress.org/jainnidhi/\">@jainnidhi</a>), Laura Byrne Cristiano (<a href=\"https://wordpress.org/support/users/newyorkerlaura/\">@newyorkerlaura</a>).</li><li><strong>Default Theme Design Lead:</strong>&nbsp;Mel Choyce-Dwan (<a href=\"https://profiles.wordpress.org/melchoyce/\">@melchoyce</a>).&nbsp; Cohort: Ellen Bauer (<a href=\"https://profiles.wordpress.org/elmastudio/\">@elmastudio</a>).</li><li><strong>Default Theme Development Lead:</strong>&nbsp;Carolina Nymark (<a href=\"https://profiles.wordpress.org/poena/\">@poena</a>).&nbsp; Cohort: Kelly Choyce-Dwan (<a href=\"https://profiles.wordpress.org/ryelle/\">@ryelle</a>) and Jessica Lyschik (<a href=\"https://profiles.wordpress.org/luminuu/\">@luminuu</a>).</li><li><strong>Default Theme Wrangler:</strong>&nbsp;Jessica Lyschik (<a href=\"https://profiles.wordpress.org/luminuu/\">@luminuu</a>).</li><li><strong>Test Lead:</strong>&nbsp;Monika Rao (<a href=\"https://profiles.wordpress.org/monikarao/\">@monikarao</a>).&nbsp; Cohort: Allie Nimmons (<a href=\"https://profiles.wordpress.org/alliennimmons/\">@alliennimmons</a>).</li><li><strong>Support Lead:</strong>&nbsp;Bet Hannon (<a href=\"https://profiles.wordpress.org/bethannon1/\">@bethannon1</a>).</li></ul>\n\n\n\n<p>As always, this release reflects the hard work of 605 generous volunteer contributors. They collaborated on nearly 350 tickets on Trac and over 1,000 pull requests on GitHub. <a href=\"https://profiles.wordpress.org/zgrkaralar/\">Özgür KARALAR</a>,&nbsp;<a href=\"https://profiles.wordpress.org/1naveengiri/\">1naveengiri</a>,&nbsp;<a href=\"https://profiles.wordpress.org/a5hleyrich/\">A5hleyRich</a>,&nbsp;<a href=\"https://profiles.wordpress.org/aaroncampbell/\">Aaron D. Campbell</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jorbin/\">Aaron Jorbin</a>,&nbsp;<a href=\"https://profiles.wordpress.org/aaronrobertshaw/\">aaronrobertshaw</a>,&nbsp;<a href=\"https://profiles.wordpress.org/abderrahman/\">abderrahman</a>,&nbsp;<a href=\"https://profiles.wordpress.org/webcommsat/\">Abha Thakor</a>,&nbsp;<a href=\"https://profiles.wordpress.org/abhijitrakas/\">Abhijit Rakas</a>,&nbsp;<a href=\"https://profiles.wordpress.org/pokhriyal/\">Abhishek Pokhriyal</a>,&nbsp;<a href=\"https://profiles.wordpress.org/acosmin/\">acosmin</a>,&nbsp;<a href=\"https://profiles.wordpress.org/adamsilverstein/\">Adam Silverstein</a>,&nbsp;<a href=\"https://profiles.wordpress.org/zieladam/\">Adam Zielinski</a>,&nbsp;<a href=\"https://profiles.wordpress.org/addiestavlo/\">Addie</a>,&nbsp;<a href=\"https://profiles.wordpress.org/adriandegrafreak/\">Adrián de Grafreak</a>,&nbsp;<a href=\"https://profiles.wordpress.org/adriantirusli/\">Adrianti Rusli</a>,&nbsp;<a href=\"https://profiles.wordpress.org/afshanadiya/\">Afshana Diya</a>,&nbsp;<a href=\"https://profiles.wordpress.org/chaion07/\">Ahmed Chaion</a>,&nbsp;<a href=\"https://profiles.wordpress.org/elgameel/\">Ahmed Elgameel</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ajensen/\">ajensen</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ajitbohra/\">Ajit Bohra</a>,&nbsp;<a href=\"https://profiles.wordpress.org/atachibana/\">Akira Tachibana</a>,&nbsp;<a href=\"https://profiles.wordpress.org/aktasfatih/\">aktasfatih</a>,&nbsp;<a href=\"https://profiles.wordpress.org/aljullu/\">Albert Juhé Lluveras</a>,&nbsp;<a href=\"https://profiles.wordpress.org/albertomake/\">albertomake</a>,&nbsp;<a href=\"https://profiles.wordpress.org/xknown/\">Alex Concha</a>,&nbsp;<a href=\"https://profiles.wordpress.org/akirk/\">Alex Kirk</a>,&nbsp;<a href=\"https://profiles.wordpress.org/cawa-93/\">Alex Kozack</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ajlende/\">Alex Lende</a>,&nbsp;<a href=\"https://profiles.wordpress.org/viper007bond/\">Alex Mills</a>,&nbsp;<a href=\"https://profiles.wordpress.org/alexstandiford/\">Alex Standiford</a>,&nbsp;<a href=\"https://profiles.wordpress.org/alexstine/\">Alex Stine</a>,&nbsp;<a href=\"https://profiles.wordpress.org/allancole/\">allancole</a>,&nbsp;<a href=\"https://profiles.wordpress.org/alliennimmons/\">Allie Nimmons</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ambienthack/\">ambienthack</a>,&nbsp;<a href=\"https://profiles.wordpress.org/wpamitkumar/\">Amit Dudhat</a>,&nbsp;<a href=\"https://profiles.wordpress.org/amolv/\">Amol Vhankalas</a>,&nbsp;<a href=\"https://profiles.wordpress.org/amykamala/\">Amy Kamala</a>,&nbsp;<a href=\"https://profiles.wordpress.org/anandau14/\">Anand</a>,&nbsp;<a href=\"https://profiles.wordpress.org/anlino/\">Anders Norén</a>,&nbsp;<a href=\"https://profiles.wordpress.org/afercia/\">Andrea Fercia</a>,&nbsp;<a href=\"https://profiles.wordpress.org/andreamiddleton/\">Andrea Middleton</a>,&nbsp;<a href=\"https://profiles.wordpress.org/baicusandrei/\">Andrei Baicus</a>,&nbsp;<a href=\"https://profiles.wordpress.org/andraganescu/\">Andrei Draganescu</a>,&nbsp;<a href=\"https://profiles.wordpress.org/aduth/\">Andrew Duthie</a>,&nbsp;<a href=\"https://profiles.wordpress.org/nacin/\">Andrew Nacin</a>,&nbsp;<a href=\"https://profiles.wordpress.org/azaozz/\">Andrew Ozz</a>,&nbsp;<a href=\"https://profiles.wordpress.org/rarst/\">Andrey &#8220;Rarst&#8221; Savchenko</a>,&nbsp;<a href=\"https://profiles.wordpress.org/afragen/\">Andy Fragen</a>,&nbsp;<a href=\"https://profiles.wordpress.org/apeatling/\">Andy Peatling</a>,&nbsp;<a href=\"https://profiles.wordpress.org/andy/\">Andy Skelton</a>,&nbsp;<a href=\"https://profiles.wordpress.org/andystitt829/\">Andy Stitt</a>,&nbsp;<a href=\"https://profiles.wordpress.org/akissz/\">Angel Hess</a>,&nbsp;<a href=\"https://profiles.wordpress.org/angelasjin/\">Angela Jin</a>,&nbsp;<a href=\"https://profiles.wordpress.org/wpgurudev/\">Ankit Gade</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ankitmaru/\">Ankit Panchal</a>,&nbsp;<a href=\"https://profiles.wordpress.org/annezazu/\">Anne McCarthy</a>,&nbsp;<a href=\"https://profiles.wordpress.org/antpb/\">Anthony Burchell</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ahortin/\">Anthony Hortin</a>,&nbsp;<a href=\"https://profiles.wordpress.org/antonlukin/\">Anton Lukin</a>,&nbsp;<a href=\"https://profiles.wordpress.org/antonisme/\">Antonis Lilis</a>,&nbsp;<a href=\"https://profiles.wordpress.org/anuj2/\">anuj2</a>,&nbsp;<a href=\"https://profiles.wordpress.org/apedog/\">apedog</a>,&nbsp;<a href=\"https://profiles.wordpress.org/apermo/\">Apermo</a>,&nbsp;<a href=\"https://profiles.wordpress.org/archduck/\">archduck</a>,&nbsp;<a href=\"https://profiles.wordpress.org/archon810/\">archon810</a>,&nbsp;<a href=\"https://profiles.wordpress.org/aristath/\">Ari Stathopoulos</a>,&nbsp;<a href=\"https://profiles.wordpress.org/arippberger/\">arippberger</a>,&nbsp;<a href=\"https://profiles.wordpress.org/arjendejong/\">arjendejong</a>,&nbsp;<a href=\"https://profiles.wordpress.org/arnaudban/\">ArnaudBan</a>,&nbsp;<a href=\"https://profiles.wordpress.org/arpitgshah/\">Arpit G Shah</a>,&nbsp;<a href=\"https://profiles.wordpress.org/passoniate/\">Arslan Ahmed</a>,&nbsp;<a href=\"https://profiles.wordpress.org/akkspro/\">Arslan Ahmed Kalwar</a>,&nbsp;<a href=\"https://profiles.wordpress.org/asvinballoo/\">Asvin Balloo</a>,&nbsp;<a href=\"https://profiles.wordpress.org/tacitonic/\">Atharva Dhekne</a>,&nbsp;<a href=\"https://profiles.wordpress.org/austyfrosty/\">Austin Passy</a>,&nbsp;<a href=\"https://profiles.wordpress.org/austin880625/\">austin880625</a>,&nbsp;<a href=\"https://profiles.wordpress.org/avixansa/\">avixansa</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ayesh/\">ayesh</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ayeshrajans/\">Ayesh Karunaratne</a>,&nbsp;<a href=\"https://profiles.wordpress.org/backups/\">BackuPs</a>,&nbsp;<a href=\"https://profiles.wordpress.org/barry/\">Barry</a>,&nbsp;<a href=\"https://profiles.wordpress.org/bartczyz/\">Bart Czyz</a>,&nbsp;<a href=\"https://profiles.wordpress.org/bduclos/\">bduclos</a>,&nbsp;<a href=\"https://profiles.wordpress.org/beafialho/\">Beatriz Fialho</a>,&nbsp;<a href=\"https://profiles.wordpress.org/benmeredithgmailcom/\">Ben Meredith</a>,&nbsp;<a href=\"https://profiles.wordpress.org/kau-boy/\">Bernhard Kau</a>,&nbsp;<a href=\"https://profiles.wordpress.org/bernhard-reiter/\">Bernhard Reiter</a>,&nbsp;<a href=\"https://profiles.wordpress.org/bethsoderberg/\">Beth Soderberg</a>,&nbsp;<a href=\"https://profiles.wordpress.org/bgermann/\">bgermann</a>,&nbsp;<a href=\"https://profiles.wordpress.org/hareshlive/\">Bhagvan Mangukiya</a>,&nbsp;<a href=\"https://profiles.wordpress.org/bhautikvirani/\">bhautikvirani</a>,&nbsp;<a href=\"https://profiles.wordpress.org/bananastalktome/\">Billy</a>,&nbsp;<a href=\"https://profiles.wordpress.org/birgire/\">Birgir Erlendsson (birgire)</a>,&nbsp;<a href=\"https://profiles.wordpress.org/bph/\">Birgit Pauli-Haack</a>,&nbsp;<a href=\"https://profiles.wordpress.org/bmcdede/\">bmcdede</a>,&nbsp;<a href=\"https://profiles.wordpress.org/bobbingwide/\">bobbingwide</a>,&nbsp;<a href=\"https://profiles.wordpress.org/boldgrid/\">BoldGrid</a>,&nbsp;<a href=\"https://profiles.wordpress.org/boonebgorges/\">Boone Gorges</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ibdz/\">Boy Witthaya</a>,&nbsp;<a href=\"https://profiles.wordpress.org/bradyvercher/\">Brady Vercher</a>,&nbsp;<a href=\"https://profiles.wordpress.org/kraftbj/\">Brandon Kraft</a>,&nbsp;<a href=\"https://profiles.wordpress.org/bpayton/\">Brandon Payton</a>,&nbsp;<a href=\"https://profiles.wordpress.org/bmillersw/\">Brent Miller</a>,&nbsp;<a href=\"https://profiles.wordpress.org/brentswisher/\">Brent Swisher</a>,&nbsp;<a href=\"https://profiles.wordpress.org/brianhenryie/\">Brian Henry</a>,&nbsp;<a href=\"https://profiles.wordpress.org/brianhogg/\">Brian Hogg</a>,&nbsp;<a href=\"https://profiles.wordpress.org/bridgetwillard/\">bridgetwillard</a>,&nbsp;<a href=\"https://profiles.wordpress.org/brijeshb42/\">brijeshb42</a>,&nbsp;<a href=\"https://profiles.wordpress.org/burhandodhy/\">Burhan Nasir</a>,&nbsp;<a href=\"https://profiles.wordpress.org/icaleb/\">Caleb Burks</a>,&nbsp;<a href=\"https://profiles.wordpress.org/calin/\">Calin Don</a>,&nbsp;<a href=\"https://profiles.wordpress.org/cvoell/\">Cameron Voell</a>,&nbsp;<a href=\"https://profiles.wordpress.org/campusboy1987/\">campusboy</a>,&nbsp;<a href=\"https://profiles.wordpress.org/carike/\">Carike</a>,&nbsp;<a href=\"https://profiles.wordpress.org/poena/\">Carolina Nymark</a>,&nbsp;<a href=\"https://profiles.wordpress.org/carolinegeven/\">Caroline</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ceyhun0/\">ceyhun0</a>,&nbsp;<a href=\"https://profiles.wordpress.org/chadreitsma/\">Chad Reitsma</a>,&nbsp;<a href=\"https://profiles.wordpress.org/cguntur/\">Chandrika Guntur</a>,&nbsp;<a href=\"https://profiles.wordpress.org/chetan200891/\">Chetan Prajapati</a>,&nbsp;<a href=\"https://profiles.wordpress.org/chexwarrior/\">chexwarrior</a>,&nbsp;<a href=\"https://profiles.wordpress.org/chintan1896/\">Chintan hingrajiya</a>,&nbsp;<a href=\"https://profiles.wordpress.org/chipsnyder/\">Chip Snyder</a>,&nbsp;<a href=\"https://profiles.wordpress.org/cbringmann/\">Chloé Bringmann</a>,&nbsp;<a href=\"https://profiles.wordpress.org/chouby/\">Chouby</a>,&nbsp;<a href=\"https://profiles.wordpress.org/alexandec/\">Chris Alexander</a>,&nbsp;<a href=\"https://profiles.wordpress.org/chrisvanpatten/\">Chris Van Patten</a>,&nbsp;<a href=\"https://profiles.wordpress.org/chriscct7/\">chriscct7</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ctmartin0/\">Christian Martin</a>,&nbsp;<a href=\"https://profiles.wordpress.org/christophherr/\">Christoph Herr</a>,&nbsp;<a href=\"https://profiles.wordpress.org/vimes1984/\">Christopher Churchill</a>,&nbsp;<a href=\"https://profiles.wordpress.org/chunkysteveo/\">chunkysteveo</a>,&nbsp;<a href=\"https://profiles.wordpress.org/claudiulodro/\">Claudiu Lodromanean</a>,&nbsp;<a href=\"https://profiles.wordpress.org/claytoncollie/\">Clayton Collie</a>,&nbsp;<a href=\"https://profiles.wordpress.org/collizo4sky/\">Collins Agbonghama</a>,&nbsp;<a href=\"https://profiles.wordpress.org/commeuneimage/\">Commeuneimage</a>,&nbsp;<a href=\"https://profiles.wordpress.org/copons/\">Copons</a>,&nbsp;<a href=\"https://profiles.wordpress.org/salzano/\">Corey Salzano</a>,&nbsp;<a href=\"https://profiles.wordpress.org/cpapazoglou/\">cpapazoglou</a>,&nbsp;<a href=\"https://profiles.wordpress.org/cranewest/\">cranewest</a>,&nbsp;<a href=\"https://profiles.wordpress.org/littlebigthing/\">Csaba (LittleBigThings)</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ctmartin/\">ctmartin</a>,&nbsp;<a href=\"https://profiles.wordpress.org/davidszabo/\">Dávid Szabó</a>,&nbsp;<a href=\"https://profiles.wordpress.org/daisyo/\">Daisy Olsen</a>,&nbsp;<a href=\"https://profiles.wordpress.org/danfarrow/\">Dan Farrow</a>,&nbsp;<a href=\"https://profiles.wordpress.org/danielbachhuber/\">Daniel Bachhuber</a>,&nbsp;<a href=\"https://profiles.wordpress.org/talldanwp/\">Daniel Richards</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mte90/\">Daniele Scasciafratte</a>,&nbsp;<a href=\"https://profiles.wordpress.org/danieltj/\">danieltj</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dantahoua/\">dantahoua</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dkotter/\">Darin Kotter</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dmchale/\">Dave McHale</a>,&nbsp;<a href=\"https://profiles.wordpress.org/davilera/\">David Aguilera</a>,&nbsp;<a href=\"https://profiles.wordpress.org/davidanderson/\">David Anderson</a>,&nbsp;<a href=\"https://profiles.wordpress.org/davidbaumwald/\">David Baumwald</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dgwyer/\">David Gwyer</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dlh/\">David Herrera</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dshanske/\">David Shanske</a>,&nbsp;<a href=\"https://profiles.wordpress.org/get_dave/\">David Smith</a>,&nbsp;<a href=\"https://profiles.wordpress.org/davidjlaietta/\">David Wolfpaw</a>,&nbsp;<a href=\"https://profiles.wordpress.org/davidbinda/\">david.binda</a>,&nbsp;<a href=\"https://profiles.wordpress.org/davisshaver/\">Davis Shaver</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dd32/\">dd32</a>,&nbsp;<a href=\"https://profiles.wordpress.org/p00ya/\">Dean</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dkarfa/\">Debabrata Karfa</a>,&nbsp;<a href=\"https://profiles.wordpress.org/thewebprincess/\">Dee Teal</a>,&nbsp;<a href=\"https://profiles.wordpress.org/deepaklalwani/\">Deepak Lalwani</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dekervit/\">dekervit</a>,&nbsp;<a href=\"https://profiles.wordpress.org/demetris/\">demetris (Demetris Kikizas)</a>,&nbsp;<a href=\"https://profiles.wordpress.org/denis-de-bernardy/\">Denis de Bernardy</a>,&nbsp;<a href=\"https://profiles.wordpress.org/valendesigns/\">Derek Herman</a>,&nbsp;<a href=\"https://profiles.wordpress.org/designer023/\">Designer023</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dfenton/\">dfenton</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dharm1025/\">Dharmesh Patel</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dharmin16/\">Dharmin Shah</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dhruvin/\">Dhruvin</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dhulwells/\">Dhul Wells</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dietpawel/\">dietpawel</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dilipbheda/\">Dilip Bheda</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dingo_d/\">dingo-d</a>,&nbsp;<a href=\"https://profiles.wordpress.org/djzone/\">DjZoNe</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dogwithblog/\">dogwithblog</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ocean90/\">Dominik Schilling</a>,&nbsp;<a href=\"https://profiles.wordpress.org/donmhico/\">donmhico</a>,&nbsp;<a href=\"https://profiles.wordpress.org/donsony/\">donsony</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dossy/\">Dossy Shiobara</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dpacks/\">dpacks</a>,&nbsp;<a href=\"https://profiles.wordpress.org/raubvogel/\">Dr. Ronny Harbich</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dratwas/\">dratwas</a>,&nbsp;<a href=\"https://profiles.wordpress.org/drewapicture/\">Drew Jaynes</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dsifford/\">dsifford</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dushakov/\">dushakov</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dushanthi/\">dushanthi</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dyrer/\">dyrer</a>,&nbsp;<a href=\"https://profiles.wordpress.org/elrae/\">Earle Davies</a>,&nbsp;<a href=\"https://profiles.wordpress.org/metalandcoffee/\">Ebonie Butler</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ediamin/\">Edi Amin</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ellatrix/\">Ella van Durpe</a>,&nbsp;<a href=\"https://profiles.wordpress.org/elmastudio/\">Ellen Bauer</a>,&nbsp;<a href=\"https://profiles.wordpress.org/enej/\">Enej Bajgoric</a>,&nbsp;<a href=\"https://profiles.wordpress.org/nrqsnchz/\">Enrique Sánchez</a>,&nbsp;<a href=\"https://profiles.wordpress.org/epiqueras/\">epiqueras</a>,&nbsp;<a href=\"https://profiles.wordpress.org/kebbet/\">Erik Betshammar</a>,&nbsp;<a href=\"https://profiles.wordpress.org/erikjandelange/\">erikjandelange</a>,&nbsp;<a href=\"https://profiles.wordpress.org/folletto/\">Erin &#8216;Folletto&#8217; Casali</a>,&nbsp;<a href=\"https://profiles.wordpress.org/eroraghav/\">eroraghav</a>,&nbsp;<a href=\"https://profiles.wordpress.org/estelaris/\">Estela Rueda</a>,&nbsp;<a href=\"https://profiles.wordpress.org/etoledom/\">etoledom</a>,&nbsp;<a href=\"https://profiles.wordpress.org/thegp/\">EugeneBos</a>,&nbsp;<a href=\"https://profiles.wordpress.org/circlecube/\">Evan Mullins</a>,&nbsp;<a href=\"https://profiles.wordpress.org/fabifott/\">Fabian</a>,&nbsp;<a href=\"https://profiles.wordpress.org/fabiankaegy/\">Fabian Kägy</a>,&nbsp;<a href=\"https://profiles.wordpress.org/gaambo/\">Fabian Todt</a>,&nbsp;<a href=\"https://profiles.wordpress.org/felipeelia/\">Felipe Elia</a>,&nbsp;<a href=\"https://profiles.wordpress.org/flixos90/\">Felix Arntz</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ferkho/\">Ferenc Forgacs</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mista-flo/\">Florian TIAR</a>,&nbsp;<a href=\"https://profiles.wordpress.org/flymike/\">flymike</a>,&nbsp;<a href=\"https://profiles.wordpress.org/francina/\">Francesca Marano</a>,&nbsp;<a href=\"https://profiles.wordpress.org/frank-klein/\">Frank Klein</a>,&nbsp;<a href=\"https://profiles.wordpress.org/fjarrett/\">Frankie Jarrett</a>,&nbsp;<a href=\"https://profiles.wordpress.org/fullofcaffeine/\">fullofcaffeine</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ecgan/\">Gan Eng Chin</a>,&nbsp;<a href=\"https://profiles.wordpress.org/garrett-eclipse/\">Garrett Hyder</a>,&nbsp;<a href=\"https://profiles.wordpress.org/garyc40/\">Gary Cao</a>,&nbsp;<a href=\"https://profiles.wordpress.org/garyj/\">Gary Jones</a>,&nbsp;<a href=\"https://profiles.wordpress.org/pento/\">Gary Pendergast</a>,&nbsp;<a href=\"https://profiles.wordpress.org/gchtr/\">gchtr</a>,&nbsp;<a href=\"https://profiles.wordpress.org/soulseekah/\">Gennady Kovshenin</a>,&nbsp;<a href=\"https://profiles.wordpress.org/subscriptiongroup/\">George</a>,&nbsp;<a href=\"https://profiles.wordpress.org/georgestephanis/\">George Stephanis</a>,&nbsp;<a href=\"https://profiles.wordpress.org/geriux/\">geriux</a>,&nbsp;<a href=\"https://profiles.wordpress.org/glauberglauber/\">Glauber Mota</a>,&nbsp;<a href=\"https://profiles.wordpress.org/glendaviesnz/\">glendaviesnz</a>,&nbsp;<a href=\"https://profiles.wordpress.org/goldenapples/\">goldenapples</a>,&nbsp;<a href=\"https://profiles.wordpress.org/gziolo/\">Greg Ziółkowski</a>,&nbsp;<a href=\"https://profiles.wordpress.org/guidooffermans/\">guidooffermans</a>,&nbsp;<a href=\"https://profiles.wordpress.org/gumacahin/\">gumacahin</a>,&nbsp;<a href=\"https://profiles.wordpress.org/hvar/\">H-var</a>,&nbsp;<a href=\"https://profiles.wordpress.org/hakre/\">hakre</a>,&nbsp;<a href=\"https://profiles.wordpress.org/happiryu/\">happiryu</a>,&nbsp;<a href=\"https://profiles.wordpress.org/hareesh-pillai/\">Hareesh</a>,&nbsp;<a href=\"https://profiles.wordpress.org/isharis/\">Haris Zulfiqar</a>,&nbsp;<a href=\"https://profiles.wordpress.org/harrym/\">harrym</a>,&nbsp;<a href=\"https://profiles.wordpress.org/harshbarach/\">harshbarach</a>,&nbsp;<a href=\"https://profiles.wordpress.org/azhiyadev/\">Hauwa Abashiya</a>,&nbsp;<a href=\"https://profiles.wordpress.org/hazdiego/\">Haz</a>,&nbsp;<a href=\"https://profiles.wordpress.org/helen/\">Helen Hou-Sandí</a>,&nbsp;<a href=\"https://profiles.wordpress.org/henrywright/\">Henry Wright</a>,&nbsp;<a href=\"https://profiles.wordpress.org/herregroen/\">Herre Groen</a>,&nbsp;<a href=\"https://profiles.wordpress.org/hoasi/\">HoaSi</a>,&nbsp;<a href=\"https://profiles.wordpress.org/howdy_mcgee/\">Howdy_McGee</a>,&nbsp;<a href=\"https://profiles.wordpress.org/hlashbrooke/\">Hugh Lashbrooke</a>,&nbsp;<a href=\"https://profiles.wordpress.org/iandunn/\">Ian Dunn</a>,&nbsp;<a href=\"https://profiles.wordpress.org/igorradovanov/\">Igor Radovanov</a>,&nbsp;<a href=\"https://profiles.wordpress.org/gsayed786/\">Imran Sayed</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ingereck/\">ingereck</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ipstenu/\">Ipstenu (Mika Epstein)</a>,&nbsp;<a href=\"https://profiles.wordpress.org/iqbalbary/\">iqbalbary</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ireneyoast/\">Irene Strikkers</a>,&nbsp;<a href=\"https://profiles.wordpress.org/isabel_brison/\">Isabel Brison</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jagirbaheshwp/\">jagirbaheshwp</a>,&nbsp;<a href=\"https://profiles.wordpress.org/whyisjake/\">Jake Spurlock</a>,&nbsp;<a href=\"https://profiles.wordpress.org/twentyzerotwo/\">Jake Whiteley</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jamescollins/\">James Collins</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jameskoster/\">James Koster</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jnylen0/\">James Nylen</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jamesros161/\">James Rosado</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jameslnewell/\">jameslnewell</a>,&nbsp;<a href=\"https://profiles.wordpress.org/janthiel/\">Jan Thiel</a>,&nbsp;<a href=\"https://profiles.wordpress.org/javidalkaruzi/\">Janvo Aldred</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jaredcobb/\">Jared Cobb</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jaswrks/\">Jason Caldwell</a>,&nbsp;<a href=\"https://profiles.wordpress.org/madtownlems/\">Jason LeMahieu (MadtownLems)</a>,&nbsp;<a href=\"https://profiles.wordpress.org/javorszky/\">javorszky</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jaydeep-rami/\">Jaydip Rami</a>,&nbsp;<a href=\"https://profiles.wordpress.org/audrasjb/\">Jean-Baptiste Audras</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jeffmatson/\">Jeff Matson</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jffng/\">Jeff Ong</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jeffpaul/\">Jeff Paul</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jeffikus/\">jeffikus</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jellypixel/\">jellypixel</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jeremyfelt/\">Jeremy Felt</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jeremyescott/\">Jeremy Scott</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jeremyyip/\">Jeremy Yip</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jeroenrotty/\">Jeroen Rotty</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jeryj/\">jeryj</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jeslen/\">Jeslen Bucci</a>,&nbsp;<a href=\"https://profiles.wordpress.org/luminuu/\">Jessica Lyschik</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jfoulquier/\">jfoulquier</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jimyaghi/\">jimyaghi</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jipmoors/\">Jip Moors</a>,&nbsp;<a href=\"https://profiles.wordpress.org/joedolson/\">Joe Dolson</a>,&nbsp;<a href=\"https://profiles.wordpress.org/joemcgill/\">Joe McGill</a>,&nbsp;<a href=\"https://profiles.wordpress.org/joelclimbsthings/\">joelclimbsthings</a>,&nbsp;<a href=\"https://profiles.wordpress.org/joelyoder/\">joelyoder</a>,&nbsp;<a href=\"https://profiles.wordpress.org/joen/\">Joen Asmussen</a>,&nbsp;<a href=\"https://profiles.wordpress.org/johannadevos/\">Johanna de Vos</a>,&nbsp;<a href=\"https://profiles.wordpress.org/johnbillion/\">John Blackbourn</a>,&nbsp;<a href=\"https://profiles.wordpress.org/johnny5/\">John Godley</a>,&nbsp;<a href=\"https://profiles.wordpress.org/johnjamesjacoby/\">John James Jacoby</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jb510/\">Jon Brown</a>,&nbsp;<a href=\"https://profiles.wordpress.org/psykro/\">Jonathan Bossenger</a>,&nbsp;<a href=\"https://profiles.wordpress.org/desrosj/\">Jonathan Desrosiers</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jonathanstegall/\">Jonathan Stegall</a>,&nbsp;<a href=\"https://profiles.wordpress.org/spacedmonkey/\">Jonny Harris</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jonoaldersonwp/\">Jono Alderson</a>,&nbsp;<a href=\"https://profiles.wordpress.org/joostdevalk/\">Joost de Valk</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jordesign/\">jordesign</a>,&nbsp;<a href=\"https://profiles.wordpress.org/koke/\">Jorge Bernal</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jorgefilipecosta/\">Jorge Costa</a>,&nbsp;<a href=\"https://profiles.wordpress.org/joseaneto/\">joseaneto</a>,&nbsp;<a href=\"https://profiles.wordpress.org/chanthaboune/\">Josepha Haden</a>,&nbsp;<a href=\"https://profiles.wordpress.org/joshlevinson/\">Josh Levinson</a>,&nbsp;<a href=\"https://profiles.wordpress.org/shelob9/\">Josh Pollock</a>,&nbsp;<a href=\"https://profiles.wordpress.org/joshuatf/\">joshuatf</a>,&nbsp;<a href=\"https://profiles.wordpress.org/tai/\">JOTAKI, Taisuke</a>,&nbsp;<a href=\"https://profiles.wordpress.org/joyously/\">Joy</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jsnajdr/\">jsnajdr</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jrf/\">Juliette Reinders Folmer</a>,&nbsp;<a href=\"https://profiles.wordpress.org/junaidbhura/\">Junaid Bhura</a>,&nbsp;<a href=\"https://profiles.wordpress.org/justinahinon/\">Justin Ahinon</a>,&nbsp;<a href=\"https://profiles.wordpress.org/justlevine/\">justlevine</a>,&nbsp;<a href=\"https://profiles.wordpress.org/kadamwhite/\">K. Adam White</a>,&nbsp;<a href=\"https://profiles.wordpress.org/kevin940726/\">Kai Hao</a>,&nbsp;<a href=\"https://profiles.wordpress.org/trepmal/\">Kailey (trepmal)</a>,&nbsp;<a href=\"https://profiles.wordpress.org/akabarikalpesh/\">Kalpesh Akabari</a>,&nbsp;<a href=\"https://profiles.wordpress.org/karthikbhatb/\">karthikbhatb</a>,&nbsp;<a href=\"https://profiles.wordpress.org/kasparsd/\">Kaspars</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ryelle/\">Kelly Dwan</a>,&nbsp;<a href=\"https://profiles.wordpress.org/kellychoffman/\">Kelly Hoffman</a>,&nbsp;<a href=\"https://profiles.wordpress.org/kelsu02/\">Kelly R</a>,&nbsp;<a href=\"https://profiles.wordpress.org/kellybleck/\">kellybleck</a>,&nbsp;<a href=\"https://profiles.wordpress.org/kellylawrence/\">kellylawrence</a>,&nbsp;<a href=\"https://profiles.wordpress.org/khag7/\">Kevin Hagerty</a>,&nbsp;<a href=\"https://profiles.wordpress.org/kharisblank/\">Kharis Sulistiyono</a>,&nbsp;<a href=\"https://profiles.wordpress.org/kipperlenny/\">Kipperlenny</a>,&nbsp;<a href=\"https://profiles.wordpress.org/kirilzh/\">Kiril Zhelyazkov</a>,&nbsp;<a href=\"https://profiles.wordpress.org/kburgoine/\">Kirsty Burgoine</a>,&nbsp;<a href=\"https://profiles.wordpress.org/kishanjasani/\">Kishan Jasani</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ixkaito/\">Kite</a>,&nbsp;<a href=\"https://profiles.wordpress.org/kittmedia/\">KittMedia</a>,&nbsp;<a href=\"https://profiles.wordpress.org/kjbenk/\">kjbenk</a>,&nbsp;<a href=\"https://profiles.wordpress.org/kjellr/\">Kjell Reigstad</a>,&nbsp;<a href=\"https://profiles.wordpress.org/knutsp/\">Knut Sparhell</a>,&nbsp;<a href=\"https://profiles.wordpress.org/komagain/\">komagain</a>,&nbsp;<a href=\"https://profiles.wordpress.org/obenland/\">Konstantin Obenland</a>,&nbsp;<a href=\"https://profiles.wordpress.org/krupajnanda/\">Krupa</a>,&nbsp;<a href=\"https://profiles.wordpress.org/kbjohnson90/\">Kyle B. Johnson</a>,&nbsp;<a href=\"https://profiles.wordpress.org/landau/\">landau</a>,&nbsp;<a href=\"https://profiles.wordpress.org/lmurillom/\">Larissa Murillo</a>,&nbsp;<a href=\"https://profiles.wordpress.org/latifi/\">latifi</a>,&nbsp;<a href=\"https://profiles.wordpress.org/laurora/\">Laura Nelson</a>,&nbsp;<a href=\"https://profiles.wordpress.org/laxman-prajapati/\">Laxman Prajapati</a>,&nbsp;<a href=\"https://profiles.wordpress.org/lcyh78/\">lcyh78</a>,&nbsp;<a href=\"https://profiles.wordpress.org/leogermani/\">leogermani</a>,&nbsp;<a href=\"https://profiles.wordpress.org/gamerz/\">Lester Chan</a>,&nbsp;<a href=\"https://profiles.wordpress.org/leutrimh/\">Leutrim Husaj</a>,&nbsp;<a href=\"https://profiles.wordpress.org/limera1n/\">lim3ra</a>,&nbsp;<a href=\"https://profiles.wordpress.org/lpointet/\">Lionel Pointet</a>,&nbsp;<a href=\"https://profiles.wordpress.org/llizard/\">llizard</a>,&nbsp;<a href=\"https://profiles.wordpress.org/louislaugesen/\">Louis</a>,&nbsp;<a href=\"https://profiles.wordpress.org/lucagrandicelli/\">Luca Grandicelli</a>,&nbsp;<a href=\"https://profiles.wordpress.org/_luigi/\">Luigi Cavalieri</a>,&nbsp;<a href=\"https://profiles.wordpress.org/lukecavanagh/\">Luke Cavanagh</a>,&nbsp;<a href=\"https://profiles.wordpress.org/lumne/\">Lumne</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mager19/\">mager19</a>,&nbsp;<a href=\"https://profiles.wordpress.org/onemaggie/\">Maggie Cabrera</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mahesh901122/\">Mahesh Waghmare</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mailnew2ster/\">mailnew2ster</a>,&nbsp;<a href=\"https://profiles.wordpress.org/shamimmoeen/\">Mainul Hassan Main</a>,&nbsp;<a href=\"https://profiles.wordpress.org/malinajirka/\">malinajirka</a>,&nbsp;<a href=\"https://profiles.wordpress.org/manzwebdesigns/\">manzwebdesigns</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mkaz/\">Marcus Kazmierczak</a>,&nbsp;<a href=\"https://profiles.wordpress.org/marekhrabe/\">Marek Hrabe</a>,&nbsp;<a href=\"https://profiles.wordpress.org/chaton666/\">Marie Comet</a>,&nbsp;<a href=\"https://profiles.wordpress.org/marijnkoopman/\">Marijn</a>,&nbsp;<a href=\"https://profiles.wordpress.org/clorith/\">Marius Jensen</a>,&nbsp;<a href=\"https://profiles.wordpress.org/markjaquith/\">Mark Jaquith</a>,&nbsp;<a href=\"https://profiles.wordpress.org/markparnell/\">Mark Parnell</a>,&nbsp;<a href=\"https://profiles.wordpress.org/markscottrobson/\">Mark Robson</a>,&nbsp;<a href=\"https://profiles.wordpress.org/marks99/\">Mark Smallman</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mapk/\">Mark Uraine</a>,&nbsp;<a href=\"https://profiles.wordpress.org/markoheijnen/\">Marko Heijnen</a>,&nbsp;<a href=\"https://profiles.wordpress.org/markshep/\">markshep</a>,&nbsp;<a href=\"https://profiles.wordpress.org/m-e-h/\">Marty Helmick</a>,&nbsp;<a href=\"https://profiles.wordpress.org/marybaum/\">Mary Baum</a>,&nbsp;<a href=\"https://profiles.wordpress.org/wetah/\">Mateus Machado Luna</a>,&nbsp;<a href=\"https://profiles.wordpress.org/imath/\">Mathieu Viet</a>,&nbsp;<a href=\"https://profiles.wordpress.org/matveb/\">Matias Ventura</a>,&nbsp;<a href=\"https://profiles.wordpress.org/webdevmattcrom/\">Matt Cromwell</a>,&nbsp;<a href=\"https://profiles.wordpress.org/gothickgothickorguk/\">Matt Gibson</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mattkeys/\">Matt Keys</a>,&nbsp;<a href=\"https://profiles.wordpress.org/matt/\">Matt Mullenweg</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mattwiebe/\">Matt Wiebe</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mattchowning/\">mattchowning</a>,&nbsp;<a href=\"https://profiles.wordpress.org/pfefferle/\">Matthias Pfefferle</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mattoperry/\">mattoperry</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mayankmajeji/\">Mayank Majeji</a>,&nbsp;<a href=\"https://profiles.wordpress.org/meaganhanes/\">Meagan Hanes</a>,&nbsp;<a href=\"https://profiles.wordpress.org/megphillips91/\">Meg Phillips</a>,&nbsp;<a href=\"https://profiles.wordpress.org/meher/\">Meher Bala</a>,&nbsp;<a href=\"https://profiles.wordpress.org/melchoyce/\">Mel Choyce-Dwan</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mgol/\">mgol</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mgrenierfarmmedia/\">mgrenierfarmmedia</a>,&nbsp;<a href=\"https://profiles.wordpress.org/michael-arestad/\">Michael Arestad</a>,&nbsp;<a href=\"https://profiles.wordpress.org/tw2113/\">Michael Beckwith</a>,&nbsp;<a href=\"https://profiles.wordpress.org/m_butcher/\">Michele Butcher-Jones</a>,&nbsp;<a href=\"https://profiles.wordpress.org/michelleames/\">Michelle Frechette</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mcsf/\">Miguel Fonseca</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mihdan/\">mihdan</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mikeschroder/\">Mike Schroder</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mikelopez/\">mikelopez</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mikeyarce/\">Mikey Arce</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dimadin/\">Milan Dinić</a>,&nbsp;<a href=\"https://profiles.wordpress.org/milana_cap/\">Milana Cap</a>,&nbsp;<a href=\"https://profiles.wordpress.org/eemitch/\">Mitchell Bennis</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mmarco9/\">mmarco9</a>,&nbsp;<a href=\"https://profiles.wordpress.org/batmoo/\">Mohammad Jangda</a>,&nbsp;<a href=\"https://profiles.wordpress.org/monikarao/\">Monika Rao</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mopsyd/\">mopsyd</a>,&nbsp;<a href=\"https://profiles.wordpress.org/morganestes/\">Morgan Estes</a>,&nbsp;<a href=\"https://profiles.wordpress.org/gwendydd/\">Morgan Kay</a>,&nbsp;<a href=\"https://profiles.wordpress.org/man4toman/\">Morteza Geransayeh</a>,&nbsp;<a href=\"https://profiles.wordpress.org/computerguru/\">mqudsi</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mreishus/\">mreishus</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mrgrt/\">mrgrt</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mrjoeldean/\">mrjoeldean</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mukesh27/\">Mukesh Panchal</a>,&nbsp;<a href=\"https://profiles.wordpress.org/munyagu/\">munyagu</a>,&nbsp;<a href=\"https://profiles.wordpress.org/musicaljoeker/\">musicaljoeker</a>,&nbsp;<a href=\"https://profiles.wordpress.org/mweichert/\">mweichert</a>,&nbsp;<a href=\"https://profiles.wordpress.org/n5hzr/\">n5hzr</a>,&nbsp;<a href=\"https://profiles.wordpress.org/nabilmoqbel/\">Nabil Moqbel</a>,&nbsp;<a href=\"https://profiles.wordpress.org/nalininonstopnewsuk/\">Nalini Thakor</a>,&nbsp;<a href=\"https://profiles.wordpress.org/naoki0h/\">Naoki Ohashi</a>,&nbsp;<a href=\"https://profiles.wordpress.org/nao/\">Naoko Takano</a>,&nbsp;<a href=\"https://profiles.wordpress.org/nateinaction/\">Nate Gay</a>,&nbsp;<a href=\"https://profiles.wordpress.org/nathanatmoz/\">Nathan Johnson</a>,&nbsp;<a href=\"https://profiles.wordpress.org/navanathbhosale/\">Navanath Bhosale</a>,&nbsp;<a href=\"https://profiles.wordpress.org/naveenkharwar/\">Naveen Kharwar</a>,&nbsp;<a href=\"https://profiles.wordpress.org/nendeb55/\">nendeb</a>,&nbsp;<a href=\"https://profiles.wordpress.org/krstarica/\">net</a>,&nbsp;<a href=\"https://profiles.wordpress.org/arealnobrainer/\">Netravnen</a>,&nbsp;<a href=\"https://profiles.wordpress.org/nicomollet/\">nicomollet</a>,&nbsp;<a href=\"https://profiles.wordpress.org/nielslange/\">Niels Lange</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ntsekouras/\">Nik Tsekouras</a>,&nbsp;<a href=\"https://profiles.wordpress.org/nikolam/\">Nikola</a>,&nbsp;<a href=\"https://profiles.wordpress.org/nbachiyski/\">Nikolay Bachiyski</a>,&nbsp;<a href=\"https://profiles.wordpress.org/njbrown/\">njbrown</a>,&nbsp;<a href=\"https://profiles.wordpress.org/nlpro/\">nlpro</a>,&nbsp;<a href=\"https://profiles.wordpress.org/noahtallen/\">Noah Allen</a>,&nbsp;<a href=\"https://profiles.wordpress.org/noahshrader/\">noahshrader</a>,&nbsp;<a href=\"https://profiles.wordpress.org/nourma/\">nourma</a>,&nbsp;<a href=\"https://profiles.wordpress.org/nosolosw/\">O André</a>,&nbsp;<a href=\"https://profiles.wordpress.org/oakesjosh/\">oakesjosh</a>,&nbsp;<a href=\"https://profiles.wordpress.org/oguzkocer/\">oguzkocer</a>,&nbsp;<a href=\"https://profiles.wordpress.org/oglekler/\">Olga Gleckler</a>,&nbsp;<a href=\"https://profiles.wordpress.org/alshakero/\">Omar Alshaker</a>,&nbsp;<a href=\"https://profiles.wordpress.org/omarreiss/\">Omar Reiss</a>,&nbsp;<a href=\"https://profiles.wordpress.org/oolleegg55/\">oolleegg55</a>,&nbsp;<a href=\"https://profiles.wordpress.org/optimizingmatters/\">Optimizing Matters</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ov3rfly/\">Ov3rfly</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ovann86/\">ovann86</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ovenall/\">ovenall</a>,&nbsp;<a href=\"https://profiles.wordpress.org/oxyc/\">oxyc</a>,&nbsp;<a href=\"https://profiles.wordpress.org/paaljoachim/\">Paal Joachim Romdahl</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jhonqwerty/\">pabloselin</a>,&nbsp;<a href=\"https://profiles.wordpress.org/paddy/\">Paddy</a>,&nbsp;<a href=\"https://profiles.wordpress.org/pankajmohale/\">Pankaj Mohale</a>,&nbsp;<a href=\"https://profiles.wordpress.org/swissspidy/\">Pascal Birchler</a>,&nbsp;<a href=\"https://profiles.wordpress.org/casiepa/\">Pascal Casier</a>,&nbsp;<a href=\"https://profiles.wordpress.org/pbearne/\">Paul Bearne</a>,&nbsp;<a href=\"https://profiles.wordpress.org/pbiron/\">Paul Biron</a>,&nbsp;<a href=\"https://profiles.wordpress.org/pabline/\">Paul Bunkham</a>,&nbsp;<a href=\"https://profiles.wordpress.org/paulschreiber/\">Paul Schreiber</a>,&nbsp;<a href=\"https://profiles.wordpress.org/paulstonier/\">Paul Stonier</a>,&nbsp;<a href=\"https://profiles.wordpress.org/pschrottky/\">Paul Von Schrottky</a>,&nbsp;<a href=\"https://profiles.wordpress.org/pedromendonca/\">Pedro Mendonça</a>,&nbsp;<a href=\"https://profiles.wordpress.org/pentatonicfunk/\">pentatonicfunk</a>,&nbsp;<a href=\"https://profiles.wordpress.org/pputzer/\">pepe</a>,&nbsp;<a href=\"https://profiles.wordpress.org/pekz0r/\">Peter Elmered</a>,&nbsp;<a href=\"https://profiles.wordpress.org/psmits1567/\">Peter Smits</a>,&nbsp;<a href=\"https://profiles.wordpress.org/peterwilsoncc/\">Peter Wilson</a>,&nbsp;<a href=\"https://profiles.wordpress.org/johnstonphilip/\">Phil Johnston</a>,&nbsp;<a href=\"https://profiles.wordpress.org/pierlo/\">Pierre Gordon</a>,&nbsp;<a href=\"https://profiles.wordpress.org/decrecementofeliz/\">Pilar Mera</a>,&nbsp;<a href=\"https://profiles.wordpress.org/wppinar/\">Pinar</a>,&nbsp;<a href=\"https://profiles.wordpress.org/boniu91/\">Piotrek Boniu</a>,&nbsp;<a href=\"https://profiles.wordpress.org/pishmishy/\">pishmishy</a>,&nbsp;<a href=\"https://profiles.wordpress.org/pkvillanueva/\">pkvillanueva</a>,&nbsp;<a href=\"https://profiles.wordpress.org/prashanttholia/\">prashanttholia</a>,&nbsp;<a href=\"https://profiles.wordpress.org/pratikkry/\">Pratik K. Yadav</a>,&nbsp;<a href=\"https://profiles.wordpress.org/presskopp/\">Presskopp</a>,&nbsp;<a href=\"https://profiles.wordpress.org/presstoke/\">presstoke</a>,&nbsp;<a href=\"https://profiles.wordpress.org/prionkor/\">prionkor</a>,&nbsp;<a href=\"https://profiles.wordpress.org/psealock/\">psealock</a>,&nbsp;<a href=\"https://profiles.wordpress.org/puneetsahalot/\">Puneet Sahalot</a>,&nbsp;<a href=\"https://profiles.wordpress.org/itsjonq/\">Q</a>,&nbsp;<a href=\"https://profiles.wordpress.org/rachelbaker/\">Rachel Baker</a>,&nbsp;<a href=\"https://profiles.wordpress.org/rajanit2000/\">Rajan Vijayan</a>,&nbsp;<a href=\"https://profiles.wordpress.org/rajeshsingh520/\">rajeshsingh520</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ramiy/\">Rami Yushuvaev</a>,&nbsp;<a href=\"https://profiles.wordpress.org/jontyravi/\">Ravi Vaghela</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ravipatel/\">ravipatel</a>,&nbsp;<a href=\"https://profiles.wordpress.org/rebasaurus/\">rebasaurus</a>,&nbsp;<a href=\"https://profiles.wordpress.org/redstar504/\">redstar504</a>,&nbsp;<a href=\"https://profiles.wordpress.org/regankhadgi/\">Regan Khadgi</a>,&nbsp;<a href=\"https://profiles.wordpress.org/renehermi/\">Rene Hermenau</a>,&nbsp;<a href=\"https://profiles.wordpress.org/retlehs/\">retlehs</a>,&nbsp;<a href=\"https://profiles.wordpress.org/retrofox/\">retrofox</a>,&nbsp;<a href=\"https://profiles.wordpress.org/riaanlom/\">riaanlom</a>,&nbsp;<a href=\"https://profiles.wordpress.org/youknowriad/\">Riad Benguella</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ribaricplusplus/\">ribaricplusplus</a>,&nbsp;<a href=\"https://profiles.wordpress.org/richtabor/\">Rich Tabor</a>,&nbsp;<a href=\"https://profiles.wordpress.org/rnaby/\">Rnaby</a>,&nbsp;<a href=\"https://profiles.wordpress.org/noisysocks/\">Robert Anderson</a>,&nbsp;<a href=\"https://profiles.wordpress.org/miqrogroove/\">Robert Chapin</a>,&nbsp;<a href=\"https://profiles.wordpress.org/kreppar/\">Rodrigo Arias</a>,&nbsp;<a href=\"https://profiles.wordpress.org/rogerlos/\">rogerlos</a>,&nbsp;<a href=\"https://profiles.wordpress.org/roikles/\">roikles</a>,&nbsp;<a href=\"https://profiles.wordpress.org/rolfsiebers/\">Rolf Siebers</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ronakganatra/\">Ronak Ganatra</a>,&nbsp;<a href=\"https://profiles.wordpress.org/roo2/\">roo2</a>,&nbsp;<a href=\"https://profiles.wordpress.org/rtagliento/\">rtagliento</a>,&nbsp;<a href=\"https://profiles.wordpress.org/bookdude13/\">Ryan Fredlund</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ryankienstra/\">Ryan Kienstra</a>,&nbsp;<a href=\"https://profiles.wordpress.org/rmccue/\">Ryan McCue</a>,&nbsp;<a href=\"https://profiles.wordpress.org/welcher/\">Ryan Welcher</a>,&nbsp;<a href=\"https://profiles.wordpress.org/soean/\">Sören Wrede</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sabrinazeidan/\">Sabrina Zeidan</a>,&nbsp;<a href=\"https://profiles.wordpress.org/saeedfard/\">Saeed Fard</a>,&nbsp;<a href=\"https://profiles.wordpress.org/salvoaranzulla/\">salvoaranzulla</a>,&nbsp;<a href=\"https://profiles.wordpress.org/samful/\">Sam Fullalove</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sswebster/\">Sam Webster</a>,&nbsp;<a href=\"https://profiles.wordpress.org/otto42/\">Samuel Wood (Otto)</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sanzeeb3/\">Sanjeev Aryal</a>,&nbsp;<a href=\"https://profiles.wordpress.org/saqibameen/\">Saqib Ameen</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sarahricker/\">Sarah Ricker</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sarayourfriend/\">sarayourfriend</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sawanoboly/\">sawanoboly</a>,&nbsp;<a href=\"https://profiles.wordpress.org/scarolan/\">scarolan</a>,&nbsp;<a href=\"https://profiles.wordpress.org/l3rady/\">Scott Cariss</a>,&nbsp;<a href=\"https://profiles.wordpress.org/coffee2code/\">Scott Reilly</a>,&nbsp;<a href=\"https://profiles.wordpress.org/scribu/\">scribu</a>,&nbsp;<a href=\"https://profiles.wordpress.org/scruffian/\">scruffian</a>,&nbsp;<a href=\"https://profiles.wordpress.org/seanpaulrasmussen/\">seanpaulrasmussen</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sebastianpisula/\">Sebastian Pisula</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sebsz/\">SeBsZ</a>,&nbsp;<a href=\"https://profiles.wordpress.org/senning/\">Senning</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sergeybiryukov/\">Sergey Biryukov</a>,&nbsp;<a href=\"https://profiles.wordpress.org/yakimun/\">Sergey Yakimov</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sergioestevao/\">SergioEstevao</a>,&nbsp;<a href=\"https://profiles.wordpress.org/shaunandrews/\">shaunandrews</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sncoker/\">Shawntelle Coker</a>,&nbsp;<a href=\"https://profiles.wordpress.org/shital-patel/\">Shital Marakana</a>,&nbsp;<a href=\"https://profiles.wordpress.org/shramee/\">shramee</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sresok/\">Simon Resok</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sirreal/\">sirreal</a>,&nbsp;<a href=\"https://profiles.wordpress.org/smerriman/\">smerriman</a>,&nbsp;<a href=\"https://profiles.wordpress.org/snapfractalpop/\">snapfractalpop</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sproutchris/\">sproutchris</a>,&nbsp;<a href=\"https://profiles.wordpress.org/stulab/\">Stéphane Treilhou</a>,&nbsp;<a href=\"https://profiles.wordpress.org/metodiew/\">Stanko Metodiev</a>,&nbsp;<a href=\"https://profiles.wordpress.org/garubi/\">Stefano Garuti</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sabernhardt/\">Stephen Bernhardt</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dufresnesteven/\">Steve Dufresne</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sterndata/\">Steven Stern (sterndata)</a>,&nbsp;<a href=\"https://profiles.wordpress.org/stevenlinx/\">stevenlinx</a>,&nbsp;<a href=\"https://profiles.wordpress.org/stoyangeorgiev/\">Stoyan Georgiev</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sudoshreyansh/\">sudoshreyansh</a>,&nbsp;<a href=\"https://profiles.wordpress.org/smub/\">Syed Balkhi</a>,&nbsp;<a href=\"https://profiles.wordpress.org/szaqal21/\">szaqal21</a>,&nbsp;<a href=\"https://profiles.wordpress.org/karmatosed/\">Tammie Lister</a>,&nbsp;<a href=\"https://profiles.wordpress.org/utz119/\">TeBenachi</a>,&nbsp;<a href=\"https://profiles.wordpress.org/techboyg5/\">techboyg5</a>,&nbsp;<a href=\"https://profiles.wordpress.org/tellyworth/\">Tellyworth</a>,&nbsp;<a href=\"https://profiles.wordpress.org/thefarlilacfield/\">thefarlilacfield</a>,&nbsp;<a href=\"https://profiles.wordpress.org/thelmachido/\">Thelma Mutete</a>,&nbsp;<a href=\"https://profiles.wordpress.org/thib3113/\">thib3113</a>,&nbsp;<a href=\"https://profiles.wordpress.org/thijsvanloef/\">thijsvanloef</a>,&nbsp;<a href=\"https://profiles.wordpress.org/webzunft/\">Thomas M</a>,&nbsp;<a href=\"https://profiles.wordpress.org/thomasplevy/\">Thomas Patrick Levy</a>,&nbsp;<a href=\"https://profiles.wordpress.org/thomaslhotta/\">thomaslhotta</a>,&nbsp;<a href=\"https://profiles.wordpress.org/timhavinga/\">Tim Havinga</a>,&nbsp;<a href=\"https://profiles.wordpress.org/hedgefield/\">Tim Hengeveld</a>,&nbsp;<a href=\"https://profiles.wordpress.org/sippis/\">Timi Wahalahti</a>,&nbsp;<a href=\"https://profiles.wordpress.org/timothyblynjacobs/\">Timothy Jacobs</a>,&nbsp;<a href=\"https://profiles.wordpress.org/timotijhof/\">TimoTijhof</a>,&nbsp;<a href=\"https://profiles.wordpress.org/tkama/\">Tkama</a>,&nbsp;<a href=\"https://profiles.wordpress.org/tmdesigned/\">tmdesigned</a>,&nbsp;<a href=\"https://profiles.wordpress.org/tobiasbg/\">TobiasBg</a>,&nbsp;<a href=\"https://profiles.wordpress.org/tobifjellner/\">tobifjellner (Tor-Bjorn Fjellner)</a>,&nbsp;<a href=\"https://profiles.wordpress.org/hellofromtonya/\">Tonya Mork</a>,&nbsp;<a href=\"https://profiles.wordpress.org/toro_unit/\">Toro_Unit (Hiroshi Urabe)</a>,&nbsp;<a href=\"https://profiles.wordpress.org/torres126/\">torres126</a>,&nbsp;<a href=\"https://profiles.wordpress.org/zodiac1978/\">Torsten Landsiedel</a>,&nbsp;<a href=\"https://profiles.wordpress.org/itowhid06/\">Towhidul I Chowdhury</a>,&nbsp;<a href=\"https://profiles.wordpress.org/treibstoff/\">treibstoff</a>,&nbsp;<a href=\"https://profiles.wordpress.org/trisha_cornelius/\">Trisha Cornelius</a>,&nbsp;<a href=\"https://profiles.wordpress.org/dinhtungdu/\">Tung Du</a>,&nbsp;<a href=\"https://profiles.wordpress.org/tzafrir/\">tzafrir</a>,&nbsp;<a href=\"https://profiles.wordpress.org/desaiuditd/\">Udit Desai</a>,&nbsp;<a href=\"https://profiles.wordpress.org/grapplerulrich/\">Ulrich</a>,&nbsp;<a href=\"https://profiles.wordpress.org/uxkai/\">uxkai</a>,&nbsp;<a href=\"https://profiles.wordpress.org/valentinbora/\">Valentin Bora</a>,&nbsp;<a href=\"https://profiles.wordpress.org/contact-banker/\">Varun Sharma</a>,&nbsp;<a href=\"https://profiles.wordpress.org/vcanales/\">vcanales</a>,&nbsp;<a href=\"https://profiles.wordpress.org/ravivaddweb/\">vidhiaddweb</a>,&nbsp;<a href=\"https://profiles.wordpress.org/vinayakanivase/\">Vinayak Anivase</a>,&nbsp;<a href=\"https://profiles.wordpress.org/vinita29/\">Vinita Tandulkar</a>,&nbsp;<a href=\"https://profiles.wordpress.org/usestrict/\">Vinny</a>,&nbsp;<a href=\"https://profiles.wordpress.org/virgodesign/\">virgodesign</a>,&nbsp;<a href=\"https://profiles.wordpress.org/webmandesign/\">WebMan Design | Oliver Juhas</a>,&nbsp;<a href=\"https://profiles.wordpress.org/webmigrates/\">Webmigrates Technologies</a>,&nbsp;<a href=\"https://profiles.wordpress.org/westonruter/\">Weston Ruter</a>,&nbsp;<a href=\"https://profiles.wordpress.org/earnjam/\">William Earnhardt</a>,&nbsp;<a href=\"https://profiles.wordpress.org/williampatton/\">williampatton</a>,&nbsp;<a href=\"https://profiles.wordpress.org/planningwrite/\">Winstina Hughes</a>,&nbsp;<a href=\"https://profiles.wordpress.org/wittich/\">wittich</a>,&nbsp;<a href=\"https://profiles.wordpress.org/worldweb/\">worldweb</a>,&nbsp;<a href=\"https://profiles.wordpress.org/y_kolev/\">Y_Kolev</a>,&nbsp;<a href=\"https://profiles.wordpress.org/yansern/\">Yan Sern</a>,&nbsp;<a href=\"https://profiles.wordpress.org/yoavf/\">Yoav Farhi</a>,&nbsp;<a href=\"https://profiles.wordpress.org/yscik/\">yscik</a>,&nbsp;<a href=\"https://profiles.wordpress.org/fierevere/\">Yui</a>,&nbsp;<a href=\"https://profiles.wordpress.org/yvettesonneveld/\">Yvette Sonneveld</a>, and&nbsp;<a href=\"https://profiles.wordpress.org/zebulan/\">Zebulan Stanphill</a>.</p>\n\n\n\n<p>In addition, many thanks to all of the community volunteers who contribute in the&nbsp;<a href=\"https://wordpress.org/support/\">support forums</a>. They answer questions from people across the world, whether they are using WordPress for the first time, or they’ve been around since the first release all the way back in 2003. These releases are as successful as they are because of their efforts!</p>\n\n\n\n<p>Finally, thanks to all the community translators who helped make WordPress 5.6. available in 38 languages at the time of release. Our community translators are hard at work ensuring more languages are on their way (70 are already at 90%). If contributing to WordPress appeals to you, it’s easy to learn more. Check out&nbsp;<a href=\"https://make.wordpress.org/\">Make WordPress</a>&nbsp;or the&nbsp;<a href=\"https://make.wordpress.org/core/\">core development blog</a>.</p>\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:36:\"http://wellformedweb.org/CommentAPI/\";a:1:{s:10:\"commentRss\";a:1:{i:0;a:5:{s:4:\"data\";s:65:\"https://en-gb.wordpress.org/2020/12/09/wordpress-5-6-simone/feed/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:38:\"http://purl.org/rss/1.0/modules/slash/\";a:1:{s:8:\"comments\";a:1:{i:0;a:5:{s:4:\"data\";s:1:\"0\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:8;a:6:{s:4:\"data\";s:88:\"\n		\n		\n					\n		\n		\n		\n				\n		\n		\n		\n		\n		\n		\n\n					\n										\n					\n					\n			\n		\n		\n			\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:5:{s:0:\"\";a:7:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"Manchester WordPress User Group November 2020 – Online\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:92:\"https://en-gb.wordpress.org/2020/11/18/manchester-wordpress-user-group-november-2020-online/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"comments\";a:1:{i:0;a:5:{s:4:\"data\";s:100:\"https://en-gb.wordpress.org/2020/11/18/manchester-wordpress-user-group-november-2020-online/#respond\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 18 Nov 2020 14:26:46 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:6:{i:0;a:5:{s:4:\"data\";s:7:\"England\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:1;a:5:{s:4:\"data\";s:6:\"Meetup\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:2;a:5:{s:4:\"data\";s:10:\"North West\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:3;a:5:{s:4:\"data\";s:10:\"Manchester\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:4;a:5:{s:4:\"data\";s:31:\"Manchester WordPress User Group\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}i:5;a:5:{s:4:\"data\";s:6:\"Online\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://en-gb.wordpress.org/?p=1300\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:147:\"November’s Manchester WordPress User Group, run by WordPress co-founder Mike Little, takes place online on Wednesday, the 18th from 6pm to 8pm.\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:11:\"Mike Little\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:943:\"\n<p>November’s Manchester WordPress User Group, run by WordPress co-founder Mike Little, takes place online on <strong>Wednesday, the 18th</strong> from 6pm to 8pm.</p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-mwug-uk wp-block-embed-mwug-uk\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"rzJLN2q2r5\"><a href=\"https://mwug.uk/2020/11/november-2020-meeting-wednesday-18th-6-8pm-online/\">November 2020 Meeting: Wednesday 18th, 6-8pm, Online</a></blockquote><iframe class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" title=\"&#8220;November 2020 Meeting: Wednesday 18th, 6-8pm, Online&#8221; &#8212; MWUG.UK\" src=\"https://mwug.uk/2020/11/november-2020-meeting-wednesday-18th-6-8pm-online/embed/#?secret=rzJLN2q2r5\" data-secret=\"rzJLN2q2r5\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"></iframe>\n</div></figure>\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:36:\"http://wellformedweb.org/CommentAPI/\";a:1:{s:10:\"commentRss\";a:1:{i:0;a:5:{s:4:\"data\";s:97:\"https://en-gb.wordpress.org/2020/11/18/manchester-wordpress-user-group-november-2020-online/feed/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:38:\"http://purl.org/rss/1.0/modules/slash/\";a:1:{s:8:\"comments\";a:1:{i:0;a:5:{s:4:\"data\";s:1:\"0\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:9;a:6:{s:4:\"data\";s:73:\"\n		\n		\n					\n		\n		\n		\n				\n		\n\n					\n										\n					\n					\n			\n		\n		\n			\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:5:{s:0:\"\";a:7:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"Help Improve WordPress Translation\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:74:\"https://en-gb.wordpress.org/2020/11/09/help-improve-wordpress-translation/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"comments\";a:1:{i:0;a:5:{s:4:\"data\";s:82:\"https://en-gb.wordpress.org/2020/11/09/help-improve-wordpress-translation/#respond\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 09 Nov 2020 10:52:24 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"category\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"News\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://en-gb.wordpress.org/?p=1290\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:11:\"isPermaLink\";s:5:\"false\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:386:\"The global Polyglots team is conducting research among translation contributors to learn more about their experience. The questionnaire includes about 15 questions for individual translators or locale managers and editors. Our goal is to learn more about how contributors join Polyglots, why they contribute, and how to make their contributor experience better. The results of [&#8230;]\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:11:\"Mark Robson\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:40:\"http://purl.org/rss/1.0/modules/content/\";a:1:{s:7:\"encoded\";a:1:{i:0;a:5:{s:4:\"data\";s:1215:\"\n<figure class=\"wp-block-image\"><img src=\"https://lh3.googleusercontent.com/YkeeKj7HAtuHuJs4jlLLzBgR8UXVdFsW7O-PUddOGrY1W8yXlZgsykykVYxGxmSDILkwvTQe0s_vqzHCrux--TEeDYsCnqXmHBi6oySNpN4QQHK3BSj087y9NS7aURHw6w\" alt=\"\" /></figure>\n\n\n\n<p>The global Polyglots team is conducting research among translation contributors to learn more about their experience.</p>\n\n\n\n<p>The questionnaire includes about 15 questions for individual translators or locale managers and editors. Our goal is to learn more about how contributors join Polyglots, why they contribute, and how to make their contributor experience better.</p>\n\n\n\n<p>The results of this research will be used to inform future discussions about team priorities, including documentation, tools, and other ideas, especially as we plan for 2021. Hearing from both experienced contributors, and newcomers, will be extremely helpful – the more voices, the better!</p>\n\n\n\n<p>The form is open from 9 November 2020 to 8 December 2020.</p>\n\n\n\n<p><a href=\"https://wordpressdotorg.survey.fm/polyglots-translator-research\">Click here to share your translation experience</a>.</p>\n\n\n\n<p>Thank you so much for your contribution, and for being part of the Polyglots community.</p>\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:36:\"http://wellformedweb.org/CommentAPI/\";a:1:{s:10:\"commentRss\";a:1:{i:0;a:5:{s:4:\"data\";s:79:\"https://en-gb.wordpress.org/2020/11/09/help-improve-wordpress-translation/feed/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:38:\"http://purl.org/rss/1.0/modules/slash/\";a:1:{s:8:\"comments\";a:1:{i:0;a:5:{s:4:\"data\";s:1:\"0\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}}}s:27:\"http://www.w3.org/2005/Atom\";a:1:{s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:0:\"\";s:7:\"attribs\";a:1:{s:0:\"\";a:3:{s:4:\"href\";s:38:\"https://en-gb.wordpress.org/news/feed/\";s:3:\"rel\";s:4:\"self\";s:4:\"type\";s:19:\"application/rss+xml\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:44:\"http://purl.org/rss/1.0/modules/syndication/\";a:2:{s:12:\"updatePeriod\";a:1:{i:0;a:5:{s:4:\"data\";s:9:\"\n	hourly	\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:15:\"updateFrequency\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"\n	1	\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}}}}}}}}s:4:\"type\";i:128;s:7:\"headers\";O:42:\"Requests_Utility_CaseInsensitiveDictionary\":1:{s:7:\"\0*\0data\";a:8:{s:6:\"server\";s:5:\"nginx\";s:4:\"date\";s:29:\"Tue, 08 Jun 2021 02:35:42 GMT\";s:12:\"content-type\";s:34:\"application/rss+xml; charset=UTF-8\";s:6:\"x-olaf\";s:3:\"⛄\";s:13:\"last-modified\";s:29:\"Wed, 02 Sep 2020 10:33:19 GMT\";s:4:\"link\";s:64:\"<https://en-gb.wordpress.org/wp-json/>; rel=\"https://api.w.org/\"\";s:15:\"x-frame-options\";s:10:\"SAMEORIGIN\";s:4:\"x-nc\";s:9:\"HIT ord 2\";}}s:5:\"build\";s:14:\"20201016172007\";}','no'),(137,'_transient_timeout_feed_mod_94d0b45cbbe5640144493b43a9e8f566','1623162942','no'),(138,'_transient_feed_mod_94d0b45cbbe5640144493b43a9e8f566','1623119742','no'),(139,'_site_transient_update_core','O:8:\"stdClass\":4:{s:7:\"updates\";a:1:{i:0;O:8:\"stdClass\":10:{s:8:\"response\";s:6:\"latest\";s:8:\"download\";s:65:\"https://downloads.wordpress.org/release/en_GB/wordpress-5.7.2.zip\";s:6:\"locale\";s:5:\"en_GB\";s:8:\"packages\";O:8:\"stdClass\":5:{s:4:\"full\";s:65:\"https://downloads.wordpress.org/release/en_GB/wordpress-5.7.2.zip\";s:10:\"no_content\";s:0:\"\";s:11:\"new_bundled\";s:0:\"\";s:7:\"partial\";s:0:\"\";s:8:\"rollback\";s:0:\"\";}s:7:\"current\";s:5:\"5.7.2\";s:7:\"version\";s:5:\"5.7.2\";s:11:\"php_version\";s:6:\"5.6.20\";s:13:\"mysql_version\";s:3:\"5.0\";s:11:\"new_bundled\";s:3:\"5.6\";s:15:\"partial_version\";s:0:\"\";}}s:12:\"last_checked\";i:1623119744;s:15:\"version_checked\";s:5:\"5.7.2\";s:12:\"translations\";a:0:{}}','no'),(140,'_transient_timeout_feed_d117b5738fbd35bd8c0391cda1f2b5d9','1623162943','no'),(141,'_transient_feed_d117b5738fbd35bd8c0391cda1f2b5d9','a:4:{s:5:\"child\";a:1:{s:0:\"\";a:1:{s:3:\"rss\";a:1:{i:0;a:6:{s:4:\"data\";s:3:\"\n\n\n\";s:7:\"attribs\";a:1:{s:0:\"\";a:1:{s:7:\"version\";s:3:\"2.0\";}}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:1:{s:0:\"\";a:1:{s:7:\"channel\";a:1:{i:0;a:6:{s:4:\"data\";s:61:\"\n	\n	\n	\n	\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:1:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:16:\"WordPress Planet\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"http://planet.wordpress.org/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:8:\"language\";a:1:{i:0;a:5:{s:4:\"data\";s:2:\"en\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:47:\"WordPress Planet - http://planet.wordpress.org/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"item\";a:50:{i:0;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:75:\"WPTavern: Spice Up Your Food or Recipe Blog With the Nutmeg WordPress Theme\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=117981\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:195:\"https://wptavern.com/spice-up-your-food-or-recipe-blog-with-the-nutmeg-wordpress-theme?utm_source=rss&utm_medium=rss&utm_campaign=spice-up-your-food-or-recipe-blog-with-the-nutmeg-wordpress-theme\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:5683:\"<p class=\"has-drop-cap\">Last week, Dumitru Br&icirc;nzan <a href=\"https://www.ilovewp.com/nutmeg-plus-food-blogging-recipes-wordpress-theme/\">announced Nutmeg Plus</a>. It is the latest commercial theme offering through his ILOVEWP brand. Earlier today, the <a href=\"https://wordpress.org/themes/nutmeg/\">free version of Nutmeg</a> landed in the WordPress theme directory. The theme is built for food and recipe bloggers and is another solid example of building on the block system.</p>\n\n\n\n<p>As is typical of his style, Nutmeg rests on a foundation of clean lines and readable typography. It pulls elements from some of Br&icirc;nzan&rsquo;s previous work, such as the featured pages section of <a href=\"https://wordpress.org/themes/photozoom/\">Photozoom</a> and the two-column intro from <a href=\"https://wordpress.org/themes/endurance/\">Endurance</a>. Reusing code is one of the cornerstones of smart development.</p>\n\n\n\n<p>The theme never gets too flashy, nor is it a bold step forward in design. However, it has a timeless layout that is hard to go wrong with.</p>\n\n\n\n<p>Where it shines is in its use of block patterns and styles.</p>\n\n\n\n<img />Recipe post built with Nutmeg.\n\n\n\n<p>Sometimes, theme authors surprise me with, in hindsight, simple solutions. Nutmeg&rsquo;s List block styles had me asking, &ldquo;Why didn&rsquo;t I think of that?&rdquo;</p>\n\n\n\n<p>Last month, I <a href=\"https://wptavern.com/you-might-not-need-that-block\">challenged theme authors</a> to build out patterns that are often created as custom blocks. In the post, I showcased an example of how themers could provide pricing columns for their users. The Nutmeg theme is a perfect example of that same concept, only applied to recipes.</p>\n\n\n\n<p>The unique aspect is that Br&icirc;nzan did not make it complex. With a few simple styles for the List block, he had all the makings of the typical &ldquo;recipe card&rdquo; seen on many food blogs. <em>Is it as advanced as a fully-featured recipe card plugin?</em> No. But, that should not be the goal. If users need more advanced recipe-related features and functionality, that is where plugins make sense. The theme even recommends a few like WP Recipe Maker, Recipe Card Blocks, and Delicious Recipes for those who need more.</p>\n\n\n\n<p>However, for bloggers who are just starting, undecided on recipe plugins, or simply do not want another dependency, the theme has built-in solutions for them. It is tough to discount the value in that.</p>\n\n\n\n<img />Adding instructions and ingredients.\n\n\n\n<p>With a starting point of the Recipe Info, Ingredients List, or Ingredients + Instructions patterns, users can quickly pop these sections into their content. Or, they can go the alternate route of starting with the List block and selecting one of four custom styles.</p>\n\n\n\n<blockquote class=\"wp-block-quote\"><p>Theme authors should be able to build unique and complex combinations of blocks with custom styles. Users should be able to just make it look like the demo.</p><cite><a href=\"https://wptavern.com/block-patterns-will-change-everything\">Block Patterns Will Change Everything</a></cite></blockquote>\n\n\n\n<p>It was March 2020. The Gutenberg development team had just pushed block patterns into the plugin, but the feature would not land in core WordPress for months. I do not want to call myself a prophet. It was plain enough for anyone to see: block patterns would eventually change how end-users interact with the editor and build their sites.</p>\n\n\n\n<p>Patterns were the answer to elaborate homepage setups. Instead of jumping back and forth between non-standard theme options, hoping for the best from a theming community that never learned to entirely leverage the customizer, users could simply click buttons and insert layout sections where they wanted.</p>\n\n\n\n<p>Recreating Nutmeg&rsquo;s homepage demo was easy. By just picking a few patterns and adding some custom images, I was up and running in minutes. No tutorial necessary. No half-hour session of figuring out a theme&rsquo;s custom options setup.</p>\n\n\n\n<ol><li>Select the custom homepage template.</li><li>Add the Cover with Overlay pattern and upload an image.</li><li>Drop in the Opening Message pattern and customize.</li><li>Insert the Featured Pages pattern and add images.</li></ol>\n\n\n\n<img />Homepage built from patterns.\n\n\n\n<p>Simple setup processes like this are the exact thing that theme authors have been repeatedly asking about for the better part of a decade. Except for a powerful Query solution, which is arriving in a limited form in WordPress 5.8 (the Post Featured Image block is the weak point), the tools are mostly in place. The feature set is only growing with each release.</p>\n\n\n\n<p>One of my favorite solutions in the theme is the use of the Cover block&rsquo;s inner container. The plugin has several styles for moving this inside box around and creating a featured section.</p>\n\n\n\n<img />Customizing the Cover block with styles.\n\n\n\n<p>One improvement I might suggest is to provide &ldquo;width&rdquo; styles for the inner container here. Core already provides an alignment matrix option. Styles for 25%, 50%, and 75% width (100% being the default) would offer more variety when coupled with the existing alignments.</p>\n\n\n\n<p>The only things that felt out of place with the theme were its alignment block styles for Heading and Paragraph blocks. WordPress already provides alignment options for these blocks. I am not sure if there is a use case that I am unaware of for the styles, but they were definitely confusing.</p>\n\n\n\n<p>The theme is worth a test run for any food or recipe bloggers who need a dash of <em>Nutmeg</em> to spice up their site.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 07 Jun 2021 22:54:38 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:1;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"WordPress.org blog: People of WordPress: Tijana Andrejic\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=10427\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:71:\"https://wordpress.org/news/2021/06/people-of-wordpress-tijana-andrejic/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:13617:\"<p><strong>WordPress is open source software, maintained by a global network of contributors. There are many examples of how WordPress has changed people’s lives for the better. In this monthly series, we share some of the amazing stories.</strong></p>\n\n\n\n<p>This month to coincide with WordCamp Europe, we feature Tijana Andrejic from Belgrade, Serbia, about her journey from fitness trainer to the WordPress world, with the freelance and corporate opportunities it introduced. </p>\n\n\n\n<img width=\"632\" height=\"387\" src=\"https://i0.wp.com/wordpress.org/news/files/2021/06/2021-07-Tijana-Andrejic_Featured-Img_1.jpg?resize=632%2C387&ssl=1\" alt=\"Tijana - portrait picture\" class=\"wp-image-10713\" />\n\n\n\n<p>As a professional manager with a college degree in Organizational Science and a certified fitness instructor, Tijana is nothing if not driven and goal-oriented.&nbsp;</p>\n\n\n\n<p>Following her time as a fitness trainer, Tijana moved to work in IT around 2016. She first explored content creation and design before focusing on SEO and becoming an independent specialist.&nbsp;&nbsp;</p>\n\n\n\n<p>Tijana was hired as a Customer Happiness Engineer for a hosting company, where she discovered the benefits of having a team. She realized that having close working relationships with colleagues is helpful for business success and accelerates personal growth.</p>\n\n\n\n<p>Tijana hopes that by sharing her story, she can help others who are either starting their career or are moving roles. She describes the opportunities she discovered in the WordPress community as ‘a huge epiphany’, especially in the world of freelancing.</p>\n\n\n\n<p>She highlights <strong>5 things that helped her to start a new freelancing career</strong>. Let’s dive into them.</p>\n\n\n\n<h2>What motivates me?</h2>\n\n\n\n<p>“Why am I doing this?” is the first question that Tijana asks herself before starting anything new. This self-review and honesty, she feels, allows her to determine her priorities. She also benchmarks options around her motivations of wanting a flexible schedule and to grow professionally.&nbsp;</p>\n\n\n\n<p>She lists the reasons to make a particular choice, like being a freelancer, to help her choose the right job, pathway, or identify alternatives.&nbsp;</p>\n\n\n\n<p>She recommends that others can take a similar approach. If freelancing is still the best solution after examining all their goals and motivations, Tijana believes a good next step would be to learn WordPress-related skills.</p>\n\n\n\n<img src=\"https://lh6.googleusercontent.com/cdHeIL-H_mE6QFCUxUT-gfKS2GzizRHtn4iCENoaWOimC82BfModRJh44QbhvHPW0GNVP5eUPhgxQteDRbA_9EUzpssTXMGWje1hUuKyrfXUgGhCnvXQdraaUQiaGBjFr73dNYxr\" alt=\"WordCamp Europe 2019 group picture\" />\n\n\n\n<h2>Develop WordPress related skills</h2>\n\n\n\n<p>The next question you may ask: “Why WordPress?”</p>\n\n\n\n<p>WordPress is used by more than 40% of websites in some form and offers various roles, many of which are not developer-specific. Tijana highlights a few:&nbsp;</p>\n\n\n\n<ul><li>web developer (coding websites, themes, and plugins)</li><li>web implementor (creating websites from existing themes without coding)</li><li>web designer (designing website mock-ups, editing images, or creating online infographics)</li><li>client support professional (helping people with their websites)</li><li>website maintenance (WordPress, themes, and plugins are maintained and backed up regularly)</li><li>WordPress trainer (helping clients with how to use the platform or teaching other web professionals)</li><li>content writer</li><li>accessibility specialist (making sure standards are met and suggesting solutions for accessibility barriers)</li><li>SEO consultant (improving search outcomes and understanding)</li><li>statistics consultant, especially for web shops</li><li>WordPress assistant (adding new content and editing existing posts)</li><li>website migration specialist (moving websites from one server to another)</li><li>web security specialist</li></ul>\n\n\n\n<img src=\"https://lh4.googleusercontent.com/16XExYT_P4R4PX3orOaWbueDfkBIA6PFQ-CuYEXdeN9AvUIuIF33aIjT1DpdnFCqhrijWv1f68OR2Qh14xGT9REHGJ-MqK-OxJ9XcrhZ3IkcW8DBI7nVAtvFcCnCHL0woka_FV6t\" alt=\"WCBGD group picture\" />\n\n\n\n<p>Tijana emphasized: “Another reason why WordPress is great for freelancers is the strong community that exists around this content management system (CMS).&#8221; WordCamps and Meetups are a way to get useful information and meet people from a large and very diverse community and get answers to many questions straight away.&nbsp;</p>\n\n\n\n<p>In the past year, these events have been primarily online. However, the contributors who run them continue to make an effort to provide an experience as close to in-person events as possible. The biggest advantage to online events is that we can attend events from across the world, even if sometimes during these difficult times, it is difficult to get enough time to deeply into this new experience. Since Tijana’s first Meetup, she has attended many WordPress community events and volunteered as a speaker.</p>\n\n\n\n<h2>Plan in advance</h2>\n\n\n\n<p>Becoming a freelancer takes time. For Tijana, success came with proper planning and following her plan to ‘acquire or improve relevant skills that will make you stand out in the freelance market.’ She strongly believes that learning and growing as a professional opens more business opportunities.&nbsp;</p>\n\n\n\n<p>If you are considering a freelance career, she advises improving relevant skills or developing new skills related to your hobbies as ‘there is nothing better than doing what you love.’ In cases where no previous experience and knowledge can be used, she suggests choosing ‘a job that has a shorter learning curve and builds your knowledge around that.’</p>\n\n\n\n<p>Tijana started as a content creator and learned to become an SEO expert. However, she highlights many alternative paths, including starting as a web implementer and moving to train as a developer.&nbsp;</p>\n\n\n\n<p>She suggests to others: “It would be a good idea to analyze the market before you jump into the learning process.” She also recommends people check the latest trends and consider the future of the skills they are developing.</p>\n\n\n\n<p>Visit the new <a href=\"https://learn.wordpress.org/\">Learn WordPress.org</a> to see what topics are of interest to you. In this newly established resource, the WordPress community aggregates workshops to support those who want to start and improve their skills, provides lesson plans for professional WordPress trainers and helps you create personal learning to develop key skills. There is also material on helping you be part of and organize events for your local community.</p>\n\n\n\n<p>Tijana highlights that there are many places for freelancers to find clients. For example, the WordPress Community has a place where companies and individual site owners publish their job advertisements&nbsp; &#8211; <a href=\"https://jobs.wordpress.net/\">Jobs.WordPress.net</a>.</p>\n\n\n\n<h2>Hurray, it’s time to get a first freelancing job</h2>\n\n\n\n<p>As a pragmatic person, Tijana recommends: “Save money before quitting your job to become a full-time freelancer. Alternatively, try freelancing for a few hours per week to see if you like it. Although some people do benefit when taking a risk, think twice before you take any irreversible actions.”&nbsp;</p>\n\n\n\n<p>She shared some possible next steps:&nbsp;</p>\n\n\n\n<ul><li>use a freelancing platform</li><li>triple-check your resume</li><li>professionally present yourself</li><li>fill up your portfolio with examples</li><li>use video material</li></ul>\n\n\n\n<p>“By using video material, your clients will not see you like a list of skills and previous experiences, but as a real person that has these skills and experiences and that provides a certain service for them.”</p>\n\n\n\n<p>She adds: “Have a detailed strategy when choosing your first employer. Choose your first employer wisely, very wisely. I can’t emphasize enough how important this is”.</p>\n\n\n\n<p>When Tijana took her first freelancing job, she considered the following:</p>\n\n\n\n<ul><li>how was the employer rated by other freelancers who worked for him previously</li><li>how does the employer rate other freelancers</li><li>how much money had they already spent on the platform</li><li>the number of open positions for a specific job and the number of freelancers that have already applied&nbsp;</li></ul>\n\n\n\n<p>“The first job is not all about the money. Don’t get greedy on your first job. If you get good recommendations, your second job can pay two to three times more. And your third job can go up to five times more. That was my experience.”</p>\n\n\n\n<h2>Take responsibility as a freelancer</h2>\n\n\n\n<p>Tijana reminds us: “Freedom often comes with responsibility; individual responsibility is key when it comes to freelancing.”</p>\n\n\n\n<p>She advises others not to take a job if you can not make a deadline and have someone reliable who can help you.&nbsp;</p>\n\n\n\n<p>Missing deadlines will cost your client money and affect the review the client will be willing to leave about your job, and this can have a big impact on your future opportunities or freelance jobs.</p>\n\n\n\n<p>She adds: “This can start a downward spiral for your career. However, we are all humans, and unpredictable things can happen. If for some reason you are not able to complete your work in a timely manner, let your client know immediately so they can have enough time to hire someone else”.</p>\n\n\n\n<p>Tijana emphasizes the importance of making expectations clear before accepting a job, both what the client is expecting and what you can expect from the client.&nbsp;</p>\n\n\n\n<p>Lastly, she points out that if you are working from home, your friends and family should treat you the way they would if you were in an office. She advises: “Let them know about your working schedule.”</p>\n\n\n\n<p>She hopes that these basic guidelines will be useful in launching freelance careers, as they did her, even though there is no universal recipe for all.</p>\n\n\n\n<p>Tijana highlights: “It’s just important to stay focused on your goals and to be open to new opportunities.” Freelancing wasn’t the only way she could have fulfilled her goals, but it was an important part of her path, and it helped her be confident in her abilities to make the next big step in her life.</p>\n\n\n\n<p>As a freelancer, she was missing close relationships with colleagues and teamwork, which she has now found in her current firm. Her colleagues describe her as a: “walking-talking bundle of superpowers: sports medicine and fitness professional, SEO expert, blogger, designer and a kitty foster mum”.</p>\n\n\n\n<img src=\"https://lh4.googleusercontent.com/PIGT9R6FmtEHsNBvWzyViW5htRAm156asTOsohOGOUwfsWjW1TuDhUI9yuZnjIe-1eFHfFUWPULPtw82P3YYXHa0bsY_jA5keelmDHfSkTdd3xUsVZTmG9KvdE8XTojvU3LxYCsi\" alt=\"Conference reception\" />\n\n\n\n<p>If you are considering starting your career as a freelancer, take the courses offered at <a href=\"https://learn.wordpress.org/\">learn.wordpress.org,</a> reach out to companies that you would be interested in working with, and remember that there are a whole host of opportunities in the WordPress project.</p>\n\n\n\n<p><a href=\"https://make.wordpress.org/\">The WordPress.org Teams</a> &#8211; what they do, when and where they meet</p>\n\n\n\n<p><a href=\"https://learn.wordpress.org/\">Learn WordPress resource</a> &#8211; free to use to expand your knowledge and skills of using the platform and learning about the community around it.</p>\n\n\n\n<p>The 3-day <a href=\"https://europe.wordcamp.org/2021/\">WordCamp Europe 2021</a> online event begins on 7 June 2021. You can discover more about being a contributor in its live sessions and <a href=\"https://europe.wordcamp.org/2021/contribute-to-wordpress/\">section on ways to contribute to WordPress</a>.</p>\n\n\n\n<h2>Contributors</h2>\n\n\n\n<p>Thanks to Olga Gleckler (<a href=\"https://profiles.wordpress.org/oglekler/\" class=\"mention\"><span class=\"mentions-prefix\">@</span>oglekler</a>), Abha Thakor (<a href=\"https://profiles.wordpress.org/webcommsat/\">@webcommsat</a>), Chloé Bringmann (<a href=\"https://profiles.wordpress.org/cbringmann/\" class=\"mention\"><span class=\"mentions-prefix\">@</span>cbringmann</a>), Surendra Thakor (<a href=\"https://profiles.wordpress.org/sthakor/\" class=\"mention\"><span class=\"mentions-prefix\">@</span>sthakor</a>), and Meher Bala (<a href=\"https://profiles.wordpress.org/meher/\" class=\"mention\"><span class=\"mentions-prefix\">@</span>meher</a>) for working on this story. Josepha Haden (<a href=\"https://profiles.wordpress.org/chanthaboune/\">@chanthaboune</a>) and also to Topher DeRosia (<a href=\"https://profiles.wordpress.org/topher1kenobe/\">@topher1kenobe</a>) who created HeroPress. Thank you to Tijana Andrejic (<a href=\"https://profiles.wordpress.org/andtijana/\" class=\"mention\"><span class=\"mentions-prefix\">@</span>andtijana</a>) for sharing her #ContributorStory</p>\n\n\n\n<img src=\"https://lh4.googleusercontent.com/FEZ2FQJ0vQ311YoPfh6ny15NXh8saTLH_RjyDO4pUOuEGBTa-Czk63PGoWL04FawKviRfNx0QXePx-goK04X12ry1BR_WXh-kVPIfsEeItPAX6reN5fHS96q6-8dUI506ZO38Z0G\" alt=\"HeroPress logo\" />\n\n\n\n<p><em>This post is based on an article originally published on HeroPress.com. It highlights people in the WordPress community who have overcome barriers and whose stories would otherwise go unheard.</em></p>\n\n\n\n<p><em>Meet more WordPress community members in our <a href=\"https://wordpress.org/news/category/heropress/\">People of WordPress series</a>.</em></p>\n\n\n\n<p><em>#ContributorStory #HeroPress</em></p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 07 Jun 2021 22:00:03 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:28:\"webcommsat AbhaNonStopNewsUK\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:2;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:41:\"BuddyPress: BuddyPress 8.0.0 “Alfano”\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"https://buddypress.org/?p=319133\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:55:\"https://buddypress.org/2021/06/buddypress-8-0-0-alfano/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:11623:\"<p>&#8220;Alfano&#8221; is our first major release of 2021. It is named after <a href=\"http://www.alfanopizza.com\">Alfano’s Pizza</a> in Rock Island, Illinois, a family-run pizzeria that’s been around since the 1970s. They know how to keep it simple: there’s nothing on the menu but mouth-watering pizzas and calzones featuring their own made-from-scratch sauce and crust. For the true Alfano’s experience, order a stuffed pizza and dine in with as many friends as you can bring. The massive, two-crust pizza will be brought to the table piping hot, and there will be plenty for everyone!</p>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-white-color has-text-color has-background\" href=\"https://downloads.wordpress.org/plugin/buddypress.8.0.0.zip\"><strong>Get BuddyPress 8.0.0</strong></a></div>\n</div>\n\n\n\n<div class=\"wp-block-spacer\"></div>\n\n\n\n<p>You can get it clicking on the above button, downloading it from the&nbsp;<a href=\"https://wordpress.org/plugins/buddypress/\">WordPress.org plugin directory</a>&nbsp;or checking it out from our&nbsp;<a href=\"https://buddypress.trac.wordpress.org/browser/branches/8.0\">Subversion repository.</a></p>\n\n\n\n<p><img src=\"https://s.w.org/images/core/emoji/13.0.1/72x72/1f449.png\" alt=\"👉\" class=\"wp-smiley\" />&nbsp;<em>If you’re upgrading from a previous version of BuddyPress, it’s always a good idea to back-up your WordPress database and files ahead of time.</em></p>\n\n\n\n<p>You can review all of the changes in this 8.0.0 release in the&nbsp;<a href=\"https://codex.buddypress.org/releases/version-8-0-0/\">release notes</a>. Below are the key features we believe you are going to enjoy most!</p>\n\n\n\n<div class=\"wp-block-spacer\"></div>\n\n\n\n<h2>Your current members are the best way to recruit fantastic new members for your community.</h2>\n\n\n\n<p>Whether public registration is enabled or not, you can activate this great new opt-in feature from your site&#8217;s BuddyPress settings; with it, your trusted members will handpick new members who will enrich your community.</p>\n\n\n\n<div class=\"wp-block-image\"><a href=\"https://buddypress.org/wp-content/uploads/1/2021/06/front-invites-tool.png\"><img width=\"985\" height=\"646\" src=\"https://buddypress.org/wp-content/uploads/1/2021/06/front-invites-tool.png\" alt=\"Illustration showing the Members Invite Screen.\" class=\"wp-image-319137\" /></a></div>\n\n\n\n<p>Once activated, each member will be able to send new Member Invitation emails and manage the pending invitations directly from his or her profile area.</p>\n\n\n\n<div class=\"wp-block-image\"><a href=\"https://buddypress.org/wp-content/uploads/1/2021/06/front-pending-invites-tool.png\"><img width=\"981\" height=\"406\" src=\"https://buddypress.org/wp-content/uploads/1/2021/06/front-pending-invites-tool.png\" alt=\"Illustration showing the Members Pending Invites Screen.\" class=\"wp-image-319140\" /></a></div>\n\n\n\n<p>You keep control of everything thanks to two new screens we added to the BuddyPress Tools dashboard: invitations and opt-outs management.</p>\n\n\n\n<div class=\"wp-block-image\"><a href=\"https://buddypress.org/wp-content/uploads/1/2021/06/admin-invites-tool.png\"><img width=\"1176\" height=\"519\" src=\"https://buddypress.org/wp-content/uploads/1/2021/06/admin-invites-tool.png\" alt=\"Illustration showing the Members Invitations Administration Screen.\" class=\"wp-image-319141\" /></a></div>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-right\">\n<div class=\"wp-block-button has-custom-font-size is-style-outline has-normal-font-size\"><a class=\"wp-block-button__link has-white-background-color has-text-color has-background\" href=\"https://bpdevel.wordpress.com/2021/05/26/bp-8-0-introduces-site-membership-invitations/\"><strong>Read more about it</strong></a></div>\n</div>\n\n\n\n<div class=\"wp-block-spacer\"></div>\n\n\n\n<h2>Improved registration experience.</h2>\n\n\n\n<p>First, you can select any xProfile field from any xProfile field group to use on your site&#8217;s registration form. Second, if your site requires that users accept specific rules such as terms of service or a code of conduct, you can now take advantage of the new Checkbox Acceptance xProfile Field type to record their agreement.</p>\n\n\n\n<ul class=\"blocks-gallery-grid\"><li class=\"blocks-gallery-item\"><a href=\"https://buddypress.org/wp-content/uploads/1/2021/06/signup-fields.png\"><img width=\"1024\" height=\"492\" src=\"https://buddypress.org/wp-content/uploads/1/2021/06/signup-fields-1024x492.png\" alt=\"\" class=\"wp-image-319146\" /></a><a href=\"https://bpdevel.wordpress.com/2021/05/06/selectable-xprofile-sign-up-fields-in-8-0-0/\"><span class=\"has-inline-color has-white-color\">Read more about Selectable signup fields</span></a></li><li class=\"blocks-gallery-item\"><a href=\"https://buddypress.org/wp-content/uploads/1/2021/06/checkbox-acceptance.png\"><img width=\"1006\" height=\"763\" src=\"https://buddypress.org/wp-content/uploads/1/2021/06/checkbox-acceptance.png\" alt=\"\" class=\"wp-image-319145\" /></a><a href=\"https://bpdevel.wordpress.com/2021/05/05/new-xprofile-field-type-checkbox-acceptance-will-be-introduced-in-buddypress-8-0-0/\"><span class=\"has-inline-color has-white-color\">Read more about the Checkbox Acceptance field type</span></a></li></ul>\n\n\n\n<p>Third, once a user activates his or her account, BuddyPress will send a welcome email to help get him or her engaged with your community. You can customize the content of this email from the Emails menu of your WordPress dashboard. Have a look to this <a href=\"https://bpdevel.wordpress.com/2021/05/24/8-0-0-will-include-a-bp-email-to-welcome-new-community-members/\">developer note</a> to find out more about it.</p>\n\n\n\n<div class=\"wp-block-spacer\"></div>\n\n\n\n<h2>WP xProfile field types.</h2>\n\n\n\n<p>The WP Biography field type lets you include the user&#8217;s Biographical Info and thanks to the WP Textbox field you can include the first &amp; last name, the Website URL as well as <strong>any</strong> of the custom contact methods of your users.</p>\n\n\n\n<div class=\"wp-block-image\"><a href=\"https://buddypress.org/wp-content/uploads/1/2021/06/wordpress-fields.png\"><img width=\"847\" height=\"497\" src=\"https://buddypress.org/wp-content/uploads/1/2021/06/wordpress-fields.png\" alt=\"Illustration showing the xProfile Field Edit Screen.\" class=\"wp-image-319149\" /></a></div>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-right\">\n<div class=\"wp-block-button has-custom-font-size is-style-outline has-normal-font-size\"><a class=\"wp-block-button__link has-white-background-color has-text-color has-background\" href=\"https://bpdevel.wordpress.com/2021/03/24/wordpress-xprofile-field-types/\"><strong>Read more about it</strong></a></div>\n</div>\n\n\n\n<div class=\"wp-block-spacer\"></div>\n\n\n\n<div><span class=\"dashicons dashicons-admin-generic\"></span></div>\n\n\n\n<div class=\"wp-block-spacer\"></div>\n\n\n\n<h2 class=\"has-text-align-center\">Under the hood</h2>\n\n\n\n<p>8.0.0 includes more than 45 changes to improve the Activity component, the BP Nouveau Template pack, the BP REST API and many more components and features.</p>\n\n\n\n<div class=\"wp-block-spacer\"></div>\n\n\n\n<div><span class=\"dashicons dashicons-buddicons-buddypress-logo\"></span></div>\n\n\n\n<div class=\"wp-block-spacer\"></div>\n\n\n\n<h2 class=\"has-text-align-center\">Many thanks to the 47 contributors who helped us build &amp; translate BuddyPress 8.0.0</h2>\n\n\n\n<p><a href=\"https://profiles.wordpress.org/oztaser/\">Adil Oztaser (oztaser)</a>, <a href=\"https://profiles.wordpress.org/chaion07/\">Ahmed Chaion (chaion07)</a>, <a href=\"https://profiles.wordpress.org/dontdream/\">Andrea Tarantini (dontdream)</a>, <a href=\"https://profiles.wordpress.org/boonebgorges/\">Boone B Gorges (boonebgorges)</a>, <a href=\"https://profiles.wordpress.org/sbrajesh/\">Brajesh Singh (sbrajesh)</a>, <a href=\"https://profiles.wordpress.org/thee17/\">Charles E. Frees-Melvin (thee17)</a>, <a href=\"https://profiles.wordpress.org/needle/\">Christian Wach (needle)</a>, <a href=\"https://profiles.wordpress.org/comminski/\">comminski</a>, <a href=\"https://profiles.wordpress.org/dancaragea/\">Dan Caragea (dancaragea)</a>, <a href=\"https://profiles.wordpress.org/dcavins/\">David Cavins (dcavins)</a>, <a href=\"https://github.com/dominic-ks/\">dominic-ks</a>, <a href=\"https://github.com/edusperoni/\">Eduardo Speroni (edusperoni)</a>, <a href=\"https://profiles.wordpress.org/fernandot/\">Fernando Tellado (fernandot)</a>, <a href=\"https://profiles.wordpress.org/mociofiletto/\">Giuseppe (mociofiletto)</a>, <a href=\"https://profiles.wordpress.org/hz_i3/\">hz_i3</a>, <a href=\"https://profiles.wordpress.org/ianbarnes/\">Ian Barnes (ianbarnes)</a>, <a href=\"https://profiles.wordpress.org/atxamart/\">Iker Garaialde (atxamart)</a>, <a href=\"https://profiles.wordpress.org/nobnob/\">Javier Esteban (nobnob)</a>, <a href=\"https://profiles.wordpress.org/johnjamesjacoby/\">John James Jacoby (johnjamesjacoby)</a>, <a href=\"https://profiles.wordpress.org/krupajnanda/\">Krupa (krupajnanda)</a>, <a href=\"https://profiles.wordpress.org/offereins/\">Laurens Offereins</a>, <a href=\"https://profiles.wordpress.org/mahdiar/\">mahdiar</a>, <a href=\"https://profiles.wordpress.org/markscottrobson/\">Mark Robson (markscottrobson)</a>, <a href=\"https://profiles.wordpress.org/imath/\">Mathieu Viet (imath)</a>, <a href=\"https://profiles.wordpress.org/mattneil/\">mattneil</a>, <a href=\"https://profiles.wordpress.org/meijioro/\">meijioro</a>, <a href=\"https://profiles.wordpress.org/kalich5/\">Michal Janata (kalich5)</a>, <a href=\"https://profiles.wordpress.org/modemlooper/\">modemlooper</a>, <a href=\"https://profiles.wordpress.org/DJPaul/\">Paul Gibbs (DJPaul)</a>, <a href=\"https://profiles.wordpress.org/podporawebu/\">podporawebu</a>, <a href=\"https://profiles.wordpress.org/psmits1567/\">Peter Smits (psmits1567)</a>, <a href=\"https://profiles.wordpress.org/nekojonez/\">Pieterjan Deneys (nekojonez)</a>, <a href=\"https://profiles.wordpress.org/r-a-y/\">r-a-y</a>, <a href=\"https://profiles.wordpress.org/espellcaste/\">Renato Alves (espellcaste)</a>, <a href=\"https://profiles.wordpress.org/renegade1/\">renegade1</a>, <a href=\"https://profiles.wordpress.org/slaffik/\">Slava Abakumov (slaffik)</a>, <a href=\"https://profiles.wordpress.org/sabernhardt/\">Stephen Bernhardt (sabernhardt)</a>, <a href=\"https://profiles.wordpress.org/netweb/\">Stephen Edgar (netweb)</a>, <a href=\"https://profiles.wordpress.org/studiocrafted/\">studiocrafted</a>, <a href=\"https://profiles.wordpress.org/sippis/\">Timi Wahalahti (sippis)</a>, <a href=\"https://profiles.wordpress.org/mobby2561/\">Tomas (mobby2561)</a>, <a href=\"https://profiles.wordpress.org/topher1kenobe/\">Topher (topher1kenobe)</a>, <a href=\"https://profiles.wordpress.org/utsav72640/\">Utsav tilava (utsav72640)</a>, <a href=\"https://profiles.wordpress.org/vapvarun/\">Varun Dubey (vapvarun)</a>, <a href=\"https://profiles.wordpress.org/venutius/\">Venutius</a>, <a href=\"https://profiles.wordpress.org/weddywood/\">WeddyWood</a>, <a href=\"https://profiles.wordpress.org/yordansoares/\">Yordan Soares (yordansoares)</a>.</p>\n\n\n\n<div class=\"wp-block-spacer\"></div>\n\n\n\n<div><span class=\"dashicons dashicons-format-chat\"></span></div>\n\n\n\n<div class=\"wp-block-spacer\"></div>\n\n\n\n<h2 class=\"has-text-align-center\">Feedbacks welcome!</h2>\n\n\n\n<p>Receiving your feedback and suggestions for future versions of BuddyPress genuinely motivates and encourages our contributors. Please share&nbsp;your&nbsp;feedback about this version of BuddyPress in the comments area of this post. And of course, if you’ve found a bug: please tell us about it into our&nbsp;<a href=\"https://buddypress.org/support/\">Support forums</a>.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 07 Jun 2021 19:45:05 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Mathieu Viet\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:3;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:77:\"WordPress.org blog: WP Briefing: Episode 10: Finding the Good In Disagreement\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:53:\"https://wordpress.org/news/?post_type=podcast&p=10424\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:79:\"https://wordpress.org/news/2021/06/episode-10-finding-the-good-in-disagreement/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:12066:\"<p>To Agree, disagree, and everything in-between. In this episode, Josepha talks about forming opinions and decision-making in the WordPress project.</p>\n\n\n\n<p><em><strong>Have a question you&#8217;d like answered? You can submit them to <a href=\"mailto:wpbriefing@wordpress.org\">wpbriefing@wordpress.org</a>, either written or as a voice recording.</strong></em></p>\n\n\n\n<h2>Credits</h2>\n\n\n\n<p>Editor:<a href=\"https://profiles.wordpress.org/dustinhartzler/\"> Dustin Hartzler</a></p>\n\n\n\n<p>Logo:<a href=\"https://profiles.wordpress.org/beafialho/\"> Beatriz Fialho</a></p>\n\n\n\n<p>Production:<a href=\"https://profiles.wordpress.org/mkaz/\"> </a><a href=\"https://profiles.wordpress.org/cbringmann/\">Chloé Bringmann</a></p>\n\n\n\n<p>Song: Fearless First by Kevin MacLeod</p>\n\n\n\n<h2>References</h2>\n\n\n\n<p><a href=\"https://www.oprah.com/spirit/suzy-welchs-rule-of-10-10-10-decision-making-guide/all\">10/10/10 Rule</a></p>\n\n\n\n<p><a href=\"https://en.wikipedia.org/wiki/Time_management#The_Eisenhower_Method\">The Eisenhower Matrix&nbsp;</a></p>\n\n\n\n<p><a href=\"https://en.wikipedia.org/wiki/Minimax\">The Maximin Strategy&nbsp;</a></p>\n\n\n\n<p><a href=\"https://europe.wordcamp.org/2021/\">WordCamp Europe</a></p>\n\n\n\n<p><a href=\"https://japan.wordcamp.org/2021/\">WordCamp Japan</a></p>\n\n\n\n<p><a href=\"https://make.wordpress.org/core/5-8/\">WordPress 5.8 Development Cycle</a></p>\n\n\n\n<h2>Transcript</h2>\n\n\n\n<span id=\"more-10424\"></span>\n\n\n\n<p><strong>Josepha Haden Chomphosy&nbsp; </strong>00:10</p>\n\n\n\n<p>Hello, everyone, and welcome to the WordPress Briefing, the podcast where you can catch quick explanations of some of the ideas behind the WordPress open source project and the community around it, as well as get a small list of big things coming up in the next two weeks. I&#8217;m your host, Joseph Haden Chomphosy. Here we go!</p>\n\n\n\n<p><strong>Josepha Haden Chomphosy&nbsp; </strong>00:40</p>\n\n\n\n<p>For anyone who has ever organized something, whether it&#8217;s a social event, a school project, or an annual family gathering, you know that there are many different opinions. The more opinions you have, the more likely people don&#8217;t see eye to eye. And before you know it, you&#8217;ve got some disagreements. Some things make disagreements worse, like imbalance of information, lack of showing your work, and sometimes just “too many cooks in the kitchen,” to use a regional phrase. Frankly, sometimes it seems like the second you have more than one cook in your kitchen, you&#8217;re going to get some disagreements. But I think that&#8217;s a healthy thing. WordPress is huge. And there are huge numbers of people contributing to WordPress or any other open source project you want to name. So there&#8217;s a lot of stuff available to disagree about. If we never saw anyone pointing out an area that wasn&#8217;t quite right, there would probably be something wrong. If you, like me, think that a healthy tension of collaborative disagreement can be useful when approached thoughtfully, then this quick start guide is for you.&nbsp;</p>\n\n\n\n<p>Step one, prepare to host a discussion. This is, by the way, just the hardest step out there. You have to take a little time to figure out what problem you&#8217;re solving with the solution you&#8217;re suggesting, any goals that it relates to, and then figure out what the bare minimum best outcome would be and what the wildest dreams magic wand waving outcome would be. And you have to be honest with yourself.&nbsp;</p>\n\n\n\n<p>Step two, host the discussion. The venue will be different for different discussions, but you see a lot of these on team blogs or within the actual tickets where work is being done. Wherever you&#8217;re hosting it, state the problem, state your idea for the solution and ask for what you missed. If you&#8217;re hosting a discussion in person, like in a town hall format, this can be hard. And generally, hosting discussions in an in-person or voice call or zoom call kind of way is hard. So if you have an opportunity to start doing this in text first and level your way up to in person, that&#8217;s my recommendation.&nbsp;</p>\n\n\n\n<p>Step three is to summarize the discussion and post a decision if possible. So organizing a big discussion into main points is a really good practice for the people you&#8217;re summarizing it for and yourself. It helps you to confirm your understanding, and it also gives you the chance to pair other solutions with the problem and goals you outlined in step one. If a different solution solves the same problem but with less time or effort, it&#8217;s worth taking a second look with less time or effort. There’s something that I say to WordPress contributors frequently, and that is there are a lot of yeses. There are a lot of right ways to do things and only a few clear wrong ways to do things. So be open-minded about whether or not someone else&#8217;s right way to do things could still achieve the goals you&#8217;re trying to accomplish with your solution. A note on step three where I said, “and post the decision if possible.” Sometimes you&#8217;re the person to make that decision, but sometimes you are not the person who can give something the green light, and so you&#8217;re preparing a recommendation. Whether you&#8217;re making a decision or a recommendation, sometimes you may experience a little decision-making paralysis. I know I do. So here are a few of the tools that I use.</p>\n\n\n\n<p>If you&#8217;re avoiding the decision, use the 10/10/10 rule; it can help you figure out if you&#8217;re stuck on a short-term problem. If there are too many good choices, use the Eisenhower Matrix that can help you to prioritize objectively. If there are too many bad choices, use the Maximin strategy. It can help you to identify how to minimize any potential negative impacts.&nbsp;</p>\n\n\n\n<p>Okay, so you&#8217;ve considered your position. You’ve discussed everything. You summarized the big points. Maybe you also worked your way through to a recommendation or a decision. What about everyone who disagreed with the decision? Or have you made a recommendation, and it wasn&#8217;t accepted? How do you deal with that? That&#8217;s where “disagree and commit” shows up. This phrase was made popular by the folks over at Amazon, I think. But it first showed up, I believe at Sun Microsystems as this phrase, “agreeing, commit, disagree and commit or get out of the way.”</p>\n\n\n\n<p><strong>Josepha Haden Chomphosy&nbsp; </strong>05:34</p>\n\n\n\n<p>Disagree and commit as a concept works pretty well when everyone agrees on the vision and the goals, but not necessarily how to get to those goals. We&#8217;ve had moments in recent history where folks we&#8217;re not able to agree, we’re not able to commit, and so then left the project. I hate when that happens. I want people to thrive in this community for the entire length of their careers. But I also understand that situation shows up in the top five learnings of open source when you no longer have interest in the project and handed it off to a competent successor. So there it is &#8211; disagreements in open source in WordPress.&nbsp;</p>\n\n\n\n<p>As with so many of the things I discuss on this podcast, this is incredibly complex and nuanced in practice. Taking an argument, distilling facts from feelings, and adjusting frames of reference until the solution is well informed and risk-balanced. That is a skill set unto itself. But one that increases the health of any organization. I’ll share that list of references and general materials in the show notes, including a link explaining each of those decision-making tools that I shared. I&#8217;m also going to include the contributor training module on decision-making in the WordPress project. It&#8217;s got excellent information. It&#8217;s part of a series of modules that I asked team reps to take and sponsored contributors. I don&#8217;t require it from anyone, but I do hope that it is useful for you. Also, speaking of useful for you, if you are just here for leadership insights, I included some hot takes after the outro music for you. It&#8217;s like an Easter egg, but I just told you about it.</p>\n\n\n\n<p><strong>Josepha Haden Chomphosy&nbsp; </strong>07:33</p>\n\n\n\n<p>And that brings us to our small list of big things! First off, WordCamp Europe is happening this we; I hope that everybody has an opportunity to attend. If you still haven&#8217;t gotten your tickets, they are free, and I think there are still a few left. I will include a link in the show notes as well. There&#8217;s going to be a little demo with Matt Mullenweg and Matias Ventura on the WordPress 5.8 release that&#8217;s coming up. And then kind of a retrospective discussion between Matt and Brian Krogsgard. I encourage you to join; I think it&#8217;s going to be very interesting.&nbsp;</p>\n\n\n\n<p>There&#8217;s also WordCamp, Japan coming up June 20 through 26th. I mentioned it last time &#8211;&nbsp; it has a big section of contributing and contribution time. So if you&#8217;re looking to get started, some projects are laid out, and I encourage you to take a look at that as well.&nbsp;</p>\n\n\n\n<p>The new thing on this list, and I don&#8217;t know how new It is, in general, I hope it&#8217;s not too new to you, is that WordPress 5.8 release is reaching its beta one milestone on June 8th, so right in the middle of WordCamp Europe. I encourage every single theme developer, plugin developer that we have, agency owners that we have to really take a look at this release and dig into testing it. It&#8217;s a gigantic release. And I have so many questions about what will work and will not work once we get it into a broader testing area. We&#8217;ve been doing a lot of testing in the outreach program. But it&#8217;s always helpful to get people who are using WordPress daily in their jobs to really give a good solid test to the beta product to the beta package. And put it all through its paces for us.&nbsp;</p>\n\n\n\n<p>So, that my friends, is your small list of big things. Thank you for tuning in today for the WordPress Briefing. I&#8217;m your host Josepha Haden Chomphosy, and I&#8217;ll see you again in a couple of weeks.</p>\n\n\n\n<p><strong>Josepha Haden Chomphosy&nbsp; </strong>10:09</p>\n\n\n\n<p>Hey there, you must be here because I told you about this totally not hidden easter egg about my hot takes on organizational health; I have three for you. And if you&#8217;ve ever worked with me, none of this will surprise you. But if you haven&#8217;t worked with me, hopefully, it kind of gives you some idea about how I approach all of this a bit differently. So, number one, critical feedback is the sign of a healthy organization. And I will never be dissuaded from that opinion. A complete lack of dissent doesn&#8217;t look like “alignment.” To me, that looks like fear. And it goes against the open source idea that many eyes make all bugs shallow.&nbsp;</p>\n\n\n\n<p>Tip number two, a bit of tension is good, a bit of disagreement is good. The same thing that I say about women in tech, we&#8217;re not all the same. And if we were, then we wouldn&#8217;t need to collaborate anyway. But diversity, whether that&#8217;s the diversity of thought or of a person or of experience, just doesn&#8217;t happen without some misunderstandings. It&#8217;s how we choose to grow through those misunderstandings that make all the difference for the type of organization we are.&nbsp;</p>\n\n\n\n<p>And hot take number three, changing your mind isn&#8217;t flip-flopping or hypocritical. I think that&#8217;s a sign of growth and willingness to hear others. I like to think of my embarrassment at past bad decisions &#8211; as the sore muscles of a learning brain. And I, again, probably won&#8217;t be dissuaded from that opinion. Although, you know, if I&#8217;m sticking true to changing your mind some flip-flopping or hypocritical, maybe I will, but you can always try to, to give me the counter-argument for that, and we&#8217;ll see how it goes. Thank you for joining me for my little public easter egg.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 07 Jun 2021 12:22:06 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:15:\"Chloe Bringmann\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:4;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:106:\"Gutenberg Times: Themes for Full-Site Editing and Getting ready for WordPress 5.8 – Weekend Edition #172\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://gutenbergtimes.com/?p=18038\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:112:\"https://gutenbergtimes.com/themes-for-full-site-editing-and-getting-ready-for-wordpress-5-8-weekend-edition-172/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:19478:\"<p>Howdy, </p>\n\n\n\n<p>It&#8217;s the eve of the second virtual <a href=\"https://europe.wordcamp.org/2021/\"><strong>WordCamp Europe</strong></a>. Tickets are still available for another awesome three days with talks, workshops and contributor events. This year, the organizer decide to sprinkle contributor event into the rest of the schedule and have for all three days, a mix between techtalk, business talks and contributor presentation and discussions. There are quite a few events around the Block editor, Full-site-editing and block-based themes. <a href=\"https://gutenbergtimes.com/wordcamp-europe-2021-starts-monday/\">I compiled a list for you.</a> And just because I am so focused on Gutenberg, doesn&#8217;t mean you have to. 😎 <a href=\"https://europe.wordcamp.org/2021/schedule/\">Check out the schedule</a> and <a href=\"https://europe.wordcamp.org/2021/registration/\">get your tickets now</a>. </p>\n\n\n\n<p>Hopefully, it will be the last virtual conference and we will see each other at an in-person WordCamp Europe in 2022. I am still hoping for Porto, Portugal.  At this state of withdrawal from meeting WordPress friends in person, it doesn&#8217;t matter where it will take place, thought. It&#8217;ll be a Hug-Fest. </p>\n\n\n\n<p>Last week, I mentioned the next<a href=\"https://us02web.zoom.us/webinar/register/4216223029678/WN_gyOVb1h4S4iO_UZi1GMQaA\"> <strong>Gutenberg Times Live Q &amp; A</strong></a> in the subscribers-only section of this newsletter. Now we have a full panel. <a href=\"https://us02web.zoom.us/webinar/register/4216223029678/WN_gyOVb1h4S4iO_UZi1GMQaA\">Registration is officially open</a>. I am thrileed to host Daisy Olsen, Jeff Ong and Tammie Lister for our show on <strong>How to get started on Theme building for Full-site Editing and using the Theme.json file</strong> to configure your theme, and its interaction with the block editor. The Theme.json file will be introduced with the release of WordPress 5.8 in July 2021. <a href=\"https://us02web.zoom.us/webinar/register/4216223029678/WN_gyOVb1h4S4iO_UZi1GMQaA\">Get a head start and join us!</a></p>\n\n\n\n<p><strong>Grzegorz (Greg) Ziolkowski</strong> will be back from vaction next week and we will record our next <strong>Changelog </strong>episode on Friday 11, 2021. I am so excited and can&#8217;t wait until Grzegorz is back!  If you have questions or suggestions or news, you want us to consider, hit reply or send them to <a href=\"mailto:changelog@gutenbergtimes.com\">changelog@gutenbergtimes.com</a>. We now have consitently 500 &#8211; 800 downloads per week. It&#8217;s humbling, mind-boggling and inspiring.  And if YOU are a listener, Thank You!  If you have a minute or two, <a href=\"https://lovethepodcast.com/gutenbergchangelog\">consider writing a review of the podcast</a>. We&#8217;d be grateful and might read it out loud on the next show. </p>\n\n\n\n<p>Alright, that&#8217;s the news around Gutenberg Times. Below you&#8217;ll find what else happened in the Gutenberg universe. Enjoy! </p>\n\n\n\n<p>Yours, 💕<br />Birgit</p>\n\n\n\n<p><em>PS: Hope to see you at WordCamp Europe. Don&#8217;t forget to join the #WCEU channel on WordPress Slack and meet speaker, sponsors, organizer and attendees like you and me. </em></p>\n\n\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<h2>Full-Site-Editing &amp; Themes</h2>\n\n\n\n<p><strong>Anne McCarthy</strong> published the <a href=\"https://make.wordpress.org/test/2021/06/02/fse-program-stick-the-landing-pages-summary/\"><strong>Stick the landing (pages) Summary</strong></a>. This post is a summary of the sixth call for testing for the experimental FSE outreach program, which also was translated into Italian to reach more of the non-English audience. Earlier calls were also translated into Japanese. The group of FSE testers is much bigger now, thanks to the persistent efforts by Anne to reach out to the community and stay on top of all the issues around the template editor. </p>\n\n\n\n<p>A reminder: You can still join the the seventh call for testing:<a href=\"https://make.wordpress.org/test/2021/05/26/fse-program-testing-call-7-polished-portfolios/\"> </a><strong><a href=\"https://make.wordpress.org/test/2021/05/26/fse-program-testing-call-7-polished-portfolios/\">Polished Portfolios</a> </strong>&#8211; The deadline for your feedback was extended to June 16th, 2021. </p>\n\n\n\n<p>If you read this before Sunday night, you can participate in the <a href=\"https://www.meetup.com/Philadelphia-WordPress-Meetup-Group/events/278507419/\"><strong>Full Site Editing Review and Test-a-thon </strong></a>Sunday, June 6th at  7 &#8211; 8:30 pm with the <strong>WordPress Meetup </strong>group in Philadelphia. </p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<p>Reading through the summary,  I am stuck on trying to understand the difference between a template built by the site-owner and a theme template. What will happen with their templates when the site-owner decides to change the overall theme of their site? There is still plenty to be figured out. <strong><a href=\"https://github.com/WordPress/gutenberg/pull/31971\">How edited block templates are linked to themes</a></strong> is topic of the discussion on GitHub. The Gutenberg team would appreciate some thoughts from folks familiar with these APIs (theme mods, performance, database).</p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<p><strong>Kjell Reigstad</strong> posted again acomprehensive list of issues and discussions regarding block-based themes and Full-Site Editing: <a href=\"https://make.wordpress.org/themes/2021/06/04/gutenberg-themes-week-of-may-31-2021/\"><strong>Gutenberg + Themes: Week of May 31, 2021</strong></a>. Any of the listed items are worth checking out and consider commenting. The more the team knows the better the next iteration of Full-Site editing and block-based themes becomes. </p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<h2>WordPress 5.8 release preparations</h2>\n\n\n\n<p>From the <a href=\"https://make.wordpress.org/core/2021/06/05/devchat-meeting-summary-june-2-2021/\">meeting notes of this week&#8217;s Dev Chat</a>: &#8220;Docs needs the most help with end user documentation. For block editor in particular. Some changes from 5.6 and 5.7 are still not published and we had a significant drop in number of contributors due to pandemic situation. Anyone interested in getting involved please&nbsp;ping <strong><a href=\"https://twitter.com/DjevaLoperka\">Milana Cap</a></strong>&nbsp;&nbsp;(<strong>zzap</strong>&nbsp;on&nbsp;Slack).&nbsp;</p>\n\n\n\n<p>The summary of needed <strong><a href=\"https://github.com/WordPress/gutenberg/issues/32365\">DevNotes for new features in WordPress 5.8</a></strong> is available on GitHub and could use contributors. There is also a <a href=\"https://github.com/WordPress/gutenberg/pulls?q=is%3Apr+is%3Amerged+label%3A%22Needs+Dev+Note%22\">&#8220;needs dev note&#8221; label for pull requests</a>. </p>\n\n\n\n<p>The widget screen could use some more testing. As a reminder, please read<strong> <a rel=\"noreferrer noopener\" target=\"_blank\" href=\"https://make.wordpress.org/core/2021/05/12/help-test-the-widgets-editor-for-wordpress-5-8/\">Help Test the Widgets Editor for WordPress 5.8</a></strong> by <a href=\"https://twitter.com/andraganescu\"><strong>Andre Draganescu</strong></a></p>\n\n\n\n<h2>Block Patterns</h2>\n\n\n\n<p><strong>Hector Pietro</strong> wrote in his post <a href=\"https://make.wordpress.org/core/2021/06/04/whats-next-in-gutenberg-june-2021/\"><strong>What’s next in Gutenberg? (June 2021)</strong></a>: </p>\n\n\n\n<p>&#8220;Since&nbsp;<a rel=\"noreferrer noopener\" href=\"https://make.wordpress.org/core/2021/05/27/whats-new-in-gutenberg-10-7-26-may/\" target=\"_blank\">Gutenberg 10.7</a>, block patterns displayed in the inserter are fetched from the&nbsp;<a rel=\"noreferrer noopener\" href=\"https://wordpress.org/patterns/\" target=\"_blank\">WordPress.org Pattern Directory</a>. This opens the door to having a big amount of wonderful patterns available in the inserter, which will require&nbsp;<a rel=\"noreferrer noopener\" href=\"https://github.com/WordPress/gutenberg/issues/31153\" target=\"_blank\">iterating on the pattern insertion experience</a>. </p>\n\n\n\n<p>For more updates on the Pattern Directory, stay tuned for&nbsp;<a rel=\"noreferrer noopener\" href=\"https://make.wordpress.org/meta/2021/04/28/block-pattern-directory-update/\" target=\"_blank\">Block Pattern Directory updates</a>&nbsp;and check the most recent&nbsp;<a rel=\"noreferrer noopener\" href=\"https://make.wordpress.org/design/tag/patterns-directory/\" target=\"_blank\">design iterations for the Pattern Directory</a>.&#8221;. </p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<h2>Plugins for the Block Editor</h2>\n\n\n\n<p><a href=\"https://wordpress.org/plugins/feature-box/\"><strong>Featured Box Plugin</strong></a> with this plugin &#8220;you can highlight a image with your key features&#8221; wrote <strong>Sumaiya Siddika</strong> on WordPress.org. <a href=\"https://wptavern.com/building-featured-boxes-with-the-wordpress-block-editor?utm_source=dlvr.it&utm_medium=twitter&utm_campaign=building-featured-boxes-with-the-wordpress-block-editor\">Justin Tadlock took it for a spin.</a></p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<p><strong><a href=\"https://wordpress.org/plugins/jetformbuilder/\">JetFormBuilder — Form Builder plugin for Gutenberg</a></strong> from the plugins stable at CrocoBlock. The developers <a href=\"https://profiles.wordpress.org/mjhead/\">Andrey Shevchenko</a> and <a href=\"https://profiles.wordpress.org/hugreed/\">Oleksandr Ivanenko</a> also added an extensive Post action hook system that allows you to daisy chain actions and integrated with 3rd party systems. I haven&#8217;t tested it yet, but it looks promising. Crocoblock has been building plugins and tools for Elementor and has now started supporing Gutenberg with their products as well. </p>\n\n\n\n<p>Another new plugin is the <a href=\"https://crocoblock.com/plugins/jetengine-gutenberg/\"><strong>JetEngine for Gutenberg</strong></a>  a dynamic content plugin that lets you build a complex websites fast and cost-effectively.</p>\n\n\n\n<h2>Themes for Full-Site Editing</h2>\n\n\n\n<p>A few people ask about Themes that are already working with the Full-Site Editing system and Site Editor. So I put a list together of those I know about. Now before you use them, you need to be aware that they are all built while Full-Site Editing is still under active development, hasn&#8217;t been released yet and ergo many features are still experimental. Do not use in production or live site. </p>\n\n\n\n<ul><li><a href=\"https://wordpress.org/themes/blockbase/\">Block Base</a> by Automattic</li><li><a href=\"https://wordpress.org/themes/naledi/\">Naledi </a>by Anariel Design </li><li><a href=\"https://wordpress.org/themes/tt1-blocks/\">TT1 Blocks</a> by WordPress contributors, the FSE sibling of the Twenty-Twenty-One Theme</li><li><a href=\"https://wordpress.org/themes/block-based-bosco/\">Block-Based Bosco</a> by Fränk Klein</li><li><a href=\"https://wordpress.org/themes/armando/\">Armando</a> by Carolyn Newmark</li><li><a href=\"https://wordpress.org/themes/q/\">Q </a>by Ari Stathopoulos</li><li><a href=\"https://wordpress.org/themes/hansen/\">Hansen</a> by Uxl Themes</li></ul>\n\n\n\n<p>If you find any missing, let me know.</p>\n\n\n\n<h2>Gutenberg related Business Updates</h2>\n\n\n\n<p>This week&#8217;s big WordPress business news is the aquisition of <strong><a href=\"https://twitter.com/elliotcondon\">Eliots Condon</a></strong>&#8216;s plugin <strong><a href=\"https://www.advancedcustomfields.com/\">Advanced Custom Fields</a></strong> (ACF)  by Delicious Brains. With over more then 1 million active installs ACF is one of the widest used plugins. Thousands for developers depened on it in the <a href=\"https://www.advancedcustomfields.com/blog/10-years-of-acf-a-truly-wonderful-time/\">last ten years</a> to build complex WordPress sites. </p>\n\n\n\n<blockquote class=\"wp-block-quote\"><p>Stepping away from ACF has not been an easy decision to make. The reasoning behind it comes from a place of humility. As the number of installs have grown from thousands to millions, the needs of the product have outgrown my ability to develop solutions. The last thing I want to do to this amazing community is unintentionally hold back the project, so something needed to change.</p><cite><a href=\"https://www.advancedcustomfields.com/blog/10-years-of-acf-a-truly-wonderful-time/\">Elliot Condon, ACF </a></cite></blockquote>\n\n\n\n<p>Early on into the development of the block editor, Candon was also developing a<strong> <a href=\"https://wptavern.com/block-building-without-javascript-testing-acf-block-lab-and-lazy-blocks\">php way to build blocks</a></strong> and integrated it into Advanced Custom Fields Pro starting with the version 5.8. This effort certainly helped developers even more. Now they could use their existing tools and offer their users Gutenberg compatible sites withouth learning ES6 JavaScript or ReactJS. </p>\n\n\n\n<p><strong><a href=\"https://deliciousbrains.com/\">Delicious Brains</a></strong> also caters to WordPress Developers with products like  <a href=\"https://spinupwp.com/\">SpinupWP</a> (💕), WP Migrate DB and more. Their team seems to be the right fit to pick up the torch and put ACF on an even stronger path for future growth. </p>\n\n\n\n<p>You can learn more about the aquisition via </p>\n\n\n\n<ul><li><a href=\"https://wptavern.com/delicious-brains-acquires-advanced-custom-fields-plugin\">WPTavern (Sarah Gooding)</a>, </li><li><a href=\"https://poststatus.com/excerpt/12/\">Post Status Excerpt</a> (Cory Miller &amp; David Bisset) , </li><li><a href=\"https://deliciousbrains.com/epic-wordpress-announcement/\">A WordPress Announcement of Epic&nbsp;Proportions</a> (Delicious Brain) </li><li><a href=\"https://www.advancedcustomfields.com/blog/10-years-of-acf-a-truly-wonderful-time/\">10 Years of ACF – A truly wonderful time </a></li></ul>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n\n<div class=\"wp-block-media-text alignwide is-stacked-on-mobile is-vertically-aligned-center is-image-fill has-background\"><a href=\"https://us02web.zoom.us/webinar/register/8816229019893/WN_gyOVb1h4S4iO_UZi1GMQaA\"><img /></a><div class=\"wp-block-media-text__content\">\n<p class=\"has-normal-font-size\"><strong><a href=\"https://us02web.zoom.us/webinar/register/8816229019893/WN_gyOVb1h4S4iO_UZi1GMQaA\">Join us for our next Live Q &amp; A</a> </strong><br />on June 24, 2021 at 11am EDT / 15:00 UTC</p>\n\n\n\n<p><strong>Theme.json for Theme Authors or building themes for full-site editing in WordPress.</strong><br /><strong>Host</strong>: Birgit Pauli-Haack<br /><strong>Panel:</strong>&nbsp;Daily Olson, Tammie Lister and Jeff Ong           <span class=\"has-inline-color\"><strong><a href=\"https://us02web.zoom.us/webinar/register/8816229019893/WN_gyOVb1h4S4iO_UZi1GMQaA\">Register Now</a></strong></span></p>\n</div></div>\n\n\n\n\n<h2 id=\"events\">Upcoming WordPress Events</h2>\n\n\n\n<p><strong>June 6, 2021</strong> <strong>7:00 pm EDT / 23:00 UTC</strong><br /><strong><a href=\"https://www.meetup.com/Philadelphia-WordPress-Meetup-Group/events/278507419/\">WordPress Meetup Philadelphia</a></strong><br />Full Site Editing Review and Test-a-thon</p>\n\n\n\n<p><strong>June 7 &#8211; 9th, 2021</strong><br /><strong><a href=\"https://europe.wordcamp.org/2021/\">WordCamp Europe</a></strong><br />A virtual event and contributor day. <a href=\"https://europe.wordcamp.org/2021/call-for-sponsors/\">Call for sponsors is open.</a></p>\n\n\n\n<p><strong>🎉</strong>  Gutenberg Times is a media partner of WordCamp Europe 2021 </p>\n\n\n\n<p><strong>June 10th, 2021</strong><br /><strong><a href=\"https://www.meetup.com/SF-WordPress-Users/events/278491308\">WordPress &#8220;Mega Meetup&#8221;: Plugins That Keep Websites Running</a></strong></p>\n\n\n\n<p><strong>June 20 &#8211; 26, 2021</strong><br /><strong><a href=\"https://japan.wordcamp.org/2021/\">WordCamp Japan</a></strong><br /><em>The schedule has been posted. Most sessions will be in Japanese, with exceptions, I think&#8230; </em></p>\n\n\n\n<p><strong>June 24, 2021 </strong><br /><strong><a href=\"https://attend.wpengine.com/summit-us-2021/\">WPEngine Summit 2021</a></strong><br /><em>The digital breakthrough conference</em> <a href=\"https://events.wpengine.com/event/fd217870-fc78-46d2-8c5e-96c85e6e371c/websitePage:645d57e4-75eb-4769-b2c0-f201a0bfc6ce?environment=P2&tm=nSwmA1-ZyLXwe2wM80Vzve3wDjKBWeqKrHbJFivPV4o&locale=en-US\">just released their schedule</a>. Personally, I am very much looking forward to the Keynote talk with <strong>Reshma Saujani</strong>, founder of Girls Who Code and Marchall Plan for Moms at 12:55 EDT / 16:55 UTC.  I also hope to see talks with Rob Stinston, Carrie Dils and Chris Wiegman. There are also deep dive talks listed into Headless WordPress. Enterprise WordPress is definitely heading down that route. </p>\n\n\n\n<p><strong>June 24 &#8211; 26, 2021</strong><br /><strong><a href=\"https://cochabamba.wordcamp.org/2021/\">WordCamp Cochabama</a></strong> (Colombia) </p>\n\n\n\n<p><strong>July 17 + 18th, 2021</strong><br /><strong><a href=\"https://santaclarita.wordcamp.org/2021/\">WordCamp Santa Clarita</a></strong><br />Calls for speakers ends TODAY! </p>\n\n\n\n<p><strong>July 23, 2021</strong><br /><a href=\"https://www.wordfest.live/\"><strong>WordFest Live </strong></a>&#8211; <em>The&nbsp;</em>festival of WordPress</p>\n\n\n\n<p>A<strong>ugust 6 + 7, 2021</strong><br /><a href=\"https://nicaragua.wordcamp.org/2021/\"><strong>WordCamp Nicaragua</strong></a></p>\n\n\n\n<p><strong>September 21 + 22, 2021</strong><br /><a href=\"https://2021.wpcampus.org/\"><strong>WPCampus 2021 Online</strong></a><br />&#8220;A free online conference for web accessibility and WordPress in higher education.&#8221;</p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<p>On the<a href=\"https://wpcalendar.io/online/\"> <strong>Calendar for WordPress Online Events</strong> </a>you can browse a list of the upcoming WordPress Meetups, around the world, including WooCommerce, Elementor, Divi Builder and Beaver Builder meetups. </p>\n\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<p class=\"has-text-align-center\"><strong>Don&#8217;t want to miss the next Weekend Edition? </strong></p>\n\n\n\n<form class=\"wp-block-newsletterglue-form ngl-form ngl-portrait\" action=\"https://gutenbergtimes.com/feed/\" method=\"post\"><div class=\"ngl-form-container\"><div class=\"ngl-form-field\"><label class=\"ngl-form-label\" for=\"ngl_email\">Type in your Email address to subscribe.</label><div class=\"ngl-form-input\"><input type=\"email\" class=\"ngl-form-input-text\" name=\"ngl_email\" id=\"ngl_email\" /></div></div><button class=\"ngl-form-button\">Subscribe</button><p class=\"ngl-form-text\">We hate spam, too and won&#8217;t give your email address to anyone except Mailchimp to send out our Weekend Edition</p></div><div class=\"ngl-message-overlay\"><div class=\"ngl-message-svg-wrap\"></div><div class=\"ngl-message-overlay-text\">Thanks for subscribing.</div></div><input type=\"hidden\" name=\"ngl_list_id\" id=\"ngl_list_id\" value=\"26f81bd8ae\" /><input type=\"hidden\" name=\"ngl_double_optin\" id=\"ngl_double_optin\" value=\"yes\" /></form>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n\n<p>Featured Image: Photo by&nbsp;<a href=\"https://unsplash.com/@xavi_cabrera?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText\">Xavi Cabrera</a>&nbsp;on&nbsp;<a href=\"https://unsplash.com/s/photos/lego?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText\">Unsplash</a></p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sat, 05 Jun 2021 19:32:17 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"Birgit Pauli-Haack\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:5;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:51:\"Gutenberg Times: WordCamp Europe 2021 starts Monday\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://gutenbergtimes.com/?p=17964\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:62:\"https://gutenbergtimes.com/wordcamp-europe-2021-starts-monday/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:6939:\"<p>WordCamp Europe 2021 will be one of the largest virtual WordCamps again and the schedule has some great talks for every WordPress users, developers, site builders, theme designers, DIY site owners and content creators. </p>\n\n\n\n<p>We looked through the schedule and spotted very forward-looking Gutenberg related talks, workshops and discussions. Before you study the list, I would recommend the site <a href=\"https://www.timeanddate.com/worldclock/converter.html\">Time Zone Converter</a> to help you convert the listed times from <strong>C</strong>entral <strong>E</strong>urope <strong>S</strong>ummer <strong>T</strong>ime (CEST) to your local time. Once in a while I get confused by time zones, and that&#8217;s my favorite site to set me straight. </p>\n\n\n\n<div class=\"wp-block-image is-style-rounded\"><img /></div>\n\n\n\n<p class=\"has-large-font-size\"><strong>Fabian Kägy, developer at 10up:  </strong><br /><strong><a href=\"https://europe.wordcamp.org/2021/session/building-great-experiences-in-the-new-editor/\">Building great experiences in the new editor</a></strong></p>\n\n\n\n<p><strong>Description: </strong>Starting out building blocks or experiences for the WordPress block editor can be a bit daunting. Where do I start? Custom blocks, block patterns or just styling core blocks. In this talk, Kägy will walk through the different options and share the benefits and downsides of each while talking about overall good practices for building great editorial experiences.</p>\n\n\n\n<p>As a sidenote: Almost exactly a year ago,  <a href=\"https://gutenbergtimes.com/tooling-using-create-block-scaffolding-and-3rd-party-templates/\">Fabian Kägy was a presenter at a Gutenberg Times Live Q &amp; A</a> together with Grzegorz Ziolkowski, and demo&#8217;d how you can use and extend the official WordPress create-block scaffolding tool. </p>\n\n\n\n<p><strong>Monday, June 7th, 2021, at 10am EDT / 14:00 UTC / 16:00 CEST</strong></p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<h2>Full-Site Editing Panel Discussion</h2>\n\n\n\n<p>The names of the panelist are still a secret, and I will update the post when we know more. </p>\n\n\n\n<p>If you&#8217;d like to get a jump start here are few resources: </p>\n\n\n\n<ul><li><a href=\"https://gutenbergtimes.com/video-full-site-editing-overview-with-anne-mccarthy/\">Video: Full-Site Editing Overview with Anne McCarthy</a></li><li><a href=\"https://gutenbergtimes.com/full-site-editing/\">Full-Site-Editing – the Ultimate Resource List</a></li><li><a href=\"https://gutenbergtimes.com/so-you-want-to-talk-about-full-site-editing/\">So, You want to talk about Full-site Editing?</a></li></ul>\n\n\n\n<p><strong>Monday, June 7, 2021 at 12:34 pm EDT / 16:34 UTC / CEST: 18:34</strong></p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<p class=\"has-large-font-size\">Workshop: <a href=\"https://europe.wordcamp.org/2021/session/a-walkthrough-of-full-site-editing-fse-from-one-of-the-contributors-to-the-experiment/\">A walkthrough of Full Site Editing</a> with Herb Miller, Web developer in UK,</p>\n\n\n\n<div class=\"wp-block-image is-style-rounded\"><img /></div>\n\n\n\n<p><strong>Description:</strong> Herb Miller will give a short tour of Full Site Editing (FSE) in this workshop from his perspective as a contributor to the outreach experiment for this major development in WordPress.</p>\n\n\n\n<p>He has created a&nbsp;<a href=\"https://sneak-peek.me/\">learning resource</a>&nbsp;which attendees can use to follow on during the workshop.</p>\n\n\n\n<p>Herb will give attendees an overview of:</p>\n\n\n\n<ul><li>how to get started</li><li>the components of the Site Editor</li><li>example templates and template parts</li><li>some blocks used to create FSE themes</li><li>example themes</li><li>a very few code samples</li><li>some answers to FAQs</li><li>how to become involved</li><li>and many links to other resources</li></ul>\n\n\n\n<p><strong>Tuesday, June 8th, 2021 11am EDT / 15:00 UTC / 17:00 CEST</strong></p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<p class=\"has-large-font-size\">Lee Shadle, web developer  <a href=\"https://europe.wordcamp.org/2021/session/blazing-fast-block-development/\">Blazing fast block development</a> </p>\n\n\n\n<div class=\"wp-block-image is-style-rounded\"><img /></div>\n\n\n\n<p>Lee Shadle wrote in his description: <em>&#8220;I’ve been OBSESSED w/ building blocks since before Gutenberg was released. I’ve built a BUNCH of custom block plugins over the years. In this workshop I’m going to share the framework I’ve been using for quickly building custom block plugins for WordPress.&#8221;</em>. Shadle recently also held a talk at WordSesh and demo&#8217;d his create-block-plugin scaffolding tool and it was inspiring. This is definitely not a talk to miss. </p>\n\n\n\n<p><strong>Tuesday June 8, 2021 12:00 EDT / 16:00 UTC / 18:oo CEST</strong></p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<p class=\"has-large-font-size\">The Future of Themes in WordPress</p>\n\n\n\n<p>The future of themes will be a topic of this panel discussion. Stay tuned or follow WordCamp Europe on Social Media (<a href=\"https://twitter.com/WCEurope\">Twitter</a>, <a href=\"https://www.facebook.com/WCEurope/\">Facebook</a>, <a href=\"https://www.instagram.com/wceurope/\">Instagram</a>).</p>\n\n\n\n<div class=\"wp-block-media-text alignwide is-stacked-on-mobile is-vertically-aligned-center is-image-fill has-background\"><a href=\"https://us02web.zoom.us/webinar/register/8816229019893/WN_gyOVb1h4S4iO_UZi1GMQaA\"><img /></a><div class=\"wp-block-media-text__content\">\n<p class=\"has-normal-font-size\"><strong><a href=\"https://us02web.zoom.us/webinar/register/8816229019893/WN_gyOVb1h4S4iO_UZi1GMQaA\">Join us for our next Live Q &amp; A</a> </strong><br />on June 24, 2021 at 11am EDT / 15:00 UTC</p>\n\n\n\n<p><strong>Theme.json for Theme Authors or building themes for full-site editing in WordPress.</strong><br /><strong>Host</strong>: Birgit Pauli-Haack<br /><strong>Panel:</strong>&nbsp;Daily Olson, Tammie Lister and Jeff Ong           <span class=\"has-inline-color\"><strong><a href=\"https://us02web.zoom.us/webinar/register/8816229019893/WN_gyOVb1h4S4iO_UZi1GMQaA\">Register Now</a></strong></span></p>\n</div></div>\n\n\n\n<p></p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<div class=\"wp-block-image is-style-rounded\"><img /></div>\n\n\n\n<p class=\"has-large-font-size\">Conversation with Matt Mullenweg</p>\n\n\n\n<p>Matt Mullenweg is the co-founder of WordPress and the CEO of Automattic. The conversation should be the highlight of the WordCamp Europe</p>\n\n\n\n<p><strong>Wednesday, June 9th, 2021 &#8211; 11:42 EDT / 15:42 UTC /  17:42 CEST</strong></p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<p>This edition of the WordCamp Europe also offers interesting Sponsor talks. Look for them <a href=\"https://europe.wordcamp.org/2021/schedule/\">on the schedule</a>, too.  </p>\n\n\n\n<p class=\"has-text-align-center has-dark-gray-color has-text-color has-normal-font-size\"></p>\n\n\n\n<img />\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sat, 05 Jun 2021 04:00:19 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"Birgit Pauli-Haack\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:6;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:62:\"Gutenberg Times: So, You want to talk about Full-site Editing?\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://gutenbergtimes.com/?p=17970\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:71:\"https://gutenbergtimes.com/so-you-want-to-talk-about-full-site-editing/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:16852:\"<div class=\"wp-block-image is-style-rounded\"><img src=\"https://ca.slack-edge.com/T024MFP4J-U02S2V0TP-d1c0c67781e2-512\" alt=\"Anne McCarthy\" width=\"282\" height=\"282\" /><a href=\"https://nomad.blog\">Anne McCarthy writes at nomad.blog</a></div>\n\n\n\n<p>As we’re nearing 5.8, there’s an increasing demand for people to speak about Full Site Editing and this post should help act as a resource guide to enable more people to do so. As always, I would love contributions from the wider community to build this out into an even more comprehensive resource! While this post covers a lot of content, see it as a go to place to mix and match as you’d like for your own presentation rather than something you need to know every detail of. For example, if you’re presenting to theme authors, you can use this to get a sense at a glance of what might be relevant from what to demo, what resources to share, what GitHub issues to highlight, and more.</p>\n\n\n\n<div class=\"wp-block-sortabrilliant-guidepost\"><ul><li><a href=\"https://gutenbergtimes.com/feed/#0-resources\">Resources</a></li><li><a href=\"https://gutenbergtimes.com/feed/#1-key-points-to-cover-around-5-8\">Key points to cover around 5.8:</a></li><li><a href=\"https://gutenbergtimes.com/feed/#2-demo-ideas\">Demo ideas</a></li><li><a href=\"https://gutenbergtimes.com/feed/#3-helpful-git-hub-issues\">Helpful GitHub issues</a></li><li><a href=\"https://gutenbergtimes.com/feed/#4-helpful-posts\">Helpful Posts</a></li><li><a href=\"https://gutenbergtimes.com/feed/#5-conversation-starters\">Conversation Starters</a></li><li><a href=\"https://gutenbergtimes.com/feed/#6-fa-qs\">FAQs</a></li></ul></div>\n\n\n\n<div class=\"wp-block-media-text alignwide is-stacked-on-mobile is-vertically-aligned-center is-image-fill has-background\"><a href=\"https://us02web.zoom.us/webinar/register/8816229019893/WN_gyOVb1h4S4iO_UZi1GMQaA\"><img /></a><div class=\"wp-block-media-text__content\">\n<p class=\"has-normal-font-size\"><strong><a href=\"https://us02web.zoom.us/webinar/register/8816229019893/WN_gyOVb1h4S4iO_UZi1GMQaA\">Join us for our next Live Q &amp; A</a> </strong><br />on June 24, 2021 at 11am EDT / 15:00 UTC</p>\n\n\n\n<p><strong>Theme.json for Theme Authors or building themes for full-site editing in WordPress.</strong><br /><strong>Host</strong>: Birgit Pauli-Haack<br /><strong>Panel:</strong>&nbsp;Daily Olson, Tammie Lister and Jeff Ong           <span class=\"has-inline-color\"><strong><a href=\"https://us02web.zoom.us/webinar/register/8816229019893/WN_gyOVb1h4S4iO_UZi1GMQaA\">Register Now</a></strong></span></p>\n</div></div>\n\n\n\n<h2 id=\"0-resources\">Resources</h2>\n\n\n\n<ul><li>Feel free to re-use or get inspiration from&nbsp;this&nbsp;<a href=\"https://href.li/?https://www.youtube.com/watch?v=aPPzATDkHzg\">FSE Overview</a>.</li><li>Pull from this&nbsp;<a href=\"https://href.li/?https://docs.google.com/document/d/1RGNG3HlB1HXPNXaFi50I56MIr1XHb9MiV3nc--MuBvs/edit\">working transcript for the above talks</a>.</li></ul>\n\n\n\n<h2 id=\"1-key-points-to-cover-around-5-8\">Key points to cover around 5.8:</h2>\n\n\n\n<ul><li>FSE&nbsp;is a collection of features and not a monolith.</li><li>Because FSE is a collection of features, Core can be flexible in shipping what is both stable and adds the most value.</li><li>5.8 is focused mainly on bringing tools to extenders with limited changes to the user experience. This includes theme.json, new theme blocks, design tools, and template editing mode.</li></ul>\n\n\n\n<h2 id=\"2-demo-ideas\">Demo ideas</h2>\n\n\n\n<p>Depending on who you are and who the audience, the following are your best bets for demo content:</p>\n\n\n\n<ul><li>Block Theme building.&nbsp;<a href=\"https://profiles.wordpress.org/mkaz/\">@mkaz</a>&nbsp;has some&nbsp;<a href=\"https://href.li/?https://www.youtube.com/c/MarcusKazmierczak/videos\">great videos uploaded to YouTube</a>&nbsp;that you can check out and Carolina Nymark&nbsp;<a href=\"https://fullsiteediting.com/\">has this lovely site</a>.</li><li>Template Editing Mode.&nbsp;<a href=\"https://www.youtube.com/watch?v=Z571V_jlD-o&feature=youtu.be\">Here’s an overview video from yours</a>&nbsp;truly&nbsp;but keep in mind&nbsp;<a href=\"https://href.li/?https://github.com/WordPress/gutenberg/pull/31461\">this in progress PR</a>&nbsp;that, if merged, would change the experience of editing a post/page inside template editing mode.</li><li>Explore blocks with a focus on the Navigation &amp;&nbsp;Query&nbsp;Blocks. Note that the Navigation Block is not planned for 5.8. You can see a list of blocks&nbsp;<a href=\"https://github.com/WordPress/gutenberg/blob/trunk/packages/block-library/src/index.js#L172-L192\">planned for inclusion here</a>.</li><li>Build a custom 404 page. You can&nbsp;<a href=\"https://href.li/?https://make.wordpress.org/test/2021/03/09/fse-program-testing-call-3-create-a-fun-custom-404-page/\">follow these instructions</a>&nbsp;to set up your demo.</li></ul>\n\n\n\n<h2 id=\"3-helpful-git-hub-issues\">Helpful GitHub issues</h2>\n\n\n\n<ul><li><a href=\"https://href.li/?https://github.com/WordPress/gutenberg/issues/24551\">Site Editing Milestones</a>: to get a high level overview of how this work has been approached and where to follow along.</li><li>On plans for restricting access:&nbsp;<a href=\"https://href.li/?https://github.com/WordPress/gutenberg/issues/26573\">mapping features/functionality in order to update the UI</a>&nbsp;+&nbsp;<a href=\"https://href.li/?https://github.com/WordPress/gutenberg/issues/27597\">proposal for a robust permissions system with FSE</a>.</li><li>On types of pathways for classic themes:&nbsp;<a href=\"https://href.li/?https://github.com/WordPress/gutenberg/issues/28744\">Enabling FSE blocks in Classic Themes</a>,&nbsp;<a href=\"https://href.li/?https://github.com/WordPress/theme-experiments/pull/209\">Experiment to add Customizer Color Controls to TT1</a>,&nbsp;<a href=\"https://href.li/?https://github.com/WordPress/theme-experiments/pull/173\">Experiment using theme.json and Customizer</a>,&nbsp;<a href=\"https://href.li/?https://github.com/WordPress/gutenberg/pull/30438\">Allow creating custom block templates in Classic themes</a>.</li><li>On the placement of the site editor experience:&nbsp;<a href=\"https://href.li/?https://github.com/WordPress/gutenberg/issues/29630#issuecomment-811617222\">Design and discussion exploring how best to finalize</a>&nbsp;the placement of FSE related features in wp-admin. This is a long term item to keep in mind as the Site Editor is not shipping in 5.8.</li><li><a href=\"https://github.com/WordPress/gutenberg/issues/32365\">Upcoming Dev Notes for 5.8</a>&nbsp;to get an early peak at what’s new.</li></ul>\n\n\n\n<h2 id=\"4-helpful-posts\">Helpful Posts</h2>\n\n\n\n<ul><li><a href=\"https://href.li/?https://make.wordpress.org/core/2020/05/20/ways-to-keep-up-with-full-site-editing-fse/\">Ways to keep up with FSE</a>&nbsp;so people can pick and choose their communication adventure.&nbsp;</li><li><a href=\"https://href.li/?https://make.wordpress.org/core/2021/02/01/full-site-editing-and-themes-where-things-are/\">Full Site Editing and Themes: where things are</a>&nbsp;from February 2021.</li><li><a href=\"https://href.li/?https://make.wordpress.org/test/handbook/full-site-editing-outreach-experiment/\">Full Site Editing Outreach Program</a>&nbsp;for those interested in helping to test and give feedback.&nbsp;</li><li><a href=\"https://href.li/?https://make.wordpress.org/test/tag/fse-answers/\">A recent series of questions and answers</a>&nbsp;about Full Site Editing from 2021.</li><li><a href=\"https://href.li/?https://www.youtube.com/watch?v=JHxsDSAImn0\">A great overview of FSE features</a>&nbsp;for non technical people.</li><li><a href=\"https://make.wordpress.org/core/2020/12/10/status-check-site-editing-and-customization/\">Status check on Site Editing and Customization</a>&nbsp;from December 2020 for a more historical perspective.</li><li><a href=\"https://href.li/?https://make.wordpress.org/core/2021/04/15/full-site-editing-go-no-go-april-14-2021/\">Go/No Go Recap post</a>: to show how decisions were made around this release.</li><li><a href=\"https://href.li/?https://make.wordpress.org/core/2021/04/20/full-site-editing-go-no-go-next-steps/\">Go/No Go Next Steps post</a>: to give greater context around what needs to happen for each feature to be properly considered for inclusion in 5.8.</li><li><a href=\"https://href.li/?https://make.wordpress.org/test/handbook/full-site-editing-outreach-experiment/\">Full Site Editing Outreach Program handbook page:</a>&nbsp;to highlight how people can get involved in giving feedback and improving FSE.</li><li><a href=\"https://href.li/?https://make.wordpress.org/test/handbook/full-site-editing-outreach-experiment/how-to-test-fse/\">How to Test FSE:</a>&nbsp;to give practical guidance around how to explore these features.</li><li><a href=\"https://href.li/?https://developer.wordpress.org/block-editor/how-to-guides/themes/block-theme-overview/\">Block Theme Documentation</a>: to help people get started with block theme creation.</li><li><a href=\"https://href.li/?https://developer.wordpress.org/block-editor/handbook/full-site-editing/\">Full Site Editing Documentation</a>: to give a high level overview of FSE and an entry point to learn more.</li><li><a href=\"https://href.li/?https://github.com/WordPress/theme-experiments\">Theme Experiments Repo</a>: to help people explore current approaches to block themes and various in progress experiments.</li><li><a href=\"https://href.li/?https://make.wordpress.org/themes/tags/gutenberg-themes-roundup/\">Gutenberg + Themes Roundups</a>: to help people stay up to date on happenings in&nbsp;Gutenberg&nbsp;that impact themes.</li><li><a href=\"https://href.li/?https://make.wordpress.org/themes/tags/meeting/\">Bi-monthly Block theme meeting</a>: to give people a chance to discuss the latest and greatest with block themes.</li><li><a href=\"https://make.wordpress.org/test/tag/fse-hallway-hangout/\">FSE Hallway Hangouts</a>: to hear from those working on and giving feedback on these features.</li></ul>\n\n\n\n<h2 id=\"5-conversation-starters\">Conversation Starters</h2>\n\n\n\n<ul><li>What would you like to see done as part of the&nbsp;<a href=\"https://href.li/?https://github.com/WordPress/gutenberg/issues/24551\">gradual adoption milestone</a>?&nbsp;</li><li>What would make you more inclined to use Full Site Editing? On the flip side, what would make you less inclined?&nbsp;</li><li>Are there any key people or resources like podcasts, courses, documentation, etc that have helped you explore Full Site Editing?&nbsp;</li><li>How do you think Full Site Editing will change the WordPress ecosystem? What excites you there? What makes you nervous?&nbsp;</li><li>What do you think is most helpful to communicate about Full Site Editing right now to put more people at ease and build excitement?&nbsp;</li><li>What are you still confused about when it comes to Full Site Editing?</li></ul>\n\n\n\n<h2 id=\"6-fa-qs\">FAQs</h2>\n\n\n\n<p>These are the top questions you can most likely expect to get asked with high level answers to get you started in the right direction. For a more comprehensive list of questions and answers,&nbsp;<a href=\"https://href.li/?https://make.wordpress.org/test/tag/fse-answers/\">check out the FSE Outreach Program’s roundups</a>.</p>\n\n\n\n<div class=\"schema-faq wp-block-yoast-faq-block\"><div class=\"schema-faq-section\" id=\"faq-question-1622843349108\"><strong class=\"schema-faq-question\">What is Full Site Editing and what value will it bring?</strong> <p class=\"schema-faq-answer\">Full Site Editing is a collection of features that bring the familiar experience and extendability of blocks to all parts of your site rather than just post and pages. In terms of value, it depends on who you are:<br />User: empowerment to customize what you want to your liking without needing to dive into code.<br />Themer/developer: focus less on coding thanks to various design tools and more on creating a compelling experience with your theme.<br />Agency: greater control and consistency over what you offer clients including things like setting custom branding colors or locking down various aspects of the site such as typography settings.<br />When you see or feel this value depends on who you are, how early you adopt features, and when stable features land in Core. Thanks to FSE being a collection of features, some independent and some interdependent, there’s wonderful room to ship what’s stable.</p> </div> <div class=\"schema-faq-section\" id=\"faq-question-1622843371957\"><strong class=\"schema-faq-question\">What is going to happen to themes and what kinds of pathways are being created?</strong> <p class=\"schema-faq-answer\">In the long run, it should make theme development much easier and simpler with design tools ready to tap into allowing theme authors to focus less on coding and functions and more on design expression and aesthetics. Because Full Site Editing requires a block based theme, this makes themes extremely important to get right! As a result, lots of pathways are being created including the ability to use theme blocks in a classic theme, exploring how to use the customizer and site editor as part of a “universal theme”, unlocking the ability to create a new block template in a classic theme, allowing classic themes to adopt the block widget editor, and more.<br />Key: Themes are a key part of the FSE experience, lots of work is being done to allow for a breadth of options going forward, and we need feedback from theme authors to make the transition easier. </p> </div> <div class=\"schema-faq-section\" id=\"faq-question-1622843448534\"><strong class=\"schema-faq-question\">What about page builders/site builders?</strong> <p class=\"schema-faq-answer\">FSE is being built in a way that site builders, if they choose to, can build on top of what’s being created. Overall though, FSE is being built partially so people don’t get locked into one site builder over another. While the goals shared between FSE and site builders are similar in terms of empowering users and give better tools to customize a site, the main difference is that we are developing tools that work for users, themers, and hopefully also page builders by expanding how WordPress uses blocks as a whole. Since Core has to strike a nice balance, it’s expected that future plugins will play a role here in exposing more/less depending on user needs.</p> </div> <div class=\"schema-faq-section\" id=\"faq-question-1622843480900\"><strong class=\"schema-faq-question\">How will restricting access to these features work?</strong> <p class=\"schema-faq-answer\">This will depend on who is asking the question (a user, a theme author, a developer, etc) but some of the GitHub issues referenced above should help. For users, I’d focus on the fact that they would either need to seek out a block theme to use or their current theme would need to ship specific updates. For a themer/developer, I’d share that there will be various options to opt in and out of this work (<a href=\"https://href.li/?https://github.com/WordPress/gutenberg/issues/27814#issuecomment-823921386\">for example with creating block templates</a>). Upcoming <a href=\"https://github.com/WordPress/gutenberg/issues/32365\">5.8 dev notes</a> should address this for any new features.</p> </div> <div class=\"schema-faq-section\" id=\"faq-question-1622843499287\"><strong class=\"schema-faq-question\">Will upgrading to 5.8 cause FSE to take over my site like the Core Editor did in 5.0?</strong> <p class=\"schema-faq-answer\">No. 5.8 is focused on giving tools to extenders first and foremost before more user facing changes are launched going forward and integrated into themes. In terms of user facing features, you can expect to see</p> </div> </div>\n\n\n\n<p><em><a href=\"https://nomad.blog/2021/06/02/so-you-want-to-talk-about-full-site-editing/\">Anne McCarthy published this post on her personal blog</a> and gave us permission to republish it here as well.</em></p>\n\n\n\n<div class=\"wp-block-media-text alignwide is-stacked-on-mobile is-vertically-aligned-center is-image-fill has-background\"><a href=\"https://us02web.zoom.us/webinar/register/8816229019893/WN_gyOVb1h4S4iO_UZi1GMQaA\"><img /></a><div class=\"wp-block-media-text__content\">\n<p class=\"has-normal-font-size\"><strong><a href=\"https://us02web.zoom.us/webinar/register/8816229019893/WN_gyOVb1h4S4iO_UZi1GMQaA\">Join us for our next Live Q &amp; A</a> </strong><br />on June 24, 2021 at 11am EDT / 15:00 UTC</p>\n\n\n\n<p><strong>Theme.json for Theme Authors or building themes for full-site editing in WordPress.</strong><br /><strong>Host</strong>: Birgit Pauli-Haack<br /><strong>Panel:</strong>&nbsp;Daily Olson, Tammie Lister and Jeff Ong           <span class=\"has-inline-color\"><strong><a href=\"https://us02web.zoom.us/webinar/register/8816229019893/WN_gyOVb1h4S4iO_UZi1GMQaA\">Register Now</a></strong></span></p>\n</div></div>\n\n\n\n<p></p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sat, 05 Jun 2021 00:50:22 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Anne McCarthy\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:7;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:89:\"WPTavern: Jetpack 9.8 Introduces WordPress Stories Block Alongside Forced Security Update\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=117820\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:223:\"https://wptavern.com/jetpack-9-8-introduces-wordpress-stories-block-alongside-forced-security-update?utm_source=rss&utm_medium=rss&utm_campaign=jetpack-9-8-introduces-wordpress-stories-block-alongside-forced-security-update\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:6610:\"<p><a href=\"https://jetpack.com/2021/06/01/jetpack-9-8-engage-your-audience-with-wordpress-stories/\">Jetpack 9.8</a> was released this week, introducing WordPress&nbsp;Stories as the headline feature. The Story block, which allows users to create interactive stories, was previously only available on mobile. It can now be used in the web editor. Stories went into <a href=\"https://wptavern.com/wordpress-for-android-previews-new-story-posts-feature-now-in-public-beta\">public beta on the Android app</a> in January 2021, and were officially <a href=\"https://wptavern.com/wordpress-com-and-jetpack-adds-story-block-for-mobile-apps\">released</a> on the mobile apps in March.</p>\n\n\n\n<p>Version 9.8 also included a security patch for all sites using the Carousel feature. The <a href=\"https://wpscan.com/vulnerability/08a8a51c-49d3-4bce-b7e0-e365af1d8f33\">vulnerability</a> allowed the comments of non-published pages/posts to be leaked. It was severe enough for the Jetpack team to work with WordPress.org to release 78 patched versions &ndash; every version of Jetpack since 2.0. Sites not using the Carousel feature were not vulnerable but could be in the future if it was enabled and left unpatched. </p>\n\n\n\n<p>In a rare move, WordPress.org pushed a forced update to all vulnerable versions, surprising those who have auto-updates disabled. Several Jetpack users posted in the support forums, asking why the plugin had <a href=\"https://wordpress.org/support/topic/jetpack-updated-without-permission/\">updated automatically without permission</a> and in some cases not to the newest version.</p>\n\n\n\n<div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"twitter-tweet\"><p lang=\"en\" dir=\"ltr\">So this update was a forced update on WordPress sites even with auto-updates disabled? <br /><br />We had this go live on a prod site at 2am last night that has auto-updates disabled for very specific reasons. <br /><br />Not cool Jetpack. <a href=\"https://t.co/55upBmyeHp\">https://t.co/55upBmyeHp</a></p>&mdash; Brad Williams (@williamsba) <a href=\"https://twitter.com/williamsba/status/1400498727991787521?ref_src=twsrc%5Etfw\">June 3, 2021</a></blockquote>\n</div>\n\n\n\n<p>Jetpack team member Jeremy Herve said the vulnerability was responsibly disclosed via Hackerone, allowing them to work on a patch for the issue. After it was ready to go, the Jetpack team reached out to the <a rel=\"noreferrer noopener\" target=\"_blank\" href=\"http://wordpress.org/\">WordPress.org</a>&nbsp;security team to inform them of a vulnerability impacting multiple versions of the plugin.</p>\n\n\n\n<p>&ldquo;We sent them the patch alongside all the info we had (a PoC for the vulnerability, what features had to be active, what versions of Jetpack were impacted),&rdquo; Herve said. &ldquo;They recommended we release point releases for older versions of Jetpack as well.</p>\n\n\n\n<p>&ldquo;We created those new releases, and when we were ready to release them, someone from the&nbsp;<a rel=\"noreferrer noopener\" target=\"_blank\" href=\"http://wordpress.org/\">WordPress.org</a>&nbsp;team made some changes on the&nbsp;<a rel=\"noreferrer noopener\" target=\"_blank\" href=\"http://wordpress.org/\">WordPress.org</a>&nbsp;side so folks running old, vulnerable versions of the plugin would get auto-updated, just like it works for Core versions of WordPress.&rdquo;</p>\n\n\n\n<p>Jetpack team member Brandon Kraft estimated the number of vulnerable sites at 18% of the plugin&rsquo;s active installs. He said that Jetpack was not part of the discussion about the pushing out a forced update.</p>\n\n\n\n<div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"twitter-tweet\"><p lang=\"en\" dir=\"ltr\">We weren\'t part of the discussion. Provided details and got the response, but I wouldn\'t expect a security convo to be public. But, yes. Single feature impacted. A few things need to be all true for it to matter on a site, which looked like qualified about 18% of sites IIRC.</p>&mdash; A Guy Called Kraft &#128567;&#128137; (@Kraft) <a href=\"https://twitter.com/Kraft/status/1400545471165304839?ref_src=twsrc%5Etfw\">June 3, 2021</a></blockquote>\n</div>\n\n\n\n<p>&ldquo;What probably adds to the confusion is that WordPress 5.5 added a UI for plugin (and theme) autoupdates,&rdquo; Herve said. &ldquo;That UI, while helping one manage plugin autoupdates on their site, is a bit different from Core&rsquo;s forced update process. Both of those update types can be deactivated by site owners, just like core&rsquo;s autoupdates can be deactivated, but I don&rsquo;t believe (and honestly wouldn&rsquo;t recommend) that many folks deactivate those updates.&rdquo;</p>\n\n\n\n<p>Brandon Kraft dug deeper into the topic and published a <a href=\"https://kraft.blog/2021/06/automatic-updates-in-wordpress/\">post</a> that explains the differences between auto-updates and forced updates. It includes how to lock down file modifications if you don&rsquo;t want to receive any forced updates in the future. Forced updates, however, are exceedingly rare, and Kraft counts only three for Jetpack since 2013.</p>\n\n\n\n<p>In this instance, the Jetpack team followed the <a href=\"https://developer.wordpress.org/plugins/wordpress-org/plugin-security/#automatic-plugin-security-updates\">official process for reporting a critical vulnerability</a> to the plugin and security teams who determine the impact for users based on a set criteria. Users who received an email notification about an automatic update from Jetpack, despite having the UI in the dashboard set to disable them, should be aware that these forced updates can come once in a blue moon for security purposes. </p>\n\n\n\n<p><a href=\"https://perezbox.com/\">Tony Perez</a>, founder of NOC and former CEO at Sucuri, <a href=\"https://noc.org/2021/06/03/automattics-jetpack-plugin-for-wordpress-abuses-user-defined-settings-calls-into-question-auto-updates/\">contends</a> that forcing a security update like this violates the intent users&rsquo; assign when using the auto-updates UI in WordPress. He highlighted the potential for abuse if the system were to become vulnerable to a bad actor.</p>\n\n\n\n<p>&ldquo;The platform is making an active decision that is arguably contrary to what the site administrator is intending when they explicitly say they don&rsquo;t want something done,&rdquo; Perez said. &ldquo;Put plainly, it&rsquo;s an abuse of trust that exists between the WordPress user and the Foundation that helps maintain the project.</p>\n\n\n\n<p>&ldquo;My position is not that it shouldn&rsquo;t exist. That&rsquo;s a much deeper ideological debate, but it is about respecting an administrators explicit intent.&rdquo;</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sat, 05 Jun 2021 00:04:46 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:8;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:94:\"WPTavern: Create Per-Post Social Media Images With the Social Image Generator WordPress Plugin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=117539\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:233:\"https://wptavern.com/create-per-post-social-media-images-with-the-social-image-generator-wordpress-plugin?utm_source=rss&utm_medium=rss&utm_campaign=create-per-post-social-media-images-with-the-social-image-generator-wordpress-plugin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:6689:\"<img />\n\n\n\n<p class=\"has-drop-cap\">It was a bit of a low-key announcement when Daniel Post introduced <a href=\"https://socialimagegenerator.com/\">Social Image Generator</a> to the world in February <a href=\"https://twitter.com/danielpost/status/1357680161546764293\">via tweet</a>. But, when you get <a href=\"https://css-tricks.com/auto-generated-social-media-images/\">repped by Chris Coyier</a> of CSS-Tricks and the co-founder of WordPress <a href=\"https://twitter.com/photomatt/status/1398044870489657345\">uses your plugin</a> (come on, Matt, set a default image), it means your product is on the right track.</p>\n\n\n\n<p>I am not easily impressed by every new plugin to fly across my metaphorical desk. I probably install at least a couple dozen every week. Sometimes, I do so because something looks handy on the surface, and I want to see if I can find some use for it. Other times, I think it might be worth sharing with Tavern readers. More often than not, I consider most of them cringeworthy. I have high standards.</p>\n\n\n\n<p>As I chatted with Post about this new plugin, I was excited enough to call Social Image Generator one of those <em>OMG-where-have-you-been?</em> types of plugins. You will not hear that from me often.</p>\n\n\n\n<p>Post quit his day job to venture out earlier this year, creating his one-man WordPress agency named <a href=\"https://posty.studio/\">Posty Studio</a>. Social Image Generator is its first product.</p>\n\n\n\n<p>&ldquo;I kept seeing tutorials on my Twitter feed on how to automatically generate images for your social media posts, but unfortunately, they all used a similar approach (Node.js) that just wasn&rsquo;t suitable for WordPress,&rdquo; said Post of the inspiration for the plugin. &ldquo;This got me thinking: would it be possible to make this for WordPress? I started playing around with image generation in PHP, and when I got my proof of concept working, I realized that this might actually be something I should pursue.&rdquo;</p>\n\n\n\n<p>In our chat over Slack, we actually saw the plugin in action. As he shared Coyier&rsquo;s article from CSS-Tricks, the chatting platform displayed the social image in real-time.</p>\n\n\n\n<img />Auto-generated image appearing via Slack.\n\n\n\n<p>Maybe it was fate. Maybe Post knew it would happen and thought it would be a good idea to show off his work as we talked about his project. Either way, it was enough to impress the writer who is unafraid to call your plugin a dumpster fire if he smells smoke.</p>\n\n\n\n<p>Post seems to be hitting all the right notes with this commercial plugin. It has a slew of features built into version 1.x, which we will get to shortly. It is dead simple to use. It is something nearly any website owner needs, assuming they want to share their content via social networks. And, with a <a href=\"https://socialimagegenerator.com/#pricing\">$39/year starting price</a>, it is not an overly expensive product for those on the fence about buying.</p>\n\n\n\n<h2>How the Plugin Works</h2>\n\n\n\n<p class=\"has-drop-cap\">After installing and activating Social Image Generator, users are taken to the plugin&rsquo;s settings screen. Other than a license key field and a button for clearing the image cache, most users will want to dive straight into the template editor.</p>\n\n\n\n<p>At the moment, the plugin includes 23 templates. From Twenty Seventeen to Twenty Twenty-One, each of the last four default WordPress themes also has a dedicated template. After selecting one, users can customize the colors for the logo, post title, and more &mdash; the amount of customization depends on the chosen template.</p>\n\n\n\n<img />Browsing the plugin&rsquo;s templates.\n\n\n\n<p>Aside from selecting colors, users can choose between various logo and text options. They can also upload a default image for posts without featured images.</p>\n\n\n\n<img />Editing a template from Social Image Generator.\n\n\n\n<p>When it comes time to publish, the plugin adds a meta box to the post sidebar. Users can further customize their social image and text on a per-post basis.</p>\n\n\n\n<img />Social image preview box on the post-editing screen.\n\n\n\n<p>Once published, the plugin creates an image that will appear when a post is shared on social media.</p>\n\n\n\n<p>On the whole, there is a ton that anyone can do with the built-in templates. There is also an API for developers to create their own. For a first outing, it is a robust offering. However, there is so much more that can be done to make the plugin more flexible.</p>\n\n\n\n<h2>Version 2.0 and Beyond</h2>\n\n\n\n<p class=\"has-drop-cap\">Thus far, Post said he has received tons of positive feedback along with feature requests. Primarily, users are asking for more customization options and the ability to create and use multiple templates. These are the focus areas for the next version. With a 1,718% increase in revenue in the past month, it seems he might have the initial financial backing to invest in them.</p>\n\n\n\n<p>&ldquo;I&rsquo;ve started building a completely <a href=\"https://twitter.com/danielpost/status/1390316805596590083\">overhauled drag-n-drop editor</a>, which will allow you to create basically any custom image you want,&rdquo; he said. &ldquo;It will be heavily inspired by the block editor, and I want to keep the UI and UX as close to the block editor as possible.&rdquo;</p>\n\n\n\n<p>The new template editor would allow users to create multiple layers, an idea similar to how Photoshop, Gimp, and other image-editing software works. The difference would be that it can pull in data from WordPress.</p>\n\n\n\n<p>&ldquo;For example, an &lsquo;Image&rsquo; layer will have options such as height/width and positioning, as well as some stylistic options like color filters and gradient overlays,&rdquo; said Post. &ldquo;A &lsquo;Text&rsquo; layer can be any font, color, and size and can show predefined options (post title, date, etc.) or whatever you want. You can add an infinite number of layers and order them however you&rsquo;d like.&rdquo;</p>\n\n\n\n<p>He seems excited about opening up new possibilities with an overhauled editor. Users could potentially create social image templates for each post type. A custom layer might pull in post metadata, such as displaying product pricing or ratings from eCommerce plugins like WooCommerce.</p>\n\n\n\n<p>&ldquo;The prebuilt templates will still exist, similar to Block Patterns in the block editor,&rdquo; said the plugin developer. &ldquo;They will, however, serve as a starting point rather than the final product. I&rsquo;ll also try to implement theme styling as much as possible.</p>\n\n\n\n<p>&ldquo;The possibilities here are so endless, and I&rsquo;m incredibly excited for this next part.&rdquo;</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 04 Jun 2021 23:59:14 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:9;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:65:\"WPTavern: Building Featured Boxes With the WordPress Block Editor\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=117803\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:175:\"https://wptavern.com/building-featured-boxes-with-the-wordpress-block-editor?utm_source=rss&utm_medium=rss&utm_campaign=building-featured-boxes-with-the-wordpress-block-editor\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:6333:\"<p class=\"has-drop-cap\">It is a new day with another chase for that elusive block plugin that will bring a little joy into my life. Today&rsquo;s experiment comes courtesy of the <a href=\"https://wordpress.org/plugins/feature-box/\">Feature Box plugin</a> by Sumaiya Siddika. It is a simple block that allows end-users to upload an image and add some content to an offset box.</p>\n\n\n\n<p>The plugin&rsquo;s output is a typical pattern on the web. As usual, I am excited to see plugin authors experimenting with bringing these features to WordPress users. I want to see more of it, especially from first-time plugin contributors.</p>\n\n\n\n<p>I was able to quickly get the block up and running, adding my custom content. The following is what the block looked like after entering my content and customizing it. <em>I envisioned myself as a recipe blogger for this test.</em></p>\n\n\n\n<img />Inserting and modifying the Feature Box block.\n\n\n\n<p>On a technical level, the plugin worked well. I ran into no errors. Everything was simple to customize. However, it never felt like an ideal user experience.</p>\n\n\n\n<p>The first thing I immediately noticed is that image uploading happens in the block options sidebar. Core WordPress blocks have a dedicated button in the toolbar for adding images and other media. I also found myself wanting more direct control over individual elements. <em>How could I change the heading font size? Where were the typical button styles like Outline and Solid Color? How do I insert other blocks, like a list?</em></p>\n\n\n\n<p>None of those things were possible. Like many other blocks, the developer has created a system with specific parameters, and the user cannot move outside of them. There are times when that rigidity makes sense, such as when building custom blocks for clients. However, more often than not, publicly-released plugins should be far more open.</p>\n\n\n\n<p>This tightly controlled block is reflective of how WordPress worked in the past. It was often inflexible, leaving users to what theme and plugin developers thought was best for their sites.</p>\n\n\n\n<p>The block system is about tossing out these overly rigid concepts and giving users power over their content. The job of plugins and themes is to define the framework the user is operating under. They set up some rules to more or less keep things from breaking, but the users get to strap themselves into the driver&rsquo;s seat. Their destination is their own.</p>\n\n\n\n<p>The block would have been far more well-rounded if users could control all of the content in the box. Ideally, they could put whatever blocks they wanted into the &ldquo;content&rdquo; area of the Feature Box block. The design would match their theme better too.</p>\n\n\n\n<p>A couple of weeks ago, I wrote a post titled <a href=\"https://wptavern.com/you-might-not-need-that-block\">You Might Not Need That Block</a>. The premise was that users could recreate some blocks with the current editor and that themers could make this easier by offering patterns.</p>\n\n\n\n<p>I knew replicating this particular block would be impossible without at least a little custom code. WordPress&rsquo;s editor does not have a feature for offsetting a block&rsquo;s position.</p>\n\n\n\n<p>A theme author could easily duplicate this functionality. Typically, I would create a custom pattern, complete with all the existing pieces in place. However, I wanted to approach this with custom block styles. This would allow end-users to select the content offset from the sidebar and switch it around if needed.</p>\n\n\n\n<p class=\"is-style-default\"><strong>Note:</strong> For those who wish to learn how to create custom block styles, Carolina Nymark&rsquo;s <a href=\"https://fullsiteediting.com/lessons/custom-block-styles/\">tutorial</a> is the best resource.</p>\n\n\n\n<p>The Cover block made an ideal candidate for this. Because it has an existing &ldquo;inner wrapper&rdquo; element, it meant that I could target it with CSS and move it around. The following is a screenshot of the Offset Left style I created:</p>\n\n\n\n<img />Offset Left Cover block style.\n\n\n\n<p>I simply replicated the code and changed a few values to create an Offset Right style immediately after. The code is available as a <a href=\"https://gist.github.com/justintadlock/70180c2019f1e2dbdda96ee263610671\">GitHub Gist</a>.  It is a simple proof-of-concept and not a polished product.  There are various approaches to this, and several Cover block options are left unhandled.  Theme authors are free to take the code and run with it.</p>\n\n\n\n<p>These block styles looked far better because they matched my theme. Everything from the spacing to the border-radius to the button looked as it should.</p>\n\n\n\n<ul><li class=\"blocks-gallery-item\"><img /></li><li class=\"blocks-gallery-item\"><img /></li></ul>Offset Left and Right block styles.\n\n\n\n<p>The big win was that I had design control over every aspect of the content box. I could select the button style I wanted. I could change my font sizes. The default spacing matched my theme as it should.</p>\n\n\n\n<p>The problem I ran into with the block style method is allowing users to control the content box&rsquo;s background color. The Feature Box plugin wins in the user experience category here because it has an option for this. The block style I created inherits its background from the Cover block parent. It may not be immediately obvious how to change it.</p>\n\n\n\n<p>The other &ldquo;problem&rdquo; with the block style is that it does not handle wide and full alignments for the Cover block. That is because I did not take the experiment that far, only replicating the plugin&rsquo;s layout. I will leave that to theme designers to tinker around with. There are many possibilities to explore; <em>don&rsquo;t wait for me to provide all the ideas</em>.</p>\n\n\n\n<p>My goal with this post and similar ones is to show how I would approach these things as both a user and developer. As a user, I want flexibility in all things. As a developer, I want to provide the solutions that I desire as a user.</p>\n\n\n\n<p>I also want to see plugin and theme authors thinking beyond their initial use case when building blocks, patterns, styles, and more. Lay the groundwork. Then, expand on that initial idea by thinking of all the ways that users might want to customize what you have built.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 04 Jun 2021 05:07:41 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:10;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:65:\"WPTavern: Delicious Brains Acquires Advanced Custom Fields Plugin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=117769\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:175:\"https://wptavern.com/delicious-brains-acquires-advanced-custom-fields-plugin?utm_source=rss&utm_medium=rss&utm_campaign=delicious-brains-acquires-advanced-custom-fields-plugin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4240:\"<p><a href=\"https://deliciousbrains.com/\">Delicious Brains</a>, the company behind <a href=\"https://deliciousbrains.com/wp-migrate-db-pro/\">WP Migrate DB Pro</a> and <a href=\"https://spinupwp.com/\">SpinupWP</a>, has <a href=\"https://www.advancedcustomfields.com/blog/10-years-of-acf-a-truly-wonderful-time/\">acquired</a> the <a href=\"https://wordpress.org/plugins/advanced-custom-fields/\">Advanced Custom Fields</a> (ACF) plugin from its creator, Elliot Condon. After 10 years, the plugin has more than 1 million active installs and a thriving business based on the Pro version. It has become an indispensable part of the workflow for thousands of WordPress developers around the globe.</p>\n\n\n\n<p>The plugin allows developers to easily customize WordPress edit screens and custom field data. In 2019, the Pro version <a href=\"https://wptavern.com/advanced-custom-fields-5-8-0-introduces-acf-blocks-a-php-framework-for-creating-gutenberg-blocks\">introduced ACF Blocks</a>, a PHP-based framework for developing custom blocks. This came as a great relief to many developers who did not know how they were going to keep pace with learning the JavaScript required to use WordPress&rsquo; Block API.</p>\n\n\n\n<p>General reaction to the news was positive, as ACF fits in neatly with Delicious Brains&rsquo; suite of well-maintained developer products. The company&rsquo;s founders also possess a genuine appreciation of ACF and its importance to the WordPress developer community.</p>\n\n\n\n<p>&ldquo;I don&rsquo;t think WordPress would be where it is today without ACF,&rdquo; Brad Touesnard said on a recent <a href=\"https://delicious-brains.castos.com/episodes/episode-5-a-wordpress-announcement-of-epic-proportions/\">episode</a> of the Delicious Brain Waves podcast.</p>\n\n\n\n<p>Condon cited the scale of the project and &ldquo;technology complexity and user expectation&rdquo; as factors in his decision to sell ACF. As a one-person team, he was unable to keep up with the growth of ACF over the years.</p>\n\n\n\n<p>&ldquo;Stepping away from ACF has not been an easy decision to make,&rdquo; Condon said. &ldquo;The reasoning behind it comes from a place of humility. As the number of installs have grown from thousands to millions, the needs of the product have outgrown my ability to develop solutions. The last thing I want to do to this amazing community is unintentionally hold back the project, so something needed to change.&rdquo;</p>\n\n\n\n<p>Delicious Brains&rsquo; announcement stated that the company will be reviewing Condon&rsquo;s roadmap for the product in hopes of fulfilling his vision moving forward.</p>\n\n\n\n<p>&ldquo;Two of our greatest strengths that we&rsquo;ll bring to ACF are design (UI/UX) and developer education,&rdquo; Touesnard said. &ldquo;We&rsquo;ll be focusing our initial efforts in those areas. I have a few UI/UX improvements in mind that would make a huge difference to users. We also see a significant opportunity to produce developer-focused content focused on effectively using ACF in your WordPress projects.&rdquo;</p>\n\n\n\n<p>Touesnard also confirmed that Delicious Brains will not be making any drastic changes to ACF or ACF Pro, nor do they plan to adjust the pricing of the product anytime soon. </p>\n\n\n\n<p>&ldquo;If we ever decide to update pricing in the future, we won&rsquo;t force existing customers onto the new pricing,&rdquo; he said.</p>\n\n\n\n<p>After the initial announcement, there was some <a href=\"https://twitter.com/bradt/status/1400488841123930114\">confusion surrounding lifetime licenses</a> that originated from a hasty response to a customer inquiry. Delicious Brains has since updated the post to clarify the company&rsquo;s commitment to ACF Pro&rsquo;s lifetime customers.</p>\n\n\n\n<p>&ldquo;We are committed to honoring lifetime licenses forever,&rdquo; Touesnard said. &ldquo;Lifetime license holders will get&nbsp;<strong>all</strong>&nbsp;ACF Pro software updates forever.&rdquo;</p>\n\n\n\n<p>More information on how the acquisition happened, as well as what customers can expect in the future, is available on the most recent <a href=\"https://delicious-brains.castos.com/episodes/episode-5-a-wordpress-announcement-of-epic-proportions/\">episode of the Delicious Brain Waves podcast</a>.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 04 Jun 2021 03:35:36 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:11;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:60:\"WordPress.org blog: A New Design is Coming to WordPress News\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=10418\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:76:\"https://wordpress.org/news/2021/06/a-new-design-is-coming-to-wordpress-news/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:1152:\"<p>After many years of a tidy, white-space filled design on WordPress.org/news it&#8217;s time to bring new life to the way we present our content. So much has changed since this site was first created: the people who read it, the type and variety of what is published, even the way WordPress works has changed.</p>\n\n\n\n<p>Which means it makes sense to change our theme. </p>\n\n\n\n<p>Earlier this year, Matt requested a new design from Beatriz Fialho (who also created the State of the Word slides for 2020). The design keeps a clean, white-space friendly format while incorporating a more jazzy, playful feeling with a refreshed color palette. </p>\n\n\n\n<img width=\"632\" height=\"449\" src=\"https://i0.wp.com/wordpress.org/news/files/2021/06/25-1024x728-1.png?resize=632%2C449&ssl=1\" alt=\"\" class=\"wp-image-10420\" />\n\n\n\n<p>More detail on this modern exploration have been posted on <a href=\"https://make.wordpress.org/design/2021/06/03/redesign-of-wordpress-org-news/\">make.wordpress.org/design</a>. I encourage you to stop by and read more about the thoughts behind the coming updates; and keep an eye out for the new look here and across WordPress.org!</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 03 Jun 2021 20:47:56 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:7:\"Josepha\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:12;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:74:\"WPTavern: Forks and Alternatives: Custom User Avatar Plugins for WordPress\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=117207\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:191:\"https://wptavern.com/forks-and-alternatives-custom-user-avatar-plugins-for-wordpress?utm_source=rss&utm_medium=rss&utm_campaign=forks-and-alternatives-custom-user-avatar-plugins-for-wordpress\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:7622:\"<p class=\"has-drop-cap\">You know what one of the great things about open source is? Others can use a project&rsquo;s code, share it wholesale, modify it, and/or distribute their changes. These are the <a href=\"https://wordpress.org/about/#bill-of-rights\">pillars upon which WordPress stands</a>. It is a beautiful thing to watch in practice.</p>\n\n\n\n<p>Most often, it means we can build off the shoulders of those giants who came before us, continually improving the software for ourselves and others. It is how WordPress got its start nearly two decades ago as a fork of the b2/cafelog blogging system.</p>\n\n\n\n<p>Sometimes, it just means having the freedom to give your friend a copy of something you love and letting them use it. Other times, it is the gateway for a budding developer learning how functions or classes work for the first time, ripping apart a project to see what makes it tick.</p>\n\n\n\n<p>Every so often, the promise of free software means that others can decide to go their own way when they do not like the direction a project is heading. They can fork the code, carving a new destination for its future.</p>\n\n\n\n<p>This is what happened when <a href=\"https://wptavern.com/profilepress-rebrands-and-repurposes-wp-user-avatar-now-a-membership-plugin-users-revolt-via-the-wordpress-review-system\">ProfilePress overhauled its WP User Avatar plugin</a>, turning it into a full-fledged membership solution. While its average user may not be able or willing to dip their toes into the depths of the development waters, when you have a 400,000+ user base, a few of them are bound to be programmers. Or at least tech-savvy enough to create a copy of the previous version and distribute it directly.</p>\n\n\n\n<p>It did not take long &mdash; mere days &mdash; before ex-users began sharing their forks. The beauty of open source is that they have the power to do this without some corporation cracking down on them. I wanted to acknowledge what they accomplished by jumping into a messy situation and making quick alternatives for many users who felt abandoned. This is my symbolic handclap. &#128079;</p>\n\n\n\n<p>It is not often that we get to mention WordPress&rsquo;s license without gearing up for battle.  However, the GPL played a crucial role in making these forks possible.  The license protected the plugin&rsquo;s user base, giving them multiple alternative paths to take.</p>\n\n\n\n<p>Without further preaching the merits of open source, the following are the current forks of WP User Avatar:</p>\n\n\n\n<ul><li><a href=\"https://wordpress.org/plugins/one-user-avatar/\">One User Avatar</a> by Daniel Tara (One Designs). It already has nine translations and is available on WordPress.org.</li><li><a href=\"https://github.com/dartiss/custom-user-avatar\">Custom User Avatar</a> by David Artiss. It is currently available on GitHub, but it appears he plans to add it to the plugin directory.</li><li><a href=\"https://github.com/stracker-phil/orig-user-avatar\">Orig User Avatar</a> by Philipp Stracker. This one is also only available on GitHub.</li></ul>\n\n\n\n<p>Each fork looks like a straight port of the latest version of WP User Avatar before version 3.0. There are some necessary code and branding changes. The first two also remove all advertising from the plugin.</p>\n\n\n\n<p>For anyone looking to return to the exact same functionality as the old plugin, any one of these will do the job.</p>\n\n\n\n<h2>Alternative Solutions</h2>\n\n\n\n<p class=\"has-drop-cap\">Straight ports are nice to have, especially for those who need to keep their data intact for many user accounts, but this could also be an opportunity for others to look at alternatives. And, custom user avatar solutions are a dime a dozen. There is a little something for everyone out there.</p>\n\n\n\n<p>The following is nowhere near a comprehensive list. I have either tested or used most of these in the past couple of years.  I encourage anyone to share plugins I did not include in the comments.</p>\n\n\n\n<h3>Simple Local Avatars</h3>\n\n\n\n<img />\n\n\n\n<p>Topping any list of custom avatar solutions is <a href=\"https://wordpress.org/plugins/simple-local-avatars/\">Simple Local Avatars</a> by 10up. The WordPress company is one of the most respected in the community, and its employees contribute heavily to core development. 10up tends to put together solid plugins.</p>\n\n\n\n<p>Simple Local Avatars does just what it says on the box. It allows users to upload custom avatars to their site. It also generates requested image sizes on demand. It works alongside Gravatar, a feature that can be enabled or disabled. It also has built-in options for site administrators to grant permission to non-authorized roles to upload their photos.</p>\n\n\n\n<h3>WP User Avatars</h3>\n\n\n\n<img />\n\n\n\n<p><a href=\"https://wordpress.org/plugins/wp-user-avatars/\">WP User Avatars</a> by John James Jacoby, a lead developer for bbPress and BuddyPress, is another simple plugin. Like many similar solutions, it adds a form for users to manage their avatar from their profile pages.</p>\n\n\n\n<p>It is unique in that it works alongside a suite of other user-related plugins that Jacoby offers. While it can work on its own, it is at least worth checking out his <a href=\"https://wordpress.org/plugins/wp-user-profiles/\">WP User Profiles</a> plugin, which overhauls WordPress profile pages. It and his other user-related plugins work in conjunction with each other. Plugin users can pick and choose which they wish to install.</p>\n\n\n\n<h3>User Profile Picture</h3>\n\n\n\n<img />\n\n\n\n<p>There seems to be a pattern emerging here &mdash; users tend to love these simple avatar solutions. <a href=\"https://wordpress.org/plugins/metronet-profile-picture/\">User Profile Picture</a> by Cozmoslabs is another that fits this mold. It also includes a block to allow post or page authors to output any user&rsquo;s profile (avatar, name, description, and posts link) on the site front end.</p>\n\n\n\n<p>Users without permission to upload an image cannot add an avatar with this plugin alone. By default, this is the Administrator, Editor, and Author roles. Site admins will need to install either a permissions plugin or Cozmoslabs&rsquo; <a href=\"https://wordpress.org/plugins/profile-builder/\">Profile Builder</a> for the extra capability.</p>\n\n\n\n<h3>Pixel Avatars (Toolbelt)</h3>\n\n\n\n<img />\n\n\n\n<p>Pixel Avatars is a privacy-first Gravatar replacement. It takes a different route than similar options by not providing a method to upload a custom avatar. Instead, it automatically generates unique avatars for each user with a bit of JavaScript. It is a fun twist on the typical avatar system.</p>\n\n\n\n<p>Technically, this is not a standalone avatar plugin. The Pixel Avatars system is a sub-component of the <a href=\"https://wordpress.org/plugins/wp-toolbelt/\">Toolbelt plugin</a>. Created by Ben Gillbanks, it is a collection of tools that he uses for most of his WordPress projects. It may be overkill for many, but each plugin module can be enabled or disabled based on user needs.</p>\n\n\n\n<h3>Local Gravatars</h3>\n\n\n\n<img />\n\n\n\n<p>This plugin is also different from other solutions because it does not allow local avatar uploading. However, it is a solid alternative for those who just need faster load times, especially on posts that display dozens or hundreds of Gravatar images in the comments.</p>\n\n\n\n<p><a href=\"https://wordpress.org/plugins/local-gravatars/\">Local Gravatars</a> by Ari Stathopoulos is a caching system. It stores Gravatar images on the user&rsquo;s server for a week before flushing them out. This can make for a performance boost instead of hitting the Gravatar CDN for each image.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 03 Jun 2021 01:33:25 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:13;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"WPTavern: WordCamp Europe 2021 Online Schedule Announced\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=117521\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:157:\"https://wptavern.com/wordcamp-europe-2021-online-schedule-announced?utm_source=rss&utm_medium=rss&utm_campaign=wordcamp-europe-2021-online-schedule-announced\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:2933:\"<p>Mark your calendars for the next major WordPress event coming up at the beginning of next week. <a href=\"https://europe.wordcamp.org/\">WordCamp Europe</a> is just five days away and will run from <strong>June 7-9</strong>. In July 2020, organizers announced that in-person events would not resume until 2022. At that time, attendees were deeply disappointed but resigned to the necessity of online events due to the pandemic. </p>\n\n\n\n<p>One of the advantages of scheduling a virtual event so far in advance is that organizers have been able to eliminate a great deal of uncertainty for attendees and their travel arrangements as well as have more time to create a better online experience. This is one of the few times in WordCamp Europe history where all attendees will be joining virtually, on equal footing from wherever they are in the world. </p>\n\n\n\n<p>WCEU 2021 organizers have announced the speaker lineup and <a href=\"https://europe.wordcamp.org/2021/schedule/\">schedule</a> for the upcoming three days of 30-minute sessions, 10-minute lightning talks, workshops, discussion panels, and interviews.  Two tracks will run simultaneously.</p>\n\n\n\n<p>The schedule includes some big-picture topics like <a href=\"https://europe.wordcamp.org/2021/session/discussion-panel/\">full-site editing</a> and the <a href=\"https://europe.wordcamp.org/2021/session/discussion-panel-2/\">future of WordPress themes</a>, as well as more technical topics such as <a href=\"https://europe.wordcamp.org/2021/session/blazing-fast-block-development/\">how to quickly build custom blocks</a>, setting up a <a href=\"https://europe.wordcamp.org/2021/session/woocommerce-data-hub/\">WooCommerce data hub</a>, <a href=\"https://europe.wordcamp.org/2021/session/headless-wordpress-gatsby-or-nextjs/\">headless WordPress</a>, and <a href=\"https://europe.wordcamp.org/2021/session/accessing-apis-using-oauth-on-the-federated-wordpress-web/\">accessing APIs using OAuth on the Federated Web</a>. At the close of day 3, WordPress co-founder Matt Mullenweg will join the event for a <a href=\"https://europe.wordcamp.org/2021/session/conversation-with-matt-mullenweg/\">virtual chat</a>.</p>\n\n\n\n<p>Business owners, project managers, designers, and other professionals will all find topics related to their work and interests. The schedule has a built-in favoriting tool so attendees can mark the sessions they plan to attend and then print or email to themselves for a personalized schedule. Every hour or so there will be 10-minute breaks so attendees will have time to talk with others and socialize. WCEU organizers are planning to host virtual networking rooms where attendees can meet sponsors and take part in product demos.</p>\n\n\n\n<p><a href=\"https://europe.wordcamp.org/2021/registration/\">Registration</a> is free and attendees will receive online goodiebags. Tickets are still available but organizers expect it to be another &ldquo;sell out&rdquo; year.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 03 Jun 2021 01:07:14 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:14;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:52:\"WordPress.org blog: The Month in WordPress: May 2021\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=10393\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:67:\"https://wordpress.org/news/2021/06/the-month-in-wordpress-may-2021/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:11057:\"<blockquote class=\"wp-block-quote\"><p>It’s really fun to contribute to something larger than yourself.</p></blockquote>\n\n\n\n<p><a href=\"https://profiles.wordpress.org/matt\">Matt Mullenweg</a>’s words in “<a href=\"https://wordpress.org/news/2021/05/the-commons-of-images/\">The Commons of Images</a>” episode of the <a href=\"https://wordpress.org/news/podcast/\">WP Briefing podcast</a> exemplify the core philosophy of the WordPress project,&nbsp; especially as we inch closer to the next major release (version 5.8). This post covers exciting updates from the month of May.</p>\n\n\n\n<hr class=\"wp-block-separator\" />\n\n\n\n<h2>WordPress turns 18</h2>\n\n\n\n<p>WordPress <a href=\"https://wordpress.org/news/2021/05/wordpress-at-18/\">celebrated the 18th anniversary</a> of its <a href=\"https://wordpress.org/development/2003/05/wordpress-now-available/\">launch</a> on May 27, 2021. To celebrate 40+ releases and WordPress’ support of 40% of the web, the team <a href=\"https://wordpress.org/news/2021/05/wordpress-at-18/\">released 40 milestones</a> to celebrate the anniversary of the software. Here’s to the next 18 and beyond!&nbsp;</p>\n\n\n\n<h2>CC Search joins WordPress and is renamed to Openverse</h2>\n\n\n\n<p><a href=\"https://wordpress.org/news/2021/05/welcome-to-openverse/\">Creative Commons Search has officially joined the WordPress project</a>. Creative Commons Search (CC Search) is a <a href=\"https://creativecommons.org/share-your-work/public-domain/cc0/\">CC0</a> image search engine with over 500 million openly licensed images. The search product, which is being renamed to Openverse, will eventually live on the URL: https://wordpress.org/openverse. Contributors working on CC Search will continue their work as part of a <a href=\"https://make.wordpress.org/meta/2021/04/27/new-wordpress-make-team/\">new dedicated Make team</a>: <a href=\"https://make.wordpress.org/openverse\">https://make.wordpress.org/openverse</a>. Check out “<a href=\"https://wordpress.org/news/2021/05/the-commons-of-images/\">The Commons of Images</a>” podcast episode for more information.</p>\n\n\n\n<h2>WordPress 5.7.2 released</h2>\n\n\n\n<p>WordPress <a href=\"https://wordpress.org/news/2021/05/wordpress-5-7-2-security-release/\">version 5.7.2</a>, a short-cycle security release, came out on May 13. Get the latest version directly from your WordPress dashboard or by <a href=\"https://wordpress.org/download/\">downloading</a> it from WordPress.org.</p>\n\n\n\n<p>Want to contribute to WordPress core? Check out the <a href=\"https://make.wordpress.org/core/handbook/\">Core Contributor Handbook</a>. Don’t forget to join the WordPress <a href=\"https://wordpress.slack.com/archives/C02RQBWTW\">#core</a> channel in the <a href=\"https://make.wordpress.org/chat/\">Make WordPress Slack</a> and follow the <a href=\"https://make.wordpress.org/core/\">Core Team blog</a>. The Core Team hosts weekly chats on Wednesdays at <a href=\"https://www.timeanddate.com/worldclock/fixedtime.html?hour=5&min=00&sec=0\">5 AM</a> and <a href=\"https://www.timeanddate.com/worldclock/fixedtime.html?hour=20&min=00&sec=0\">8 PM</a> UTC.&nbsp;</p>\n\n\n\n<h2>Gutenberg versions 10.6 and 10.7 are out</h2>\n\n\n\n<p>Gutenberg <a href=\"https://make.wordpress.org/core/2021/05/14/whats-new-in-gutenberg-10-6-12-may/\">version 10.6</a> and <a href=\"https://make.wordpress.org/core/2021/05/27/whats-new-in-gutenberg-10-7-26-may/\">version 10.7</a> were launched this month. <a href=\"https://make.wordpress.org/core/2021/05/14/whats-new-in-gutenberg-10-6-12-may/\">Version 10.6</a> features <a href=\"https://wordpress.org/news/2021/05/coloring-your-images-with-duotone-filters/\">experimental Duotone filters (which are shipping with WordPress 5.8)</a>, block pattern suggestions in placeholders, and enhancements to the table block. <a href=\"https://make.wordpress.org/core/2021/05/27/whats-new-in-gutenberg-10-7-26-may/\">Version 10.7</a> adds a responsive navigation block, block design tools, and the ability to load block patterns from the directory.<br /></p>\n\n\n\n<p>Want to get involved in building Gutenberg? Follow <a href=\"https://make.wordpress.org/core/\">the Core Team blog</a>, contribute to <a href=\"https://github.com/WordPress/gutenberg/\">Gutenberg on GitHub</a>, and join the <a href=\"https://wordpress.slack.com/archives/C02QB2JS7\">#core-editor</a> channel in the <a href=\"https://make.wordpress.org/chat/\">Make WordPress Slack</a>. The latest “<a rel=\"noreferrer noopener\" href=\"https://make.wordpress.org/core/2021/03/08/whats-next-in-gutenberg-march-2021/\" target=\"_blank\">What’s next in Gutenberg</a>” post offers more details on the latest updates. If you are unfamiliar with the Gutenberg plugin, <a href=\"https://wordpress.org/news/2021/04/become-an-early-adopter-with-the-gutenberg-plugin/\">learn more in this post</a>.</p>\n\n\n\n<h2>Full Site Editing updates</h2>\n\n\n\n<p>Don’t miss the <a href=\"https://make.wordpress.org/test/2021/05/26/fse-program-testing-call-7-polished-portfolios/\">latest Full Site Editing (FSE) Outreach program testing call on building portfolio pages</a> using the Template Editing feature shipping with WordPress 5.8! The deadline is June 9. The team has published a recap of the <a href=\"https://make.wordpress.org/test/2021/05/06/fse-program-query-quest-summary/\">Query Quest FSE Testing call</a>, which shares some interesting results. The answers to <a href=\"https://make.wordpress.org/test/2021/05/13/fse-program-answers-from-round-two-of-questions/\">round two of FSE questions</a> are also out.</p>\n\n\n\n<h2>Countdown starts for WordCamp Europe 2021</h2>\n\n\n\n<p>The countdown to one of the most anticipated WordPress events, <a href=\"https://europe.wordcamp.org/2021/\">WordCamp Europe 2021 (Online)</a>, has started! The <a href=\"https://europe.wordcamp.org/2021/schedule/\">full schedule of the event</a> is now available, and the team has exciting plans! Don’t miss this event: <a href=\"https://europe.wordcamp.org/2021/registration/\">get your tickets now</a> before they run out!</p>\n\n\n\n<hr class=\"wp-block-separator\" />\n\n\n\n<h2>Further reading</h2>\n\n\n\n<ul><li>The Core Team published its <a href=\"https://make.wordpress.org/core/2021/05/17/introducing-the-wordpress-css-audit-tool/\">first-ever WordPress CSS Audit tool</a>. The team has also <a href=\"https://make.wordpress.org/core/2021/05/03/feature-project-updates-on-updating-the-updaters/\">kicked off a project to improve all the updaters in WordPress core</a>.</li><li>The Community Team proposed <a href=\"https://make.wordpress.org/community/2021/05/12/proposal-adding-vaccination-status-to-the-in-person-meetup-safety-checklist/\">adding vaccination status to the in-person meetup checklist</a> as a criterion to organize in-person WordPress meetups. The team also published results of the <a href=\"https://make.wordpress.org/community/2021/05/28/2020-meetup-organizer-survey-results/\">2020 Meetup Organizer survey</a> and <a href=\"https://make.wordpress.org/community/2021/05/21/2020-meetup-survey-results/\">Meetup Member survey</a>. </li><li><a href=\"https://venezuela.wordcamp.org/2021/\">WordCamp Venezuela</a> and <a href=\"https://neo.wordcamp.org/2021/\">WordCamp North East Ohio </a>were held successfully in May. Don’t forget to grab your free tickets for <a href=\"https://japan.wordcamp.org/2021/\">WordCamp Japan 2021</a> and <a href=\"https://japan.wordcamp.org/2021/\">WordCamp Cochabamba 2021</a>, both happening in June.</li><li>The Design Team floated a <a href=\"https://make.wordpress.org/design/2021/05/27/proposal-to-tweak-existing-icons-and-add-new-ones/\">proposal to tweak existing core icons and add new ones</a>.</li><li><a href=\"https://profiles.wordpress.org/chanthaboune\">Josepha Haden</a> published <a href=\"https://make.wordpress.org/updates/2021/05/25/experiment-a-public-channel-for-all-team-reps/\">an experiment to create a public channel for team reps</a>. </li><li>The Support Team is considering adding <a href=\"https://make.wordpress.org/support/2021/05/support-team-deputies/\">two or more deputies to the team</a>. </li><li>The Themes Team requests theme authors to <a href=\"https://make.wordpress.org/themes/2021/05/25/themes-team-meeting-notes-may-25-2021/\">check their themes’ compatibility with WordPress 5.8</a> in view of the upcoming major release. </li><li>The Training Team <a href=\"https://href.li/?https://make.wordpress.org/training/2021/05/27/proposal-adding-custom-user-roles-to-learn-wordpress/\">shared a proposal</a> on adding custom user roles for <a href=\"https://href.li/?https://learn.wordpress.org\">learn.wordpress.org</a> to match the structure and functionality of the site. The team also <a href=\"https://href.li/?https://make.wordpress.org/training/2021/05/28/proposal-an-audit-tool-for-learn/\">proposed an audit tool</a> to improve content auditing for Learn.</li><li>The CLI Team released <a href=\"https://make.wordpress.org/cli/2021/05/19/wp-cli-v2-5-0-release-notes/\">version 2.5.0</a> of WP-CLI.</li><li>The Tide Team <a href=\"https://make.wordpress.org/tide/2021/05/25/tide-chat-summary-may-25th/\">seeks contributors</a> to help with documentation reviews, cleaning up Tide locally, and making the documentation clearer. </li><li>The Hosting Team <a href=\"https://make.wordpress.org/hosting/2021/05/20/why-hosters-should-install-the-php-intl-extension/\">recommends all web hosts to install the Internationalization PHP extension</a>. The team also launched<a href=\"https://www.meetup.com/wphosting/\"> its official meetup chapter</a>.</li><li>The latest edition of “<a href=\"https://wordpress.org/news/category/heropress/\">People of WordPress</a>” features <a href=\"https://wordpress.org/news/2021/05/people-of-wordpress-fike-komala/\">Fike Komala from Indonesia</a>.</li><li>The BuddyPress Team <a href=\"https://buddypress.org/2021/05/buddypress-8-0-0-release-candidate/\">released the BuddyPress 8.0 Release Candidate</a>. </li><li>Read about the brand new <a href=\"https://wordpress.org/news/2021/05/coloring-your-images-with-duotone-filters/\">Duotone filter for blocks</a> feature, that is shipping with WordPress 5.8! </li><li>Catch the latest episode of the <a rel=\"noreferrer noopener\" href=\"https://wordpress.org/news/podcast/\" target=\"_blank\">WP Briefing Podcast</a> where <a rel=\"noreferrer noopener\" href=\"https://profiles.wordpress.org/chanthaboune/\" target=\"_blank\">Josepha</a> talks about <a rel=\"noreferrer noopener\" href=\"https://wordpress.org/news/2021/05/episode-9-the-cartography-of-wordpress/\" target=\"_blank\">the cartography of WordPress</a>.</li></ul>\n\n\n\n<p><em>Have a story that we should include in the next “Month in WordPress” post? Please </em><a href=\"https://make.wordpress.org/community/month-in-wordpress-submissions/\"><em>submit it using this form</em></a><em>.&nbsp;</em></p>\n\n\n\n<p><em>The following folks contributed to May’s Month in WordPress: <a href=\"https://profiles.wordpress.org/meher/\" class=\"mention\"><span class=\"mentions-prefix\">@</span>meher</a> and <a href=\"https://profiles.wordpress.org/chaion07/\" class=\"mention\"><span class=\"mentions-prefix\">@</span>chaion07</a></em></p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 02 Jun 2021 18:23:11 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Hari Shanker R\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:15;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:132:\"HeroPress: From Blogging to WordPress Communities: A Bolivian tale – De Blogger a comunidades de WordPress: Una historia boliviana\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"https://heropress.com/?post_type=heropress-essays&p=3626\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:182:\"https://heropress.com/essays/from-blogging-to-wordpress-communities-a-bolivian-tale/#utm_source=rss&utm_medium=rss&utm_campaign=from-blogging-to-wordpress-communities-a-bolivian-tale\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:15766:\"<img width=\"1024\" height=\"512\" src=\"https://heropress.com/wp-content/uploads/2022/06/052821-min.jpg\" class=\"attachment-large size-large wp-post-image\" alt=\"Pull Quote: I couldn’t be more grateful for all the good things that WordPress has given me.\" /><p><a href=\"https://heropress.com/feed/#espanol\">Este ensayo también está disponible en español.</a></p>\n<p>I would have never imagined that working with WordPress would be a vital part of my current life and that I would be organizing the first WordCamp of my city Cochabamba, and the first of Bolivia.</p>\n<p>To start with my story, let me clarify that I don’t have any background in computer science or similar. I actually studied Industrial Engineering and even did a masters degree in Environmental studies. But life has taken me somewhere else and I’m very happy with my current destination. I won’t go into details of how my career changed so much, that would take hours of reading. But my early stages of WordPress started when I decided to start a small business designing and selling cushions and bed clothes. It was tiny and it only lasted a bit more than a year. It was a solo person business, little investment, and very little planning. While I sat in the small store I’d rented to sell these items, begging that people stopping at the shop’s windows would step in to buy something, I decided I needed to create a website for this business.</p>\n<h3>Finding WordPress</h3>\n<p>I had zero budget to hire somebody but I had good confidence in my ability to learn things on my own. I had always been the nerdy type and a close friend with computers in general. Thus, I decided I would figure out how to build a website on my own. I ended up building the most simple website/blog with WordPress.com. I didn’t even have a budget to buy a custom domain and I stayed with the free subdomain from WordPress.com. Unfortunately, soon my entrepreneurship was over. There were no profits and any income went mostly to pay the store’s rent. To add to the decision, a previous company with whom I had worked before, contacted me for a job opening that matched my profile. I needed that income. Therefore, I closed the store and forgot about my entrepreneurship.</p>\n<blockquote><p>However, that brief encounter with a simple website had opened a field out there that I wanted to explore better some day.</p></blockquote>\n<p>Back to the employee mode, I started my new job as a technical writer for a software development company. Since I had done my masters degree in the UK, I had a decent level of English, and somehow my close affinity with computers and technology made it easy for me to translate complex software jargon into simple tutorial steps. As I got more training in technical writing, I started to improve my writing skills in general. That reconnected me with a long lost passion of mine- writing. I’d forgotten that little girl in me that used to love writing stories and journaling. In all these years of my adult life, I hadn’t reconnected to it. That’s when I realized I had to have a blog. I needed a blog. And when WordPress.com came to my encounter again.</p>\n<h3>Diving Deep</h3>\n<p>This time I wanted to know the platform deeply. Creating my blog helped me become more familiar with WordPress and website building in general. I blogged about writing, my thoughts, book reviews, and everything that could come to my mind. That was in 2015.</p>\n<p>I don’t remember exactly how I got into the WordPress support forums, probably looking for answers to a specific issue about my blog. That’s when I realized there were other people’s questions that I could actually answer. I began checking the forums a couple of times per week. I did it as a hobby. I liked that I was able to help people and learn more while doing that.</p>\n<blockquote><p>Some people at my work checked their Facebook to relax on their break time, I checked the WordPress.com forums.</p></blockquote>\n<p>That’s how I found out about the Happiness Engineer position in Automattic. A Happiness Engineer provides customer support to people building their blogs or websites with WordPress.com. When I read the job description, it was like reading a job that was perfect for me. Even more it offered the possibility to work remotely and even travel while still working. My career as a technical writer was stuck after three years and I was also certain that I didn’t want to go back to any job related to Industrial Engineering.</p>\n<p>My story about applying to Automattic is long. To summarize it, I didn’t get in it the first time I applied. I had to do the trial twice and re-applied three times in total. I had to learn about HTML and CSS. But after almost one year and a half in between the applications and the two trials, I finally got the job. WordPress became my main means of income.</p>\n<h3>Building A Community</h3>\n<p>It was in this job that I learned about the WordPress communities around the world and WordCamps. And when somebody asked, how is the WordPress community where you live? I was speechless. I really didn’t know. Was there a community?</p>\n<p>Soon after finding there wasn’t any community, I started to dig more information about what was needed to organize one. I talked about the idea with some colleagues and they provided good insights. But I was still debating inside myself, who would start it? Was it me? It couldn’t be. It was true I provided technical support for blogs and websites, but I knew nothing about coding, plugin or theme development.</p>\n<blockquote><p>It had to be somebody else, an expert WordPress developer,  not me.</p></blockquote>\n<p>But after trying to gauge interest and ask around I realized that the only way to find these community members was to start the community. Therefore, the WordPress community in Cochabamba was born. That was 3 years ago.</p>\n<p>We’ve had ups and downs, probably similar to any other community. And although Cochabamba is not a big city, we had issues finding a location that would be accessible to everybody and wouldn’t incur a cost. We had people coming from all different levels of knowledge, from people that had a vast experience with WordPress to people with no experience at all but that wanted to learn. Covid19 actually helped the community grow when meetups went online.</p>\n<h3>Giving Back Through Speaking</h3>\n<p>The community also brought in me a side I didn’t know I would ever be interested in: public speaking. I had the opportunity to be a speaker at WordCamp Mexico, WordCamp Guayaquil and WordCamp Colombia online. I started to gain confidence while I enjoyed the opportunity to connect with other communities and meet people that were in similar pathways. Not all of them were developers as one tends to imagine in a WordPress community, many like me started only as bloggers.</p>\n<p>Finally, after 3 years we decided to organize our first WordCamp. I never imagined myself organizing any WordCamp- me, the shy one, suddenly talking to sponsors, contacting companies to sponsor us, leading a group of people with different talents and backgrounds. I’m thrilled to say that I’ve learned so much from the experience.</p>\n<p>In all these years my career has taken a dramatic swift turn.</p>\n<blockquote><p>Thanks to WordPress I have been able to find a good job, work remotely, and help build something in my community that helps people learn skills and find career opportunities.</p></blockquote>\n<p>I couldn’t be more grateful for all the good things that WordPress has given me.</p>\n<h2 id=\"espanol\">De Blogger a comunidades de WordPress: Una historia boliviana</h2>\n<p>Nunca me hubiera imaginado que trabajar con WordPress sería una parte vital de mi vida y que estaría organizando el primer WordCamp de mi ciudad, Cochabamba, y el primero de Bolivia.</p>\n<p>Para comenzar con mi  historia, déjenme aclarar que no tengo ningún estudio en ciencias de la computación o similar. Estudié Ingeniería Industrial e incluso hice una maestría en estudios ambientales. Pero mi vida ha tomado otro rumbo y estoy feliz con donde estoy ahora.</p>\n<p>No iré en detalles de cómo mi carrera cambió, eso tomaría horas de lectura. Pero mis comienzos tempranos con WordPress empezaron cuando decidí comenzar un pequeño negocio diseñando y vendiendo almohadones y ropa de cama. Era muy pequeño y solo duró un poco más de un año. Era un negocio de una sola persona, con poca inversión y poca planeación. Mientras me sentaba dentro de mi tienda vendiendo mis productos y rogando que la gente que se detenía en frente de las vitrinas entrara a comprar algo, decidí que necesitaba crear un sitio web para mi negocio.</p>\n<h3>Mi encuentro con WordPress</h3>\n<p>Tenía cero presupuesto para contratar a alguién pero tenía confianza en mis habilidades para aprender cosas por mi misma. Siempre había sido del tipo nerd y muy amiga de las computadoras en general. Entonces decidí que encontraría la forma de construir el sitio web por mi misma. Terminé construyendo un sitio, casi blog, de lo más simple. No tenía ni siquiera presupuesto para comprar un dominio personalizado y me quedé con el subdominio gratuito de WordPress.com. Desafortunadamente, mi emprendimiento llegó al fin. No habían ganancias y cualquier ingreso era generalmente para pagar el alquiler de la tienda. Para influenciar aún más esta decisión, una compañía con quien había trabajado anteriormente me contactó para un trabajo que le iba muy bien a mi perfil. Necesitaba esos ingresos. Por lo tanto cerré la tienda y me olvidé de mi emprendimiento.</p>\n<blockquote><p>Sin embargo, ese encuentro breve con un sitio web simplísimo abrió un campo delante de mis ojos que quería explorar mejor algún día.</p></blockquote>\n<p>De nuevo ya en modo de empleado, comencé mi trabajo como technical writer para una empresa de software. Como había hecho mi maestría en el Reino Unido, tenía un nivel decente de inglés y mi afinidad con las computadoras y la tecnología en general hacía que fuese sencillo para mi traducir la jerga compleja de los desarrolladores de software en tutoriales con sencillos pasos. A medida que recibía más entrenamiento en technical writing, comencé a mejorar mis habilidades de escritura. Eso me reconectó con una pasión perdida, la escritura. Me había olvidado de esa pequeña niña a la que le encantaba escribir historias. En todos estos años de mi vida adulta, no me había reconectado con eso. Entonces me di cuenta que necesitaba un blog, tenía que tener un blog. Y WordPress.com vino a mi encuentro otra vez.</p>\n<h3>Sumergiéndome profundamente</h3>\n<p>Esta vez quería conocer la plataforma más profundamente. La creación de mi blog me ayudó a estar más familiarizada con WordPress y con la construcción de sitios web en general. Blogueé sobre el proceso de escritura, mis pensamientos, revisiones de libros, cualquier cosa que se venga a mi mente. Eso fué en 2015.</p>\n<p>No recuerdo exactamente cómo llegué a los foros de WordPress, tal vez buscando respuestas a algún problema con mi blog. Ahí fue cuando me di cuenta que habían preguntas de otras personas que en realidad podía responder. Empecé a revisar los foros un par de veces por semana. Lo hacía por hobby. Me gustaba que podía ayudar a la gente y aprender más mientras lo hacía.</p>\n<blockquote><p>Alguna gente en mi trabajo revisaba su Facebook durante el tiempo de descanso, yo revisaba los foros de WordPress.com</p></blockquote>\n<p>Fué así que me enteré del trabajo de Happiness Engineer en Automattic. Un Ingeniero de la Felicidad provee soporte técnico a personas que construyen sus sitios o blogs con WordPress.com. Cuando leí la descripción del trabajo, era como leer algo que era perfecto para mí. Adicionalmente me daba la posibilidad de trabajar remotamente e incluso trabajar mientras viajaba. Mi carrera como technical writer estaba estancada después de tres años y estaba segura que no quería retornar a algún trabajo relacionado con Ingeniería Industrial.</p>\n<p>Mi historia sobre mi postulación a Automattic es muy larga. Para resumirlo, no entré a la primera vez. Tuve que hacer el periodo de prueba 2 veces y postulé como 3 veces en general. Tuve que aprender HTML y CSS. Pero después de casi un año y medio entre estas postulaciones y los periodos de prueba, finalmente obtuve el trabajo. WordPress se convirtió en la fuente principal de ingreso.</p>\n<h3>Construyendo una Comunidad</h3>\n<p>Fue en este trabajo que aprendí sobre las comunidades de WordPress en el mundo y los WordCamps. Y cuando alguien me preguntó cómo es la comunidad de WordPress de donde eres? No tenía respuesta. No sabía. ¿Había alguna comunidad?</p>\n<p>Muy pronto después de darme cuenta que no había ninguna comunidad, empecé a buscar más información sobre lo que era necesario para organizar una. Hablé de la idea con algunos colegas y me dieron buenas perspectivas. Pero todavía me debatía dentro de mi, ¿quien empezaría esta comunidad? ¿Sería yo? No podía ser. Era cierto que proveía soporte técnico para los blogs y páginas web, pero no sabía nada de código o desarrollo de plugins o temas.</p>\n<blockquote><p>Tenía que ser alguien más, un experto desarrollador en WordPress, no yo.</p></blockquote>\n<p>Después de tratar de ver el interés alrededor mío, me di cuenta que la única manera de encontrar a estos miembros de la comunidad era empezando la comunidad. Y es así como la comunidad de Cochabamba nació. Eso fue hace 3 años.</p>\n<p>Tuvimos subidas y bajadas, probablemente como cualquier comunidad. Aunque Cochabamba no es una ciudad grande, tuvimos problemas encontrando un lugar accesible a todos, que no incurría en grandes costos. Tuvimos gente viniendo de todo tipo de experiencias de WordPress, desde gente con vasta experiencia hasta gente que no tenía experiencia para nada pero que quería aprender. El Covid19 en realidad nos ayudó a que la comunidad crezca cuando las reuniones se volvieron virtuales.</p>\n<h3>Hablando para contribuir</h3>\n<p>La comunidad de WordPress también despertó en mí una parte en la que nunca pensé que estaría interesada, hablar en público. Tuve la oportunidad de ser ponente en el WordCamp México, WordCamp Guayaquil y el WordCamp Colombia online. Empecé a adquirir confianza y disfrutar de la oportunidad de conectar con otras comunidades y conocer gente que estaba en caminos similares. No todos ellos eran desarrolladores como uno tiende a imaginar en una comunidad de WordPress, muchos como yo comenzaron solo como bloggers.</p>\n<p>Finalmente, después de 3 años, decidimos organizar el primer WordCamp. Nunca me imaginé organizando ningún WordCamp de ningún tipo, yo, bastante tímida, hablando con patrocinadores, contactando compañías para patrocinarnos, liderando un grupo de gente con diferentes talentos y backgrounds. Estoy muy feliz de decir que he aprendido mucho de esta experiencia.</p>\n<p>En todos estos años, mi carrera ha dado un giro dramático.</p>\n<blockquote><p>Gracias a WordPress he podido encontrar un buen trabajo, trabajar remotamente, y ayudar a construir algo en mi comunidad que ayuda a que la gente aprenda nuevas habilidades y encuentre oportunidades laborales.</p></blockquote>\n<p>No podría estar más agradecida por todas las cosas buenas que WordPress me ha dado.</p>\n<p>The post <a rel=\"nofollow\" href=\"https://heropress.com/essays/from-blogging-to-wordpress-communities-a-bolivian-tale/\">From Blogging to WordPress Communities: A Bolivian tale &#8211; De Blogger a comunidades de WordPress: Una historia boliviana</a> appeared first on <a rel=\"nofollow\" href=\"https://heropress.com\">HeroPress</a>.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 02 Jun 2021 12:00:46 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"Carla Doria Medina\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:16;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:60:\"WPTavern: Chrome Canary Adds Flag for Disabling FLoC Testing\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=117580\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:165:\"https://wptavern.com/chrome-canary-adds-flag-for-disabling-floc-testing?utm_source=rss&utm_medium=rss&utm_campaign=chrome-canary-adds-flag-for-disabling-floc-testing\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:6223:\"<p>Google&rsquo;s controversial Federated Learning of Cohorts (<a href=\"https://web.dev/floc/\">FLoC</a>) experiment now has a feature flag within Chrome Canary (the nightly build of Chrome for developers) that allows users to opt out. </p>\n\n\n\n<p>In January 2020, Google announced its plans to <a href=\"https://blog.chromium.org/2020/01/building-more-private-web-path-towards.html\">discontinue support for third-party cookies in Chrome</a> within two years. The first bits and pieces of the company&rsquo;s <a href=\"https://www.privacysandbox.com/\">Privacy Sandbox</a> initiative started landing in Chrome in December 2020 with an initial flag to disable it. FLoC, Google&rsquo;s proposed replacement for third-party cookies, began testing as a&nbsp;<a rel=\"noreferrer noopener\" href=\"https://web.dev/floc/\" target=\"_blank\">developer origin trial</a>&nbsp;in Chrome at the end of March 2021.</p>\n\n\n\n<p>In Canary, users can navigate to <a rel=\"noreferrer noopener\" href=\"https://flags/#privacy-sandbox-settings-2\" target=\"_blank\">chrome://flags/#privacy-sandbox-settings-2</a> to find the Privacy Sandbox Settings 2 flag.</p>\n\n\n\n<div class=\"wp-block-image\"><img /></div>\n\n\n\n<p>Relaunch Canary to save the changes. This will unlock the box that allows users to either reset their FLoC group or opt out of FLoC entirely. The new setting is available under <a href=\"chrome://settings/privacySandbox\">chrome://settings/privacySandbox</a>:</p>\n\n\n\n<div class=\"wp-block-image\"><img /></div>\n\n\n\n<p>If the setting remains enabled, which is the default, Chrome will group users into cohorts based on recent browsing activity and then advertisers select ads for the entire group. Browsing activity for the individual is &ldquo;kept private on your device,&rdquo; but Chrome certainly has access that information by way of mediating the cohorts. Google notes that the trial is currently only active in <a href=\"https://privacysandbox.com/proposals/floc\">some regions</a>.</p>\n\n\n\n<p>Users can also opt out of Privacy Sandbox trials&nbsp;on the same page. Current trials include the following:</p>\n\n\n\n<ul><li>Advertisers and publishers can use FLoC</li><li>Advertisers and publishers can study the effectiveness of ads in a way that does not track you across sites</li></ul>\n\n\n\n<p>Google has not specified how users would opt out of FLoC if the experiment is successful and moves forward. Organizations and site owners who are currently on the fence about it may go either way depending on how easy it is for Chrome users to opt out themselves. </p>\n\n\n\n<p>&ldquo;Instead of comparing FLoC to its predecessor, third party cookies, I feel it&rsquo;s actually more like the Facebook Pixel &ndash; mostly in the sense that it&rsquo;s controlled by a single surveillance capital company,&rdquo; WordPress core contributor Roy Tanck commented on the <a href=\"https://core.trac.wordpress.org/ticket/53069\">trac ticket</a> for the discussion. &ldquo;FLoC may not be quite as nefarious, but I feel it should be something website owners consciously opt into.</p>\n\n\n\n<p>&ldquo;WordPress has always advocated for a free and open web, and FLoC appears to actively harm that goal. I think WordPress should take a stand against this, and do it now.&rdquo;</p>\n\n\n\n<p>A few others have chimed in on the ticket recently as <a href=\"https://wptavern.com/joomla-blocks-floc-by-default-drupal-moves-to-block-floc-in-upcoming-9-2-release\">other open source projects have started blocking FLoC by default</a>. Plugin developer David McCan&rsquo;s comment referenced <a href=\"https://www.flurry.com/blog/ios-14-5-opt-in-rate-att-restricted-app-tracking-transparency-worldwide-us-daily-latest-update/\">analytics data published in early May</a>&nbsp;suggesting that US users choose to opt out of tracking 96 percent of the time following the changes in iOS 14.5.</p>\n\n\n\n<p>&ldquo;There is no doubt that coming down on the side of user privacy vs user tracking is the right thing to do,&rdquo; McCan said. &ldquo;Which headline would we rather see? &lsquo;By default millions of WordPress websites are allowing users to be tracked&rsquo; or &lsquo;WordPress takes steps to block user tracking making millions of websites around the world safe to visit?&rsquo;</p>\n\n\n\n<p>&ldquo;We already have a policy that opt-in by default tracking&rsquo; is not allowed in plugins hosted by WordPress. This is because we recognize the responsibility and benefit of protecting user privacy.&rdquo;</p>\n\n\n\n<p>During <a href=\"https://adsonair.withgoogle.com/events/google-marketing-live-2021?utm_medium=referral&utm_source=keyword&utm_campaign=20210527US\">a live marketing event</a> Google hosted at the end of last week, Jerry Dischler, vice president and general manager of Ads, addressed the recent privacy concerns surrounding FLoC. </p>\n\n\n\n<p>&ldquo;We&rsquo;ll be using these [Privacy Sandbox] APIs for our own ads and measurement products just like everyone else, and we will not build any backdoors for ourselves,&rdquo; Dischler said.</p>\n\n\n\n<p>Dischler also reaffirmed Google&rsquo;s commitment to moving away from third-party cookies.</p>\n\n\n\n<p>&ldquo;Third-party cookies and other proposed identifiers that some in the industry are advocating for do not meet the rising expectations consumers have when it comes to privacy,&rdquo; he said. &ldquo;They will not stand up to rapidly evolving regulatory restrictions; they simply cannot be relied on in the long term.&rdquo;</p>\n\n\n\n<p>Google bears the burden of reassuring advertisers that effective advertising is still possible as the company moves beyond tracking cookies. It is aiming to future-proof advertisers&rsquo; measurement of campaign performance with what it claims are &ldquo;privacy-safe solutions.&rdquo; The company is pushing hard for advertisers to adopt these new techniques, <a href=\"https://blog.google/products/ads-commerce/future-proof-measurement-privacy-safe-solutions/\">promising more actionable first-party conversion data</a>.</p>\n\n\n\n<p>Although consumer expectations have changed, FLoC may not be the answer to the need for a privacy-preserving advertising model. So far it looks like Google will have an uphill battle to gain more broad support from browsers, advertisers, and consumers. </p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 02 Jun 2021 03:12:16 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:17;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:79:\"WPTavern: Ujwal Thapa, Co-Founder of the WordPress Nepal Community, Passes Away\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=117594\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:199:\"https://wptavern.com/ujwal-thapa-co-founder-of-the-wordpress-nepal-community-passes-away?utm_source=rss&utm_medium=rss&utm_campaign=ujwal-thapa-co-founder-of-the-wordpress-nepal-community-passes-away\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4028:\"<p>&ldquo;Here is my resume of professional Failures,&rdquo; began his <a href=\"https://np.linkedin.com/in/ujwalthapa\">LinkedIn profile</a>. On a site where most are apt to share success, <a href=\"https://www.whynepal.com/\">Ujwal Thapa</a> started with nearly a two-decade history of dreams that did not quite work out. Or, maybe they did in some ways.</p>\n\n\n\n<p>Much of <a href=\"https://twitter.com/search?q=%23ujjwalthapa\">Nepal is reeling</a> from <a href=\"https://nepalontheweb.com/2021/06/01/ujwal-thapa-founder-of-bibeksheel-nepali-party-passes-away/\">his death today</a>. In the past week, he had been battling multiple health complications from Covid-19. The 44-year-old activist was the founder of the Bibeksheel Nepali political party, originally a peaceful movement that fought against political corruption and social injustice.</p>\n\n\n\n<p>However, many Nepali WordPress users will remember him as a co-founder of their community. The <a href=\"https://www.facebook.com/groups/wordpressnepal\">WordPress Nepal</a> Facebook group has now grown to nearly 8,000 members.</p>\n\n\n\n<ul><li class=\"blocks-gallery-item\"><img />WordCamp Nepal 2014</li><li class=\"blocks-gallery-item\"><img />2015 WordCamp Kathmandu</li><li class=\"blocks-gallery-item\"><img />WordPress Meetup In Biratnagar</li><li class=\"blocks-gallery-item\"><img />WordPress Nepal Founders</li></ul>Photos shared by Ganga Kafle.\n\n\n\n<p>In a <a href=\"https://nepalbuzz.com/people/nepali-wordpress-stars-2015-4/\">2015 interview</a> with Nepal Buzz, he noted his proudest WordPress-related achievement as building this community. &ldquo;That is not just creating tens and hundreds, but thousands of jobs in Nepal, and has the potential to create tens of thousands more, which basically means we are contributing to the nation by creating opportunities where there are none.&rdquo;</p>\n\n\n\n<p>Later in the interview, he said he was a provoker, and he continued to live the remainder of his life in that belief.</p>\n\n\n\n<p>&ldquo;I believe that the easiest way to bring change is to align all the positive people in the same direction,&rdquo; he said. &ldquo;So my job is to provoke and bring together people with similar interests, and align them in a similar direction, creating the change that they would never believe could come.&rdquo;</p>\n\n\n\n<p>Thapa founded <a href=\"http://digital.com.np/\">Digital Max Solutions</a> in 2002, amidst the Nepalese Civil War. At one point, the company had as many as 35 employees. Over 30 eventually moved on to start their own IT businesses. He also created the Entrepreneurs for Nepal Facebook group, which now has over 100,000 members. From May 2013 to October 2019, he served as the Chairperson of the BibekSheel Nepali party.</p>\n\n\n\n<p>Many in Nepal&rsquo;s WordPress community owe him a debt of gratitude for having the vision of building off the core platform. WordPress.org Themes Team representative Ganga Kafle credits at least part of his career and deep involvement with WordPress to Thapa, helping him land an initial internship with Web Experts Nepal.</p>\n\n\n\n<p>&ldquo;Ujwal Thapa is the person who introduced WordPress to me in 2012 in a meetup,&rdquo; he said. &ldquo;After that, I was in close relation with him. In 2014, after my graduation, I went to Ujwal and asked him about the internship, and he took me to that office and talked with the boss and finalized for the internship. That&rsquo;s how I jumped in WordPress, and now I am one of the leads of Themes Team.&rdquo;</p>\n\n\n\n<p>&ldquo;Once he said to me, &lsquo;WordPress is giving so much things for free, why you hesitate to put <em>Proudly Powered by WordPress</em>?\'&rdquo; Kafle shared of the mentor, referencing the typical credit line in many WordPress site footers. &ldquo;He was in love with WordPress.&rdquo;</p>\n\n\n\n<p>You can view Thapa&rsquo;s WordCamp presentations as a <a href=\"https://wordpress.tv/speakers/ujwal-thapa/\">speaker</a> and <a href=\"https://wordpress.tv/speakers/ujwal-thapa-moderator/\">panel moderator</a> via WordPress.tv.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 01 Jun 2021 19:08:27 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:18;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:70:\"WPTavern: Breaking Down WPMarmite’s 127-Shop Full Site Editing Study\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=117541\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:179:\"https://wptavern.com/breaking-down-wpmarmites-127-shop-full-site-editing-study?utm_source=rss&utm_medium=rss&utm_campaign=breaking-down-wpmarmites-127-shop-full-site-editing-study\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:6698:\"<p class=\"has-drop-cap\">Earlier today, the WPMarmite team released a massive <a href=\"https://wpmarmite.com/en/fse-study/\">study of 127 WordPress theme shops</a>. It primarily focused on integration with the block editor. The team also surveyed 22 of the shops directly to dive deeper into what the future might look like when the Full Site Editing (FSE) project is entirely bundled into the core platform, which could be around the WordPress 5.9 release in late 2021.</p>\n\n\n\n<p>FSE is not a single thing that WordPress will drop on users all at once. It is an ongoing project with several independent but related components that will ship based on their readiness. The goal is to move the block system beyond just content, bringing blocks into all facets of a site&rsquo;s front end.</p>\n\n\n\n<p>Single post/page template editing and block-based widgets are expected to <a href=\"https://wptavern.com/full-site-editing-is-partly-a-go-for-wordpress-5-8\">arrive with WordPress 5.8</a> in July. These are two user-facing components that serve as stepping stones toward a complete FSE experience.</p>\n\n\n\n<p>Putting study into context, FSE-related discussion for theme authors is mainly about block templates and global styles. These components will create a drastic change to theme development where templates are made up of blocks themselves and styles are configured via a JSON file. For the first time in WordPress&rsquo;s history, users will be able to directly edit both from an interface in their site admin without knowing any code.</p>\n\n\n\n<img />Upcoming site editor with templates (left panel) and global styles (right panel).\n\n\n\n<p><a href=\"https://wptavern.com/wordpress-5-0-bebo-released-lays-a-foundation-for-the-platforms-future\">WordPress 5.0</a>, the first version to include blocks, launched two and a half years ago. Theme authors have had time to catch up, migrate old projects, and create new ones. WPMarmite&rsquo;s study gives a solid, at-a-glance view of how shops are fairing now that the shockwave of the block system&rsquo;s introduction has long settled.</p>\n\n\n\n<h2>The Study: Block Editor Support</h2>\n\n\n\n<p class=\"has-drop-cap\">The primary takeaway from the 127-shop study was that 57% of them featured their compatibility with the block editor in some way. Short of testing themes from each site individually or directly asking them all, there is no other way to know how many actually offer support. My guess is the number is not much higher.</p>\n\n\n\n<p>Technically, all themes &ldquo;work&rdquo; with the WordPress editor. However, not all are designed from the ground up to offer an ideal experience with it. As a commercial theme shop, you would want to mention this support somewhere in your marketing.</p>\n\n\n\n<p>Even if that 57% is dead-on, a shop featuring block support does not always mean solid support. In my experience of viewing themes and their demos almost daily, &ldquo;support&rdquo; often means minimal adjustments to make sure the basics do not break the site. That number is far lower if you are counting themes that offer an immersive block-editor experience.</p>\n\n\n\n<p>The number that was surprising but not surprising was the percentage of shops currently providing block patterns. Only 3% (4 in total) bundle custom patterns.</p>\n\n\n\n<img />Inserting a block pattern into the WordPress editor.\n\n\n\n<p>While the patterns API has only been around since <a href=\"https://wptavern.com/wordpress-5-5-eckstine-introduces-block-directory-block-patterns-and-automatic-updates-for-themes-and-plugins\">WordPress 5.5</a>, released less than a year ago, it is one of those crucial tools for the future of theme development. I thought the number was low. I just did not know it was <em>3% low</em>.</p>\n\n\n\n<p>If 57% of shops offer some level of block editor support, why are they stopping short of complete integration and not using the most powerful features at their disposal?</p>\n\n\n\n<p>Patterns are part of that immersive experience I mentioned. If a shop does not have any, I would question how much it actually supports the block system.</p>\n\n\n\n<p>In the WordPress.org free theme directory, that percentage is much higher. Currently, 514 themes <a href=\"https://wordpress.org/themes/tags/block-styles/\">add block editor styles</a>, and 120 <a href=\"https://wordpress.org/themes/tags/block-patterns/\">bundle at least one pattern</a>.</p>\n\n\n\n<p><em>Note: if you <a href=\"https://wordpress.org/themes/tags/block-patterns+block-styles/\">combine those two filters</a>, the directory lists 107 themes. Some could be missing a tag.</em></p>\n\n\n\n<p>One data point the team missed was how many of these theme shops integrated with third-party page builders. I would wager that most of the ThemeForest authors support at least one additional builder, maybe two. It is almost a sure-fire bet that Elementor and Beaver Builder top that list. While the study was on the core block system, this would have given us a more accurate look at the current theme market.</p>\n\n\n\n<h2>The Survey: FSE and the Future</h2>\n\n\n\n<p class=\"has-drop-cap\">Of the 127 shops, WPMarmite surveyed 22 of them with questions around FSE. The most telling statistic is that 82% of shops follow FSE-related news, citing WP Tavern as one of their sources. <em>Thank you, dear readers.</em></p>\n\n\n\n<p>On a more serious note, 86% of those surveyed believe that FSE will be a breakthrough for users. I am not surprised at this. Many features that theme authors have attempted to accomplish over the last decade are being rolled into the Gutenberg plugin. It is a slow process, but having the pieces built into WordPress provides standard APIs that will make themers&rsquo; jobs easier. In turn, this will allow them to launch features that users ask for with less code and a faster turnaround.</p>\n\n\n\n<p>The number I want to see higher is those actively preparing for block templates and global styles. According to the survey, only 22% are doing so.</p>\n\n\n\n<p>These components are continually in flux. However, the foundational elements are far more stable than they were just a few months ago. This makes it a good moment for others to start diving in &mdash; there is less chance of breaking changes with the system. I expect the percentage of commercial theme shops working with FSE to jump throughout the year. However, it could be a slow process getting to the point where such themes are commonplace. We may need to see a breakout block theme that quickly rises in popularity first. Everyone else will fall in line.</p>\n\n\n\n<p>In the meantime, if anyone wants to experiment with FSE, there are <a href=\"https://wordpress.org/themes/tags/full-site-editing/\">six themes listed</a> in the directory.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 01 Jun 2021 00:36:21 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:19;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:117:\"Gutenberg Times: Why WordPress Agencies Are Embracing Gutenberg – Help Test WordPress 5.8  – Weekend Edition #171\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://gutenbergtimes.com/?p=17922\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:118:\"https://gutenbergtimes.com/why-wordpress-agencies-are-embracing-gutenberg-help-test-wordpress-5-8-weekend-edition-171/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:12753:\"<p>Howdy, </p>\n\n\n\n<p>Memorial Day is a federal holiday, honoring the men and women who died while serving in the U.S. military. Although a sad occasion for many people in the US, it is also the first long weekend after a cold winter. Many of you will hopefully take the opportunity to spend it leisurely outside with family and friends, away from the screens. Look up from your phone.  The content keeps until Tuesday when you get back to work.  </p>\n\n\n\n<p>After catching up on my publishing schedule, I will spend the weekend with friends at the <a href=\"https://sarasotacricket.org/\">Cricket Club</a>, and at the <a href=\"https://thedali.org/\">Dali Museum in St. Petersburg</a>. Let me know about your weekend! </p>\n\n\n\n\n\n<p>With the release of Gutenberg 10.7 version, we are in the &#8220;feature freeze&#8221; which means from now to the first beta release on June 8th, 2021, it&#8217;s all about bug fixing. Below you&#8217;ll find several ways how you can help make it a great release. </p>\n\n\n\n<blockquote class=\"wp-block-quote is-style-default\"><p><em>There is something to be said that 5.8 is probably the biggest release for Gutenberg since 5.0 and in terms of merged code might even be bigger.</em></p><cite>Riad Benguella, editor release lead for WordPress 5.8, in #core-editor meeting 5/26/2021</cite></blockquote>\n\n\n\n<p>Yours 💕,<br />Birgit</p>\n\n\n\n<p>PS: Thank you to all who shared great resources on wp.data last week! If you used the wp.data package in your blocks, I am looking for real life examples. Ping me in Slack @bph or <a href=\"mailto:pauli@gutenbergtimes.com\">email me</a>. </p>\n\n\n\n<p>PPS: Huge &#8220;Thank You&#8221; to <strong><a href=\"https://twitter.com/get_dave\">Dave Smith</a> </strong>for <a href=\"https://app.mypodcastreviews.com/podcasts/k7H9zO/reviews/6950436\">his wonderful review of our podcast.</a> <em>Grzegorz (Greg) Ziolkowski</em> is on vacation, and we&#8217;ll record the next Gutenberg Changelog on Friday Jun 11, covering both releases 10.7 and 10.8. Send us your questions to <a href=\"mailto:changelog@gutenbergtimes.com\">changelog@gutenbergtimes.com</a>. </p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<p>A new call for testing is now available from the FSE outreach program! <strong>Deadline: Jun 9th,</strong> 2021. <strong>Anne McCarthy</strong> sends you down the rabbit hole to create a <a href=\"https://make.wordpress.org/test/2021/05/26/fse-program-testing-call-7-polished-portfolios/\"><strong>Polished Portfolio Pages</strong></a>, using the Template Editor and your personal Query Blocks design. She guides you with nice ideas for your Portfolio page, the accompanying template and shares designs from the web. <a href=\"https://wptavern.com/fse-outreach-7-building-a-portfolio-in-the-upcoming-template-editing-mode\">On WPTavern</a>, <a href=\"https://twitter.com/justintadlock\"><strong>Justin Tadlock</strong></a> followed along. He shared his page&#8217;s source code and the joy and frustrations along the way.</p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<p><a href=\"https://twitter.com/HughRoberts05\"><strong>Huge W. Roberts</strong></a> introduces you to the <a href=\"https://hughsviewsandnews.com/2021/05/27/5-wordpress-photo-editing-tools-available-to-use-on-the-block-editor/\"><strong>Five Photo Editing Tools Available To Use On The Block Editor</strong></a> and explains in detail how to crop, resize and zoom and other features of the Image block. </p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<p>Speaking of which, WordPress 5.8 will bring a new feature to the image and cover block: <a href=\"https://wordpress.org/news/2021/05/coloring-your-images-with-duotone-filters/\"><strong>Coloring Your Images With Duotone Filters</strong></a>, created by <strong>Alex Lende</strong>. Details about this  wonderful new feature are now available on the WordPress News site. Using the Gutenberg plugin, you don&#8217;t have to wait until July 20, 2021 for WordPress 5.8 to come out. You can use today! </p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<p><a href=\"https://themeshaper.com/2021/05/27/blockbase-a-parent-theme-for-block-themes/\"><strong>Blockbase</strong></a> &#8220;This block theme attempts to make all the common theme styles configurable in theme.json, and provides the CSS needed to make them work until the blocks themselves support these settings.&#8221; wrote <a href=\"https://twitter.com/scruffian\"><strong>Ben Dwyer</strong></a>  <a href=\"https://github.com/Automattic/themes/\">The Blockbase themes</a> is available via GitHub. Justin Tadlock at WPTavern kick the tires of it. He concluded: &#8220;It is the modern-day <a href=\"https://underscores.me/\">Underscores (_s)</a> for blocks, and the WordPress theme design community will need such a project moving forward. They will need a starting point and educational tool, and Blockbase is just that.&#8221; You&#8217;d be interested in more details.</p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<p><strong>Hector Pietro</strong> published <a href=\"https://make.wordpress.org/core/2021/05/27/whats-new-in-gutenberg-10-7-26-may/\"><strong>What’s new in Gutenberg 10.7?</strong></a>  The release notes for this week&#8217;s Gutenberg plugin release. This is the last version of Gutenberg features that will be coming to WordPress core. What didn&#8217;t make it? Navigation screen and block, Post Author Block and the Refactor of the Gallery Block. The latter is a bit disappointing as I was very much looking forward to building galleries with image blocks. Ah, well.</p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<p><strong>The new Widget screen</strong> made it and could use some major testing round: Use the WordPress Beta Tester plugin, enable the nightly stream on the bleeding edge channel and start testing specially for backwards compatibility with existing themes and plugins and configuration. <a href=\"https://pantheon.io/register\">Pantheon gives Developer 2 free testing sites</a>, and has a powerful <a href=\"https://pantheon.io/docs/migrate\">migration tool </a>for cloning existing sites for testing. It&#8217;s what we will use for our long-time client sites. If you feel you don&#8217;t have enough times, but also don&#8217;t want to see any surprises, you can install the <a href=\"https://wordpress.org/plugins/classic-widgets/\"><strong>Classic Widgets plugin</strong></a> by core contributors <strong>Tonya Mork</strong> and <strong>Andrew Ozz</strong>. </p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<p><strong>Allison Rivers </strong>wrote <a href=\"https://torquemag.io/2021/05/why-wordpress-agencies-are-embracing-gutenberg/\"><strong>Why WordPress Agencies Are Embracing Gutenberg</strong></a> for the Torque Magazine. Rivers interviewed 15 Agency leaders in the WordPress space who shared why they are slowly moving away from 3rd party page builders favoring the block editor and the rich ecosystem around it, with Generate Blocks, Kadence Blocks, Toolset, Stackable, Genesis Blocks and more. </p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<p>The above article was a nice palate cleanser after the rather lively debate on <a href=\"https://www.youtube.com/watch?v=xLiDu7WwCRI&t=1s\"><strong>This Week in WordPress #164</strong></a> with Nathan Wrigley and Spencer Forman. The reasoning from the agency leaders might also explain why hard-core Elementor fans get so agitated. Big &#8220;Thank You&#8221; to Nathan Wrigley for having me on the show. 🤟 It was quite entertaining, to say the least. </p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<p>In case you missed it,  I thoroughly enjoyed <strong>Nathan Wrigley&#8217;s</strong> interview with <strong>Benjamin Intal</strong>, of <a href=\"https://wpstackable.com/\">Stackable </a> on the  WP Tavern Jukebox podcast, and <strong><a href=\"https://wptavern.com/podcast/3-benjamin-intal-on-why-hes-betting-his-business-on-blocks\">Why he is betting his business on blocks</a>.</strong></p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<p><a href=\"https://twitter.com/karks88\"><strong>Eric Karkovack</strong></a> did a deep dive into the plugin <a href=\"https://wordpress.org/plugins/block-visibility/\">Block Visibility</a> by Nick Diego and shared his insights in his article <a href=\"https://speckyboy.com/edit-block-visibility-wordpress-gutenberg-editor/\"><strong>An Easy Way to Edit Block Visibility in the WordPress Gutenberg Editor</strong></a> .I mentioned the plugin multiple times before.  If you didn&#8217;t get a chance to test it on one of your projects, Karkovack&#8217;s article gives you definitely more insight in how it works, and what use cases are suitable for it. <br />I also discovered the plugin <strong><a href=\"https://wordpress.org/plugins/conditional-blocks/\">Conditional Blocks</a>  by <a href=\"https://twitter.com/morganhvidt\">Morgan Hvidt</a> </strong>with a slightly different approach. Both plugins also provide pro versions via their respective websites. </p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<h2 id=\"events\">Upcoming WordPress Events</h2>\n\n\n\n<p><strong>June 7 &#8211; 9th, 2021</strong><br /><strong><a href=\"https://europe.wordcamp.org/2021/\">WordCamp Europe</a></strong><br />A virtual event and contributor day. <a href=\"https://europe.wordcamp.org/2021/call-for-sponsors/\">Call for sponsors is open.</a></p>\n\n\n\n<p><strong>🎉</strong>  Gutenberg Times is a media partner of WordCamp Europe 2021 </p>\n\n\n\n<p><strong>June 10th, 2021</strong><br /><strong><a href=\"https://www.meetup.com/SF-WordPress-Users/events/278491308\">WordPress &#8220;Mega Meetup&#8221;: Plugins That Keep Websites Running</a></strong></p>\n\n\n\n<p><strong>June 20 &#8211; 26, 2021</strong><br /><strong><a href=\"https://japan.wordcamp.org/2021/\">WordCamp Japan</a></strong><br /><em>The schedule has been posted. Most sessions will be in Japanese, with exceptions, I think&#8230; </em></p>\n\n\n\n<p><strong>June 24, 2021 </strong><br /><strong><a href=\"https://attend.wpengine.com/summit-us-2021/\">WPEngine Summit 2021</a></strong><br /><em>The digital breakthrough conference</em></p>\n\n\n\n<p><strong>June 24 &#8211; 26, 2021</strong><br /><strong><a href=\"https://cochabamba.wordcamp.org/2021/\">WordCamp Cochabama</a></strong> (Colombia) </p>\n\n\n\n<p><strong>July 17 + 18th, 2021</strong><br /><strong><a href=\"https://santaclarita.wordcamp.org/2021/\">WordCamp Santa Clarita</a></strong><br />Calls for speakers was extended to June 5th, 2021.</p>\n\n\n\n<p><strong>July 23, 2021</strong><br /><a href=\"https://www.wordfest.live/\"><strong>WordFest Live </strong></a>&#8211; <em>The </em>festival of WordPress</p>\n\n\n\n<p><strong>September 21 + 22, 2021</strong><br /><a href=\"https://2021.wpcampus.org/\"><strong>WPCampus 2021 Online</strong></a><br />&#8220;A free online conference for web accessibility and WordPress in higher education.&#8221; <a href=\"https://2021.wpcampus.org/proposals\">Call for Proposal is up</a> and proposal are <strong>due May 26, 2021</strong></p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<p>On the<a href=\"https://wpcalendar.io/online/\"> <strong>Calendar for WordPress Online Events</strong> </a>you can browse a list of the upcoming WordPress Meetups, around the world, including WooCommerce, Elementor, Divi Builder and Beaver Builder meetups. </p>\n\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<p class=\"has-text-align-center\"><strong>Don&#8217;t want to miss the next Weekend Edition? </strong></p>\n\n\n\n<form class=\"wp-block-newsletterglue-form ngl-form ngl-portrait\" action=\"https://gutenbergtimes.com/feed/\" method=\"post\"><div class=\"ngl-form-container\"><div class=\"ngl-form-field\"><label class=\"ngl-form-label\" for=\"ngl_email\">Type in your Email address to subscribe.</label><div class=\"ngl-form-input\"><input type=\"email\" class=\"ngl-form-input-text\" name=\"ngl_email\" id=\"ngl_email\" /></div></div><button class=\"ngl-form-button\">Subscribe</button><p class=\"ngl-form-text\">We hate spam, too and won&#8217;t give your email address to anyone except Mailchimp to send out our Weekend Edition</p></div><div class=\"ngl-message-overlay\"><div class=\"ngl-message-svg-wrap\"></div><div class=\"ngl-message-overlay-text\">Thanks for subscribing.</div></div><input type=\"hidden\" name=\"ngl_list_id\" id=\"ngl_list_id\" value=\"26f81bd8ae\" /><input type=\"hidden\" name=\"ngl_double_optin\" id=\"ngl_double_optin\" value=\"yes\" /></form>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n\n<p>Featured Image: Photo by <a href=\"https://unsplash.com/@ravipalwe?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText\">Ravi Palwe</a> on <a href=\"https://unsplash.com/s/photos/lego?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText\">Unsplash</a></p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sat, 29 May 2021 18:23:58 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"Birgit Pauli-Haack\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:20;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:83:\"WPTavern: The Automattic Theme Team Announces Blockbase, Its New Block Parent Theme\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=117361\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:209:\"https://wptavern.com/the-automattic-theme-team-announces-blockbase-its-new-block-parent-theme?utm_source=rss&utm_medium=rss&utm_campaign=the-automattic-theme-team-announces-blockbase-its-new-block-parent-theme\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:6504:\"<img />Blockbase WordPress theme as seen from the site editor.\n\n\n\n<p class=\"has-drop-cap\">Any WordPress company that builds and maintains themes worth its salt is already doing at least some preliminary work as WordPress inches ever closer to bundling its upcoming block theme system. Automattic&rsquo;s Theme Team is no exception. Ben Dwyer <a href=\"https://themeshaper.com/2021/05/27/blockbase-a-parent-theme-for-block-themes/\">announced the team&rsquo;s new Blockbase parent theme</a> on the Theme Shaper blog yesterday. It includes support for global styles and block templating.</p>\n\n\n\n<p>The theme is based on the classic, block-editor-ready <a href=\"https://wptavern.com/automattic-launches-the-blank-canvas-wordpress-theme-for-building-single-page-websites\">Blank Canvas</a> project that Automattic launched in January. <a href=\"https://github.com/Automattic/themes/commit/8c6b2f068f9a201dbf8e564aeb9ebdf19c319b7a\">Until a few days ago</a>, it was even named Blank Canvas Blocks. I have been checking in on the team&rsquo;s work in the past couple of months, waiting to see how Blockbase and <a href=\"https://github.com/Automattic/themes/tree/trunk/mayland-blocks\">Mayland Blocks</a>, a child theme based on the team&rsquo;s original Mayland, were coming along.</p>\n\n\n\n<p>The team has built a well-rounded system that should keep them from overhauling each block theme they create for WordPress.com every time there is a change. For theme authors who have yet to dip their toes into the block-theme pond, it might also be the starting point they need.</p>\n\n\n\n<p>The Holy Grail of some block theme designers will be creating a project with little more than a <code>theme.json</code> file. The goal: let WordPress generate all the CSS via setting and style configurations. It will never be possible for all theme authors to achieve their design goals through this &mdash; most will need at least <em>some</em> custom CSS. And, whether such a goal is <em>A Good Thing</em> remains to be seen.</p>\n\n\n\n<p>Nevertheless, the future of theme design will lean on JSON-configured and generated styles. Blockbase leverages this system to create a standardized set of guideposts for its eventual child themes. This ensures that creators are not continually updating their themes as block styling rapidly evolves.</p>\n\n\n\n<p>Blockbase serves as a bridge between what is currently possible to configure via a <code>theme.json</code> file and what will be possible in the future.</p>\n\n\n\n<p>It is the modern-day <a href=\"https://underscores.me/\">Underscores (_s)</a> for blocks, and the WordPress theme design community will need such a project moving forward. They will need a starting point and educational tool, and Blockbase is just that.</p>\n\n\n\n<p>The <a href=\"https://wptavern.com/gutenberg-10-7-integrates-with-the-pattern-directory-introduces-new-block-design-controls\">latest version</a> of the Gutenberg plugin only covers a fraction of what it and, eventually, WordPress will handle in the coming months and years. However, it does allow theme authors to add custom settings via the <code>settings.custom</code> key, creating their own CSS variables that are automatically output in the site&rsquo;s head. The Theme Team used this feature to their advantage. Where Gutenberg does not currently support a setting, Blockbase has a custom <code>theme.json</code> parameter. The theme then uses the generated CSS variables in its stylesheet. As Gutenberg and WordPress eventually support more of these settings out of the box, the team can simply remove unneeded code.</p>\n\n\n\n<p>The theme is not altogether unopinionated. &ldquo;Blockbase is intended to be a representation of all the theme style settings that we believe should eventually live in Global Styles and be configurable by users,&rdquo; wrote Dwyer. Block theme development could still change in unexpected ways as the system continues to be refined, and the theme will need to change along with it. Bumps in the road should be expected.</p>\n\n\n\n<p>It is a project that soon-to-be and current block themers can learn from. While it is currently <a href=\"https://github.com/Automattic/themes/tree/trunk/blockbase\">available via GitHub</a>, Dwyer said the team can investigate making it a npm package if there is enough interest.</p>\n\n\n\n<p>One of the most unique things the theme does is work with the <code>theme.json</code> settings via PHP. In Blockbase&rsquo;s <code>functions.php</code> file, it <a href=\"https://github.com/Automattic/themes/blob/3c94941e6c4a6829611084db1f9e3dcb2b272154/blockbase/functions.php#L62-L82\">plucks out font-family names registered</a> in the JSON file. It then automatically loads their associated stylesheets from the Google Fonts API. While it is not documented in the code (it should be), I am taking an educated guess that the goal is to allow child theme authors to declare fonts in their own <code>theme.json</code> files and for Blockbase to handle the loading.</p>\n\n\n\n<p>The code is relatively simple. It is the technique that matters.</p>\n\n\n\n<p>As developers grapple with the changing nature of WordPress theme architecture, they will need to find new solutions for some of the old problems they previously solved in a PHP-only world. With most theme configuration moving to JSON and templates to HTML, it can be easy to feel like they are losing that dynamic nature of PHP. It was something reliable, and developers have spent years honing custom systems around the old WordPress.</p>\n\n\n\n<p>The new WordPress delivers a more robust set of design tools out of the box, but it can seem a bit foreign. That is why seeing real-world code examples of how others are handling these features is a vital step in transitioning more theme authors to block-based development.</p>\n\n\n\n<p>This may be a small code sampling, but I am impressed by the clever thinking. In my journey to learn more about how block themes work, I often find myself hitting a brick wall, fighting against the system. This code works <em>with</em> it instead of <em>against</em> it.</p>\n\n\n\n<p>I do not often write several paragraphs about one function that spans a mere 21 lines of code, but I am still a developer at heart and love seeing elegantly simple solutions. It is not about the font-loading technique; it is about solving problems. This code will undoubtedly be copied many thousands of times over in the coming years and modified for many more thousands of uses. If you are a theme developer and do not see it yet, you will.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sat, 29 May 2021 00:00:19 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:21;a:6:{s:4:\"data\";s:11:\"\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:1:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:38:\"HeroPress: Yoast Pivots Diversity Fund\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:29:\"https://heropress.com/?p=3632\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:121:\"https://heropress.com/yoast-pivots-diversity-fund/#utm_source=rss&utm_medium=rss&utm_campaign=yoast-pivots-diversity-fund\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:2606:\"<img width=\"1024\" height=\"512\" src=\"https://heropress.com/wp-content/uploads/2021/05/yoast_banner.jpg\" class=\"attachment-large size-large wp-post-image\" alt=\"\" />\n<p>For the last three and a half years, Yoast has offered a &#8220;diversity fund&#8221;, which funded WordCamp attendance for underrepresented people in tech. The goal was to increase the diversity at WordCamps. It worked very well. According to a <a href=\"https://yoast.com/diversity-fund/\">recent blog post</a>:</p>\n\n\n<blockquote>\n<p>During 2018, 2019, and 2020:</p>\n<ul>\n<li>We were able to sponsor 70 people,</li>\n<li>To join a total of 56 events,</li>\n<li>That were all around Asia, Africa, North America, South America, Europe, and Australia.</li>\n</ul>\n</blockquote>\n\n\n<p>The problem is that in 2020 all that came to a screeching halt when WordCamps stopped happening. But rather than throw up their hands and say &#8220;Oh well!&#8221;, the good folks at Yoast came up with a new plan.</p>\n\n\n\n<h3 id=\"h-the-new-plan\">The New Plan</h3>\n\n\n\n<p>The new plan is to sponsor the same group of people, but to fund their WordPress projects, rather than travel to an event. To quote the same blog post from above:</p>\n\n\n\n<blockquote class=\"wp-block-quote\"><p>So what kind of projects are we looking for? It can be a short-term project, like fixing a simple bug, or a longer-term project like creating a new WordPress theme. That being said, we are looking for projects that aim to be no longer than one WordPress release cycle of three months.</p></blockquote>\n\n\n\n<p>I particularly love this new direction because it feels like a more substantial contribution. Don&#8217;t get me wrong, I think WordCamps are great and important, but supporting someone financially for three months while they build something that the entire world gets to use just feels like a bigger thing.</p>\n\n\n\n<p>Diversity is very important to us here at HeroPress.  We&#8217;ve striven for diversity across multiple metrics, from gender to age, culture, geography, and language. I think that&#8217;s why this project speaks to me more than others.</p>\n\n\n\n<p>So many thanks to Yoast for making this happen.</p>\n\n\n\n<p>If you&#8217;d like more information about the program, check out this <a href=\"https://yoast.com/diversity-fund/\">blog post</a>, and if you&#8217;d like to apply for the fund <a href=\"https://yoast.com/yoast-diversity-fund/apply/\">click here</a>.</p>\n<p>The post <a rel=\"nofollow\" href=\"https://heropress.com/yoast-pivots-diversity-fund/\">Yoast Pivots Diversity Fund</a> appeared first on <a rel=\"nofollow\" href=\"https://heropress.com\">HeroPress</a>.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 28 May 2021 13:03:18 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:22;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:46:\"BuddyPress: BuddyPress 8.0.0 Release Candidate\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"https://buddypress.org/?p=319009\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:66:\"https://buddypress.org/2021/05/buddypress-8-0-0-release-candidate/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:3107:\"<p>The first release candidate for BuddyPress 8.0.0 is now available!</p>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-white-color has-text-color has-background\" href=\"https://downloads.wordpress.org/plugin/buddypress.8.0.0-RC1.zip\">Let&#8217;s test it!</a></div>\n</div>\n\n\n\n<div class=\"wp-block-spacer\"></div>\n\n\n\n<p>&#8220;Release Candidate&#8221; means that we think the new version is ready for release, but with more than 200,000 active installs, hundreds of BuddyPress plugins and Thousands of WordPress themes, it’s possible something was missed. BuddyPress 8.0.0 is slated for release&nbsp;on&nbsp;<strong>June 7, 2021</strong>, but&nbsp;<em>your</em>&nbsp;help is needed to get there — if you haven’t tried 8.0.0 yet,&nbsp;doing it now is a great idea!</p>\n\n\n\n<p>You can test the&nbsp;<a href=\"https://downloads.wordpress.org/plugin/buddypress.8.0.0-RC1.zip\">8.0.0-RC</a>&nbsp;pre-release in 4 ways :</p>\n\n\n\n<ul><li>Try the&nbsp;<a href=\"https://wordpress.org/plugins/bp-beta-tester/\">BP Beta Tester</a>&nbsp;plugin.</li><li><a href=\"https://downloads.wordpress.org/plugin/buddypress.8.0.0-RC1.zip\">Download the release candidate here (zip file)</a>.</li><li>Check out our SVN repository:&nbsp;<code>svn co https://buddypress.svn.wordpress.org/trunk/</code></li><li>Clone our read-only Git repository:&nbsp;<code>git clone git://buddypress.git.wordpress.org/</code></li></ul>\n\n\n\n<p>A detailed changelog will be part of our official release note, but&nbsp;you can get a quick overview by reading the post about the&nbsp;<a href=\"https://buddypress.org/2021/04/buddypress-8-0-0-beta1/\">8.0.0 Beta1</a>&nbsp;release.</p>\n\n\n\n<div class=\"wp-block-spacer\"></div>\n\n\n\n<h2>Plugin and Theme Developers</h2>\n\n\n\n<p>Please test your plugins and themes against BuddyPress 8.0.0. If you find compatibility problems, please be sure to post to this specific&nbsp;<a href=\"https://buddypress.org/support/topic/buddypress-8-0-0-release-candidate/\">support topic</a>&nbsp;so we can figure those out before the final release. We strongly advise you to have a look at the&nbsp;<a href=\"https://bpdevel.wordpress.com/category/development-notes/8-0/\">8.0.0 developer notes</a>&nbsp;to figure out what to focus on during your testing.</p>\n\n\n\n<div class=\"wp-block-spacer\"></div>\n\n\n\n<h2>How you can help</h2>\n\n\n\n<p>Do you speak a language other than English? <a href=\"https://translate.wordpress.org/projects/wp-plugins/buddypress/\">Help us translate BuddyPress into as many languages as possible!</a> This release also marks the <a href=\"https://make.wordpress.org/polyglots/handbook/glossary/#string-freeze\">string freeze</a> point of the 8.0.0 release schedule.</p>\n\n\n\n<p><em><strong>If you think you’ve found a bug</strong>, you can share it with us replying to this <a href=\"https://buddypress.org/support/topic/buddypress-8-0-0-release-candidate/\">support topic</a> or if you’re comfortable writing a reproducible bug report,&nbsp;<a href=\"https://buddypress.trac.wordpress.org/\">file one on BuddyPress Trac</a></em>.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 28 May 2021 04:30:05 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Mathieu Viet\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:23;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:40:\"WPTavern: Happy 18th Birthday, WordPress\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=117346\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:123:\"https://wptavern.com/happy-18th-birthday-wordpress?utm_source=rss&utm_medium=rss&utm_campaign=happy-18th-birthday-wordpress\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4396:\"<p>WordPress is celebrating 18 years today since the first release of the software to the general public. That release post, titled, &ldquo;<a href=\"https://wordpress.org/news/2003/05/wordpress-now-available/\">WordPress Now Available</a>,&rdquo; kicked off an exciting era in the history of the blogosphere where WordPress emerged as an unofficial successor to the abandoned b2/cafelog software. Reading the comments on the first release, you can feel the energy of that time when loyal b2 users were thrilled to have a smooth migration to a new blogging engine that would be maintained.</p>\n\n\n\n<p>One line in that post may have had even more impact on WordPress&rsquo; trajectory than the features contained in the first release: </p>\n\n\n\n<p>&ldquo;<em><a href=\"http://wordpress.org/\">WordPress</a>&nbsp;is available completely free of charge under the GPL license.</em>&ldquo;</p>\n\n\n\n<p>The license it inherited from b2 empowered the WordPress community to make it the powerful CMS that it is today. WordPress now underpins a multi-billion dollar economy of creators, publishers, and merchants who can build just about anything with the world of GPL-licensed extensions available. WordPress&rsquo; vibrant ecosystem has grown to include more than 58,000 free plugins to extend core, and thousands of commercial plugins and services, including hosting companies that cater specifically to its users.</p>\n\n\n\n<p>WordPress was instrumental in making publishing software accessible to those with no coding experience, and it is now doing the same for e-commerce, facilitating billions of dollars in sales for businesses and independent stores. The pandemic created <a href=\"https://wptavern.com/tectonic-shifts-in-retail-industry-are-creating-unprecedented-opportunities-for-independent-stores\">unprecedented opportunities for WordPress-powered stores</a> to succeed as traditional brick-and-mortar businesses were forced to close their doors. </p>\n\n\n\n<p>Despite weathering some profound, once-in-a-lifetime challenges over the past year, WordPress has continued to grow at a phenomenal rate. In February, the CMS passed <a href=\"https://wptavern.com/wordpress-passes-40-market-share-of-alexa-top-10-million-websites\">40% market share of all websites</a>, up from 35.4% in January 2020, as measured by&nbsp;<a href=\"https://w3techs.com/technologies/details/cm-wordpress\">W3Techs</a>. WordPress&rsquo; project lead and co-founder Matt Mullenweg noted this milestone in a <a href=\"https://ma.tt/2021/05/wordpress-18/\">post</a> on his blog, marking the 18th anniversary:</p>\n\n\n\n<blockquote class=\"wp-block-quote\"><p>Who could have imagined that our nights and weekends hacking on blogging software, a fork of&nbsp;<a href=\"https://milestonesbook.wordpress.com/2015/11/16/the-only-blogger-in-corsica/\">b2/cafelog</a>, could turn into something&nbsp;<a href=\"https://wordpress.org/40-percent-of-web/\">powering over 40% of the web</a>? Or that nearly twenty years in, it would be getting better faster than it ever has been?</p></blockquote>\n\n\n\n<p>WordPress.org is celebrating with a new history timeline that logs <a href=\"https://wordpress.org/40-percent-of-web/\">40 major milestones along the path to 40% market share</a>. Scrolling through it reads like a story, highlighting some of the most salient moments in WordPress&rsquo; history, like the launch of the plugin repository, major interface improvements, and the first WordCamp. There are some interesting notes about how WordPress was able to outpace its contemporaries in the early days, doubling its downloads after Moveable Type 3.0 introduced licensing restrictions. The software had several turns of fortune along the way that have bolstered its market dominance.</p>\n\n\n\n<p>For many who have contributed to WordPress&rsquo; success, it&rsquo;s the smaller points that don&rsquo;t make this official timeline which have been the glue for this community. Friendships are forged in working together and celebrating small wins but also in weathering the friction, conflict, and human failures that come part and parcel with working on an open source project. </p>\n\n\n\n<p>18 years of growth is a milestone worth recognizing on the web. Congratulations to the code contributors, translators, community organizers, WordPress leadership, and everyone else who has helped make this beloved publishing platform that continues to surprise the world.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 28 May 2021 03:29:05 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:24;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:100:\"WPTavern: Gutenberg 10.7 Integrates With the Pattern Directory, Introduces New Block Design Controls\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=117350\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:243:\"https://wptavern.com/gutenberg-10-7-integrates-with-the-pattern-directory-introduces-new-block-design-controls?utm_source=rss&utm_medium=rss&utm_campaign=gutenberg-10-7-integrates-with-the-pattern-directory-introduces-new-block-design-controls\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:7306:\"<p class=\"has-drop-cap\">Gutenberg 10.7 landed yesterday. Within a few hours, the development team also released version 10.7.1 of the plugin with a few bug fixes. The latest update primarily focuses on work expected to land in WordPress 5.8 this July.</p>\n\n\n\n<p>The feature freeze deadline for the current WordPress development cycle passed on Tuesday. This should mean that no new features beyond Gutenberg 10.7 will make it into the core platform. WordPress 5.8 Beta 1 is slated for June 8.</p>\n\n\n\n<p>This release feels like the team has polished the interface and experience for the better. Users can also look forward to several enhancements, such as additional block design options.</p>\n\n\n\n<h2>Block Pattern Directory Integration</h2>\n\n\n\n<p class=\"has-drop-cap\">Gutenberg now <a href=\"https://github.com/WordPress/gutenberg/pull/28800\">serves its default block patterns</a> via the pattern directory on WordPress.org. This moves their development outside of the plugin and core WordPress, which means designers can iterate on them without a user needing to update. They will always have the latest version available from the editor.</p>\n\n\n\n<img />Inserting a pattern into the content canvas.\n\n\n\n<p>The <a href=\"https://wordpress.org/patterns/\">pattern directory</a> will be a handy tool for end-users. For many, it will likely serve as a path toward building more complex layouts in the WordPress editor. At the moment, it only houses 10 patterns. This will change after it is opened to community submissions.</p>\n\n\n\n<p>Shaun Andrews shared some of the ongoing <a href=\"https://make.wordpress.org/design/2021/05/12/wordpress-org-patterns-directory-i2/\">design work for the directory</a>, and it is beautiful. I am eager to see the final result when it launches.</p>\n\n\n\n<img />Recent work on the block pattern directory.\n\n\n\n<p>A side note about block patterns: there is currently a bug that may cause some of those <a href=\"https://github.com/WordPress/gutenberg/issues/32139\">bundled with themes to not appear</a> in the inserter.</p>\n\n\n\n<h2>New Block Design Controls</h2>\n\n\n\n<p class=\"has-drop-cap\">Version 10.7 introduces several new design controls for blocks. The most exciting feature for many will be <a href=\"https://github.com/WordPress/gutenberg/pull/30608\">margin controls</a> for more precise control over spacing. Theme authors must set the <code>settings.spacing.customMargin</code> key to <code>true</code> in their <code>theme.json</code> files to enable this.</p>\n\n\n\n<p>Currently, only the <a href=\"https://github.com/WordPress/gutenberg/pull/31728\">Site Title</a> and <a href=\"https://github.com/WordPress/gutenberg/pull/31809\">Site Tagline</a> blocks support margin controls. However, now that the initial feature has landed, we should expect others to follow suit in future versions.</p>\n\n\n\n<img />Spacing and typography controls for title and tagline\n\n\n\n<p>The Site Title block also has <a href=\"https://github.com/WordPress/gutenberg/pull/31734\">letter case typography controls</a>.</p>\n\n\n\n<p>The development team upgraded the Column block with a couple of new options. Users can now customize the <a href=\"https://github.com/WordPress/gutenberg/pull/31778\">padding and colors</a> for individual columns.</p>\n\n\n\n<img />Customizing individual columns.\n\n\n\n<p>One of the more low-key enhancements happens to be one of my favorite changes. The Media &amp; Text block received a new <a href=\"https://github.com/WordPress/gutenberg/pull/31002\">&ldquo;media width&rdquo; block option</a> in the sidebar. This makes getting the correct width a far better experience than using the drag handle in the content canvas.</p>\n\n\n\n<img />Adjusting the media width in the Media &amp; Text block\n\n\n\n<p>I may begin using this block more now. I had been shying away from it for any use case beyond the default width settings.</p>\n\n\n\n<p>Another welcome enhancement is <a href=\"https://github.com/WordPress/gutenberg/pull/30890\">Cover being added as a transform</a> option for the Group block. It will only appear if the block has a background.</p>\n\n\n\n<h2>Template Editor Welcome Guide</h2>\n\n\n\n<img />Welcome message for the template editor.\n\n\n\n<p class=\"has-drop-cap\">Template-editing mode will be one of the most highlighted features for WordPress 5.8. It allows users to switch from content to template editing while never leaving the post screen. Therefore, users will need a <a href=\"https://github.com/WordPress/gutenberg/pull/31330\">welcome guide</a> to explain the new feature.</p>\n\n\n\n<p>Currently, the message reads:</p>\n\n\n\n<blockquote class=\"wp-block-quote\"><p>Welcome to the template editor</p><p>Templates express the layout of the site. Customize all aspects of your posts and pages using the tools of blocks and patterns.</p></blockquote>\n\n\n\n<p>It is a solid starting point, but it does not fully explain what this mode is about. I expect the development team to smooth it out a bit, maybe add an extra slide or two, or even link to a dedicated documentation page on WordPress.org. Helping users set off on the right foot with this new feature should mitigate confusion and lower the support burden.</p>\n\n\n\n<p>There is currently an <a href=\"https://make.wordpress.org/test/2021/05/26/fse-program-testing-call-7-polished-portfolios/\">open call for volunteers</a> to provide feedback on the template editor while building a portfolio-type landing page (<a href=\"https://wptavern.com/fse-outreach-7-building-a-portfolio-in-the-upcoming-template-editing-mode\">see my results</a>). Make sure to get involved if you can spare half an hour or more.</p>\n\n\n\n<h2>Buttons Block Uses <code>column-gap</code></h2>\n\n\n\n<img />Gap between buttons.\n\n\n\n<p class=\"has-drop-cap\">This is more of a theme developer note, but some users may have noticed lines of buttons not extending to the edge of their container. In certain situations, at least.</p>\n\n\n\n<p>Essentially, the space between individual Button blocks used a bit of a hacky, old-school CSS margin solution to create the gutter space between each. In the modern world of flex and grid layouts, it is something most designers dread seeing. It overcomplicates things and makes for more bloated CSS, particularly if you want to make adjustments based on screen size.</p>\n\n\n\n<p>I am highlighting this change because it is one of those stages where the block system is becoming more polished under the hood. And, it could be the start of more exciting things to come for theme authors.</p>\n\n\n\n<p>&ldquo;This is great, this is beautiful, themers are going to love it,&rdquo; <a href=\"https://github.com/WordPress/gutenberg/pull/31386#issuecomment-831088979\">wrote Joen Asmussen</a> in the ticket. &ldquo;At some point once the dust settles, we should see if this gap could become a global styles property; since it&rsquo;s so easy to change and resilient, it would be nice to handle in such a neat way.&rdquo;</p>\n\n\n\n<p>It is a welcome sight to see the use of <code>column-gap</code> land in the plugin. Of course, it could use <code>row-gap</code> for vertical spacing instead of margins in those cases where Buttons extend beyond a single row.</p>\n\n\n\n<p>Now, can we do the same for the Columns, Gallery, and Query Loop blocks? Normalizing the system for gutters/gaps between flex items can save dozens upon dozens of lines of code in the long term.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 28 May 2021 00:41:56 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:25;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"Matt: WordPress 18\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:22:\"https://ma.tt/?p=54256\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://ma.tt/2021/05/wordpress-18/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:1446:\"<img />\n\n\n\n<p>Today marks eighteen years since the <a href=\"https://wordpress.org/news/2003/05/wordpress-now-available/\">very first release of WordPress</a>. I consider myself so lucky to have co-founded the project alongside <a href=\"https://mikelittle.org/\">Mike Little</a>. Who could have imagined that our nights and weekends hacking on blogging software, a fork of <a href=\"https://milestonesbook.wordpress.com/2015/11/16/the-only-blogger-in-corsica/\">b2/cafelog</a>, could turn into something <a href=\"https://wordpress.org/40-percent-of-web/\">powering over 40% of the web</a>? Or that nearly twenty years in, it would be getting better faster than it ever has been?</p>\n\n\n\n<p>I blogged these anniversaries when WordPress was <a href=\"https://ma.tt/2008/05/wordpress-party-2/\">five</a>, <a href=\"https://ma.tt/2013/05/dear-wordpress/\">ten</a>, <a href=\"https://ma.tt/2018/05/wordpress-at-15/\">fifteen</a>, and last year at <a href=\"https://ma.tt/2020/05/celebrate-seventeen/\">seventeen</a>, but as the project reaches an age that, if it were a child, it would be heading off to college, I&#8217;m uncharacteristically at a loss for words.</p>\n\n\n\n<p>The overwhelming feeling is one of gratitude, so I want to say thank you to <em>every</em> person who has ever been involved with making WordPress as a contributor, a community organizer, or as an end-user of the software. It&#8217;s amazing what we can accomplish when we work together.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 27 May 2021 22:31:23 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"Matt\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:26;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:43:\"WordPress Foundation: 18 years of WordPress\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:41:\"https://wordpressfoundation.org/?p=187010\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:59:\"https://wordpressfoundation.org/2021/18-years-of-wordpress/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4064:\"<p>On this very day 18 years ago (May 27th), <a href=\"https://wordpress.org/news/2003/05/wordpress-now-available/\">the first version of the WordPress open source software</a> came out. WordPress has come a long way in the past 18 years. At the time of writing this blog post, WordPress has surpassed <a href=\"https://wordpress.org/news/category/releases/\">40 releases</a> and <a href=\"https://w3techs.com/blog/entry/40_percent_of_the_web_uses_wordpress\">powers more than 40% of the web</a>!</p>\n\n\n\n<p>Check out these 40 key milestones in the WordPress journey towards 40% of the web!</p>\n\n\n\n<div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\"><a href=\"https://wordpress.org/40-percent-of-web/\">WordPress and the Journey to 40% of the Web</a></blockquote>\n</div>\n\n\n\n<p>One of the critical milestones in this journey is <a href=\"https://wordpress.org/40-percent-of-web/#2010-foundation\">the establishment of the WordPress Foundation in January 2010</a>. The foundation aims to ensure free access, in perpetuity, to WordPress and the software projects we support. People and businesses may come and go, so it is essential that the source code for these projects will survive beyond the current contributor base. This will ensure that we have a stable platform for web publishing for generations to come. As part of this mission, the Foundation will protect <a href=\"https://wordpressfoundation.org/trademark-policy/\">WordPress, WordCamp, and related trademarks</a>. </p>\n\n\n\n<p>A 501(c)3 non-profit organization, the WordPress Foundation pursues a charter to educate the public about WordPress and related open source software. We regularly host educational programs like <a href=\"https://doaction.org/\">charity hackathons</a> and <a href=\"https://wordpressfoundation.org/tag/intro-to-open-source/\">open source educational events</a>. These programs are made possible through the help of generous donations from<a href=\"https://wordpressfoundation.org/donors/\"> our donors</a>.&nbsp;</p>\n\n\n\n<p>If WordPress has helped you in any way during the past 18 years, <a href=\"https://wordpressfoundation.org/donate/\">kindly consider donating to the WordPress Foundation</a>. Money raised by the WordPress Foundation will be used to ensure free access to <a href=\"http://wordpressfoundation.org/projects/\">supported software projects</a>, <a href=\"https://wordpressfoundation.org/trademark-policy/\">protect the WordPress trademark</a>, and fund various programs. In short – your donations will go a long way in helping the WordPress project. You can either <a href=\"https://wordpressfoundation.org/donate/\">make a one-time donation or choose to donate annually</a>. If you sign up for any one of the four annual subscription plans, you will be featured on our <a href=\"https://wordpressfoundation.org/donors/\">Donors page</a> &#8211; as a token of our gratitude for supporting education programs about WordPress and open source. </p>\n\n\n\n<div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\"><a href=\"https://wordpressfoundation.org/donate/\">Donate</a></blockquote>\n</div>\n\n\n\n<p>WordPress would not exist without its team of global contributors that help build the software. The best way to give back to WordPress is to help us build it! You need not be a developer to give back to WordPress &#8211; some other ways to contribute to the project include <a href=\"https://make.wordpress.org/polyglots/\">translations</a>, <a href=\"https://make.wordpress.org/support/\">support</a>, <a href=\"https://make.wordpress.org/community/\">community</a>, <a href=\"https://make.wordpress.org/docs/\">documentation</a>, and <a href=\"https://make.wordpress.org/marketing/\">marketing</a>, to name a few. In other words &#8211; anyone and everyone can contribute to WordPress, and <a href=\"https://make.wordpress.org/\">we strongly encourage you to do so</a>!</p>\n\n\n\n<p>Thank you for your support of WordPress over the past 18 years. Your continued patronage will ensure that WordPress will keep going for the next 18 years and beyond!&nbsp;</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 27 May 2021 10:57:41 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Hari Shanker\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:27;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"WordPress.org blog: WordPress at 18\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=10380\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:51:\"https://wordpress.org/news/2021/05/wordpress-at-18/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:1022:\"<p>Today marks the 18th anniversary of WordPress&#8217; launch, a day that I fondly refer to as WordPress&#8217; birthday, which means WordPress is 6,575 days old. To celebrate another turn around the sun, the <a href=\"https://wordpress.org/news/2008/05/birthday-party/\">community</a> has had <a href=\"https://wp15.wordpress.net/\">parties</a>, we have <a href=\"https://wordpress.org/news/2010/05/lucky-seven/\">shared data</a>, and we have <a href=\"https://wordpress.org/news/2013/05/ten-good-years/\">told our story</a>.</p>\n\n\n\n<p>Since our last birthday we developed our 40th release and now also support over 40% of the web. So it seems fitting that this year&#8217;s celebration should be a list of 40 milestones that have helped us get there.</p>\n\n\n\n<div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\"><a href=\"https://wordpress.org/40-percent-of-web/\">WordPress and the Journey to 40% of the Web</a></blockquote>\n</div>\n\n\n\n<p>Grab a slice of cake or festive beverage and give it a scroll!</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 27 May 2021 06:00:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:7:\"Josepha\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:28;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:91:\"WPTavern: Joomla Blocks FLoC by Default, Drupal Moves to Block FLoC in Upcoming 9.2 Release\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=117217\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:225:\"https://wptavern.com/joomla-blocks-floc-by-default-drupal-moves-to-block-floc-in-upcoming-9-2-release?utm_source=rss&utm_medium=rss&utm_campaign=joomla-blocks-floc-by-default-drupal-moves-to-block-floc-in-upcoming-9-2-release\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:7349:\"<p>Joomla has <a href=\"https://developer.joomla.org/news/855-joomla-and-floc.html?s=09\">announced</a> plans to block Google&rsquo;s Federated Learning of Cohorts (<a rel=\"noreferrer noopener\" href=\"https://github.com/WICG/floc\" target=\"_blank\">FLoC</a>) by default going forward. The <a href=\"https://www.joomla.org/announcements/release-news/5836-joomla-3-9-27.html\">3.9.2.7</a> security update, released yesterday, <a href=\"https://github.com/joomla/joomla-cms/pull/33212\">added a Permissions Policy header to disable FLoC</a>. Users can now find a new setting in Global configuration on the Site tab in the Site Settings area, where they can toggle FLoC on if desired. This change will also affect existing sites updated from older versions.</p>\n\n\n\n<p>The Joomla Developer Network blog outlined a few concerns contributors have about fingerprinting, the technology Google uses to gather information from a user&rsquo;s browser to create a unique, stable identifier. They also highlighted cross-content exposure as another concern: </p>\n\n\n\n<blockquote class=\"wp-block-quote\"><p>The technology will share new personal data with trackers who can already identify users. For FLoC to be useful to advertisers, a user&rsquo;s cohort will necessarily reveal information about their behavior.<br />This means every site you visit will have a good idea about what kind of person you are on first contact, without having to do the work of tracking you across the web.<br />If you visit a site to buy a jumper they will have access to your cohort identifying number. This could also give them your political thinking or reveal that you are also in certain defined medical groups. There is nothing to stop these groups being backward engineered and your movement between the cohorts will reveal a lot about you over time.</p></blockquote>\n\n\n\n<p>A similar permissions policy header was <a href=\"https://www.drupal.org/node/3213197\">added to Drupal 9.2.0-beta1</a> on May 14, after a lengthy <a href=\"https://www.drupal.org/project/drupal/issues/3209628\">discussion</a> with overwhelming consensus to block FLoC. It  is expected to be part of Drupal core on June 16, 2021, when 9.2 is scheduled to be released.</p>\n\n\n\n<p>&ldquo;I&rsquo;d love to see this added to core and enabled by default,&rdquo; Drupal founder Dries Buytaert <a href=\"https://www.drupal.org/project/drupal/issues/3209628#comment-14077502\">commented</a> on the implementation discussion. &ldquo;We should provide an option/mechanism to disable it though.&rdquo; He said he has already added a Permissions-Policy header on his personal blog.</p>\n\n\n\n<p>Drupal makes disabling it a bit more of a hurdle than Joomla, as it requires setting <code>block_interest_cohort</code> to FALSE in the settings.php file.</p>\n\n\n\n<p>Although FLoC is still in the experimental stage, many other frameworks and tools have blocked it or are planning to block it.<strong> </strong>The&nbsp;<a href=\"https://chrome.google.com/webstore/detail/duckduckgo-privacy-essent/bkdgflcldnnnapblkhphbgpggdiikppg\">DuckDuckGo Chrome extension</a>&nbsp;has been reconfigured to block FLoC&rsquo;s tracking, in addition to DuckDuckGo Search opting users out. GitHub is also <a href=\"https://github.blog/changelog/2021-04-27-github-pages-permissions-policy-interest-cohort-header-added-to-all-pages-sites/\">blocking FLoC on GitHub Pages</a> and all sites served from the github.io domain.&nbsp;Although Chrome is the market leader by a wide margin, Google has not yet been able to sway any other major browsers to get on board. At this time, Microsoft Edge, Safari, and Firefox <a href=\"https://www.theverge.com/2021/4/16/22387492/google-floc-ad-tech-privacy-browsers-brave-vivaldi-edge-mozilla-chrome-safari\">do not plan to adopt FLoC</a>.</p>\n\n\n\n<p>&ldquo;It is disappointing to see Google, instead of taking the present opportunity to help design and build a user-first, privacy-first Web, proposing and immediately shipping in Chrome a set of smaller, ad-tech-conserving changes, which explicitly prioritize maintaining the structure of the Web advertising ecosystem as Google sees it,&rdquo; Brave CEO and co-founder Brendon Eich and senior privacy researcher Peter Snyder wrote in a&nbsp;statement on the company&rsquo;s <a href=\"https://brave.com/why-brave-disables-floc/\">blog</a>. &ldquo;The worst aspect of FLoC is that it materially harms user privacy, under the guise of being privacy-friendly.&rdquo;</p>\n\n\n\n<p>Brave has disabled FLoC and the company recommends that all sites do the same, advising that &ldquo;any new privacy-risking features on the web should be opt-in.&rdquo; The post concludes that FLoC will not be an improvement on current ad tech:</p>\n\n\n\n<blockquote class=\"wp-block-quote\"><p>Overall, FLoC, along with many other elements of Google&rsquo;s &ldquo;Privacy Sandbox&rdquo; proposal, are a step backward from more fundamental, privacy-and-user focused changes the Web needs. Instead of deep change to enforce real privacy and to eliminate conflicts of interest, Google is proposing Titanic-level deckchair-shuffling that largely maintains the current, harmful, inefficient system the Web has evolved into, a system that has been disastrous for the Web, users and publishers.</p><p>What the Web desperately needs is radical change, one where &ldquo;would users want this?&rdquo; is the most important question asked for each new feature. Instead, FLoC and &ldquo;Privacy Sandbox&rdquo; ask &ldquo;how can we make this work for ad-tech, in a way that users will tolerate or not notice.&rdquo;</p></blockquote>\n\n\n\n<p>The open source Umbraco CMS is taking a more hands-off approach to the controversial issue. In response to <a href=\"https://github.com/umbraco/Umbraco-CMS/issues/10147\">a PR suggesting suggesting Umbraco block FLoC</a>, Umbraco project manager Sebastiaan Janssen said, &ldquo;We feel it&rsquo;s not our place or task to enforce this kind of blocking, we believe site implementers should be free to use whatever services they think make sense for their sites (as well as block them when they want).&rdquo;</p>\n\n\n\n<p>At this point in Google&rsquo;s Chrome&rsquo;s Origin Trial, Chrome representatives do not yet know how the FLoC API will be finalized for determining which pages will be included in FLoC calculations. WordPress has not yet made a determination about whether to block FLoC or leave it site owners to decide. Multiple <a href=\"https://wordpress.org/plugins/search/FLoC/\">FLoC blocking plugins</a> are already available to users who want to opt out now. After a lengthy and heated <a href=\"https://wptavern.com/floc-blocking-discussion-continues-on-wordpress-trac\">discussion</a> on a proposal to block FLoC by default, WordPress core leadership <a href=\"https://core.trac.wordpress.org/ticket/53069\">moved the conversation to Trac</a> where contributors are monitoring Google&rsquo;s experiment. </p>\n\n\n\n<p>The ticket has not yet received much feedback as WordPress is taking a more cautious approach that will depend on how Google decides to implement its FLoC API. Without the support of any major browsers, WordPress&rsquo; support or opposition may be critical to the success or failure of FLoC adoption on the web. Once more information from the FLoC trial becomes available, WordPress contributors will be in a better position to decide a course of action.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 27 May 2021 02:25:31 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:29;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:85:\"WPTavern: FSE Outreach #7: Building a Portfolio in the Upcoming Template-Editing Mode\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=117293\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:211:\"https://wptavern.com/fse-outreach-7-building-a-portfolio-in-the-upcoming-template-editing-mode?utm_source=rss&utm_medium=rss&utm_campaign=fse-outreach-7-building-a-portfolio-in-the-upcoming-template-editing-mode\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:6494:\"<p class=\"has-drop-cap\">Feedback for <a href=\"https://make.wordpress.org/test/2021/05/26/fse-program-testing-call-7-polished-portfolios/\">round #7 of the FSE Outreach Program</a> opened today. Like <a href=\"https://wptavern.com/fse-outreach-round-6-building-a-wordcamp-landing-page-via-the-template-editor\">round #6</a>, the focus is once again on template-editing mode, a feature that is slated to ship with WordPress 5.8. All hands need to be on deck for it to have a chance of a successful landing.</p>\n\n\n\n<p>I have been eager for this round of testing. FSE Outreach lead Anne McCarthy asked volunteers to follow a 16-step plan for building a portfolio template. Unlike the previous six tests, this one gives users more leeway, room to explore template editing.</p>\n\n\n\n<p>As usual, the base set of tools is the latest version of the <a href=\"https://wordpress.org/plugins/gutenberg\">Gutenberg plugin</a> and the <a href=\"https://wordpress.org/themes/tt1-blocks/\">TT1 Blocks theme</a>.</p>\n\n\n\n<p>For my portfolio, I decided to approach it as a hypothetical photographer who wanted to drum up some new clients and show off his latest work. The following screenshot is the end result:</p>\n\n\n\n<img />\n\n\n\n<p>Anyone is welcome to grab the HTML block code for this template. <a href=\"https://gist.github.com/justintadlock/89db71a9a08ba121dcd34dba17c91268\">I saved it as a GitHub Gist.</a> The image URLs are to my local machine, so you will need to update those if you decide to give it a spin.</p>\n\n\n\n<p>I had a lot of fun with this. And frustration. Some more fun. And&hellip;<em>you guessed it</em>&hellip;some more frustration.</p>\n\n\n\n<p>The editor and I got off to a rough start. After adding my Cover block, I wanted to add a Columns block inside. <strong><em>Error.</em></strong> The dreaded invalid block message. I switched over to the code view to see if there was anything odd. It was empty. After switching back to visual, the Columns block seemed to be working. I was able to inconsistently reproduce this issue in template-editing mode.</p>\n\n\n\n<p>I used a Columns block because it is the only way that I know how to create a left-aligned container covering 50% of its containing element. It is a bit of a hack, but you can set the block to one column and adjust its width to whatever size you need. Ideally, users would be able to do this with the Group block.</p>\n\n\n\n<p>It was the underpinning of my template header area. I went with the traditional hero/cover intro that spanned the width of the page.</p>\n\n\n\n<img />Header section of template using Cover block.\n\n\n\n<p>Adding a site logo and navigation is where I hit my second snag. The navigation worked fine, mostly. On mobile, the responsive menu overlay is partially covered by the WordPress toolbar on the front end. However, I already knew this. Responsive nav menus are a work in progress.</p>\n\n\n\n<p>I was unable to use the Site Logo block. Whenever I attempted to add it, it had a continual spinner icon that never went away. So, I opted for an Image block &mdash; you make do with the tools you got or the ones that are working.</p>\n\n\n\n<img />Second test of adding a site logo in different section.\n\n\n\n<p>The next section of template testing consisted of adding a Query pattern and customizing it. I have a love/hate relationship with queries in Gutenberg right now. The Query block itself works well. It has a solid balance between advanced usage and simplicity for the most part. I am amazed at what the development team has done over months upon months of iteration.</p>\n\n\n\n<p>The downfall is that the Query block is merely a wrapper. It is only as good as its weakest sub-block. Most of its nested blocks are for post-related data, and the weakest among them is Post Featured Image. It limits everything that can be truly fun about building queries. It does not even cover a basic sub-set of the Image, Cover, and Media &amp; Text options.</p>\n\n\n\n<p>It is frustrating because users and theme authors cannot build out their visions. I know it will get there someday. Today, we are limited to the basics without any themes offering highly customized Query patterns.</p>\n\n\n\n<p>It is tough to go wrong with a simple grid, so that is what I did.</p>\n\n\n\n<img />Grid-style portfolio layout (first image is out of line in editor)\n\n\n\n<p>I followed that section with two Columns blocks nested inside another Columns block for a testimonials group. Then, I wrapped it up with a basic footer, running into the same issue with uploading a site logo. The most prevalent problems in these sections were inconsistent spacing.</p>\n\n\n\n<p>Some of the limitations with these tests are not from the template editor in Gutenberg. Instead, they are from the TT1 Blocks theme. However, I suppose that depends on your philosophy about what the future of theme development should be. If most front-end styles should come from WordPress/Gutenberg, it is not a theme issue.</p>\n\n\n\n<p>Vertical alignment is inconsistent in the best of times. Liberal use of the Spacer block is not ideal in real-world projects to align blocks. It can be a handy tool when needed, but it should not be a crutch for correcting foundational issues. The block system adds a few potholes in the road, but a well-rounded and tested theme can mitigate most of these problems. And, TT1 Blocks just does not do this. It relies almost exclusively on the core block styles without swerving left or right when it needs to.</p>\n\n\n\n<p>The current padding controls for a few blocks like Group help with this. However, most users are not going to micromanage every pixel of every page on their sites. The same can be said for the margin controls when they become available. Again, both are useful and necessary tools, but users should not lean on them too heavily to correct design issues. In the long run, it will create more problems as site owners eventually swap themes.</p>\n\n\n\n<p>Mismatched output in the editor versus the front end can become a headache at times. This is a known issue and noted in the call for testing, so I won&rsquo;t harp on it.</p>\n\n\n\n<p>I enjoyed the process &mdash; <em>yes, I revel in both the fun and frustration</em>. Aside from everything that I think is broken, the overall system is <em>pretty dang sweet</em>. There are far more things that the development team has nailed down than there are that feel janky. However, calls for testing are all about finding the problems. I encourage all Tavern readers to join in and report your feedback.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 27 May 2021 01:04:46 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:30;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:157:\"HeroPress: WordPress – The Source Of My Satisfaction And Joy – વર્ડપ્રેસ – સંતોષ અને આનંદ નો સાધન\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:56:\"https://heropress.com/?post_type=heropress-essays&p=3609\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:168:\"https://heropress.com/essays/wordpress-the-source-of-my-satisfaction-and-joy/#utm_source=rss&utm_medium=rss&utm_campaign=wordpress-the-source-of-my-satisfaction-and-joy\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:23359:\"<img width=\"1024\" height=\"512\" src=\"https://heropress.com/wp-content/uploads/2022/05/052621-min.jpg\" class=\"attachment-large size-large wp-post-image\" alt=\"Pull Quote: The WordPress community has taught me that it\'s ok if I don\'t know everything. Nobody does.\" /><p><a href=\"https://heropress.com/feed/#gujarati\">આ નિબંધ ગુજરાતીમાં પણ ઉપલબ્ધ છે</a></p>\n<p>My adventure with WordPress started back in the year 2017. Till then there were many ups and downs and I was clueless which field I will enter into. Right until the end of 2016, I was giving my exams to become a Chartered Accountant (CA) equivalent to CPA. I also love baking cakes and pastries. So, in the first half of 2017, I had started a small homegrown bakery for making donuts. It was interesting but it didn&#8217;t give me a sense of satisfaction. I also hosted some small exhibitions of fabrics and fashion apparels.</p>\n<blockquote><p>In short, I tried many different fields but I still wasn&#8217;t happy from within.</p></blockquote>\n<p>So, after giving up on CA (for which I spent a few years) and trying out hands on baking I still did not have the sense of satisfaction and wanted to do something that would give me an identity of myself and happiness. One casual day, my husband Dhruvin asked me to get involve with WordPress in some way or the other. But, I wasn&#8217;t sure whether I would get a place in the technical world or not. This was a completely different challenge for me.</p>\n<h3>Introduction to WordPress</h3>\n<p>After giving a serious thought I decided to get started with WordPress. I spent the initial 6-8 months exploring WordPress, learning the basics about the Web, making myself comfortable with it &amp; deciding if this is something I would love to work on or not. I then participated in WordCamp Mumbai 2018. That was one of the few WordCamps I have attended. This WordCamp gave me enough confidence that WordPress is the new sky for me where there is no limit.</p>\n<h3>Finding the perfect role in WordPress</h3>\n<p>Now, that I got familiar with WordPress, the next question for me was what kind of role or a job I would best fit into?</p>\n<p>I started interacting with a few people in WordCamp (which I miss very badly these days), I understood that I like interacting and engaging with people a lot. So, I thought that the Customer Support role would fit perfectly with my personality.</p>\n<p>Once I was convinced about this, I got an opportunity to work with <a href=\"https://www.tychesoftwares.com/\">Tyche Softwares</a>. They are a plugin development company focussing on niche WooCommerce plugins.</p>\n<blockquote><p>This was the first step of my professional journey in WordPress, something that I never imagined I would step into.</p></blockquote>\n<p>I started enjoying it more as I would gain immense satisfaction when I helped customers solve their problems.</p>\n<p>I also tried my hand at the Business Development and Analytics part. I used to analyze customer feedback. The analysis involves creating the processes to improve the customer satisfaction and looking at how to automate a certain task using the tools at our hand. These things help in taking some important decisions on companies&#8217; plugins with regards to new features.</p>\n<h3>About WordCamps</h3>\n<p>I love attending WordCamps. I began attending WordCamps in 2018 and my very first WordCamp was WC Mumbai 2018. Since then, I’ve been going to as many as would fit in my schedule every year. I learn something new at every WordCamp, we deepen existing relationships and start new ones.</p>\n<p>My first major Wordcamp was WCEU 2019 held in Berlin. It was a memorable one which will be in my mind for ages. I realized that it’s so much fun getting to meet people in real life whom you have only known on social media. WordCamps have also been a great chance for me to learn from others and collaborate on ideas surrounding WordPress.</p>\n<p><a href=\"https://heropress.com/wp-content/uploads/2022/05/HeroPress-2.jpg\"><img /></a></p>\n<p>WordCamps have also been a great opportunity for me to travel and/or meet up with old friends, and make new ones. Of course, I also love the learning aspect of WordCamps. I look forward to learning new things and to speakers challenging my way of thinking, and seeing if there are ways I can improve my workflow or productivity or as a person.</p>\n<p>The WordPress community has taught me that it’s ok if I don’t know everything, nobody does. We are all good at certain things and that’s totally fine!</p>\n<p>The other memorable WordCamp for me was WordCamp Vadodara that happened in October 2019. I applied as a volunteer &amp; the organizing team was kind enough to give me that opportunity. That entire day, I was taking video bytes of the attendees, helping with registrations, and running around just trying to talk to as many people as I could. I barely got time for my lunch or time to spend time at the Tyche sponsors booth. Trust me, at the end of the day, I felt like I am just made for this! I enjoyed every bit of this experience.</p>\n<p><a href=\"https://heropress.com/wp-content/uploads/2022/05/HeroPress-1.jpg\"><img /></a></p>\n<p>After volunteering a few more WordCamps, I applied to volunteer at the first-ever WordCamp Asia, which was to be held in Feb 2020 &amp; my application was accepted as well. Unfortunately, COVID-19 struck just at that time &amp; the event couldn’t take place.</p>\n<p>I am definitely looking forward to helping the community in all the ways I can.</p>\n<h3>What I do in my free time</h3>\n<p>I love traveling and meeting new people. The idea of travel, packing my bags and disappearing to someplace, lives inside my brain all the time.</p>\n<p>Whenever I meet someone for the first time or even encounter an old friend, I instantly want to talk about their own adventures.</p>\n<blockquote><p>As a kid I was always curious about the lifestyle of people living in the other part of the world.</p></blockquote>\n<p>Till date, I love exploring such things. I deeply believe travel makes you richer, not in your wallet, but in your intelligence and compassion.</p>\n<p>I also love dancing, cooking new dishes and spending time on social media. I love watching cartoons too ;)</p>\n<h3>Time to take a break</h3>\n<p>The year 2020 has been a year full of surprises. Virus, lockdowns, travel restrictions to many such things. Through all these things was a moment of joy for me and my family. I was going to be a mother :) I was really happy but deep inside I was also having a feeling that I would loose my career and will not stay updated with WordPress and I would need to start again with everything. But, I am glad nothing of that sort happened. I was able to keep up with the trends via Twitter and other channels.</p>\n<p>I really appreciate the support and the remote work policy of Tyche Softwares enabling me to work throughout my pregnancy. The policies at the organization have always been employee friendly.</p>\n<p>Dhruvin and I become proud <strong>parents</strong> in November 2020.</p>\n<p>I am enjoying this new phase of mine as much as I miss my involvement in the WordPress ecosystem.</p>\n<p>I had taken an indefinite break until I felt that I would be able to dedicate time. Now, I am planning to resume my professional career. I would be taking my career ahead with <a href=\"https://imaginate-solutions.com/\">Imaginate Solutions</a>. Imaginate Solutions is also plugin development company focusing on niche WooCommerce plugins.</p>\n<p>I am excited for the future ahead!</p>\n<h1 id=\"gujarati\">વર્ડપ્રેસ &#8211; સંતોષ અને આનંદ નો સાધન</h1>\n<p>વર્ડપ્રેસ સાથેનું મારું સફર વર્ષ 2017 માં શરૂ થયું. ત્યાં સુધી મારા જીવનમાં ઘણા ઉતાર-ચડાવ આવ્યા હતા અને હું કશું જાણતી ન હતી કે હું કયા ક્ષેત્રમાં પ્રવેશ કરીશ. 2016 ના અંત સુધી હું ચાર્ટર્ડ એકાઉન્ટન્ટ (CA) બનવા માટે મારી પરીક્ષા આપી રહી હતી. મને કેક અને પેસ્ટ્રી બેકિંગ નો પણ શોક છે. તેથી, 2017 ના ફર્સ્ટ હાફમાં, મેં ડોનટ્સ બનાવવા માટે એક નાની હોમ-બેકરી શરૂ કરી હતી. તે રસપ્રદ હતું, પરંતુ તે મને સંતોષ ની ભાવના આપતું ન હતું. મેં ફેબ્રિક્સ અને ફેશન એપેરલ ના એકઝીબીશન પણ હોસ્ટ કર્યા હતા.</p>\n<blockquote><p>ટૂંકમાં, મેં ઘણાં વિવિધ ક્ષેત્રો અજમાવ્યાં પરંતુ હું હજી પણ અંદરથી ખુશ નહોતી.</p></blockquote>\n<p>તેથી, CA (જે માટે મારા થોડા વર્ષો ગયા છે) છોડી દીધા પછી અને બેકિંગ પર પણ હાથ અજમાવ્યા પછી મને હજી પણ સંતોષની ભાવના નહોતી અને એવું કંઈક કરવા માંગતી હતી જે મને મારી ઓળખ પણ આપે અને આનંદ પણ આપે. એક કેઝ્યુઅલ દિવસે, મારા પતિ ધ્રુવિન એ મને વર્ડપ્રેસમાં ઇન્વોલ્વ થવાનું સજેસ્ટ કર્યું. પરંતુ, મને ખાતરી નહોતી કે મને તકનીકી વિશ્વમાં સ્થાન મળશે કે નહીં. મારા માટે આ એક સંપૂર્ણપણે અલગ પડકાર હતું.</p>\n<h3>વર્ડપ્રેસ સાથે મારો પરિચય</h3>\n<p>થોડું ગંભીરતા થી વિચાર કર્યા પછી મેં વર્ડપ્રેસ શું છે એ જોવાનું પ્રારંભ કર્યું. મેં પ્રારંભિક 6-8 મહિના વર્ડપ્રેસની શોધખોળમાં, વેબ વિશેની મૂળભૂત બાબતોને જોવામાં, મારી જાતને તેનાથી comfortable બનાવવામાં ગાળ્યા. મારે એ નક્કી કરવાનું હતું કે આ કામ કરવામાં મને રસ છે ક નહિ. મેં વર્ડકેમ્પ મુંબઈ 2018 માં પણ ભાગ લીધો હતો.આ વર્ડકેમ્પે મને પૂરતો વિશ્વાસ આપ્યો કે વર્ડપ્રેસ મારા માટે નવું આકાશ છે જ્યાં કોઈ મર્યાદા નથી.</p>\n<h3>વર્ડપ્રેસમાં યોગ્ય ભૂમિકા શોધવી</h3>\n<p>હવે, જ્યારે હું વર્ડપ્રેસથી પરિચિત થઈ ગઈ ત્યારે મારો આગળનો પ્રશ્ન એ હતો કે હું કયા પ્રકારની ભૂમિકા અથવા નોકરીમાં શ્રેષ્ઠ રીતે ફિટ થઈ શકું?</p>\n<p>મેં વર્ડકેમ્પમાં થોડા લોકો સાથે વાતચીત કરવાનું શરૂ કર્યું (જે હું આ દિવસોમાં ખૂબ જ યાદ કરું છું). એ વાતચીત થી હું સમજી ગઈ કે મને લોકો સાથે વાર્તાલાપ કરવાનું અને વ્યસ્ત રહેવું ગમે છે. તેથી, મેં વિચાર્યું કે કસ્ટમર સપોર્ટ રોલ મારા વ્યક્તિત્વમાં સંપૂર્ણ રીતે ફિટ થશે.</p>\n<p>એકવાર મને આ વિશે ખાતરી થઈ ગઈ પછી, મને Tyche Softwares સાથે કામ કરવાની તક મળી. તેઓ વિશિષ્ટ WooCommerce plugin પર ધ્યાન કેન્દ્રિત કરતી એક plugin કંપની છે.</p>\n<blockquote><p>આ વર્ડપ્રેસમાં મારી વ્યાવસાયિક મુસાફરીનું પહેલું પગલું હતું, જેની કલ્પના મેં ક્યારેય કરી નહોતી.</p></blockquote>\n<p>મેં જ્યારે ગ્રાહકોને તેમની સમસ્યાનો હલ કરવામાં મદદ કરી ત્યારે મને ખૂબ સંતોષ અને આનંદ નો અનુભવ થયો.</p>\n<p>મેં બિઝનેસ ડેવલપમેન્ટ અને એનાલિટિક્સ પર પણ હાથ અજમાવ્યો છે. હું કસ્ટમર ફીડબેક નું એનાલીસીસ કરતી હતી. કસ્ટમર ને વધુ સંતોષ મળે એના માટે જે સુધારો લાવવાની જરૂર હોય અને જે કાર્ય માં ઓટોમેશન લાવી શકાય એ બધાનું એનાલીસીસ કરતી હતી. આ એનાલીસીસે કંપનીના ઘણા મહત્વપૂર્ણ નિર્ણયો લેવામાં મદદ કરી છે.</p>\n<h3>વર્ડકેમ્પ્સ વિશે માહિતી</h3>\n<p>મને વર્ડકેમ્પ્સમાં ભાગ લેવાનું ખુબ જ પસંદ છે. મેં 2018 માં વર્ડકેમ્પ્સમાં ભાગ લેવાનું શરૂ કર્યું અને મારો પ્રથમ વર્ડકેમ્પ WC મુંબઇ હતો. ત્યાર પછી, હું દર વર્ષે મારા સમયપત્રકમાં ફિટ થાય તેટલા વર્ડકેમ્પ્સમાં ભાગ લવ છું. હું દરેક વર્ડકેમ્પ માં કંઇક નવું શીખું છું. વર્ડકેમ્પ્સ જુના સંબંધોને વધુ ઘાડા બનાવે છે અને નવા સંબંધોની શરૂઆત કરવામાં મદદ કરે છે.</p>\n<p>મારી પ્રથમ મુખ્ય વર્ડકેમ્પ બર્લિનમાં યોજાયેલી WCEU 2019 હતી. તે યાદો મારા મગજમાં યુગો સુધી રહેશે. મને સમજાયું કે વાસ્તવિક જીવનમાં એવા લોકોને મળવાનું ખૂબ જ આનંદની છે, જેને તમે ફક્ત સોશિયલ મીડિયા પર જાણતા હતા. વર્ડકેમ્પ મારા માટે અન્ય લોકો પાસેથી શીખવાની એક શ્રેષ્ઠ તક છે.</p>\n<p><a href=\"https://heropress.com/wp-content/uploads/2022/05/HeroPress-2.jpg\"><img /></a></p>\n<p>વર્ડપ્રેસ community મને શીખવ્યું છે કે બધાને બધું ના આવડે. એટલે કોઈ વસ્તુ જો મને નથી ખબર તો તે ઠીક છે. એમાં સંકોચ અનુભવ કરવાની જરૂર નથી. બધા અલગ અલગ વસ્તુ માં માહિર હોય છે અને તે ઠીક છે!</p>\n<p>મારા માટે બીજું યાદગાર વર્ડકેમ્પ હતું WC Vadodara જે October 2019 માં થયું હતું. મેં એક Volunteer તરીકે અરજી કરી હતી અને મને આયોજક ટીમે તે તક આપી હતી. તે આખો દિવસ, હું ઉપસ્થિત લોકોના વિડિઓ બાઇટ્સ લઈ રહી હતી, રજીસ્ટ્રેશન માં મદદ કરી રહી હતી અને શક્ય તેટલા લોકો સાથે વાત કરવાનો પ્રયાસ કરી રહી હતી. Tyche સ્પોન્સર્સ બૂથ અને મારા બપોરના ભોજન માટેનો પણ સમય મે જેમ તેમ નીકળ્યો હતો. એ દિવસે મને લાગ્યું કે હું આજ કામ માટે બની છું! મેં આ દરેક અનુભવનો આનંદ માણ્યો.</p>\n<p><a href=\"https://heropress.com/wp-content/uploads/2022/05/HeroPress-1.jpg\"><img /></a></p>\n<p>થોડા વધુ વર્ડકેમ્પ્સમાં મેં volunteering કરી પછી, મેં Asia ની પહેલી વર્ડકેમ્પ્ WC Asia માં પણ Volunteer ની અરજી કરી, જે ફેબ્રુઆરી 2020 માં યોજાવાની હતી અને મારી અરજી પણ સ્વીકારી લેવામાં આવી. દુર્ભાગ્યે, COVID-19 ત્રાટક્યું અને ઇવેન્ટ થઈ શકી નહીં.</p>\n<p>હું community ને જે રીતે કરી શકું તે બધી રીતે મદદ કરવા માટે ચોક્કસપણે રાહ જોઈ રહી છું.</p>\n<h3>મારા ફ્રી ટાઈમમાં હું શું કરું છું</h3>\n<p>હું મુસાફરી અને નવા લોકોને મળવાનું પસંદ કરું છું. મુસાફરી નો વિચાર અને મારી બેગ પેક કરી ક્યાંક અદ્રશ્ય થઈ જવું એવો જ વિચાર મગજની અંદર આખો સમય રહે છે.</p>\n<p>જ્યારે પણ હું કોઈને પ્રથમ વખત મળું છું અથવા કોઈ જૂના મિત્રને મળું છું, ત્યારે હું તરત જ તેમણે પોતાના adventure વિશે વાત કરું છું.</p>\n<blockquote><p>એક બાળક તરીકે હું હંમેશાં વિશ્વના બીજા ભાગમાં રહેતા લોકોની જીવનશૈલી વિશે ઉત્સુક હતી.</p></blockquote>\n<p>આજની તારીખમાં પણ મને આવી વસ્તુઓનું અન્વેષણ કરવું ગમે છે. હું માનું છું કે મુસાફરી તમને તમારા wallet માં નહીં, પણ તમારી બુદ્ધિ અને કરુણામાં સમૃદ્ધ બનાવે છે.</p>\n<p>મને નૃત્ય કરવું, નવી વાનગીઓ રાંધવી અને સોશિયલ મીડિયા પર સમય વિતાવવાનું પણ ગમે છે. મને કાર્ટૂન જોવાનું પણ ગમે છે;)</p>\n<h3>બ્રેક લેવાનો સમય</h3>\n<p>વર્ષ ૨૦૨૦ સૌ માટે આશ્ચર્યથી ભર્યું વર્ષ રહ્યું. જેમ કે વાયરસ, મુસાફરી માં લોકડાઉન અને ઘણી બીજી એવી બાબતો. આ બધી મુશ્કેલી વચ્ચે મારા અને મારા પરિવાર માટે એક આનંદ ની વાત હતી. હું માતા બનવા જઈ રહી હતી :) હું ખરેખર ખુબ જ ખુશ હતી પણ અંદરથી મને એક વાત સતાવતી હતી. મને એમ થઈ રહ્યું હતું કે હું મારી કારકિર્દી ગુમાવી દઈશ અને વર્ડપ્રેસ સાથે અપડેટેડ નહીં રહી શકું અને મારે બધું ફરી શરૂ કરવું પડશે. પરંતુ, મને આનંદ છે કે આ પ્રકારનું કંઈ થયું નથી. હું Twitter અને અન્ય ચેનલો દ્વારા trend સાથે updated રહી સાકી છું.</p>\n<p>હું ખરેખર Tyche Softwares ની રિમોટ policy ની પ્રશંસા કરવા માંગુ છું. જેની મદદ થી મે pregnancy ના ૯ મહિના કામ કરી શક્યું. Tyche ની નીતિઓ હંમેશાં employee friendly રહી છે.</p>\n<p>ધ્રુવિન અને હું નવેમ્બર 2020 માં ગૌરવપૂર્ણ માતા પિતા બન્યા. હું જેટલી આ મારા નવા તબક્કાની મજા માણી રહી છું, એટલી જ હું વર્ડપ્રેસ ઇકોસિસ્ટમમાં મારુ સ્થાન miss કરી રહી chu.</p>\n<p>જ્યાં સુધી મને લાગતું નતું કે હું યોગ્ય સમય સમર્પિત કરી શકીશ ત્યાં સુધી મેં અનિશ્ચિત વિરામ લીધો હતો. હવે, હું મારી વ્યવસાયિક કારકિર્દી ફરી શરૂ કરવાની યોજના બનાવી રહી છું. હું મારી કારકિર્દીને Imaginate Solutions સાથે આગળ લઈ જઈશ. Imaginate Solutions પણ વિશિષ્ટ WooCommerce plugin બનાવનાર plugin કંપની છે.</p>\n<p>હું મારા આગળના ભવિષ્ય માટે ઉત્સાહિત છું!</p>\n<p>The post <a rel=\"nofollow\" href=\"https://heropress.com/essays/wordpress-the-source-of-my-satisfaction-and-joy/\">WordPress &#8211; The Source Of My Satisfaction And Joy &#8211; વર્ડપ્રેસ &#8211; સંતોષ અને આનંદ નો સાધન</a> appeared first on <a rel=\"nofollow\" href=\"https://heropress.com\">HeroPress</a>.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 26 May 2021 13:38:54 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:10:\"Dhara Shah\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:31;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:61:\"WordPress.org blog: Coloring Your Images With Duotone Filters\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=10349\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:77:\"https://wordpress.org/news/2021/05/coloring-your-images-with-duotone-filters/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4380:\"<p><em>Created by <a href=\"https://profiles.wordpress.org/ajlende/\">Alex Lende</a></em></p>\n\n\n\n<p>Beginning with WordPress 5.8, you can colorize your image and cover blocks with duotone filters! Duotone can add a pop of color to your designs and style your images to integrate well with your themes.</p>\n\n\n\n<h2>Filters? Like on Instagram?</h2>\n\n\n\n<p>Duotone doesn’t work in quite the same way as Instagram filters. Whereas Instagram filters do color adjustments (color levels/curves and sometimes a vignette for the photo editors among us), the new duotone filters entirely replace the colors of your images.</p>\n\n\n\n<div class=\"juxtapose\"><img id=\"10350\" src=\"https://i1.wp.com/wordpress.org/news/files/2021/05/image7.png?resize=632%2C622&ssl=1\" alt=\"\" width=\"632\" height=\"622\" class=\"image-compare__image-before\" /><img id=\"10351\" src=\"https://i0.wp.com/wordpress.org/news/files/2021/05/image4.png?resize=632%2C621&ssl=1\" alt=\"\" width=\"632\" height=\"621\" class=\"image-compare__image-after\" /></div>Photo by <a href=\"https://www.pexels.com/photo/grey-cat-close-up-photography-2524164/\">Charles Pragnell</a>.<br />\n\n\n\n<p>You can think of the duotone effect as a black and white filter, but instead of the shadows being black and the highlights being white, you pick your own colors for the shadows and highlights.</p>\n\n\n\n<p>For example, a grayscale filter can be created by selecting black and white as shadow/highlight colors, and a sepia filter by choosing brown and tan.</p>\n\n\n\n<img width=\"632\" height=\"622\" src=\"https://i2.wp.com/wordpress.org/news/files/2021/05/image6.png?resize=632%2C622&ssl=1\" alt=\"\" class=\"wp-image-10352\" />\n\n\n\n<p>Analogous colors can add a subtle effect and work well for cover backgrounds where the overlaid text still needs to stand out.</p>\n\n\n\n<img width=\"632\" height=\"622\" src=\"https://i1.wp.com/wordpress.org/news/files/2021/05/image1.png?resize=632%2C622&ssl=1\" alt=\"\" class=\"wp-image-10353\" />\n\n\n\n<p>Much more vibrant and interesting effects can be made with complementary colors.</p>\n\n\n\n<img width=\"632\" height=\"622\" src=\"https://i2.wp.com/wordpress.org/news/files/2021/05/image2.png?resize=632%2C622&ssl=1\" alt=\"\" class=\"wp-image-10354\" />\n\n\n\n<h2>How Do I Add Duotone Filter?</h2>\n\n\n\n<p>The duotone effect works best on high-contrast images, so start with an image with a lot of large dark and light areas. From the block toolbar, use the filter button and choose a preset:</p>\n\n\n\n\n\n\n\n<p>You can also choose colors from your theme’s palette, or a custom color of your choice.</p>\n\n\n\n<p>In addition to the image block, duotone can be applied to both images and video in the cover block.</p>\n\n\n\n\n\n\n\n<h2>Will This Overwrite Images in My Media Library?</h2>\n\n\n\n<p>Images and videos in your media library will remain unchanged. The duotone effect works using <a href=\"https://www.w3.org/TR/SVG11/filters.html\">SVG filters</a> and the <a href=\"https://www.w3.org/TR/filter-effects-1/\">CSS filter property</a>, so the image or video is never modified in your library. On the one hand, this means that you can apply a filter to an image that you link to that doesn’t exist in your media library. On the other hand, this means that the filter won’t show up in RSS feeds or places that use the image URL directly.</p>\n\n\n\n<h2>Can I Add Duotone Colors to Blocks or Themes That I Develop?</h2>\n\n\n\n<p>The API for adding duotone colors to blocks is experimental in Gutenberg v10.6. Still, the documentation for using it in your own blocks can be found and will be updated under <a href=\"https://developer.wordpress.org/block-editor/reference-guides/block-api/block-supports/#color\">Supports Color</a> in the Block Editor Handbook. Themes can add duotone presets with theme.json. More information can be found under <a href=\"https://developer.wordpress.org/block-editor/how-to-guides/themes/theme-json/#presets\">Global Settings &amp; Styles Presets</a> in the Block Editor Handbook.</p>\n\n\n\n<h2>Try it Out Now Using the Gutenberg plugin</h2>\n\n\n\n<p>The duotone feature was released in version 10.6 of the Gutenberg plugin, so you can try it out now prior to the WordPress 5.8 release in July.</p>\n\n\n\n<hr class=\"wp-block-separator\" />\n\n\n\n<p><em>Thanks to <a href=\"https://profiles.wordpress.org/joen/\">@joen</a> and <em><em><a href=\"https://profiles.wordpress.org/mkaz/\">@mkaz</a></em></em></em> <em>for assistance writing and reviewing this post.</em></p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 26 May 2021 12:17:41 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:15:\"Chloe Bringmann\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:32;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:82:\"WPTavern: The Price of Admission: WordPress Users Get To Hold Creators Accountable\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=117214\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:207:\"https://wptavern.com/the-price-of-admission-wordpress-users-get-to-hold-creators-accountable?utm_source=rss&utm_medium=rss&utm_campaign=the-price-of-admission-wordpress-users-get-to-hold-creators-accountable\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4479:\"<p class=\"has-drop-cap\">When I reported on the <a href=\"https://wptavern.com/profilepress-rebrands-and-repurposes-wp-user-avatar-now-a-membership-plugin-users-revolt-via-the-wordpress-review-system\">WP User Avatar plugin&rsquo;s rebranding and repurposing</a> last week, it came as no surprise that users were angry. However, I did not expect pushback against those user complaints from a subset of commentators and others in the community.</p>\n\n\n\n<p>There were a few points, each boiled down to the argument that free plugin users have a sense of entitlement.</p>\n\n\n\n<p>These points focused either on the concept of plugin authors needing to make a living or <a href=\"https://wptavern.com/profilepress-rebrands-and-repurposes-wp-user-avatar-now-a-membership-plugin-users-revolt-via-the-wordpress-review-system#comment-378312\">the GPL</a>, a license that offers no warranty on the code the user receives. Both of these arguments led the conversation astray at times. The focus of the user complaints was not on upsells or about code they grabbed from the wild. No, the backlash was about logging into their websites and finding things had changed with no warning. It was about a plugin installed from an official, presumably trustworthy, source being replaced with a different plugin.</p>\n\n\n\n<p>What I see is not a group of people complaining about an advert. What I see is not a long list of users disliking feature changes.</p>\n\n\n\n<p>The issue of maintaining free plugins and user entitlement was never the point.</p>\n\n\n\n<p>Even David Bisset of Post Status <a href=\"https://poststatus.com/what-we-can-learn-from-the-profilepress-debacle/\">followed that rabbit down the hole</a>. There are good points to be made on free plugin development being a labor of love &mdash; and sometimes just a headache from a support perspective &ndash;, but this conversation was never about a commercial upsell. It was about the ethics of wholesale swapping the codebase of one plugin with a different one.</p>\n\n\n\n<p><em>Will some users complain about a new advert in a plugin?</em> Undoubtedly.</p>\n\n\n\n<p><em>Will nearly 200 users leave one-star reviews in that case?</em> Unlikely.</p>\n\n\n\n<p>Many users have a sense of entitlement. They grab a free theme or plugin and expect developers to answer their every whim. I would argue that it is a small percentage of total users based on personal experience, but that vocal minority can give the whole group a bad rep. They can be a drag on a developer&rsquo;s motivation to continue with a project.</p>\n\n\n\n<p>I get it. I have been doing this whole free software thing for nearly as long as WordPress has been around. It is easy to feel underappreciated for work that you pass on to the community. And, if you have no benefactor funding all of this free work, you must find some means of putting food on the table.</p>\n\n\n\n<p>Users of free software are not owed free customizations. They are not owed free technical support. They are not even owed a promise that a developer will not swap in a new codebase that does something different. They are owed nothing.</p>\n\n\n\n<p>However, the price of admission for playing in this market, regardless of whether it is free or commercial software, is that every plugin&rsquo;s success or failure rests in the hands of those who use it.</p>\n\n\n\n<p>Maybe we, those of us who build free plugins, do not owe users anything. But, we have a responsibility to be trustworthy stewards of our sub-communities in the WordPress ecosystem. We have a responsibility to behave ethically, rightness and wrongness as defined by our users.</p>\n\n\n\n<p>Whether it is commercial or free software, the goal is to have users &mdash; <em>is it really software if no one is using it?</em> They are the lifeblood of every project. Ultimately, developers who want people to use their code must answer to those who would.</p>\n\n\n\n<p>On the flip-side, developers are not owed glowing reviews on their projects. Users have a right to complain, even about a plugin that they acquired for free. It is not about them wanting special privileges or treatment. It never was.  If you treat them fairly, do right by them, and communicate, you can build a living and breathing community around your software.</p>\n\n\n\n<hr class=\"wp-block-separator\" />\n\n\n\n<p>Please send virtual hugs to developers who are building the plugins and themes you use. They are a vital part of WordPress&rsquo;s success. Five-star ratings and donations never hurt either.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 26 May 2021 00:35:50 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:33;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:60:\"WPTavern: My Codeless Website App Detects Site Builder Tools\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=114023\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:165:\"https://wptavern.com/my-codeless-website-app-detects-site-builder-tools?utm_source=rss&utm_medium=rss&utm_campaign=my-codeless-website-app-detects-site-builder-tools\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:3010:\"<p><a href=\"https://mycodelesswebsite.com/\">My Codeless Website</a> is a new tool that detects if a site was built using a website builder. The app can detect more than 50 different tools that people use to create sites, including WordPress-powered ones like Beaver Builder, Elementor, and Divi, as well as Drupal, Squarespace, Shopify, Wix, and others. It was built using PHP and an AJAX call to fetch the website builder. The app&rsquo;s detection capabilities extend to site builder tools that represent more than 2 billion websites, as measured by <a href=\"http://builtwith.com/\">Built With</a>. </p>\n\n\n\n<p>After speaking with the app&rsquo;s creators, who are based in Utrecht, I encouraged them to add Gutenberg to the list. The site is designed to be used by people who spot a cool website and want to quickly see what tool was used to build it.</p>\n\n\n\n<div class=\"wp-block-image\"><img /></div>\n\n\n\n<p>One place to find inspiring WordPress sites is the Websites category of the Webby Awards for 2021. In the Government &amp; Civil Innovation category, <a href=\"https://www.whitehouse.gov/\">WhiteHouse.gov</a> won with its Gutenberg-powered site. The <a href=\"http://covid19.tn.gov/\">State of Tennessee COVID-19 Dashboard</a>, another WordPress site nominated in the category, also used the block editor for its builder. Checking back through the <a href=\"https://wptavern.com/a-wordpress-voting-guide-to-the-webby-awards\">WordPress-powered nominees and winners</a>, nearly every one has a site that was built using Gutenberg. I did not find one page builder among them. This seems to indicate that most of the sites recognized with Webby awards for excellence on the web are building their designs on top of the block editor.</p>\n\n\n\n<img />\n\n\n\n<img />\n\n\n\n<p>In 2014, we featured a service called <a rel=\"noreferrer noopener\" href=\"http://whattheme.com/\" target=\"_blank\">What Theme</a>&nbsp;that detects WordPress, Ghost, Drupal, and Shopify templates. It was later moved to be maintained by <a href=\"https://www.codeinwp.com/find-out-what-wordpress-theme-is-that/\">CodeinWP</a>. At that time, the main thrust of a design came through a site&rsquo;s theme and its options. Over the past seven years, plugins have played an increasingly more important role in how WordPress users create their website designs, whether it&rsquo;s page builders or block libraries. Simply checking for a theme will no longer give you the full picture. </p>\n\n\n\n<p><a href=\"https://mycodelesswebsite.com/\">My Codeless Website</a> is a handy tool worth bookmarking that enables you to check through a list of sites quickly to see what site builders they are using. It&rsquo;s meant to appeal to entrepreneurs who need to take their businesses online so the rest of the site is geared towards client services. It would be valuable if this tool or another new tool could expand to detect the block plugins and libraries that a site is using so that visitors could get even more information on the website they find inspiring. </p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 25 May 2021 04:56:20 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:34;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:79:\"WPTavern: Bricks: Laying Down a Foundation in the WordPress Page Builder Market\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=114867\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:201:\"https://wptavern.com/bricks-laying-down-a-foundation-in-the-wordpress-page-builder-market?utm_source=rss&utm_medium=rss&utm_campaign=bricks-laying-down-a-foundation-in-the-wordpress-page-builder-market\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:7318:\"<p class=\"has-drop-cap\">In a mature and ever-growing market of WordPress page builders, Thomas Ehrig decided to bring a new product to the ecosystem. Joined by Luis Godinho, the initial team launched <a href=\"https://bricksbuilder.io/\">Bricks</a> in March. Unlike most other builder plugins, the project is bundled as a theme.</p>\n\n\n\n<p>As a small, 100% bootstrapped company, the team decided against going the freemium route. Pricing currently starts at $59 for a lifetime license, but that could change as the business model evolves. Potential customers are encouraged to test the product out via the open <a href=\"https://try.bricksbuilder.io/\">playground demo site</a>.</p>\n\n\n\n<img />Creating a restaurant menu via the Bricks demo site.\n\n\n\n<p>&ldquo;Bricks aims to provide an all-in-one site-building platform that empowers you to create beautiful, fully-fledged, and responsive sites that rank,&rdquo; said Ehrig. &ldquo;Without having to buy and rely on dozens of expensive and disjointed plugins.&rdquo;</p>\n\n\n\n<p>One of the problems that the team wanted to avoid was end-users trying to find a Bricks-compatible theme. Instead of offering a default or placeholder, Bricks serves as an all-in-one bundle.</p>\n\n\n\n<p>The difference between a theme and a plugin is mostly a semantic one in WordPress. Aside from a few small things, a theme can do anything a plugin can do and vice versa.</p>\n\n\n\n<p>&ldquo;The main advantage I see providing it as a plugin is from a marketing perspective,&rdquo; said Ehrig. &ldquo;Elementor has done a fantastic job in this department. As you can see on the many free and premium themes that it comes bundled with. This greatly helped boost its exposure in the early days.&rdquo;</p>\n\n\n\n<p>Aside from a few users trying to install it as a plugin, he said the team has been happy serving Bricks as a theme.</p>\n\n\n\n<p>He described the builder as a &ldquo;theme that aims to tame the plugin madness.&rdquo; The focus is on customization, design, and performance, but the development process is user-driven. All of this is done in the open via the <a href=\"https://bricksbuilder.io/ideas/\">project&rsquo;s idea board</a>, forum, and Facebook group. Users can submit feature requests, which others can vote and comment on. The team builds its <a href=\"https://bricksbuilder.io/roadmap/\">development roadmap</a> from this foundation.</p>\n\n\n\n<p>Voting systems like this often work well in a project&rsquo;s early history. However, they can become unruly as audiences grow. We will have to check in with Bricks a year or two down the road to see how their feedback system has evolved.</p>\n\n\n\n<p>&ldquo;We don&rsquo;t build in secret,&rdquo; said Ehrig. &ldquo;Our public roadmap makes sure everyone knows at all times what to expect and what&rsquo;s next. It also keeps us accountable. If you are not only looking for a beautiful builder that is fun to work with, but where you have an actual say about its development, I think you should take Bricks for a spin.&rdquo;</p>\n\n\n\n<p>Bricks is bringing in its third team member to develop predesigned templates. However, they are already looking to <a href=\"https://bricksbuilder.io/contact/\">grow the team more</a>. Their current need is for a Vue.js and WordPress developer.</p>\n\n\n\n<h2>Building in an Established Market</h2>\n\n\n\n<img />Slider element in the Bricks builder.\n\n\n\n<p class=\"has-drop-cap\">Elementor has become the <em>de facto</em> standard for third-party page builders. Others have made dents, and WordPress is <a href=\"https://wptavern.com/full-site-editing-is-partly-a-go-for-wordpress-5-8\">launching several sub-components</a> of its Full Site Editing experience in version 5.8. It is getting crowded, but Ehrig believes there is plenty of seats left at the table.</p>\n\n\n\n<p>&ldquo;The WordPress builder market is well established,&rdquo; he said. &ldquo;This actually gave me the confidence to start this project in the first place. It&rsquo;s been heavily validated, and it&rsquo;s not going away anytime soon.&rdquo;</p>\n\n\n\n<p>Not wanting to launch a half-baked builder, he said the team forwent a deadline for their version 1.0. They wanted to create an MVP with all the essentials and hit the ground running. Based on the initial feedback in the past couple of months, he said it is clear there is still space in the market.</p>\n\n\n\n<blockquote class=\"wp-block-quote\"><p>Personally, I think there is always going to be space. After all, we are talking about tens of millions of WordPress sites that need to be launched, re-built, managed, and constantly optimized. It&rsquo;s also not a winner-takes-all market, which is nice.</p><p>Your users&rsquo; trust and loyalty have to be earned every single day. If not, many move on to a different solution. As the web design and development landscape evolves, so has your product.</p><p>All those moving pieces ensure that no single player can rest on his/her laurels for long. Meaning there are always going to be opportunities if you take the time to look out and execute on them.</p></blockquote>\n\n\n\n<p>While the builder is somewhat of a competitor against the core platform it is built upon, it works alongside WordPress. Users can convert their block-built pages into Bricks data. This data conversion works the other way around too.</p>\n\n\n\n<p>&ldquo;So there is no lock-in effect,&rdquo; said Ehrig of the feature, which his team made available from Day 1. &ldquo;Which I think is really important. If someone decides to move away from Bricks, we don&rsquo;t want him/her to be tied to our platform.&rdquo;</p>\n\n\n\n<p>The team is also exploring the concept of creating blocks visually within Bricks. The goal is to enable more integration between the two, but they must wait to see how Full Site Editing evolves in the coming months to know what that might look like.</p>\n\n\n\n<h2>Version 1.2 and Beyond</h2>\n\n\n\n<img />Inserting a Container element from the sidebar.\n\n\n\n<p class=\"has-drop-cap\">Last week, the Bricks team launched <a href=\"https://bricksbuilder.io/changelog/#v1.2\">version 1.2</a> of its builder. It is touting its new &ldquo;Container&rdquo; element, which is essentially a box to put other items in. Users can control its display settings, and it already supports flex layouts, which many designers will welcome. Grid layouts are forthcoming, according to Ehrig.</p>\n\n\n\n<p>&ldquo;After that, I am currently very excited about the upcoming visual WooCommerce builder,&rdquo; he said. &ldquo;It&rsquo;s a very challenging integration to get right. Not just code-wise, but also from a UI/UX perspective.&rdquo;</p>\n\n\n\n<p>Of the several things he thinks the team has gotten right, he mentions data integration with popular plugins like Advanced Custom Fields, Meta Box, Pods, and CMB2. He also said the version-1.0 features like global theme styles, responsive editing modes, and color palettes were things the team nailed down.</p>\n\n\n\n<p>&ldquo;But the one thing we are most proud of is not even a feature and something no one has really any control over,&rdquo; said Ehrig. &ldquo;And that&rsquo;s the community that has formed around Bricks and its cause.&rdquo;</p>\n\n\n\n<p>In two months, its Facebook community has grown to 2,000+ members. &ldquo;Very active, positive, and helpful,&rdquo; he said. &ldquo;You can&rsquo;t put a price tag on that.&rdquo;</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 24 May 2021 23:36:41 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:35;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:72:\"WordPress.org blog: WP Briefing: Episode 9: The Cartography of WordPress\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:53:\"https://wordpress.org/news/?post_type=podcast&p=10373\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:74:\"https://wordpress.org/news/2021/05/episode-9-the-cartography-of-wordpress/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:12609:\"<p>In this episode, Josepha Haden Chomphosy provides a map of how to navigate WordPress teams and communication channels, along with her small list of big things.</p>\n\n\n\n<p><em><strong>Have a question you&#8217;d like answered? You can submit them to <a href=\"mailto:wpbriefing@wordpress.org\">wpbriefing@wordpress.org</a>, either written or as a voice recording.</strong></em></p>\n\n\n\n<h2>Credits</h2>\n\n\n\n<ul><li>Editor:<a href=\"https://profiles.wordpress.org/dustinhartzler/\"> Dustin Hartzler</a></li><li>Logo:<a href=\"https://profiles.wordpress.org/beafialho/\"> Beatriz Fialho</a></li><li>Production:<a href=\"https://profiles.wordpress.org/mkaz/\"> </a><a href=\"https://profiles.wordpress.org/cbringmann/\">Chloé Bringmann</a></li><li>Song: Fearless First by Kevin MacLeod</li></ul>\n\n\n\n<h2>References</h2>\n\n\n\n<ul><li><a rel=\"noreferrer noopener\" target=\"_blank\" href=\"https://www.meetup.com/pro/wordpress/\">https://www.meetup.com/pro/wordpress/</a></li><li><a rel=\"noreferrer noopener\" href=\"https://make.wordpress.org/\" target=\"_blank\">https://make.wordpress.org/</a></li><li><a rel=\"noreferrer noopener\" href=\"https://make.wordpress.org/chat/\" target=\"_blank\">https://chat.wordpress.org/</a></li><li><a rel=\"noreferrer noopener\" target=\"_blank\" href=\"https://make.wordpress.org/\">Make WordPress</a> Slack</li><li><a href=\"https://europe.wordcamp.org/2021/\">WordCamp Europe</a>, June 7-9</li><li><a href=\"https://japan.wordcamp.org/2021/\">WordCamp Japan</a>, June 20-26</li><li>The Sixth<a href=\"https://make.wordpress.org/test/2021/05/12/fse-program-testing-call-6-stick-the-landing-pages/\"> call for testing</a> on Template Editing&nbsp;</li><li>The <a href=\"https://wordpress.org/news/2021/05/dropping-support-for-internet-explorer-11/\">upcoming drop of Internet Explorer 11 support</a></li></ul>\n\n\n\n<h2>Transcript</h2>\n\n\n\n<span id=\"more-10373\"></span>\n\n\n\n<p><strong>Josepha Haden Chomphosy&nbsp; </strong>00:10</p>\n\n\n\n<p>Hello, everyone, and welcome to the WordPress briefing, the podcast where you can catch quick explanations of some of the ideas behind the WordPress open source project and the community around it, as well as get a small list of big things coming up in the next two weeks. I&#8217;m your host, Joseph Haden Chomphosy. Here we go!</p>\n\n\n\n<p><strong>Josepha Haden Chomphosy&nbsp; </strong>00:40</p>\n\n\n\n<p>Almost every episode of this podcast, you can hear me invite you to join in the WordPress project, to contribute back, to get involved. And I&#8217;m sure that every time I say that there&#8217;s at least one of you who&#8217;s like “Yes. Challenge accepted!” And you wade in sight unseen, to immerse yourselves in the cheerful cacophony of open source at scale that is WordPress. You see before you all 158 ways you can start contributing and you are exhilarated by this lostness. This you think, is the lostness of infinite possibility. And for you, I&#8217;m really thankful. My work here today would not be possible if it weren&#8217;t for the brave souls who leap into something with hope as their primary plan and tactic. You are heroes, and I thank you very much for your service. For everyone else, I&#8217;m going to give you a quick tour of where WordPress collaborates and a little bit of how they collaborate. We&#8217;ll cover the Make network, the Making WordPress Slack, events for WordPress, and a rundown of the teams.&nbsp;</p>\n\n\n\n<p>First, the Make network. The Make network of sites can be found at make.wordpress.org. That page includes information on most of our teams. Teams like Core and Design and Community. All of those teams require some technical skills since we&#8217;re a project built around a piece of software. However, some require a little more than others. You can think of this set of sites as the desk of each team in the WordPress project. It&#8217;s where they update each other, where they host discussions, where they refine proposals, and where they coordinate admin tasks. Contributors can write posts on most sites in the network as long as they follow the guidelines and best practices. And anyone with a wordpress.org profile can join in discussions in the comments. Most work on the Make network is asynchronous, and discussions stay open for a long enough time to allow anyone in the world to weigh in when they have the time. It&#8217;s how we try to remember that we are a globally-minded project.&nbsp;</p>\n\n\n\n<p>The second area is the Making WordPress Slack instance. The Making WordPress Slack instance can be found at wordpress.slack.com, and it requires an account that is associated with your wordpress.org profile. Each team in the project has a channel, although not all channels in that Slack instance, represent a standalone team. You can think of this Slack instance as a set of conference rooms. It&#8217;s where contributors connect, gain a more nuanced understanding of problems that we&#8217;re trying to solve. They host synchronous meetings and also coordinate working groups.</p>\n\n\n\n<p><strong>Josepha Haden Chomphosy&nbsp; </strong>03:31</p>\n\n\n\n<p>Contributors can post in most channels, although there are a few that are restricted. We don&#8217;t have any social channels in this Slack instance, but most WordPress-ers do tend to find friends that they connect with. The work done here is synchronous, and most meetings last about an hour. There are about 35+ meetings a week, so you can basically always find someone around.&nbsp;</p>\n\n\n\n<p>The last area we work is actually at WordPress events. Word Camps and WordPress meetups happen all over the world. Unless there&#8217;s a global pandemic, then they&#8217;re kind of all over the computer and at all times of day and night. You can keep track of those on wordcamp.org or on WordPress’s meetup page, which I&#8217;ve linked in the notes below. These events bring together all sorts of facets of the WordPress project. And they are an event where local WordPress communities aim to connect, inspire and educate each other. There&#8217;s always someone at these events, who knows a little bit more about WordPress than you do. If you&#8217;re headed to want to learn more about contribution, look out for any that have a contributor day or are hosting a contribution drive. These are clearly synchronous events. And when we do get back to doing them in person, they&#8217;re also tied to physical locations. When we get back to them, I encourage you to find one that&#8217;s close to you. They are incredibly valuable.&nbsp;</p>\n\n\n\n<p>Okay, so that&#8217;s the map of the area. Those are the three big places where we get this stuff done. Let&#8217;s do a quick map of the teams themselves. If you&#8217;re a developer and you&#8217;re looking to work inside the technology space, work with code a bit, then your best chances for teams are Core and all of its related components. They&#8217;re like 50 components, including core editor and various other things. There&#8217;s also the Mobile team WP CLI, the Tide team, Security, our brand new team, Openverse, and Meta. Those all take a fairly high amount of code knowledge to contribute there.&nbsp;</p>\n\n\n\n<p>If you&#8217;re more into design and product work, then we have a few teams for that as well. There&#8217;s of course, the Design team, but we also have Accessibility, Test, Triage, Polyglots kind of falls in there for me. But if you are a programs person, and we&#8217;re talking like programs, getting people together programs, not programs, as in programming or code. So if you&#8217;re a programs person, you&#8217;re looking more at the Community team, at the Themes team, the Plugin team, Polyglots, again, Training support, probably a number of others that have like program components in it as well.</p>\n\n\n\n<p>If you are really interested in learning more about contributor experience, which is how we build tools, and again, programs for all of the contributors who are showing up, then the teams for you will be teams like Meta and Documentation, Hosting, the Community team, the Training team, arguably any team that has a program as part of it is considered contributor experience because that&#8217;s how we help our contributors know what to do, what not to do, how to help them get onboarded, find their way, stuff like that.&nbsp;</p>\n\n\n\n<p>And if you&#8217;re more in the communications area of things, we have quite a few teams there as well. We do have Marketing, of course, but also I think that Support ends up in our communications area, WordPress TV, obviously ends up in communications. But I think Training, Meta, Documentation, and arguably, maybe also Testing ends up in that space as well.&nbsp;</p>\n\n\n\n<p>I realize that there are a handful of teams that I mentioned multiple times, especially Polyglots, Support, Test, Triage, Meta, Community. The reason they end up in a number of different places is that all of those teams also have a fair amount of admin and infrastructure stuff that goes into the WordPress project and community as a whole. So it touches a lot of other teams, and so they get a lot of mentions. All right. So WordPress adventurers, you now have a beginner&#8217;s map. I hope it helps, and I hope we see you around the community.</p>\n\n\n\n<p><strong>Josepha Haden Chomphosy&nbsp; </strong>07:54</p>\n\n\n\n<p>If you&#8217;re still with me, that brings us today to my small list of big things. I&#8217;ve got four things for you, and I&#8217;m excited about all of them. The first two are events actually. WordCamp Europe is coming up from June seventh through the ninth. It will include a presentation from the WordPress project co-founder, Matt Mullenweg, so I encourage you to hop over, grab a ticket to check out the rest of the sessions that are happening while you&#8217;re there. The next one is WordCamp, Japan, which is happening June 20th through the 26th. And you heard that right that is seven whole days of WordCamp. It&#8217;s a little bit of a different format than we normally take, but it&#8217;s five days actually of contribution on ten specific projects. Then that&#8217;s bookended on either side of those contribution days, with full days of sessions. There&#8217;s some in English, but it&#8217;s primarily in Japanese. But either way, I think it&#8217;s going to be a really excellent event, and I encourage everyone to check it out.&nbsp;</p>\n\n\n\n<p>The rest of my list is not events. We have opened our sixth call for testing, it&#8217;s specifically looking at the template editing mode for Full Site Editing. It is an iteration on one of our earliest tests for the Full Site Editing outreach program. And so it has incorporated a lot of the feedback that we got in that test the first time around. So if you look at that test, which by the way, are all guided, if you&#8217;ve never tested anything before, don&#8217;t let this scare you. It&#8217;s really well written, it&#8217;s got a good guide on it and, and also allows for a little bit of exploration. But if you participated in the landing page test that we did early on, this is the follow-up to that. It incorporates a lot of the feedback that we got, so this is closing that feedback loop and I encourage you to stop by and participate in that test. It will be linked in the show notes and also I tweet about it a bit so you can run over there and find it also.</p>\n\n\n\n<p>&nbsp;WordPress is dropping support for Internet Explorer 11. That&#8217;s happening over the summer, so around the middle of July is when that&#8217;s going to happen. If you&#8217;ve been using WordPress for a while you&#8217;ve been getting notifications. If you happen to get to WordPress with IE11, letting you know that that this particular browser is reaching the end of its life for support in general on the web, but now WordPress also is making the choice to drop support for that. And so there&#8217;s a post out on wordpress.org/news, which I will also link to in the show notes in case you have not heard about this yet. It shouldn&#8217;t have any immediate and noticeable effects on anyone who&#8217;s visiting a site that&#8217;s built using WordPress. There might be a few things in the dashboard that don&#8217;t work if you are administering a WordPress site from IE11. So there&#8217;s a lot of good information in that post. Give it a read and if you have questions, always feel free to stop by the Core chat and ask those as we go.&nbsp;</p>\n\n\n\n<p>And that my friends is your smallest of big things. Thank you for tuning in today for the WordPress Briefing. I&#8217;m your host, Josepha Haden Chomphosy, and I&#8217;ll see you again in a couple of weeks!</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 24 May 2021 11:55:14 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:15:\"Chloe Bringmann\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:36;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:109:\"Gutenberg Times: Getting Started with Themes for Full-site Editing and Block Plugins – Weekend Edition #170\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://gutenbergtimes.com/?p=17881\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:115:\"https://gutenbergtimes.com/getting-started-with-themes-for-full-site-editing-and-block-plugins-weekend-edition-170/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:15809:\"<p>Howdy, </p>\n\n\n\n\n\n<p>I am getting really excited about the <a href=\"https://make.wordpress.org/core/5-8/\">WordPress 5.8 release</a>. It&#8217;s still about eight weeks away, but there is a lot of work in front of us.  We are coming up to Feature Freeze on May 25, 2021. The Gutenberg team has a <a href=\"https://github.com/WordPress/gutenberg/releases/tag/v10.7.0-rc.1\">release candidate for 10.7</a>, the last version of the plugin, that will make it into WordPress Core. </p>\n\n\n\n<p>How can you help? Test, test test! </p>\n\n\n\n<ul><li>Set up a test site. <a href=\"https://pantheon.io/register\">Pantheon offers developer 2 sites for free.</a> </li><li>Use the <a href=\"https://wordpress.org/plugins/wordpress-beta-tester/\">Beta Tester plugin</a> &#8211; set it to channel = <em>Bleeding Edge</em> and stream = <em>Nightlies</em>, that means you have the lasted WordPress version on your site. </li><li><a href=\"https://core.trac.wordpress.org/newticket\">Report any bugs you find</a></li></ul>\n\n\n\n<p>On the team working on the block-editor end user documentation, we have a <a href=\"https://docs.google.com/document/d/1QdBr37mzz0AiAWDsR9PEFPUvzpULppt9FBbXE6WM0-w/edit#heading=h.yhitji5ms7k6\">preliminary list of relevant user-facing changes</a> in Google Doc. We are looking for more contributors to not only get through the latest task list but also update some documentation pages with 5.6 and 5.7 changes. If you have a few hours, and want to take a deep dive into the block-editor features, let me know   by joining the #docs channel or DM me on the Make Slack. </p>\n\n\n\n<p>Wishing everyone lots of patience.  We are still in a pandemic, and all good things take time. </p>\n\n\n\n<p>Yours 💕,<br />Birgit</p>\n\n\n\n<p>PS: Did a deep dive into the <a href=\"https://www.npmjs.com/package/@wordpress/data\">wp.data package</a> to learn more about state management for the block-editor. Do you know of any resources that helped you get the hang of it? The usual metaphors don&#8217;t seem to help much. </p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<p><strong>Anne McCarthy</strong> posted about <strong><a href=\"https://make.wordpress.org/test/2021/05/21/hallway-hangout-discussion-on-full-site-editing-issues-prs-designs-20-may/\">Hallway Hangout: Discussion on Full Site Editing Issues/PRs/Designs (20 May)</a></strong>. This was the fourth Hallway Hangout, a series of information meetings, that started in April. <a href=\"https://www.youtube.com/channel/UCkPsxZ_WQFaACunULLiT85g\">They are all available on YouTube.</a> Sometimes it is much easier to talk through a feature, an interface, or bugs, when you can ask questions and screen share. If you missed them, they are available on YouTube and summary posts are available on the <a href=\"https://make.wordpress.org/test/tag/fse-hallway-hangout/\">Make block of the Test Team</a>. </p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<p>Although, I long for in-person WordCamps, they are still not safe in many regions.  For now, connections to my WordPress friends are still virtual: pick-up <a href=\"https://www.youtube.com/channel/UCkPsxZ_WQFaACunULLiT85g\">Hallway Hangouts</a>, Meetups meetings and WordCamps and conferences. </p>\n\n\n\n<p>Speaking of which: Next week <a href=\"https://wordsesh.com/register/\"><strong>WordSesh is taking place May 24 &#8211; May 27</strong></a>, with Workshops starting on May 28.  Well, depending on where you are in the world, it will start tomorrow night. </p>\n\n\n\n<p><strong>On the schedule a five session around Gutenberg: </strong></p>\n\n\n\n<img />\n\n\n\n<ul><li><strong>Blazing Fast Block Development</strong> w/ Lee Shadle </li><li><strong>Building Custom Block</strong>s w/ Rob Stinson</li><li><strong>Block-Based Themes</strong> – <strong>The Future Of Full Site Editing In WordPress</strong> w/ Imran Sayed</li><li><strong>How the Block Editor Makes It Easier to Build Custom Websites</strong> w/ Danielle Zarcaro </li><li><strong>Build your own Block-Based Theme</strong> w/ Daisy Olsen (Workshop)</li></ul>\n\n\n\n<p>Find a <a href=\"https://gutenbergtimes.com/feed/#events\">list of more upcoming WordPress events </a>further below. </p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<p><strong><a href=\"https://www.youtube.com/watch?v=PBr3TgVRrkE&t=14s\">Eight Gutenberg Tips and Tricks in eight minutes</a> </strong>&#8211;  Learn how to start developing WordPress sites with Gutenberg blocks with <strong>Bill Erickson</strong> and <strong>Gabriel A. Mays</strong> from GoDaddy.  Take a look at the YouTube video and the links resources, if you are just starting out working with the block-editor in your WordPress development. </p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<p><strong><a href=\"https://twitter.com/edward_bock\">Edward Bock</a></strong> shared how to <a href=\"https://medium.com/write-better-wordpress-code/properly-add-modern-javascript-to-gutenberg-14bde8679d83\">Properly add modern JavaScript to Gutenberg</a>. In his article, he helps you transition from the conventional programming on PHP to adding JavaScript to your tools set</p>\n\n\n\n<h2>Full-Site Editing for Theme Developers</h2>\n\n\n\n<p><strong><a href=\"https://twitter.com/herb_miller\">Herb Miller</a></strong> shared recording from his presentation:  <a href=\"https://www.youtube.com/watch?v=sfYWkKuzv90\"><strong>Guide to WordPress Full Site Editing, blocks and themes</strong></a> at the Meetup in Portsmouth. Now the Herb went beyond the template editor bits that are coming to WordPress 5.8. He demonstrated the full Site Editor, which isn&#8217;t slated to come to WordPress until 5.9 or even 6.0. To follow along you would need a block-based theme and the latest Gutenberg version (for now 10.6.2). After a tour around the Site Editor, Herb Miller, shared with the audience how he built a block-based theme. </p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<p><strong><a href=\"https://twitter.com/carolinapoena\">Carolina Nymark</a></strong> published here <a href=\"https://wordpress.org/themes/armando/\"><strong>full-site editing theme &#8220;Armando&#8221;</strong></a> in the theme directory on WordPress.org. Carolina also is a contributor to the Gutenberg repository and published a <a href=\"https://fullsiteediting.com/courses/full-site-editing-for-theme-developers/\">Full Site Editing course for developers</a>. Recently, she also published a <a href=\"https://marketplace.visualstudio.com/items?itemName=CarolinaNymark.wordpress-block-markup\">VS Code extension WordPress Block Markup </a>with autocomplete snippets to add blocks to your templates faster. </p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<p><a href=\"https://twitter.com/fklux\"><strong>Fränk Klein</strong> </a>of <a href=\"https://wpdevelopment.courses/\">WPDevelopment Courses</a> is getting ready to open his <strong><a href=\"https://wpdevelopment.courses/courses/building-block-based-themes/#curriculum\">Building Block-Based Themes </a></strong>course. He already shared quite a few insights in his learnings with the articles: <a href=\"https://wpdevelopment.courses/articles/full-site-editing-theme-learnings/\">What I Learned Building a Full-Site Editing Theme</a> and <a href=\"https://wpdevelopment.courses/articles/global-styles-in-block-based-bosco/\">Implementing Global Styles in Block-Based Bosco</a>. The <a href=\"https://wordpress.org/themes/block-based-bosco/\">Block-based Bosco Theme</a> is also available in the WordPress.org repo. </p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<p>The <strong>theme.json</strong> settings structure is now finalized and is not experimental anymore. The <a href=\"https://developer.wordpress.org/block-editor/how-to-guides/themes/theme-json/\"><strong>Documentation</strong></a> is available in the Gutenberg Handbook. <strong><a href=\"https://twitter.com/riadbenguella\">Riad Benguella</a></strong> wrote an <a href=\"https://riad.blog/2021/05/05/introduction-to-wordpresss-global-styles-and-global-settings/\"><strong>Introduction to WordPress’s Global Styles and Global Settings</strong></a> to get you started on the new era of Theme development in WordPress. <em>(Yes, I shared this before. I just want to make sure you find it again ) </em></p>\n\n\n\n<p>A few days ago, <strong><a href=\"https://twitter.com/aristath\">Ari Stathopoulos</a> </strong>started working on a <a href=\"https://github.com/WPTT/theme-json-parser\"><strong>Theme.JSON parser </strong></a>to make it possible for conventional themes to take advantage of the settings file as well. </p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<p><strong><a href=\"https://twitter.com/Ana_Segota\">Ana Segota</a>,</strong> Ariel Design, an early adopter of Gutenberg blocks in her themes she published in 2018 and 2019, came out with her first theme embracing full-site editing, and global styles with here <a href=\"https://www.anarieldesign.com/free-full-site-editing-theme-naledi/\"><strong>new Theme &#8220;Naledi&#8221;</strong></a>. Justin Tadlock took <a href=\"https://wptavern.com/anariel-design-launches-naledi-a-block-based-wordpress-theme\">the theme for a spin</a>. Once the theme is available at WordPress.org, it will be the <a href=\"https://wordpress.org/themes/tags/full-site-editing/\">sixth theme for full-site editing.</a> </p>\n\n\n\n<p>When will we see yours? </p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<p><strong><a href=\"https://twitter.com/pollyplummer\">Sarah Gooding</a> </strong>has the story of  <strong><a href=\"https://wptavern.com/blocksy-theme-expands-free-starter-site-collection-plans-to-create-new-suite-of-blocks\">Blocksy Theme Expands Free Starter Site Collection, Plans to Create New Suite of Blocks</a>.</strong> Blocksy embraced the block-editor wholeheartedly and grew it&#8217;s business rapidly, it seems. They also integrate well with the blocks by Stackable. </p>\n\n\n\n<h2>Plugins for the Block Editor</h2>\n\n\n\n<p><strong>Benjamin Intal</strong>, of <a href=\"https://wpstackable.com\">Stackable </a>was this week&#8217;s guest of the WP Tavern Jukebox podcast, and he discussed with <strong><a href=\"https://twitter.com/wpbuilds\">Nathan Wrigley</a></strong> the <strong><a href=\"https://wptavern.com/podcast/3-benjamin-intal-on-why-hes-betting-his-business-on-blocks\">Why He’s Betting His Business on Blocks</a>.</strong> Intal and his team were an early adopter of the Block-editor and publish their plugin already in 2018 before the block-editor made it into WordPress Core. Since them Stackable has been an often recommended plugin for content creators, and it has grown quite a bit in features and reach. It&#8217;s certainly worth a listening, considering another wave of creativity and opportunities is coming to WordPress. This time for themes. </p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<p><strong>Alexandra Yap </strong>of Stackable recently posted the <a href=\"https://wpstackable.com/blog/introducing-dynamic-content/\"><strong>Introducing Dynamic Content.</strong> </a>They wrote: &#8220;We’ve received a huge number of requests to display content from ACF’s custom fields in Stackable blocks, and now you can! <a href=\"https://wpstackable.com/blog/stackable-integrates-with-acf/\">Most ACF field types are supported</a> as well as ACF Options Pages.&#8221;. They also <a href=\"https://wpstackable.com/blog/create-dynamic-content-in-stackable-with-toolset/\">integrate with Toolset</a>.</p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<p><strong><a href=\"https://twitter.com/justintadlock\">Justin Tadlock</a></strong> reviewed a newly published pricing block and found <a href=\"https://wptavern.com/you-might-not-need-that-block\"><strong>You Might Not Need That Block</strong></a>. &#8220;With WordPress’s base blocks and a decent theme, many custom solutions are possible via patterns.&#8221;, he wrote, and he went ahead and recreated a three column pricing table with the core blocks and different themes, Twenty-Twenty, Eksell, and a full-site editing theme, too. I strongly agree with Tadlock that block patterns would provide an easier path. I can see that plugins like Easy-digital downloads, Woo Commerce and other ecommerce plugins would offer such patterns together with their Gutenberg blocks extensions to get store owners up and running quickly. </p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<p><strong><a href=\"https://twitter.com/pootlepress\">Jamie Marsland</a> </strong>shared the <a href=\"https://www.pootlepress.com/2021/05/10-big-updates-to-our-woocommerce-gutenberg-plugins/\"><strong>10 Big Updates to PootlePress WooCommerce Gutenberg plugins</strong></a> Storefront Blocks and WooBuilder Blocks. </p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<h2 id=\"events\">Upcoming WordPress Events</h2>\n\n\n\n<p><strong>June 7 &#8211; 9th, 2021</strong><br /><strong><a href=\"https://europe.wordcamp.org/2021/\">WordCamp Europe</a></strong><br />A virtual event and contributor day. <a href=\"https://europe.wordcamp.org/2021/call-for-sponsors/\">Call for sponsors is open.</a></p>\n\n\n\n<p><strong>🎉</strong>  Gutenberg Times is a media partner of WordCamp Europe 2021 </p>\n\n\n\n<p><strong>June 20 &#8211; 26</strong><br /><strong><a href=\"https://japan.wordcamp.org/2021/\">WordCamp Japan</a></strong><br /><em>The schedule has been posted. Most sessions will be in Japanese, with exceptions, I think&#8230; </em></p>\n\n\n\n<p><strong>July 17 + 18th, 2021</strong><br /><strong><a href=\"https://santaclarita.wordcamp.org/2021/\">WordCamp Santa Clarita</a></strong><br />Calls for speakers (May 30th), sponsors, volunteers and organizers are open. </p>\n\n\n\n<p><strong>June 24 &#8211; 26, 2021</strong><br /><strong><a href=\"https://cochabamba.wordcamp.org/2021/\">WordCamp Cochabama</a></strong> (Colombia) </p>\n\n\n\n<p><strong>July 23, 2021</strong><br /><a href=\"https://www.wordfest.live/\"><strong>WordFest Live </strong></a>&#8211; <em>The </em>festival of WordPress<br />Call for Speakers is now open and submissions are <strong>due on May 24th, 2021</strong></p>\n\n\n\n<p><strong>September 21 + 22, 2021</strong><br /><a href=\"https://2021.wpcampus.org/\"><strong>WPCampus 2021 Online</strong></a><br />&#8220;A free online conference for web accessibility and WordPress in higher education.&#8221; <a href=\"https://2021.wpcampus.org/proposals\">Call for Proposal is up</a> and proposal are <strong>due May 26, 2021</strong></p>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<p>On the<a href=\"https://wpcalendar.io/online/\"> <strong>Calendar for WordPress Online Events</strong> </a>you can browse a list of the upcoming WordPress Meetups, around the world, including WooCommerce, Elementor, Divi Builder and Beaver Builder meetups. </p>\n\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\n\n\n\n<p class=\"has-text-align-left\"><strong>Don&#8217;t want to miss the next Weekend Edition? </strong></p>\n\n\n\n<form class=\"wp-block-newsletterglue-form ngl-form ngl-portrait\" action=\"https://gutenbergtimes.com/feed/\" method=\"post\"><div class=\"ngl-form-container\"><div class=\"ngl-form-field\"><label class=\"ngl-form-label\" for=\"ngl_email\"><br />Type in your Email address to subscribe.</label><div class=\"ngl-form-input\"><input type=\"email\" class=\"ngl-form-input-text\" name=\"ngl_email\" id=\"ngl_email\" /></div></div><button class=\"ngl-form-button\">Subscribe</button><p class=\"ngl-form-text\">We hate spam, too and won&#8217;t give your email address to anyone except Mailchimp to send out our Weekend Edition</p></div><div class=\"ngl-message-overlay\"><div class=\"ngl-message-svg-wrap\"></div><div class=\"ngl-message-overlay-text\">Thanks for subscribing.</div></div><input type=\"hidden\" name=\"ngl_list_id\" id=\"ngl_list_id\" value=\"26f81bd8ae\" /><input type=\"hidden\" name=\"ngl_double_optin\" id=\"ngl_double_optin\" value=\"yes\" /></form>\n\n\n\n<hr class=\"wp-block-separator is-style-wide\" />\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sat, 22 May 2021 20:19:23 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:18:\"Birgit Pauli-Haack\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:37;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:39:\"WPTavern: You Might Not Need That Block\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=117074\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:123:\"https://wptavern.com/you-might-not-need-that-block?utm_source=rss&utm_medium=rss&utm_campaign=you-might-not-need-that-block\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:5410:\"<p class=\"has-drop-cap\">As I was perusing the WordPress plugin directory this morning, I noticed a new block plugin, which is always one of the highlights of my week. It was a simple <a href=\"https://wordpress.org/plugins/bluebox-pricing-table-block/\">pricing block</a>. Of course, I installed it and began playing around with its features. It was a version-1.0 product, so I was not going to fault it for not exceeding any expectations I might have had.</p>\n\n\n\n<p>I have little doubt the plugin will meet many users&rsquo; needs. However, it did not bring much to the table that users could not already do with stock WordPress. And, as the block system continues to mature with more block options, end-users will gain more design control over every aspect of the existing core blocks.</p>\n\n\n\n<p>This is not a knock at this particular plugin. I see less and less need for many third-party blocks the more I browse and test them. With WordPress&rsquo;s base blocks and a decent theme, many custom solutions are possible via patterns.</p>\n\n\n\n<p>To test the plugin&rsquo;s block, I added it to a Columns block and duplicated it a couple of times to create pricing columns.</p>\n\n\n\n<img />\n\n\n\n<p>The structure of an individual pricing block is straightforward. It contains the equivalent of the following core blocks:</p>\n\n\n\n<ul><li>Group</li><li>Heading</li><li>Heading/Paragraph</li><li>Heading/Paragraph</li><li>Paragraph</li><li>Button(s)</li><li>Separator</li><li>List</li></ul>\n\n\n\n<p>Since I had the structure, I tried recreating it while using the Twenty Twenty-One theme. I kept everything nearly the same other than a couple of font sizes and colors.</p>\n\n\n\n<img />\n\n\n\n<p>The result was not particularly impressive, but it was mostly on par with what the plugin was doing. The biggest letdown with Twenty Twenty-One is that there are no vertical spacing controls to tighten up some of the text. This is more of a limitation of WordPress than the theme. Plus, margin and padding controls are coming.</p>\n\n\n\n<p>Aside from one-click insertion into the content canvas, the benefits the Pricing Block plugin brings are rounded borders, box shadows, and list icons. However, these items would fit more into a site&rsquo;s design if they were controlled by the theme.</p>\n\n\n\n<p>Knowing that the <a href=\"https://wptavern.com/compatibility-is-not-enough-the-eksell-wordpress-theme-creates-art-with-blocks\">Eksell theme</a> solved the vertical alignment issue with a custom block style, I decided to try it. Again, I mostly stuck with the same structure.</p>\n\n\n\n<img />\n\n\n\n<p>Much better. However, Eksell is such a beautifully designed theme that it will upgrade the appearance of nearly anything. It almost isn&rsquo;t fair.</p>\n\n\n\n<p>Kicking things up a notch, I gave the pattern an overhaul. I moved some things around, changed a few colors, and tried to have a little fun with it.</p>\n\n\n\n<img />\n\n\n\n<p>The noteworthy thing here is that I had far more control over the placement and design &mdash; within the current WordPress limitations. This was not possible with the plugin&rsquo;s block.</p>\n\n\n\n<p>There are more robust pricing blocks. This is not a comparison of all the available options out there. However, many blocks share these problems. Often, what they need to do is take advantage of WordPress&rsquo;s &ldquo;inner blocks&rdquo; system and nest core blocks, which provides access to existing design options.</p>\n\n\n\n<p>Wanting to take this experiment just a bit further, I activated a development version of the Gutenberg plugin and a block-based theme I have been tinkering with. With the right tools in hand, I had control over spacing, borders, typography, and far more &mdash; features that users will have in the coming months.</p>\n\n\n\n<img />\n\n\n\n<p>I like it, but I would also like to see professional designers take over from here. I want to see various pricing columns/tables available as patterns in themes and in the <a href=\"https://wptavern.com/pattern-directory-targeted-to-launch-with-wordpress-5-8\">upcoming block directory</a>.</p>\n\n\n\n<p>The next level of pricing columns would be integrating with plugins like WooCommerce, Easy Digital Downloads, and other eCommerce solutions. For example, users could insert a product&rsquo;s price or buy-now button into a pre-built pattern inserted into the editor canvas. That way, the data stays updated.</p>\n\n\n\n<p>However, this is not specifically about pricing columns. It is about the blocks ecosystem altogether. Nearly every time I see a testimonial block, for example, I just see it as another pattern that could be registered.</p>\n\n\n\n<p>For end-users, the quick solution will often be to activate an extra plugin. This requires more resources in the editor and, usually, the front end. It also ties them to another third-party tool, one which they may not necessarily need.</p>\n\n\n\n<p>Ultimately, most webpage sections can be broken down to the individual blocks that exist in WordPress. They simply need to be arranged in a specific order and grouped together. Our community of theme authors can <a href=\"https://wptavern.com/it-is-time-for-wordpress-theme-authors-to-step-up-their-block-pattern-game\">start providing these solutions</a> by doing the legwork of this grouping and register them as patterns.</p>\n\n\n\n<p>The most useful blocks do something that WordPress is incapable of doing alone or adding elements that do not exist.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Sat, 22 May 2021 00:26:32 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:38;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:24:\"Matt: 2021 Streaming Kit\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:22:\"https://ma.tt/?p=54177\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:41:\"https://ma.tt/2021/05/2021-streaming-kit/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:5094:\"<div class=\"wp-block-image\"><img /></div>\n\n\n\n<p>My <a href=\"https://ma.tt/2020/05/ceo-video-streaming/\">streaming setup post last year</a> got an amazing reception —&nbsp;there are similar setups being used by executives across the board, from companies fundraising to several I know of with 100B+ valuations. Since that original setup, I&#8217;ve updated my own usage of hardware and software combinations to achieve similar or better results for about a quarter of the cost. So here&#8217;s the latest and greatest, and below I&#8217;ll talk about why the changes.</p>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<a href=\"https://www.amazon.com/gp/product/B07K3FN5MR/?tag=photomatt08-20\"><img /></a>\n\n\n\n<p><a href=\"https://www.amazon.com/gp/product/B07K3FN5MR/?tag=photomatt08-20\">Elgato Cam Link 4K</a></p>\n</div>\n\n\n\n<div class=\"wp-block-column\">\n<a href=\"https://www.amazon.com/gp/product/B06WWQ7KLV/?tag=photomatt08-20\"><img /></a>\n\n\n\n<p><a href=\"https://www.amazon.com/gp/product/B06WWQ7KLV/?tag=photomatt08-20\">Micro HDMI Cable</a></p>\n</div>\n\n\n\n<div class=\"wp-block-column\">\n<a href=\"https://www.amazon.com/gp/product/B019AJOLEM/?tag=photomatt08-20\"><img /></a>\n\n\n\n<p><a href=\"https://www.amazon.com/gp/product/B019AJOLEM/?tag=photomatt08-20\">Glide Gear TMP100  Teleprompter</a></p>\n</div>\n</div>\n\n\n\n<div class=\"wp-block-columns\">\n<div class=\"wp-block-column\">\n<a href=\"https://www.amazon.com/gp/product/B08HVXJZYY/?tag=photomatt08-20\"><img /></a>\n\n\n\n<p><a href=\"https://www.amazon.com/gp/product/B07VGHW91J/?tag=photomatt08-20\"></a><a href=\"https://www.amazon.com/gp/product/B08HVXJZYY/?tag=photomatt08-20\">Sony α7C Camera &amp; kit lens</a></p>\n</div>\n\n\n\n<div class=\"wp-block-column\">\n<a href=\"https://www.amazon.com/gp/product/B00MT0SKAQ/\"><img /></a>\n\n\n\n<p><a href=\"https://www.amazon.com/gp/product/B00MT0SKAQ/\">Reticam mini tripod</a></p>\n</div>\n\n\n\n<div class=\"wp-block-column\">\n<a href=\"https://www.amazon.com/gp/product/B082QHRZFW/?tag=photomatt08-20\"><img /></a>\n\n\n\n<p><a href=\"https://www.amazon.com/gp/product/B082QHRZFW/?tag=photomatt08-20\"></a><a href=\"https://www.amazon.com/gp/product/B082QHRZFW/?tag=photomatt08-20\">Elgato Key Light Air LED panel</a> (2x)</p>\n</div>\n</div>\n\n\n\n<p><strong>Video:</strong> Camlink, cable, and tripod are still the same, but the camera goes from an A7R IV and a separate lens to an A7C with a kit lens, which saves about $3,000. You also don&#8217;t need the dummy battery because the A7C runs great off USB-C.</p>\n\n\n\n<p><strong>Lighting:</strong> More is more, so I usually use two Key Light Airs (linked above) instead of one. If I&#8217;m on the road I&#8217;ll pair <a href=\"https://www.amazon.com/dp/B08SJBH8HM?tag=photomatt08-20\">two Aputure RGB lights</a> with <a href=\"https://www.amazon.com/gp/product/B08S456KZG/?tag=photomatt08-20\">two Lume Cube monopods</a>.</p>\n\n\n\n<p><strong>Audio:</strong> My best audio advice is to upgrade to an <a href=\"https://www.apple.com/am/mac/m1/\">M1 Macbook Pro</a> so your computer is fast and the fan is never on, and position the laptop out of camera view but close to you so the built-in three-mic array picks up pretty good audio from you with no cables or earpieces. (<a href=\"https://www.youtube.com/watch?v=JQvXqDdTToM&t=205s\">Here&#8217;s a singer recording a song on the pre-M1 16-inch version</a>, and note she has to remove fan noise in post-processing.) For bonus points <a href=\"https://krisp.ai/\">add Krisp.ai ($60/yr)</a> so you get background noise and room echo magically eliminated in real-time.</p>\n\n\n\n<p><strong>Teleprompter:</strong> The Glide Gear is much easier to set up and way cheaper than my old recommendation. Instead of an external monitor, I use <a href=\"https://support.apple.com/en-us/HT210380\">an iPad and the MacOS Sidecar feature</a>. I still don&#8217;t have a great way to reverse the screen; in the comments, I&#8217;ll share some of what folks have recommended to me.</p>\n\n\n\n<p>The above setup removes 75% of the cost without sacrificing any quality.</p>\n\n\n\n<p>I&#8217;ve gone through every permutation on audio, including using a <a href=\"https://www.amazon.com/gp/product/B07VQQ2J28/?tag=photomatt08-20\">MixPre-3</a>, <a href=\"https://store.sounddevices.com/product/noiseassist-for-mixpre/\">NoiseAssist plugin</a>, and a <a href=\"https://www.amazon.com/gp/product/B00030679K/?tag=photomatt08-20\">MKH416 shotgun mic</a> ($2k+ total), but I never use that setup unless I&#8217;m recording a <a href=\"https://distributed.blog/\">fancy audio-only podcast</a>.</p>\n\n\n\n<p>Why am I using <a href=\"https://www.amazon.com/gp/product/B00D4LBOV6/?tag=photomatt08-20\">the Sennheiser SC30</a> in the above photo? Well it was an unusual situation&#8230;I was on the side of the road, next to an RV, with logging trucks rumbling by. Sometimes you don&#8217;t always know where you need to do a broadcast. <img src=\"https://s.w.org/images/core/emoji/13.0.1/72x72/1f604.png\" alt=\"😄\" class=\"wp-smiley\" /></p>\n\n\n\n<img />Behind the scenes! We were recording what <a href=\"https://www.youtube.com/watch?v=qaIYdsy-Gb8\">became this panel</a>.\n\n\n\n<p></p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 21 May 2021 23:29:19 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"Matt\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:39;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:90:\"WPTavern: Open Source Maintainer Week Begins June 7 with Activities, Events, and Resources\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=117041\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:221:\"https://wptavern.com/open-source-maintainer-week-begins-june-7-with-activities-events-and-resources?utm_source=rss&utm_medium=rss&utm_campaign=open-source-maintainer-week-begins-june-7-with-activities-events-and-resources\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:2487:\"<p><a href=\"https://github.com/\">GitHub</a>, in partnership with <a href=\"https://tidelift.com/\">Tidelift</a>, has set aside June 7-12, 2021, as <a href=\"https://github.com/github/maintainerweek\">Maintainer Week</a>, a time for open source maintainers to share knowledge and experiences through a series of planned activities and events. </p>\n\n\n\n<p>Tidelift plans to kick off Maintainer Week on June 7 with a virtual event called <a href=\"https://upstream.live/\">Upstream</a>, featuring 30+ sessions that attendees can watch live or access following the event. This event will focus on some of the bigger problems and trends in the open source ecosystem. For example, Sarah Novotny from Microsoft will be speaking about open source as an innovation engine. Simon Phipps, OSI Director of Standards and Policy, will be presenting on &ldquo;spotting the rights ratchet model early,&rdquo; a hot topic in the recent open source relicensing controversies. Attendees will also have the opportunity to meet the maintainers and experts behind many popular open source tools that are used at scale.</p>\n\n\n\n<p>GitHub will be hosting its inaugural <a href=\"https://globalmaintainersummit.github.com/\">Global Maintainer Summit</a> on June 8-9 as part of the week&rsquo;s activities. It is billed as more of a gathering or &ldquo;group therapy session&rdquo; for maintainers, with lightning talks featuring different projects&rsquo; approaches to common problems. WordPress lead developer Helen Hou-Sand&iacute; will be presenting a session called &ldquo;You Can&rsquo;t Have a Solution Without a Problem.&rdquo; GitHub emphasized that attendees do not have to be open source maintainers to attend, as many of the the best practices and skills discussed pertain to other aspects of life. </p>\n\n\n\n<p>In between sessions, maintainers will have the chance to build collaborative relationships with others and add skills that will help them avoid burnout. GitHub will be hosting a virtual hallway experience using Gather. This will allow attendees to talk with those standing closest to them and have smaller, more personal conversations. </p>\n\n\n\n<p>Open source maintainers who want to connect with others who share some of the same challenges, will want to add <a href=\"https://github.com/github/maintainerweek\">Maintainer Week&rsquo;s activities</a> to the calendar. All of the upcoming events are free but registration is required on the <a href=\"https://upstream.live/register\">Upstream</a> site.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 21 May 2021 20:37:42 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:40;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:116:\"WPTavern: Google Aims to “Revitalize RSS” and Recapture Users’ Trust with Experimental Follow Button in Chrome\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=116905\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:259:\"https://wptavern.com/google-aims-to-revitalize-rss-and-recapture-users-trust-with-experimental-follow-button-in-chrome?utm_source=rss&utm_medium=rss&utm_campaign=google-aims-to-revitalize-rss-and-recapture-users-trust-with-experimental-follow-button-in-chrome\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:6568:\"<p>The internet was set abuzz yesterday after Google officially confirmed that it has been <a href=\"https://wptavern.com/chrome-is-testing-a-follow-button-for-websites\">testing a Follow button for websites in Chrome</a>. In February, the publishers of <a href=\"https://www.chromestory.com/2021/02/chrome-follow-button/\"><em>Chrome Story</em></a> spotted the button on Canary for Android, and speculated that it may be integrated with Google&rsquo;s Discover feature. Chrome <a href=\"https://blog.chromium.org/2021/05/an-experiment-in-helping-users-and-web.html\">announced</a> that it is building on RSS to allow users to follow websites. The latest content from these sites will show up chronologically on the New Tab page as it is published.</p>\n\n\n\n<div class=\"wp-block-image\"><img /></div>\n\n\n\n<p>At this time it does not look like Follow would be integrated with Discover, which is focused on surfacing content based on user-selected topics and a user&rsquo;s search activity. The Follow feature appears that it will function almost like a bare bones &ldquo;Chrome Reader,&rdquo; if you will. </p>\n\n\n\n<p>In 2013, Google blithely closed down its Google Reader product in a post titled &ldquo;<a href=\"https://googleblog.blogspot.com/2013/03/a-second-spring-of-cleaning.html\">A second spring of cleaning</a>,&rdquo; saying its usage had declined. Younger internet users may not realize what a slap in the face this was, and how devastating it was to the ecosystem of RSS-based tools. </p>\n\n\n\n<p>In response to a Twitter user&rsquo;s suggestion to stick with open standards, a Google representative <a href=\"https://twitter.com/WebCreators/status/1395106908919386112\">replied</a>, &ldquo;We intend to revitalize RSS, and from a product perspective, give users and creators a new, direct way to connect.&rdquo; Presenting this as a new way to <a href=\"https://twitter.com/pbakaus/status/1395091617732644864?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1395091617732644864%7Ctwgr%5E%7Ctwcon%5Es1_c10&ref_url=https%3A%2F%2Fwptavern.com%2Fwp-admin%2Fpost.php%3Fpost%3D116905action%3Dedit\">make RSS &ldquo;mainstream consumer&rdquo; friendly</a> is a bit baffling for those who lost trust in Google&rsquo;s willingness to recognize how critical RSS was for the information ecosystem in 2013.</p>\n\n\n\n<p>While some are optimistic that Chrome&rsquo;s experiment may bring visibility to RSS feeds, others are skeptical that Google may be trying to revitalize RSS for its own commercial interests and not in service of the open web. Dave Winer, who pioneered the development of weblogs and RSS syndication,  gives voice to that skepticism in a reaction on his <a href=\"http://scripting.com/2021/05/19.html#a170138\">blog</a>: </p>\n\n\n\n<blockquote class=\"wp-block-quote\"><p>&ldquo;The memory of&nbsp;<a href=\"https://www.google.com/search?q=site%3Ascripting.com+%22google+reader%22\">Google Reader</a>&nbsp;may have faded so much that Google appears ready to try again. Even the headline of this&nbsp;<a href=\"https://techcrunch.com/2021/05/19/undead-again-google-brings-back-rss/amp/\">TechCrunch article</a>&nbsp;is disturbing. Google did so much damage to&nbsp;<a href=\"http://cyber.law.harvard.edu/rss/rss.html\">RSS</a>, the thought of them &lsquo;reviving&rsquo; it is analogous to Exxon reviving the site of some&nbsp;<a href=\"https://en.wikipedia.org/wiki/Superfund\">huge oil spill</a>, one that they didn&rsquo;t contribute to cleaning up. Even worse, browser vendors have no place trying to provide the user interface for RSS. Another toxic dump site.&rdquo; </p></blockquote>\n\n\n\n<p>Winer has a suggestion for Google that is more in the spirit of keeping things open and preserving portability for subscription lists. He recommends Google steer clear of providing any kind of a reader and instead focus on making it easy to share the subscription list:</p>\n\n\n\n<blockquote class=\"wp-block-quote\"><p>&ldquo;If Google wants to help RSS, great &mdash; here&rsquo;s how. Do the subscribe button, that&rsquo;s a good thing. But the result should be a&nbsp;<a href=\"http://scripting.com/2013/08/15/feedReaderDevs\">dynamic OPML subscription list</a>, that the user can provide to any reader app they want. It&rsquo;s dynamic in that the contents can change, and the readers should periodically check to see if feeds have been added or removed. This way, if someday Google abandons RSS, again, everything can keep on ticking, more or less. Inviting users to rely on them shows that they have no sense of responsibility for the trust they betrayed in the past. Perhaps users can refuse to go on this ride? That might be too much to hope for.&rdquo;&nbsp;</p></blockquote>\n\n\n\n<p>Google developer advocate Paul Bakaus <a href=\"https://twitter.com/pbakaus/status/1395091619397791744\">said</a> the Follow button experiment is &ldquo;only the beginning of a bigger exploration&rdquo; and the company is looking for feedback from publishers. Hopefully this exploration also includes improving how feeds are displayed in the browser. It&rsquo;s not clear yet whether Google has plans to monetize the New Tab page with ads, promoted content, or through some other means.</p>\n\n\n\n<p>At this time, Google&rsquo;s only recommendation to publishers is to keep their sites&rsquo; RSS&nbsp;<a rel=\"noreferrer noopener\" href=\"https://developers.google.com/search/blog/2014/10/best-practices-for-xml-sitemaps-rssatom\" target=\"_blank\">up-to-date</a>. WordPress users have nothing to worry about here, as all WordPress sites have built-in support for RSS feeds by default. If the Follow feature graduates out of the experimental stage, Google will provide more guidance to web publishers. </p>\n\n\n\n<p>This experiment does not exactly contain the decentralized feed aggregator capabilities that RSS fans might hope for, but if Google can build in an easy way to export users&rsquo; subscription lists then it might have a chance at contributing something truly useful. Users could then take their subscriptions to feed readers that will have more capabilities than Chrome&rsquo;s basic reader. In this sense Chrome&rsquo;s Follow button could make it easy for users to actively curate their RSS subscriptions based on their interests, promoting a more healthy and conscious consumption of news and other content.  </p>\n\n\n\n<p>The landscape of RSS tools has changed over the past decade but Google has the opportunity to play a meaningful role in revitalizing RSS if they put users first this time. The biggest hurdle will be recapturing their trust after snuffing out Reader in 2013.</p>\n\n\n\n<p> </p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 21 May 2021 02:16:22 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:41;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:82:\"WPTavern: Upgrade Your Publishing Flow with the Post Descriptions WordPress Plugin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=116996\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:209:\"https://wptavern.com/upgrade-your-publishing-flow-with-the-post-descriptions-wordpress-plugin?utm_source=rss&utm_medium=rss&utm_campaign=upgrade-your-publishing-flow-with-the-post-descriptions-wordpress-plugin\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:3691:\"<p class=\"has-drop-cap\">Tom de Visser, a developer from Amsterdam, released the <a href=\"https://wordpress.org/plugins/post-descriptions/\">Post Descriptions</a> plugin last week. It was his first submission to the WordPress.org plugin repository. It allows users to write short descriptions on a per-post basis, which are then displayed on the post-management screen.</p>\n\n\n\n<p>For an initial outing, it already seems to be a hit with its small user base. It has already racked up several five-star reviews and over 100 active installs. Granted, one of those reviews is from his employer, Mediaversa. While that might not seem like much from the outside looking in, anyone who has created plugins knows that it is a successful launch for an individual developer&rsquo;s first plugin submission.</p>\n\n\n\n<p>The plugin&rsquo;s goal is simple: leave small notes, reminders, to-dos, or longer descriptions for posts. It could be an ideal solution for a small team, but lone bloggers might need it too.</p>\n\n\n\n<p>Post Descriptions works with both the regular WordPress post editor or the classic editor by adding a meta box to the side of the editing screen. Currently, it only allows descriptions for posts or pages. Maybe the developer will add a post-type-support flag or filter hook for custom post types in the future.</p>\n\n\n\n<img />Posts Descriptions plugin meta box.\n\n\n\n<p>Aside from the description input box, users can tick the &ldquo;Make your description important&rdquo; checkbox to highlight a particular note. This option gives the text&rsquo;s display a red color and turns it bold when viewed.</p>\n\n\n\n<p>Descriptions are viewable via the post or page management screens. By default, they appear as a &ldquo;state,&rdquo; similar to how pending or draft states next to the title. The plugin also displays them under a &ldquo;Description&rdquo; column. Users can turn off the state display via the plugin&rsquo;s settings screen and toggle the extra column via WordPress&rsquo;s built-in Screen Options tab.</p>\n\n\n\n<img />Descriptions as post &ldquo;states.&rdquo;\n\n\n\n<p>One of my favorite features of this plugin is the flexibility of selecting where the notes appear on the post-management screen. Those who prefer one or two words can choose to display them as states. Those who prefer lengthier descriptions can show them in a separate column. Or, do both.</p>\n\n\n\n<img />Column for displaying post descriptions.\n\n\n\n<p>Users can also add descriptions via the Quick Edit link on the post-management screen.</p>\n\n\n\n<p>From a user-experience standpoint, it hits some of those sweet spots of usability and simplicity. Under the hood, the code is solid. The developer does not seem to be overthinking things and making the plugin more complicated than necessary.</p>\n\n\n\n<p>For small teams, I envision building a labeling system around this plugin that could address workflow issues. Adding short notes like Editor Review, SEO Review, and similar would alert the right team members to sign off on a post.</p>\n\n\n\n<p>While the flexibility of displaying notes as either states or descriptions is welcome, it does not account for a third type of user. My ideal workflow would be to have separate inputs for both states and descriptions. I could create a shorter state that gets my team&rsquo;s attention. Then, if more information is needed, I could add a longer description.</p>\n\n\n\n<img />Idea: Separate state and description text.\n\n\n\n<p>The downside in such a system is that it puts <em>yet another</em> input field in front of the end-user. Sometimes the route with the least effort is best. And, for a quick post note plugin, it is tough to beat the plugin&rsquo;s current solution.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Fri, 21 May 2021 00:25:07 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:42;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:34:\"BuddyPress: BuddyPress 8.0.0-beta2\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"https://buddypress.org/?p=318656\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:54:\"https://buddypress.org/2021/05/buddypress-8-0-0-beta2/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4249:\"<p>Hello BuddyPress contributors!</p>\n\n\n\n<p>If you haven&#8217;t tested our first <a href=\"https://buddypress.org/2021/04/buddypress-8-0-0-beta1/\">8.0.0 beta release</a>, here&#8217;s another opportunity to help us give the final touches to our next major release so that we make sure it will fit perfectly into your WordPress / BuddyPress specific configuration. Beta testing is very important and we need you all, whether you&#8217;re a regular or advanced user, a theme designer or a plugin author: please contribute!</p>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-white-color has-text-color has-background\" href=\"https://downloads.wordpress.org/plugin/buddypress.8.0.0-beta2.zip\">Test BuddyPress 8.0.0-beta2</a></div>\n</div>\n\n\n\n<div class=\"wp-block-spacer\"></div>\n\n\n\n<h2>What&#8217;s new since beta1?</h2>\n\n\n\n<p>First we applied to ourselves the advice we just gave you into the first paragraph of this post: we&#8217;ve tested BuddyPress on WordPress 5.8-alpha and on latest stable WordPress &amp; Gutenberg&#8217;s plugin. Our goal was to check the very promising <a href=\"https://make.wordpress.org/core/2021/05/12/help-test-the-widgets-editor-for-wordpress-5-8/\">Widgets Block Editor</a> that is announced to be part of the WordPress 5.8 release. This helped us <a href=\"https://buddypress.trac.wordpress.org/ticket/8465\">anticipate some deprecation notices</a> and <a href=\"https://buddypress.trac.wordpress.org/ticket/8476\">prevent an issue</a> to happen into the new Widgets Block Editor Administration screen. If you were worried about losing your favorite BuddyPress widgets once WordPress 5.8 is released: be reassured, we can tell you there&#8217;s a back-compatibility mechanism into the Widgets Block feature making sure legacy widgets can still be managed from the new Widgets Block Editor Administration screen. If you&#8217;re wondering if we have a plan about migrating these widgets as blocks, we confirm <strong>we do</strong> and we actually started building these <a href=\"https://github.com/buddypress/bp-blocks/issues/37\">next BP Blocks</a>!</p>\n\n\n\n<p>We also tested the Full Site Editing feature. For now, there&#8217;s a breaking change preventing our BP Theme Compat API to behave as expected <a href=\"https://buddypress.trac.wordpress.org/ticket/8474\">but we&#8217;re on it</a> and we&#8217;ll make sure BuddyPress is Full Site Editing ready <strong>before this feature is merged into WordPress core</strong>.</p>\n\n\n\n<p>We started documenting the new features arriving in <a href=\"https://bpdevel.wordpress.com/category/development-notes/8-0/\">BuddyPress 8.0.0</a>, you can already learn about <a href=\"https://bpdevel.wordpress.com/2021/05/06/selectable-xprofile-sign-up-fields-in-8-0-0/\">the selectable signup xProfile fields</a> and the <a href=\"https://bpdevel.wordpress.com/2021/05/05/new-xprofile-field-type-checkbox-acceptance-will-be-introduced-in-buddypress-8-0-0/\">CheckBox Acceptance xProfile field</a>.</p>\n\n\n\n<p>Finally we&#8217;ve polished the very promising <a href=\"https://buddypress.trac.wordpress.org/ticket/8139\">BP Members Invitations feature</a> and made sure it was <a href=\"https://buddypress.trac.wordpress.org/ticket/8430\">easier to extend the BP Messages UI</a> into the BP Nouveau template pack.</p>\n\n\n\n<p>The final release is slated to early June and&nbsp;<strong>we need you to get there</strong>: do test this beta release of BuddyPress <img src=\"https://s.w.org/images/core/emoji/13.0.1/72x72/1f64f.png\" alt=\"🙏\" class=\"wp-smiley\" />.</p>\n\n\n\n<p>You can test BuddyPress 8.0.0-beta2 in 4 ways :</p>\n\n\n\n<ul><li>Try the <a href=\"https://wordpress.org/plugins/bp-beta-tester/\">BP Beta Tester</a> plugin.</li><li><a href=\"https://downloads.wordpress.org/plugin/buddypress.8.0.0-beta2.zip\">Download the beta here (zip file)</a>.</li><li>Check out our SVN repository: <code>svn co https://buddypress.svn.wordpress.org/trunk/</code></li><li>Clone our read-only Git repository: <code>git clone git://buddypress.git.wordpress.org/</code></li></ul>\n\n\n\n<p>Thanks in advance for your contributions&nbsp;<img src=\"https://s.w.org/images/core/emoji/13.0.1/72x72/1f970.png\" alt=\"🥰\" class=\"wp-smiley\" /></p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 20 May 2021 20:00:06 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:12:\"Mathieu Viet\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:43;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:32:\"Matt: Squarespace Direct Listing\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:22:\"https://ma.tt/?p=54194\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:49:\"https://ma.tt/2021/05/squarespace-direct-listing/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:2783:\"<p><a href=\"https://www.sec.gov/Archives/edgar/data/1496963/000110465921051251/tm213918-6_s1.htm\">Squarespace filed their S-1 last month</a>, and went a direct listing route for their stock today under the ticker SQSP, so I&#8217;ve been getting lots of questions on my thoughts on their business. It&#8217;s easier to share here in a blog than individually.</p>\n\n\n\n<p>Squarespace&#8217;s CEO <a href=\"https://twitter.com/acasalena\">Anthony Casalena</a> is a thoughtful, creative leader. It&#8217;s amazing what he&#8217;s built since 2003, and he obviously has many decades ahead of him. From our conversations I know how seriously he takes the craft not just of designing great products, but designing great organizations that will stand the test of time.</p>\n\n\n\n<p>Squarespace is a customer-centric company, that has reliable, well-designed services, great support, and puts their customers first by allowing things like <a href=\"https://support.squarespace.com/hc/en-us/articles/206566687-Exporting-your-site\">standards-based export</a>. I&#8217;ve always observed them to behave and compete with the highest of ethics.</p>\n\n\n\n<p>Their products work well, and they&#8217;ve been strategic in their acquisitions, including recently <a href=\"https://www.exploretock.com/\">Tock</a> which I&#8217;m a big fan of. </p>\n\n\n\n<p>Their metrics are great, and there&#8217;s huge opportunity still. If you add up all the companies (including Automattic) in the independent web space it&#8217;s still only tens of millions of subscribers. I truly believe the eventual audience is every business in the world, and a good chunk of the 7 billion individuals, so there is so much room for everyone to grow.</p>\n\n\n\n<p>How about the stock? Some of my favorite investing advice comes from Charlie Munger:</p>\n\n\n\n<blockquote class=\"wp-block-quote\"><p>“I could improve your ultimate financial welfare by giving you a ticket with only twenty slots in it so that you had twenty punches representing all the investments that you got to make in a lifetime. And once you’d punched through the card, you couldn’t make any more investments at all. Under those rules, you’d really think carefully about what you did and you’d be forced to load up on what you’d really thought about.”</p></blockquote>\n\n\n\n<p>If I had to pick between Squarespace or <a href=\"https://ma.tt/2021/04/wix-dirty-tricks/\">Wix</a>, I&#8217;d pick Squarespace every time. They&#8217;re a company you could punch the card with. They&#8217;ve built a great brand through their marketing and rightly earned trust with their customers and within the community as a good business, and they have a founder-led path to success for many years to come. I&#8217;m wishing them the best in their next chapter as a public company.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Thu, 20 May 2021 02:37:49 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:4:\"Matt\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:44;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:110:\"WPTavern: No More Accidental Custom Plugin Overrides, WordPress 5.8 To Allow Developers To Set Plugin Hostname\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=116798\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:263:\"https://wptavern.com/no-more-accidental-custom-plugin-overrides-wordpress-5-8-to-allow-developers-to-set-plugin-hostname?utm_source=rss&utm_medium=rss&utm_campaign=no-more-accidental-custom-plugin-overrides-wordpress-5-8-to-allow-developers-to-set-plugin-hostname\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4281:\"<p class=\"has-drop-cap\">Almost since the dawn of the plugin and theme upgrade mechanisms inclusion in core over a decade ago, third-party developers have asked for an easy way to bypass the system. WordPress 5.8 will finally <a href=\"https://core.trac.wordpress.org/changeset/50921\">deliver on this feature request</a>.</p>\n\n\n\n<p>While it has long been possible to filter the update system, methods for doing so were more complex than needed. They also required the plugin itself to be active on a site. A simple flag for enabling/disabling the feature on a per-plugin basis is long overdue.</p>\n\n\n\n<p>&ldquo;The utility is that this is an abstracted API that allows two things,&rdquo; <a href=\"https://github.com/WordPress/wordpress-develop/pull/950#issuecomment-777985189\">wrote Dion Hulse</a> in a GitHub pull request that patched the code:</p>\n\n\n\n<ul><li>A plugin to declare a URI/string that if set, WordPress.org update API&rsquo;s ignores the plugin.</li><li>Code running on the site, can use that headers hostname/data to offer an update for the plugin to be stored into the update transient, without having to jump through hoops such as overriding the transient / checking too often / etc.</li></ul>\n\n\n\n<p>WordPress 5.8 will have a new <code>Update URI</code> <a href=\"https://developer.wordpress.org/plugins/plugin-basics/header-requirements/\">plugin header field</a>. If its value matches anything other than <code>https://wordpress.org/plugins/{$slug}/</code> or <code>w.org/plugin/{$slug}</code>, WordPress will not attempt to update it.</p>\n\n\n\n<p>Beyond that, developers can roll their own solutions if they want to handle updates for non-WordPress.org plugins. That is where the new <code>update_plugins_{$hostname}</code> filter comes into play. WordPress will parse the URL included in the plugin&rsquo;s <code>Update URI</code> header and use the hostname as the value. Developers can then hook into it and do whatever they need.</p>\n\n\n\n<p>Plugin authors with extensions hosted by WordPress.org will not need to worry about adding this new header. <a href=\"https://developer.wordpress.org/plugins/wordpress-org/detailed-plugin-guidelines/#8-plugins-may-not-send-executable-code-via-third-party-systems\">Rule #8 of the plugin guidelines</a> already disallows sending executable code via third-party systems. The following sub-section covers this scenario more specifically:</p>\n\n\n\n<blockquote class=\"wp-block-quote\"><p>Serving updates or otherwise installing plugins, themes, or add-ons from servers other than WordPress.org&rsquo;s</p></blockquote>\n\n\n\n<p>The discussion picked up some steam 13 months ago on a <a href=\"https://core.trac.wordpress.org/ticket/32101\">six-year-old ticket</a>. &ldquo;I&rsquo;ve now had a plugin unceremoniously deleted from a client&rsquo;s website when scheduled plugin automatic-update have run,&rdquo; <a href=\"https://core.trac.wordpress.org/ticket/32101#comment:64\">wrote a contributor</a> with the username <em>apedog</em>. &ldquo;This is actually the second time I&rsquo;ve encountered this naming-conflict problem for a plugin of mine. In both cases, I had chosen a plugin name with no apriori naming conflict. However, at some later point, someone else had also written a plugin with the same generic name and submitted that to the wp.org repository. From that point on my plugin&rsquo;s proper functioning is broken.&rdquo;</p>\n\n\n\n<p>While the deletion issue turned out not to be an issue on WordPress&rsquo;s end, perhaps it was the spark needed to keep the conversation going.</p>\n\n\n\n<p>An active discussion is not always indicative of a feature getting the green light. Nor does it mean someone will write the code. Many such tickets have had months or years of conversation, only to eventually languish and die. This ticket seemed to have fit that bill too. It was opened in 2015. However, new features are sometimes more about timing, just pure randomness, or a developer with core commit access simply getting the job done.</p>\n\n\n\n<p>The ticket for plugins has been accepted and committed to WordPress. However, there is still the question of whether this will land for themes. The movement in the <a href=\"https://core.trac.wordpress.org/ticket/14179\">11-year-old theme ticket</a> indicates that it could happen.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 19 May 2021 23:49:12 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:45;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:76:\"WPTavern: #3 – Benjamin Intal on Why He’s Betting His Business on Blocks\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:48:\"https://wptavern.com/?post_type=podcast&p=116749\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:189:\"https://wptavern.com/podcast/3-benjamin-intal-on-why-hes-betting-his-business-on-blocks?utm_source=rss&utm_medium=rss&utm_campaign=3-benjamin-intal-on-why-hes-betting-his-business-on-blocks\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:51536:\"<h2>About this episode.</h2>\n\n\n\n<p>On the podcast today we have Benjamin Intal. He&rsquo;s the founder of <a href=\"https://wordpress.org/plugins/stackable-ultimate-gutenberg-blocks/\">Stackable</a>, which is a suite of custom blocks.</p>\n\n\n\n<p>Benjamin decided early on that his company was going to take the possibilities that Gutenberg offered seriously. They had previously developed a page builder plugin, but felt that the opportunity presented by blocks was something that they could not overlook.</p>\n\n\n\n<p>During the conversation, we talk about why Benjamin decided to devote so much time and energy towards creating blocks, at a time when there was almost no certainty about the status of blocks, and the block editor. Indeed, there was no clarity on whether blocks would become a core feature in WordPress.</p>\n\n\n\n<p>As we now know, blocks are an increasingly important topic in WordPress, and so Benjamin&rsquo;s decision, with a little hindsight, appears to have been a wise one.</p>\n\n\n\n<p>We talk about some of the difficulties that have presented themselves over the last three years, and how they overcame them. These ranged from having to develop in the absence of documentation, to creating bespoke solutions to problems which were later handled by WordPress Core.</p>\n\n\n\n<p>We also discuss how they went about iterating their product in a technology space which was new. What methods the team used to ensure that they were building features which their users really needed.</p>\n\n\n\n<p>We also get into whether the block system is now fully mature and ready to support a growing ecosystem of developers. Is it a good idea to create &lsquo;smaller&rsquo; blocks with a limited use case, or a large suite of blocks which work in harmony with one another? Are we entering a future in which the &lsquo;there&rsquo;s a block for that&rsquo; mentality might lead to sites with &lsquo;block bloat&rsquo;; sites with multiple blocks, with overlapping features.</p>\n\n\n\n<p>It&rsquo;s an interesting chat and gives an insight into a transitional moment in the history of WordPress. A moment in which blocks are taking on much of the heavy lifting in a WordPress website. A moment in which reputations are being made.</p>\n\n\n\n<h2>Useful links.</h2>\n\n\n\n<p><a href=\"https://wordpress.org/plugins/stackable-ultimate-gutenberg-blocks/\">Stackable</a></p>\n\n\n\n<p><a href=\"https://gutenbergtimes.com/\">Gutenberg Times</a></p>\n\n\n\n<p><a href=\"https://make.wordpress.org/\">Make WordPress</a></p>\n\n\nTranscript<div><div class=\"chat-transcript\"><div class=\"chat-stanza chat-row chat-speaker-1\"><div class=\"chat-author chat-author-nathanwrigley vcard\"><cite class=\"fn\">Nathan Wrigley</cite> [00:00:00]</div> <div class=\"chat-text\"><p>Welcome to the third edition of the Jukebox podcast from WP Tavern. My name is Nathan Wrigley. Jukebox is a podcast and transcript for people who are interested in WordPress and the WordPress community. It&rsquo;s happening once per month for now, and if you wanted to be updated when new episodes are published, you can sign up at wptavern.com forward slash feed forward slash podcast. If you have any feedback about the podcast, then please head over to wptavern.com forward slash contact forward slash jukebox and there you&rsquo;ll find a contact form for you to complete and thanks in advance if you do. Okay, so the podcast today features Benjamin Intal. He&rsquo;s the founder of Stackable, which is a suite of custom blocks. Benjamin decided early on that his company, we&rsquo;re going to take the possibilities that Gutenberg offered very seriously. They had previously developed a page builder plugin, but felt that the opportunities presented by blocks was something that they could not overlook. During the conversation we talk about why Benjamin decided to devote so much time and energy towards creating blocks at a time when there was almost no certainty about the status of blocks and the block editor. Indeed, there was no clarity on whether or not blocks would become a core feature in WordPress. As we now know, blocks are an increasingly important topic in WordPress, and so Benjamin&rsquo;s decision, with a little hindsight, appears to have been a wise one. We talk about some of the difficulties that have presented themselves over the last three years and how they overcame them. They ranged from having to develop in the absence of documentation to creating bespoke solutions to problems which were later handled by WordPress Core. We also discuss how they went about iterating their product in a technology space which was new. What methods the team used to ensure that they were building features, which their users really needed. We also get into the topic of whether or not the block system is now fully mature and ready to support a growing ecosystem of developers. Is it a good idea to create smaller blocks with a limited use case, or a large suite of blocks, which work in harmony with one another? Are we entering a future in which the &lsquo;there&rsquo;s a block for that&rsquo; mentality might lead to sites with block bloat. Sites with multiple blocks, with overlapping features. It&rsquo;s an interesting chat and gives an insight into a transitional moment in the history of WordPress. A moment in which blocks are taking on much of the heavy lifting in a WordPress website. A moment in which reputations are made. If any of the points raised here resonate with you, be sure to head over to the post at wptavern.com forward slash podcast and leave us a comment there. And so without further delay, I bring you Benjamin Intal. I am joined by Benjamin Intal. Hi, Benjamin. How are you doing?</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-2\"><div class=\"chat-author chat-author-benjaminintal vcard\"><cite class=\"fn\">Benjamin Intal</cite> [00:03:45]</div> <div class=\"chat-text\"><p>Hey, Nathan. Thanks for having me here.</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-1\"><div class=\"chat-author chat-author-nathanwrigley vcard\"><cite class=\"fn\">Nathan Wrigley</cite> [00:03:47]</div> <div class=\"chat-text\"><p>You&rsquo;re very welcome. I think as with all podcasts like this, it&rsquo;s a really good idea to get some perspective on who you are and where you have been in the WordPress space. Although it&rsquo;s a bit of a generic question, I am going to ask it regardless. Would you just tell us what your relationship is with WordPress? How many years you&rsquo;ve been using WordPress, how you got involved and so on and so forth.</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-2\"><div class=\"chat-author chat-author-benjaminintal vcard\"><cite class=\"fn\">Benjamin Intal</cite> [00:04:09]</div> <div class=\"chat-text\"><p>Yeah. So I started with WordPress development in 2010, and I stumbled into WordPress at first to create freelance websites. And I became a fan of WordPress. So I was surprised that you can extend it so much to create themes and plugins that did all manner of things. So I created my first theme, set it for sale. And then I moved into plugins, created actually a bunch of them. And now I had a development team here in the Philippines and our main focus is on building Stackable page builder Gutenberg blocks.</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-1\"><div class=\"chat-author chat-author-nathanwrigley vcard\"><cite class=\"fn\">Nathan Wrigley</cite> [00:04:44]</div> <div class=\"chat-text\"><p>Thank you very much indeed. Now, as the title of this podcast will no doubt reflect. You&rsquo;ve really thrown all of your weight behind the whole Gutenberg block system. I&rsquo;m just curious about why it is that you&rsquo;ve done that as we speak, there are a few packs of blocks, which are similar to what you offer. You jumped on board very early and therefore you must have been fairly confident in Gutenberg and what was going to be offered. So I&rsquo;m just interested in that really? Why is it that you decided that blocks were going to be the future for you, your business, your company, and all of that?</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-2\"><div class=\"chat-author chat-author-benjaminintal vcard\"><cite class=\"fn\">Benjamin Intal</cite> [00:05:20]</div> <div class=\"chat-text\"><p>Actually, when we started building Stackable, I think we released it early February, 2018, and Gutenberg was still in very early beta back then. And back then it wasn&rsquo;t yet certain if it would get included into WordPress core, but we were doing other things related to page builders during that time as well. And we thought that it wouldn&rsquo;t hurt to try building blocks for a Gutenberg. So it was something very innovative and new. So previously WordPress was all about PHP and this one, it was more about JavaScript and more about React. So it was a chance to learn new technologies. So we built actually just an MVP, minimum viable product. So we turned that into a free plugin that added blocks, uploaded it to the plugin directory, and then see what would happen. So if it works then great. If it didn&rsquo;t, then at least we still had fun and got the good learning experience from it. So that&rsquo;s how we got started.</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-1\"><div class=\"chat-author chat-author-nathanwrigley vcard\"><cite class=\"fn\">Nathan Wrigley</cite> [00:06:26]</div> <div class=\"chat-text\"><p>Yeah. I am curious about that. That&rsquo;s quite a big commitment in terms of time and energy, and moving the assets around in your company in order to make that all happen. And I guess at that time it was a bit of a gamble. Were you prepared at that time to accept that perhaps Gutenberg wouldn&rsquo;t be making it into core and that your endeavors might end up just as time spent in development, but nothing would actually come out of it. Were you in some way hopeful that it would come into Core and we&rsquo;re banking on that happening?</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-2\"><div class=\"chat-author chat-author-benjaminintal vcard\"><cite class=\"fn\">Benjamin Intal</cite> [00:06:56]</div> <div class=\"chat-text\"><p>It had something to do with timing actually, before diving into Gutenberg, we actually attempted to make our own page builder before using our own resources. In the middle of it Gutenberg suddenly popped out of nowhere. And then people were talking about that it would be a page builder killer in the future. So you had kind of a crossroads. So do we continued trying to build our page builder, or should we jump into the Gutenberg bandwagon if you say, if you can say that. So what we decided was, what if we just come out with something, and then while Gutenberg is still brewing, let&rsquo;s just continue what we&rsquo;re doing, the page builder. And then if Gutenberg gets merged into Core, then we can maybe focus our efforts more on that. But if not, then we can continue doing what we were originally doing.</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-1\"><div class=\"chat-author chat-author-nathanwrigley vcard\"><cite class=\"fn\">Nathan Wrigley</cite> [00:07:58]</div> <div class=\"chat-text\"><p>Probably at various points dip into the suite of blocks that you have, which is called Stackable. I&rsquo;m just curious as to what the difficulties have been over the last, roughly three years or so building this, because if you&rsquo;re building something into a fully mature platform where the documentation is excellent and the roadmap is clear and everybody knows how to build things. That&rsquo;s one thing, but you were building into the dark really into an area of it almost like shifting sand, something that was certain today could be removed tomorrow. It was complete state of flux. The documentation probably wasn&rsquo;t as fleshed out as it could be. And the roadmap wasn&rsquo;t necessarily clear. So I&rsquo;m just wondering if there were any difficulties which you&rsquo;ve encountered over the last three years, which meant that you had to perhaps rewrite things undo things that you&rsquo;d already done or indeed find new opportunities in innovations that you didn&rsquo;t expect to come, which did come.</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-2\"><div class=\"chat-author chat-author-benjaminintal vcard\"><cite class=\"fn\">Benjamin Intal</cite> [00:08:56]</div> <div class=\"chat-text\"><p>Yeah, I guess to start off, I didn&rsquo;t realize it&rsquo;s been three years already. Oh my gosh. So some of the components that we can use, especially at the start, we&rsquo;re a bit barebones. So we had to invent a lot of our own. So that&rsquo;s fun actually. Some parts now are getting better. So like now Gutenberg has the focal point picker and the gradient color picker. So before there weren&rsquo;t any of those controls, and I&rsquo;m actually excited to use these new things and Stackable as well. So that&rsquo;s one difficulty. About the documentation, I think it&rsquo;s okay, especially if you&rsquo;re just starting out, there are a lot of examples to get you started now. But a lot of the time we had to explore the code and go inside GitHub to study how things are done and how the components are used. Although even if we did that, it was still really helpful checking the code base. Since I think it&rsquo;s very well written. It&rsquo;s well segregated and well-maintained, there are hundreds of people who have contributed to the code. Most of whom are more knowledgeable in Gutenberg and React than me. So I also get to learn a lot of things from it. As for the roadmap, there&rsquo;s a higher overview roadmap that Matt Mullenweg brought up before, the four phases. Phase one replace the classic editor and then phase two is full site editing, phase three and four are collaboration and multi-lingual. So we go around that. But what we do is we have some big assumptions, that we mainly use as our guide on the direction on what we do. So in our minds, one of the main goals of Gutenberg is to have it replace the classic editor. So it&rsquo;s not meant to be a replacement for page builders per se. So if there&rsquo;s no more classic editor, Gutenberg would be the best experience for writing content in WordPress. So we work around that assumption. And also, we always anticipate whatever new feature is coming. So for example, full site editing is coming in the future. So instead of creating our own solutions like that, instead of providing the ability to edit templates and headers ourselves, we just wait for the future improvements so that we can build on top of it instead of reinventing on our own.</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-1\"><div class=\"chat-author chat-author-nathanwrigley vcard\"><cite class=\"fn\">Nathan Wrigley</cite> [00:11:27]</div> <div class=\"chat-text\"><p>During the last three years, have there been blind alleys where you&rsquo;ve begun doing something only to figure out a) it couldn&rsquo;t be done possibly or b) it was going to become a part of Core? You mentioned something just there, but I&rsquo;m just wonderingh how the communication from the team that are building it has impacted what you&rsquo;ve been able to do. In other words, have you always felt that there&rsquo;s enough information coming downstream toward you, that you could confidently put your team to work building certain things or has the last three years been a bit of a stop-start&hellip; well we didn&rsquo;t know that was going to happen? I realize that we&rsquo;re at a point now where things are certainly better than they were, but just because of the fact that you are one of the few people who&rsquo;s done this right from the start, I&rsquo;m just wondering how that process has been over the last three years.</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-2\"><div class=\"chat-author chat-author-benjaminintal vcard\"><cite class=\"fn\">Benjamin Intal</cite> [00:12:19]</div> <div class=\"chat-text\"><p>I&rsquo;m not sure whether the communication has changed and I don&rsquo;t think there&rsquo;s something necessarily wrong with it. I treat the Gutenberg updates like normal WordPress updates. So what I mostly do is just good old fashioned research. So to be honest, I check WP Tavern on what&rsquo;s new every now and then. And read the articles in there, although I&rsquo;m more of a lurker in the comments than a commenter. What I also do is I used to check managewp.org before they shut down, actually. I occasionally also try out the Gutenberg plugin to see what&rsquo;s new. So that&rsquo;s, I think one of the main sources of my information on what&rsquo;s coming, I read the change log rather actually try and read it since sometimes it can be quite technical. Make WordPress is also a very good resource for me on what&rsquo;s coming. So some of the entries in there go into great detail on what&rsquo;s new. Maybe there&rsquo;s an API or a large change, and they sometimes have links to videos and show what&rsquo;s actually new. And then actually there&rsquo;s this video and Gutenberg times. So it&rsquo;s like a news site, all about Gutenberg, by Birgit Pauli-Haack, where they demo the status of Full SIte editing before. So that was really helpful as well.</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-1\"><div class=\"chat-author chat-author-nathanwrigley vcard\"><cite class=\"fn\">Nathan Wrigley</cite> [00:13:43]</div> <div class=\"chat-text\"><p>I know that the team themselves are very conscious that when Gutenberg was announced that there was real division in the WordPress community. There were many people who didn&rsquo;t want to have anything to do with it and felt that it had been more or less forced upon them, shall we say? And there were many people who embraced it. It did bifurcate the community a bit, split it in two. And there was also the concern that, because it was a new project and there weren&rsquo;t as many eyeballs and it hadn&rsquo;t reached maturity that it was difficult to get involved. Like you said earlier, you&rsquo;ve got to learn a whole bunch of new skills and many people who are quite happy using PHP, and that was as far as they wish to go, and all of a sudden there&rsquo;s new requirements to learn new programming techniques and so on and so forth. But you obviously decided it was worth the investment. So that&rsquo;s great. Well done to you. I&rsquo;m just curious as to, because you&rsquo;re shooting in the dark and inventing something new, I&rsquo;m interested to know how it is that you discover from your growing audience, what it is that they would wish you to iterate on in Stackable. So obviously if we go back three years ago, there was very little that you had to show. If we go now and look at what it is that you&rsquo;re offering, you&rsquo;ve got a whole suite of different things with multiple complicated options. And I&rsquo;m very curious to know if a plugin developer was keen to build their own block, what have you found to be a good way to discover from your audience, your memberships, your community, what it is that they wish you to build?</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-2\"><div class=\"chat-author chat-author-benjaminintal vcard\"><cite class=\"fn\">Benjamin Intal</cite> [00:15:15]</div> <div class=\"chat-text\"><p>Communication is something that we feel that is very important because while we use Stackable ourselves for some of our own projects, I feel that there are a lot of scenarios and use cases that we haven&rsquo;t taken into consideration yet, and that our users would know more about. So first in communication, there&rsquo;s our support. Some customers email in just to request some feature that they really need. Then there&rsquo;s our Facebook community. So this is something that we started early on. So we try and foster sharing in the community. We try to be as transparent as we can. We try and share what we&rsquo;re currently doing. We share GIFs and screenshots and we get feedback on those. So whether it&rsquo;s a good idea or whether to continue or whether it lacks something more. And actually now it&rsquo;s a bit difficult catching up with the number of requests. And we&rsquo;ve discovered that what we wanted to build and what our users want, can sometimes be a bit different from each other. What&rsquo;s important is to remember who you&rsquo;re building for. They are the ones who tell us, what&rsquo;s a good idea. So for example, we have this role manager feature where you can lock up the inspector, and it would only allow you to edit the block text, which was actually suggested by a few of our users who had clients and those clients wanted to perform edits on their site themselves, but they didn&rsquo;t want them to accidentally change the design. So we wanted to add features geared towards agencies, but this was something that we didn&rsquo;t even think about. So it was a good match. So that&rsquo;s why we added that in.</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-1\"><div class=\"chat-author chat-author-nathanwrigley vcard\"><cite class=\"fn\">Nathan Wrigley</cite> [00:16:59]</div> <div class=\"chat-text\"><p>I wondered if there were any things that you wish you were able to build, but you are constrained by the Gutenberg project thus far, are there any limitations that you&rsquo;ve run up against? What I&rsquo;m imagining here is there&rsquo;s a whole bunch of people out there in the community who never use page builders, and there&rsquo;s a whole bunch of people who write template files, and there&rsquo;s a whole bunch of people who really embrace page builders and it&rsquo;s become their modus operandi, that&rsquo;s how they interact with WordPress these days. And the level of sophistication that has been built into some of these tools is pretty incredible. They can do some fairly amazing things and their team have worked very hard. But they&rsquo;re in their own little silo. So as an example, page builder A over here, they&rsquo;ve got their team and they&rsquo;ve built all of these fantastic features and page builder B over here, they&rsquo;ve built there&rsquo;s and they&rsquo;re completely separate, and they&rsquo;re not interoperable, but we&rsquo;re trying to build it a system here where everybody can bolt on top of it, Gutenberg the block editor. But I&rsquo;m just wondering at the moment, if there are things which you see in third-party tools that you wish to build, but it&rsquo;s simply not available to you yet. There are constraints within what&rsquo;s possible.</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-2\"><div class=\"chat-author chat-author-benjaminintal vcard\"><cite class=\"fn\">Benjamin Intal</cite> [00:18:13]</div> <div class=\"chat-text\"><p>I think something that fits that very well, is that the ability to edit page templates. Every now and then we get this request. Would I be able to edit headers? Can I edit my footers in all of my pages? But unfortunately we can&rsquo;t do something like that in Gutenberg yet. That&rsquo;s probably one of the main limitations that we have right now. And for that, there&rsquo;s an answer that Gutenberg has, although it&rsquo;s still in the pipeline, so we just have to wait for it, and then we can dive in and add features on top of it so that people can start creating their own page templates.</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-1\"><div class=\"chat-author chat-author-nathanwrigley vcard\"><cite class=\"fn\">Nathan Wrigley</cite> [00:18:52]</div> <div class=\"chat-text\"><p>I think people give Guttenberg flack because it&rsquo;s not entirely clear unless you really go out of your way to discover what&rsquo;s coming down the pipeline and so on. It can be quite a confusing experience. And the idea that it&rsquo;s in the future, going to be able to do these things, and these things. It&rsquo;s a fairly drawn out process and it&rsquo;s taking a long time and we had Anne McCarthy on the podcast last time talking about why that was and why that&rsquo;s intentionally a fairly slow rollout because they&rsquo;ve got 40 plus percent of the web to protect. But I&rsquo;m just interested in whether any of that. Is a cause of frustration. If you&rsquo;d have been building this yourself you may be, could have advanced things quicker, but your users are asking for the ability to, like you say, alter page templates and so on, and you can&rsquo;t provide it for them, but it&rsquo;s not your fault. And it may be, there&rsquo;s a bit of you, which is thinking, do you know, I wish they&rsquo;d hurry up and get this thing finished.</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-2\"><div class=\"chat-author chat-author-benjaminintal vcard\"><cite class=\"fn\">Benjamin Intal</cite> [00:19:46]</div> <div class=\"chat-text\"><p>Yeah, I think that&rsquo;s really something. So it&rsquo;s not really a frustration, but more of something that we always have to keep in mind is that we are quite dependent on Gutenberg&rsquo;s progress. So really have to time things right most of the time. So like Full Site Editing, there was a hint that it would maybe come out late last year. And there was another hint again, that it will come out earlier this year. But fortunately that didn&rsquo;t happen. So we always have to be on the tip of our toes when it comes to what&rsquo;s going to be released, and what can we do about it? One funny thing, but not really funny, but maybe unfortunate since we&rsquo;re building something that&rsquo;s tightly intertwined with Gutenberg is that some people mix up what&rsquo;s with Stackable and what&rsquo;s in Gutenberg. So for example, they recently changed how reusable blocks worked. And we got some emails from users asking us why we changed the behavior, a few usable blocks, but actually that wasn&rsquo;t us. It was part of the WordPress update.</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-1\"><div class=\"chat-author chat-author-nathanwrigley vcard\"><cite class=\"fn\">Nathan Wrigley</cite> [00:20:48]</div> <div class=\"chat-text\"><p>From the outside that would feel like a point of frustration because suddenly something that you have got no control over is causing you to have to spend time answering support tickets and so on. Something that, that you didn&rsquo;t do is consuming your time. And while it&rsquo;s not a frustration, I guess that&rsquo;s just the fallout of jumping in early with this. If you&rsquo;d have waited to create this for another three or four years, when everything was much more mature than it is now, you would have probably had a great deal of a smoother road, but you would have missed that opportunity to become one of the people that jumped in early and made a name for themselves. So I guess as a company, you&rsquo;ve just got to accept a bit of that. That goes with the territory. You&rsquo;ve done this early. There&rsquo;ll be a benefit to that down the road, but there&rsquo;s also going to be moments right now where things don&rsquo;t go as smoothly as you&rsquo;d wish.</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-2\"><div class=\"chat-author chat-author-benjaminintal vcard\"><cite class=\"fn\">Benjamin Intal</cite> [00:21:42]</div> <div class=\"chat-text\"><p>I think you said it quite right. So it&rsquo;s just part of the territory. We just really have to accept it that way. Since if you really jump in early, there&rsquo;s going to be a lot of changes, especially in Gutenberg. Where everything isn&rsquo;t certain yet. So you have to keep on adjusting on what&rsquo;s out there, what the people want. So I think it&rsquo;s just really part of the territory. And it&rsquo;s just something that you have to accept.</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-1\"><div class=\"chat-author chat-author-nathanwrigley vcard\"><cite class=\"fn\">Nathan Wrigley</cite> [00:22:07]</div> <div class=\"chat-text\"><p>Speaking of which let&rsquo;s gaze into the crystal ball a little bit and think about what it is that you&rsquo;re planning to build in the near future. Now, obviously, anything that you say now, may have to go under the microscope of what Gutenberg actually allows you to do in the way that we&rsquo;ve just discussed. I&rsquo;m just interested to know what it is that you&rsquo;re hoping to build in the future, given what the project is hoping to provide for you.</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-2\"><div class=\"chat-author chat-author-benjaminintal vcard\"><cite class=\"fn\">Benjamin Intal</cite> [00:22:31]</div> <div class=\"chat-text\"><p>So right now we&rsquo;re busy with the version three of Stackable. So currently we&rsquo;re at version two, but in the middle of adding new features and listening to feedback from the users, we realized that there were some things that we weren&rsquo;t able to do with how our blocks work right now. Cause right now what we did was every block, that we have, we try and make it so that you can turn any block into a whole section of your website. So while that&rsquo;s good. So that also gives us a few limitations on what we can do. So in version three, we want to make things more flexible. So for example, we want to add more dynamic content stuff and also better responsive editing. So things like, adjusting how columns would collapse in tablets and mobile. So for example, if you can specify your four column layout to be a two column layout in tablet, we want people to have that ability as well, so much more advanced editing capabilities, similar to what some page builders already have. Probably down the road, maybe towards the end of the year, we hope to be able to provide starter websites, a fully package website that you can just import and start from there and probably a design system, so you can change what all your Stackable blocks would look like. Something like that. Although that&rsquo;s just something we&rsquo;re currently thinking right now.</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-1\"><div class=\"chat-author chat-author-nathanwrigley vcard\"><cite class=\"fn\">Nathan Wrigley</cite> [00:24:00]</div> <div class=\"chat-text\"><p>In terms of what you can do at the moment compared to one of the proprietary page builders that you could go and seek out in the WordPress space. Is there still a big disconnect with what they can do? So for example, you just mentioned a certain feature that page builders can currently do that you&rsquo;re hoping to bring. How long into the future, and obviously again, we are crystal ball gazing. Do you see that sort of feature parity there being equal amounts of features in page builders, which you can purchase and download from the repo and what Gutenberg will provide? How far in advance do you think it&rsquo;s going to be before they&rsquo;re feature equal?</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-2\"><div class=\"chat-author chat-author-benjaminintal vcard\"><cite class=\"fn\">Benjamin Intal</cite> [00:24:37]</div> <div class=\"chat-text\"><p>Oh, I think probably around maybe two years or so, because right now, Gutenberg is still quite new. So we&rsquo;re still in the area where we can just edit the contents of single pages. We&rsquo;re not yet there in terms of editing the whole website in just Gutenberg and nowhere else. So I think we&rsquo;re maybe around two years from that</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-1\"><div class=\"chat-author chat-author-nathanwrigley vcard\"><cite class=\"fn\">Nathan Wrigley</cite> [00:25:02]</div> <div class=\"chat-text\"><p>In a couple of years time in two years&rsquo; time say when maybe there&rsquo;ll be many more features that people require to build full sites. Do you think that there&rsquo;ll ever be a point where the people who build page builders currently need to be concerned about there being a business left for them? In other words, Do you feel that Gutenberg will replace page builders? Or is it more a case of that&rsquo;ll be one option, but there&rsquo;ll still be a completely viable business for people who sell their page builder software.</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-2\"><div class=\"chat-author chat-author-benjaminintal vcard\"><cite class=\"fn\">Benjamin Intal</cite> [00:25:33]</div> <div class=\"chat-text\"><p>Yeah. So you&rsquo;re asking if Gutenberg will ever replace themes and page builders? For that, I don&rsquo;t think so. I think if it replaces anything Gutenberg probably just replaces the classic editor, but with the plugins that extend Gutenberg, it can be a great alternative to page builders. Yeah. But I think in the future you can just get Gutenberg and then with the power of other plugins, it can be a viable page builder. So it can just be an alternative because there&rsquo;s always going to, it&rsquo;d be some people that would want an alternative version. Another way of building things.</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-1\"><div class=\"chat-author chat-author-nathanwrigley vcard\"><cite class=\"fn\">Nathan Wrigley</cite> [00:26:11]</div> <div class=\"chat-text\"><p>I also feel it&rsquo;s a bit of a case of a rising tide carries all boats. What I mean by that is that as WordPress&rsquo;s market share seems to keep going up, a few years ago, it was in the mid thirties and then it became late thirties. And now we&rsquo;re into the early forties percent of the top 10 million websites. You feel like the market is just getting bigger. And so even if you were wedded to a particular page builder and you&rsquo;ve been using it for many years, it feels like the market&rsquo;s just going to get bigger for them all. So there&rsquo;s nothing to be particularly concerned about. It&rsquo;s just going to be one option. You&rsquo;re going to be able to do all sorts of different things with that option, but you&rsquo;ll also be quite able to just carry on using the existing stack that you&rsquo;ve got. If you&rsquo;re happy with it. Speaking of developments in the future, there are some lovely initiatives in the WordPress space to make the creation of content, much more straightforward. And I know in your case, you can drop pre-configured blocks in and you can style them and make them look however you like. And there&rsquo;s all sorts of options in there. I just wondered what you thought about some of the new developments, things like block patterns and reusable blocks, which allow us to save time by creating content, squirreling away somewhere, and whether you&rsquo;re intending to use any of these features in the future within Stackable.</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-2\"><div class=\"chat-author chat-author-benjaminintal vcard\"><cite class=\"fn\">Benjamin Intal</cite> [00:27:30]</div> <div class=\"chat-text\"><p>Yeah. So reusable blocks are great for repeated content that you want to be consistent across your entire website. So something like a signup form for your newsletter that you can add in the middle or at the end of your blog posts, those are really helpful. So if you wanted to change something, you won&rsquo;t have to go through every single blog post to update it. Block patterns on the other hand are great also, but I feel that they&rsquo;re a bit under utilized. So they&rsquo;re like reusable blocks, but unlike reusable blocks, if you&rsquo;re the user, you can&rsquo;t add block patterns on your own, and it&rsquo;s up to the theme developer to add them. So I found that a lot of our users use reusable blocks like block patterns. So they add their designs as reasonable blocks, but when they add it into their pages, they just convert it back to regular blocks so that they can use that as a starting point and then customize them. So it&rsquo;s like an unofficial way to save your own block designs or patterns. So I think that&rsquo;s a use case that the Gutenberg developers can take into account and maybe add that in as a future update.</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-1\"><div class=\"chat-author chat-author-nathanwrigley vcard\"><cite class=\"fn\">Nathan Wrigley</cite> [00:28:41]</div> <div class=\"chat-text\"><p>There are so many awkward problems with the Gutenberg UI at the moment, in terms of exposing those things to us, I feel that sometimes the proprietary page builders, I feel they do a really good job of showing you what all of that looks like with their overlays and things. I&rsquo;m not sure yet that, the Gutenberg project has hit upon the perfect UI. We&rsquo;ve got the bar over to the left, we&rsquo;ve got the bar over to the right and the fact that they&rsquo;re fixed in width and you&rsquo;re not really, you&rsquo;re not really able to moderate them. It feels like there&rsquo;s a lot of work to be done there to improve the UI, to discover all these things, and particularly in the case of reusable blocks, and block patterns. Nice ways of seeing, not just as a tiny little thumbnail, but something, large and full screen. So you can get a real idea of what it is you&rsquo;re about to drop into the page. So really a conversation about, where the UX could be improved if you&rsquo;ve got any thoughts on that.</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-2\"><div class=\"chat-author chat-author-benjaminintal vcard\"><cite class=\"fn\">Benjamin Intal</cite> [00:29:35]</div> <div class=\"chat-text\"><p>Yeah. Yeah. I think there are a lot of things that we can still improve on. Although I think it will only just take time because right now, even if it feels like there are a lot of stuff being added to Gutenberg, and there are also a lot of things that are being studied and adjusted. So I think as an example of something that can be improved, like I mentioned a while ago, I think block patterns, I think a lot of people have, can have a good use by having the ability to add block patterns or their own block patterns. Oh, actually one of the good improvements that we can do in Gutenberg, because one of the hard things to do in Gutenberg is to know where you are, in the current page. Cause it&rsquo;s if you check out the block editor, if you check out Gutenberg, it&rsquo;s basically a tree of a lot of blocks and then blocks inside of other blocks. So it can easily be hard to know what you&rsquo;re editing. Although the, I forgot what it&rsquo;s called, the navigator button on the top. The one where you, when you click it, it&rsquo;s going to show you a bullet list of the blocks. So I think that can be improved. I think that can be transformed into something that you can use to actually manipulate the blocks that where you can, for example, if you want this heading to be moved into inside another container, you can just click the navigator, and then you can move it around from there directly. So I think something like that can be a good way or a good alternative for you to be able to move around blocks and figure it out where you are. Cause it&rsquo;s actually sometimes hard to click on something, especially if you&rsquo;re inside a columns block because inside a columns block, there&rsquo;s two column blocks, and inside that you have your other blocks inside. So it&rsquo;s hard to master or it&rsquo;s a bit hard to make sure that people can click around and figure out where they actually are. Actually, I think the difficulty here is that there&rsquo;s a balance between building a what is what you get, editor, and then also making it spacious enough that you can click around and easily figure out where you are, because if you add spaces everywhere and add outlines. So I think that&rsquo;s a solution. If you add outlines everywhere, that&rsquo;s going to be easier to know what&rsquo;s going on in the screen. So for example, if you have the columns block and then maybe an outline block to signify that you&rsquo;re inside the column. So that&rsquo;s going to be easier than if you didn&rsquo;t have any spaces and they don&rsquo;t have any outlines. That&rsquo;s going to be way easier than what we have right now. Although it&rsquo;s a delicate balance because now if you have outlines and lots of spacings, it&rsquo;s not going to be a, what you see is what to get builder, no matter what you do, it&rsquo;s going to be, you&rsquo;re going to have people who don&rsquo;t want what&rsquo;s going on right now. You&rsquo;re going to have people who don&rsquo;t like this change, or you&rsquo;re going to have people that would prefer the other way around. It&rsquo;s just finding the balance on the what works.</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-1\"><div class=\"chat-author chat-author-nathanwrigley vcard\"><cite class=\"fn\">Nathan Wrigley</cite> [00:32:49]</div> <div class=\"chat-text\"><p>One of the most fantastic features that ever I suppose, came to WordPress was the ability to add in plugins to extend what WordPress could do with extra functionality, and in the near future, we&rsquo;re going to have the block directory will be available to everybody and we&rsquo;ll be able to search for blocks that we don&rsquo;t have yet installed and install them on our website. I&rsquo;m curious about whether you think this is a good development. What I mean by that is I just wonder if there&rsquo;s a concern that we need to have about people wanting to have a block for every little thing, and then downloading a ridiculous amount of blocks, most of which they don&rsquo;t need, which will be consuming up resources on their website and so on and so forth. I&rsquo;m just wondering what your thoughts are on this block directory, whether it&rsquo;s something that you&rsquo;re going to be involved in, whether you&rsquo;re going to do anything like that become involved in installing directly one of your blocks at a time as opposed to selling it as a whole suite.</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-2\"><div class=\"chat-author chat-author-benjaminintal vcard\"><cite class=\"fn\">Benjamin Intal</cite> [00:33:50]</div> <div class=\"chat-text\"><p>To be honest, I was initially excited about the block directory. And I think it&rsquo;s already live right. It&rsquo;s working right now, except that, although I thought it was going to work more like the plugin and team directory, where there&rsquo;s an actual directory that you can go to and browse, I think right now the current behavior is that you have to search for a block inside the inserter, the plus sign that you click on to add blocks. And if what you type doesn&rsquo;t show a result. If you don&rsquo;t have any block that matches that keyword, then that&rsquo;s the only time the block directory shows up. So I think that process can be improved. I think it&rsquo;s a bit off since you can only see the block directory, if you type in a search term that doesn&rsquo;t match anything. So you&rsquo;ll have a lot of instances when the block directory won&rsquo;t show up at all. So for example, it won&rsquo;t trigger. If you type in text like the t e x t since that&rsquo;s the keyword of the native paragraph and heading block. So I think that&rsquo;s something that can be improved on and they hope they&rsquo;ll improve on. And I think if you have a lot of blocks turned on from the block directory, like a block bloat. So I think it&rsquo;s just the same as with plugin bloat. So it&rsquo;s like the notion of having just too many plugins installed. I think it depends on the plugins that you have in your setup. And they think with blocks, it&rsquo;s going to be the same thing. So it&rsquo;s quite possible to have this block bloat by installing lots of individual plugins. Especially if you add in lots of blocks that load their own style sheets, their own Javascript files, but they think this depends on how the blocks were made. So like with plugins, it depends on how the plugins were made. If you activate a lot of plugins that just loaded a lot of their stuff, every time. So that&rsquo;s going to be a bad experience. So I think it&rsquo;s going to be just the same. It&rsquo;s going to be up to the block developers. It&rsquo;s going to be the responsibility of the block authors to make everything optimized so that everything would load up properly.</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-1\"><div class=\"chat-author chat-author-nathanwrigley vcard\"><cite class=\"fn\">Nathan Wrigley</cite> [00:35:59]</div> <div class=\"chat-text\"><p>I can see a future in which individual little blocks become a nice commodity. So at the moment, we&rsquo;ve obviously got a very full free WordPress repository, and we&rsquo;ve also got a very healthy paid for plugin and theme marketplace. And I can imagine a future where blocks also in the same way that Stackable is, you pay for the premium version of Stackable and that&rsquo;s great, but I can see almost like on your Android or iPhone device where you are prepared to pay a smaller amounts of money for a smaller thing. It&rsquo;s not a windows app or a Mac app, it&rsquo;s just the Android app, you&rsquo;re going to pay less for it. Just wonder if there&rsquo;s a marketplace for. Individual little blocks and, you pay, I don&rsquo;t know, $2, $3, $5 for a block that does this one thing. And does it well, and whether or not you&rsquo;re interested in that marketplace, or if you&rsquo;re going to keep your Stackable suite as one big thing, instead of lots of little things,</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-2\"><div class=\"chat-author chat-author-benjaminintal vcard\"><cite class=\"fn\">Benjamin Intal</cite> [00:37:03]</div> <div class=\"chat-text\"><p>I think maybe it might be a good idea for other blocks that provide a very large functionality in just one block. So maybe a store locator block, or maybe a contact form block, but I don&rsquo;t think that&rsquo;s an option for us because one benefit though, with doing things as a collection is that you get everything in one go, so you get all the blocks. Maybe you can turn some of them off if you don&rsquo;t need them. But if there&rsquo;s an update that adds one more block in the future, then you won&rsquo;t have to pay extra. So there&rsquo;s that. And going back to block bloat, I think it depends on how the blocks were made. So for example, in Stackable we have optimizations in place that affect all of our blocks. So if we add another block in their roster, the plugin won&rsquo;t necessarily feel any bulkier. That&rsquo;s one of the benefits of a collection. So I don&rsquo;t think we&rsquo;re going to offer individual blocks. I don&rsquo;t know right now we&rsquo;re thinking maybe not, but we don&rsquo;t know sometime, maybe in the future. But right now, I don&rsquo;t think so.</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-1\"><div class=\"chat-author chat-author-nathanwrigley vcard\"><cite class=\"fn\">Nathan Wrigley</cite> [00:38:09]</div> <div class=\"chat-text\"><p>I&rsquo;m just curious about this sort of slight disconnect in the way that things look in the backend of Gutenberg. So if you&rsquo;re doing something Gutenberg, you&rsquo;ve made it and you&rsquo;ve given it the correct padding and so on, but the UI kind of gets in the way a little bit. And I&rsquo;m wondering if that&rsquo;s a problem for you. Do you get feedback from people saying it doesn&rsquo;t look the same over here as it does when I finally publish my website. Is that a problem that you&rsquo;ve had to overcome and explain to people, look, it&rsquo;s just parts of the UI, you&rsquo;re just going to have to cope with it. How have you overcome all of that?</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-2\"><div class=\"chat-author chat-author-benjaminintal vcard\"><cite class=\"fn\">Benjamin Intal</cite> [00:38:42]</div> <div class=\"chat-text\"><p>Surprisingly, we don&rsquo;t have that much concerns over that. That it&rsquo;s not a direct, what you see is what you get. I think it&rsquo;s totally okay. Especially in desktop because technically it&rsquo;s really hard to make things identical while adding all of the bits and pieces that make the content editable, like the inspector or the toolbar, but it&rsquo;s easier for people to just accept that they&rsquo;re not going to be identical. And they&rsquo;re just going to be close enough. I think people have accepted that already, so it&rsquo;s okay. And after a few edits, I think it&rsquo;s easy to get the handle of it, of what your edits would look like in the front end, because basically you just ignore the sides of your website, essentially. Yeah. As I said, this is easier for desktops for mobile and tablet though, this is harder since right now, you can only do previews in Gutenberg. And all the times we see that people want to take control of how things get smooshed and how things collapse as the screen size gets smaller. So if you just keep on doing previews in Gutenberg, it&rsquo;s going to be harder since, just like before you have to keep on pressing preview to view in the front end and resize your browser. So I think it&rsquo;s more essential for a tablet and mobile. So first Stackable, we addressed this issue since when you do a previous in tablet or mobile our blocks would also change and you can set how they can look like on that specific screen size. Yeah, but I think it&rsquo;s up to the block developers one way or they&rsquo;d handle these cases as well, because Gutenberg already has some things in place. If you want to implement that in your own blocks.</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-1\"><div class=\"chat-author chat-author-nathanwrigley vcard\"><cite class=\"fn\">Nathan Wrigley</cite> [00:40:26]</div> <div class=\"chat-text\"><p>It&rsquo;s pretty clear that you&rsquo;re very bullish about where this is going. I&rsquo;m guessing that you are, you as a company are all in on keeping this going and supporting this and making sure that Stackable is something which is going to be around for the future.</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-2\"><div class=\"chat-author chat-author-benjaminintal vcard\"><cite class=\"fn\">Benjamin Intal</cite> [00:40:42]</div> <div class=\"chat-text\"><p>Yeah, definitely, definitely. I think it&rsquo;s going to be a very good future for Gutenberg.</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-1\"><div class=\"chat-author chat-author-nathanwrigley vcard\"><cite class=\"fn\">Nathan Wrigley</cite> [00:40:48]</div> <div class=\"chat-text\"><p>Ben just before we go, is there anywhere where people could contact you if they wanted to find out a little bit more about what it is that you guys are doing?</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-2\"><div class=\"chat-author chat-author-benjaminintal vcard\"><cite class=\"fn\">Benjamin Intal</cite> [00:40:56]</div> <div class=\"chat-text\"><p>Oh yeah. If you want to contact me, I am in Twitter. So that&rsquo;s at @bfintal and I&rsquo;m also in Facebook. So just search for me, Benjamin Intal, and I&rsquo;m usually actually more there in Facebook than Twitter. If they want to check out Stackable, our website is wpstackable.com and we also have a Stackable community and Facebook, so you can join that as well.</p>\n</div></div><div class=\"chat-stanza chat-row chat-speaker-1\"><div class=\"chat-author chat-author-nathanwrigley vcard\"><cite class=\"fn\">Nathan Wrigley</cite> [00:41:19]</div> <div class=\"chat-text\"><p>Okay, Ben, thank you very much for joining us today.</p>\n</div></div></div></div>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 19 May 2021 14:00:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Nathan Wrigley\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:46;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:61:\"WordPress.org blog: Dropping support for Internet Explorer 11\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:35:\"https://wordpress.org/news/?p=10369\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:77:\"https://wordpress.org/news/2021/05/dropping-support-for-internet-explorer-11/\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:3643:\"<p>Internet Explorer 11 (IE11) was released over 7 years ago and is currently used by less than <a href=\"https://gs.statcounter.com/browser-version-partially-combined-market-share#monthly-202104-202105-bar\" rel=\"nofollow\">1% of all users on the Internet</a> with usage rapidly declining. A large majority of popular websites have already stopped supporting IE11 (including <a href=\"https://docs.microsoft.com/en-us/lifecycle/announcements/m365-ie11-microsoft-edge-legacy\" rel=\"nofollow\">Microsoft Teams in 2020</a>), and even the Microsoft 365 apps and services will be <a href=\"https://docs.microsoft.com/en-us/lifecycle/announcements/m365-ie11-microsoft-edge-legacy\" rel=\"nofollow\">dropping support later this year</a>.</p>\n\n\n\n<p><strong>When WordPress 5.8 is released in July of this year, Internet Explorer 11 will no longer be supported.</strong></p>\n\n\n\n<p>If you are currently using IE11, it is strongly recommended that you switch to a more modern browser, such as Google Chrome, Mozilla Firefox, Safari, or Microsoft Edge. IE11 users have been shown a warning that IE11 is considered outdated in the WordPress dashboard for the last 17+ months.</p>\n\n\n\n<p>If you are already using one of the more modern browsers above, you will only be positively impacted by this change, as there are performance benefits to dropping IE11 support. However, if any other users of your site are still using IE11, it’s possible they will be affected.</p>\n\n\n\n<h2>What does “dropping support” mean?</h2>\n\n\n\n<p>When support for a browser is removed from WordPress, new features are no longer tested on those browsers and are not guaranteed to function optimally.</p>\n\n\n\n<p>Automated tools that generate parts of the WordPress Core source code are also updated to exclude unsupported browsers. This means that any feature relying on these generated files will likely have bugs or stop working for users of those browsers.</p>\n\n\n\n<p>The block editor will be the area of WordPress most heavily impacted by this change because almost all of the files related to the block editor are compiled using these automated tools. Other areas of the WordPress dashboard also use CSS built with these tools and their appearance will potentially be impacted when using IE11.</p>\n\n\n\n<p>All other areas of the code base that are IE11 specific will need to be identified, evaluated, and removed on a case-by-case basis as the rest are manually maintained. This process will begin in the WordPress 5.9 release, and will likely happen gradually over several major releases. Additionally, any bugs which are reported for IE11 will not be fixed.</p>\n\n\n\n<h2>How will this affect themes?</h2>\n\n\n\n<p>No changes will be made to any of the default bundled themes as a result of this plan. No code related to IE11 support (or any other browser that may have been supported when each theme was released) will be removed from default themes. However, any new features added going forward will not be tested in IE11.</p>\n\n\n\n<p>If you are not using a default theme, it’s still unlikely that your theme will be affected by this change. Themes typically have their own browser support policies, and changes in WordPress Core do not affect those. It’s possible that your theme author may have removed support for IE11 already.</p>\n\n\n\n<p>If IE11 support is important to you and you are unsure whether your theme supports IE11, it is recommended that you reach out to your theme’s developer to confirm.</p>\n\n\n\n<p>More information on this change can be found on the <a href=\"https://make.wordpress.org/core/2021/04/22/ie-11-support-phase-out-plan/\">Making WordPress Core blog</a>.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 19 May 2021 12:00:00 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:19:\"Jonathan Desrosiers\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:47;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:97:\"WPTavern: Blocksy Theme Expands Free Starter Site Collection, Plans to Create New Suite of Blocks\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=116383\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:237:\"https://wptavern.com/blocksy-theme-expands-free-starter-site-collection-plans-to-create-new-suite-of-blocks?utm_source=rss&utm_medium=rss&utm_campaign=blocksy-theme-expands-free-starter-site-collection-plans-to-create-new-suite-of-blocks\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4546:\"<p>When Sergiu Radu and Andrei Glingeanu launched their free <a href=\"https://wordpress.org/themes/blocksy/\">Blocksy</a> theme nearly two years ago, they were surprised by how quickly their business grew during a global pandemic without any investment in marketing. Blocksy is now active on more than 20,000 WordPress sites and its commercial version, launched in October 2020, has grown to where both founders are now working full-time on the project.</p>\n\n\n\n<p>Apart from inadvertently gaining a few mentions on some blogs and YouTube channels, Radu said his team has done nothing to market the theme. Users have most often been referred by word of mouth and many have gotten linked into the community through <a href=\"https://www.facebook.com/groups/blocksy.community\">Blocksy&rsquo;s Facebok group</a>, which has grown to more than 2,200 members. Users join the group to discuss the theme and share their knowledge with each other.</p>\n\n\n\n<p>Three months ago, Blocksy&rsquo;s founders hired two more teammates to assist with support and manage the theme&rsquo;s Facebook community. Radu said he thinks support has been the most important factor in the theme&rsquo;s growth. His team offers support to free users as well as those those who opt to pay for Blocksy Pro. The ticketing system is open for everyone using the theme. This might explain why Blocksy has maintained a perfect 5-star rating on WordPress.org with 455 reviews.</p>\n\n\n\n<p>Another factor in the theme&rsquo;s success is its free starter sites that enable users to get going right away. In the past month, the Blocksy team has released three new starter sites, bringing the total to 10 (double the number available this time last year). <a href=\"https://demo.creativethemes.com/blocksy/yogi/\">Yogi</a>, the latest release, is based on the block editor and was designed to showcase Blocksy&rsquo;s capabilities for customizing and managing custom post types. These are registered with the help of <a href=\"https://metabox.io/\">WP Meta Box</a>. </p>\n\n\n\n<ul><li class=\"blocks-gallery-item\"><img /></li><li class=\"blocks-gallery-item\"><img /></li><li class=\"blocks-gallery-item\"><img /></li><li class=\"blocks-gallery-item\"><img /></li></ul>\n\n\n\n<p>In April, the team released <a href=\"https://demo.creativethemes.com/blocksy/tasty/\">Tasty</a>, a starter site that uses the <a href=\"https://wordpress.org/plugins/recipe-card-blocks-by-wpzoom/\">Recipe Card Blocks</a> plugin by WPZOOM. If you&rsquo;re looking for a recipe theme and plugin combination that supports the block editor, these two work seamlessly together. The team also launched <a href=\"https://demo.creativethemes.com/blocksy/homi/\">Homi</a>, a block-based WooCommerce starter site built with Stackable.</p>\n\n\n\n<p>The starter themes can be imported with one click and users get exactly what they see in the demo without having to figure out how to arrange it. An onboarding wizard guides the user through setting up a child theme and installing any necessary plugins. It imports all the posts, pages, comments, navigation menus, custom fields, terms and custom posts that are seen in the demos.</p>\n\n\n\n<div><img /></div>\n\n\n\n<p>Radu said the team plans to release 3-4 more starter sites in the near future, targeting different niches, including blogger, agency, lawyers, wedding, and music/bands.</p>\n\n\n\n<p>Blocksy&rsquo;s developers are currently working on adding some new WooCommerce features in the next update, along with a portfolio extension. They are also working on a plan to make it easier to create starter sites.</p>\n\n\n\n<p>&ldquo;It&rsquo;s very hard at the moment to create our starter sites,&rdquo; Radu said. &ldquo;Almost all Gutenberg plugins out there lack design options or other things that we may need in order to create a nice starter site. So we were feeling very limited and thought why not create our own suite of blocks that are going to meet all our needs?&rdquo;</p>\n\n\n\n<p>Blocksy currently uses <a href=\"https://wordpress.org/plugins/stackable-ultimate-gutenberg-blocks/\">Stackable blocks</a> to create the demo sites. Radu said that although his team may eventually transition to using their own suite of blocks exclusively, they may also continue making starter sites with Stackable since their users like that particular block library so much. The team plans to begin building their own suite of Gutenberg blocks after the next update, beginning with a free version, followed by a pro version with some more advanced blocks.</p>\n\n\n\n<p><a href=\"https://twitter.com/sergiuradoo\"></a></p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Wed, 19 May 2021 04:24:36 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:13:\"Sarah Gooding\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:48;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:132:\"WPTavern: ProfilePress Rebrands and Repurposes WP User Avatar, Now a Membership Plugin, Users Revolt via the WordPress Review System\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=116746\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:305:\"https://wptavern.com/profilepress-rebrands-and-repurposes-wp-user-avatar-now-a-membership-plugin-users-revolt-via-the-wordpress-review-system?utm_source=rss&utm_medium=rss&utm_campaign=profilepress-rebrands-and-repurposes-wp-user-avatar-now-a-membership-plugin-users-revolt-via-the-wordpress-review-system\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:5971:\"<p class=\"has-drop-cap\">Less than two weeks after publishing about the broken user experience of the <a href=\"https://wptavern.com/dark-mode-plugin-repurposed-and-renamed-to-wp-markdown-editor-change-leaves-users-confused#comments\">former Dark Mode plugin</a> being renamed and repurposed, another plugin development company decided to do the same. The consensus seems to be that this is a bad idea. However, the ProfilePress Team forged ahead and repurposed the <a href=\"https://wordpress.org/plugins/wp-user-avatar/\">WP User Avatar plugin</a>.</p>\n\n\n\n<p>Instead of a simple, single-purpose custom avatar solution, it is a full-fledged user registration, profile, login, and membership management plugin.</p>\n\n\n\n<p>It is now called ProfilePress. But, let&rsquo;s call it ProfilePress Lite because there is a commercial component where you can upgrade to the actual ProfilePress premium plugin. We need to differentiate the two. Plus, the plugin itself uses that term, at least once, in the admin.</p>\n\n\n\n<p>The difference between the Dark Mode switcheroo and this one is that WP User Avatar has over 400,000 active installs, and users are voting with their feet. <a href=\"https://wordpress.org/support/plugin/wp-user-avatar/reviews/\">And their ratings.</a> In the past 48 hours, the plugin has received a staggering 60+ one-star reviews &mdash; and counting. The WordPress.org support team has already had to close two <a href=\"https://wordpress.org/support/topic/why-you-change-this-plugin/\">forum</a> <a href=\"https://wordpress.org/support/topic/outrageous-decision-to-bloat-this-simple-but-great-plugin/\">topics</a>. A review titled &ldquo;<a href=\"https://wordpress.org/support/topic/unexpected-changes-expected-reactions/\">Unexpected changes, expected reactions</a>&rdquo; sums up the situation.</p>\n\n\n\n<p>Over 400,000 users can do a lot of damage in a little bit of time.</p>\n\n\n\n<p>A fraction of a fraction of a fraction of those 400,000 users can knock a respectable 4.4 rating down to 3.6 in two days.</p>\n\n\n\n<p>When no one from the company responds to any of the 60+ reviews, it looks like you have something to hide. Those are 60+ opportunities to at least attempt to smooth things over.</p>\n\n\n\n<p>Pre-3.0, WP User Avatar was a simple plugin for managing how avatars were handled on the site and allowing custom photo uploads on a per-user basis. In the plugin&rsquo;s eight-year history, users had come to expect a solid plugin that handled one thing and handled it well.</p>\n\n\n\n<img />Settings screen for pre-3.0 WP User Avatar\n\n\n\n<p>In April 2020, the plugin changed ownership. ProfilePress had taken over from Flipper Code, the project&rsquo;s only contributor since 2014.  Bangbay Siboliban was listed as the plugin owner from 2013-2014. It is unclear if this was an acquisition or a simple transfer. Neither the former nor the current owner has responded to a request for comment at this time.</p>\n\n\n\n<p>Under new ownership and its version 2.2.5 &ndash; 2.2.9 plugin upgrades in the past year, everything seemed to be status quo. ProfilePress kept the plugin going, fixing bugs for multiple releases. Until two days ago, users were likely unaware that a tidal wave of change was roaring their way. No announcements on the ProfilePress blog. No sticky topics in the WordPress.org support forum. Just, <em>here&rsquo;s your new membership plugin that you didn&rsquo;t ask for</em>.</p>\n\n\n\n<p>Users were greeted with a new settings screen and much more, an admin that was barely recognizable.</p>\n\n\n\n<img />ProfilePress (formerly WP User Avatar) settings screen.\n\n\n\n<p><a href=\"https://wordpress.org/support/topic/profilepress-what/\">As one user put it</a>, &ldquo;What the heck? Updated plugin and suddenly I have a full membership solution.&rdquo;</p>\n\n\n\n<p>&ldquo;You had the plugin WP User Avatar that did one specific function &mdash; added an avatar to users like when they leave comments on the blog,&rdquo; <a href=\"https://wordpress.org/support/topic/unethical-plugin-change/\">wrote another reviewer</a>. &ldquo;Now I go to update it, and BOOM, a 100% completely different plugin takes its place. &ldquo;</p>\n\n\n\n<p>ProfilePress, the premium plugin, <a href=\"https://profilepress.net/introducing-profilepress-wordpress-plugin/\">launched in 2015</a>. It is a known product with an existing userbase. I cannot imagine any scenario that makes sense where the company takes a separate plugin that it acquired and implants a lite version of its premium product inside.</p>\n\n\n\n<p>Except to capitalize on the 400,000+ active installs for a quick and easy profit.</p>\n\n\n\n<p>The knee-jerk reaction is usually to demand the WordPress.org Plugin Review Team implement a rule against it. Some scenarios are less egregious than others. Drawing a subjective line in the sand can be a tough ask of them.</p>\n\n\n\n<p>I am coming around to the idea of putting this decision into the hands of users. They are using the review system in the way it was meant to be used. Let them rain down all manner of hell on plugin authors who do this. Let them prop up another plugin with their numbers and hand out glowing five-star reviews for it. <em><a href=\"https://wordpress.org/plugins/wp-user-avatars/\">WP User Avatars</a> (with an &lsquo;s&rsquo;) was a decent alternative the last I tried it.</em></p>\n\n\n\n<p>Still, I wonder how much this hurts the plugin with its active install total. The owner might simply weather the storm and capitalize on the users left standing when the dust settles. Even if they lost an unlikely quarter or half of their install count, they are still in a position to profit from premium upgrades. Then, build a new base from users who are unaware of this current debacle.</p>\n\n\n\n<p>The more companies that do it without repercussions, the more likely it becomes a trend. But, <s>WP User Avatar&rsquo;s</s>, <s>ProfilePress&rsquo;s</s>, <em>ahem</em>, ProfilePress Lite&rsquo;s users are in open rebellion. Maybe the market will simply decide.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Tue, 18 May 2021 23:00:16 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}i:49;a:6:{s:4:\"data\";s:13:\"\n	\n	\n	\n	\n	\n	\n\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";s:5:\"child\";a:2:{s:0:\"\";a:5:{s:5:\"title\";a:1:{i:0;a:5:{s:4:\"data\";s:71:\"WPTavern: Anariel Design Launches Naledi, a Block-Based WordPress Theme\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"guid\";a:1:{i:0;a:5:{s:4:\"data\";s:30:\"https://wptavern.com/?p=116777\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:4:\"link\";a:1:{i:0;a:5:{s:4:\"data\";s:185:\"https://wptavern.com/anariel-design-launches-naledi-a-block-based-wordpress-theme?utm_source=rss&utm_medium=rss&utm_campaign=anariel-design-launches-naledi-a-block-based-wordpress-theme\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:11:\"description\";a:1:{i:0;a:5:{s:4:\"data\";s:4562:\"<img />Naledi theme homepage.\n\n\n\n<p class=\"has-drop-cap\">Over the weekend, Anariel Design co-founder Ana Segota <a href=\"https://twitter.com/Ana_Segota/status/1393622710845063169\">tweeted</a> that she was nearly ready to submit the <a href=\"https://www.anarieldesign.com/free-full-site-editing-theme-naledi/\">company&rsquo;s first block theme</a> into the WordPress directory. There are only <a href=\"https://wordpress.org/themes/tags/full-site-editing/\">five such experimental themes</a> available for download in the repo right now, and I have been patiently awaiting more.</p>\n\n\n\n<p>The Naledi theme is in the review queue, but those who want to give it a spin can grab a copy of the <a href=\"https://themes.trac.wordpress.org/ticket/99469#comment:3\">ZIP file from its ticket</a>.  Or, just peruse the <a href=\"https://www.anarieldesign.com/themedemos/naledi/\">theme&rsquo;s demo</a>.</p>\n\n\n\n<p>Block, block-based, or FSE themes are built entirely out of blocks, not just the post content. This includes the header, footer, and everything else in between &mdash; literally, everything is a block. Such themes are the future of WordPress and need more user testing.</p>\n\n\n\n<p>Like most block themes at the moment, Naledi is not meant for use on a production site. The goal is to build upon the site editor and templating systems in the Gutenberg plugin. The earliest that stable iterations of these FSE sub-components could land in WordPress would be in version 5.9 later this year, but there is no guarantee of that yet.</p>\n\n\n\n<p>The WordPress.org Themes Team allows block themes in the directory. However, a team lead must grant permission using the &ldquo;special case&rdquo; system in place. There is still a <a href=\"https://meta.trac.wordpress.org/ticket/5504\">six-month-old ticket</a> awaiting closure before anyone can upload block themes without special access.</p>\n\n\n\n<p>On the whole, Naledi is a well-rounded theme given the limitations of block templating right now. It has plenty of personality and is a good representation of how themers should be building on top of the system. There are miles to go, but the Gutenberg development team is driving fast.</p>\n\n\n\n<p>One of the most revealing items was how little CSS Naledi needed (roughly 20 kb). It is almost entirely built upon the <code>theme.json</code> style system. Most of the code is merely modifications for custom block styles and adjustments to the core blocks.</p>\n\n\n\n<p>The theme currently has nine block styles. Most of the concepts are around adding borders. Eventually, these border-related styles may be unnecessary. Border settings are coming to more and more blocks out of the box. Users will be able to directly make border changes on nearly anything, and theme designers can package their old styles as custom patterns instead.</p>\n\n\n\n<p>Of the theme&rsquo;s block styles, my favorite is the framed image. I have been on a bit of a <em>frame</em> kick as of late, so I like seeing what others are doing with the idea.</p>\n\n\n\n<img />Frame style on the Image block.\n\n\n\n<p>Naledi also bundles eight-block patterns. Most include the Columns block, but others incorporate the Media &amp; Text and Cover blocks, such as a full-width page header.</p>\n\n\n\n<p>The Testimonials pattern uses the theme&rsquo;s Overlap style for the Columns block. It shifts the left column to the right and the right column in the opposite direction, creating an overlap.</p>\n\n\n\n<img />Testimonials block pattern.\n\n\n\n<p>There is a similar pattern named Overlapping Images that uses the same technique.</p>\n\n\n\n<img />Overlapping Images block pattern.\n\n\n\n<p>What Naledi does that I have not seen with many block themes yet is add several custom page templates. It technically registers only two of them via its <code>theme.json</code> configuration. However, six exist in total, and the Gutenberg plugin automatically picks them all up on a per-page level &mdash; <em>not sure if that is a bug or a feature</em>.</p>\n\n\n\n<ul><li>About</li><li>Home</li><li>News</li><li>Sidebar</li><li>Testimonials</li><li>Tours</li></ul>\n\n\n\n<p>Because Naledi is a block theme, users can make direct changes to any of the templates, putting their own coat of paint over the default or overhauling them entirely.</p>\n\n\n\n<img />Naledi theme in the site editor.\n\n\n\n<p>As always, it is a welcome sight to see another block theme headed for the official directory. It is by no means perfect &mdash; working in an imperfect system. However, experiments like Naledi give me more hope that we are heading in the right direction.</p>\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}s:7:\"pubDate\";a:1:{i:0;a:5:{s:4:\"data\";s:31:\"Mon, 17 May 2021 21:42:27 +0000\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}s:32:\"http://purl.org/dc/elements/1.1/\";a:1:{s:7:\"creator\";a:1:{i:0;a:5:{s:4:\"data\";s:14:\"Justin Tadlock\";s:7:\"attribs\";a:0:{}s:8:\"xml_base\";s:0:\"\";s:17:\"xml_base_explicit\";b:0;s:8:\"xml_lang\";s:0:\"\";}}}}}}}}}}}}}}}}s:4:\"type\";i:128;s:7:\"headers\";O:42:\"Requests_Utility_CaseInsensitiveDictionary\":1:{s:7:\"\0*\0data\";a:8:{s:6:\"server\";s:5:\"nginx\";s:4:\"date\";s:29:\"Tue, 08 Jun 2021 02:35:43 GMT\";s:12:\"content-type\";s:8:\"text/xml\";s:4:\"vary\";s:15:\"Accept-Encoding\";s:13:\"last-modified\";s:29:\"Tue, 08 Jun 2021 02:15:11 GMT\";s:15:\"x-frame-options\";s:10:\"SAMEORIGIN\";s:4:\"x-nc\";s:9:\"HIT ord 2\";s:16:\"content-encoding\";s:4:\"gzip\";}}s:5:\"build\";s:14:\"20201016172007\";}','no'),(142,'_transient_timeout_feed_mod_d117b5738fbd35bd8c0391cda1f2b5d9','1623162943','no'),(143,'_transient_feed_mod_d117b5738fbd35bd8c0391cda1f2b5d9','1623119743','no'),(144,'_transient_timeout_dash_v2_5f25301ca0145abac6dfc3a0899dc43b','1623162943','no'),(145,'_transient_dash_v2_5f25301ca0145abac6dfc3a0899dc43b','<div class=\"rss-widget\"><ul><li><a class=\'rsswidget\' href=\'https://en-gb.wordpress.org/2021/05/28/belated-18th-birthday-wishes-wordpress/\'>Belated 18th Birthday Wishes, WordPress!</a></li><li><a class=\'rsswidget\' href=\'https://en-gb.wordpress.org/2021/05/13/wordpress-5-7-2-security-release/\'>WordPress 5.7.2 Security Release</a></li></ul></div><div class=\"rss-widget\"><ul><li><a class=\'rsswidget\' href=\'https://wptavern.com/spice-up-your-food-or-recipe-blog-with-the-nutmeg-wordpress-theme?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=spice-up-your-food-or-recipe-blog-with-the-nutmeg-wordpress-theme\'>WPTavern: Spice Up Your Food or Recipe Blog With the Nutmeg WordPress Theme</a></li><li><a class=\'rsswidget\' href=\'https://wordpress.org/news/2021/06/people-of-wordpress-tijana-andrejic/\'>WordPress.org blog: People of WordPress: Tijana Andrejic</a></li><li><a class=\'rsswidget\' href=\'https://buddypress.org/2021/06/buddypress-8-0-0-alfano/\'>BuddyPress: BuddyPress 8.0.0 “Alfano”</a></li></ul></div>','no'),(146,'_site_transient_update_themes','O:8:\"stdClass\":5:{s:12:\"last_checked\";i:1623119744;s:7:\"checked\";a:3:{s:14:\"twentynineteen\";s:3:\"2.0\";s:12:\"twentytwenty\";s:3:\"1.7\";s:15:\"twentytwentyone\";s:3:\"1.3\";}s:8:\"response\";a:0:{}s:9:\"no_update\";a:3:{s:14:\"twentynineteen\";a:6:{s:5:\"theme\";s:14:\"twentynineteen\";s:11:\"new_version\";s:3:\"2.0\";s:3:\"url\";s:44:\"https://wordpress.org/themes/twentynineteen/\";s:7:\"package\";s:60:\"https://downloads.wordpress.org/theme/twentynineteen.2.0.zip\";s:8:\"requires\";s:5:\"4.9.6\";s:12:\"requires_php\";s:5:\"5.2.4\";}s:12:\"twentytwenty\";a:6:{s:5:\"theme\";s:12:\"twentytwenty\";s:11:\"new_version\";s:3:\"1.7\";s:3:\"url\";s:42:\"https://wordpress.org/themes/twentytwenty/\";s:7:\"package\";s:58:\"https://downloads.wordpress.org/theme/twentytwenty.1.7.zip\";s:8:\"requires\";s:3:\"4.7\";s:12:\"requires_php\";s:5:\"5.2.4\";}s:15:\"twentytwentyone\";a:6:{s:5:\"theme\";s:15:\"twentytwentyone\";s:11:\"new_version\";s:3:\"1.3\";s:3:\"url\";s:45:\"https://wordpress.org/themes/twentytwentyone/\";s:7:\"package\";s:61:\"https://downloads.wordpress.org/theme/twentytwentyone.1.3.zip\";s:8:\"requires\";s:3:\"5.3\";s:12:\"requires_php\";s:3:\"5.6\";}}s:12:\"translations\";a:0:{}}','no'),(147,'_site_transient_update_plugins','O:8:\"stdClass\":5:{s:12:\"last_checked\";i:1623119745;s:7:\"checked\";a:2:{s:19:\"akismet/akismet.php\";s:5:\"4.1.9\";s:9:\"hello.php\";s:5:\"1.7.2\";}s:8:\"response\";a:0:{}s:12:\"translations\";a:0:{}s:9:\"no_update\";a:2:{s:19:\"akismet/akismet.php\";O:8:\"stdClass\":9:{s:2:\"id\";s:21:\"w.org/plugins/akismet\";s:4:\"slug\";s:7:\"akismet\";s:6:\"plugin\";s:19:\"akismet/akismet.php\";s:11:\"new_version\";s:5:\"4.1.9\";s:3:\"url\";s:38:\"https://wordpress.org/plugins/akismet/\";s:7:\"package\";s:56:\"https://downloads.wordpress.org/plugin/akismet.4.1.9.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:59:\"https://ps.w.org/akismet/assets/icon-256x256.png?rev=969272\";s:2:\"1x\";s:59:\"https://ps.w.org/akismet/assets/icon-128x128.png?rev=969272\";}s:7:\"banners\";a:1:{s:2:\"1x\";s:61:\"https://ps.w.org/akismet/assets/banner-772x250.jpg?rev=479904\";}s:11:\"banners_rtl\";a:0:{}}s:9:\"hello.php\";O:8:\"stdClass\":9:{s:2:\"id\";s:25:\"w.org/plugins/hello-dolly\";s:4:\"slug\";s:11:\"hello-dolly\";s:6:\"plugin\";s:9:\"hello.php\";s:11:\"new_version\";s:5:\"1.7.2\";s:3:\"url\";s:42:\"https://wordpress.org/plugins/hello-dolly/\";s:7:\"package\";s:60:\"https://downloads.wordpress.org/plugin/hello-dolly.1.7.2.zip\";s:5:\"icons\";a:2:{s:2:\"2x\";s:64:\"https://ps.w.org/hello-dolly/assets/icon-256x256.jpg?rev=2052855\";s:2:\"1x\";s:64:\"https://ps.w.org/hello-dolly/assets/icon-128x128.jpg?rev=2052855\";}s:7:\"banners\";a:1:{s:2:\"1x\";s:66:\"https://ps.w.org/hello-dolly/assets/banner-772x250.jpg?rev=2052855\";}s:11:\"banners_rtl\";a:0:{}}}}','no');
/*!40000 ALTER TABLE `wp_options` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `wp_postmeta`
--

DROP TABLE IF EXISTS `wp_postmeta`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `wp_postmeta` (
  `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `post_id` bigint(20) unsigned NOT NULL DEFAULT 0,
  `meta_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `meta_value` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  PRIMARY KEY (`meta_id`),
  KEY `post_id` (`post_id`),
  KEY `meta_key` (`meta_key`(191))
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `wp_postmeta`
--

LOCK TABLES `wp_postmeta` WRITE;
/*!40000 ALTER TABLE `wp_postmeta` DISABLE KEYS */;
INSERT INTO `wp_postmeta` VALUES (1,2,'_wp_page_template','default'),(2,3,'_wp_page_template','default');
/*!40000 ALTER TABLE `wp_postmeta` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `wp_posts`
--

DROP TABLE IF EXISTS `wp_posts`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `wp_posts` (
  `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `post_author` bigint(20) unsigned NOT NULL DEFAULT 0,
  `post_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `post_date_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `post_content` longtext COLLATE utf8mb4_unicode_ci NOT NULL,
  `post_title` text COLLATE utf8mb4_unicode_ci NOT NULL,
  `post_excerpt` text COLLATE utf8mb4_unicode_ci NOT NULL,
  `post_status` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'publish',
  `comment_status` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'open',
  `ping_status` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'open',
  `post_password` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `post_name` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `to_ping` text COLLATE utf8mb4_unicode_ci NOT NULL,
  `pinged` text COLLATE utf8mb4_unicode_ci NOT NULL,
  `post_modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `post_modified_gmt` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `post_content_filtered` longtext COLLATE utf8mb4_unicode_ci NOT NULL,
  `post_parent` bigint(20) unsigned NOT NULL DEFAULT 0,
  `guid` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `menu_order` int(11) NOT NULL DEFAULT 0,
  `post_type` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'post',
  `post_mime_type` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `comment_count` bigint(20) NOT NULL DEFAULT 0,
  PRIMARY KEY (`ID`),
  KEY `post_name` (`post_name`(191)),
  KEY `type_status_date` (`post_type`,`post_status`,`post_date`,`ID`),
  KEY `post_parent` (`post_parent`),
  KEY `post_author` (`post_author`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `wp_posts`
--

LOCK TABLES `wp_posts` WRITE;
/*!40000 ALTER TABLE `wp_posts` DISABLE KEYS */;
INSERT INTO `wp_posts` VALUES (1,1,'2021-06-08 03:35:34','2021-06-08 02:35:34','<!-- wp:paragraph -->\n<p>Welcome to WordPress. This is your first post. Edit or delete it, then start writing!</p>\n<!-- /wp:paragraph -->','Hello world!','','publish','open','open','','hello-world','','','2021-06-08 03:35:34','2021-06-08 02:35:34','',0,'https://localhost/wordpress/?p=1',0,'post','',1),(2,1,'2021-06-08 03:35:34','2021-06-08 02:35:34','<!-- wp:paragraph -->\n<p>This is an example page. It\'s different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:quote -->\n<blockquote class=\"wp-block-quote\"><p>Hi there! I\'m a bike messenger by day, aspiring actor by night, and this is my website. I live in Los Angeles, have a great dog named Jack, and I like pi&#241;a coladas. (And gettin\' caught in the rain.)</p></blockquote>\n<!-- /wp:quote -->\n\n<!-- wp:paragraph -->\n<p>...or something like this:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:quote -->\n<blockquote class=\"wp-block-quote\"><p>The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.</p></blockquote>\n<!-- /wp:quote -->\n\n<!-- wp:paragraph -->\n<p>As a new WordPress user, you should go to <a href=\"https://localhost/wordpress/wp-admin/\">your dashboard</a> to delete this page and create new pages for your content. Have fun!</p>\n<!-- /wp:paragraph -->','Sample Page','','publish','closed','open','','sample-page','','','2021-06-08 03:35:34','2021-06-08 02:35:34','',0,'https://localhost/wordpress/?page_id=2',0,'page','',0),(3,1,'2021-06-08 03:35:34','2021-06-08 02:35:34','<!-- wp:heading --><h2>Who we are</h2><!-- /wp:heading --><!-- wp:paragraph --><p><strong class=\"privacy-policy-tutorial\">Suggested text: </strong>Our website address is: https://localhost/wordpress.</p><!-- /wp:paragraph --><!-- wp:heading --><h2>Comments</h2><!-- /wp:heading --><!-- wp:paragraph --><p><strong class=\"privacy-policy-tutorial\">Suggested text: </strong>When visitors leave comments on the site we collect the data shown in the comments form, and also the visitor&#8217;s IP address and browser user agent string to help spam detection.</p><!-- /wp:paragraph --><!-- wp:paragraph --><p>An anonymised string created from your email address (also called a hash) may be provided to the Gravatar service to see if you are using it. The Gravatar service Privacy Policy is available here: https://automattic.com/privacy/. After approval of your comment, your profile picture is visible to the public in the context of your comment.</p><!-- /wp:paragraph --><!-- wp:heading --><h2>Media</h2><!-- /wp:heading --><!-- wp:paragraph --><p><strong class=\"privacy-policy-tutorial\">Suggested text: </strong>If you upload images to the website, you should avoid uploading images with embedded location data (EXIF GPS) included. Visitors to the website can download and extract any location data from images on the website.</p><!-- /wp:paragraph --><!-- wp:heading --><h2>Cookies</h2><!-- /wp:heading --><!-- wp:paragraph --><p><strong class=\"privacy-policy-tutorial\">Suggested text: </strong>If you leave a comment on our site you may opt in to saving your name, email address and website in cookies. These are for your convenience so that you do not have to fill in your details again when you leave another comment. These cookies will last for one year.</p><!-- /wp:paragraph --><!-- wp:paragraph --><p>If you visit our login page, we will set a temporary cookie to determine if your browser accepts cookies. This cookie contains no personal data and is discarded when you close your browser.</p><!-- /wp:paragraph --><!-- wp:paragraph --><p>When you log in, we will also set up several cookies to save your login information and your screen display choices. Login cookies last for two days, and screen options cookies last for a year. If you select &quot;Remember Me&quot;, your login will persist for two weeks. If you log out of your account, the login cookies will be removed.</p><!-- /wp:paragraph --><!-- wp:paragraph --><p>If you edit or publish an article, an additional cookie will be saved in your browser. This cookie includes no personal data and simply indicates the post ID of the article you just edited. It expires after 1 day.</p><!-- /wp:paragraph --><!-- wp:heading --><h2>Embedded content from other websites</h2><!-- /wp:heading --><!-- wp:paragraph --><p><strong class=\"privacy-policy-tutorial\">Suggested text: </strong>Articles on this site may include embedded content (e.g. videos, images, articles, etc.). Embedded content from other websites behaves in the exact same way as if the visitor has visited the other website.</p><!-- /wp:paragraph --><!-- wp:paragraph --><p>These websites may collect data about you, use cookies, embed additional third-party tracking, and monitor your interaction with that embedded content, including tracking your interaction with the embedded content if you have an account and are logged in to that website.</p><!-- /wp:paragraph --><!-- wp:heading --><h2>Who we share your data with</h2><!-- /wp:heading --><!-- wp:paragraph --><p><strong class=\"privacy-policy-tutorial\">Suggested text: </strong>If you request a password reset, your IP address will be included in the reset email.</p><!-- /wp:paragraph --><!-- wp:heading --><h2>How long we retain your data</h2><!-- /wp:heading --><!-- wp:paragraph --><p><strong class=\"privacy-policy-tutorial\">Suggested text: </strong>If you leave a comment, the comment and its metadata are retained indefinitely. This is so we can recognise and approve any follow-up comments automatically instead of holding them in a moderation queue.</p><!-- /wp:paragraph --><!-- wp:paragraph --><p>For users that register on our website (if any), we also store the personal information they provide in their user profile. All users can see, edit, or delete their personal information at any time (except they cannot change their username). Website administrators can also see and edit that information.</p><!-- /wp:paragraph --><!-- wp:heading --><h2>What rights you have over your data</h2><!-- /wp:heading --><!-- wp:paragraph --><p><strong class=\"privacy-policy-tutorial\">Suggested text: </strong>If you have an account on this site, or have left comments, you can request to receive an exported file of the personal data we hold about you, including any data you have provided to us. You can also request that we erase any personal data we hold about you. This does not include any data we are obliged to keep for administrative, legal, or security purposes.</p><!-- /wp:paragraph --><!-- wp:heading --><h2>Where we send your data</h2><!-- /wp:heading --><!-- wp:paragraph --><p><strong class=\"privacy-policy-tutorial\">Suggested text: </strong>Visitor comments may be checked through an automated spam detection service.</p><!-- /wp:paragraph -->','Privacy Policy','','draft','closed','open','','privacy-policy','','','2021-06-08 03:35:34','2021-06-08 02:35:34','',0,'https://localhost/wordpress/?page_id=3',0,'page','',0),(4,1,'2021-06-08 03:35:41','0000-00-00 00:00:00','','Auto Draft','','auto-draft','open','open','','','','','2021-06-08 03:35:41','0000-00-00 00:00:00','',0,'https://localhost/wordpress/?p=4',0,'post','',0);
/*!40000 ALTER TABLE `wp_posts` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `wp_term_relationships`
--

DROP TABLE IF EXISTS `wp_term_relationships`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `wp_term_relationships` (
  `object_id` bigint(20) unsigned NOT NULL DEFAULT 0,
  `term_taxonomy_id` bigint(20) unsigned NOT NULL DEFAULT 0,
  `term_order` int(11) NOT NULL DEFAULT 0,
  PRIMARY KEY (`object_id`,`term_taxonomy_id`),
  KEY `term_taxonomy_id` (`term_taxonomy_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `wp_term_relationships`
--

LOCK TABLES `wp_term_relationships` WRITE;
/*!40000 ALTER TABLE `wp_term_relationships` DISABLE KEYS */;
INSERT INTO `wp_term_relationships` VALUES (1,1,0);
/*!40000 ALTER TABLE `wp_term_relationships` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `wp_term_taxonomy`
--

DROP TABLE IF EXISTS `wp_term_taxonomy`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `wp_term_taxonomy` (
  `term_taxonomy_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `term_id` bigint(20) unsigned NOT NULL DEFAULT 0,
  `taxonomy` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `description` longtext COLLATE utf8mb4_unicode_ci NOT NULL,
  `parent` bigint(20) unsigned NOT NULL DEFAULT 0,
  `count` bigint(20) NOT NULL DEFAULT 0,
  PRIMARY KEY (`term_taxonomy_id`),
  UNIQUE KEY `term_id_taxonomy` (`term_id`,`taxonomy`),
  KEY `taxonomy` (`taxonomy`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `wp_term_taxonomy`
--

LOCK TABLES `wp_term_taxonomy` WRITE;
/*!40000 ALTER TABLE `wp_term_taxonomy` DISABLE KEYS */;
INSERT INTO `wp_term_taxonomy` VALUES (1,1,'category','',0,1);
/*!40000 ALTER TABLE `wp_term_taxonomy` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `wp_termmeta`
--

DROP TABLE IF EXISTS `wp_termmeta`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `wp_termmeta` (
  `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `term_id` bigint(20) unsigned NOT NULL DEFAULT 0,
  `meta_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `meta_value` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  PRIMARY KEY (`meta_id`),
  KEY `term_id` (`term_id`),
  KEY `meta_key` (`meta_key`(191))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `wp_termmeta`
--

LOCK TABLES `wp_termmeta` WRITE;
/*!40000 ALTER TABLE `wp_termmeta` DISABLE KEYS */;
/*!40000 ALTER TABLE `wp_termmeta` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `wp_terms`
--

DROP TABLE IF EXISTS `wp_terms`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `wp_terms` (
  `term_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `slug` varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `term_group` bigint(10) NOT NULL DEFAULT 0,
  PRIMARY KEY (`term_id`),
  KEY `slug` (`slug`(191)),
  KEY `name` (`name`(191))
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `wp_terms`
--

LOCK TABLES `wp_terms` WRITE;
/*!40000 ALTER TABLE `wp_terms` DISABLE KEYS */;
INSERT INTO `wp_terms` VALUES (1,'Uncategorised','uncategorised',0);
/*!40000 ALTER TABLE `wp_terms` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `wp_usermeta`
--

DROP TABLE IF EXISTS `wp_usermeta`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `wp_usermeta` (
  `umeta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `user_id` bigint(20) unsigned NOT NULL DEFAULT 0,
  `meta_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `meta_value` longtext COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  PRIMARY KEY (`umeta_id`),
  KEY `user_id` (`user_id`),
  KEY `meta_key` (`meta_key`(191))
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `wp_usermeta`
--

LOCK TABLES `wp_usermeta` WRITE;
/*!40000 ALTER TABLE `wp_usermeta` DISABLE KEYS */;
INSERT INTO `wp_usermeta` VALUES (1,1,'nickname','djonker'),(2,1,'first_name',''),(3,1,'last_name',''),(4,1,'description',''),(5,1,'rich_editing','true'),(6,1,'syntax_highlighting','true'),(7,1,'comment_shortcuts','false'),(8,1,'admin_color','fresh'),(9,1,'use_ssl','0'),(10,1,'show_admin_bar_front','true'),(11,1,'locale',''),(12,1,'wp_capabilities','a:1:{s:13:\"administrator\";b:1;}'),(13,1,'wp_user_level','10'),(14,1,'dismissed_wp_pointers',''),(15,1,'show_welcome_panel','1'),(16,1,'session_tokens','a:1:{s:64:\"a3a05ced4dfefaa7ea79df0370927a613723c665c5b0a51019e591db597d5f16\";a:4:{s:10:\"expiration\";i:1623292540;s:2:\"ip\";s:10:\"172.17.0.1\";s:2:\"ua\";s:68:\"Mozilla/5.0 (X11; Linux x86_64; rv:89.0) Gecko/20100101 Firefox/89.0\";s:5:\"login\";i:1623119740;}}'),(17,1,'wp_dashboard_quick_press_last_post_id','4'),(18,1,'community-events-location','a:1:{s:2:\"ip\";s:10:\"172.17.0.0\";}');
/*!40000 ALTER TABLE `wp_usermeta` ENABLE KEYS */;
UNLOCK TABLES;

--
-- Table structure for table `wp_users`
--

DROP TABLE IF EXISTS `wp_users`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `wp_users` (
  `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `user_login` varchar(60) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `user_pass` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `user_nicename` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `user_email` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `user_url` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `user_registered` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `user_activation_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  `user_status` int(11) NOT NULL DEFAULT 0,
  `display_name` varchar(250) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
  PRIMARY KEY (`ID`),
  KEY `user_login_key` (`user_login`),
  KEY `user_nicename` (`user_nicename`),
  KEY `user_email` (`user_email`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `wp_users`
--

LOCK TABLES `wp_users` WRITE;
/*!40000 ALTER TABLE `wp_users` DISABLE KEYS */;
INSERT INTO `wp_users` VALUES (1,'djonker','$P$BR9po1c3EaL5xVTIx/4AVywiYNyHpr0','djonker','djonker@student.codam.nl','https://localhost/wordpress','2021-06-08 02:35:34','',0,'djonker');
/*!40000 ALTER TABLE `wp_users` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2021-06-08  4:40:28
