You can subscribe to this list here.
| 2004 |
Jan
|
Feb
|
Mar
(57) |
Apr
(103) |
May
(164) |
Jun
(139) |
Jul
(173) |
Aug
(196) |
Sep
(221) |
Oct
(333) |
Nov
(214) |
Dec
(88) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2005 |
Jan
(163) |
Feb
(165) |
Mar
(98) |
Apr
(93) |
May
(199) |
Jun
(118) |
Jul
(200) |
Aug
(212) |
Sep
(185) |
Oct
(297) |
Nov
(437) |
Dec
(272) |
| 2006 |
Jan
(542) |
Feb
(329) |
Mar
(267) |
Apr
(332) |
May
(267) |
Jun
(130) |
Jul
(161) |
Aug
(348) |
Sep
(166) |
Oct
(305) |
Nov
(173) |
Dec
(173) |
| 2007 |
Jan
(199) |
Feb
(118) |
Mar
(133) |
Apr
(200) |
May
(208) |
Jun
(146) |
Jul
(198) |
Aug
(146) |
Sep
(187) |
Oct
(182) |
Nov
(181) |
Dec
(83) |
| 2008 |
Jan
(252) |
Feb
(124) |
Mar
(124) |
Apr
(101) |
May
(143) |
Jun
(122) |
Jul
(129) |
Aug
(60) |
Sep
(80) |
Oct
(89) |
Nov
(54) |
Dec
(112) |
| 2009 |
Jan
(88) |
Feb
(145) |
Mar
(105) |
Apr
(164) |
May
(123) |
Jun
(154) |
Jul
(374) |
Aug
(341) |
Sep
(219) |
Oct
(137) |
Nov
(373) |
Dec
(240) |
| 2010 |
Jan
(197) |
Feb
(270) |
Mar
(253) |
Apr
(150) |
May
(102) |
Jun
(51) |
Jul
(300) |
Aug
(512) |
Sep
(254) |
Oct
(258) |
Nov
(288) |
Dec
(143) |
| 2011 |
Jan
(238) |
Feb
(179) |
Mar
(253) |
Apr
(332) |
May
(248) |
Jun
(255) |
Jul
(216) |
Aug
(282) |
Sep
(146) |
Oct
(77) |
Nov
(86) |
Dec
(69) |
| 2012 |
Jan
(172) |
Feb
(234) |
Mar
(229) |
Apr
(101) |
May
(212) |
Jun
(267) |
Jul
(129) |
Aug
(210) |
Sep
(239) |
Oct
(271) |
Nov
(368) |
Dec
(220) |
| 2013 |
Jan
(179) |
Feb
(155) |
Mar
(59) |
Apr
(47) |
May
(99) |
Jun
(158) |
Jul
(185) |
Aug
(16) |
Sep
(16) |
Oct
(7) |
Nov
(20) |
Dec
(12) |
| 2014 |
Jan
(21) |
Feb
(17) |
Mar
(18) |
Apr
(13) |
May
(27) |
Jun
(15) |
Jul
(19) |
Aug
(22) |
Sep
(30) |
Oct
(16) |
Nov
(19) |
Dec
(16) |
| 2015 |
Jan
(14) |
Feb
(24) |
Mar
(33) |
Apr
(41) |
May
(14) |
Jun
(80) |
Jul
(53) |
Aug
(8) |
Sep
(7) |
Oct
(15) |
Nov
(13) |
Dec
(2) |
| 2016 |
Jan
(22) |
Feb
(12) |
Mar
(30) |
Apr
(6) |
May
(33) |
Jun
(16) |
Jul
(8) |
Aug
(20) |
Sep
(12) |
Oct
(18) |
Nov
(12) |
Dec
(11) |
| 2017 |
Jan
(24) |
Feb
(26) |
Mar
(47) |
Apr
(23) |
May
(19) |
Jun
(14) |
Jul
(28) |
Aug
(30) |
Sep
(17) |
Oct
|
Nov
|
Dec
|
| 2019 |
Jan
(1) |
Feb
(73) |
Mar
(90) |
Apr
(42) |
May
(116) |
Jun
(90) |
Jul
(127) |
Aug
(103) |
Sep
(56) |
Oct
(42) |
Nov
(95) |
Dec
(58) |
| 2020 |
Jan
(102) |
Feb
(31) |
Mar
(93) |
Apr
(60) |
May
(57) |
Jun
(45) |
Jul
(29) |
Aug
(32) |
Sep
(44) |
Oct
(86) |
Nov
(51) |
Dec
(71) |
| 2021 |
Jan
(44) |
Feb
(25) |
Mar
(78) |
Apr
(130) |
May
(64) |
Jun
(74) |
Jul
(21) |
Aug
(64) |
Sep
(40) |
Oct
(43) |
Nov
(21) |
Dec
(99) |
| 2022 |
Jan
(154) |
Feb
(64) |
Mar
(45) |
Apr
(95) |
May
(62) |
Jun
(48) |
Jul
(73) |
Aug
(37) |
Sep
(71) |
Oct
(27) |
Nov
(40) |
Dec
(65) |
| 2023 |
Jan
(89) |
Feb
(130) |
Mar
(124) |
Apr
(50) |
May
(93) |
Jun
(46) |
Jul
(45) |
Aug
(68) |
Sep
(62) |
Oct
(71) |
Nov
(108) |
Dec
(82) |
| 2024 |
Jan
(53) |
Feb
(76) |
Mar
(64) |
Apr
(75) |
May
(36) |
Jun
(54) |
Jul
(98) |
Aug
(137) |
Sep
(58) |
Oct
(177) |
Nov
(84) |
Dec
(52) |
| 2025 |
Jan
(70) |
Feb
(53) |
Mar
(72) |
Apr
(47) |
May
(88) |
Jun
(49) |
Jul
(86) |
Aug
(51) |
Sep
(65) |
Oct
(91) |
Nov
(18) |
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
1
(1) |
2
(8) |
3
(3) |
4
(4) |
|
5
|
6
|
7
(2) |
8
(3) |
9
(2) |
10
(2) |
11
(2) |
|
12
|
13
(4) |
14
|
15
(3) |
16
(2) |
17
|
18
(7) |
|
19
(3) |
20
(2) |
21
(6) |
22
(1) |
23
(11) |
24
(19) |
25
|
|
26
(5) |
27
(1) |
28
|
29
(5) |
30
(3) |
31
|
|
|
From: <sha...@us...> - 2013-05-30 07:45:56
|
Revision: 18482
http://sourceforge.net/p/exist/code/18482
Author: shabanovd
Date: 2013-05-30 07:45:53 +0000 (Thu, 30 May 2013)
Log Message:
-----------
[ignore] do not throw exception if nothing to cleanup on call for cleanup
Modified Paths:
--------------
trunk/eXist/src/org/exist/util/io/Resource.java
Modified: trunk/eXist/src/org/exist/util/io/Resource.java
===================================================================
--- trunk/eXist/src/org/exist/util/io/Resource.java 2013-05-30 07:41:19 UTC (rev 18481)
+++ trunk/eXist/src/org/exist/util/io/Resource.java 2013-05-30 07:45:53 UTC (rev 18482)
@@ -438,8 +438,11 @@
protected void freeFile() throws IOException {
if (isXML()) {
- if (file == null)
- {throw new IOException();}
+ if (file == null) {
+ //XXX: understand why can't throw exception
+ //throw new IOException();
+ return;
+ }
file.delete();
|
|
From: <sha...@us...> - 2013-05-30 07:41:25
|
Revision: 18481
http://sourceforge.net/p/exist/code/18481
Author: shabanovd
Date: 2013-05-30 07:41:19 +0000 (Thu, 30 May 2013)
Log Message:
-----------
[merge]
Property Changed:
----------------
trunk/eXist/
Index: trunk/eXist
===================================================================
--- trunk/eXist 2013-05-30 07:38:24 UTC (rev 18480)
+++ trunk/eXist 2013-05-30 07:41:19 UTC (rev 18481)
Property changes on: trunk/eXist
___________________________________________________________________
Modified: svn:mergeinfo
## -4,5 +4,6 ##
/branches/adam/security-locking:15302-15345
/branches/dizzzz/xquery3:15611-15682
/branches/jmfg/res64-eXist:12887-13224
+/branches/pbosek/jorsek-official/eXist:18475-18477
/stable/eXist-2.0.x:17695-17697
/trunk/eXist/nbproject:8007-14504
\ No newline at end of property
|
|
From: <sha...@us...> - 2013-05-30 07:38:32
|
Revision: 18480
http://sourceforge.net/p/exist/code/18480
Author: shabanovd
Date: 2013-05-30 07:38:24 +0000 (Thu, 30 May 2013)
Log Message:
-----------
[bugfix] ignore integer value if catch format exception (rev 18477)
[bugfix] prevent configuration object to be locked but was not used because of exception during configuration (rev 18476)
[bugfix] avoid at startup NPE (rev 18475)
Revision Links:
--------------
http://sourceforge.net/p/exist/code/18477
http://sourceforge.net/p/exist/code/18476
http://sourceforge.net/p/exist/code/18475
Modified Paths:
--------------
trunk/eXist/src/org/exist/config/Configurator.java
trunk/eXist/src/org/exist/security/AbstractAccount.java
trunk/eXist/src/org/exist/security/AbstractPrincipal.java
trunk/eXist/src/org/exist/security/AbstractRealm.java
trunk/eXist/src/org/exist/security/internal/SecurityManagerImpl.java
Modified: trunk/eXist/src/org/exist/config/Configurator.java
===================================================================
--- trunk/eXist/src/org/exist/config/Configurator.java 2013-05-29 15:32:07 UTC (rev 18479)
+++ trunk/eXist/src/org/exist/config/Configurator.java 2013-05-30 07:38:24 UTC (rev 18480)
@@ -188,7 +188,9 @@
final Class<?> clazz = instance.getClass();
instance.getClass().getAnnotations();
if (!clazz.isAnnotationPresent(ConfigurationClass.class)) {
+ System.out.println("Instance '"+instance+"' don't have annotaion 'ConfigurationClass'");
return null;
+ //XXX: throw new ConfigurationException("Instance '"+instance+"' don't have annotaion 'ConfigurationClass'");
}
final String configName = clazz.getAnnotation(ConfigurationClass.class).value();
@@ -196,6 +198,7 @@
if (config == null) {
System.out.println("No configuration [" + configName + "]");
return null;
+ //XXX: throw new ConfigurationException("No configuration [" + configName + "]");
}
if (config instanceof ConfigurationImpl) {
@@ -219,10 +222,19 @@
//end (lock issue)
}
- return configureByCurrent(instance, config);
+ try {
+ return configureByCurrent(instance, config);
+ } catch (Throwable e) {
+ if (config instanceof ConfigurationImpl) {
+ final ConfigurationImpl impl = (ConfigurationImpl) config;
+ impl.configuredObjectReference = null;
+ }
+ }
+ //XXX: must be exception
+ return null;
}
- private static Configuration configureByCurrent(Configurable instance, Configuration configuration) {
+ private static Configuration configureByCurrent(Configurable instance, Configuration configuration) throws ConfigurationException {
final AFields annotatedFields = getConfigurationAnnotatedFields(instance.getClass());
final Set<String> properties = configuration.getProperties();
if (properties.isEmpty()) {
@@ -257,13 +269,19 @@
final String settings = field.getAnnotation(ConfigurationFieldSettings.class).value();
final SettingKey settingKey = SettingKey.forSettings(settings);
- if (settingKey == SettingKey.RADIX) {
- final int radix = Integer.valueOf(settingKey.extractValueFromSettings(settings));
- value = Integer.valueOf(configuration.getProperty(property), radix);
- } else if (settingKey == SettingKey.OCTAL_STRING) {
- value = Integer.valueOf(configuration.getProperty(property), 8);
- } else {
- value = Integer.valueOf(configuration.getProperty(property));
+ try {
+ if (settingKey == SettingKey.RADIX) {
+ final int radix = Integer.valueOf(settingKey.extractValueFromSettings(settings));
+ value = Integer.valueOf(configuration.getProperty(property), radix);
+ } else if (settingKey == SettingKey.OCTAL_STRING) {
+ value = Integer.valueOf(configuration.getProperty(property), 8);
+ } else {
+ value = Integer.valueOf(configuration.getProperty(property));
+ }
+ } catch (NumberFormatException e) {
+ LOG.error(e);
+ //ignore
+ continue;
}
} else {
@@ -316,11 +334,13 @@
}
} catch (final IllegalArgumentException e) {
- LOG.error("Configuration error: " + EOL
+ final String msg = "Configuration error: " + EOL
+ " config: " + configuration.getName() + EOL
+ " property: " + property + EOL
- + " message: " + e.getMessage());
- return null; //XXX: throw configuration error
+ + " message: " + e.getMessage();
+ LOG.error(msg, e);
+ throw new ConfigurationException(msg, e);
+// return null; //XXX: throw configuration error
} catch (final IllegalAccessException e) {
LOG.error("Security error: " + e.getMessage());
Modified: trunk/eXist/src/org/exist/security/AbstractAccount.java
===================================================================
--- trunk/eXist/src/org/exist/security/AbstractAccount.java 2013-05-29 15:32:07 UTC (rev 18479)
+++ trunk/eXist/src/org/exist/security/AbstractAccount.java 2013-05-30 07:38:24 UTC (rev 18480)
@@ -70,7 +70,7 @@
super(realm, realm.collectionAccounts, id, name);
}
- protected AbstractAccount(DBBroker broker, AbstractRealm realm, int id, String name) throws ConfigurationException {
+ protected AbstractAccount(DBBroker broker, AbstractRealm realm, int id, String name) throws ConfigurationException {
super(broker, realm, realm.collectionAccounts, id, name);
}
Modified: trunk/eXist/src/org/exist/security/AbstractPrincipal.java
===================================================================
--- trunk/eXist/src/org/exist/security/AbstractPrincipal.java 2013-05-29 15:32:07 UTC (rev 18479)
+++ trunk/eXist/src/org/exist/security/AbstractPrincipal.java 2013-05-30 07:38:24 UTC (rev 18480)
@@ -99,6 +99,10 @@
this.realm = realm;
configuration = Configurator.configure(this, _config_);
+
+ if (configuration == null) {
+ throw new ConfigurationException("Configuration can't be NULL ["+_config_+"]");
+ }
this.id = configuration.getPropertyInteger("id");
this.name = configuration.getProperty("name");
Modified: trunk/eXist/src/org/exist/security/AbstractRealm.java
===================================================================
--- trunk/eXist/src/org/exist/security/AbstractRealm.java 2013-05-29 15:32:07 UTC (rev 18479)
+++ trunk/eXist/src/org/exist/security/AbstractRealm.java 2013-05-30 07:38:24 UTC (rev 18480)
@@ -42,6 +42,7 @@
import org.exist.dom.DocumentImpl;
import org.exist.security.internal.AccountImpl;
import org.exist.security.internal.GroupImpl;
+import org.exist.security.internal.SecurityManagerImpl;
import org.exist.security.realm.Realm;
import org.exist.security.utils.Utils;
import org.exist.storage.DBBroker;
@@ -177,7 +178,8 @@
final AbstractRealm r = this;
for(final Iterator<DocumentImpl> i = collectionAccounts.iterator(broker); i.hasNext(); ) {
- final Configuration conf = Configurator.parse(i.next());
+ final DocumentImpl doc = i.next();
+ final Configuration conf = Configurator.parse(doc);
final String name = conf.getProperty("name");
usersByName.modifyE(new PrincipalDbModifyE<Account, ConfigurationException>(){
@@ -185,7 +187,13 @@
public void execute(final Map<String, Account> principalDb) throws ConfigurationException {
if(name != null && !principalDb.containsKey(name)) {
//A account = instantiateAccount(this, conf);
- final Account account = new AccountImpl(r, conf);
+ final Account account;
+ try {
+ account = new AccountImpl(r, conf);
+ } catch (Throwable e) {
+ SecurityManagerImpl.LOG.error("Account object can't build up from '"+doc.getFileURI()+"'", e);
+ return;
+ }
getSecurityManager().addUser(account.getId(), account);
principalDb.put(account.getName(), account);
Modified: trunk/eXist/src/org/exist/security/internal/SecurityManagerImpl.java
===================================================================
--- trunk/eXist/src/org/exist/security/internal/SecurityManagerImpl.java 2013-05-29 15:32:07 UTC (rev 18479)
+++ trunk/eXist/src/org/exist/security/internal/SecurityManagerImpl.java 2013-05-30 07:38:24 UTC (rev 18480)
@@ -89,7 +89,7 @@
public static final String PROPERTY_PERMISSIONS_COLLECTIONS = "indexer.permissions.collection";
public static final String PROPERTY_PERMISSIONS_RESOURCES = "indexer.permissions.resource";
- private final static Logger LOG = Logger.getLogger(SecurityManager.class);
+ public final static Logger LOG = Logger.getLogger(SecurityManager.class);
private Database pool;
|
|
From: <sha...@us...> - 2013-05-29 15:32:10
|
Revision: 18479
http://sourceforge.net/p/exist/code/18479
Author: shabanovd
Date: 2013-05-29 15:32:07 +0000 (Wed, 29 May 2013)
Log Message:
-----------
[ignore] cleanup
Modified Paths:
--------------
trunk/eXist/src/org/exist/http/urlrewrite/Forward.java
Modified: trunk/eXist/src/org/exist/http/urlrewrite/Forward.java
===================================================================
--- trunk/eXist/src/org/exist/http/urlrewrite/Forward.java 2013-05-29 15:31:10 UTC (rev 18478)
+++ trunk/eXist/src/org/exist/http/urlrewrite/Forward.java 2013-05-29 15:32:07 UTC (rev 18479)
@@ -28,7 +28,6 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.apache.log4j.Logger;
import org.exist.http.servlets.HttpResponseWrapper;
import org.w3c.dom.Element;
@@ -45,7 +44,6 @@
{throw new ServletException("Failed to initialize request dispatcher to forward request to " + uri);}
setHeaders(new HttpResponseWrapper(response));
dispatcher.forward(request, response);
-
}
protected abstract RequestDispatcher getRequestDispatcher(HttpServletRequest request);
|
|
From: <sha...@us...> - 2013-05-29 15:31:13
|
Revision: 18478
http://sourceforge.net/p/exist/code/18478
Author: shabanovd
Date: 2013-05-29 15:31:10 +0000 (Wed, 29 May 2013)
Log Message:
-----------
[ignore] add 'check' xquery function for MD storage
Modified Paths:
--------------
trunk/eXist/extensions/metadata/interface/src/main/java/org/exist/storage/md/xquery/Check.java
trunk/eXist/extensions/metadata/interface/src/main/java/org/exist/storage/md/xquery/MetadataModule.java
Modified: trunk/eXist/extensions/metadata/interface/src/main/java/org/exist/storage/md/xquery/Check.java
===================================================================
--- trunk/eXist/extensions/metadata/interface/src/main/java/org/exist/storage/md/xquery/Check.java 2013-05-29 14:55:39 UTC (rev 18477)
+++ trunk/eXist/extensions/metadata/interface/src/main/java/org/exist/storage/md/xquery/Check.java 2013-05-29 15:31:10 UTC (rev 18478)
@@ -78,13 +78,14 @@
try {
db = BrokerPool.getInstance();
- broker = db.get(null);
+ broker = db.get(context.getSubject());
Collection col = broker.getCollection(XmldbURI.ROOT_COLLECTION_URI);
checkSub(broker, col);
} catch (Exception e) {
+ //e.printStackTrace();
throw new XPathException(this, e);
} finally {
if (db != null)
@@ -98,9 +99,11 @@
for (Iterator<XmldbURI> i = col.collectionIterator(broker); i.hasNext(); ) {
XmldbURI childName = i.next();
- Collection childColl = broker.getOrCreateCollection(null, XmldbURI.ROOT_COLLECTION_URI.append(childName));
+ Collection childColl = broker.getCollection(col.getURI().append(childName));
- checkSub(broker, childColl);
+ if (childColl != null) {
+ checkSub(broker, childColl);
+ }
}
MutableDocumentSet childDocs = new DefaultDocumentSet();
@@ -111,6 +114,6 @@
DocumentImpl childDoc = itChildDocs.next();
MetaData.get().addMetas(childDoc);
- }
+ }
}
}
Modified: trunk/eXist/extensions/metadata/interface/src/main/java/org/exist/storage/md/xquery/MetadataModule.java
===================================================================
--- trunk/eXist/extensions/metadata/interface/src/main/java/org/exist/storage/md/xquery/MetadataModule.java 2013-05-29 14:55:39 UTC (rev 18477)
+++ trunk/eXist/extensions/metadata/interface/src/main/java/org/exist/storage/md/xquery/MetadataModule.java 2013-05-29 15:31:10 UTC (rev 18478)
@@ -39,7 +39,8 @@
public final static String RELEASED_IN_VERSION = "eXist-2.0";
public static final FunctionDef[] functions = {
-// new FunctionDef( Check.signature, Check.class ),
+ new FunctionDef( Check.signature, Check.class ),
+
new FunctionDef( DocumentByPair.signatures[0], DocumentByPair.class ),
new FunctionDef( DocumentByUUID.signatures[0], DocumentByUUID.class ),
new FunctionDef( Keys.signatures[0], Keys.class ),
|
|
From: <sha...@us...> - 2013-05-29 14:55:43
|
Revision: 18477
http://sourceforge.net/p/exist/code/18477
Author: shabanovd
Date: 2013-05-29 14:55:39 +0000 (Wed, 29 May 2013)
Log Message:
-----------
[bugfix] ignore integer value if catch format exception
Modified Paths:
--------------
branches/pbosek/jorsek-official/eXist/src/org/exist/config/Configurator.java
Modified: branches/pbosek/jorsek-official/eXist/src/org/exist/config/Configurator.java
===================================================================
--- branches/pbosek/jorsek-official/eXist/src/org/exist/config/Configurator.java 2013-05-29 14:37:03 UTC (rev 18476)
+++ branches/pbosek/jorsek-official/eXist/src/org/exist/config/Configurator.java 2013-05-29 14:55:39 UTC (rev 18477)
@@ -269,13 +269,19 @@
final String settings = field.getAnnotation(ConfigurationFieldSettings.class).value();
final SettingKey settingKey = SettingKey.forSettings(settings);
- if (settingKey == SettingKey.RADIX) {
- final int radix = Integer.valueOf(settingKey.extractValueFromSettings(settings));
- value = Integer.valueOf(configuration.getProperty(property), radix);
- } else if (settingKey == SettingKey.OCTAL_STRING) {
- value = Integer.valueOf(configuration.getProperty(property), 8);
- } else {
- value = Integer.valueOf(configuration.getProperty(property));
+ try {
+ if (settingKey == SettingKey.RADIX) {
+ final int radix = Integer.valueOf(settingKey.extractValueFromSettings(settings));
+ value = Integer.valueOf(configuration.getProperty(property), radix);
+ } else if (settingKey == SettingKey.OCTAL_STRING) {
+ value = Integer.valueOf(configuration.getProperty(property), 8);
+ } else {
+ value = Integer.valueOf(configuration.getProperty(property));
+ }
+ } catch (NumberFormatException e) {
+ LOG.error(e);
+ //ignore
+ continue;
}
} else {
|
|
From: <sha...@us...> - 2013-05-29 14:37:06
|
Revision: 18476
http://sourceforge.net/p/exist/code/18476
Author: shabanovd
Date: 2013-05-29 14:37:03 +0000 (Wed, 29 May 2013)
Log Message:
-----------
[bugfix] prevent configuration object to be locked but was not used because of exception during configuration
Modified Paths:
--------------
branches/pbosek/jorsek-official/eXist/src/org/exist/config/Configurator.java
branches/pbosek/jorsek-official/eXist/src/org/exist/security/AbstractAccount.java
Modified: branches/pbosek/jorsek-official/eXist/src/org/exist/config/Configurator.java
===================================================================
--- branches/pbosek/jorsek-official/eXist/src/org/exist/config/Configurator.java 2013-05-29 13:26:50 UTC (rev 18475)
+++ branches/pbosek/jorsek-official/eXist/src/org/exist/config/Configurator.java 2013-05-29 14:37:03 UTC (rev 18476)
@@ -188,7 +188,9 @@
final Class<?> clazz = instance.getClass();
instance.getClass().getAnnotations();
if (!clazz.isAnnotationPresent(ConfigurationClass.class)) {
+ System.out.println("Instance '"+instance+"' don't have annotaion 'ConfigurationClass'");
return null;
+ //XXX: throw new ConfigurationException("Instance '"+instance+"' don't have annotaion 'ConfigurationClass'");
}
final String configName = clazz.getAnnotation(ConfigurationClass.class).value();
@@ -196,6 +198,7 @@
if (config == null) {
System.out.println("No configuration [" + configName + "]");
return null;
+ //XXX: throw new ConfigurationException("No configuration [" + configName + "]");
}
if (config instanceof ConfigurationImpl) {
@@ -219,10 +222,19 @@
//end (lock issue)
}
- return configureByCurrent(instance, config);
+ try {
+ return configureByCurrent(instance, config);
+ } catch (Throwable e) {
+ if (config instanceof ConfigurationImpl) {
+ final ConfigurationImpl impl = (ConfigurationImpl) config;
+ impl.configuredObjectReference = null;
+ }
+ }
+ //XXX: must be exception
+ return null;
}
- private static Configuration configureByCurrent(Configurable instance, Configuration configuration) {
+ private static Configuration configureByCurrent(Configurable instance, Configuration configuration) throws ConfigurationException {
final AFields annotatedFields = getConfigurationAnnotatedFields(instance.getClass());
final Set<String> properties = configuration.getProperties();
if (properties.isEmpty()) {
@@ -316,11 +328,13 @@
}
} catch (final IllegalArgumentException e) {
- LOG.error("Configuration error: " + EOL
+ final String msg = "Configuration error: " + EOL
+ " config: " + configuration.getName() + EOL
+ " property: " + property + EOL
- + " message: " + e.getMessage());
- return null; //XXX: throw configuration error
+ + " message: " + e.getMessage();
+ LOG.error(msg, e);
+ throw new ConfigurationException(msg, e);
+// return null; //XXX: throw configuration error
} catch (final IllegalAccessException e) {
LOG.error("Security error: " + e.getMessage());
Modified: branches/pbosek/jorsek-official/eXist/src/org/exist/security/AbstractAccount.java
===================================================================
--- branches/pbosek/jorsek-official/eXist/src/org/exist/security/AbstractAccount.java 2013-05-29 13:26:50 UTC (rev 18475)
+++ branches/pbosek/jorsek-official/eXist/src/org/exist/security/AbstractAccount.java 2013-05-29 14:37:03 UTC (rev 18476)
@@ -70,7 +70,7 @@
super(realm, realm.collectionAccounts, id, name);
}
- protected AbstractAccount(DBBroker broker, AbstractRealm realm, int id, String name) throws ConfigurationException {
+ protected AbstractAccount(DBBroker broker, AbstractRealm realm, int id, String name) throws ConfigurationException {
super(broker, realm, realm.collectionAccounts, id, name);
}
|
|
From: <sha...@us...> - 2013-05-29 13:26:53
|
Revision: 18475
http://sourceforge.net/p/exist/code/18475
Author: shabanovd
Date: 2013-05-29 13:26:50 +0000 (Wed, 29 May 2013)
Log Message:
-----------
[bugfix] avoid at startup NPE
Modified Paths:
--------------
branches/pbosek/jorsek-official/eXist/src/org/exist/security/AbstractPrincipal.java
branches/pbosek/jorsek-official/eXist/src/org/exist/security/AbstractRealm.java
branches/pbosek/jorsek-official/eXist/src/org/exist/security/internal/SecurityManagerImpl.java
Modified: branches/pbosek/jorsek-official/eXist/src/org/exist/security/AbstractPrincipal.java
===================================================================
--- branches/pbosek/jorsek-official/eXist/src/org/exist/security/AbstractPrincipal.java 2013-05-27 10:25:08 UTC (rev 18474)
+++ branches/pbosek/jorsek-official/eXist/src/org/exist/security/AbstractPrincipal.java 2013-05-29 13:26:50 UTC (rev 18475)
@@ -99,6 +99,10 @@
this.realm = realm;
configuration = Configurator.configure(this, _config_);
+
+ if (configuration == null) {
+ throw new ConfigurationException("Configuration can't be NULL ["+_config_+"]");
+ }
this.id = configuration.getPropertyInteger("id");
this.name = configuration.getProperty("name");
Modified: branches/pbosek/jorsek-official/eXist/src/org/exist/security/AbstractRealm.java
===================================================================
--- branches/pbosek/jorsek-official/eXist/src/org/exist/security/AbstractRealm.java 2013-05-27 10:25:08 UTC (rev 18474)
+++ branches/pbosek/jorsek-official/eXist/src/org/exist/security/AbstractRealm.java 2013-05-29 13:26:50 UTC (rev 18475)
@@ -42,6 +42,7 @@
import org.exist.dom.DocumentImpl;
import org.exist.security.internal.AccountImpl;
import org.exist.security.internal.GroupImpl;
+import org.exist.security.internal.SecurityManagerImpl;
import org.exist.security.realm.Realm;
import org.exist.security.utils.Utils;
import org.exist.storage.DBBroker;
@@ -177,7 +178,8 @@
final AbstractRealm r = this;
for(final Iterator<DocumentImpl> i = collectionAccounts.iterator(broker); i.hasNext(); ) {
- final Configuration conf = Configurator.parse(i.next());
+ final DocumentImpl doc = i.next();
+ final Configuration conf = Configurator.parse(doc);
final String name = conf.getProperty("name");
usersByName.modifyE(new PrincipalDbModifyE<Account, ConfigurationException>(){
@@ -185,7 +187,13 @@
public void execute(final Map<String, Account> principalDb) throws ConfigurationException {
if(name != null && !principalDb.containsKey(name)) {
//A account = instantiateAccount(this, conf);
- final Account account = new AccountImpl(r, conf);
+ final Account account;
+ try {
+ account = new AccountImpl(r, conf);
+ } catch (Throwable e) {
+ SecurityManagerImpl.LOG.error("Account object can't build up from '"+doc.getFileURI()+"'", e);
+ return;
+ }
getSecurityManager().addUser(account.getId(), account);
principalDb.put(account.getName(), account);
Modified: branches/pbosek/jorsek-official/eXist/src/org/exist/security/internal/SecurityManagerImpl.java
===================================================================
--- branches/pbosek/jorsek-official/eXist/src/org/exist/security/internal/SecurityManagerImpl.java 2013-05-27 10:25:08 UTC (rev 18474)
+++ branches/pbosek/jorsek-official/eXist/src/org/exist/security/internal/SecurityManagerImpl.java 2013-05-29 13:26:50 UTC (rev 18475)
@@ -89,7 +89,7 @@
public static final String PROPERTY_PERMISSIONS_COLLECTIONS = "indexer.permissions.collection";
public static final String PROPERTY_PERMISSIONS_RESOURCES = "indexer.permissions.resource";
- private final static Logger LOG = Logger.getLogger(SecurityManager.class);
+ public final static Logger LOG = Logger.getLogger(SecurityManager.class);
private Database pool;
|
|
From: <jen...@us...> - 2013-05-27 10:25:12
|
Revision: 18474
http://sourceforge.net/p/exist/code/18474
Author: jenspetersen
Date: 2013-05-27 10:25:08 +0000 (Mon, 27 May 2013)
Log Message:
-----------
[fundocs] adding search for function name
Modified Paths:
--------------
apps/fundocs/browse.html
apps/fundocs/collection.xconf
apps/fundocs/index.html
apps/fundocs/modules/app.xql
apps/fundocs/view.html
Modified: apps/fundocs/browse.html
===================================================================
--- apps/fundocs/browse.html 2013-05-26 18:18:26 UTC (rev 18473)
+++ apps/fundocs/browse.html 2013-05-27 10:25:08 UTC (rev 18474)
@@ -1,7 +1,8 @@
-<?xml version="1.0" encoding="UTF-8"?>
<div class="templates:surround?with=templates/page.html&at=content">
<h1>XQuery Function Documentation</h1>
- <p><a href="index.html">Back to home</a></p>
+ <p>
+ <a href="index.html">Back to Search and Browse</a>
+ </p>
<form class="form-inline">
<label class="checkbox inline">
<input class="templates:form-control" type="checkbox" name="w3c" value="true">W3C XPath functions</input>
Modified: apps/fundocs/collection.xconf
===================================================================
--- apps/fundocs/collection.xconf 2013-05-26 18:18:26 UTC (rev 18473)
+++ apps/fundocs/collection.xconf 2013-05-27 10:25:08 UTC (rev 18474)
@@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="UTF-8"?>
<collection xmlns="http://exist-db.org/collection-config/1.0">
<index xmlns:xqdoc="http://www.xqdoc.org/1.0">
<fulltext default="none" attributes="no"/>
<lucene>
</lucene>
+ <ngram qname="xqdoc:name"/>
<ngram qname="xqdoc:signature"/>
<ngram qname="xqdoc:description"/>
</index>
Modified: apps/fundocs/index.html
===================================================================
--- apps/fundocs/index.html 2013-05-26 18:18:26 UTC (rev 18473)
+++ apps/fundocs/index.html 2013-05-27 10:25:08 UTC (rev 18474)
@@ -1,4 +1,3 @@
-<?xml version="1.0" encoding="UTF-8"?>
<div class="templates:surround?with=templates/page.html&at=content">
<h1>XQuery Function Documentation</h1>
<form id="fun-query-form" name="f-query" class="form-horizontal" action="" method="POST">
@@ -7,7 +6,8 @@
<div class="controls">
<div class="input-prepend input-append">
<select name="type" class="templates:form-control">
- <option value="name">Function Signature</option>
+ <option value="name">Name</option>
+ <option value="signature">Signature</option>
<option value="desc">Description</option>
</select>
<input id="query-field" name="q" type="text" class="templates:form-control"/>
Modified: apps/fundocs/modules/app.xql
===================================================================
--- apps/fundocs/modules/app.xql 2013-05-26 18:18:26 UTC (rev 18473)
+++ apps/fundocs/modules/app.xql 2013-05-27 10:25:08 UTC (rev 18474)
@@ -31,7 +31,9 @@
$q as xs:string?, $type as xs:string) {
let $functions :=
switch( $type )
- case "name" return
+ case "name" return
+ collection($config:app-data)/xqdoc:xqdoc//xqdoc:function[ngram:contains(xqdoc:name, $q)]
+ case "signature" return
collection($config:app-data)/xqdoc:xqdoc//xqdoc:function[ngram:contains(xqdoc:signature, $q)]
case "desc" return
collection($config:app-data)/xqdoc:xqdoc//xqdoc:function[ngram:contains(xqdoc:comment/xqdoc:description, $q)]
Modified: apps/fundocs/view.html
===================================================================
--- apps/fundocs/view.html 2013-05-26 18:18:26 UTC (rev 18473)
+++ apps/fundocs/view.html 2013-05-27 10:25:08 UTC (rev 18474)
@@ -1,6 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>
<div class="templates:surround?with=templates/page.html&at=content">
<h1>XQuery Function Documentation</h1>
- <p><a href="index.html">Back to home</a></p>
+ <p>
+ <a href="index.html">Back to Search and Browse</a>
+ </p>
<div class="app:view"/>
</div>
\ No newline at end of file
|
|
From: <wol...@us...> - 2013-05-26 18:18:28
|
Revision: 18473
http://sourceforge.net/p/exist/code/18473
Author: wolfgang_m
Date: 2013-05-26 18:18:26 +0000 (Sun, 26 May 2013)
Log Message:
-----------
[fundocs] Modularize site CSS to simplify maintenance: move core design to less; load core styles and bootstrap lib from shared-resources.
Modified Paths:
--------------
apps/fundocs/resources/css/fundocs.css
apps/fundocs/templates/page.html
Removed Paths:
-------------
apps/fundocs/resources/css/bootstrap-responsive.min.css
apps/fundocs/resources/css/bootstrap.min.css
apps/fundocs/resources/css/dropdowns.css
apps/fundocs/resources/css/reset.css
apps/fundocs/resources/css/style.css
apps/fundocs/resources/images/bgmenu.gif
apps/fundocs/resources/images/bgmenuhi.gif
apps/fundocs/resources/images/body-base.gif
apps/fundocs/resources/images/body.gif
apps/fundocs/resources/images/existdb.png
apps/fundocs/resources/images/header.gif
apps/fundocs/resources/images/horizontal.gif
Modified: apps/fundocs/resources/css/fundocs.css
===================================================================
--- apps/fundocs/resources/css/fundocs.css 2013-05-26 18:09:46 UTC (rev 18472)
+++ apps/fundocs/resources/css/fundocs.css 2013-05-26 18:18:26 UTC (rev 18473)
@@ -1,3 +1,5 @@
+@import url('$shared/resources/css/exist.css');
+
#fun-query-form {
font-size: 14px;
margin: 10px 0 30px 0;
@@ -11,6 +13,10 @@
padding: 4px 8px;
}
+select[name='module'] {
+ width:50em;
+}
+
.messages {
margin: 10px;
padding: 10px;
Modified: apps/fundocs/templates/page.html
===================================================================
--- apps/fundocs/templates/page.html 2013-05-26 18:09:46 UTC (rev 18472)
+++ apps/fundocs/templates/page.html 2013-05-26 18:18:26 UTC (rev 18473)
@@ -5,7 +5,7 @@
<title class="config:app-title">App Title</title>
<meta class="config:app-meta"/>
<link rel="shortcut icon" href="resources/images/favicon.ico"/>
- <link rel="stylesheet" type="text/css" href="resources/css/exist.css"/>
+ <link rel="stylesheet" type="text/css" href="resources/css/fundocs.css"/>
</head>
<body id="grey-top" class="site:expand-links?base=http://exist-db.org/">
<div class="grey-bot">
@@ -162,7 +162,7 @@
</div>
</div>
<script type="text/javascript" src="$shared/resources/scripts/jquery/jquery-1.7.1.min.js"/>
- <script type="text/javascript" src="resources/scripts/bootstrap.min.js"/>
+ <script type="text/javascript" src="$shared/resources/scripts/bootstrap.min.js"/>
<script type="text/javascript" src="$shared/resources/scripts/ace/ace.js"/>
<script type="text/javascript" src="$shared/resources/scripts/ace/mode-javascript.js"/>
<script type="text/javascript" src="$shared/resources/scripts/ace/mode-text.js"/>
|
|
From: <wol...@us...> - 2013-05-26 18:09:48
|
Revision: 18472
http://sourceforge.net/p/exist/code/18472
Author: wolfgang_m
Date: 2013-05-26 18:09:46 +0000 (Sun, 26 May 2013)
Log Message:
-----------
[demo] Removed unused stylesheets. Add local styles.
Added Paths:
-----------
apps/demo/resources/css/demo.css
Removed Paths:
-------------
apps/demo/resources/css/dropdowns.css
apps/demo/resources/css/ie6.css
apps/demo/resources/css/ie7.css
apps/demo/resources/css/ie8.css
apps/demo/resources/css/reset.css
Added: apps/demo/resources/css/demo.css
===================================================================
--- apps/demo/resources/css/demo.css (rev 0)
+++ apps/demo/resources/css/demo.css 2013-05-26 18:09:46 UTC (rev 18472)
@@ -0,0 +1,103 @@
+@import url('$shared/resources/css/exist.css');
+
+#formWrapper form {
+ margin: 0;
+}
+
+dl {
+ margin: 10px 20px;
+}
+
+dl dd {
+ margin: 4px 20px;
+}
+
+.itemhead { background: #E0E0E0; padding-left: 8px; }
+
+.scene {
+ margin-bottom: 1em;
+}
+
+.scene .number {
+ float: right;
+}
+
+.scene h3, .scene h4 {
+ border: 0;
+ margin: 0;
+ padding: 0;
+}
+
+.scene h4 {
+ margin-left: 1em;
+}
+
+table .previous {
+ text-align: right;
+ padding-right: 1em;
+}
+
+table .following {
+ padding-left: 1em;
+}
+
+#collection-tree ul li, #collection-tree ul li ul li {
+ list-style-type: none;
+}
+
+.source .toolbar, .example-output {
+ padding-left: 18px;
+ border-left: 4px solid #C7C7C7;
+}
+
+.output {
+ margin: 8px 0;
+ max-height: 500px;
+ overflow: auto;
+}
+
+.output .code {
+ max-height: 200px;
+ overflow: auto;
+ background: #ffffff;
+ padding: 0 8px;
+}
+
+.testresult td {
+ margin: 2px 4px;
+ padding: 8px 10px;
+}
+
+.testresult .fail {
+ background-color: #D7394C;
+ color: white;
+}
+
+.testresult .pass {
+ background-color: #69EB7F;
+}
+
+.addresses {
+ width: 100%;
+ margin: 10px 0;
+ border-top: 1px solid #777;
+ border-bottom: 1px solid #777;
+ padding: 10px 0;
+}
+
+.addresses th {
+ font-weight: bold;
+}
+
+.search {
+ margin-bottom: 4px;
+}
+
+.switch-endpoints td {
+ padding-right: 1em;
+}
+
+.load-indicator {
+ margin-left: 30px;
+ display: none;
+}
\ No newline at end of file
|
|
From: <wol...@us...> - 2013-05-26 18:01:59
|
Revision: 18471
http://sourceforge.net/p/exist/code/18471
Author: wolfgang_m
Date: 2013-05-26 18:01:56 +0000 (Sun, 26 May 2013)
Log Message:
-----------
[demo] Modularize site CSS to simplify maintenance: move core design to less; load core styles and bootstrap lib from shared-resources.
Modified Paths:
--------------
apps/demo/examples/xforms/demo.html
apps/demo/templates/page.html
Removed Paths:
-------------
apps/demo/resources/css/bootstrap-responsive.min.css
apps/demo/resources/css/bootstrap.min.css
apps/demo/resources/css/exist.css
apps/demo/resources/images/bgmenu.gif
apps/demo/resources/images/bgmenuhi.gif
apps/demo/resources/images/body-base.gif
apps/demo/resources/images/body.gif
apps/demo/resources/images/existdb.png
apps/demo/resources/images/header.gif
apps/demo/resources/images/horizontal.gif
Modified: apps/demo/examples/xforms/demo.html
===================================================================
--- apps/demo/examples/xforms/demo.html 2013-05-26 17:52:36 UTC (rev 18470)
+++ apps/demo/examples/xforms/demo.html 2013-05-26 18:01:56 UTC (rev 18471)
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<div xmlns="http://www.w3.org/1999/xhtml" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xf="http://www.w3.org/2002/xforms" data-template="templates:surround" data-template-with="templates/page.html" data-template-at="main" data-template-options="noscript=yes">
+<div xmlns="http://www.w3.org/1999/xhtml" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xf="http://www.w3.org/2002/xforms" data-template="templates:surround" data-template-with="templates/page.html" data-template-at="content" data-template-options="noscript=yes">
<xf:model>
<xf:instance xmlns="" id="all">
<addresses/>
Modified: apps/demo/templates/page.html
===================================================================
--- apps/demo/templates/page.html 2013-05-26 17:52:36 UTC (rev 18470)
+++ apps/demo/templates/page.html 2013-05-26 18:01:56 UTC (rev 18471)
@@ -4,9 +4,9 @@
<title class="config:app-title">App Title</title>
<meta class="config:app-meta"/>
<link rel="shortcut icon" href="resources/images/favicon.ico"/>
- <link rel="stylesheet" type="text/css" href="resources/css/exist.css"/>
+ <link rel="stylesheet" type="text/css" href="resources/css/demo.css"/>
<script type="text/javascript" src="$shared/resources/scripts/jquery/jquery-1.7.1.min.js"/>
- <script type="text/javascript" src="resources/scripts/bootstrap.min.js"/>
+ <script type="text/javascript" src="$shared/resources/scripts/bootstrap.min.js"/>
<script type="text/javascript" src="$shared/resources/scripts/jquery/jquery.scrollExtend.min.js"/>
</head>
<body id="grey-top" class="site:expand-links?base=http://exist-db.org/">
@@ -133,8 +133,8 @@
</div>
</div>
</div>
- <div class="container" id="main">
- <div class="row" id="container-body">
+ <div class="container-fluid" id="main">
+ <div class="row-fluid" id="container-body">
<div class="span12" id="content"/>
</div>
</div>
@@ -178,4 +178,4 @@
<script type="text/javascript" src="resources/scripts/demo.js"/>
</div>
</body>
-</html>
\ No newline at end of file
+</html>
|
|
From: <wol...@us...> - 2013-05-26 17:52:39
|
Revision: 18470
http://sourceforge.net/p/exist/code/18470
Author: wolfgang_m
Date: 2013-05-26 17:52:36 +0000 (Sun, 26 May 2013)
Log Message:
-----------
[documentation] Modularize site CSS to simplify maintenance: move core design to less; load core styles and bootstrap lib from shared-resources.
Modified Paths:
--------------
apps/doc/templates/page.html
Removed Paths:
-------------
apps/doc/resources/css/bootstrap-responsive.min.css
apps/doc/resources/css/bootstrap.min.css
apps/doc/resources/css/exist.css
apps/doc/resources/images/bgmenu.gif
apps/doc/resources/images/bgmenuhi.gif
apps/doc/resources/images/body-base.gif
apps/doc/resources/images/body.gif
apps/doc/resources/images/existdb.png
apps/doc/resources/images/header.gif
apps/doc/resources/images/horizontal.gif
apps/doc/resources/scripts/bootstrap.min.js
Modified: apps/doc/templates/page.html
===================================================================
--- apps/doc/templates/page.html 2013-05-26 10:08:09 UTC (rev 18469)
+++ apps/doc/templates/page.html 2013-05-26 17:52:36 UTC (rev 18470)
@@ -5,7 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<meta data-template="config:app-meta"/>
<link rel="shortcut icon" href="resources/images/favicon.ico"/>
- <link rel="stylesheet" type="text/css" href="resources/css/exist.css"/>
+ <link rel="stylesheet" type="text/css" href="$shared/resources/css/exist.css"/>
<link rel="stylesheet" type="text/css" href="resources/css/doc.css"/>
</head>
<body id="grey-top" class="site:expand-links?base=http://exist-db.org/">
@@ -162,7 +162,7 @@
</div>
</div>
<script type="text/javascript" src="$shared/resources/scripts/jquery/jquery-1.7.1.min.js"/>
- <script type="text/javascript" src="resources/scripts/bootstrap.min.js"/>
+ <script type="text/javascript" src="$shared/resources/scripts/bootstrap.min.js"/>
<script type="text/javascript" src="$shared/resources/scripts/ace/ace.js"/>
<script type="text/javascript" src="$shared/resources/scripts/ace/mode-javascript.js"/>
<script type="text/javascript" src="$shared/resources/scripts/ace/mode-text.js"/>
|
|
From: <wol...@us...> - 2013-05-26 10:08:12
|
Revision: 18469
http://sourceforge.net/p/exist/code/18469
Author: wolfgang_m
Date: 2013-05-26 10:08:09 +0000 (Sun, 26 May 2013)
Log Message:
-----------
[ignore] Improve error reporting for undeclared namespaces.
Modified Paths:
--------------
trunk/eXist/src/org/exist/xquery/parser/XQueryLexer.smap
trunk/eXist/src/org/exist/xquery/parser/XQueryParser.smap
trunk/eXist/src/org/exist/xquery/parser/XQueryTree.g
trunk/eXist/src/org/exist/xquery/parser/XQueryTreeParser.java
trunk/eXist/src/org/exist/xquery/parser/XQueryTreeParser.smap
Modified: trunk/eXist/src/org/exist/xquery/parser/XQueryLexer.smap
===================================================================
--- trunk/eXist/src/org/exist/xquery/parser/XQueryLexer.smap 2013-05-24 17:26:44 UTC (rev 18468)
+++ trunk/eXist/src/org/exist/xquery/parser/XQueryLexer.smap 2013-05-26 10:08:09 UTC (rev 18469)
@@ -27,3564 +27,3564 @@
22:21
22:22
22:23
-1918:55
-1919:56
-1920:57
-1921:58
-1922:59
-1923:60
-1924:61
-1925:62
-1926:63
-1928:65
-1929:66
-1930:67
-1931:68
-1933:70
-1934:71
-1935:72
-1936:73
-1937:74
-1939:76
-1940:77
-1941:78
-1942:79
-1943:80
-1944:81
-1945:82
-1946:83
-1949:248
-1949:249
-1949:250
-1949:251
-1949:253
-1949:254
-1949:255
-1949:256
-1949:257
-1949:258
-1949:259
-1950:261
-1950:262
-1950:263
-1950:264
-1950:266
-1950:267
-1950:268
-1950:269
-1950:270
-1950:271
-1950:272
-1950:273
-1951:275
-1951:276
-1951:277
-1951:278
-1951:280
-1951:281
-1951:282
-1951:283
-1951:284
-1951:285
-1951:286
-1952:288
-1952:289
-1952:290
-1952:291
-1952:293
-1952:294
-1952:295
-1952:296
-1952:297
-1952:298
-1952:299
-1953:301
-1953:302
-1953:303
-1953:304
-1953:306
-1953:307
-1953:308
-1953:309
-1953:310
-1953:311
-1953:312
-1954:314
-1954:315
-1954:316
-1954:317
-1954:319
-1954:320
-1954:321
-1954:322
-1954:323
-1954:324
-1954:325
-1955:327
-1955:328
-1955:329
-1955:330
-1955:332
-1955:333
-1955:334
-1955:335
-1955:336
-1955:337
-1955:338
-1956:340
-1956:341
-1956:342
-1956:343
-1956:345
-1956:346
-1956:347
-1956:348
-1956:349
-1956:350
-1956:351
-1957:353
-1957:354
-1957:355
-1957:356
-1957:358
-1957:359
-1957:360
-1957:361
-1957:362
-1957:363
-1957:364
-1958:366
-1958:367
-1958:368
-1958:369
-1958:371
-1958:372
-1958:373
-1958:374
-1958:375
-1958:376
-1958:377
-1959:379
-1959:380
-1959:381
-1959:382
-1959:384
-1959:385
-1959:386
-1959:387
-1959:388
-1959:389
-1959:390
-1960:392
-1960:393
-1960:394
-1960:395
-1960:397
-1960:398
-1960:399
-1960:400
-1960:401
-1960:402
-1960:403
-1961:405
-1961:406
-1961:407
-1961:408
-1961:410
-1961:411
-1961:412
-1961:413
-1961:414
-1961:415
-1961:416
-1962:418
-1962:419
-1962:420
-1962:421
-1962:423
-1962:424
-1962:425
-1962:426
-1962:427
-1962:428
-1962:429
-1963:431
-1963:432
-1963:433
-1963:434
-1963:436
-1963:437
-1963:438
-1963:439
-1963:440
-1963:441
-1963:442
-1964:444
-1964:445
-1964:446
-1964:447
-1964:449
-1964:450
-1964:451
-1964:452
-1964:453
-1964:454
-1964:455
-1965:457
-1965:458
-1965:459
-1965:460
-1965:462
-1965:463
-1965:464
-1965:465
-1965:466
-1965:467
-1965:468
-1966:470
-1966:471
-1966:472
-1966:473
-1966:475
-1966:476
-1966:477
-1966:478
-1966:479
-1966:480
-1966:481
-1967:483
-1967:484
-1967:485
-1967:486
-1967:488
-1967:489
-1967:490
-1967:491
-1967:492
-1967:493
-1967:494
-1968:496
-1968:497
-1968:498
-1968:499
-1968:501
-1968:502
-1968:503
-1968:504
-1968:505
-1968:506
-1968:507
-1968:508
-1969:510
-1969:511
-1969:512
-1969:513
-1969:515
-1969:516
-1969:517
-1969:518
-1969:519
-1969:520
-1969:521
-1970:523
-1970:524
-1970:525
-1970:526
-1970:528
-1970:529
-1970:530
-1970:531
-1970:532
-1970:533
-1970:534
-1971:536
-1971:537
-1971:538
-1971:539
-1971:541
-1971:542
-1971:543
-1971:544
-1971:545
-1971:546
-1971:547
-1972:549
-1972:550
-1972:551
-1972:552
-1972:554
-1972:555
-1972:556
-1972:557
-1972:558
-1972:559
-1972:560
-1973:562
-1973:563
-1973:564
-1973:565
-1973:567
-1973:568
-1973:569
-1973:570
-1973:571
-1973:572
-1973:573
-1974:575
-1974:576
-1974:577
-1974:578
-1974:580
-1974:581
-1974:582
-1974:583
-1974:584
-1974:585
-1974:586
-1975:588
-1975:589
-1975:590
-1975:591
-1975:593
-1975:594
-1975:595
-1975:596
-1975:597
-1975:598
-1975:599
-1976:601
-1976:602
-1976:603
-1976:604
-1976:606
-1976:607
-1976:608
-1976:609
-1976:610
-1976:611
-1976:612
-1977:614
-1977:615
-1977:616
-1977:617
-1977:619
-1977:620
-1977:621
-1977:622
-1977:623
-1977:624
-1977:625
-1978:627
-1978:628
-1978:629
-1978:630
-1978:632
-1978:633
-1978:634
-1978:635
-1978:636
-1978:637
-1978:638
-1980:640
-1980:641
-1980:642
-1980:643
-1980:645
-1980:646
-1980:647
-1980:648
-1980:649
-1980:650
-1980:651
-1981:653
-1981:654
-1981:655
-1981:656
-1981:658
-1981:659
-1981:660
-1981:661
-1981:662
-1981:663
-1981:664
-1983:666
-1983:667
-1983:668
-1983:669
-1983:671
-1983:672
-1983:673
-1983:674
-1983:675
-1983:676
-1983:677
-1985:679
-1985:680
-1985:681
-1985:682
-1985:685
-1985:686
-1985:687
-1985:688
-1985:689
-1985:690
-1986:684
-1988:692
-1988:693
-1988:694
-1988:695
-1988:697
-1988:698
-1988:699
-1988:700
-1988:701
-1988:702
-1988:703
-1989:705
-1989:706
-1989:707
-1989:708
-1989:710
-1989:711
-1989:712
-1989:713
-1989:714
-1989:715
-1989:716
-1991:718
-1991:719
-1991:720
-1991:721
-1991:723
-1991:724
-1991:725
-1991:726
-1991:727
-1991:728
-1991:729
-1992:731
-1992:732
-1992:733
-1992:734
-1992:736
-1992:737
-1992:738
-1992:739
-1992:740
-1992:741
-1992:742
-1993:744
-1993:745
-1993:746
-1993:747
-1993:749
-1993:750
-1993:751
-1993:752
-1993:753
-1993:754
-1993:755
-1994:757
-1994:758
-1994:759
-1994:760
-1994:762
-1994:763
-1994:764
-1994:765
-1994:766
-1994:767
-1994:768
-1995:770
-1995:771
-1995:772
-1995:773
-1995:775
-1995:776
-1995:777
-1995:778
-1995:779
-1995:780
-1995:781
-1997:783
-1997:784
-1997:785
-1997:786
-1997:800
-1997:801
-1997:802
-1997:803
-1997:804
-1997:805
-1999:789
-1999:790
-1999:791
-1999:792
-1999:793
-1999:794
-1999:795
-1999:796
-1999:797
-2002:2328
-2002:2329
-2002:2330
-2002:2331
-2002:2347
-2002:2348
-2002:2349
-2002:2350
-2002:2351
-2002:2352
-2004:2334
-2004:2335
-2004:2336
-2004:2337
-2004:2338
-2004:2339
-2004:2340
-2004:2341
-2004:2342
-2004:2344
-2004:2345
-2004:2346
-2007:2479
-2007:2480
-2007:2481
-2007:2482
-2007:2516
-2007:2517
-2007:2518
-2007:2519
-2007:2520
-2007:2521
-2009:2485
-2009:2486
-2009:2487
-2009:2488
-2009:2489
-2009:2490
-2009:2491
-2009:2492
-2009:2493
-2009:2496
-2009:2497
-2009:2498
-2009:2499
-2009:2502
-2009:2503
-2009:2504
-2009:2505
-2009:2508
-2009:2509
-2009:2510
-2009:2511
-2009:2512
-2009:2513
-2009:2514
-2009:2515
-2012:2523
-2012:2524
-2012:2525
-2012:2526
-2012:2540
-2012:2541
-2012:2542
-2012:2543
-2012:2544
-2012:2545
-2014:2529
-2014:2530
-2014:2531
-2014:2532
-2014:2533
-2014:2534
-2014:2535
-2014:2536
-2014:2537
-2017:2547
-2017:2548
-2017:2549
-2017:2550
-2017:2593
-2017:2594
-2017:2595
-2017:2596
-2017:2597
-2017:2598
-2019:2553
-2019:2554
-2019:2555
-2019:2556
-2019:2559
-2019:2560
-2019:2561
-2019:2564
-2019:2565
-2019:2566
-2019:2569
-2019:2570
-2019:2571
-2019:2572
-2019:2573
-2019:2574
-2019:2575
-2019:2578
-2019:2579
-2019:2580
-2019:2581
-2019:2582
-2019:2583
-2019:2584
-2019:2585
-2019:2586
-2019:2587
-2019:2588
-2019:2589
-2019:2590
-2019:2591
-2022:3230
-2022:3231
-2022:3232
-2022:3233
-2022:3248
-2022:3249
-2022:3250
-2022:3251
-2022:3252
-2022:3253
-2022:3254
-2028:3235
-2028:3236
-2028:3237
-2028:3238
-2028:3239
-2028:3240
-2028:3241
-2028:3242
-2028:3243
-2028:3244
-2028:3246
-2028:3247
-2031:3256
-2031:3257
-2031:3258
-2031:3259
-2031:3287
-2031:3288
-2031:3289
-2031:3290
-2031:3291
-2031:3292
-2033:3262
-2033:3263
-2033:3264
-2033:3267
-2033:3270
-2033:3276
-2033:3279
-2033:3280
-2033:3281
-2033:3282
-2033:3284
-2033:3285
-2033:3286
-2035:3265
-2035:3266
-2037:3268
-2037:3269
-2039:3271
-2039:3272
-2039:3273
-2039:3274
-2041:3277
-2041:3278
-2045:3294
-2045:3295
-2045:3296
-2045:3297
-2045:3326
-2045:3327
-2045:3328
-2045:3329
-2045:3330
-2045:3331
-2051:3299
-2051:3300
-2051:3301
-2051:3302
-2051:3303
-2051:3304
-2051:3305
-2051:3307
-2051:3308
-2051:3309
-2051:3310
-2051:3311
-2051:3312
-2051:3313
-2051:3314
-2051:3315
-2051:3318
-2051:3319
-2051:3320
-2051:3321
-2051:3323
-2051:3324
-2051:3325
-2054:3333
-2054:3334
-2054:3335
-2054:3336
-2054:3365
-2054:3366
-2054:3367
-2054:3368
-2054:3369
-2054:3370
-2060:3338
-2060:3339
-2060:3340
-2060:3341
-2060:3342
-2060:3343
-2060:3344
-2060:3346
-2060:3347
-2060:3348
-2060:3349
-2060:3350
-2060:3351
-2060:3352
-2060:3353
-2060:3354
-2060:3357
-2060:3358
-2060:3359
-2060:3360
-2060:3362
-2060:3363
-2060:3364
-2063:3372
-2063:3373
-2063:3374
-2063:3375
-2063:3377
-2063:3378
-2063:3380
-2063:3381
-2063:3382
-2063:3383
-2063:3384
-2063:3385
-2064:3379
-2066:3387
-2066:3388
-2066:3389
-2066:3390
-2066:3392
-2066:3393
-2066:3479
-2066:3480
-2066:3481
-2066:3482
-2066:3483
-2066:3484
-2069:3395
-2069:3397
-2069:3398
-2069:3400
-2069:3401
-2069:3403
-2069:3405
-2069:3406
-2069:3407
-2069:3408
-2069:3409
-2069:3410
-2069:3411
-2069:3412
-2069:3413
-2069:3414
-2069:3415
-2069:3416
-2069:3417
-2069:3419
-2069:3420
-2069:3427
-2069:3428
-2069:3429
-2069:3430
-2069:3431
-2069:3434
-2069:3435
-2069:3436
-2069:3437
-2069:3441
-2069:3442
-2069:3443
-2069:3444
-2069:3447
-2069:3448
-2069:3449
-2069:3452
-2069:3453
-2069:3454
-2069:3455
-2069:3456
-2069:3459
-2069:3460
-2069:3461
-2069:3462
-2069:3465
-2069:3466
-2069:3467
-2069:3470
-2069:3472
-2069:3473
-2069:3474
-2069:3475
-2069:3476
-2069:3478
-2072:3486
-2072:3487
-2072:3488
-2072:3489
-2072:3496
-2072:3521
-2072:3522
-2072:3523
-2072:3524
-2072:3526
-2072:3527
-2072:3528
-2072:3529
-2072:3530
-2072:3531
-2075:3491
-2075:3493
-2075:3494
-2075:3497
-2075:3499
-2075:3501
-2075:3502
-2075:3503
-2075:3504
-2075:3505
-2075:3506
-2075:3507
-2075:3508
-2075:3509
-2075:3510
-2075:3511
-2075:3513
-2075:3514
-2075:3515
-2075:3517
-2078:3533
-2078:3534
-2078:3535
-2078:3536
-2078:3569
-2078:3570
-2078:3571
-2078:3572
-2078:3573
-2078:3574
-2080:3538
-2080:3540
-2080:3541
-2080:3542
-2080:3543
-2080:3546
-2080:3547
-2080:3548
-2080:3551
-2080:3552
-2080:3553
-2080:3556
-2080:3557
-2080:3558
-2080:3559
-2080:3560
-2080:3561
-2080:3562
-2080:3563
-2080:3564
-2080:3565
-2080:3566
-2080:3568
-2083:3576
-2083:3577
-2083:3578
-2083:3579
-2083:3599
-2083:3600
-2083:3601
-2083:3602
-2083:3603
-2083:3604
-2085:3581
-2085:3582
-2085:3584
-2085:3585
-2085:3586
-2085:3587
-2085:3589
-2085:3590
-2085:3592
-2085:3593
-2085:3594
-2085:3595
-2085:3598
-2088:3606
-2088:3607
-2088:3608
-2088:3609
-2088:3611
-2088:3688
-2088:3689
-2088:3690
-2088:3691
-2088:3692
-2088:3693
-2088:3694
-2088:3695
-2088:3696
-2088:3697
-2088:3698
-2094:3612
-2094:3613
-2094:3614
-2094:3615
-2094:3616
-2094:3617
-2094:3618
-2094:3619
-2094:3620
-2094:3621
-2094:3622
-2094:3623
-2094:3624
-2094:3625
-2094:3626
-2094:3628
-2094:3629
-2094:3630
-2094:3631
-2094:3633
-2094:3634
-2094:3636
-2094:3638
-2094:3639
-2094:3640
-2094:3641
-2094:3643
-2094:3644
-2095:3645
-2095:3646
-2095:3647
-2097:3650
-2097:3651
-2097:3652
-2097:3653
-2097:3654
-2097:3655
-2097:3656
-2097:3657
-2097:3658
-2097:3659
-2097:3660
-2097:3661
-2097:3662
-2097:3663
-2097:3664
-2097:3666
-2097:3667
-2097:3668
-2097:3669
-2097:3671
-2097:3672
-2097:3674
-2097:3676
-2097:3677
-2097:3678
-2097:3679
-2097:3681
-2097:3682
-2098:3683
-2098:3684
-2098:3685
-2101:3700
-2101:3701
-2101:3702
-2101:3703
-2101:3721
-2101:3722
-2101:3723
-2101:3724
-2101:3725
-2101:3726
-2106:3706
-2106:3707
-2106:3708
-2106:3709
-2106:3711
-2106:3713
-2106:3714
-2106:3715
-2106:3716
-2106:3718
-2106:3719
-2106:3720
-2115:3728
-2115:3734
-2115:3735
-2115:3736
-2115:3737
-2115:3755
-2115:3756
-2115:3757
-2115:3758
-2115:3759
-2115:3760
-2116:3729
-2117:3730
-2118:3731
-2119:3732
-2120:3733
-2120:3740
-2120:3741
-2120:3742
-2120:3743
-2120:3745
-2120:3747
-2120:3748
-2120:3749
-2120:3750
-2120:3752
-2120:3753
-2120:3754
-2123:3762
-2123:3763
-2123:3764
-2123:3765
-2123:3769
-2123:3770
-2123:3771
-2123:3772
-2123:3773
-2123:3774
-2125:3767
-2125:3768
-2128:3776
-2128:3777
-2128:3778
-2128:3779
-2128:3783
-2128:3784
-2128:3785
-2128:3786
-2128:3787
-2128:3788
-2130:3781
-2130:3782
-2139:3790
-2139:3796
-2139:3797
-2139:3798
-2139:3799
-2139:3871
-2139:3872
-2139:3873
-2139:3874
-2139:3875
-2139:3876
-2140:3791
-2141:3792
-2141:3802
-2141:3803
-2141:3804
-2141:3805
-2141:3806
-2141:3807
-2141:3808
-2141:3811
-2141:3812
-2141:3813
-2141:3816
-2141:3817
-2141:3818
-2141:3819
-2141:3820
-2141:3824
-2141:3825
-2141:3826
-2141:3827
-2141:3828
-2141:3829
-2141:3830
-2141:3831
-2141:3832
-2141:3835
-2141:3836
-2141:3837
-2141:3838
-2141:3839
-2141:3840
-2141:3841
-2141:3842
-2141:3843
-2141:3844
-2141:3845
-2141:3846
-2141:3847
-2141:3848
-2141:3849
-2141:3850
-2141:3851
-2141:3852
-2141:3855
-2141:3856
-2141:3857
-2141:3860
-2141:3861
-2141:3862
-2141:3863
-2141:3864
-2141:3865
-2141:3866
-2141:3867
-2141:3868
-2141:3869
-2141:3870
-2142:3793
-2143:3794
-2144:3795
-2144:3878
-2144:3879
-2144:3880
-2144:3881
-2144:3923
-2144:3924
-2144:3925
-2144:3926
-2144:3927
-2144:3928
-2150:3883
-2150:3884
-2150:3885
-2150:3886
-2150:3887
-2150:3888
-2150:3889
-2150:3891
-2150:3893
-2150:3894
-2150:3895
-2150:3896
-2150:3897
-2150:3898
-2150:3899
-2150:3900
-2150:3902
-2150:3904
-2150:3907
-2150:3908
-2150:3909
-2150:3910
-2150:3911
-2150:3912
-2150:3913
-2150:3914
-2150:3915
-2150:3916
-2150:3917
-2150:3918
-2150:3919
-2150:3920
-2150:3921
-2150:3922
-2153:3930
-2153:3931
-2153:3932
-2153:3933
-2153:3984
-2153:3985
-2153:3986
-2153:3987
-2153:3988
-2153:3989
-2159:3935
-2159:3936
-2159:3937
-2159:3938
-2159:3940
-2159:3941
-2159:3942
-2159:3943
-2159:3944
-2159:3945
-2159:3947
-2159:3949
-2159:3950
-2159:3951
-2159:3952
-2159:3953
-2159:3954
-2159:3955
-2159:3956
-2159:3958
-2159:3960
-2159:3963
-2159:3964
-2159:3965
-2159:3966
-2159:3967
-2159:3968
-2159:3969
-2159:3970
-2159:3971
-2159:3972
-2159:3973
-2159:3974
-2159:3975
-2159:3976
-2159:3977
-2159:3978
-2159:3979
-2159:3981
-2162:3991
-2162:3992
-2162:3993
-2162:3994
-2162:4065
-2162:4066
-2162:4067
-2162:4068
-2162:4069
-2162:4070
-2167:3996
-2167:3997
-2167:3998
-2168:3999
-2168:4000
-2168:4001
-2168:4002
-2168:4003
-2168:4004
-2168:4005
-2168:4006
-2168:4007
-2168:4009
-2168:4011
-2168:4014
-2168:4015
-2168:4016
-2168:4017
-2168:4018
-2168:4019
-2168:4020
-2168:4021
-2168:4022
-2168:4023
-2168:4024
-2168:4025
-2168:4026
-2168:4027
-2168:4028
-2168:4029
-2168:4030
-2168:4032
-2168:4033
-2168:4035
-2168:4038
-2168:4039
-2168:4040
-2168:4041
-2168:4042
-2168:4043
-2168:4044
-2168:4045
-2168:4047
-2168:4048
-2168:4050
-2168:4051
-2168:4053
-2168:4055
-2168:4056
-2168:4057
-2168:4058
-2168:4059
-2168:4060
-2168:4061
-2169:4062
-2169:4063
-2169:4064
-2172:4072
-2172:4073
-2172:4074
-2172:4075
-2172:4078
-2172:4079
-2172:4080
-2172:4081
-2172:4083
-2172:4084
-2172:4085
-2172:4086
-2172:4089
-2172:4090
-2172:4091
-2172:4094
-2172:4095
-2172:4096
-2172:4099
-2172:4100
-2172:4101
-2172:4104
-2172:4105
-2172:4106
-2172:4107
-2172:4108
-2172:4110
-2172:4111
-2172:4112
-2172:4113
-2172:4115
-2172:4116
-2172:4117
-2172:4118
-2172:4119
-2172:4120
-2172:4121
-2172:4122
-2172:4123
-2175:4125
-2175:4126
-2175:4127
-2175:4128
-2175:4142
-2175:4143
-2175:4144
-2175:4145
-2175:4146
-2175:4147
-2176:4130
-2176:4132
-2176:4133
-2176:4134
-2176:4136
-2177:4139
-2177:4140
-2179:4149
-2179:4150
-2179:4151
-2179:4152
-2179:4190
-2179:4191
-2179:4192
-2179:4193
-2179:4194
-2179:4195
-2184:4155
-2184:4181
-2184:4182
-2184:4183
-2184:4184
-2184:4185
-2185:4156
-2185:4157
-2185:4158
-2185:4159
-2185:4160
-2186:4161
-2186:4162
-2186:4163
-2186:4164
-2186:4165
-2186:4166
-2186:4167
-2186:4168
-2186:4169
-2186:4170
-2186:4171
-2186:4173
-2186:4174
-2188:4187
-2188:4188
-2188:4189
-2196:4197
-2196:4202
-2196:4203
-2196:4204
-2196:4205
-2196:4208
-2196:4229
-2196:4260
-2196:4273
-2196:4283
-2196:4289
-2196:4331
-2196:4400
-2196:4406
-2196:4412
-2196:4435
-2196:4445
-2196:4451
-2196:4457
-2196:4463
-2196:4469
-2196:4475
-2196:4499
-2196:4523
-2196:4529
-2196:4535
-2196:4541
-2196:4547
-2196:4553
-2196:4559
-2196:4567
-2196:4577
-2196:4586
-2196:4592
-2196:4598
-2196:4604
-2196:4610
-2196:4616
-2196:4628
-2196:4635
-2196:4641
-2196:4665
-2196:4688
-2196:4712
-2196:4718
-2196:4724
-2196:4730
-2196:4736
-2196:4742
-2196:4748
-2196:4754
-2196:4760
-2196:4766
-2196:4772
-2196:4778
-2196:4784
-2196:4790
-2196:4796
-2196:4802
-2196:4808
-2196:4814
-2196:4820
-2196:4826
-2196:4832
-2196:4833
-2196:4834
-2196:4835
-2196:4836
-2196:4837
-2196:4838
-2196:4839
-2196:4840
-2196:4841
-2196:4842
-2197:4198
-2198:4199
-2199:4200
-2200:4201
-2201:4274
-2201:4275
-2202:4276
-2203:4278
-2204:4279
-2205:4280
-2208:4413
-2208:4414
-2208:4415
-2208:4416
-2208:4417
-2208:4418
-2208:4419
-2208:4421
-2208:4423
-2208:4424
-2208:4425
-2208:4426
-2208:4427
-2208:4428
-2208:4429
-2208:4430
-2209:4431
-2209:4432
-2209:4433
-2211:4284
-2211:4285
-2211:4286
-2211:4287
-2213:4436
-2213:4437
-2214:4438
-2215:4440
-2216:4441
-2217:4442
-2220:4446
-2220:4447
-2220:4448
-2220:4449
-2222:4578
-2222:4579
-2223:4580
-2224:4582
-2225:4583
-2228:4452
-2228:4453
-2228:4454
-2228:4455
-2230:4209
-2230:4210
-2230:4211
-2231:4212
-2232:4214
-2233:4215
-2234:4216
-2237:4221
-2237:4222
-2237:4223
-2237:4224
-2237:4225
-2240:4458
-2240:4459
-2240:4460
-2240:4461
-2243:4464
-2243:4465
-2243:4466
-2243:4467
-2246:4587
-2246:4588
-2247:4589
-2247:4590
-2250:4593
-2250:4594
-2251:4595
-2251:4596
-2254:4599
-2254:4600
-2254:4601
-2254:4602
-2257:4605
-2257:4606
-2257:4607
-2257:4608
-2260:4611
-2260:4612
-2261:4613
-2261:4614
-2264:4617
-2264:4618
-2265:4619
-2266:4621
-2267:4622
-2268:4623
-2269:4624
-2270:4625
-2273:4230
-2273:4231
-2273:4232
-2273:4233
-2273:4234
-2273:4235
-2273:4237
-2273:4238
-2273:4239
-2273:4241
-2273:4242
-2273:4243
-2273:4244
-2273:4245
-2273:4246
-2273:4247
-2273:4248
-2273:4249
-2274:4250
-2275:4252
-2276:4253
-2277:4254
-2278:4255
-2279:4256
-2280:4257
-2283:4261
-2283:4262
-2284:4263
-2285:4265
-2286:4266
-2287:4267
-2288:4268
-2289:4269
-2290:4270
-2293:4206
-2293:4629
-2293:4630
-2293:4631
-2293:4632
-2293:4633
-2296:4470
-2296:4471
-2296:4472
-2296:4473
-2298:4476
-2298:4477
-2298:4478
-2298:4479
-2298:4480
-2298:4481
-2298:4482
-2298:4484
-2298:4485
-2298:4487
-2298:4488
-2298:4489
-2298:4490
-2298:4491
-2298:4492
-2298:4493
-2298:4494
-2299:4495
-2299:4496
-2299:4497
-2301:4636
-2301:4637
-2301:4638
-2301:4639
-2303:4500
-2303:4501
-2303:4502
-2303:4503
-2303:4504
-2303:4505
-2303:4506
-2303:4508
-2303:4509
-2303:4511
-2303:4512
-2303:4513
-2303:4514
-2303:4515
-2303:4516
-2303:4517
-2303:4518
-2305:4519
-2305:4520
-2305:4521
-2307:4290
-2307:4291
-2307:4292
-2307:4293
-2307:4294
-2307:4295
-2307:4296
-2307:4298
-2307:4299
-2307:4301
-2307:4302
-2307:4303
-2307:4304
-2307:4307
-2307:4308
-2307:4309
-2307:4312
-2307:4313
-2307:4314
-2307:4315
-2307:4316
-2307:4319
-2307:4320
-2307:4321
-2307:4322
-2307:4323
-2307:4324
-2307:4325
-2307:4326
-2308:4327
-2308:4328
-2308:4329
-2310:4642
-2310:4643
-2310:4644
-2310:4645
-2310:4646
-2310:4647
-2310:4648
-2310:4650
-2310:4651
-2310:4653
-2310:4654
-2310:4655
-2310:4656
-2310:4657
-2310:4658
-2310:4659
-2310:4660
-2311:4661
-2311:4662
-2311:4663
-2313:4666
-2313:4667
-2313:4668
-2313:4669
-2313:4670
-2313:4671
-2313:4672
-2313:4674
-2313:4676
-2313:4677
-2313:4678
-2313:4679
-2313:4680
-2313:4681
-2313:4682
-2313:4683
-2314:4684
-2314:4685
-2314:4686
-2316:4332
-2316:4333
-2316:4334
-2316:4335
-2316:4336
-2316:4337
-2316:4338
-2316:4340
-2316:4342
-2316:4343
-2316:4344
-2316:4345
-2316:4347
-2316:4348
-2316:4349
-2316:4351
-2316:4352
-2316:4353
-2316:4354
-2316:4363
-2316:4364
-2316:4365
-2316:4366
-2316:4367
-2316:4370
-2316:4371
-2316:4372
-2316:4373
-2316:4376
-2316:4377
-2316:4378
-2316:4381
-2316:4382
-2316:4383
-2316:4384
-2316:4385
-2316:4388
-2316:4389
-2316:4390
-2316:4391
-2316:4392
-2316:4393
-2316:4394
-2316:4395
-2317:4396
-2318:4397
-2318:4398
-2320:4689
-2320:4690
-2320:4691
-2320:4692
-2320:4693
-2320:4694
-2320:4695
-2320:4697
-2320:4698
-2320:4700
-2320:4701
-2320:4702
-2320:4703
-2320:4704
-2320:4705
-2320:4706
-2320:4707
-2321:4708
-2322:4709
-2322:4710
-2324:4713
-2324:4714
-2324:4715
-2324:4716
-2326:4719
-2326:4720
-2326:4721
-2326:4722
-2329:4524
-2329:4525
-2329:4526
-2329:4527
-2331:4725
-2331:4726
-2331:4727
-2331:4728
-2333:4731
-2333:4732
-2333:4733
-2333:4734
-2335:4737
-2335:4738
-2335:4739
-2335:4740
-2337:4743
-2337:4744
-2337:4745
-2337:4746
-2339:4749
-2339:4750
-2339:4751
-2339:4752
-2341:4755
-2341:4756
-2341:4757
-2341:4758
-2343:4761
-2343:4762
-2343:4763
-2343:4764
-2345:4767
-2345:4768
-2345:4769
-2345:4770
-2347:4773
-2347:4774
-2347:4775
-2347:4776
-2349:4779
-2349:4780
-2349:4781
-2349:4782
-2351:4785
-2351:4786
-2351:4787
-2351:4788
-2353:4791
-2353:4792
-2353:4793
-2353:4794
-2355:4797
-2355:4798
-2355:4799
-2355:4800
-2357:4803
-2357:4804
-2357:4805
-2357:4806
-2359:4809
-2359:4810
-2359:4811
-2359:4812
-2362:4530
-2362:4531
-2362:4532
-2362:4533
-2365:4536
-2365:4537
-2365:4538
-2365:4539
-2367:4815
-2367:4816
-2367:4817
-2367:4818
-2370:4542
-2370:4543
-2370:4544
-2370:4545
-2372:4401
-2372:4402
-2372:4403
-2372:4404
-2374:4548
-2374:4549
-2374:4550
-2374:4551
-2376:4821
-2376:4822
-2376:4823
-2376:4824
-2378:4554
-2378:4555
-2378:4556
-2378:4557
-2380:4407
-2380:4408
-2380:4409
-2380:4410
-2382:4560
-2382:4561
-2383:4562
-2384:4564
-2388:4568
-2388:4569
-2389:4570
-2390:4572
-2391:4573
-2392:4574
-2395:4827
-2395:4828
-2395:4829
-2395:4830
-2398:4844
-2398:4845
-2398:4846
-2398:4847
-2398:4892
-2398:4893
-2398:4894
-2398:4895
-2398:4896
-2398:4897
-2400:4850
-2400:4851
-2400:4852
-2400:4853
-2400:4856
-2400:4857
-2400:4858
-2400:4859
-2400:4860
-2400:4864
-2400:4865
-2400:4866
-2400:4869
-2400:4870
-2400:4871
-2400:4872
-2400:4873
-2400:4874
-2400:4875
-2400:4876
-2400:4877
-2400:4880
-2400:4881
-2400:4882
-2400:4883
-2400:4884
-2400:4885
-2400:4886
-2400:4887
-2400:4888
-2400:4889
-2400:4890
-2403:807
-2403:808
-2403:809
-2403:810
-2403:2286
-2403:2287
-2403:2288
-2403:2289
-2403:2290
-2403:2291
-2405:813
-2405:2274
-2405:2277
-2405:2280
-2405:2281
-2405:2282
-2405:2283
-2405:2284
-2406:814
-2406:815
-2406:816
-2406:817
-2406:818
-2406:819
-2406:820
-2406:821
-2406:822
-2408:825
-2408:826
-2408:827
-2408:828
-2408:829
-2408:830
-2408:831
-2408:832
-2408:833
-2410:836
-2410:837
-2410:838
-2410:839
-2410:840
-2410:841
-2410:842
-2410:843
-2412:846
-2412:847
-2412:848
-2412:849
-2412:850
-2412:851
-2412:852
-2412:853
-2412:854
-2412:855
-2414:858
-2414:859
-2414:860
-2414:861
-2416:864
-2416:865
-2416:866
-2416:867
-2416:868
-2416:869
-2416:870
-2416:871
-2416:872
-2416:873
-2416:874
-2416:875
-2416:876
-2416:877
-2416:878
-2418:881
-2418:882
-2418:883
-2418:884
-2418:885
-2420:888
-2420:889
-2420:890
-2420:891
-2422:894
-2422:895
-2422:896
-2422:897
-2422:898
-2422:899
-2422:900
-2422:901
-2422:902
-2422:903
-2422:904
-2422:905
-2422:906
-2422:907
-2422:908
-2422:909
-2424:912
-2424:913
-2424:914
-2424:915
-2424:916
-2424:917
-2424:918
-2424:919
-2424:920
-2424:921
-2424:922
-2424:923
-2424:924
-2424:925
-2424:926
-2424:927
-2424:928
-2424:929
-2424:930
-2426:933
-2426:934
-2426:935
-2426:936
-2426:937
-2426:938
-2426:939
-2426:940
-2426:941
-2426:942
-2426:943
-2428:946
-2428:947
-2428:948
-2430:951
-2430:952
-2430:953
-2430:954
-2430:955
-2430:956
-2430:957
-2430:958
-2430:959
-2430:960
-2432:963
-2432:964
-2432:965
-2432:966
-2432:967
-2432:968
-2432:969
-2432:970
-2432:971
-2432:972
-2432:973
-2432:974
-2432:975
-2432:976
-2432:977
-2432:978
-2432:979
-2432:980
-2432:981
-2432:982
-2432:983
-2432:984
-2432:985
-2432:986
-2432:987
-2434:990
-2434:991
-2434:992
-2434:993
-2436:996
-2436:997
-2436:998
-2438:1001
-2438:1002
-2438:1003
-2440:1006
-2440:1007
-2440:1008
-2442:1011
-2442:1012
-2442:1013
-2442:1014
-2442:1015
-2442:1016
-2442:1017
-2444:1020
-2444:1021
-2444:1022
-2444:1023
-2444:1024
-2444:1025
-2444:1026
-2444:1027
-2444:1028
-2444:1029
-2444:1030
-2444:1031
-2444:1032
-2446:1035
-2446:1036
-2446:1037
-2446:1038
-2448:1041
-2448:1042
-2448:1043
-2450:1046
-2450:1047
-2450:1048
-2452:1051
-2452:1052
-2452:1053
-2454:1056
-2454:1057
-2454:1058
-2456:1061
-2456:1062
-2456:1063
-2456:1064
-2456:1065
-2456:1066
-2456:1067
-2458:1070
-2458:1071
-2458:1072
-2458:1073
-2458:1074
-2460:1077
-2460:1078
-2460:1079
-2460:1080
-2460:1081
-2460:1082
-2460:1083
-2460:1084
-2460:1085
-2460:1086
-2460:1087
-2460:1088
-2460:1089
-2460:1090
-2460:1091
-2460:1092
-2460:1093
-2460:1094
-2460:1095
-2462:1098
-2462:1099
-2462:1100
-2462:1101
-2462:1102
-2464:1105
-2464:1106
-2464:1107
-2464:1108
-2464:1109
-2464:1110
-2464:1111
-2464:1112
-2464:1113
-2464:1114
-2464:1115
-2466:1118
-2466:1119
-2466:1120
-2466:1121
-2466:1122
-2466:1123
-2466:1124
-2466:1125
-2466:1126
-2466:1127
-2466:1128
-2466:1129
-2466:1130
-2466:1131
-2466:1132
-2466:1133
-2468:1136
-2468:1137
-2468:1138
-2470:1141
-2470:1142
-2470:1143
-2472:1146
-2472:1147
-2472:1148
-2472:1149
-2472:1150
-2472:1151
-2472:1152
-2472:1153
-2472:1154
-2474:1157
-2474:1158
-2474:1159
-2474:1160
-2476:1163
-2476:1164
-2476:1165
-2478:1168
-2478:1169
-2478:1170
-2478:1171
-2478:1172
-2478:1173
-2478:1174
-2478:1175
-2478:1176
-2478:1177
-2478:1178
-2478:1179
-2480:1182
-2480:1183
-2480:1184
-2482:1187
-2482:1188
-2482:1189
-2482:1190
-2482:1191
-2482:1192
-2482:1193
-2482:1194
-2482:1195
-2482:1196
-2482:1197
-2482:1198
-2484:1201
-2484:1202
-2484:1203
-2484:1204
-2484:1205
-2484:1206
-2484:1207
-2484:1208
-2484:1209
-2486:1212
-2486:1213
-2486:1214
-2488:1217
-2488:1218
-2488:1219
-2488:1220
-2488:1221
-2488:1222
-2488:1223
-2488:1224
-2488:1225
-2490:1228
-2490:1229
-2490:1230
-2490:1231
-2490:1232
-2492:1235
-2492:1236
-2492:1237
-2492:1238
-2492:1239
-2492:1240
-2492:1241
-2492:1242
-2492:1243
-2492:1244
-2492:1245
-2492:1246
-2492:1247
-2492:1248
-2492:1249
-2492:1250
-2492:1251
-2492:1252
-2492:1253
-2492:1254
-2494:1257
-2494:1258
-2494:1259
-2494:1260
-2496:1263
-2496:1264
-2496:1265
-2496:1266
-2496:1267
-2496:1268
-2498:1271
-2498:1272
-2498:1273
-2500:1276
-2500:1277
-2500:1278
-2502:1281
-2502:1282
-2502:1283
-2504:1286
-2504:1287
-2504:1288
-2504:1289
-2504:1290
-2504:1291
-2504:1292
-2504:1293
-2504:1294
-2504:1295
-2504:1296
-2504:1297
-2504:1298
-2504:1299
-2504:1300
-2504:1301
-2506:1304
-2506:1305
-2506:1306
-2508:1309
-2508:1310
-2508:1311
-2508:1312
-2508:1313
-2510:1316
-2510:1317
-2510:1318
-2510:1319
-2512:1322
-2512:1323
-2512:1324
-2514:1327
-2514:1328
-2514:1329
-2514:1330
-2514:1331
-2514:1332
-2514:1333
-2514:1334
-2516:1337
-2516:1338
-2516:1339
-2516:1340
-2518:1343
-2518:1344
-2518:1345
-2520:1348
-2520:1349
-2520:1350
-2522:1353
-2522:1354
-2522:1355
-2524:1358
-2524:1359
-2524:1360
-2526:1363
-2526:1364
-2526:1365
-2528:1368
-2528:1369
-2528:1370
-2528:1371
-2530:1374
-2530:1375
-2530:1376
-2532:1379
-2532:1380
-2532:1381
-2532:1382
-2532:1383
-2532:1384
-2532:1385
-2532:1386
-2534:1389
-2534:1390
-2534:1391
-2534:1392
-2536:1395
-2536:1396
-2536:1397
-2538:1400
-2538:1401
-2538:1402
-2540:1405
-2540:1406
-2540:1407
-2542:1410
-2542:1411
-2542:1412
-2544:1415
-2544:1416
-2544:1417
-2546:1420
-2546:1421
-2546:1422
-2548:1425
-2548:1426
-2548:1427
-2548:1428
-2550:1431
-2550:1432
-2550:1433
-2552:1436
-2552:1437
-2552:1438
-2554:1441
-2554:1442
-2554:1443
-2554:1444
-2554:1445
-2554:1446
-2554:1447
-2554:1448
-2556:1451
-2556:1452
-2556:1453
-2556:1454
-2558:1457
-2558:1458
-2558:1459
-2560:1462
-2560:1463
-2560:1464
-2560:1465
-2562:1468
-2562:1469
-2562:1470
-2564:1473
-2564:1474
-2564:1475
-2566:1478
-2566:1479
-2566:1480
-2566:1481
-2568:1484
-2568:1485
-2568:1486
-2570:1489
-2570:1490
-2570:1491
-2570:1492
-2570:1493
-2570:1494
-2570:1495
-2570:1496
-2572:1499
-2572:1500
-2572:1501
-2572:1502
-2574:1505
-2574:1506
-2574:1507
-2576:1510
-2576:1511
-2576:1512
-2578:1515
-2578:1516
-2578:1517
-2580:1520
-2580:1521
-2580:1522
-2582:1525
-2582:1526
-2582:1527
-2584:1530
-2584:1531
-2584:1532
-2584:1533
-2586:1536
-2586:1537
-2586:1538
-2588:1541
-2588:1542
-2588:1543
-2590:1546
-2590:1547
-2590:1548
-2592:1551
-2592:1552
-2592:1553
-2594:1556
-2594:1557
-2594:1558
-2596:1561
-2596:1562
-2596:1563
-2598:1566
-2598:1567
-2598:1568
-2600:1571
-2600:1572
-2600:1573
-2600:1574
-2602:1577
-2602:1578
-2602:1579
-2604:1582
-2604:1583
-2604:1584
-2604:1585
-2606:1588
-2606:1589
-2606:1590
-2608:1593
-2608:1594
-2608:1595
-2608:1596
-2608:1597
-2608:1598
-2608:1599
-2608:1600
-2610:1603
-2610:1604
-2610:1605
-2610:1606
-2610:1607
-2612:1610
-2612:1611
-2612:1612
-2612:1613
-2614:1616
-2614:1617
-2614:1618
-2616:1621
-2616:1622
-2616:1623
-2616:1624
-2618:1627
-2618:1628
-2618:1629
-2620:1632
-2620:1633
-2620:1634
-2620:1635
-2620:1636
-2620:1637
-2620:1638
-2620:1639
-2622:1642
-2622:1643
-2622:1644
-2622:1645
-2622:1646
-2624:1649
-2624:1650
-2624:1651
-2624:1652
-2626:1655
-2626:1656
-2626:1657
-2628:1660
-2628:1661
-2628:1662
-2630:1665
-2630:1666
-2630:1667
-2630:1668
-2632:1671
-2632:1672
-2632:1673
-2634:1676
-2634:1677
-2634:1678
-2634:1679
-2634:1680
-2634:1681
-2634:1682
-2634:1683
-2636:1686
-2636:1687
-2636:1688
-2636:1689
-2636:1690
-2636:1691
-2638:1694
-2638:1695
-2638:1696
-2640:1699
-2640:1700
-2640:1701
-2640:1702
-2640:1703
-2640:1704
-2640:1705
-2640:1706
-2640:1707
-2640:1708
-2640:1709
-2640:1710
-2640:1711
-2640:1712
-2642:1715
-2642:1716
-2642:1717
-2644:1720
-2644:1721
-2644:1722
-2646:1725
-2646:1726
-2646:1727
-2646:1728
-2648:1731
-2648:1732
-2648:1733
-2650:1736
-2650:1737
-2650:1738
-2652:1741
-2652:1742
-2652:1743
-2654:1746
-2654:1747
-2654:1748
-2656:1751
-2656:1752
-2656:1753
-2658:1756
-2658:1757
-2658:1758
-2660:1761
-2660:1762
-2660:1763
-2660:1764
-2662:1767
-2662:1768
-2662:1769
-2664:1772
-2664:1773
-2664:1774
-2666:1777
-2666:1778
-2666:1779
-2668:1782
-2668:1783
-2668:1784
-2670:1787
-2670:1788
-2670:1789
-2672:1792
-2672:1793
-2672:1794
-2674:1797
-2674:1798
-2674:1799
-2676:1802
-2676:1803
-2676:1804
-2678:1807
-2678:1808
-2678:1809
-2678:1810
-2680:1813
-2680:1814
-2680:1815
-2680:1816
-2682:1819
-2682:1820
-2682:1821
-2682:1822
-2682:1823
-2682:1824
-2682:1825
-2682:1826
-2682:1827
-2682:1828
-2682:1829
-2684:1832
-2684:1833
-2684:1834
-2684:1835
-2684:1836
-2684:1837
-2684:1838
-2684:1839
-2684:1840
-2684:1841
-2684:1842
-2684:1843
-2686:1846
-2686:1847
-2686:1848
-2686:1849
-2686:1850
-2686:1851
-2686:1852
-2686:1853
-2686:1854
-2686:1855
-2686:1856
-2686:1857
-2688:1860
-2688:1861
-2688:1862
-2690:1865
-2690:1866
-2690:1867
-2692:1870
-2692:1871
-2692:1872
-2694:1875
-2694:1876
-2694:1877
-2696:1880
-2696:1881
-2696:1882
-2698:1885
-2698:1886
-2698:1887
-2698:1888
-2700:1891
-2700:1892
-2700:1893
-2702:1896
-2702:1897
-2702:1898
-2704:1901
-2704:1902
-2704:1903
-2706:1906
-2706:1907
-2706:1908
-2708:1911
-2708:1912
-2708:1913
-2710:1916
-2710:1917
-2710:1918
-2712:1921
-2712:1922
-2712:1923
-2714:1926
-2714:1927
-2714:1928
-2716:1931
-2716:1932
-2716:1933
-2718:1936
-2718:1937
-2718:1938
-2720:1941
-2720:1942
-2720:1943
-2722:1946
-2722:1947
-2722:1948
-2724:1951
-2724:1952
-2724:1953
-2726:1956
-2726:1957
-2726:1958
-2728:1961
-2728:1962
-2728:1963
-2730:1966
-2730:1967
-2730:1968
-2732:1971
-2732:1972
-2732:1973
-2734:1976
-2734:1977
-2734:1978
-2736:1981
-2736:1982
-2736:1983
-2738:1986
-2738:1987
-2738:1988
-2740:1991
-2740:1992
-2740:1993
-2742:1996
-2742:1997
-2742:1998
-2744:2001
-2744:2002
-2744:2003
-2744:2004
-2746:2007
-2746:2008
-2746:2009
-2748:2012
-2748:2013
-2748:2014
-2750:2017
-2750:2018
-2750:2019
-2752:2275
-2752:2276
-2754:2022
-2754:2023
-2754:2024
-2754:2025
-2754:2026
-2754:2027
-2754:2028
-2754:2029
-2754:2030
-2754:2031
-2754:2032
-2754:2033
-2754:2034
-2754:2035
-2754:2036
-2754:2037
-2754:2038
-2754:2039
-2754:2040
-2754:2041
-2754:2042
-2754:2043
-2754:2044
-2754:2045
-2754:2046
-2756:2049
-2756:2050
-2756:2051
-2756:2052
-2756:2053
-2756:2054
-2756:2055
-2756:2056
-2758:2059
-2758:2060
-2758:2061
-2758:2062
-2760:2065
-2760:2066
-2760:2067
-2760:2068
-2760:2069
-2760:2070
-2760:2071
-2760:2072
-2760:2073
-2760:2074
-2760:2075
-2760:2076
-2762:2079
-2762:2080
-2762:2081
-2762:2082
-2764:2085
-2764:2086
-2764:2087
-2764:2088
-2766:2091
-2766:2092
-2766:2093
-2768:2096
-2768:2097
-2768:2098
-2770:2101
-2770:2102
-2770:2103
-2772:2106
-2772:2107
-2772:2108
-2772:2109
-2772:2110
-2772:2111
-2772:2112
-2772:2113
-2772:2114
-2772:2115
-2774:2118
-2774:2119
-2774:2120
-2774:2121
-2774:2122
-2774:2123
-2774:2124
-2774:2125
-2774:2126
-2774:2127
-2774:2128
-2774:2129
-2774:2130
-2774:2131
-2774:2132
-2774:2133
-2776:2136
-2776:2137
-2776:2138
-2776:2139
-2778:2142
-2778:2143
-2778:2144
-2780:2147
-2780:2148
-2780:2149
-2782:2152
-2782:2153
-2782:2154
-2782:2155
-2784:2158
-2784:2159
-2784:2160
-2786:2163
-2786:2164
-2786:2165
-2786:2166
-2788:2169
-2788:2170
-2788:2171
-2788:2172
-2788:2173
-2788:2174
-2790:2177
-2790:2178
-2790:2179
-2792:2182
-2792:2183
-2792:2184
-2792:2185
-2794:2188
-2794:2189
-2794:2190
-2796:2193
-2796:2194
-2796:2195
-2798:2198
-2798:2199
-2798:2200
-2800:2203
-2800:2204
-2800:2205
-2802:2208
-2802:2209
-2802:2210
-2802:2211
-2802:2212
-2802:2213
-2802:2214
-2802:2215
-2802:2216
-2802:2217
-2802:2218
-2802:2219
-2802:2220
-2802:2221
-2802:2222
-2802:2223
-2802:2224
-2802:2225
-2802:2226
-2802:2227
-2802:2228
-2802:2229
-2802:2230
-2804:2233
-2804:2234
-2804:2235
-2804:2236
-2804:2237
-2804:2238
-2804:2239
-2804:2240
-2804:2241
-2804:2242
-2804:2243
-2804:2244
-2804:2245
-2804:2246
-2804:2247
-2804:2248
-2804:2249
-2804:2250
-2804:2251
-2804:2252
-2804:2253
-2804:2254
-2804:2255
-2804:2256
-2804:2257
-2806:2260
-2806:2261
-2806:2262
-2806:2263
-2806:2264
-2806:2265
-2806:2266
-2806:2267
-2806:2268
-2806:2269
-2806:2270
-2806:2271
-2808:2278
-2808:2279
-2812:2293
-2812:2294
-2812:2295
-2812:2296
-2812:2321
-2812:2322
-2812:2323
-2812:2324
-2812:2325
-2812:2326
-2814:2299
-2814:2300
-2814:2301
-2814:2302
-2814:2305
-2814:2306
-2814:2307
-2814:2308
-2814:2309
-2814:2312
-2814:2313
-2814:2314
-2814:2315
-2814:2316
-2814:2317
-2814:2318
-2814:2319
-2817:2600
-2817:2601
-2817:2602
-2817:2603
-2817:3147
-2817:3148
-2817:3149
-2817:3150
-2817:3151
-2817:3152
-2819:2606
-2819:3141
-2819:3142
-2819:3143
-2819:3144
-2819:3145
-2820:2607
-2820:2608
-2820:2609
-2820:2610
-2820:2611
-2820:2612
-2820:2613
-2820:2614
-2820:2615
-2820:2616
-2820:2617
-2820:2618
-2820:2619
-2820:2620
-2820:2621
-2820:2622
-2820:2623
-2820:2624
-2820:2625
-2820:2626
-2822:2629
-2822:2630
-2822:2631
-2824:2634
-2824:2635
-2824:2636
-2826:2639
-2826:2640
-2826:2641
-2826:2642
-2826:2643
-2826:2644
-2826:2645
-2828:2648
-2828:2649
-2828:2650
-2828:2651
-2828:2652
-2828:2653
-2828:2654
-2828:2655
-2830:2658
-2830:2659
-2830:2660
-2832:2663
-2832:2664
-2832:2665
-2834:2668
-2834:2669
-2834:2670
-2836:2673
-2836:2674
-2836:2675
-2838:2678
-2838:2679
-2838:2680
-2838:2681
-2840:2684
-2840:2685
-2840:2686
-2842:2689
-2842:2690
-2842:2691
-2842:2692
-2844:2695
-2844:2696
-2844:2697
-2846:2700
-2846:2701
-2846:2702
-2846:2703
-2848:2706
-2848:2707
-2848:2708
-2850:2711
-2850:2712
-2850:2713
-2852:2716
-2852:2717
-2852:2718
-2854:2721
-2854:2722
-2854:2723
-2856:2726
-2856:2727
-2856:2728
-2856:2729
-2856:2730
-2856:2731
-2858:2734
-2858:2735
-2858:2736
-2860:2739
-2860:2740
-2860:2741
-2862:2744
-2862:2745
-2862:2746
-2864:2749
-2864:2750
-2864:2751
-2866:2754
-2866:2755
-2866:2756
-2868:2759
-2868:2760
-2868:2761
-2870:2764
-2870:2765
-2870:2766
-2872:2769
-2872:2770
-2872:2771
-2872:2772
-2874:2775
-2874:2776
-2874:2777
-2876:2780
-2876:2781
-2876:2782
-2878:2785
-2878:2786
-2878:2787
-2880:2790
-2880:2791
-2880:2792
-2882:2795
-2882:2796
-2882:2797
-2884:2800
-2884:2801
-2884:2802
-2886:2805
-2886:2806
-2886:2807
-2888:2810
-2888:2811
-2888:2812
-2890:2815
-2890:2816
-2890:2817
-2892:2820
-2892:2821
-2892:2822
-2894:2825
-2894:2826
-2894:2827
-2896:2830
-2896:2831
-2896:2832
-2898:2835
-2898:2836
-2898:2837
-2900:2840
-2900:2841
-2900:2842
-2902:2845
-2902:2846
-2902:2847
-2902:2848
-2904:2851
-2904:2852
-2904:2853
-2906:2856
-2906:2857
-2906:2858
-2908:2861
-2908:2862
-2908:2863
-2910:2866
-2910:2867
-2910:2868
-2912:2871
-2912:2872
-2912:2873
-2912:2874
-2914:2877
-2914:2878
-2914:2879
-2916:2882
-2916:2883
-2916:2884
-2918:2887
-2918:2888
-2918:2889
-2920:2892
-2920:2893
-2920:2894
-2922:2897
-2922:2898
-2922:2899
-2922:2900
-2924:2903
-2924:2904
-2924:2905
-2926:2908
-2926:2909
-2926:2910
-2928:2913
-2928:2914
-2928:2915
-2930:2918
-2930:2919
-2930:2920
-2932:2923
-2932:2924
-2932:2925
-2932:2926
-2934:2929
-2934:2930
-2934:2931
-2936:2934
-2936:2935
-2936:2936
-2938:2939
-2938:2940
-2938:2941
-2940:2944
-2940:2945
-2940:2946
-2942:2949
-2942:2950
-2942:2951
-2942:2952
-2944:2955
-2944:2956
-2944:2957
-2946:2960
-2946:2961
-2946:2962
-2948:2965
-2948:2966
-2948:2967
-2950:2970
-2950:2971
-2950:2972
-2952:2975
-2952:2976
-2952:2977
-2952:2978
-2954:2981
-2954:2982
-2954:2983
-2956:2986
-2956:2987
-2956:2988
-2958:2991
-2958:2992
-2958:2993
-2960:2996
-2960:2997
-2960:2998
-2962:3001
-2962:3002
-2962:3003
-2962:3004
-2964:3007
-2964:3008
-2964:3009
-2964:3010
-2966:3013
-2966:3014
-2966:3015
-2968:3018
-2968:3019
-2968:3020
-2968:3021
-2970:3024
-2970:3025
-2970:3026
-2972:3029
-2972:3030
-2972:3031
-2972:3032
-2974:3035
-2974:3036
-2974:3037
-2976:3040
-2976:3041
-2976:3042
-2978:3045
-2978:3046
-2978:3047
-2980:3050
-2980:3051
-2980:3052
-2982:3055
-2982:3056
-2982:3057
-2984:3060
-2984:3061
-2984:3062
-2986:3065
-2986:3066
-2986:3067
-2986:3068
-2986:3069
-2986:3070
-2986:3071
-2988:3074
-2988:3075
-2988:3076
-2988:3077
-2990:3080
-2990:3081
-2990:3082
-2990:3083
-2992:3086
-2992:3087
-2992:3088
-2994:3091
-2994:3092
-2994:3093
-2994:3094
-2994:3095
-2994:3096
-2994:3097
-2994:3098
-2996:3101
-2996:3102
-2996:3103
-2996:3104
-2998:3107
-2998:3108
-2998:3109
-3000:3112
-3000:3113
-3000:3114
-3000:3115
-3000:3116
-3000:3117
-3002:3120
-3002:3121
-3002:3122
-3004:3125
-3004:3126
-3004:3127
-3004:3128
-3006:3131
-3006:3132
-3006:3133
-3008:3136
-3008:3137
-3008:3138
-3012:2354
-3012:2355
-3012:2356
-3012:2357
-3012:2472
-3012:2473
-3012:2474
-3012:2475
-3012:2476
-3012:2477
-3014:2360
-3014:2466
-3014:2467
-3014:2468
-3014:2469
-3014:2470
-3015:2361
-3015:2362
-3015:2363
-3015:2364
-3015:2365
-3017:2368
-3017:2369
-3017:2370
-3017:2371
-3017:2372
-3019:2375
-3019:2376
-3019:2377
-3019:2378
-3019:2379
-3021:2382
-3021:2383
-3021:2384
-3021:2385
-3021:2386
-3023:2389
-3023:2390
-3023:2391
-3023:2392
-3023:2393
-3025:2396
-3025:2397
-3025:2398
-3025:2399
-3025:2400
-3027:2403
-3027:2404
-3027:2405
-3027:2406
-3027:2407
-3029:2410
-3029:2411
-3029:2412
-3029:2413
-3029:2414
-3031:2417
-3031:2418
-3031:2419
-3031:2420
-3031:2421
-3033:2424
-3033:2425
-3033:2426
-3033:2427
-3033:2428
-3035:2431
-3035:2432
-3035:2433
-3035:2434
-3035:2435
-3037:2438
-3037:2439
-3037:2440
-3037:2441
-3037:2442
-3039:2445
-3039:2446
-3039:2447
-3039:2448
-3039:2449
-3041:2452
-3041:2453
-3041:2454
-3041:2455
-3041:2456
-3043:2459
-3043:2460
-3043:2461
-3043:2462
-3043:2463
-3047:3154
-3047:3155
-3047:3156
-3047:3157
-3047:3223
-3047:3224
-3047:3225
-3047:3226
-3047:3227
-3047:3228
-3049:3160
-3049:3217
-3049:3218
-3049:3219
-3049:3220
-3049:3221
-3050:3161
-3050:3162
-3050:3163
-3052:3166
-3052:3167
-3052:3168
-3054:3171
-3054:3172
-3054:3173
-3056:3176
-3056:3177
-3056:3178
-3058:3181
-3058:3182
-3058:3183
-3060:3186
-3060:3187
-3060:3188
-3062:3191
-3062:3192
-3062:3193
-3064:3196
-3064:3197
-3064:3198
-3066:3201
-3066:3202
-3066:3203
-3066:3204
-3068:3207
-3068:3208
-3068:3209
-3070:3212
-3070:3213
-3070:3214
+1923:55
+1924:56
+1925:57
+1926:58
+1927:59
+1928:60
+1929:61
+1930:62
+1931:63
+1933:65
+1934:66
+1935:67
+1936:68
+1938:70
+1939:71
+1940:72
+1941:73
+1942:74
+1944:76
+1945:77
+1946:78
+1947:79
+1948:80
+1949:81
+1950:82
+1951:83
+1954:248
+1954:249
+1954:250
+1954:251
+1954:253
+1954:254
+1954:255
+1954:256
+1954:257
+1954:258
+1954:259
+1955:261
+1955:262
+1955:263
+1955:264
+1955:266
+1955:267
+1955:268
+1955:269
+1955:270
+1955:271
+1955:272
+1955:273
+1956:275
+1956:276
+1956:277
+1956:278
+1956:280
+1956:281
+1956:282
+1956:283
+1956:284
+1956:285
+1956:286
+1957:288
+1957:289
+1957:290
+1957:291
+1957:293
+1957:294
+1957:295
+1957:296
+1957:297
+1957:298
+1957:299
+1958:301
+1958:302
+1958:303
+1958:304
+1958:306
+1958:307
+1958:308
+1958:309
+1958:310
+1958:311
+1958:312
+1959:314
+1959:315
+1959:316
+1959:317
+1959:319
+1959:320
+1959:321
+1959:322
+1959:323
+1959:324
+1959:325
+1960:327
+1960:328
+1960:329
+1960:330
+1960:332
+1960:333
+1960:334
+1960:335
+1960:336
+1960:337
+1960:338
+1961:340
+1961:341
+1961:342
+1961:343
+1961:345
+1961:346
+1961:347
+1961:348
+1961:349
+1961:350
+1961:351
+1962:353
+1962:354
+1962:355
+1962:356
+1962:358
+1962:359
+1962:360
+1962:361
+1962:362
+1962:363
+1962:364
+1963:366
+1963:367
+1963:368
+1963:369
+1963:371
+1963:372
+1963:373
+1963:374
+1963:375
+1963:376
+1963:377
+1964:379
+1964:380
+1964:381
+1964:382
+1964:384
+1964:385
+1964:386
+1964:387
+1964:388
+1964:389
+1964:390
+1965:392
+1965:393
+1965:394
+1965:395
+1965:397
+1965:398
+1965:399
+1965:400
+1965:401
+1965:402
+1965:403
+1966:405
+1966:406
+1966:407
+1966:408
+1966:410
+1966:411
+1966:412
+1966:413
+1966:414
+1966:415
+1966:416
+1967:418
+1967:419
+1967:420
+1967:421
+1967:423
+1967:424
+1967:425
+1967:426
+1967:427
+1967:428
+1967:429
+1968:431
+1968:432
+1968:433
+1968:434
+1968:436
+1968:437
+1968:438
+1968:439
+1968:440
+1968:441
+1968:442
+1969:444
+1969:445
+1969:446
+1969:447
+1969:449
+1969:450
+1969:451
+1969:452
+1969:453
+1969:454
+1969:455
+1970:457
+1970:458
+1970:459
+1970:460
+1970:462
+1970:463
+1970:464
+1970:465
+1970:466
+1970:467
+1970:468
+1971:470
+1971:471
+1971:472
+1971:473
+1971:475
+1971:476
+1971:477
+1971:478
+1971:479
+1971:480
+1971:481
+1972:483
+1972:484
+1972:485
+1972:486
+1972:488
+1972:489
+1972:490
+1972:491
+1972:492
+1972:493
+1972:494
+1973:496
+1973:497
+1973:498
+1973:499
+1973:501
+1973:502
+1973:503
+1973:504
+1973:505
+1973:506
+1973:507
+1973:508
+1974:510
+1974:511
+1974:512
+1974:513
+1974:515
+1974:516
+1974:517
+1974:518
+1974:519
+1974:520
+1974:521
+1975:523
+1975:524
+1975:525
+1975:526
+1975:528
+1975:529
+1975:530
+1975:531
+1975:532
+1975:533
+1975:534
+1976:536
+1976:537
+1976:538
+1976:539
+1976:541
+1976:542
+1976:543
+1976:544
+1976:545
+1976:546
+1976:547
+1977:549
+1977:550
+1977:551
+1977:552
+1977:554
+1977:555
+1977:556
+1977:557
+1977:558
+1977:559
+1977:560
+1978:562
+1978:563
+1978:564
+1978:565
+1978:567
+1978:568
+1978:569
+1978:570
+1978:571
+1978:572
+1978:573
+1979:575
+1979:576
+1979:577
+1979:578
+1979:580
+1979:581
+1979:582
+1979:583
+1979:584
+1979:585
+1979:586
+1980:588
+1980:589
+1980:590
+1980:591
+1980:593
+1980:594
+1980:595
+1980:596
+1980:597
+1980:598
+1980:599
+1981:601
+1981:602
+1981:603
+1981:604
+1981:606
+1981:607
+1981:608
+1981:609
+1981:610
+1981:611
+1981:612
+1982:614
+1982:615
+1982:616
+1982:617
+1982:619
+1982:620
+1982:621
+1982:622
+1982:623
+1982:624
+1982:625
+1983:627
+1983:628
+1983:629
+1983:630
+1983:632
+1983:633
+1983:634
+1983:635
+1983:636
+1983:637
+1983:638
+1985:640
+1985:641
+1985:642
+1985:643
+1985:645
+1985:646
+1985:647
+1985:648
+1985:649
+1985:650
+1985:651
+1986:653
+1986:654
+1986:655
+1986:656
+1986:658
+1986:659
+1986:660
+1986:661
+1986:662
+1986:663
+1986:664
+1988:666
+1988:667
+1988:668
+1988:669
+1988:671
+1988:672
+1988:673
+1988:674
+1988:675
+1988:676
+1988:677
+1990:679
+1990:680
+1990:681
+1990:682
+1990:685
+1990:686
+1990:687
+1990:688
+1990:689
+1990:690
+1991:684
+1993:692
+1993:693
+1993:694
+1993:695
+1993:697
+1993:698
+1993:699
+1993:700
+1993:701
+1993:702
+1993:703
+1994:705
+1994:706
+1994:707
+1994:708
+1994:710
+1994:711
+1994:712
+1994:713
+1994:714
+1994:715
+1994:716
+1996:718
+1996:719
+1996:720
+1996:721
+1996:723
+1996:724
+1996:725
+1996:726
+1996:727
+1996:728
+1996:729
+1997:731
+1997:732
+1997:733
+1997:734
+1997:736
+1997:737
+1997:738
+1997:739
+1997:740
+1997:741
+1997:742
+1998:744
+1998:745
+1998:746
+1998:747
+1998:749
+1998:750
+1998:751
+1998:752
+1998:753
+1998:754
+1998:755
+1999:757
+1999:758
+1999:759
+1999:760
+1999:762
+1999:763
+1999:764
+1999:765
+1999:766
+1999:767
+1999:768
+2000:770
+2000:771
+2000:772
+2000:773
+2000:775
+2000:776
+2000:777
+2000:778
+2000:779
+2000:780
+2000:781
+2002:783
+2002:784
+2002:785
+2002:786
+2002:800
+2002:801
+2002:802
+2002:803
+2002:804
+2002:805
+2004:789
+2004:790
+2004:791
+2004:792
+2004:793
+2004:794
+2004:795
+2004:796
+2004:797
+2007:2328
+2007:2329
+2007:2330
+2007:2331
+2007:2347
+2007:2348
+2007:2349
+2007:2350
+2007:2351
+2007:2352
+2009:2334
+2009:2335
+2009:2336
+2009:2337
+2009:2338
+2009:2339
+2009:2340
+2009:2341
+2009:2342
+2009:2344
+2009:2345
+2009:2346
+2012:2479
+2012:2480
+2012:2481
+2012:2482
+2012:2516
+2012:2517
+2012:2518
+2012:2519
+2012:2520
+2012:2521
+2014:2485
+2014:2486
+2014:2487
+2014:2488
+2014:2489
+2014:2490
+2014:2491
+2014:2492
+2014:2493
+2014:2496
+2014:2497
+2014:2498
+2014:2499
+2014:2502
+2014:2503
+2014:2504
+2014:2505
+2014:2508
+2014:2509
+2014:2510
+2014:2511
+2014:2512
+2014:2513
+2014:2514
+2014:2515
+2017:2523
+2017:2524
+2017:2525
+2017:2526
+2017:2540
+2017:2541
+2017:2542
+2017:2543
+2017:2544
+2017:2545
+2019:2529
+2019:2530
+2019:2531
+2019:2532
+2019:2533
+2019:2534
+2019:2535
+2019:2536
+2019:2537
+2022:2547
+2022:2548
+2022:2549
+2022:2550
+2022:2593
+2022:2594
+2022:2595
+2022:2596
+2022:2597
+2022:2598
+2024:2553
+2024:2554
+2024:2555
+2024:2556
+2024:2559
+2024:2560
+2024:2561
+2024:2564
+2024:2565
+2024:2566
+2024:2569
+2024:2570
+2024:2571
+2024:2572
+2024:2573
+2024:2574
+2024:2575
+2024:2578
+2024:2579
+2024:2580
+2024:2581
+2024:2582
+2024:2583
+2024:2584
+2024:2585
+2024:2586
+2024:2587
+2024:2588
+2024:2589
+2024:2590
+2024:2591
+2027:3230
+2027:3231
+2027:3232
+2027:3233
+2027:3248
+2027:3249
+2027:3250
+2027:3251
+2027:3252
+2027:3253
+2027:3254
+2033:3235
+2033:3236
+2033:3237
+2033:3238
+2033:3239
+2033:3240
+2033:3241
+2033:3242
+2033:3243
+2033:3244
+2033:3246
+2033:3247
+2036:3256
+2036:3257
+2036:3258
+2036:3259
+2036:3287
+2036:3288
+2036:3289
+2036:3290
+2036:3291
+2036:3292
+2038:3262
+2038:3263
+2038:3264
+2038:3267
+2038:3270
+2038:3276
+2038:3279
+2038:3280
+2038:3281
+2038:3282
+2038:3284
+2038:3285
+2038:3286
+2040:3265
+2040:3266
+2042:3268
+2042:3269
+2044:3271
+2044:3272
+2044:3273
+2044:3274
+2046:3277
+2046:3278
+2050:3294
+2050:3295
+2050:3296
+2050:3297
+2050:3326
+2050:3327
+2050:3328
+2050:3329
+2050:3330
+2050:3331
+2056:3299
+2056:3300
+2056:3301
+2056:3302
+2056:3303
+2056:3304
+2056:3305
+2056:3307
+2056:3308
+2056:3309
+2056:3310
+2056:3311
+2056:3312
+2056:3313
+2056:3314
+2056:3315
+2056:3318
+2056:3319
+2056:3320
+2056:3321
+2056:3323
+2056:3324
+2056:3325
+2059:3333
+2059:3334
+2059:3335
+2059:3336
+2059:3365
+2059:3366
+2059:3367
+2059:3368
+2059:3369
+2059:3370
+2065:3338
+2065:3339
+2065:3340
+2065:3341
+2065:3342
+2065:3343
+2065:3344
+2065:3346
+2065:3347
+2065:3348
+2065:3349
+2065:3350
+2065:3351
+2065:3352
+2065:3353
+2065:3354
+2065:3357
+2065:3358
+2065:3359
+2065:3360
+2065:3362
+2065:3363
+2065:3364
+2068:3372
+2068:3373
+2068:3374
+2068:3375
+2068:3377
+2068:3378
+2068:3380
+2068:3381
+2068:3382
+2068:3383
+2068:3384
+2068:3385
+2069:3379
+2071:3387
+2071:3388
+2071:3389
+2071:3390
+2071:3392
+2071:3393
+2071:3479
+2071:3480
+2071:3481
+2071:3482
+2071:3483
+2071:3484
+2074:3395
+2074:3397
+2074:3398
+2074:3400
+2074:3401
+2074:3403
+2074:3405
+2074:3406
+2074:3407
+2074:3408
+2074:3409
+2074:3410
+2074:3411
+2074:3412
+2074:3413
+2074:3414
+2074:3415
+2074:3416
+2074:3417
+2074:3419
+2074:3420
+2074:3427
+2074:3428
+2074:3429
+2074:3430
+2074:3431
+2074:3434
+2074:3435
+2074:3436
+2074:3437
+2074:3441
+2074:3442
+2074:3443
+2074:3444
+2074:3447
+2074:3448
+2074:3449
+2074:3452
+2074:3453
+2074:3454
+2074:3455
+2074:3456
+2074:3459
+2074:3460
+2074:3461
+2074:3462
+2074:3465
+2074:3466
+2074:3467
+2074:3470
+2074:3472
+2074:3473
+2074:3474
+2074:3475
+2074:3476
+2074:3478
+2077:3486
+2077:3487
+2077:3488
+2077:3489
+2077:3496
+2077:3521
+2077:3522
+2077:3523
+2077:3524
+2077:3526
+2077:3527
+2077:3528
+2077:3529
+2077:3530
+2077:3531
+2080:3491
+2080:3493
+2080:3494
+2080:3497
+2080:3499
+2080:3501
+2080:3502
+2080:3503
+2080:3504
+2080:3505
+2080:3506
+2080:3507
+2080:3508
+2080:3509
+2080:3510
+2080:3511
+2080:3513
+2080:3514
+2080:3515
+2080:3517
+2083:3533
+2083:3534
+2083:3535
+2083:3536
+2083:3569
+2083:3570
+2083:3571
+2083:3572
+2083:3573
+2083:3574
+2085:3538
+2085:3540
+2085:3541
+2085:3542
+2085:3543
+2085:3546
+2085:3547
+2085:3548
+2085:3551
+2085:3552
+2085:3553
+2085:3556
+2085:3557
+2085:3558
+2085:3559
+2085:3560
+2085:3561
+2085:3562
+2085:3563
+2085:3564
+2085:3565
+2085:3566
+2085:3568
+2088:3576
+2088:3577
+2088:3578
+2088:3579
+2088:3599
+2088:3600
+2088:3601
+2088:3602
+2088:3603
+2088:3604
+2090:3581
+2090:3582
+2090:3584
+2090:3585
+2090:3586
+2090:3587
+2090:3589
+2090:3590
+2090:3592
+2090:3593
+2090:3594
+2090:3595
+2090:3598
+2093:3606
+2093:3607
+2093:3608
+2093:3609
+2093:3611
+2093:3688
+2093:3689
+2093:3690
+2093:3691
+2093:3692
+2093:3693
+2093:3694
+2093:3695
+2093:3696
+2093:3697
+2093:3698
+2099:3612
+2099:3613
+2099:3614
+2099:3615
+2099:3616
+2099:3617
+2099:3618
+2099:3619
+2099:3620
+2099:3621
+2099:3622
+2099:3623
+2099:3624
+2099:3625
+2099:3626
+2099:3628
+2099:3629
+2099:3630
+2099:3631
+2099:3633
+2099:3634
+2099:3636
+2099:3638
+2099:3639
+2099:3640
+2099:3641
+2099:3643
+2099:3644
+2100:3645
+2100:3646
+2100:3647
+2102:3650
+2102:3651
+2102:3652
+2102:3653
+2102:3654
+2102:3655
+2102:3656
+2102:3657
+2102:3658
+2102:3659
+2102:3660
+2102:3661
+2102:3662
+2102:3663
+2102:3664
+2102:3666
+2102:3667
+2102:3668
+2102:3669
+2102:3671
+2102:3672
+2102:3674
+2102:3676
+2102:3677
+2102:3678
+2102:3679
+2102:3681
+2102:3682
+2103:3683
+2103:3684
+2103:3685
+2106:3700
+2106:3701
+2106:3702
+2106:3703
+2106:3721
+2106:3722
+2106:3723
+2106:3724
+2106:3725
+2106:3726
+2111:3706
+2111:3707
+2111:3708
+2111:3709
+2111:3711
+2111:3713
+2111:3714
+2111:3715
+2111:3716
+2111:3718
+2111:3719
+2111:3720
+2120:3728
+2120:3734
+2120:3735
+2120:3736
+2120:3737
+2120:3755
+2120:3756
+2120:3757
+2120:3758
+2120:3759
+2120:3760
+2121:3729
+2122:3730
+2123:3731
+2124:3732
+2125:3733
+2125:3740
+2125:3741
+2125:3742
+2125:3743
+2125:3745
+2125:3747
+2125:3748
+2125:3749
+2125:3750
+2125:3752
+2125:3753
+2125:3754
+2128:3762
+2128:3763
+2128:3764
+2128:3765
+2128:3769
+2128:3770
+2128:3771
+2128:3772
+2128:3773
+2128:3774
+2130:3767
+2130:3768
+2133:3776
+2133:3777
+2133:3778
+2133:3779
+2133:3783
+2133:3784
+2133:3785
+2133:3786
+2133:3787
+2133:3788
+2135:3781
+2135:3782
+2144:3790
+2144:3796
+2144:3797
+2144:3798
+2144:3799
+2144:3871
+2144:3872
+2144:3873
+2144:3874
+2144:3875
+2144:3876
+2145:3791
+2146:3792
+2146:3802
+2146:3803
+2146:3804
+2146:3805
+2146:3806
+2146:3807
+2146:3808
+2146:3811
+2146:3812
+2146:3813
+2146:3816
+2146:3817
+2146:3818
+2146:3819
+2146:3820
+2146:3824
+2146:3825
+2146:3826
+2146:3827
+2146:3828
+2146:3829
+2146:3830
+2146:3831
+2146:3832
+2146:3835
+2146:3836
+2146:3837
+2146:3838
+2146:3839
+2146:3840
+2146:3841
+2146:3842
+2146:3843
+2146:3844
+2146:3845
+2146:3846
+2146:3847
+2146:3848
+2146:3849
+2146:3850
+2146:3851
+2146:3852
+2146:3855
+2146:3856
+2146:3857
+2146:3860
+2146:3861
+2146:3862
+2146:3863
+2146:3864
+2146:3865
+2146:3866
+2146:3867
+2146:3868
+2146:3869
+2146:3870
+2147:3793
+2148:3794
+2149:3795
+2149:3878
+2149:3879
+2149:3880
+2149:3881
+2149:3923
+2149:3924
+2149:3925
+2149:3926
+2149:3927
+2149:3928
+2155:3883
+2155:3884
+2155:3885
+2155:3886
+2155:3887
+2155:3888
+2155:3889
+2155:3891
+2155:3893
+2155:3894
+2155:3895
+2155:3896
+2155:3897
+2155:3898
+2155:3899
+2155:3900
+2155:3902
+2155:3904
+2155:3907
+2155:3908
+2155:3909
+2155:3910
+2155:3911
+2155:3912
+2155:3913
+2155:3914
+2155:3915
+2155:3916
+2155:3917
+2155:3918
+2155:3919
+2155:3920
+2155:3921
+2155:3922
+2158:3930
+2158:3931
+2158:3932
+2158:3933
+2158:3984
+2158:3985
+2158:3986
+2158:3987
+2158:3988
+2158:3989
+2164:3935
+2164:3936
+2164:3937
+2164:3938
+2164:3940
+2164:3941
+2164:3942
+2164:3943
+2164:3944
+2164:3945
+2164:3947
+2164:3949
+2164:3950
+2164:3951
+2164:3952
+2164:3953
+2164:3954
+2164:3955
+2164:3956
+2164:3958
+2164:3960
+2164:3963
+2164:3964
+2164:3965
+2164:3966
+2164:3967
+2164:3968
+2164:3969
+2164:3970
+2164:3971
+2164:3972
+2164:3973
+2164:3974
+2164:3975
+2164:3976
+2164:3977
+2164:3978
+2164:3979
+2164:3981
+2167:3991
+2167:3992
+2167:3993
+2167:3994
+2167:4065
+2167:4066
+2167:4067
+2167:4068
+2167:4069
+2167:4070
+2172:3996
+2172:3997
+2172:3998
+2173:3999
+2173:4000
+2173:4001
+2173:4002
+2173:4003
+2173:4004
+2173:4005
+2173:4006
+2173:4007
+2173:4009
+2173:4011
+2173:4014
+2173:4015
+2173:4016
+2173:4017
+2173:4018
+2173:4019
+2173:4020
+2173:4021
+2173:4022
+2173:4023
+2173:4024
+2173:4025
+2173:4026
+2173:4027
+2173:4028
+2173:4029
+2173:4030
+2173:4032
+2173:4033
+2173:4035
+2173:4038
+2173:4039
+2173:4040
+2173:4041
+2173:4042
+2173:4043
+2173:4044
+2173:4045
+2173:4047
+2173:4048
+2173:4050
+2173:4051
+2173:4053
+2173:4055
+2173:4056
+2173:4057
+2173:4058
+2173:4059
+2173:4060
+2173:4061
+2174:4062
+2174:4063
+2174:4064
+2177:4072
+2177:4073
+2177:4074
+2177:4075
+2177:4078
+2177:4079
+2177:4080
+2177:4081
+2177:4083
+2177:4084
+2177:4085
+2177:4086
+2177:4089
+2177:4090
+2177:4091
+2177:4094
+2177:4095
+2177:4096
+2177:4099
+2177:4100
+2177:4101
+2177:4104
+2177:4105
+2177:4106
+2177:4107
+2177:4108
+2177:4110
+2177:4111
+2177:4112
+2177:4113
+2177:4115
+2177:4116
+2177:4117
+2177:4118
+2177:4119
+2177:4120
+2177:4121
+2177:4122
+2177:4123
+2180:4125
+2180:4126
+2180:4127
+2180:4128
+2180:4142
+2180:4143
+2180:4144
+2180:4145
+2180:4146
+2180:4147
+2181:4130
+2181:4132
+2181:4133
+2181:4134
+2181:4136
+2182:4139
+2182:4140
+2184:4149
+2184:4150
+2184:4151
+2184:4152
+2184:4190
+2184:4191
+2184:4192
+2184:4193
+2184:4194
+2184:4195
+2189:4155
+2189:4181
+2189:4182
+2189:4183
+2189:4184
+2189:4185
+2190:4156
+2190:4157
+2190:4158
+2190:4159
+2190:4160
+2191:4161
+2191:4162
+2191:4163
+2191:4164
+2191:4165
+2191:4166
+2191:4167
+2191:4168
+2191:4169
+2191:4170
+2191:4171
+2191:4173
+2191:4174
+2193:4187
+2193:4188
+2193:4189
+2201:4197
+2201:4202
+2201:4203
+2201:4204
+2201:4205
+2201:4208
+2201:4229
+2201:4260
+2201:4273
+2201:4283
+2201:4289
+2201:4331
+2201:4400
+2201:4406
+2201:4412
+2201:4435
+2201:4445
+2201:4451
+2201:4457
+2201:4463
+2201:4469
+2201:4475
+2201:4499
+2201:4523
+2201:4529
+2201:4535
+2201:4541
+2201:4547
+2201:4553
+2201:4559
+2201:4567
+2201:4577
+2201:4586
+2201:4592
+2201:4598
+2201:4604
+2201:4610
+2201:4616
+2201:4628
+2201:4635
+2201:4641
+2201:4665
+2201:4688
+2201:4712
+2201:4718
+2201:4724
+2201:4730
+2201:4736
+2201:4742
+2201:4748
+2201:4754
+2201:4760
+2201:4766
+2201:4772
+2201:4778
+2201:4784
+2201:4790
+2201:4796
+2201:4802
+2201:4808
+2201:4814
+2201:4820
+2201:4826
+2201:4832
+2201:4833
+2201:4834
+2201:4835
+2201:4836
+2201:4837
+2201:4838
+2201:4839
+2201:4840
+2201:4841
+2201:4842
+2202:4198
+2203:4199
+2204:4200
+2205:4201
+2206:4274
+2206:4275
+2207:4276
+2208:4278
+2209:4279
+2210:4280
+2213:4413
+2213:4414
+2213:4415
+2213:4416
+2213:4417
+2213:4418
+2213:4419
+2213:4421
+2213:4423
+2213:4424
+2213:4425
+2213:4426
+2213:4427
+2213:4428
+2213:4429
+2213:4430
+2214:4431
+2214:4432
+2214:4433
+2216:4284
+2216:4285
+2216:4286
+2216:4287
+2218:4436
+2218:4437
+2219:4438
+2220:4440
+2221:4441
+2222:4442
+2225:4446
+2225:4447
+2225:4448
+2225:4449
+2227:4578
+2227:4579
+2228:4580
+2229:4582
+2230:4583
+2233:4452
+2233:4453
+2233:4454
+2233:4455
+2235:4209
+2235:4210
+2235:4211
+2236:4212
+2237:4214
+2238:4215
+2239:4216
+2242:4221
+2242:4222
+2242:4223
+2242:4224
+2242:4225
+2245:4458
+2245:4459
+2245:4460
+2245:4461
+2248:4464
+2248:4465
+2248:4466
+2248:4467
+2251:4587
+2251:4588
+2252:4589
+2252:4590
+2255:4593
+2255:4594
+2256:4595
+2256:4596
+2259:4599
+2259:4600
+2259:4601
+2259:4602
+2262:4605
+2262:4606
+2262:4607
+2262:4608
+2265:4611
+2265:4612
+2266:4613
+2266:4614
+2269:4617
+2269:4618
+2270:4619
+2271:4621
+2272:4622
+2273:4623
+2274:4624
+2275:4625
+2278:4230
+2278:4231
+2278:4232
+2278:4233
+2278:4234
+2278:4235
+2278:4237
+2278:4238
+2278:4239
+2278:4241
+2278:4242
+2278:4243
+2278:4244
+2278:4245
+2278:4246
+2278:4247
+2278:4248
+2278:4249
+2279:4250
+2280:4252
+2281:4253
+2282:4254
+2283:4255
+2284:4256
+2285:4257
+2288:4261
+2288:4262
+2289:4263
+2290:4265
+2291:4266
+2292:4267
+2293:4268
+2294:4269
+2295:4270
+2298:4206
+2298:4629
+2298:4630
+2298:4631
+2298:4632
+2298:4633
+2301:4470
+2301:4471
+2301:4472
+2301:4473
+2303:4476
+2303:4477
+2303:4478
+2303:4479
+2303:4480
+2303:4481
+2303:4482
+2303:4484
+2303:4485
+2303:4487
+2303:4488
+2303:4489
+2303:4490
+2303:4491
+2303:4492
+2303:4493
+2303:4494
+2304:4495
+2304:4496
+2304:4497
+2306:4636
+2306:4637
+2306:4638
+2306:4639
+2308:4500
+2308:4501
+2308:4502
+2308:4503
+2308:4504
+2308:4505
+2308:4506
+2308:4508
+2308:4509
+2308:4511
+2308:4512
+2308:4513
+2308:4514
+2308:4515
+2308:4516
+2308:4517
+2308:4518
+2310:4519
+2310:4520
+2310:4521
+2312:4290
+2312:4291
+2312:4292
+2312:4293
+2312:4294
+2312:4295
+2312:4296
+2312:4298
+2312:4299
+2312:4301
+2312:4302
+2312:4303
+2312:4304
+2312:4307
+2312:4308
+2312:4309
+2312:4312
+2312:4313
+2312:4314
+2312:4315
+2312:4316
+2312:4319
+2312:4320
+2312:4321
+2312:4322
+2312:4323
+2312:4324
+2312:4325
+2312:4326
+2313:4327
+2313:4328
+2313:4329
+2315:4642
+2315:4643
+2315:4644
+2315:4645
+2315:4646
+2315:4647
+2315:4648
+2315:4650
+2315:4651
+2315:4653
+2315:4654
+2315:4655
+2315:4656
+2315:4657
+2315:4658
+2315:4659
+2315:4660
+2316:4661
+2316:4662
+2316:4663
+2318:4666
+2318:4667
+2318:4668
+2318:4669
+2318:4670
+2318:4671
+2318:4672
+2318:4674
+2318:4676
+2318:4677
+2318:4678
+2318:4679
+2318:4680
+2318:4681
+2318:4682
+2318:4683
+2319:4684
+2319:4685
+2319:4686
+2321:4332
+2321:4333
+2321:4334
+2321:4335
+2321:4336
+2321:4337
+2321:4338
+2321:4340
+2321:4342
+2321:4343
+2321:4344
+2321:4345
+2321:4347
+2321:4348
+2321:4349
+2321:4351
+2321:4352
+2321:4353
+2321:4354
+2321:4363
+2321:4364
+2321:4365
+2321:4366
+2321:4367
+2321:4370
+2321:4371
+2321:4372
+2321:4373
+2321:4376
+2321:4377
+2321:4378
+2321:4381
+2321:4382
+2321:4383
+2321:4384
+2321:4385
+2321:4388
+2321:4389
+2321:4390
+2321:4391
+2321:4392
+2321:4393
+2321:4394
+2321:4395
+2322:4396
+2323:4397
+2323:4398
+2325:4689
+2325:4690
+2325:4691
+2325:4692
+2325:4693
+2325:4694
+2325:4695
+2325:4697
+2325:4698
+2325:4700
+2325:4701
+2325:4702
+2325:4703
+2325:4704
+2325:4705
+2325:4706
+2325:4707
+2326:4708
+2327:4709
+2327:4710
+2329:4713
+2329:4714
+2329:4715
+2329:4716
+2331:4719
+2331:4720
+2331:4721
+2331:4722
+2334:4524
+2334:4525
+2334:4526
+2334:4527
+2336:4725
+2336:4726
+2336:4727
+2336:4728
+2338:4731
+2338:4732
+2338:4733
+2338:4734
+2340:4737
+2340:4738
+2340:4739
+2340:4740
+2342:4743
+2342:4744
+2342:4745
+2342:4746
+2344:4749
+2344:4750
+2344:4751
+2344:4752
+2346:4755
+2346:4756
+2346:4757
+2346:4758
+2348:4761
+2348:4762
+2348:4763
+2348:4764
+2350:4767
+2350:4768
+2350:4769
+2350:4770
+2352:4773
+2352:4774
+2352:4775
+2352:4776
+2354:4779
+2354:4780
+2354:4781
+2354:4782
+2356:4785
+2356:4786
+2356:4787
+2356:4788
+2358:4791
+2358:4792
+2358:4793
+2358:4794
+2360:4797
+2360:4798
+2360:4799
+2360:4800
+2362:4803
+2362:4804
+2362:4805
+2362:4806
+2364:4809
+2364:4810
+2364:4811
+2364:4812
+2367:4530
+2367:4531
+2367:4532
+2367:4533
+2370:4536
+2370:4537
+2370:4538
+2370:4539
+2372:4815
+2372:4816
+2372:4817
+2372:4818
+2375:4542
+2375:4543
+2375:4544
+2375:4545
+2377:4401
+2377:4402
+2377:4403
+2377:4404
+2379:4548
+2379:4549
+2379:4550
+2379:4551
+2381:4821
+2381:4822
+2381:4823
+2381:4824
+2383:4554
+2383:4555
+2383:4556
+2383:4557
+2385:4407
+2385:4408
+2385:4409
+2385:4410
+2387:4560
+2387:4561
+2388:4562
+2389:4564
+2393:4568
+2393:4569
+2394:4570
+2395:4572
+2396:4573
+2397:4574
+2400:4827
+2400:4828
+2400:4829
+2400:4830
+2403:4844
+2403:4845
+2403:4846
+2403:4847
+2403:4892
+2403:4893
+2403:4894
+2403:4895
+2403:4896
+2403:4897
+2405:4850
+2405:4851
+2405:4852
+2405:4853
+2405:4856
+2405:4857
+2405:4858
+2405:4859
+2405:4860
+2405:4864
+2405:4865
+2405:4866
+2405:4869
+2405:4870
+2405:4871
+2405:4872
+2405:4873
+2405:4874
+2405:4875
+2405:4876
+2405:4877
+2405:4880
+2405:4881
+2405:4882
+2405:4883
+2405:4884
+2405:4885
+2405:4886
+2405:4887
+2405:4888
+2405:4889
+2405:4890
+2408:807
+2408:808
+2408:809
+2408:810
+2408:2286
+2408:2287
+2408:2288
+2408:2289
+2408:2290
+2408:2291
+2410:813
+2410:2274
+2410:2277
+2410:2280
+2410:2281
+2410:2282
+2410:2283
+2410:2284
+2411:814
+2411:815
+2411:816
+2411:817
+2411:818
+2411:819
+2411:820
+2411:821
+2411:822
+2413:825
+2413:826
+2413:827
+2413:828
+2413:829
+2413:830
+2413:831
+2413:832
+2413:8...
[truncated message content] |
|
From: <del...@us...> - 2013-05-24 17:26:47
|
Revision: 18468
http://sourceforge.net/p/exist/code/18468
Author: deliriumsky
Date: 2013-05-24 17:26:44 +0000 (Fri, 24 May 2013)
Log Message:
-----------
[ignore] use static name
Modified Paths:
--------------
trunk/eXist/extensions/exquery/restxq/src/main/java/org/exist/extensions/exquery/restxq/impl/xquery/RegistryFunctions.java
Modified: trunk/eXist/extensions/exquery/restxq/src/main/java/org/exist/extensions/exquery/restxq/impl/xquery/RegistryFunctions.java
===================================================================
--- trunk/eXist/extensions/exquery/restxq/src/main/java/org/exist/extensions/exquery/restxq/impl/xquery/RegistryFunctions.java 2013-05-24 13:01:21 UTC (rev 18467)
+++ trunk/eXist/extensions/exquery/restxq/src/main/java/org/exist/extensions/exquery/restxq/impl/xquery/RegistryFunctions.java 2013-05-24 17:26:44 UTC (rev 18468)
@@ -79,7 +79,7 @@
public final static FunctionSignature signatures[] = {
new FunctionSignature(
- new QName("resource-functions", RestXqModule.NAMESPACE_URI, RestXqModule.PREFIX),
+ new QName(RESOURCE_FUNCTIONS.getLocalName(), RestXqModule.NAMESPACE_URI, RestXqModule.PREFIX),
"Gets a list of all the registered resource functions.",
FunctionSignature.NO_ARGS,
new FunctionReturnSequenceType(Type.DOCUMENT, Cardinality.ONE, "The list of registered resource functions.")
|
|
From: <wol...@us...> - 2013-05-24 13:01:23
|
Revision: 18467
http://sourceforge.net/p/exist/code/18467
Author: wolfgang_m
Date: 2013-05-24 13:01:21 +0000 (Fri, 24 May 2013)
Log Message:
-----------
[documentation] Styling changes: move search box to navbar, hide sidebar on mobile.
Modified Paths:
--------------
apps/doc/resources/css/exist.css
apps/doc/templates/content.html
apps/doc/templates/page.html
Modified: apps/doc/resources/css/exist.css
===================================================================
--- apps/doc/resources/css/exist.css 2013-05-24 10:59:42 UTC (rev 18466)
+++ apps/doc/resources/css/exist.css 2013-05-24 13:01:21 UTC (rev 18467)
@@ -71,6 +71,10 @@
.navbar .nav>li>.dropdown-toggle {
color: #777;
}
+
+ #sidebar {
+ display: none;
+ }
}
@media (min-width: 979px) {
@@ -112,6 +116,10 @@
}
}
+.navbar-search input {
+ margin-top: 4px;
+}
+
#navigation .actions {
float: right;
margin: 8px 0 8px 0;
@@ -145,7 +153,7 @@
#footer { clear: both; margin: 0 auto; padding: 1em 1em; height: 50px; color: #222; background: url(../images/body.gif) repeat 50% 100%; }
-#footer ul { float: left; margin: 0 0 0 -4px; }
+#footer ul { float: left; width: 640px; margin: 0 0 0 -4px; }
#footer ul li { display: inline; }
#footer ul li a { padding: 2px 4px; color: #ffcb05; }
#footer ul li a:hover { background: #333; }
Modified: apps/doc/templates/content.html
===================================================================
--- apps/doc/templates/content.html 2013-05-24 10:59:42 UTC (rev 18466)
+++ apps/doc/templates/content.html 2013-05-24 13:01:21 UTC (rev 18467)
@@ -8,9 +8,6 @@
</div>
</div>
<div class="span3" id="sidebar">
- <form class="well form-search" action="search.html" method="GET">
- <input type="text" name="q" class="search-query input-block-level" placeholder="Search Documentation"/>
- </form>
<div class="well">
<div class="docbook:toc"/>
</div>
Modified: apps/doc/templates/page.html
===================================================================
--- apps/doc/templates/page.html 2013-05-24 10:59:42 UTC (rev 18466)
+++ apps/doc/templates/page.html 2013-05-24 13:01:21 UTC (rev 18467)
@@ -128,6 +128,9 @@
</ul>
</li>
</ul>
+ <form class="navbar-search pull-right" action="search.html" method="GET">
+ <input type="text" name="q" class="search-query" placeholder="Search Documentation"/>
+ </form>
</div>
</div>
</div>
|
|
From: <wol...@us...> - 2013-05-24 10:59:46
|
Revision: 18466
http://sourceforge.net/p/exist/code/18466
Author: wolfgang_m
Date: 2013-05-24 10:59:42 +0000 (Fri, 24 May 2013)
Log Message:
-----------
[demo] Fixed xforms demo layout issues.
Modified Paths:
--------------
apps/demo/examples/xforms/demo.html
apps/demo/resources/css/bootstrap.min.css
apps/demo/resources/css/exist.css
apps/demo/templates/page.html
Modified: apps/demo/examples/xforms/demo.html
===================================================================
--- apps/demo/examples/xforms/demo.html 2013-05-24 09:41:32 UTC (rev 18465)
+++ apps/demo/examples/xforms/demo.html 2013-05-24 10:59:42 UTC (rev 18466)
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<div xmlns="http://www.w3.org/1999/xhtml" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xf="http://www.w3.org/2002/xforms" class="templates:surround?with=templates/page.html&at=main">
+<div xmlns="http://www.w3.org/1999/xhtml" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xf="http://www.w3.org/2002/xforms" data-template="templates:surround" data-template-with="templates/page.html" data-template-at="main" data-template-options="noscript=yes">
<xf:model>
<xf:instance xmlns="" id="all">
<addresses/>
@@ -18,26 +18,18 @@
</parameters>
</xf:instance>
<xf:bind id="address-id" nodeset="//address/@id" relevant="true()"/>
- <!-- Submissions -->
- <!-- Load list of addresses -->
<xf:submission id="load" resource="{$restxq}address" method="get" replace="instance">
<xf:message ev:event="xforms-submit-done" level="ephemeral">Address list loaded.</xf:message>
</xf:submission>
- <!-- Save an address -->
<xf:submission id="save" resource="{$restxq}address" method="put" replace="instance" ref="//address[index('address-repeat')]">
<xf:message ev:event="xforms-submit-done" level="ephemeral">Address saved.</xf:message>
<xf:message ev:event="xforms-submit-error" level="ephemeral">An error occurred.</xf:message>
</xf:submission>
- <!-- Delete an address -->
<xf:submission id="delete" resource="{$restxq}address/{instance('all')//address[index('address-repeat')]/@id}" method="delete" replace="instance">
<xf:message ev:event="xforms-submit-done" level="ephemeral">Address deleted.</xf:message>
<xf:message ev:event="xforms-submit-error" level="ephemeral">An error occurred.</xf:message>
</xf:submission>
- <!-- Search addresses -->
- <xf:submission id="search" resource="{$restxq}search" method="get" serialization="application/x-www-form-urlencoded" ref="instance('search')" targetref="instance('all')" replace="instance">
- <!--xf:message ev:event="xforms-submit-done" level="ephemeral">Address list loaded.</xf:message-->
- </xf:submission>
- <!-- Initial loading of the address list when form is ready -->
+ <xf:submission id="search" resource="{$restxq}search" method="get" serialization="application/x-www-form-urlencoded" ref="instance('search')" targetref="instance('all')" replace="instance"/>
<xf:action ev:event="xforms-ready">
<xf:send submission="load"/>
</xf:action>
Modified: apps/demo/resources/css/bootstrap.min.css
===================================================================
--- apps/demo/resources/css/bootstrap.min.css 2013-05-24 09:41:32 UTC (rev 18465)
+++ apps/demo/resources/css/bootstrap.min.css 2013-05-24 10:59:42 UTC (rev 18466)
@@ -1,836 +1,9 @@
-article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block;}
-audio,canvas,video{display:inline-block;*display:inline;*zoom:1;}
-audio:not([controls]){display:none;}
-html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;}
-a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
-a:hover,a:active{outline:0;}
-sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline;}
-sup{top:-0.5em;}
-sub{bottom:-0.25em;}
-img{max-width:100%;width:auto\9;height:auto;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic;}
-#map_canvas img,.google-maps img{max-width:none;}
-button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle;}
-button,input{*overflow:visible;line-height:normal;}
-button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0;}
-button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;}
-input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield;}
-input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none;}
-textarea{overflow:auto;vertical-align:top;}
-.clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0;}
-.clearfix:after{clear:both;}
-.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;}
-.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
-body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333333;background-color:#ffffff;}
-a{color:#0088cc;text-decoration:none;}
-a:hover{color:#005580;text-decoration:underline;}
-.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
-.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.1);-moz-box-shadow:0 1px 3px rgba(0, 0, 0, 0.1);box-shadow:0 1px 3px rgba(0, 0, 0, 0.1);}
-.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px;}
-.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";line-height:0;}
-.row:after{clear:both;}
-[class*="span"]{float:left;min-height:1px;margin-left:20px;}
-.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px;}
-.span12{width:940px;}
-.span11{width:860px;}
-.span10{width:780px;}
-.span9{width:700px;}
-.span8{width:620px;}
-.span7{width:540px;}
-.span6{width:460px;}
-.span5{width:380px;}
-.span4{width:300px;}
-.span3{width:220px;}
-.span2{width:140px;}
-.span1{width:60px;}
-.offset12{margin-left:980px;}
-.offset11{margin-left:900px;}
-.offset10{margin-left:820px;}
-.offset9{margin-left:740px;}
-.offset8{margin-left:660px;}
-.offset7{margin-left:580px;}
-.offset6{margin-left:500px;}
-.offset5{margin-left:420px;}
-.offset4{margin-left:340px;}
-.offset3{margin-left:260px;}
-.offset2{margin-left:180px;}
-.offset1{margin-left:100px;}
-.row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";line-height:0;}
-.row-fluid:after{clear:both;}
-.row-fluid [class*="span"]{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;}
-.row-fluid [class*="span"]:first-child{margin-left:0;}
-.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%;}
-.row-fluid .span12{width:100%;*width:99.94680851063829%;}
-.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%;}
-.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%;}
-.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%;}
-.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%;}
-.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%;}
-.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%;}
-.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%;}
-.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%;}
-.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%;}
-.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%;}
-.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%;}
-.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%;}
-.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%;}
-.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%;}
-.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%;}
-.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%;}
-.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%;}
-.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%;}
-.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%;}
-.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%;}
-.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%;}
-.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%;}
-.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%;}
-.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%;}
-.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%;}
-.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%;}
-.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%;}
-.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%;}
-.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%;}
-.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%;}
-.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%;}
-.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%;}
-.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%;}
-.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%;}
-.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%;}
-[class*="span"].hide,.row-fluid [class*="span"].hide{display:none;}
-[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right;}
-.container{margin-right:auto;margin-left:auto;*zoom:1;}.container:before,.container:after{display:table;content:"";line-height:0;}
-.container:after{clear:both;}
-.container-fluid{padding-right:20px;padding-left:20px;*zoom:1;}.container-fluid:before,.container-fluid:after{display:table;content:"";line-height:0;}
-.container-fluid:after{clear:both;}
-p{margin:0 0 10px;}
-.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px;}
-small{font-size:85%;}
-strong{font-weight:bold;}
-em{font-style:italic;}
-cite{font-style:normal;}
-.muted{color:#999999;}
-.text-warning{color:#c09853;}
-a.text-warning:hover{color:#a47e3c;}
-.text-error{color:#b94a48;}
-a.text-error:hover{color:#953b39;}
-.text-info{color:#3a87ad;}
-a.text-info:hover{color:#2d6987;}
-.text-success{color:#468847;}
-a.text-success:hover{color:#356635;}
-h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility;}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999999;}
-h1,h2,h3{line-height:40px;}
-h1{font-size:38.5px;}
-h2{font-size:31.5px;}
-h3{font-size:24.5px;}
-h4{font-size:17.5px;}
-h5{font-size:14px;}
-h6{font-size:11.9px;}
-h1 small{font-size:24.5px;}
-h2 small{font-size:17.5px;}
-h3 small{font-size:14px;}
-h4 small{font-size:14px;}
-.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eeeeee;}
-ul,ol{padding:0;margin:0 0 10px 25px;}
-ul ul,ul ol,ol ol,ol ul{margin-bottom:0;}
-li{line-height:20px;}
-ul.unstyled,ol.unstyled{margin-left:0;list-style:none;}
-dl{margin-bottom:20px;}
-dt,dd{line-height:20px;}
-dt{font-weight:bold;}
-dd{margin-left:10px;}
-.dl-horizontal{*zoom:1;}.dl-horizontal:before,.dl-horizontal:after{display:table;content:"";line-height:0;}
-.dl-horizontal:after{clear:both;}
-.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
-.dl-horizontal dd{margin-left:180px;}
-hr{margin:20px 0;border:0;border-top:1px solid #eeeeee;border-bottom:1px solid #ffffff;}
-abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999999;}
-abbr.initialism{font-size:90%;text-transform:uppercase;}
-blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eeeeee;}blockquote p{margin-bottom:0;font-size:16px;font-weight:300;line-height:25px;}
-blockquote small{display:block;line-height:20px;color:#999999;}blockquote small:before{content:'\2014 \00A0';}
-blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eeeeee;border-left:0;}blockquote.pull-right p,blockquote.pull-right small{text-align:right;}
-blockquote.pull-right small:before{content:'';}
-blockquote.pull-right small:after{content:'\00A0 \2014';}
-q:before,q:after,blockquote:before,blockquote:after{content:"";}
-address{display:block;margin-bottom:20px;font-style:normal;line-height:20px;}
-code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
-code{padding:2px 4px;color:#d14;background-color:#f7f7f9;border:1px solid #e1e1e8;}
-pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}pre.prettyprint{margin-bottom:20px;}
-pre code{padding:0;color:inherit;background-color:transparent;border:0;}
-.pre-scrollable{max-height:340px;overflow-y:scroll;}
-form{margin:0 0 20px;}
-fieldset{padding:0;margin:0;border:0;}
-legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333333;border:0;border-bottom:1px solid #e5e5e5;}legend small{font-size:15px;color:#999999;}
-label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px;}
-input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;}
-label{display:block;margin-bottom:5px;}
-select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555555;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;vertical-align:middle;}
-input,textarea,.uneditable-input{width:206px;}
-textarea{height:auto;}
-textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#ffffff;border:1px solid #cccccc;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-webkit-transition:border linear .2s, box-shadow linear .2s;-moz-transition:border linear .2s, box-shadow linear .2s;-o-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82, 168, 236, 0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);}
-input[type="radio"],input[type="checkbox"]{margin:4px 0 0;*margin-top:0;margin-top:1px \9;line-height:normal;cursor:pointer;}
-input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto;}
-select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px;}
-select{width:220px;border:1px solid #cccccc;background-color:#ffffff;}
-select[multiple],select[size]{height:auto;}
-select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
-.uneditable-input,.uneditable-textarea{color:#999999;background-color:#fcfcfc;border-color:#cccccc;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);cursor:not-allowed;}
-.uneditable-input{overflow:hidden;white-space:nowrap;}
-.uneditable-textarea{width:auto;height:auto;}
-input:-moz-placeholder,textarea:-moz-placeholder{color:#999999;}
-input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999999;}
-input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999999;}
-.radio,.checkbox{min-height:20px;padding-left:20px;}
-.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px;}
-.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px;}
-.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle;}
-.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px;}
-.input-mini{width:60px;}
-.input-small{width:90px;}
-.input-medium{width:150px;}
-.input-large{width:210px;}
-.input-xlarge{width:270px;}
-.input-xxlarge{width:530px;}
-input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0;}
-.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block;}
-input,textarea,.uneditable-input{margin-left:0;}
-.controls-row [class*="span"]+[class*="span"]{margin-left:20px;}
-input.span12, textarea.span12, .uneditable-input.span12{width:926px;}
-input.span11, textarea.span11, .uneditable-input.span11{width:846px;}
-input.span10, textarea.span10, .uneditable-input.span10{width:766px;}
-input.span9, textarea.span9, .uneditable-input.span9{width:686px;}
-input.span8, textarea.span8, .uneditable-input.span8{width:606px;}
-input.span7, textarea.span7, .uneditable-input.span7{width:526px;}
-input.span6, textarea.span6, .uneditable-input.span6{width:446px;}
-input.span5, textarea.span5, .uneditable-input.span5{width:366px;}
-input.span4, textarea.span4, .uneditable-input.span4{width:286px;}
-input.span3, textarea.span3, .uneditable-input.span3{width:206px;}
-input.span2, textarea.span2, .uneditable-input.span2{width:126px;}
-input.span1, textarea.span1, .uneditable-input.span1{width:46px;}
-.controls-row{*zoom:1;}.controls-row:before,.controls-row:after{display:table;content:"";line-height:0;}
-.controls-row:after{clear:both;}
-.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left;}
-.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px;}
-input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eeeeee;}
-input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent;}
-.control-group.warning>label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853;}
-.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853;}
-.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;}
-.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853;}
-.control-group.error>label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48;}
-.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48;}
-.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;}
-.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48;}
-.control-group.success>label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847;}
-.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847;}
-.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;}
-.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847;}
-.control-group.info>label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad;}
-.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad;}
-.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7ab5d3;}
-.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad;}
-input:focus:required:invalid,textarea:focus:required:invalid,select:focus:required:invalid{color:#b94a48;border-color:#ee5f5b;}input:focus:required:invalid:focus,textarea:focus:required:invalid:focus,select:focus:required:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7;}
-.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1;}.form-actions:before,.form-actions:after{display:table;content:"";line-height:0;}
-.form-actions:after{clear:both;}
-.help-block,.help-inline{color:#595959;}
-.help-block{display:block;margin-bottom:10px;}
-.help-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;padding-left:5px;}
-.input-append,.input-prepend{margin-bottom:5px;font-size:0;white-space:nowrap;}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu{font-size:14px;}
-.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2;}
-.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #ffffff;background-color:#eeeeee;border:1px solid #ccc;}
-.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
-.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546;}
-.input-prepend .add-on,.input-prepend .btn{margin-right:-1px;}
-.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;}
-.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;}.input-append input+.btn-group .btn,.input-append select+.btn-group .btn,.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
-.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px;}
-.input-append .add-on:last-child,.input-append .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
-.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
-.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;}
-.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;}
-.input-prepend.input-append .btn-group:first-child{margin-left:0;}
-input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;}
-.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
-.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px;}
-.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0;}
-.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0;}
-.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px;}
-.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;*zoom:1;margin-bottom:0;vertical-align:middle;}
-.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none;}
-.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block;}
-.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0;}
-.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle;}
-.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0;}
-.control-group{margin-bottom:10px;}
-legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate;}
-.form-horizontal .control-group{margin-bottom:20px;*zoom:1;}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;content:"";line-height:0;}
-.form-horizontal .control-group:after{clear:both;}
-.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right;}
-.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0;}.form-horizontal .controls:first-child{*padding-left:180px;}
-.form-horizontal .help-block{margin-bottom:0;}
-.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block{margin-top:10px;}
-.form-horizontal .form-actions{padding-left:180px;}
-table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0;}
-.table{width:100%;margin-bottom:20px;}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #dddddd;}
-.table th{font-weight:bold;}
-.table thead th{vertical-align:bottom;}
-.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0;}
-.table tbody+tbody{border-top:2px solid #dddddd;}
-.table-condensed th,.table-condensed td{padding:4px 5px;}
-.table-bordered{border:1px solid #dddddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.table-bordered th,.table-bordered td{border-left:1px solid #dddddd;}
-.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0;}
-.table-bordered thead:first-child tr:first-child th:first-child,.table-bordered tbody:first-child tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px;}
-.table-bordered thead:first-child tr:first-child th:last-child,.table-bordered tbody:first-child tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px;}
-.table-bordered thead:last-child tr:last-child th:first-child,.table-bordered tbody:last-child tr:last-child td:first-child,.table-bordered tfoot:last-child tr:last-child td:first-child{-webkit-border-radius:0 0 0 4px;-moz-border-radius:0 0 0 4px;border-radius:0 0 0 4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;}
-.table-bordered thead:last-child tr:last-child th:last-child,.table-bordered tbody:last-child tr:last-child td:last-child,.table-bordered tfoot:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;}
-.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px;}
-.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px;}
-.table-striped tbody tr:nth-child(odd) td,.table-striped tbody tr:nth-child(odd) th{background-color:#f9f9f9;}
-.table-hover tbody tr:hover td,.table-hover tbody tr:hover th{background-color:#f5f5f5;}
-table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0;}
-.table td.span1,.table th.span1{float:none;width:44px;margin-left:0;}
-.table td.span2,.table th.span2{float:none;width:124px;margin-left:0;}
-.table td.span3,.table th.span3{float:none;width:204px;margin-left:0;}
-.table td.span4,.table th.span4{float:none;width:284px;margin-left:0;}
-.table td.span5,.table th.span5{float:none;width:364px;margin-left:0;}
-.table td.span6,.table th.span6{float:none;width:444px;margin-left:0;}
-.table td.span7,.table th.span7{float:none;width:524px;margin-left:0;}
-.table td.span8,.table th.span8{float:none;width:604px;margin-left:0;}
-.table td.span9,.table th.span9{float:none;width:684px;margin-left:0;}
-.table td.span10,.table th.span10{float:none;width:764px;margin-left:0;}
-.table td.span11,.table th.span11{float:none;width:844px;margin-left:0;}
-.table td.span12,.table th.span12{float:none;width:924px;margin-left:0;}
-.table tbody tr.success td{background-color:#dff0d8;}
-.table tbody tr.error td{background-color:#f2dede;}
-.table tbody tr.warning td{background-color:#fcf8e3;}
-.table tbody tr.info td{background-color:#d9edf7;}
-.table-hover tbody tr.success:hover td{background-color:#d0e9c6;}
-.table-hover tbody tr.error:hover td{background-color:#ebcccc;}
-.table-hover tbody tr.warning:hover td{background-color:#faf2cc;}
-.table-hover tbody tr.info:hover td{background-color:#c4e3f3;}
-[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat;margin-top:1px;}
-.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png");}
-.icon-glass{background-position:0 0;}
-.icon-music{background-position:-24px 0;}
-.icon-search{background-position:-48px 0;}
-.icon-envelope{background-position:-72px 0;}
-.icon-heart{background-position:-96px 0;}
-.icon-star{background-position:-120px 0;}
-.icon-star-empty{background-position:-144px 0;}
-.icon-user{background-position:-168px 0;}
-.icon-film{background-position:-192px 0;}
-.icon-th-large{background-position:-216px 0;}
-.icon-th{background-position:-240px 0;}
-.icon-th-list{background-position:-264px 0;}
-.icon-ok{background-position:-288px 0;}
-.icon-remove{background-position:-312px 0;}
-.icon-zoom-in{background-position:-336px 0;}
-.icon-zoom-out{background-position:-360px 0;}
-.icon-off{background-position:-384px 0;}
-.icon-signal{background-position:-408px 0;}
-.icon-cog{background-position:-432px 0;}
-.icon-trash{background-position:-456px 0;}
-.icon-home{background-position:0 -24px;}
-.icon-file{background-position:-24px -24px;}
-.icon-time{background-position:-48px -24px;}
-.icon-road{background-position:-72px -24px;}
-.icon-download-alt{background-position:-96px -24px;}
-.icon-download{background-position:-120px -24px;}
-.icon-upload{background-position:-144px -24px;}
-.icon-inbox{background-position:-168px -24px;}
-.icon-play-circle{background-position:-192px -24px;}
-.icon-repeat{background-position:-216px -24px;}
-.icon-refresh{background-position:-240px -24px;}
-.icon-list-alt{background-position:-264px -24px;}
-.icon-lock{background-position:-287px -24px;}
-.icon-flag{background-position:-312px -24px;}
-.icon-headphones{background-position:-336px -24px;}
-.icon-volume-off{background-position:-360px -24px;}
-.icon-volume-down{background-position:-384px -24px;}
-.icon-volume-up{background-position:-408px -24px;}
-.icon-qrcode{background-position:-432px -24px;}
-.icon-barcode{background-position:-456px -24px;}
-.icon-tag{background-position:0 -48px;}
-.icon-tags{background-position:-25px -48px;}
-.icon-book{background-position:-48px -48px;}
-.icon-bookmark{background-position:-72px -48px;}
-.icon-print{background-position:-96px -48px;}
-.icon-camera{background-position:-120px -48px;}
-.icon-font{background-position:-144px -48px;}
-.icon-bold{background-position:-167px -48px;}
-.icon-italic{background-position:-192px -48px;}
-.icon-text-height{background-position:-216px -48px;}
-.icon-text-width{background-position:-240px -48px;}
-.icon-align-left{background-position:-264px -48px;}
-.icon-align-center{background-position:-288px -48px;}
-.icon-align-right{background-position:-312px -48px;}
-.icon-align-justify{background-position:-336px -48px;}
-.icon-list{background-position:-360px -48px;}
-.icon-indent-left{background-position:-384px -48px;}
-.icon-indent-right{background-position:-408px -48px;}
-.icon-facetime-video{background-position:-432px -48px;}
-.icon-picture{background-position:-456px -48px;}
-.icon-pencil{background-position:0 -72px;}
-.icon-map-marker{background-position:-24px -72px;}
-.icon-adjust{background-position:-48px -72px;}
-.icon-tint{background-position:-72px -72px;}
-.icon-edit{background-position:-96px -72px;}
-.icon-share{background-position:-120px -72px;}
-.icon-check{background-position:-144px -72px;}
-.icon-move{background-position:-168px -72px;}
-.icon-step-backward{background-position:-192px -72px;}
-.icon-fast-backward{background-position:-216px -72px;}
-.icon-backward{background-position:-240px -72px;}
-.icon-play{background-position:-264px -72px;}
-.icon-pause{background-position:-288px -72px;}
-.icon-stop{background-position:-312px -72px;}
-.icon-forward{background-position:-336px -72px;}
-.icon-fast-forward{background-position:-360px -72px;}
-.icon-step-forward{background-position:-384px -72px;}
-.icon-eject{background-position:-408px -72px;}
-.icon-chevron-left{background-position:-432px -72px;}
-.icon-chevron-right{background-position:-456px -72px;}
-.icon-plus-sign{background-position:0 -96px;}
-.icon-minus-sign{background-position:-24px -96px;}
-.icon-remove-sign{background-position:-48px -96px;}
-.icon-ok-sign{background-position:-72px -96px;}
-.icon-question-sign{background-position:-96px -96px;}
-.icon-info-sign{background-position:-120px -96px;}
-.icon-screenshot{background-position:-144px -96px;}
-.icon-remove-circle{background-position:-168px -96px;}
-.icon-ok-circle{background-position:-192px -96px;}
-.icon-ban-circle{background-position:-216px -96px;}
-.icon-arrow-left{background-position:-240px -96px;}
-.icon-arrow-right{background-position:-264px -96px;}
-.icon-arrow-up{background-position:-289px -96px;}
-.icon-arrow-down{background-position:-312px -96px;}
-.icon-share-alt{background-position:-336px -96px;}
-.icon-resize-full{background-position:-360px -96px;}
-.icon-resize-small{background-position:-384px -96px;}
-.icon-plus{background-position:-408px -96px;}
-.icon-minus{background-position:-433px -96px;}
-.icon-asterisk{background-position:-456px -96px;}
-.icon-exclamation-sign{background-position:0 -120px;}
-.icon-gift{background-position:-24px -120px;}
-.icon-leaf{background-position:-48px -120px;}
-.icon-fire{background-position:-72px -120px;}
-.icon-eye-open{background-position:-96px -120px;}
-.icon-eye-close{background-position:-120px -120px;}
-.icon-warning-sign{background-position:-144px -120px;}
-.icon-plane{background-position:-168px -120px;}
-.icon-calendar{background-position:-192px -120px;}
-.icon-random{background-position:-216px -120px;width:16px;}
-.icon-comment{background-position:-240px -120px;}
-.icon-magnet{background-position:-264px -120px;}
-.icon-chevron-up{background-position:-288px -120px;}
-.icon-chevron-down{background-position:-313px -119px;}
-.icon-retweet{background-position:-336px -120px;}
-.icon-shopping-cart{background-position:-360px -120px;}
-.icon-folder-close{background-position:-384px -120px;}
-.icon-folder-open{background-position:-408px -120px;width:16px;}
-.icon-resize-vertical{background-position:-432px -119px;}
-.icon-resize-horizontal{background-position:-456px -118px;}
-.icon-hdd{background-position:0 -144px;}
-.icon-bullhorn{background-position:-24px -144px;}
-.icon-bell{background-position:-48px -144px;}
-.icon-certificate{background-position:-72px -144px;}
-.icon-thumbs-up{background-position:-96px -144px;}
-.icon-thumbs-down{background-position:-120px -144px;}
-.icon-hand-right{background-position:-144px -144px;}
-.icon-hand-left{background-position:-168px -144px;}
-.icon-hand-up{background-position:-192px -144px;}
-.icon-hand-down{background-position:-216px -144px;}
-.icon-circle-arrow-right{background-position:-240px -144px;}
-.icon-circle-arrow-left{background-position:-264px -144px;}
-.icon-circle-arrow-up{background-position:-288px -144px;}
-.icon-circle-arrow-down{background-position:-312px -144px;}
-.icon-globe{background-position:-336px -144px;}
-.icon-wrench{background-position:-360px -144px;}
-.icon-tasks{background-position:-384px -144px;}
-.icon-filter{background-position:-408px -144px;}
-.icon-briefcase{background-position:-432px -144px;}
-.icon-fullscreen{background-position:-456px -144px;}
-.dropup,.dropdown{position:relative;}
-.dropdown-toggle{*margin-bottom:-3px;}
-.dropdown-toggle:active,.open .dropdown-toggle{outline:0;}
-.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000000;border-right:4px solid transparent;border-left:4px solid transparent;content:"";}
-.dropdown .caret{margin-top:8px;margin-left:2px;}
-.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#ffffff;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;}.dropdown-menu.pull-right{right:0;left:auto;}
-.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;}
-.dropdown-menu li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333333;white-space:nowrap;}
-.dropdown-menu li>a:hover,.dropdown-menu li>a:focus,.dropdown-submenu:hover>a{text-decoration:none;color:#ffffff;background-color:#0081c2;background-image:-moz-linear-gradient(top, #0088cc, #0077b3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));background-image:-webkit-linear-gradient(top, #0088cc, #0077b3);background-image:-o-linear-gradient(top, #0088cc, #0077b3);background-image:linear-gradient(to bottom, #0088cc, #0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);}
-.dropdown-menu .active>a,.dropdown-menu .active>a:hover{color:#333333;text-decoration:none;outline:0;background-color:#0081c2;background-image:-moz-linear-gradient(top, #0088cc, #0077b3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));background-image:-webkit-linear-gradient(top, #0088cc, #0077b3);background-image:-o-linear-gradient(top, #0088cc, #0077b3);background-image:linear-gradient(to bottom, #0088cc, #0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);}
-.dropdown-menu .disabled>a,.dropdown-menu .disabled>a:hover{color:#999999;}
-.dropdown-menu .disabled>a:hover{text-decoration:none;background-color:transparent;background-image:none;cursor:default;}
-.open{*z-index:1000;}.open>.dropdown-menu{display:block;}
-.pull-right>.dropdown-menu{right:0;left:auto;}
-.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000000;content:"";}
-.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px;}
-.dropdown-submenu{position:relative;}
-.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px;}
-.dropdown-submenu:hover>.dropdown-menu{display:block;}
-.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0;}
-.dropdown-submenu>a:after{display:block;content:" ";float:right;width:0;height:0;border-color:transparent;border-style:solid;border-width:5px 0 5px 5px;border-left-color:#cccccc;margin-top:5px;margin-right:-10px;}
-.dropdown-submenu:hover>a:after{border-left-color:#ffffff;}
-.dropdown-submenu.pull-left{float:none;}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px;}
-.dropdown .dropdown-menu .nav-header{padding-left:20px;padding-right:20px;}
-.typeahead{margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
-.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);}.well blockquote{border-color:#ddd;border-color:rgba(0, 0, 0, 0.15);}
-.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
-.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
-.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-moz-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear;}.fade.in{opacity:1;}
-.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height 0.35s ease;-moz-transition:height 0.35s ease;-o-transition:height 0.35s ease;transition:height 0.35s ease;}.collapse.in{height:auto;}
-.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20);}.close:hover{color:#000000;text-decoration:none;cursor:pointer;opacity:0.4;filter:alpha(opacity=40);}
-button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none;}
-.btn{display:inline-block;*display:inline;*zoom:1;padding:4px 12px;margin-bottom:0;font-size:14px;line-height:20px;*line-height:20px;text-align:center;vertical-align:middle;cursor:pointer;color:#333333;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);background-color:#f5f5f5;background-image:-moz-linear-gradient(top, #ffffff, #e6e6e6);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));background-image:-webkit-linear-gradient(top, #ffffff, #e6e6e6);background-image:-o-linear-gradient(top, #ffffff, #e6e6e6);background-image:linear-gradient(to bottom, #ffffff, #e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#e6e6e6;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border:1px solid #bbbbbb;*border:0;border-bottom-color:#a2a2a2;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*margin-left:.3em;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);}.btn:hover,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333333;background-color:#e6e6e6;*background-color:#d9d9d9;}
-.btn:active,.btn.active{background-color:#cccccc \9;}
-.btn:first-child{*margin-left:0;}
-.btn:hover{color:#333333;text-decoration:none;background-color:#e6e6e6;*background-color:#d9d9d9;background-position:0 -15px;-webkit-transition:background-position 0.1s linear;-moz-transition:background-position 0.1s linear;-o-transition:background-position 0.1s linear;transition:background-position 0.1s linear;}
-.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
-.btn.active,.btn:active{background-color:#e6e6e6;background-color:#d9d9d9 \9;background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);}
-.btn.disabled,.btn[disabled]{cursor:default;background-color:#e6e6e6;background-image:none;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
-.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;}
-.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:2px;}
-.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
-.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0;}
-.btn-mini{padding:1px 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
-.btn-block{display:block;width:100%;padding-left:0;padding-right:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
-.btn-block+.btn-block{margin-top:5px;}
-input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%;}
-.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255, 255, 255, 0.75);}
-.btn{border-color:#c5c5c5;border-color:rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.25);}
-.btn-primary{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#006dcc;background-image:-moz-linear-gradient(top, #0088cc, #0044cc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));background-image:-webkit-linear-gradient(top, #0088cc, #0044cc);background-image:-o-linear-gradient(top, #0088cc, #0044cc);background-image:linear-gradient(to bottom, #0088cc, #0044cc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);border-color:#0044cc #0044cc #002a80;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#0044cc;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#ffffff;background-color:#0044cc;*background-color:#003bb3;}
-.btn-primary:active,.btn-primary.active{background-color:#003399 \9;}
-.btn-warning{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#faa732;background-image:-moz-linear-gradient(top, #fbb450, #f89406);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));background-image:-webkit-linear-gradient(top, #fbb450, #f89406);background-image:-o-linear-gradient(top, #fbb450, #f89406);background-image:linear-gradient(to bottom, #fbb450, #f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);border-color:#f89406 #f89406 #ad6704;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#f89406;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-warning:hover,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#ffffff;background-color:#f89406;*background-color:#df8505;}
-.btn-warning:active,.btn-warning.active{background-color:#c67605 \9;}
-.btn-danger{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#da4f49;background-image:-moz-linear-gradient(top, #ee5f5b, #bd362f);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));background-image:-webkit-linear-gradient(top, #ee5f5b, #bd362f);background-image:-o-linear-gradient(top, #ee5f5b, #bd362f);background-image:linear-gradient(to bottom, #ee5f5b, #bd362f);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0);border-color:#bd362f #bd362f #802420;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#bd362f;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-danger:hover,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#ffffff;background-color:#bd362f;*background-color:#a9302a;}
-.btn-danger:active,.btn-danger.active{background-color:#942a25 \9;}
-.btn-success{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#5bb75b;background-image:-moz-linear-gradient(top, #62c462, #51a351);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));background-image:-webkit-linear-gradient(top, #62c462, #51a351);background-image:-o-linear-gradient(top, #62c462, #51a351);background-image:linear-gradient(to bottom, #62c462, #51a351);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0);border-color:#51a351 #51a351 #387038;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#51a351;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-success:hover,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#ffffff;background-color:#51a351;*background-color:#499249;}
-.btn-success:active,.btn-success.active{background-color:#408140 \9;}
-.btn-info{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#49afcd;background-image:-moz-linear-gradient(top, #5bc0de, #2f96b4);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));background-image:-webkit-linear-gradient(top, #5bc0de, #2f96b4);background-image:-o-linear-gradient(top, #5bc0de, #2f96b4);background-image:linear-gradient(to bottom, #5bc0de, #2f96b4);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0);border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#2f96b4;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-info:hover,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#ffffff;background-color:#2f96b4;*background-color:#2a85a0;}
-.btn-info:active,.btn-info.active{background-color:#24748c \9;}
-.btn-inverse{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);background-color:#363636;background-image:-moz-linear-gradient(top, #444444, #222222);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222));background-image:-webkit-linear-gradient(top, #444444, #222222);background-image:-o-linear-gradient(top, #444444, #222222);background-image:linear-gradient(to bottom, #444444, #222222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0);border-color:#222222 #222222 #000000;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#222222;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-inverse:hover,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#ffffff;background-color:#222222;*background-color:#151515;}
-.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9;}
-button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px;}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0;}
-button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px;}
-button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px;}
-button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px;}
-.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
-.btn-link{border-color:transparent;cursor:pointer;color:#0088cc;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
-.btn-link:hover{color:#005580;text-decoration:underline;background-color:transparent;}
-.btn-link[disabled]:hove...
[truncated message content] |
|
From: <jen...@us...> - 2013-05-24 09:41:34
|
Revision: 18465
http://sourceforge.net/p/exist/code/18465
Author: jenspetersen
Date: 2013-05-24 09:41:32 +0000 (Fri, 24 May 2013)
Log Message:
-----------
[tamboti] fixes to relatedItem
Modified Paths:
--------------
apps/tamboti/modules/mods-common.xql
Modified: apps/tamboti/modules/mods-common.xql
===================================================================
--- apps/tamboti/modules/mods-common.xql 2013-05-24 09:21:57 UTC (rev 18464)
+++ apps/tamboti/modules/mods-common.xql 2013-05-24 09:41:32 UTC (rev 18465)
@@ -1606,9 +1606,13 @@
: @return The relatedItem formatted as XHTML.
:)
declare function mods-common:format-related-item($relatedItem as element(mods:relatedItem), $global-language as xs:string?, $collection-short as xs:string) as element()? {
- (:Remove related items with no @xlink:href or no titleInfo/title :)
+ (:Remove related items which have neither @xlink:href nor titleInfo/title :)
let $relatedItem := mods-common:remove-parent-with-missing-required-node($relatedItem)
+
+ (:Get the global transliteration:)
let $global-transliteration := $relatedItem/../mods:extension/ext:transliterationOfResource/text()
+
+ (:Get the roles of persons associated with the publication:)
(:If several terms are used for the same role, we assume them to be synonymous.:)
let $relatedItem-role-terms := distinct-values($relatedItem/mods:name/mods:role/mods:roleTerm[1])
let $relatedItem-role-terms :=
@@ -1616,6 +1620,7 @@
for $relatedItem-role-term in $relatedItem-role-terms
return lower-case($relatedItem-role-term)
)
+
return
mods-common:clean-up-punctuation
(
@@ -1779,7 +1784,7 @@
else ()
let $dateOriginInfo := mods-common:get-date($dateOriginInfo)
- (: NB: this should iterate over part, since there are e.g. multi-part installments of articles. :)
+ (: this iterate over part, since there are e.g. multi-part installments of articles. :)
let $parts := $entry/mods:part
for $part at $i in $parts
return
|
|
From: <jen...@us...> - 2013-05-24 09:22:02
|
Revision: 18464
http://sourceforge.net/p/exist/code/18464
Author: jenspetersen
Date: 2013-05-24 09:21:57 +0000 (Fri, 24 May 2013)
Log Message:
-----------
[tamboti] additions to genre code tables
Modified Paths:
--------------
apps/tamboti/modules/edit/body/09-genre.xml
apps/tamboti/modules/edit/code-tables/genre-authority-codes.xml
apps/tamboti/modules/edit/code-tables/genre-local-codes.xml
apps/tamboti/modules/edit/code-tables/genre-marcgt-codes.xml
apps/tamboti/modules/edit/code-tables/genre-marcsmd-codes.xml
Added Paths:
-----------
apps/tamboti/modules/edit/code-tables/genre-bgtchm-genre-codes.xml
apps/tamboti/modules/edit/code-tables/genre-dct-genre-codes.xml
Modified: apps/tamboti/modules/edit/body/09-genre.xml
===================================================================
--- apps/tamboti/modules/edit/body/09-genre.xml 2013-05-24 08:57:57 UTC (rev 18463)
+++ apps/tamboti/modules/edit/body/09-genre.xml 2013-05-24 09:21:57 UTC (rev 18464)
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<div xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:ext="http://exist-db.org/mods/extension" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xf="http://www.w3.org/2002/xforms" class="genre block-form" tab-id="genre" ext:dummy="dummy" xlink:dummy="dummy">
+<div xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xf="http://www.w3.org/2002/xforms" xmlns:ext="http://exist-db.org/mods/extension" class="genre block-form" tab-id="genre" ext:dummy="dummy" xlink:dummy="dummy">
<xf:group appearance="full">
<fieldset class="level-1">
<div class="label-box">
@@ -307,6 +307,36 @@
</xf:itemset>
</xf:select1>
</xf:group>
+ <xf:group appearance="full" class="schema_3.3 schema_3.4" ref=".[@authority='bgtchm']">
+ <xf:select1 ref=".">
+ <xf:label>Genre<span class="xforms-help">
+ <span class="xforms-hint-icon"/>
+ <div class="xforms-help-value">
+ <xf:output mediatype="application/xhtml+xml" incremental="true" ref="id('hint-code_genre',instance('code-tables'))/help"/>
+ </div>
+ </span>
+ </xf:label>
+ <xf:itemset nodeset="instance('code-tables')/code-table[code-table-name='genre-bgtchm-genre-code']/items/item">
+ <xf:label ref="label"/>
+ <xf:value ref="value"/>
+ </xf:itemset>
+ </xf:select1>
+ </xf:group>
+ <xf:group appearance="full" class="schema_3.3 schema_3.4" ref=".[@authority='dct']">
+ <xf:select1 ref=".">
+ <xf:label>Genre<span class="xforms-help">
+ <span class="xforms-hint-icon"/>
+ <div class="xforms-help-value">
+ <xf:output mediatype="application/xhtml+xml" incremental="true" ref="id('hint-code_genre',instance('code-tables'))/help"/>
+ </div>
+ </span>
+ </xf:label>
+ <xf:itemset nodeset="instance('code-tables')/code-table[code-table-name='genre-dct-genre-code']/items/item">
+ <xf:label ref="label"/>
+ <xf:value ref="value"/>
+ </xf:itemset>
+ </xf:select1>
+ </xf:group>
<xf:group appearance="full" class="schema_3.3 schema_3.4" ref=".[@authority='marcsmd']">
<xf:select1 ref=".">
<xf:label>Genre<span class="xforms-help">
@@ -322,8 +352,7 @@
</xf:itemset>
</xf:select1>
</xf:group>
- <!--NB: make other code tables-->
- <xf:group appearance="full" class="schema_3.3 schema_3.4" ref=".[not(@authority='marcgt') and not(@authority='marcsmd')]">
+ <xf:group appearance="full" class="schema_3.3 schema_3.4" ref=".[@authority='local']">
<xf:select1 ref="." selection="open">
<xf:label>Genre
<span class="xforms-help">
Modified: apps/tamboti/modules/edit/code-tables/genre-authority-codes.xml
===================================================================
--- apps/tamboti/modules/edit/code-tables/genre-authority-codes.xml 2013-05-24 08:57:57 UTC (rev 18463)
+++ apps/tamboti/modules/edit/code-tables/genre-authority-codes.xml 2013-05-24 09:21:57 UTC (rev 18464)
@@ -86,6 +86,11 @@
</item>
-->
<item>
+ <label>Local</label>
+ <value>local</value>
+ <link>http://www.loc.gov/standards/valuelist/marcsmd.html</link>
+ </item>
+ <item>
<label>MARC genre terms</label>
<value>marcgt</value>
<link>http://www.loc.gov/standards/valuelist/marcgt.html</link>
Added: apps/tamboti/modules/edit/code-tables/genre-bgtchm-genre-codes.xml
===================================================================
--- apps/tamboti/modules/edit/code-tables/genre-bgtchm-genre-codes.xml (rev 0)
+++ apps/tamboti/modules/edit/code-tables/genre-bgtchm-genre-codes.xml 2013-05-24 09:21:57 UTC (rev 18464)
@@ -0,0 +1,200 @@
+<code-table xml:id="genre-bgtchm-genre-code">
+ <code-table-name>genre-bgtchm-genre-code</code-table-name>
+ <status>finished</status>
+ <form>closed</form>
+ <basis>http://memory.loc.gov/ammem/techdocs/genre.html</basis>
+ <description>Basic Genre Terms for Cultural Heritage Materials</description>
+ <notes>NB: label serves as value!</notes>
+ <tab-id>location</tab-id>
+ <tab-id>physical-description</tab-id>
+ <tab-id>subject</tab-id>
+ <tab-id>genre</tab-id>
+ <tab-id>related</tab-id>
+ <tab-id>related-abbreviated</tab-id>
+ <items>
+ <item>
+ <label>(none selected)</label>
+ <value/>
+ </item>
+ <item>
+ <label>advertisements</label>
+ <value>advertisements</value>
+ </item>
+ <item>
+ <label>albums</label>
+ <value>albums</value>
+ </item>
+ <item>
+ <label>architecture</label>
+ <value>architecture</value>
+ </item>
+ <item>
+ <label>baseball cards</label>
+ <value>baseball cards</value>
+ </item>
+ <item>
+ <label>blank forms</label>
+ <value>blank forms</value>
+ </item>
+ <item>
+ <label>books</label>
+ <value>books</value>
+ </item>
+ <item>
+ <label>broadsides</label>
+ <value>broadsides</value>
+ </item>
+ <item>
+ <label>cartoons (commentary)</label>
+ <value>cartoons (commentary)</value>
+ </item>
+ <item>
+ <label>catalogs</label>
+ <value>catalogs</value>
+ </item>
+ <item>
+ <label>cityscapes</label>
+ <value>cityscapes</value>
+ </item>
+ <item>
+ <label>clippings</label>
+ <value>clippings</value>
+ </item>
+ <item>
+ <label>correspondence</label>
+ <value>correspondence</value>
+ </item>
+ <item>
+ <label>diaries</label>
+ <value>diaries</value>
+ </item>
+ <item>
+ <label>drawings</label>
+ <value>drawings</value>
+ </item>
+ <item>
+ <label>ephemera</label>
+ <value>ephemera</value>
+ </item>
+ <item>
+ <label>essays</label>
+ <value>essays</value>
+ </item>
+ <item>
+ <label>ethnography</label>
+ <value>ethnography</value>
+ </item>
+ <item>
+ <label>fieldnotes</label>
+ <value>fieldnotes</value>
+ </item>
+ <item>
+ <label>illustrations</label>
+ <value>illustrations</value>
+ </item>
+ <item>
+ <label>interviews</label>
+ <value>interviews</value>
+ </item>
+ <item>
+ <label>landscapes</label>
+ <value>landscapes</value>
+ </item>
+ <item>
+ <label>leaflets</label>
+ <value>leaflets</value>
+ </item>
+ <item>
+ <label>manuscripts</label>
+ <value>manuscripts</value>
+ </item>
+ <item>
+ <label>maps</label>
+ <value>maps</value>
+ </item>
+ <item>
+ <label>miscellaneous Documents</label>
+ <value>miscellaneous Documents</value>
+ </item>
+ <item>
+ <label>motion pictures</label>
+ <value>motion pictures</value>
+ </item>
+ <item>
+ <label>music</label>
+ <value>music</value>
+ </item>
+ <item>
+ <label>narratives</label>
+ <value>narratives</value>
+ </item>
+ <item>
+ <label>paintings</label>
+ <value>paintings</value>
+ </item>
+ <item>
+ <label>pamphlets</label>
+ <value>pamphlets</value>
+ </item>
+ <item>
+ <label>periodicals</label>
+ <value>periodicals</value>
+ </item>
+ <item>
+ <label>petitions</label>
+ <value>petitions</value>
+ </item>
+ <item>
+ <label>photographs</label>
+ <value>photographs</value>
+ </item>
+ <item>
+ <label>physical objects</label>
+ <value>physical objects</value>
+ </item>
+ <item>
+ <label>poetry</label>
+ <value>poetry</value>
+ </item>
+ <item>
+ <label>portraits</label>
+ <value>portraits</value>
+ </item>
+ <item>
+ <label>postcards</label>
+ <value>postcards</value>
+ </item>
+ <item>
+ <label>posters</label>
+ <value>posters</value>
+ </item>
+ <item>
+ <label>prints</label>
+ <value>prints</value>
+ </item>
+ <item>
+ <label>programs</label>
+ <value>programs</value>
+ </item>
+ <item>
+ <label>recording logs</label>
+ <value>recording logs</value>
+ </item>
+ <item>
+ <label>scores</label>
+ <value>scores</value>
+ </item>
+ <item>
+ <label>sheet music</label>
+ <value>sheet music</value>
+ </item>
+ <item>
+ <label>timetables</label>
+ <value>timetables</value>
+ </item>
+ <item>
+ <label>transcriptions</label>
+ <value>transcriptions</value>
+ </item>
+ </items>
+</code-table>
\ No newline at end of file
Added: apps/tamboti/modules/edit/code-tables/genre-dct-genre-codes.xml
===================================================================
--- apps/tamboti/modules/edit/code-tables/genre-dct-genre-codes.xml (rev 0)
+++ apps/tamboti/modules/edit/code-tables/genre-dct-genre-codes.xml 2013-05-24 09:21:57 UTC (rev 18464)
@@ -0,0 +1,72 @@
+<code-table xml:id="genre-dct-genre-code">
+ <code-table-name>genre-dct-genre-code</code-table-name>
+ <status>finished</status>
+ <form>closed</form>
+ <basis>http://dublincore.org/documents/resource-typelist/</basis>
+ <description>Dublin Core List of Resource Types</description>
+ <notes>NB: label serves as value!</notes>
+ <tab-id>location</tab-id>
+ <tab-id>physical-description</tab-id>
+ <tab-id>subject</tab-id>
+ <tab-id>genre</tab-id>
+ <tab-id>related</tab-id>
+ <tab-id>related-abbreviated</tab-id>
+ <items>
+ <item>
+ <label>(none selected)</label>
+ <value/>
+ </item>
+ <item>
+ <label>collection</label>
+ <value>collection</value>
+ </item>
+ <item>
+ <label>dataset</label>
+ <value>dataset</value>
+ </item>
+ <item>
+ <label>event</label>
+ <value>event</value>
+ </item>
+ <item>
+ <label>image</label>
+ <value>image</value>
+ </item>
+ <item>
+ <label>interactive resource</label>
+ <value>interactive resource</value>
+ </item>
+ <item>
+ <label>model</label>
+ <value>model</value>
+ </item>
+ <item>
+ <label>party</label>
+ <value>party</value>
+ </item>
+ <item>
+ <label>physical object</label>
+ <value>physical object</value>
+ </item>
+ <item>
+ <label>place</label>
+ <value>place</value>
+ </item>
+ <item>
+ <label>service</label>
+ <value>service</value>
+ </item>
+ <item>
+ <label>software</label>
+ <value>software</value>
+ </item>
+ <item>
+ <label>sound</label>
+ <value>sound</value>
+ </item>
+ <item>
+ <label>text</label>
+ <value>text</value>
+ </item>
+ </items>
+</code-table>
\ No newline at end of file
Modified: apps/tamboti/modules/edit/code-tables/genre-local-codes.xml
===================================================================
--- apps/tamboti/modules/edit/code-tables/genre-local-codes.xml 2013-05-24 08:57:57 UTC (rev 18463)
+++ apps/tamboti/modules/edit/code-tables/genre-local-codes.xml 2013-05-24 09:21:57 UTC (rev 18464)
@@ -6,7 +6,12 @@
<basis>Zotero types</basis>
<description/>
<notes/>
- <tab-id>titles</tab-id>
+ <tab-id>location</tab-id>
+ <tab-id>physical-description</tab-id>
+ <tab-id>subject</tab-id>
+ <tab-id>genre</tab-id>
+ <tab-id>related</tab-id>
+ <tab-id>related-abbreviated</tab-id>
<items>
<item>
<label>(none selected)</label>
Modified: apps/tamboti/modules/edit/code-tables/genre-marcgt-codes.xml
===================================================================
--- apps/tamboti/modules/edit/code-tables/genre-marcgt-codes.xml 2013-05-24 08:57:57 UTC (rev 18463)
+++ apps/tamboti/modules/edit/code-tables/genre-marcgt-codes.xml 2013-05-24 09:21:57 UTC (rev 18464)
@@ -6,9 +6,10 @@
<basis>http://www.loc.gov/standards/valuelist/marcgt.html (marcgt)</basis>
<description/>
<notes/>
- <tab-id>genre</tab-id>
<tab-id>location</tab-id>
+ <tab-id>physical-description</tab-id>
<tab-id>subject</tab-id>
+ <tab-id>genre</tab-id>
<tab-id>related</tab-id>
<tab-id>related-abbreviated</tab-id>
<items>
Modified: apps/tamboti/modules/edit/code-tables/genre-marcsmd-codes.xml
===================================================================
--- apps/tamboti/modules/edit/code-tables/genre-marcsmd-codes.xml 2013-05-24 08:57:57 UTC (rev 18463)
+++ apps/tamboti/modules/edit/code-tables/genre-marcsmd-codes.xml 2013-05-24 09:21:57 UTC (rev 18464)
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
<code-table xml:id="genre-marcsmd-code">
<code-table-name>genre-marcsmd-code</code-table-name>
<status>finished</status>
@@ -6,9 +7,10 @@
<description>Specific Material Form Term List: Value Lists for Codes and Controlled Vocabularies
(Network Development and MARC Standards Office, Library of Congress)</description>
<notes>items with "-" are headers (that can be used as well as their contents</notes>
- <tab-id>genre</tab-id>
<tab-id>location</tab-id>
+ <tab-id>physical-description</tab-id>
<tab-id>subject</tab-id>
+ <tab-id>genre</tab-id>
<tab-id>related</tab-id>
<tab-id>related-abbreviated</tab-id>
<items>
|
|
From: <jen...@us...> - 2013-05-24 08:58:00
|
Revision: 18463
http://sourceforge.net/p/exist/code/18463
Author: jenspetersen
Date: 2013-05-24 08:57:57 +0000 (Fri, 24 May 2013)
Log Message:
-----------
[tamboti] fixing typo in code-table-name
Modified Paths:
--------------
apps/tamboti/modules/edit/code-tables/genre-marcsmd-codes.xml
Modified: apps/tamboti/modules/edit/code-tables/genre-marcsmd-codes.xml
===================================================================
--- apps/tamboti/modules/edit/code-tables/genre-marcsmd-codes.xml 2013-05-24 08:52:16 UTC (rev 18462)
+++ apps/tamboti/modules/edit/code-tables/genre-marcsmd-codes.xml 2013-05-24 08:57:57 UTC (rev 18463)
@@ -1,6 +1,5 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<code-table xml:id="marcsmd-code">
- <code-table-name>marcsmd-code</code-table-name>
+<code-table xml:id="genre-marcsmd-code">
+ <code-table-name>genre-marcsmd-code</code-table-name>
<status>finished</status>
<form>closed</form>
<basis>http://www.loc.gov/standards/valuelist/marcsmd.html</basis>
|
|
From: <jen...@us...> - 2013-05-24 08:52:20
|
Revision: 18462
http://sourceforge.net/p/exist/code/18462
Author: jenspetersen
Date: 2013-05-24 08:52:16 +0000 (Fri, 24 May 2013)
Log Message:
-----------
[tamboti] u-permissions => x-permissions; unused group-related functions moved to end of file; formatting
Modified Paths:
--------------
apps/tamboti/modules/search/security.xqm
Modified: apps/tamboti/modules/search/security.xqm
===================================================================
--- apps/tamboti/modules/search/security.xqm 2013-05-24 08:49:00 UTC (rev 18461)
+++ apps/tamboti/modules/search/security.xqm 2013-05-24 08:52:16 UTC (rev 18462)
@@ -16,7 +16,7 @@
declare variable $security:user-metadata-file := "security.metadata.xml";
(:~
-: Authenticates a user and creates their mods home collection if it does not exist
+: Authenticates a user and creates their tamboti home collection if it does not exist
:
: @param user The username of the user
: @param password The password of the user
@@ -24,38 +24,36 @@
declare function security:login($user as xs:string, $password as xs:string?) as xs:boolean
{
let $username := config:rewrite-username(
- if($config:force-lower-case-usernames)then
+ if ($config:force-lower-case-usernames) then
fn:lower-case($user)
else
$user
)
- return
-
- (: authenticate against eXist-db :)
- if(xmldb:login("/db", $username, $password))then
- (
- (: check if the users mods home collectin exists, if not create it (i.e. first login) :)
- if(security:home-collection-exists($username))then
+ return
+ (: authenticate against eXist-db :)
+ if (xmldb:login("/db", $username, $password)) then
(
- (: update the last login time:)
- security:update-login-time($username),
+ (: check if the users tamboti home collectin exists, if not create it (this will happen at the first login) :)
+ if (security:home-collection-exists($username)) then
+ (
+ (: update the last login time:)
+ security:update-login-time($username),
+ true()
+ )
+ else
+ (
+ let $users-collection-uri := security:create-home-collection($username)
+ return
+ true()
+ )
- true()
- )
- else
- (
- let $users-collection-uri := security:create-home-collection($username) return
- true()
- )
-
-
- ) else
- (: authentication failed:)
- false()
+ ) else
+ (: authentication failed:)
+ false()
};
(:~
-: Stores a users credentials for the mods app into the http session
+: Stores a user's credentials for the tamboti app into the http session
:
: @param user The username
: @param password The password
@@ -63,36 +61,38 @@
declare function security:store-user-credential-in-session($user as xs:string, $password as xs:string?) as empty()
{
let $username := config:rewrite-username(
- if($config:force-lower-case-usernames)then
+ if ($config:force-lower-case-usernames) then
fn:lower-case($user)
else $user
- ) return
- (
- session:set-attribute($security:SESSION_USER_ATTRIBUTE, $username),
- session:set-attribute($security:SESSION_PASSWORD_ATTRIBUTE, $password)
- )
+ )
+ return
+ (
+ session:set-attribute($security:SESSION_USER_ATTRIBUTE, $username),
+ session:set-attribute($security:SESSION_PASSWORD_ATTRIBUTE, $password)
+ )
};
(:~
-: Retrieves a users credentials for the mods app from the http session
+: Retrieves a user's credentials for the tamboti app from the http session
:
: @return The sequence (username as xs:string, password as xs:string)
: If there is no entry in the session, then the guest account credentials are returned
:)
declare function security:get-user-credential-from-session() as xs:string+
{
- let $user := session:get-attribute($security:SESSION_USER_ATTRIBUTE) return
- if($user)then
- (
- $user,
- session:get-attribute($security:SESSION_PASSWORD_ATTRIBUTE)
- )
- else
- $security:GUEST_CREDENTIALS
+ let $user := session:get-attribute($security:SESSION_USER_ATTRIBUTE)
+ return
+ if ($user) then
+ (
+ $user,
+ session:get-attribute($security:SESSION_PASSWORD_ATTRIBUTE)
+ )
+ else
+ $security:GUEST_CREDENTIALS
};
(:~
-: Gets a users email address
+: Gets a user's email address
:
: @param the username of the user
: @return the email address for the user
@@ -108,37 +108,39 @@
};
(:~
-: Checks whether a users mods home collection exists
+: Checks whether a user's tamboti home collection exists
:
: @param user The username
:)
declare function security:home-collection-exists($user as xs:string) as xs:boolean
{
- let $username := if($config:force-lower-case-usernames)then(fn:lower-case($user))else($user) return
- xmldb:collection-available(security:get-home-collection-uri($username))
+ let $username := if ($config:force-lower-case-usernames) then (fn:lower-case($user)) else ($user)
+ return
+ xmldb:collection-available(security:get-home-collection-uri($username))
};
(:~
-: Get the URI of a users mods home collection
+: Get the URI of a users tamboti home collection
:)
declare function security:get-home-collection-uri($user as xs:string) as xs:string
{
- let $username := if($config:force-lower-case-usernames)then(fn:lower-case($user))else($user) return
- fn:concat($config:users-collection, "/", $username)
+ let $username := if ($config:force-lower-case-usernames) then (fn:lower-case($user)) else ($user)
+ return
+ fn:concat($config:users-collection, "/", $username)
};
(:~
-: Creates a users mods home collection and sets permissions
+: Creates a users tamboti home collection and sets permissions
:
: @return The uri of the users home collection or an empty sequence if it could not be created
:)
declare function security:create-home-collection($user as xs:string) as xs:string?
{
- let $username := if($config:force-lower-case-usernames)then(fn:lower-case($user))else($user) return
- if(xmldb:collection-available($config:users-collection))then
+ let $username := if ($config:force-lower-case-usernames) then (fn:lower-case($user)) else ($user) return
+ if (xmldb:collection-available($config:users-collection)) then
(
let $collection-uri := xmldb:create-collection($config:users-collection, $username) return
- if($collection-uri) then
+ if ($collection-uri) then
(
(:
TODO do we need the group 'read' to allow sub-collections to be enumerated?
@@ -154,7 +156,7 @@
) else (
$collection-uri
)
- )else()
+ ) else ()
};
(:~
@@ -167,9 +169,11 @@
<security:last-login-time>{$login-time}</security:last-login-time>
<security:login-time>{$login-time}</security:login-time>
</security:metadata>
- ) return
- let $null := sm:chmod($metadata-doc-uri, "rwx------") return
- $metadata-doc-uri
+ )
+ return
+ let $null := sm:chmod($metadata-doc-uri, "rwx------")
+ return
+ $metadata-doc-uri
};
(:~
@@ -177,7 +181,8 @@
:)
declare function security:update-login-time($user as xs:string) as empty() {
let $user-home-collection := security:get-home-collection-uri($user),
- $security-metadata := fn:doc(fn:concat($user-home-collection, "/", $security:user-metadata-file)) return
+ $security-metadata := fn:doc(fn:concat($user-home-collection, "/", $security:user-metadata-file))
+ return
(
update value $security-metadata/security:metadata/security:last-login-time with string($security-metadata/security:metadata/security:login-time),
update value $security-metadata/security:metadata/security:login-time with util:system-dateTime()
@@ -188,14 +193,16 @@
: Get the last login time of a user
:)
declare function security:get-last-login-time($user as xs:string) as xs:dateTime {
- let $user-home-collection := security:get-home-collection-uri($user) return
- let $last-login := fn:doc(fn:concat($user-home-collection, "/", $security:user-metadata-file))/security:metadata/security:last-login-time return
- if(exists($last-login))then
- $last-login
- else (
- util:log("WARN", fn:concat("Could not find the last-login time for the user '", $user,"'. Does the users metdata exist?")),
- util:system-dateTime()
- )
+ let $user-home-collection := security:get-home-collection-uri($user)
+ return
+ let $last-login := fn:doc(fn:concat($user-home-collection, "/", $security:user-metadata-file))/security:metadata/security:last-login-time return
+ if (exists($last-login)) then
+ $last-login
+ else
+ (
+ util:log("WARN", fn:concat("Could not find the last-login time for the user '", $user,"'. Does the user's metadata exist?")),
+ util:system-dateTime()
+ )
};
(:~
@@ -228,11 +235,211 @@
:)
declare function security:can-execute-collection($collection as xs:string) as xs:boolean
{
- (: TODO remove the 'u' when u is renamed to execute :)
- (sm:has-access($collection, "u") or sm:has-access($collection, "x"))
+ sm:has-access($collection, "x")
};
(:~
+: Determines if the user is the collection owner
+:
+: @param user The username
+: @param collection The path of the collection
+:)
+declare function security:is-collection-owner($user as xs:string, $collection as xs:string) as xs:boolean
+{
+ let $username := if ($config:force-lower-case-usernames) then (fn:lower-case($user)) else ($user)
+ return
+ if (xmldb:collection-available($collection)) then
+ let $owner := xmldb:get-owner($collection) return
+ $username eq $owner
+ else
+ false()
+};
+
+(:~
+: Gets the users for a group
+:
+: @param the group name
+: @return The list of users in the group
+:)
+declare function security:get-group-members($group as xs:string) as xs:string*
+{
+ xmldb:get-users($group)
+};
+
+declare function security:set-resource-permissions($resource as xs:string, $owner as xs:string, $group as xs:string, $owner-read as xs:boolean, $owner-write as xs:boolean, $group-read as xs:boolean, $group-write as xs:boolean, $other-read as xs:boolean, $other-write as xs:boolean) as empty() {
+
+ let $owner-username := if ($config:force-lower-case-usernames) then (fn:lower-case($owner)) else ($owner)
+ return
+ let $permissions := fn:concat(
+ if ($owner-read) then ("r") else ("-"),
+ if ($owner-write) then ("w") else ("-"),
+ if ($owner-write) then ("x") else ("-"),
+
+ if ($group-read) then ("r") else ("-"),
+ if ($group-write) then ("w") else ("-"),
+ if ($group-write) then ("x") else ("-"),
+
+ if ($other-read) then ("r") else ("-"),
+ if ($other-write) then ("w") else ("-"),
+ if ($other-write) then ("x") else ("-")
+ ) return
+ let $collection-uri := fn:replace($resource, "(.*)/.*", "$1"),
+ $resource-uri := fn:replace($resource, ".*/", "")
+ return
+ xmldb:set-resource-permissions(
+ $collection-uri,
+ $resource-uri,
+ $owner-username,
+ $group,
+ xmldb:string-to-permissions($permissions))
+};
+
+declare function security:set-ace-writeable($resource as xs:anyURI, $id as xs:int, $is-writeable as xs:boolean) as xs:boolean {
+ let $permissions := sm:get-permissions($resource),
+ $ace := $permissions/sm:permission/sm:acl/sm:ace[xs:int(@index) eq $id] return
+ if (empty($ace)) then
+ false()
+ else (
+
+ (: TODO - write implies update until update is replaced with execute :)
+ let $regexp-replacement :=
+ if ($is-writeable) then "wx"
+ else "--"
+ ,
+ $new-mode := fn:replace($ace/@mode, "(.)..", fn:concat("$1", $regexp-replacement)),
+ $null := sm:modify-ace($resource, $id, $ace/@access_type eq 'ALLOWED', $new-mode)
+ return
+ true()
+
+ (:
+ let $regexp-replacement := if ($is-writeable) then
+ "w"
+ else
+ "-"
+ ,
+ $new-mode := fn:replace($ace/@mode, "(.).(.)", fn:concat("$1", $regexp-replacement, "$2")),
+ $null := sm:modify-ace($resource, $id, $ace/@access_type eq 'ALLOWED', $new-mode) return
+ true()
+ :)
+ )
+};
+
+(:~
+: @return a sequence if the removal succeeded, otherwise the empty sequence
+: The sequence contains USER or GROUP as the first item, and then the who as the second item
+:)
+declare function security:remove-ace($resource as xs:anyURI, $id as xs:int) as xs:string* {
+
+ let $permissions :=
+ sm:get-permissions($resource),
+ $ace := $permissions/sm:permission/sm:acl/sm:ace[xs:int(@index) eq $id]
+ return
+ if (empty($ace)) then (
+ ()
+ ) else (
+ let $null := sm:remove-ace($resource, $id) return
+ ($ace/@target, $ace/@who)
+ )
+};
+
+(: adds a group ace and returns its index:)
+declare function security:add-group-ace($resource as xs:anyURI, $groupname as xs:string, $mode as xs:string) as xs:int? {
+ sm:add-group-ace($resource, $groupname, true(), $mode),
+
+ xs:int(sm:get-permissions($resource)/sm:permission/sm:acl/@entries) - 1
+};
+
+declare function security:insert-group-ace($resource as xs:anyURI, $id as xs:int, $groupname as xs:string, $mode as xs:string) as xs:boolean {
+
+ (: if the ace index is one past the end of the acl, then we actually want an append :)
+ if ($id eq xs:int(sm:get-permissions($resource)/sm:permission/sm:acl/@entries)) then
+ fn:not(fn:empty(security:add-group-ace($resource, $groupname, $mode)))
+ else (
+ sm:insert-group-ace($resource, $id, $groupname, true(), $mode)
+ ,
+ true()
+ )
+};
+
+(: adds a user ace and returns its index:)
+declare function security:add-user-ace($resource as xs:anyURI, $username as xs:string, $mode as xs:string) as xs:int? {
+ sm:add-user-ace($resource, $username, true(), $mode),
+
+ xs:int(sm:get-permissions($resource)/sm:permission/sm:acl/@entries) - 1
+};
+
+declare function security:insert-user-ace($resource as xs:anyURI, $id as xs:int, $username as xs:string, $mode as xs:string) as xs:boolean {
+
+ (: if the ace index is one past the end of the acl, then we actually want an append:)
+ if ($id eq xs:int(sm:get-permissions($resource)/sm:permission/sm:acl/@entries)) then
+ fn:not(fn:empty(security:add-user-ace($resource, $username, $mode)))
+ else (
+ sm:insert-user-ace($resource, $id, $username, true(), $mode)
+ ,
+ true()
+ )
+};
+
+(:~
+: If the user creates a collection which is not inside their home
+: collection, then give the collection full access by
+: the owner of the parent collection
+:)
+declare function security:grant-parent-owner-access-if-foreign-collection($collection as xs:string) as empty() {
+
+ let $collection-owner := sm:get-permissions($collection)/sm:permission/@owner,
+ $parent-collection := fn:replace($collection, "(.*)/.*", "$1"),
+ $parent-collection-owner := sm:get-permissions(xs:anyURI($parent-collection))/sm:permission/@owner
+ return
+ if (string($collection-owner) ne string($parent-collection-owner)) then
+ sm:add-user-ace(xs:anyURI($collection), $parent-collection-owner, true(), "rwx")
+ else ()
+};
+
+(: ~
+: Resources always inherit the permissions of the parent collection
+:)
+declare function security:apply-parent-collection-permissions($resource as xs:anyURI) as empty() {
+
+ let $parent-permissions := sm:get-permissions(xs:anyURI(fn:replace($resource, "(.*)/.*", "$1"))),
+ $this-permissions := sm:get-permissions($resource),
+ $this-last-acl-index := xs:int($this-permissions/sm:permission/sm:acl/@entries) -1 return
+
+ (
+ for $ace in $parent-permissions/sm:permission/sm:acl/sm:ace
+ return
+ if ($ace/@target eq "USER") then
+ sm:add-user-ace($resource, $ace/@who, $ace/@access_type eq "ALLOWED", $ace/@mode)
+ else
+ if ($ace/@target eq "GROUP") then
+ sm:add-group-ace($resource, $ace/@who, $ace/@access_type eq "ALLOWED", $ace/@mode)
+ else ()
+ ,
+ if ($this-permissions/sm:permission/@owner ne $parent-permissions/sm:permission/@owner) then
+ let $owner-mode := fn:replace($parent-permissions/sm:permission/@mode, "(...).*", "$1")
+ return
+ sm:add-user-ace($resource, $parent-permissions/sm:permission/@owner, true(), $owner-mode)
+ else ()
+ ,
+ if ($this-permissions/sm:permission/@group ne $parent-permissions/sm:permission/@group) then
+ let $group-mode := fn:replace($parent-permissions/sm:permission/@mode, "...(...)...", "$1")
+ return
+ sm:add-group-ace($resource, $parent-permissions/sm:permission/@group, true(), $group-mode)
+ else ()
+ ,
+ (: clear any prev entries :)
+ for $i in 0 to $this-last-acl-index return
+ sm:remove-ace($resource, $i)
+ )
+};
+
+declare function security:is-biblio-user($username as xs:string) as xs:boolean {
+ xmldb:get-user-groups($username) = $security:biblio-users-group
+};
+
+(:NB: below, commented out group-related functions, not used yet:)
+
+(:~
: Determines if a group has read access to a collection
:
: @param group The group name
@@ -242,16 +449,16 @@
(:
declare function security:group-can-read-collection($group as xs:string, $collection as xs:string) as xs:boolean
{
- if(xmldb:collection-available($collection))then
+ if (xmldb:collection-available($collection)) then
let $permissions := sm:get-permissions($collection) return
(: check the group owner :)
- if($permissions/@group eq $group and (fn:matches($permissions/@mode, "...r.....", "") or fn:matches($permissions/@mode, "......r..")))then
+ if ($permissions/@group eq $group and (fn:matches($permissions/@mode, "...r.....", "") or fn:matches($permissions/@mode, "......r.."))) then
true()
else
(: check the acl :)
- if($permissions/sm:permission/sm:acl/sm:ace[@target eq "GROUP"][@who eq $group][@access_type eq "ALLOWED"][fn:contains(@mode, "r")])then
+ if ($permissions/sm:permission/sm:acl/sm:ace[@target eq "GROUP"][@who eq $group][@access_type eq "ALLOWED"][fn:contains(@mode, "r")]) then
true()
else
false()
@@ -267,16 +474,16 @@
:)
declare function security:group-can-write-collection($group as xs:string, $collection as xs:string) as xs:boolean
{
- if(xmldb:collection-available($collection))then
+ if (xmldb:collection-available($collection)) then
let $permissions := sm:get-permissions($collection) return
(: check the group owner :)
- if($permissions/@group eq $group and (fn:matches($permissions/@mode, "....w....", "") or fn:matches($permissions/@mode, ".......w.")))then
+ if ($permissions/@group eq $group and (fn:matches($permissions/@mode, "....w....", "") or fn:matches($permissions/@mode, ".......w."))) then
true()
else
(: check the acl :)
- if($permissions/sm:permission/sm:acl/sm:ace[@target eq "GROUP"][@who eq $group][@access_type eq "ALLOWED"][fn:contains(@mode, "w")])then
+ if ($permissions/sm:permission/sm:acl/sm:ace[@target eq "GROUP"][@who eq $group][@access_type eq "ALLOWED"][fn:contains(@mode, "w")]) then
true()
else
false()
@@ -291,7 +498,7 @@
:)
declare function security:other-can-read-collection($collection as xs:string) as xs:boolean
{
- if(xmldb:collection-available($collection))then
+ if (xmldb:collection-available($collection)) then
let $permissions := sm:get-permissions($collection) return
fn:matches($permissions/@mode, "......r..")
else
@@ -305,7 +512,7 @@
:)
declare function security:other-can-write-collection($collection as xs:string) as xs:boolean
{
- if(xmldb:collection-available($collection))then
+ if (xmldb:collection-available($collection)) then
let $permissions := sm:get-permissions($collection) return
fn:matches($permissions/@mode, ".......w.")
else
@@ -314,34 +521,6 @@
:)
(:~
-: Determines if the user is the collection owner
-:
-: @param user The username
-: @param collection The path of the collection
-:)
-declare function security:is-collection-owner($user as xs:string, $collection as xs:string) as xs:boolean
-{
- let $username := if($config:force-lower-case-usernames)then(fn:lower-case($user))else($user) return
-
- if(xmldb:collection-available($collection))then
- let $owner := xmldb:get-owner($collection) return
- $username eq $owner
- else
- false()
-};
-
-(:~
-: Gets the users for a group
-:
-: @param the group name
-: @return The list of users in the group
-:)
-declare function security:get-group-members($group as xs:string) as xs:string*
-{
- xmldb:get-users($group)
-};
-
-(:~
: Gets the managers for a group
:
: @param the group name
@@ -355,7 +534,7 @@
:)
(:~
-: Gets a list of other biblio users
+: Gets a list of other tamboti users
:)
(:
declare function security:get-other-biblio-users() as xs:string*
@@ -365,10 +544,10 @@
declare function security:get-group($collection as xs:string) as xs:string?
{
- if(xmldb:collection-available($collection))then
+ if (xmldb:collection-available($collection)) then
(
xmldb:get-group($collection)
- ) else()
+ ) else ()
};
:)
@@ -376,7 +555,7 @@
declare function security:set-other-can-read-collection($collection, $read as xs:boolean) as xs:boolean
{
let $permissions := xmldb:permissions-to-string(xmldb:get-permissions($collection)) return
- let $new-permissions := if($read)then(
+ let $new-permissions := if ($read) then (
fn:replace($permissions, "(......)(.)(..)", "$1r$3")
) else (
fn:replace($permissions, "(......)(.)(..)", "$1-$3")
@@ -390,7 +569,7 @@
declare function security:set-other-can-write-collection($collection, $write as xs:boolean) as xs:boolean
{
let $permissions := xmldb:permissions-to-string(xmldb:get-permissions($collection)) return
- let $new-permissions := if($write)then(
+ let $new-permissions := if ($write) then (
fn:replace($permissions, "(.......)(.)(.)", "$1w$3")
) else (
fn:replace($permissions, "(.......)(.)(.)", "$1-$3")
@@ -414,7 +593,7 @@
declare function security:set-group-can-read-collection($collection, $group as xs:string, $read as xs:boolean) as xs:boolean
{
let $permissions := xmldb:permissions-to-string(xmldb:get-permissions($collection)) return
- let $new-permissions := if($read)then(
+ let $new-permissions := if ($read) then (
fn:replace($permissions, "(...)(.)(.....)", "$1r$3")
) else (
fn:replace($permissions, "(...)(.)(.....)", "$1-$3")
@@ -427,7 +606,7 @@
declare function security:set-group-can-write-collection($collection, $group as xs:string, $write as xs:boolean) as xs:boolean
{
let $permissions := xmldb:permissions-to-string(xmldb:get-permissions($collection)) return
- let $new-permissions := if($write)then(
+ let $new-permissions := if ($write) then (
fn:replace($permissions, "(....)(.)(....)", "$1w$3")
) else (
fn:replace($permissions, "(....)(.)(....)", "$1-$3")
@@ -447,12 +626,12 @@
declare function security:create-group($group-name as xs:string, $group-members as xs:string*) as xs:boolean
{
(: create the group, currently logged in user will be the groups manager :)
- if(xmldb:create-group($group-name, security:get-user-credential-from-session()[1]))then
+ if (xmldb:create-group($group-name, security:get-user-credential-from-session()[1])) then
(
(: add members to group :)
let $add-results :=
for $group-member in $group-members
- let $group-member-username := if($config:force-lower-case-usernames)then(fn:lower-case($group-member))else($group-member) return
+ let $group-member-username := if ($config:force-lower-case-usernames) then (fn:lower-case($group-member)) else ($group-member) return
xmldb:add-user-to-group($group-member-username, $group-name)
return
fn:not(fn:contains($add-results, false()))
@@ -482,7 +661,7 @@
let $collection-uri := fn:replace($resource, "(.*)/.*", "$1"),
$resource-uri := fn:replace($resource, ".*/", ""),
$permissions := xmldb:permissions-to-string(xmldb:get-permissions($collection-uri, $resource-uri)) return
- let $new-permissions := if($read)then(
+ let $new-permissions := if ($read) then (
fn:replace($permissions, "(...)(.)(.....)", "$1r$3")
) else (
fn:replace($permissions, "(...)(.)(.....)", "$1-$3")
@@ -493,26 +672,6 @@
true()
};
:)
-declare function security:set-resource-permissions($resource as xs:string, $owner as xs:string, $group as xs:string, $owner-read as xs:boolean, $owner-write as xs:boolean, $group-read as xs:boolean, $group-write as xs:boolean, $other-read as xs:boolean, $other-write as xs:boolean) as empty() {
-
- let $owner-username := if($config:force-lower-case-usernames)then(fn:lower-case($owner))else($owner) return
- let $permissions := fn:concat(
- if($owner-read)then("r")else("-"),
- if($owner-write)then("w")else("-"),
- if($owner-write)then("u")else("-"),
-
- if($group-read)then("r")else("-"),
- if($group-write)then("w")else("-"),
- if($group-write)then("u")else("-"),
-
- if($other-read)then("r")else("-"),
- if($other-write)then("w")else("-"),
- if($other-write)then("u")else("-")
- ) return
- let $collection-uri := fn:replace($resource, "(.*)/.*", "$1"),
- $resource-uri := fn:replace($resource, ".*/", "") return
- xmldb:set-resource-permissions($collection-uri, $resource-uri, $owner-username, $group, xmldb:string-to-permissions($permissions))
-};
(:
declare function security:get-groups($user as xs:string) as xs:string*
@@ -522,7 +681,7 @@
:)
let $null := util:log("debug", fn:concat("USER=========", $user)) return
- let $username := if($config:force-lower-case-usernames)then(fn:lower-case($user))else($user) return
+ let $username := if ($config:force-lower-case-usernames) then (fn:lower-case($user)) else ($user) return
xmldb:get-user-groups($username)
};
:)
@@ -533,148 +692,10 @@
for $child-collection in xmldb:get-child-collections($collection-path)
let $child-collection-path := fn:concat($collection-path, "/", $child-collection) return
(
- if(xmldb:get-group($child-collection-path) eq $group)then(
+ if (xmldb:get-group($child-collection-path) eq $group) then (
$child-collection-path
- )else(),
+ ) else (),
security:find-collections-with-group($child-collection-path, $group)
)
};
-:)
-
-declare function security:set-ace-writeable($resource as xs:anyURI, $id as xs:int, $is-writeable as xs:boolean) as xs:boolean {
- let $permissions := sm:get-permissions($resource),
- $ace := $permissions/sm:permission/sm:acl/sm:ace[xs:int(@index) eq $id] return
- if(empty($ace))then
- false()
- else (
-
- (: TODO - write implies update until update is replaced with execute :)
- let $regexp-replacement := if($is-writeable)then
- "wx"
- else
- "--"
- ,
- $new-mode := fn:replace($ace/@mode, "(.)..", fn:concat("$1", $regexp-replacement)),
- $null := sm:modify-ace($resource, $id, $ace/@access_type eq 'ALLOWED', $new-mode) return
- true()
-
- (:
- let $regexp-replacement := if($is-writeable)then
- "w"
- else
- "-"
- ,
- $new-mode := fn:replace($ace/@mode, "(.).(.)", fn:concat("$1", $regexp-replacement, "$2")),
- $null := sm:modify-ace($resource, $id, $ace/@access_type eq 'ALLOWED', $new-mode) return
- true()
- :)
- )
-};
-
-(:~
-: @return a sequence if the removal succeeded, otherwise the empty sequence
-: The sequence contains USER or GROUP as the first item, and then the who as the second item
-:)
-declare function security:remove-ace($resource as xs:anyURI, $id as xs:int) as xs:string* {
-
- let $permissions := sm:get-permissions($resource),
- $ace := $permissions/sm:permission/sm:acl/sm:ace[xs:int(@index) eq $id] return
- if(empty($ace))then(
- ()
- ) else (
- let $null := sm:remove-ace($resource, $id) return
- ($ace/@target, $ace/@who)
- )
-};
-
-(: adds a group ace and returns its index:)
-declare function security:add-group-ace($resource as xs:anyURI, $groupname as xs:string, $mode as xs:string) as xs:int? {
- sm:add-group-ace($resource, $groupname, true(), $mode),
-
- xs:int(sm:get-permissions($resource)/sm:permission/sm:acl/@entries) - 1
-};
-
-declare function security:insert-group-ace($resource as xs:anyURI, $id as xs:int, $groupname as xs:string, $mode as xs:string) as xs:boolean {
-
- (: if the ace index is one past the end of the acl, then we actually want an append :)
- if($id eq xs:int(sm:get-permissions($resource)/sm:permission/sm:acl/@entries))then
- fn:not(fn:empty(security:add-group-ace($resource, $groupname, $mode)))
- else(
- sm:insert-group-ace($resource, $id, $groupname, true(), $mode)
- ,
- true()
- )
-};
-
-(: adds a user ace and returns its index:)
-declare function security:add-user-ace($resource as xs:anyURI, $username as xs:string, $mode as xs:string) as xs:int? {
- sm:add-user-ace($resource, $username, true(), $mode),
-
- xs:int(sm:get-permissions($resource)/sm:permission/sm:acl/@entries) - 1
-};
-
-declare function security:insert-user-ace($resource as xs:anyURI, $id as xs:int, $username as xs:string, $mode as xs:string) as xs:boolean {
-
- (: if the ace index is one past the end of the acl, then we actually want an append:)
- if($id eq xs:int(sm:get-permissions($resource)/sm:permission/sm:acl/@entries))then
- fn:not(fn:empty(security:add-user-ace($resource, $username, $mode)))
- else(
- sm:insert-user-ace($resource, $id, $username, true(), $mode)
- ,
- true()
- )
-};
-
-(:~
-: If the user creates a collection which is not inside their home
-: collection, then the collection will be given full access by
-: the owner of the parent collection
-:)
-declare function security:grant-parent-owner-access-if-foreign-collection($collection as xs:string) as empty() {
-
- let $collection-owner := sm:get-permissions($collection)/sm:permission/@owner,
- $parent-collection := fn:replace($collection, "(.*)/.*", "$1"),
- $parent-collection-owner := sm:get-permissions(xs:anyURI($parent-collection))/sm:permission/@owner return
-
- if(string($collection-owner) ne string($parent-collection-owner))then
- sm:add-user-ace(xs:anyURI($collection), $parent-collection-owner, true(), "rwx")
- else()
-};
-
-(: ~
-: Resources always inherit the permissions of the parent Collection
-:)
-declare function security:apply-parent-collection-permissions($resource as xs:anyURI) as empty() {
-
- let $parent-permissions := sm:get-permissions(xs:anyURI(fn:replace($resource, "(.*)/.*", "$1"))),
- $this-permissions := sm:get-permissions($resource),
- $this-last-acl-index := xs:int($this-permissions/sm:permission/sm:acl/@entries) -1 return
-
- (
- for $ace in $parent-permissions/sm:permission/sm:acl/sm:ace return
-
- if($ace/@target eq "USER") then
- sm:add-user-ace($resource, $ace/@who, $ace/@access_type eq "ALLOWED", $ace/@mode)
- else if($ace/@target eq "GROUP") then
- sm:add-group-ace($resource, $ace/@who, $ace/@access_type eq "ALLOWED", $ace/@mode)
- else()
- ,
- if($this-permissions/sm:permission/@owner ne $parent-permissions/sm:permission/@owner)then
- let $owner-mode := fn:replace($parent-permissions/sm:permission/@mode, "(...).*", "$1") return
- sm:add-user-ace($resource, $parent-permissions/sm:permission/@owner, true(), $owner-mode)
- else()
- ,
- if($this-permissions/sm:permission/@group ne $parent-permissions/sm:permission/@group)then
- let $group-mode := fn:replace($parent-permissions/sm:permission/@mode, "...(...)...", "$1") return
- sm:add-group-ace($resource, $parent-permissions/sm:permission/@group, true(), $group-mode)
- else()
- ,
- (: clear any prev entries :)
- for $i in 0 to $this-last-acl-index return
- sm:remove-ace($resource, $i)
- )
-};
-
-declare function security:is-biblio-user($username as xs:string) as xs:boolean {
- xmldb:get-user-groups($username) = $security:biblio-users-group
-};
+:)
\ No newline at end of file
|
|
From: <jen...@us...> - 2013-05-24 08:49:03
|
Revision: 18461
http://sourceforge.net/p/exist/code/18461
Author: jenspetersen
Date: 2013-05-24 08:49:00 +0000 (Fri, 24 May 2013)
Log Message:
-----------
[tamboti] clear lock before record is stored - trying to determine if some records disappear when stored because they are locked. if record is not stored, it is now kept in temp.
Modified Paths:
--------------
apps/tamboti/modules/edit/save.xq
Modified: apps/tamboti/modules/edit/save.xq
===================================================================
--- apps/tamboti/modules/edit/save.xq 2013-05-24 08:46:05 UTC (rev 18460)
+++ apps/tamboti/modules/edit/save.xq 2013-05-24 08:49:00 UTC (rev 18461)
@@ -355,25 +355,31 @@
(:Insert modification date-time and user name.:)
update insert $last-modified-extension into $doc/mods:extension
,
+ (:clear any lock on doc in target collection:)
+ xmldb:clear-lock($target-collection, $file-to-update)
+ ,
(:Move $doc from temp to target collection.:)
(:NB: To avoid potential problems with xmldb:move(), xmldb:store() and xmldb:remove() are used.
- xmldb:move() is suspected to create zero bytes "ghost" files in backups in __lost_and_found__.:)
+ xmldb:move() is suspected to create zero byte "ghost" files in backups in __lost_and_found__.:)
(:NB: The code used formerly, covering next three steps:
xmldb:move($config:mods-temp-collection, $target-collection, $file-to-update),:)
- (:Only attempt to delete the original record if it exists; otherwise script terminates.
+ (:Only attempt to delete the original record if it exists;
+ if an attempt is made to delete a file which does not exist, the script will terminate.
This means that no attempt is made to delete newly created records.:)
if (xmldb:document(concat($target-collection, '/', $file-to-update)))
then xmldb:remove($target-collection, $file-to-update)
else ()
,
- (:Store $doc in the target collection, whether this be where the file originally came from or
- the collection from which a new record has been created.:)
+ (:Store $doc in the target collection, whether this is where the record originally was located or
+ the collection chosen to store a new record.:)
xmldb:store($target-collection, $file-to-update, $doc)
,
- (:Remove the $doc record from temp.:)
- xmldb:remove($config:mods-temp-collection, $file-to-update)
+ (:Remove the $doc record from temp if store in target was successful.:)
+ if (xmldb:document(concat($target-collection, '/', $file-to-update)))
+ then xmldb:remove($config:mods-temp-collection, $file-to-update)
+ else ()
,
(:Set the same permissions on the moved file that the parent collection has.:)
security:apply-parent-collection-permissions(xs:anyURI(concat($target-collection, "/", $file-to-update)))
|
|
From: <jen...@us...> - 2013-05-24 08:46:07
|
Revision: 18460
http://sourceforge.net/p/exist/code/18460
Author: jenspetersen
Date: 2013-05-24 08:46:05 +0000 (Fri, 24 May 2013)
Log Message:
-----------
[tamboti] fixed cardinality problem occurring when opening record with multiple links in editor
Modified Paths:
--------------
apps/tamboti/modules/edit/edit.xq
Modified: apps/tamboti/modules/edit/edit.xq
===================================================================
--- apps/tamboti/modules/edit/edit.xq 2013-05-24 08:42:53 UTC (rev 18459)
+++ apps/tamboti/modules/edit/edit.xq 2013-05-24 08:46:05 UTC (rev 18460)
@@ -10,7 +10,7 @@
import module namespace xmldb="http://exist-db.org/xquery/xmldb";
import module namespace mods="http://www.loc.gov/mods/v3" at "tabs.xqm";
-import module namespace modsCommon="http://exist-db.org/mods/common" at "../mods-common.xql";
+import module namespace mods-common="http://exist-db.org/mods/common" at "../mods-common.xql";
import module namespace config="http://exist-db.org/mods/config" at "../config.xqm";
import module namespace security="http://exist-db.org/mods/security" at "../search/security.xqm"; (:TODO move security module up one level:)
import module namespace uu="http://exist-db.org/mods/uri-util" at "../search/uri-util.xqm";
@@ -247,7 +247,7 @@
let $form-body := collection(concat($config:edit-app-root, '/body'))/div[@tab-id eq $instance-id]
(:Get the relevant information to display in the info-line, the label for the template chosen (if any) and the hint belonging to it (if any). :)
let $hint-data := concat($config:edit-app-root, '/code-tables/hint-codes.xml')
- let $save-hint := doc($hint-data)/code-table//item[value eq "save"]/help
+ let $save-hint := doc($hint-data)/id('hint-code_save')/help
(:Get the time of the last save to the temp collection and parse it.:)
let $last-modified := xmldb:last-modified($config:mods-temp-collection, concat($id,'.xml'))
@@ -264,7 +264,7 @@
else ()
let $related-publication-title :=
if ($related-publication-id)
- then modsCommon:get-short-title(collection($config:mods-root)//mods:mods[@ID eq $related-publication-id])
+ then mods-common:get-short-title(collection($config:mods-root)//mods:mods[@ID eq $related-publication-id][1])
else ()
let $related-publication-title :=
if ($related-item-xlink eq '')
@@ -494,4 +494,4 @@
let $model := local:create-xf-model($id, $tab-id, $instance-id, $target-collection)
let $content := local:create-page-content($id, $tab-id, $type-request, $target-collection, $instance-id, $temp-record-path, $type-data)
return
- local:assemble-form(attribute {'mods:dummy'} {'dummy'}, $style, $model, $content, false())
+ local:assemble-form(attribute {'mods:dummy'} {'dummy'}, $style, $model, $content, false())
\ No newline at end of file
|
|
From: <jen...@us...> - 2013-05-24 08:42:55
|
Revision: 18459
http://sourceforge.net/p/exist/code/18459
Author: jenspetersen
Date: 2013-05-24 08:42:53 +0000 (Fri, 24 May 2013)
Log Message:
-----------
[tamboti] fixed move-resource() and remove-resource() (the original function included code for moving one node to another node, but this is not used, so it is deleted)
Modified Paths:
--------------
apps/tamboti/modules/search/operations.xql
Modified: apps/tamboti/modules/search/operations.xql
===================================================================
--- apps/tamboti/modules/search/operations.xql 2013-05-24 08:38:24 UTC (rev 18458)
+++ apps/tamboti/modules/search/operations.xql 2013-05-24 08:42:53 UTC (rev 18459)
@@ -102,29 +102,24 @@
(:~
:
-: @ resource-id has the format db-document-path#node-id e.g. /db/mods/eXist/exist-articles.xml#1.36
+: @ resource-id is the @ID of the MODS record
:)
declare function op:remove-resource($resource-id as xs:string) as element(status) {
-
- let $path := substring-before($resource-id, "#")
- let $id := substring-after($resource-id, "#")
- let $doc := doc($path)
- (:Do not remove a record that another record links to.:)
- (:NB: A message should be given to the user that the delete is not possible.:)
- let $doc-id := functx:substring-after-last($path, '/')
- let $doc-id := substring-before($doc-id, '.xml')
- (:NB: The $doc-id should be obtained from $doc.:)
- let $xlink := concat('#', $doc-id)
+ let $doc := collection($config:mods-root-minus-temp)//mods:mods[@ID eq $resource-id]
+ let $xlink := concat('#', $resource-id)
let $xlink-recs := collection($config:mods-root-minus-temp)//mods:relatedItem[@xlink:href eq $xlink]
return (
- if (count($xlink-recs/..) eq 0)
+ (:do not remove records which erroneously have the same ID:)
+ (:NB: inform user that this is the case:)
+ if (count($doc) eq 1)
then
- if ($id eq "1")
+ (:do not remove records which are linked to from other records:)
+ (:NB: inform user that this is the case:)
+ if (count($xlink-recs/..) eq 0)
then
- xmldb:remove(util:collection-name($doc), util:document-name($doc))
- else
- update delete util:node-by-id($doc, $id)
- else ()
+ xmldb:remove(util:collection-name($doc), util:document-name($doc))
+ else ()
+ else()
,
<status id="removed">{$resource-id}</status>
)
@@ -132,37 +127,22 @@
(:~
:
-: @ resource-id has the format db-document-path#node-id e.g. /db/mods/eXist/exist-articles.xml#1.36
+: @ resource-id is the @ID of the MODS record
:)
declare function op:move-resource($resource-id as xs:string, $destination-collection as xs:string) as element(status) {
- let $destination-collection := uu:escape-collection-path($destination-collection) return
- let $path := substring-before($resource-id, "#")
- let $id := substring-after($resource-id, "#")
- let $destination-resource-name := replace($path, ".*/", "")
- let $destination-path := concat($destination-collection, "/", $destination-resource-name)
- let $sourceDoc := doc($path)
+ let $doc := collection($config:mods-root-minus-temp)//mods:mods[@ID eq $resource-id]
+ let $path := base-uri($doc)
+ let $destination-collection := uu:escape-collection-path($destination-collection)
return
- if (contains($id, ".")) then
- let $resource := util:node-by-id($sourceDoc, $id)
- let $mods-destination :=
- if(doc-available($destination-path))then
- doc($destination-path)/mods:modsCollection
- else
- let $mods-collection-doc-path := xmldb:store($destination-collection, $destination-resource-name, <modsCollection xmlns="http://www.loc.gov/mods/v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.loc.gov/mods/v3 ../../webapp/WEB-INF/entities/mods-3-3.xsd"/>) return
- let $null := security:apply-parent-collection-permissions($mods-collection-doc-path) return
- doc($mods-collection-doc-path)/mods:modsCollection
+ (:do not move records which erroneously have the same ID:)
+ if (count($doc) eq 1)
+ then
+ let $moved := xmldb:move(util:collection-name($doc), $destination-collection, util:document-name($doc))
return
- (
- update insert util:node-by-id(doc($path), $id) into $mods-destination,
- update delete util:node-by-id(doc($path), $id),
-
- <status id="moved" from="{$resource-id}">{$destination-path}</status>
- )
- else
- let $moved := xmldb:move(util:collection-name($sourceDoc), $destination-collection, util:document-name($sourceDoc)) return
- let $null := security:apply-parent-collection-permissions(fn:document-uri(fn:root($sourceDoc))) return
-
- <status id="moved" from="{$resource-id}">{$destination-path}</status>
+ let $null := security:apply-parent-collection-permissions(document-uri(root($doc)))
+ return
+ <status id="moved" from="{$resource-id}">{$destination-collection}</status>
+ else ()
};
declare function op:set-ace-writeable($collection as xs:anyURI, $id as xs:int, $is-writeable as xs:boolean) as element(status) {
@@ -294,4 +274,4 @@
op:upload-file($name,$data,$collection)
else
- op:unknown-action($action)
+ op:unknown-action($action)
\ No newline at end of file
|
|
From: <jen...@us...> - 2013-05-24 08:38:27
|
Revision: 18458
http://sourceforge.net/p/exist/code/18458
Author: jenspetersen
Date: 2013-05-24 08:38:24 +0000 (Fri, 24 May 2013)
Log Message:
-----------
[tamboti] adding note @type value
Modified Paths:
--------------
apps/tamboti/modules/edit/code-tables/note-type-codes.xml
Modified: apps/tamboti/modules/edit/code-tables/note-type-codes.xml
===================================================================
--- apps/tamboti/modules/edit/code-tables/note-type-codes.xml 2013-05-24 08:35:47 UTC (rev 18457)
+++ apps/tamboti/modules/edit/code-tables/note-type-codes.xml 2013-05-24 08:38:24 UTC (rev 18458)
@@ -1,4 +1,3 @@
-<?xml version="1.0" encoding="UTF-8"?>
<code-table xml:id="note-type-code">
<code-table-name>note-type-code</code-table-name>
<status>finished</status>
@@ -73,6 +72,10 @@
<label>date</label>
<value>date</value>
</item>
+ <item type="added">
+ <label>extent of translation</label>
+ <value>extent of translation</value>
+ </item>
<item>
<label>exhibitions</label>
<value>exhibitions</value>
|