Mage_Core_Modules - Version 1.9.3.0

Version Notes

1.9.3.0

Download this release

Release Info

Developer Magento Core Team
Extension Mage_Core_Modules
Version 1.9.3.0
Comparing to
See all releases


Code changes from version 1.9.2.4 to 1.9.3.0

Files changed (178) hide show
  1. .htaccess.sample +15 -0
  2. RELEASE_NOTES.txt +11 -1
  3. api.php +5 -2
  4. app/Mage.php +2 -2
  5. app/code/core/Mage/Admin/Model/User.php +3 -3
  6. app/code/core/Mage/Admin/etc/config.xml +1 -1
  7. app/code/core/Mage/Api/Model/Server/Handler/Abstract.php +47 -6
  8. app/code/core/Mage/Bundle/Block/Adminhtml/Catalog/Product/Edit/Tab/Attributes.php +1 -0
  9. app/code/core/Mage/Bundle/Block/Catalog/Product/View/Type/Bundle/Option.php +7 -2
  10. app/code/core/Mage/Catalog/Block/Product/Abstract.php +11 -6
  11. app/code/core/Mage/Catalog/Block/Product/List.php +2 -5
  12. app/code/core/Mage/Catalog/Block/Product/View.php +6 -61
  13. app/code/core/Mage/Catalog/Block/Product/View/Type/Configurable.php +33 -26
  14. app/code/core/Mage/Catalog/Helper/Image.php +8 -1
  15. app/code/core/Mage/Catalog/Helper/Product.php +40 -0
  16. app/code/core/Mage/Catalog/Helper/Product/Type/Composite.php +195 -0
  17. app/code/core/Mage/Catalog/Model/Product/Attribute/Backend/Groupprice/Abstract.php +6 -3
  18. app/code/core/Mage/Catalog/Model/Product/Attribute/Backend/Media.php +4 -1
  19. app/code/core/Mage/Catalog/Model/Product/Link/Api/V2.php +4 -4
  20. app/code/core/Mage/Catalog/Model/Resource/Eav/Attribute.php +1 -1
  21. app/code/core/Mage/Catalog/Model/Resource/Product/Attribute/Backend/Groupprice.php +13 -0
  22. app/code/core/Mage/Catalog/Model/Resource/Product/Indexer/Eav/Source.php +3 -3
  23. app/code/core/Mage/Catalog/Model/Resource/Product/Link/Product/Collection.php +48 -2
  24. app/code/core/Mage/Catalog/Model/Resource/Product/Type/Configurable/Attribute/Collection.php +11 -6
  25. app/code/core/Mage/Catalog/data/catalog_setup/data-upgrade-1.6.0.0.19.1.3-1.6.0.0.19.1.4.php +77 -0
  26. app/code/core/Mage/Catalog/etc/config.xml +2 -1
  27. app/code/core/Mage/Catalog/etc/system.xml +9 -0
  28. app/code/core/Mage/Catalog/sql/catalog_setup/upgrade-1.6.0.0.19.1.2-1.6.0.0.19.1.3.php +44 -0
  29. app/code/core/Mage/Catalog/sql/catalog_setup/upgrade-1.6.0.0.19.1.4-1.6.0.0.19.1.5.php +37 -0
  30. app/code/core/Mage/CatalogInventory/Model/Observer.php +1 -0
  31. app/code/core/Mage/CatalogInventory/Model/Stock/Item.php +21 -0
  32. app/code/core/Mage/CatalogRule/Model/Action/Index/Refresh.php +26 -4
  33. app/code/core/Mage/CatalogSearch/Model/Resource/Advanced.php +1 -1
  34. app/code/core/Mage/CatalogSearch/Model/Resource/Fulltext.php +40 -42
  35. app/code/core/Mage/CatalogSearch/Model/Resource/Fulltext/Collection.php +173 -13
  36. app/code/core/Mage/CatalogSearch/Model/Resource/Helper/Mysql4.php +16 -1
  37. app/code/core/Mage/Checkout/Model/Cart.php +9 -6
  38. app/code/core/Mage/Checkout/Model/Type/Multishipping.php +3 -0
  39. app/code/core/Mage/Checkout/Model/Type/Onepage.php +16 -0
  40. app/code/core/Mage/Checkout/controllers/CartController.php +26 -1
  41. app/code/core/Mage/Checkout/controllers/OnepageController.php +22 -10
  42. app/code/core/Mage/Cms/Block/Page.php +24 -2
  43. app/code/core/Mage/Cms/Helper/Wysiwyg/Images.php +2 -1
  44. app/code/core/Mage/Cms/Model/Wysiwyg/Images/Storage.php +5 -4
  45. app/code/core/Mage/ConfigurableSwatches/Block/Catalog/Product/List/Price.php +95 -0
  46. app/code/core/Mage/ConfigurableSwatches/Helper/Data.php +27 -1
  47. app/code/core/Mage/ConfigurableSwatches/Helper/List/Price.php +118 -0
  48. app/code/core/Mage/ConfigurableSwatches/Helper/Mediafallback.php +52 -10
  49. app/code/core/Mage/ConfigurableSwatches/Model/Observer.php +14 -7
  50. app/code/core/Mage/ConfigurableSwatches/Model/Resource/Catalog/Product/Attribute/Super/Collection.php +52 -33
  51. app/code/core/Mage/ConfigurableSwatches/etc/system.xml +9 -0
  52. app/code/core/Mage/Core/Block/Abstract.php +11 -1
  53. app/code/core/Mage/Core/Block/Template.php +1 -1
  54. app/code/core/Mage/Core/Controller/Varien/Action.php +1 -0
  55. app/code/core/Mage/Core/Helper/String.php +41 -1
  56. app/code/core/Mage/Core/Helper/Url.php +1 -1
  57. app/code/core/Mage/Core/Model/Config.php +3 -0
  58. app/code/core/Mage/Core/Model/Email/Queue.php +0 -2
  59. app/code/core/Mage/Core/Model/Email/Template.php +1 -0
  60. app/code/core/Mage/Core/Model/Email/Template/Abstract.php +15 -31
  61. app/code/core/Mage/Core/Model/Encryption.php +2 -2
  62. app/code/core/Mage/Core/Model/File/Storage/Abstract.php +3 -3
  63. app/code/core/Mage/Core/Model/File/Validator/AvailablePath.php +6 -6
  64. app/code/core/Mage/Core/Model/Input/Filter/MaliciousCode.php +7 -1
  65. app/code/core/Mage/Core/Model/Layout.php +1 -1
  66. app/code/core/Mage/Core/Model/Resource/Url/Rewrite.php +3 -3
  67. app/code/core/Mage/Core/Model/Resource/Variable/Collection.php +1 -1
  68. app/code/core/Mage/Core/Model/Session/Abstract/Varien.php +21 -0
  69. app/code/core/Mage/Core/etc/config.xml +8 -0
  70. app/code/core/Mage/Core/etc/jstranslator.xml +2 -2
  71. app/code/core/Mage/Core/etc/system.xml +1 -1
  72. app/code/core/Mage/Core/functions.php +35 -0
  73. app/code/core/Mage/Cron/Model/Schedule.php +5 -1
  74. app/code/core/Mage/Customer/Block/Address/Book.php +2 -1
  75. app/code/core/Mage/Customer/Helper/Data.php +37 -0
  76. app/code/core/Mage/Customer/Model/Customer.php +66 -8
  77. app/code/core/Mage/Customer/Model/Flowpassword.php +121 -0
  78. app/code/core/Mage/Customer/Model/Observer.php +13 -1
  79. app/code/core/Mage/Customer/Model/Resource/Flowpassword.php +44 -0
  80. app/code/core/Mage/Customer/Model/Resource/Flowpassword/Collection.php +44 -0
  81. app/code/core/Mage/Customer/controllers/AccountController.php +55 -25
  82. app/code/core/Mage/Customer/controllers/AddressController.php +3 -0
  83. app/code/core/Mage/Customer/data/customer_setup/data-upgrade-1.6.2.0.4-1.6.2.0.5.php +78 -0
  84. app/code/core/Mage/Customer/etc/config.xml +33 -2
  85. app/code/core/Mage/Customer/etc/system.xml +64 -1
  86. app/code/core/Mage/Customer/sql/customer_setup/upgrade-1.6.2.0.4-1.6.2.0.5.php +58 -0
  87. app/code/core/Mage/Dataflow/Model/Profile.php +14 -4
  88. app/code/core/Mage/Downloadable/Block/Adminhtml/Catalog/Product/Edit/Tab/Downloadable/Links.php +49 -21
  89. app/code/core/Mage/Downloadable/Block/Adminhtml/Catalog/Product/Edit/Tab/Downloadable/Samples.php +49 -24
  90. app/code/core/Mage/Downloadable/Helper/File.php +52 -612
  91. app/code/core/Mage/Eav/Block/Adminhtml/Attribute/Edit/Options/Abstract.php +2 -3
  92. app/code/core/Mage/Eav/Model/Entity/Abstract.php +10 -5
  93. app/code/core/Mage/Eav/Model/Entity/Attribute.php +2 -1
  94. app/code/core/Mage/Eav/Model/Entity/Attribute/Abstract.php +11 -2
  95. app/code/core/Mage/Eav/Model/Entity/Attribute/Source/Table.php +2 -2
  96. app/code/core/Mage/Eav/Model/Entity/Collection/Abstract.php +2 -0
  97. app/code/core/Mage/ImportExport/Helper/Data.php +13 -2
  98. app/code/core/Mage/ImportExport/Model/Export.php +47 -1
  99. app/code/core/Mage/ImportExport/Model/Export/Adapter/Abstract.php +17 -0
  100. app/code/core/Mage/ImportExport/Model/Export/Adapter/Csv.php +2 -0
  101. app/code/core/Mage/ImportExport/Model/Export/Entity/Abstract.php +58 -2
  102. app/code/core/Mage/ImportExport/Model/Export/Entity/Customer.php +312 -73
  103. app/code/core/Mage/ImportExport/Model/Export/Entity/Product.php +161 -88
  104. app/code/core/Mage/ImportExport/Model/Export/Entity/Product/Type/Abstract.php +1 -1
  105. app/code/core/Mage/ImportExport/Model/Import/Entity/Customer.php +62 -8
  106. app/code/core/Mage/ImportExport/Model/Import/Entity/Customer/Address.php +76 -36
  107. app/code/core/Mage/ImportExport/Model/Import/Entity/Product.php +118 -46
  108. app/code/core/Mage/ImportExport/Model/Import/Entity/Product/Type/Configurable.php +27 -11
  109. app/code/core/Mage/ImportExport/Model/Import/Uploader.php +1 -1
  110. app/code/core/Mage/ImportExport/controllers/Adminhtml/ExportController.php +4 -1
  111. app/code/core/Mage/ImportExport/etc/config.xml +3 -0
  112. app/code/core/Mage/ImportExport/etc/system.xml +19 -0
  113. app/code/core/Mage/Oauth/Model/Server.php +3 -3
  114. app/code/core/Mage/Paygate/Model/Authorizenet.php +9 -3
  115. app/code/core/Mage/Payment/Block/Info/Checkmo.php +8 -2
  116. app/code/core/Mage/Payment/Model/Method/Cc.php +1 -1
  117. app/code/core/Mage/Paypal/Model/Api/Nvp.php +2 -1
  118. app/code/core/Mage/Paypal/Model/Express/Checkout.php +23 -1
  119. app/code/core/Mage/Paypal/Model/Resource/Payment/Transaction.php +20 -0
  120. app/code/core/Mage/Persistent/Model/Persistent/Config.php +3 -1
  121. app/code/core/Mage/Reports/Model/Product/Index/Abstract.php +20 -2
  122. app/code/core/Mage/Reports/Model/Resource/Helper/Mysql4.php +29 -7
  123. app/code/core/Mage/Rss/Controller/Abstract.php +77 -0
  124. app/code/core/Mage/Rss/controllers/CatalogController.php +26 -38
  125. app/code/core/Mage/Rss/controllers/IndexController.php +2 -15
  126. app/code/core/Mage/Rss/controllers/OrderController.php +22 -18
  127. app/code/core/Mage/Rss/data/rss_setup/data-install-1.6.0.0.php +34 -0
  128. app/code/core/Mage/Rss/etc/config.xml +7 -3
  129. app/code/core/Mage/Rss/etc/system.xml +84 -5
  130. app/code/core/Mage/Sales/Helper/Guest.php +1 -1
  131. app/code/core/Mage/Sales/Model/Email/Template.php +1 -1
  132. app/code/core/Mage/Sales/Model/Order.php +17 -3
  133. app/code/core/Mage/Sales/Model/Order/Invoice/Total/Subtotal.php +4 -36
  134. app/code/core/Mage/Sales/Model/Quote/Address/Total/Subtotal.php +1 -1
  135. app/code/core/Mage/Sales/Model/Quote/Item.php +1 -1
  136. app/code/core/Mage/Sales/Model/Quote/Item/Abstract.php +4 -1
  137. app/code/core/Mage/Sales/Model/Resource/Order/Payment.php +24 -0
  138. app/code/core/Mage/Sales/Model/Resource/Order/Payment/Transaction.php +24 -0
  139. app/code/core/Mage/Sales/Model/Resource/Quote.php +2 -2
  140. app/code/core/Mage/Sales/Model/Resource/Quote/Payment.php +20 -0
  141. app/code/core/Mage/Sales/Model/Resource/Recurring/Profile.php +27 -0
  142. app/code/core/Mage/Sales/Model/Resource/Report/Bestsellers.php +3 -8
  143. app/code/core/Mage/Sales/Model/Resource/Report/Bestsellers/Collection.php +19 -6
  144. app/code/core/Mage/Sales/etc/config.xml +2 -1
  145. app/code/core/Mage/Sales/sql/sales_setup/upgrade-1.6.0.9-1.6.0.10.php +51 -0
  146. app/code/core/Mage/SalesRule/Model/Rule/Condition/Product.php +1 -1
  147. app/code/core/Mage/SalesRule/Model/Rule/Condition/Product/Combine.php +16 -1
  148. app/code/core/Mage/SalesRule/Model/Validator.php +182 -188
  149. app/code/core/Mage/SalesRule/etc/config.xml +2 -2
  150. app/code/core/Mage/Sitemap/Model/Sitemap.php +4 -2
  151. app/code/core/Mage/Tax/etc/config.xml +2 -2
  152. app/code/core/Mage/Uploader/Block/Abstract.php +247 -0
  153. app/code/core/Mage/Uploader/Block/Multiple.php +71 -0
  154. app/code/core/Mage/Uploader/Block/Single.php +52 -0
  155. app/code/core/Mage/Uploader/Helper/Data.php +35 -0
  156. app/code/core/Mage/Uploader/Helper/File.php +758 -0
  157. app/code/core/Mage/Uploader/Model/Config/Abstract.php +76 -0
  158. app/code/core/Mage/Uploader/Model/Config/Browsebutton.php +73 -0
  159. app/code/core/Mage/Uploader/Model/Config/Misc.php +54 -0
  160. app/code/core/Mage/Uploader/Model/Config/Uploader.php +128 -0
  161. app/code/core/Mage/Uploader/etc/config.xml +73 -0
  162. app/code/core/Mage/Uploader/etc/jstranslator.xml +45 -0
  163. app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl.php +4 -4
  164. app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl/International.php +18 -3
  165. app/code/core/Mage/Usa/Model/Shipping/Carrier/Fedex.php +3 -2
  166. app/code/core/Mage/Usa/Model/Shipping/Carrier/Ups.php +3 -3
  167. app/code/core/Mage/Usa/Model/Shipping/Carrier/Usps.php +6 -0
  168. app/code/core/Mage/Usa/etc/config.xml +5 -1
  169. app/code/core/Mage/Usa/etc/system.xml +27 -0
  170. app/code/core/Mage/Weee/Model/Observer.php +4 -1
  171. app/code/core/Mage/Wishlist/Block/Customer/Wishlist/Item/Options.php +6 -3
  172. app/code/core/Mage/Wishlist/Helper/Data.php +4 -1
  173. app/code/core/Mage/Wishlist/controllers/IndexController.php +3 -0
  174. app/code/core/Zend/Validate/Hostname.php +1684 -0
  175. app/etc/modules/Mage_All.xml +8 -1
  176. cron.php +1 -1
  177. errors/processor.php +21 -9
  178. package.xml +5 -5
.htaccess.sample CHANGED
@@ -127,6 +127,21 @@
127
 
128
  RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
129
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
130
  ############################################
131
  ## always send 404 on missing files in these folders
132
 
127
 
128
  RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
129
 
130
+ <IfModule mod_setenvif.c>
131
+ <IfModule mod_headers.c>
132
+
133
+ ############################################
134
+ # X-Content-Type-Options: nosniff disable content-type sniffing on some browsers.
135
+ Header set X-Content-Type-Options: nosniff
136
+
137
+ ############################################
138
+ # This header forces to enables the Cross-site scripting (XSS) filter in browsers (if disabled)
139
+ BrowserMatch \bMSIE\s8 ie8
140
+ Header set X-XSS-Protection: "1; mode=block" env=!ie8
141
+
142
+ </IfModule>
143
+ </IfModule>
144
+
145
  ############################################
146
  ## always send 404 on missing files in these folders
147
 
RELEASE_NOTES.txt CHANGED
@@ -1,3 +1,13 @@
 
 
 
 
 
 
 
 
 
 
1
  ==== 1.9.2.4 ====
2
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -53,7 +63,7 @@
53
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
54
  ] NOTE: Current Release Notes are maintained at: [
55
  ] [
56
- ] http://www.magentocommerce.com/knowledge-base/entry/ce-19-later-release-notes [
57
  ] [
58
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
59
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1
+ ==== 1.9.3.0 ====
2
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4
+ ] NOTE: Current Release Notes are maintained at: [
5
+ ] [
6
+ ] http://merch.docs.magento.com/ce/user_guide/magento/release-notes-ce-1.9.3.0.html [
7
+ ] [
8
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
9
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10
+
11
  ==== 1.9.2.4 ====
12
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
13
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
63
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
64
  ] NOTE: Current Release Notes are maintained at: [
65
  ] [
66
+ ] http://devdocs.magento.com/guides/m1x/ce18-ee113/ce1.9_release-notes.html [
67
  ] [
68
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
69
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
api.php CHANGED
@@ -74,8 +74,11 @@ if (in_array($apiAlias, Mage_Api2_Model_Server::getApiTypes())) {
74
  } else {
75
  /* @var $server Mage_Api_Model_Server */
76
  $server = Mage::getSingleton('api/server');
77
- $adapterCode = $server->getAdapterCodeByAlias($apiAlias);
78
-
 
 
 
79
  // if no adapters found in aliases - find it by default, by code
80
  if (null === $adapterCode) {
81
  $adapterCode = $apiAlias;
74
  } else {
75
  /* @var $server Mage_Api_Model_Server */
76
  $server = Mage::getSingleton('api/server');
77
+ if (!$apiAlias) {
78
+ $adapterCode = 'default';
79
+ } else {
80
+ $adapterCode = $server->getAdapterCodeByAlias($apiAlias);
81
+ }
82
  // if no adapters found in aliases - find it by default, by code
83
  if (null === $adapterCode) {
84
  $adapterCode = $apiAlias;
app/Mage.php CHANGED
@@ -170,8 +170,8 @@ final class Mage
170
  return array(
171
  'major' => '1',
172
  'minor' => '9',
173
- 'revision' => '2',
174
- 'patch' => '4',
175
  'stability' => '',
176
  'number' => '',
177
  );
170
  return array(
171
  'major' => '1',
172
  'minor' => '9',
173
+ 'revision' => '3',
174
+ 'patch' => '0',
175
  'stability' => '',
176
  'number' => '',
177
  );
app/code/core/Mage/Admin/Model/User.php CHANGED
@@ -640,8 +640,8 @@ class Mage_Admin_Model_User extends Mage_Core_Model_Abstract
640
  return true;
641
  }
642
 
643
- $dayDifference = floor(($currentTimestamp - $tokenTimestamp) / (24 * 60 * 60));
644
- if ($dayDifference >= $tokenExpirationPeriod) {
645
  return true;
646
  }
647
 
@@ -665,7 +665,7 @@ class Mage_Admin_Model_User extends Mage_Core_Model_Abstract
665
  /**
666
  * Simple sql format date
667
  *
668
- * @param string $format
669
  * @return string
670
  */
671
  protected function _getDateNow($dayOnly = false)
640
  return true;
641
  }
642
 
643
+ $hoursDifference = floor(($currentTimestamp - $tokenTimestamp) / (60 * 60));
644
+ if ($hoursDifference >= $tokenExpirationPeriod) {
645
  return true;
646
  }
647
 
665
  /**
666
  * Simple sql format date
667
  *
668
+ * @param string | boolean $dayOnly
669
  * @return string
670
  */
671
  protected function _getDateNow($dayOnly = false)
app/code/core/Mage/Admin/etc/config.xml CHANGED
@@ -85,7 +85,7 @@
85
  <emails>
86
  <forgot_email_template>admin_emails_forgot_email_template</forgot_email_template>
87
  <forgot_email_identity>general</forgot_email_identity>
88
- <password_reset_link_expiration_period>1</password_reset_link_expiration_period>
89
  </emails>
90
  </admin>
91
  </default>
85
  <emails>
86
  <forgot_email_template>admin_emails_forgot_email_template</forgot_email_template>
87
  <forgot_email_identity>general</forgot_email_identity>
88
+ <password_reset_link_expiration_period>2</password_reset_link_expiration_period>
89
  </emails>
90
  </admin>
91
  </default>
app/code/core/Mage/Api/Model/Server/Handler/Abstract.php CHANGED
@@ -288,13 +288,15 @@ abstract class Mage_Api_Model_Server_Handler_Abstract
288
  }
289
 
290
  if (method_exists($model, $method)) {
 
291
  if (isset($methodInfo->arguments) && ((string)$methodInfo->arguments) == 'array') {
292
- return $model->$method((is_array($args) ? $args : array($args)));
293
  } elseif (!is_array($args)) {
294
- return $model->$method($args);
295
  } else {
296
- return call_user_func_array(array(&$model, $method), $args);
297
  }
 
298
  } else {
299
  throw new Mage_Api_Exception('resource_path_not_callable');
300
  }
@@ -401,13 +403,15 @@ abstract class Mage_Api_Model_Server_Handler_Abstract
401
  }
402
 
403
  if (method_exists($model, $method)) {
 
404
  if (isset($methodInfo->arguments) && ((string)$methodInfo->arguments) == 'array') {
405
- $result[] = $model->$method((is_array($args) ? $args : array($args)));
406
  } elseif (!is_array($args)) {
407
- $result[] = $model->$method($args);
408
  } else {
409
- $result[] = call_user_func_array(array(&$model, $method), $args);
410
  }
 
411
  } else {
412
  throw new Mage_Api_Exception('resource_path_not_callable');
413
  }
@@ -543,4 +547,41 @@ abstract class Mage_Api_Model_Server_Handler_Abstract
543
  $this->_startSession($sessionId);
544
  return array_values($this->_getConfig()->getFaults());
545
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
546
  } // Class Mage_Api_Model_Server_Handler_Abstract End
288
  }
289
 
290
  if (method_exists($model, $method)) {
291
+ $result = array();
292
  if (isset($methodInfo->arguments) && ((string)$methodInfo->arguments) == 'array') {
293
+ $result = $model->$method((is_array($args) ? $args : array($args)));
294
  } elseif (!is_array($args)) {
295
+ $result = $model->$method($args);
296
  } else {
297
+ $result = call_user_func_array(array(&$model, $method), $args);
298
  }
299
+ return $this->processingMethodResult($result);
300
  } else {
301
  throw new Mage_Api_Exception('resource_path_not_callable');
302
  }
403
  }
404
 
405
  if (method_exists($model, $method)) {
406
+ $callResult = array();
407
  if (isset($methodInfo->arguments) && ((string)$methodInfo->arguments) == 'array') {
408
+ $callResult = $model->$method((is_array($args) ? $args : array($args)));
409
  } elseif (!is_array($args)) {
410
+ $callResult = $model->$method($args);
411
  } else {
412
+ $callResult = call_user_func_array(array(&$model, $method), $args);
413
  }
414
+ $result[] = $this->processingMethodResult($callResult);
415
  } else {
416
  throw new Mage_Api_Exception('resource_path_not_callable');
417
  }
547
  $this->_startSession($sessionId);
548
  return array_values($this->_getConfig()->getFaults());
549
  }
550
+
551
+ /**
552
+ * Prepare Api data for XML exporting
553
+ * See allowed characters in XML:
554
+ * @link http://www.w3.org/TR/2000/REC-xml-20001006#NT-Char
555
+ *
556
+ * @param array $result
557
+ * @return mixed
558
+ */
559
+ public function processingMethodResult(array $result)
560
+ {
561
+ foreach ($result as &$row) {
562
+ if (!is_null($row) && !is_bool($row) && !is_numeric($row)) {
563
+ $row = $this->processingRow($row);
564
+ }
565
+ }
566
+ return $result;
567
+ }
568
+
569
+ /**
570
+ * Prepare Api row data for XML exporting
571
+ * Convert not allowed symbol to numeric character reference
572
+ *
573
+ * @param $row
574
+ * @return mixed
575
+ */
576
+ public function processingRow($row)
577
+ {
578
+ $row = preg_replace_callback(
579
+ '/[^\x{0009}\x{000a}\x{000d}\x{0020}-\x{D7FF}\x{E000}-\x{FFFD}\x{10000}-\x{10FFFF}]/u',
580
+ function ($matches) {
581
+ return '&#' . Mage::helper('core/string')->uniOrd($matches[0]) . ';';
582
+ },
583
+ $row
584
+ );
585
+ return $row;
586
+ }
587
  } // Class Mage_Api_Model_Server_Handler_Abstract End
app/code/core/Mage/Bundle/Block/Adminhtml/Catalog/Product/Edit/Tab/Attributes.php CHANGED
@@ -121,6 +121,7 @@ class Mage_Bundle_Block_Adminhtml_Catalog_Product_Edit_Tab_Attributes
121
  $groupPrice->setRenderer(
122
  $this->getLayout()->createBlock('adminhtml/catalog_product_edit_tab_price_group')
123
  ->setPriceColumnHeader(Mage::helper('bundle')->__('Percent Discount'))
 
124
  ->setPriceValidation('validate-greater-than-zero validate-percents')
125
  );
126
  }
121
  $groupPrice->setRenderer(
122
  $this->getLayout()->createBlock('adminhtml/catalog_product_edit_tab_price_group')
123
  ->setPriceColumnHeader(Mage::helper('bundle')->__('Percent Discount'))
124
+ ->setIsPercent(true)
125
  ->setPriceValidation('validate-greater-than-zero validate-percents')
126
  );
127
  }
app/code/core/Mage/Bundle/Block/Catalog/Product/View/Type/Bundle/Option.php CHANGED
@@ -85,8 +85,13 @@ class Mage_Bundle_Block_Catalog_Product_View_Type_Bundle_Option extends Mage_Bun
85
  $_canChangeQty = $_default->getSelectionCanChangeQty();
86
  } elseif (!$inPreConfigured && $selectedOptions && is_numeric($selectedOptions)) {
87
  $selectedSelection = $_option->getSelectionById($selectedOptions);
88
- $_defaultQty = $selectedSelection->getSelectionQty() * 1;
89
- $_canChangeQty = $selectedSelection->getSelectionCanChangeQty();
 
 
 
 
 
90
  } elseif (!$this->_showSingle() || $inPreConfigured) {
91
  $_defaultQty = $this->_getSelectedQty();
92
  $_canChangeQty = (bool)$_defaultQty;
85
  $_canChangeQty = $_default->getSelectionCanChangeQty();
86
  } elseif (!$inPreConfigured && $selectedOptions && is_numeric($selectedOptions)) {
87
  $selectedSelection = $_option->getSelectionById($selectedOptions);
88
+ if ($selectedSelection) {
89
+ $_defaultQty = $selectedSelection->getSelectionQty() * 1;
90
+ $_canChangeQty = $selectedSelection->getSelectionCanChangeQty();
91
+ } else {
92
+ $_defaultQty = $_selections[0]->getSelectionQty() * 1;
93
+ $_canChangeQty = $_selections[0]->getSelectionCanChangeQty();
94
+ }
95
  } elseif (!$this->_showSingle() || $inPreConfigured) {
96
  $_defaultQty = $this->_getSelectedQty();
97
  $_canChangeQty = (bool)$_defaultQty;
app/code/core/Mage/Catalog/Block/Product/Abstract.php CHANGED
@@ -104,6 +104,16 @@ abstract class Mage_Catalog_Block_Product_Abstract extends Mage_Core_Block_Templ
104
  */
105
  protected $_mapRenderer = 'msrp';
106
 
 
 
 
 
 
 
 
 
 
 
107
  /**
108
  * Retrieve url for add product to cart
109
  * Will return product view page URL if product has required options
@@ -195,12 +205,7 @@ abstract class Mage_Catalog_Block_Product_Abstract extends Mage_Core_Block_Templ
195
  */
196
  public function getMinimalQty($product)
197
  {
198
- $stockItem = $product->getStockItem();
199
- if ($stockItem) {
200
- return ($stockItem->getMinSaleQty()
201
- && $stockItem->getMinSaleQty() > 0 ? $stockItem->getMinSaleQty() * 1 : null);
202
- }
203
- return null;
204
  }
205
 
206
  /**
104
  */
105
  protected $_mapRenderer = 'msrp';
106
 
107
+ /**
108
+ * Get catalog product helper
109
+ *
110
+ * @return Mage_Catalog_Helper_Product
111
+ */
112
+ public function getProductHelper()
113
+ {
114
+ return Mage::helper('catalog/product');
115
+ }
116
+
117
  /**
118
  * Retrieve url for add product to cart
119
  * Will return product view page URL if product has required options
205
  */
206
  public function getMinimalQty($product)
207
  {
208
+ return $this->getProductHelper()->getMinimalQty($product);
 
 
 
 
 
209
  }
210
 
211
  /**
app/code/core/Mage/Catalog/Block/Product/List.php CHANGED
@@ -62,16 +62,13 @@ class Mage_Catalog_Block_Product_List extends Mage_Catalog_Block_Product_Abstrac
62
  $this->setCategoryId(Mage::app()->getStore()->getRootCategoryId());
63
  }
64
 
65
- // if this is a product view page
66
  if (Mage::registry('product')) {
67
- // get collection of categories this product is associated with
68
  $categories = Mage::registry('product')->getCategoryCollection()
69
  ->setPage(1, 1)
70
  ->load();
71
- // if the product is associated with any category
72
  if ($categories->count()) {
73
- // show products from this category
74
- $this->setCategoryId(current($categories->getIterator()));
75
  }
76
  }
77
 
62
  $this->setCategoryId(Mage::app()->getStore()->getRootCategoryId());
63
  }
64
 
 
65
  if (Mage::registry('product')) {
66
+ /** @var Mage_Catalog_Model_Resource_Category_Collection $categories */
67
  $categories = Mage::registry('product')->getCategoryCollection()
68
  ->setPage(1, 1)
69
  ->load();
 
70
  if ($categories->count()) {
71
+ $this->setCategoryId($categories->getFirstItem()->getId());
 
72
  }
73
  }
74
 
app/code/core/Mage/Catalog/Block/Product/View.php CHANGED
@@ -141,62 +141,14 @@ class Mage_Catalog_Block_Product_View extends Mage_Catalog_Block_Product_Abstrac
141
  return Mage::helper('core')->jsonEncode($config);
142
  }
143
 
144
- $_request = Mage::getSingleton('tax/calculation')->getDefaultRateRequest();
145
  /* @var $product Mage_Catalog_Model_Product */
146
  $product = $this->getProduct();
147
- $_request->setProductClassId($product->getTaxClassId());
148
- $defaultTax = Mage::getSingleton('tax/calculation')->getRate($_request);
149
 
150
- $_request = Mage::getSingleton('tax/calculation')->getRateRequest();
151
- $_request->setProductClassId($product->getTaxClassId());
152
- $currentTax = Mage::getSingleton('tax/calculation')->getRate($_request);
153
-
154
- $_regularPrice = $product->getPrice();
155
- $_finalPrice = $product->getFinalPrice();
156
- if ($product->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_BUNDLE) {
157
- $_priceInclTax = Mage::helper('tax')->getPrice($product, $_finalPrice, true,
158
- null, null, null, null, null, false);
159
- $_priceExclTax = Mage::helper('tax')->getPrice($product, $_finalPrice, false,
160
- null, null, null, null, null, false);
161
- } else {
162
- $_priceInclTax = Mage::helper('tax')->getPrice($product, $_finalPrice, true);
163
- $_priceExclTax = Mage::helper('tax')->getPrice($product, $_finalPrice);
164
- }
165
- $_tierPrices = array();
166
- $_tierPricesInclTax = array();
167
- foreach ($product->getTierPrice() as $tierPrice) {
168
- $_tierPrices[] = Mage::helper('core')->currency(
169
- Mage::helper('tax')->getPrice($product, (float)$tierPrice['website_price'], false) - $_priceExclTax
170
- , false, false);
171
- $_tierPricesInclTax[] = Mage::helper('core')->currency(
172
- Mage::helper('tax')->getPrice($product, (float)$tierPrice['website_price'], true) - $_priceInclTax
173
- , false, false);
174
- }
175
- $config = array(
176
- 'productId' => $product->getId(),
177
- 'priceFormat' => Mage::app()->getLocale()->getJsPriceFormat(),
178
- 'includeTax' => Mage::helper('tax')->priceIncludesTax() ? 'true' : 'false',
179
- 'showIncludeTax' => Mage::helper('tax')->displayPriceIncludingTax(),
180
- 'showBothPrices' => Mage::helper('tax')->displayBothPrices(),
181
- 'productPrice' => Mage::helper('core')->currency($_finalPrice, false, false),
182
- 'productOldPrice' => Mage::helper('core')->currency($_regularPrice, false, false),
183
- 'priceInclTax' => Mage::helper('core')->currency($_priceInclTax, false, false),
184
- 'priceExclTax' => Mage::helper('core')->currency($_priceExclTax, false, false),
185
- /**
186
- * @var skipCalculate
187
- * @deprecated after 1.5.1.0
188
- */
189
- 'skipCalculate' => ($_priceExclTax != $_priceInclTax ? 0 : 1),
190
- 'defaultTax' => $defaultTax,
191
- 'currentTax' => $currentTax,
192
- 'idSuffix' => '_clone',
193
- 'oldPlusDisposition' => 0,
194
- 'plusDisposition' => 0,
195
- 'plusDispositionTax' => 0,
196
- 'oldMinusDisposition' => 0,
197
- 'minusDisposition' => 0,
198
- 'tierPrices' => $_tierPrices,
199
- 'tierPricesInclTax' => $_tierPricesInclTax,
200
  );
201
 
202
  $responseObject = new Varien_Object();
@@ -259,14 +211,7 @@ class Mage_Catalog_Block_Product_View extends Mage_Catalog_Block_Product_Abstrac
259
  $product = $this->getProduct();
260
  }
261
 
262
- $qty = $this->getMinimalQty($product);
263
- $config = $product->getPreconfiguredValues();
264
- $configQty = $config->getQty();
265
- if ($configQty > $qty) {
266
- $qty = $configQty;
267
- }
268
-
269
- return $qty;
270
  }
271
 
272
  /**
141
  return Mage::helper('core')->jsonEncode($config);
142
  }
143
 
 
144
  /* @var $product Mage_Catalog_Model_Product */
145
  $product = $this->getProduct();
 
 
146
 
147
+ /** @var Mage_Catalog_Helper_Product_Type_Composite $compositeProductHelper */
148
+ $compositeProductHelper = $this->helper('catalog/product_type_composite');
149
+ $config = array_merge(
150
+ $compositeProductHelper->prepareJsonGeneralConfig(),
151
+ $compositeProductHelper->prepareJsonProductConfig($product)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
152
  );
153
 
154
  $responseObject = new Varien_Object();
211
  $product = $this->getProduct();
212
  }
213
 
214
+ return $this->getProductHelper()->getDefaultQty($product);
 
 
 
 
 
 
 
215
  }
216
 
217
  /**
app/code/core/Mage/Catalog/Block/Product/View/Type/Configurable.php CHANGED
@@ -48,6 +48,16 @@ class Mage_Catalog_Block_Product_View_Type_Configurable extends Mage_Catalog_Blo
48
  */
49
  protected $_resPrices = array();
50
 
 
 
 
 
 
 
 
 
 
 
51
  /**
52
  * Get allowed attributes
53
  *
@@ -91,7 +101,10 @@ class Mage_Catalog_Block_Product_View_Type_Configurable extends Mage_Catalog_Blo
91
  $allProducts = $this->getProduct()->getTypeInstance(true)
92
  ->getUsedProducts(null, $this->getProduct());
93
  foreach ($allProducts as $product) {
94
- if ($product->isSaleable() || $skipSaleableCheck) {
 
 
 
95
  $products[] = $product;
96
  }
97
  }
@@ -103,11 +116,12 @@ class Mage_Catalog_Block_Product_View_Type_Configurable extends Mage_Catalog_Blo
103
  /**
104
  * retrieve current store
105
  *
 
106
  * @return Mage_Core_Model_Store
107
  */
108
  public function getCurrentStore()
109
  {
110
- return Mage::app()->getStore();
111
  }
112
 
113
  /**
@@ -138,10 +152,10 @@ class Mage_Catalog_Block_Product_View_Type_Configurable extends Mage_Catalog_Blo
138
  $preconfiguredValues = $currentProduct->getPreconfiguredValues();
139
  $defaultValues = array();
140
  }
141
-
142
  foreach ($this->getAllowProducts() as $product) {
143
  $productId = $product->getId();
144
-
145
  foreach ($this->getAllowAttributes() as $attribute) {
146
  $productAttribute = $attribute->getProductAttribute();
147
  $productAttributeId = $productAttribute->getId();
@@ -189,7 +203,13 @@ class Mage_Catalog_Block_Product_View_Type_Configurable extends Mage_Catalog_Blo
189
  $configurablePrice = $currentProduct->getConfigurablePrice();
190
 
191
  if (isset($options[$attributeId][$value['value_index']])) {
192
- $productsIndex = $options[$attributeId][$value['value_index']];
 
 
 
 
 
 
193
  } else {
194
  $productsIndex = array();
195
  }
@@ -300,64 +320,51 @@ class Mage_Catalog_Block_Product_View_Type_Configurable extends Mage_Catalog_Blo
300
  /**
301
  * Calculation real price
302
  *
 
303
  * @param float $price
304
  * @param bool $isPercent
305
  * @return mixed
306
  */
307
  protected function _preparePrice($price, $isPercent = false)
308
  {
309
- if ($isPercent && !empty($price)) {
310
- $price = $this->getProduct()->getFinalPrice() * $price / 100;
311
- }
312
-
313
- return $this->_registerJsPrice($this->_convertPrice($price, true));
314
  }
315
 
316
  /**
317
  * Calculation price before special price
318
  *
 
319
  * @param float $price
320
  * @param bool $isPercent
321
  * @return mixed
322
  */
323
  protected function _prepareOldPrice($price, $isPercent = false)
324
  {
325
- if ($isPercent && !empty($price)) {
326
- $price = $this->getProduct()->getPrice() * $price / 100;
327
- }
328
-
329
- return $this->_registerJsPrice($this->_convertPrice($price, true));
330
  }
331
 
332
  /**
333
  * Replace ',' on '.' for js
334
  *
 
335
  * @param float $price
336
  * @return string
337
  */
338
  protected function _registerJsPrice($price)
339
  {
340
- return str_replace(',', '.', $price);
341
  }
342
 
343
  /**
344
  * Convert price from default currency to current currency
345
  *
 
346
  * @param float $price
347
  * @param boolean $round
348
  * @return float
349
  */
350
  protected function _convertPrice($price, $round = false)
351
  {
352
- if (empty($price)) {
353
- return 0;
354
- }
355
-
356
- $price = $this->getCurrentStore()->convertPrice($price);
357
- if ($round) {
358
- $price = $this->getCurrentStore()->roundPrice($price);
359
- }
360
-
361
- return $price;
362
  }
363
  }
48
  */
49
  protected $_resPrices = array();
50
 
51
+ /**
52
+ * Get helper for calculation purposes
53
+ *
54
+ * @return Mage_Catalog_Helper_Product_Type_Composite
55
+ */
56
+ protected function _getHelper()
57
+ {
58
+ return $this->helper('catalog/product_type_composite');
59
+ }
60
+
61
  /**
62
  * Get allowed attributes
63
  *
101
  $allProducts = $this->getProduct()->getTypeInstance(true)
102
  ->getUsedProducts(null, $this->getProduct());
103
  foreach ($allProducts as $product) {
104
+ if ($product->isSaleable()
105
+ || $skipSaleableCheck
106
+ || (!$product->getStockItem()->getIsInStock()
107
+ && Mage::helper('cataloginventory')->isShowOutOfStock())) {
108
  $products[] = $product;
109
  }
110
  }
116
  /**
117
  * retrieve current store
118
  *
119
+ * @deprecated
120
  * @return Mage_Core_Model_Store
121
  */
122
  public function getCurrentStore()
123
  {
124
+ return $this->_getHelper()->getCurrentStore();
125
  }
126
 
127
  /**
152
  $preconfiguredValues = $currentProduct->getPreconfiguredValues();
153
  $defaultValues = array();
154
  }
155
+ $productStock = array();
156
  foreach ($this->getAllowProducts() as $product) {
157
  $productId = $product->getId();
158
+ $productStock[$productId] = $product->getStockItem()->getIsInStock();
159
  foreach ($this->getAllowAttributes() as $attribute) {
160
  $productAttribute = $attribute->getProductAttribute();
161
  $productAttributeId = $productAttribute->getId();
203
  $configurablePrice = $currentProduct->getConfigurablePrice();
204
 
205
  if (isset($options[$attributeId][$value['value_index']])) {
206
+ $productsIndexOptions = $options[$attributeId][$value['value_index']];
207
+ $productsIndex = array();
208
+ foreach ($productsIndexOptions as $productIndex) {
209
+ if ($productStock[$productIndex]) {
210
+ $productsIndex[] = $productIndex;
211
+ }
212
+ }
213
  } else {
214
  $productsIndex = array();
215
  }
320
  /**
321
  * Calculation real price
322
  *
323
+ * @deprecated
324
  * @param float $price
325
  * @param bool $isPercent
326
  * @return mixed
327
  */
328
  protected function _preparePrice($price, $isPercent = false)
329
  {
330
+ return $this->_getHelper()->preparePrice($this->getProduct(), $price, $isPercent);
 
 
 
 
331
  }
332
 
333
  /**
334
  * Calculation price before special price
335
  *
336
+ * @deprecated
337
  * @param float $price
338
  * @param bool $isPercent
339
  * @return mixed
340
  */
341
  protected function _prepareOldPrice($price, $isPercent = false)
342
  {
343
+ return $this->_getHelper()->prepareOldPrice($this->getProduct(), $price, $isPercent);
 
 
 
 
344
  }
345
 
346
  /**
347
  * Replace ',' on '.' for js
348
  *
349
+ * @deprecated
350
  * @param float $price
351
  * @return string
352
  */
353
  protected function _registerJsPrice($price)
354
  {
355
+ return $this->_getHelper()->registerJsPrice($price);
356
  }
357
 
358
  /**
359
  * Convert price from default currency to current currency
360
  *
361
+ * @deprecated
362
  * @param float $price
363
  * @param boolean $round
364
  * @return float
365
  */
366
  protected function _convertPrice($price, $round = false)
367
  {
368
+ return $this->_getHelper()->convertPrice($price, $round);
 
 
 
 
 
 
 
 
 
369
  }
370
  }
app/code/core/Mage/Catalog/Helper/Image.php CHANGED
@@ -33,6 +33,7 @@ class Mage_Catalog_Helper_Image extends Mage_Core_Helper_Abstract
33
  {
34
  const XML_NODE_PRODUCT_BASE_IMAGE_WIDTH = 'catalog/product_image/base_width';
35
  const XML_NODE_PRODUCT_SMALL_IMAGE_WIDTH = 'catalog/product_image/small_width';
 
36
 
37
  /**
38
  * Current model
@@ -634,10 +635,16 @@ class Mage_Catalog_Helper_Image extends Mage_Core_Helper_Abstract
634
  * @throws Mage_Core_Exception
635
  */
636
  public function validateUploadFile($filePath) {
637
- if (!getimagesize($filePath)) {
 
 
638
  Mage::throwException($this->__('Disallowed file type.'));
639
  }
640
 
 
 
 
 
641
  $_processor = new Varien_Image($filePath);
642
  return $_processor->getMimeType() !== null;
643
  }
33
  {
34
  const XML_NODE_PRODUCT_BASE_IMAGE_WIDTH = 'catalog/product_image/base_width';
35
  const XML_NODE_PRODUCT_SMALL_IMAGE_WIDTH = 'catalog/product_image/small_width';
36
+ const XML_NODE_PRODUCT_MAX_DIMENSION = 'catalog/product_image/max_dimension';
37
 
38
  /**
39
  * Current model
635
  * @throws Mage_Core_Exception
636
  */
637
  public function validateUploadFile($filePath) {
638
+ $maxDimension = Mage::getStoreConfig(self::XML_NODE_PRODUCT_MAX_DIMENSION);
639
+ $imageInfo = getimagesize($filePath);
640
+ if (!$imageInfo) {
641
  Mage::throwException($this->__('Disallowed file type.'));
642
  }
643
 
644
+ if ($imageInfo[0] > $maxDimension || $imageInfo[1] > $maxDimension) {
645
+ Mage::throwException($this->__('Disalollowed file format.'));
646
+ }
647
+
648
  $_processor = new Varien_Image($filePath);
649
  return $_processor->getMimeType() !== null;
650
  }
app/code/core/Mage/Catalog/Helper/Product.php CHANGED
@@ -35,6 +35,8 @@ class Mage_Catalog_Helper_Product extends Mage_Core_Helper_Url
35
  const XML_PATH_PRODUCT_URL_USE_CATEGORY = 'catalog/seo/product_use_categories';
36
  const XML_PATH_USE_PRODUCT_CANONICAL_TAG = 'catalog/seo/product_canonical_tag';
37
 
 
 
38
  /**
39
  * Flag that shows if Magento has to check product to be saleable (enabled and/or inStock)
40
  *
@@ -485,4 +487,42 @@ class Mage_Catalog_Helper_Product extends Mage_Core_Helper_Url
485
  {
486
  return $this->_skipSaleableCheck;
487
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
488
  }
35
  const XML_PATH_PRODUCT_URL_USE_CATEGORY = 'catalog/seo/product_use_categories';
36
  const XML_PATH_USE_PRODUCT_CANONICAL_TAG = 'catalog/seo/product_canonical_tag';
37
 
38
+ const DEFAULT_QTY = 1;
39
+
40
  /**
41
  * Flag that shows if Magento has to check product to be saleable (enabled and/or inStock)
42
  *
487
  {
488
  return $this->_skipSaleableCheck;
489
  }
490
+
491
+ /**
492
+ * Gets minimal sales quantity
493
+ *
494
+ * @param Mage_Catalog_Model_Product $product
495
+ * @return int|null
496
+ */
497
+ public function getMinimalQty($product)
498
+ {
499
+ $stockItem = $product->getStockItem();
500
+ if ($stockItem && $stockItem->getMinSaleQty()) {
501
+ return $stockItem->getMinSaleQty() * 1;
502
+ }
503
+ return null;
504
+ }
505
+
506
+ /**
507
+ * Get default qty - either as preconfigured, or as 1.
508
+ * Also restricts it by minimal qty.
509
+ *
510
+ * @param Mage_Catalog_Model_Product $product
511
+ * @return int|float
512
+ */
513
+ public function getDefaultQty($product)
514
+ {
515
+ $qty = $this->getMinimalQty($product);
516
+ $configQty = $product->getPreconfiguredValues()->getQty();
517
+
518
+ if ($product->isConfigurable() || $configQty > $qty) {
519
+ $qty = $configQty;
520
+ }
521
+
522
+ if (is_null($qty)) {
523
+ $qty = self::DEFAULT_QTY;
524
+ }
525
+
526
+ return $qty;
527
+ }
528
  }
app/code/core/Mage/Catalog/Helper/Product/Type/Composite.php ADDED
@@ -0,0 +1,195 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Catalog
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+ /**
28
+ * Helper for preparing properties for configurable product
29
+ *
30
+ * @category Mage
31
+ * @package Mage_Catalog
32
+ * @author Magento Core Team <core@magentocommerce.com>
33
+ */
34
+ class Mage_Catalog_Helper_Product_Type_Composite extends Mage_Core_Helper_Abstract
35
+ {
36
+ /**
37
+ * Calculation real price
38
+ *
39
+ * @param Mage_Catalog_Model_Product $product
40
+ * @param float $price
41
+ * @param bool $isPercent
42
+ * @param null|int $storeId
43
+ * @return mixed
44
+ */
45
+ public function preparePrice($product, $price, $isPercent = false, $storeId = null)
46
+ {
47
+ if ($isPercent && !empty($price)) {
48
+ $price = $product->getFinalPrice() * $price / 100;
49
+ }
50
+
51
+ return $this->registerJsPrice($this->convertPrice($price, true, $storeId));
52
+ }
53
+
54
+ /**
55
+ * Calculation price before special price
56
+ *
57
+ * @param Mage_Catalog_Model_Product $product
58
+ * @param float $price
59
+ * @param bool $isPercent
60
+ * @param null|int $storeId
61
+ * @return mixed
62
+ */
63
+ public function prepareOldPrice($product, $price, $isPercent = false, $storeId = null)
64
+ {
65
+ if ($isPercent && !empty($price)) {
66
+ $price = $product->getPrice() * $price / 100;
67
+ }
68
+
69
+ return $this->registerJsPrice($this->convertPrice($price, true, $storeId));
70
+ }
71
+
72
+ /**
73
+ * Replace ',' on '.' for js
74
+ *
75
+ * @param float $price
76
+ * @return string
77
+ */
78
+ public function registerJsPrice($price)
79
+ {
80
+ return str_replace(',', '.', $price);
81
+ }
82
+
83
+ /**
84
+ * Convert price from default currency to current currency
85
+ *
86
+ * @param float $price
87
+ * @param boolean $round
88
+ * @param null|int $storeId
89
+ * @return float
90
+ */
91
+ public function convertPrice($price, $round = false, $storeId = null)
92
+ {
93
+ if (empty($price)) {
94
+ return 0;
95
+ }
96
+
97
+ $price = $this->getCurrentStore($storeId)->convertPrice($price);
98
+ if ($round) {
99
+ $price = $this->getCurrentStore($storeId)->roundPrice($price);
100
+ }
101
+
102
+ return $price;
103
+ }
104
+
105
+ /**
106
+ * Retrieve current store
107
+ *
108
+ * @param null $storeId
109
+ * @return Mage_Core_Model_Store
110
+ */
111
+ public function getCurrentStore($storeId = null)
112
+ {
113
+ return Mage::app()->getStore($storeId);
114
+ }
115
+
116
+ /**
117
+ * Prepare general params for product to be used in getJsonConfig()
118
+ * @see Mage_Catalog_Block_Product_View::getJsonConfig()
119
+ * @see Mage_ConfigurableSwatches_Block_Catalog_Product_List_Price::getJsonConfig()
120
+ *
121
+ * @return array
122
+ */
123
+ public function prepareJsonGeneralConfig()
124
+ {
125
+ return array(
126
+ 'priceFormat' => Mage::app()->getLocale()->getJsPriceFormat(),
127
+ 'includeTax' => Mage::helper('tax')->priceIncludesTax() ? 'true' : 'false',
128
+ 'showIncludeTax' => Mage::helper('tax')->displayPriceIncludingTax(),
129
+ 'showBothPrices' => Mage::helper('tax')->displayBothPrices(),
130
+ 'idSuffix' => '',
131
+ 'oldPlusDisposition' => 0,
132
+ 'plusDisposition' => 0,
133
+ 'plusDispositionTax' => 0,
134
+ 'oldMinusDisposition' => 0,
135
+ 'minusDisposition' => 0,
136
+ );
137
+ }
138
+
139
+
140
+
141
+ /**
142
+ * Prepare product specific params to be used in getJsonConfig()
143
+ * @see Mage_Catalog_Block_Product_View::getJsonConfig()
144
+ * @see Mage_ConfigurableSwatches_Block_Catalog_Product_List_Price::getJsonConfig()
145
+ *
146
+ * @param Mage_Catalog_Model_Product $product
147
+ * @return array
148
+ */
149
+ public function prepareJsonProductConfig($product)
150
+ {
151
+ $_request = Mage::getSingleton('tax/calculation')->getDefaultRateRequest();
152
+ $_request->setProductClassId($product->getTaxClassId());
153
+ $defaultTax = Mage::getSingleton('tax/calculation')->getRate($_request);
154
+
155
+ $_request = Mage::getSingleton('tax/calculation')->getRateRequest();
156
+ $_request->setProductClassId($product->getTaxClassId());
157
+ $currentTax = Mage::getSingleton('tax/calculation')->getRate($_request);
158
+
159
+ $_regularPrice = $product->getPrice();
160
+ $_finalPrice = $product->getFinalPrice();
161
+ if ($product->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_BUNDLE) {
162
+ $_priceInclTax = Mage::helper('tax')->getPrice($product, $_finalPrice, true,
163
+ null, null, null, null, null, false);
164
+ $_priceExclTax = Mage::helper('tax')->getPrice($product, $_finalPrice, false,
165
+ null, null, null, null, null, false);
166
+ } else {
167
+ $_priceInclTax = Mage::helper('tax')->getPrice($product, $_finalPrice, true);
168
+ $_priceExclTax = Mage::helper('tax')->getPrice($product, $_finalPrice);
169
+ }
170
+ $_tierPrices = array();
171
+ $_tierPricesInclTax = array();
172
+ foreach ($product->getTierPrice() as $tierPrice) {
173
+ $_tierPrices[] = Mage::helper('core')->currency(
174
+ Mage::helper('tax')->getPrice($product, (float)$tierPrice['website_price'], false) - $_priceExclTax
175
+ , false, false);
176
+ $_tierPricesInclTax[] = Mage::helper('core')->currency(
177
+ Mage::helper('tax')->getPrice($product, (float)$tierPrice['website_price'], true) - $_priceInclTax
178
+ , false, false);
179
+ }
180
+
181
+ return array(
182
+ 'productId' => $product->getId(),
183
+ 'productPrice' => Mage::helper('core')->currency($_finalPrice, false, false),
184
+ 'productOldPrice' => Mage::helper('core')->currency($_regularPrice, false, false),
185
+ 'priceInclTax' => Mage::helper('core')->currency($_priceInclTax, false, false),
186
+ 'priceExclTax' => Mage::helper('core')->currency($_priceExclTax, false, false),
187
+ 'skipCalculate' => ($_priceExclTax != $_priceInclTax ? 0 : 1),
188
+ 'defaultTax' => $defaultTax,
189
+ 'currentTax' => $currentTax,
190
+ 'tierPrices' => $_tierPrices,
191
+ 'tierPricesInclTax' => $_tierPricesInclTax,
192
+ 'swatchPrices' => $product->getSwatchPrices(),
193
+ );
194
+ }
195
+ }
app/code/core/Mage/Catalog/Model/Product/Attribute/Backend/Groupprice/Abstract.php CHANGED
@@ -227,6 +227,7 @@ abstract class Mage_Catalog_Model_Product_Attribute_Backend_Groupprice_Abstract
227
  $data = $this->_getResource()->loadPriceData($object->getId(), $websiteId);
228
  foreach ($data as $k => $v) {
229
  $data[$k]['website_price'] = $v['price'];
 
230
  if ($v['all_groups']) {
231
  $data[$k]['cust_group'] = Mage_Customer_Model_Group::CUST_GROUP_ALL;
232
  }
@@ -318,6 +319,7 @@ abstract class Mage_Catalog_Model_Product_Attribute_Backend_Groupprice_Abstract
318
  'all_groups' => $useForAllGroups ? 1 : 0,
319
  'customer_group_id' => $customerGroupId,
320
  'value' => $data['price'],
 
321
  ), $this->_getAdditionalUniqueFields($data));
322
  }
323
 
@@ -347,10 +349,11 @@ abstract class Mage_Catalog_Model_Product_Attribute_Backend_Groupprice_Abstract
347
 
348
  if (!empty($update)) {
349
  foreach ($update as $k => $v) {
350
- if ($old[$k]['price'] != $v['value']) {
351
  $price = new Varien_Object(array(
352
- 'value_id' => $old[$k]['price_id'],
353
- 'value' => $v['value']
 
354
  ));
355
  $this->_getResource()->savePriceData($price);
356
 
227
  $data = $this->_getResource()->loadPriceData($object->getId(), $websiteId);
228
  foreach ($data as $k => $v) {
229
  $data[$k]['website_price'] = $v['price'];
230
+ $data[$k]['is_percent'] = isset($v['is_percent']) ? isset($v['is_percent']) : 0;
231
  if ($v['all_groups']) {
232
  $data[$k]['cust_group'] = Mage_Customer_Model_Group::CUST_GROUP_ALL;
233
  }
319
  'all_groups' => $useForAllGroups ? 1 : 0,
320
  'customer_group_id' => $customerGroupId,
321
  'value' => $data['price'],
322
+ 'is_percent' => isset($data['is_percent']) ? $data['is_percent'] : 0,
323
  ), $this->_getAdditionalUniqueFields($data));
324
  }
325
 
349
 
350
  if (!empty($update)) {
351
  foreach ($update as $k => $v) {
352
+ if ($old[$k]['price'] != $v['value'] || $old[$k]['is_percent'] != $v['is_percent']) {
353
  $price = new Varien_Object(array(
354
+ 'value_id' => $old[$k]['price_id'],
355
+ 'value' => $v['value'],
356
+ 'is_percent' => $v['is_percent']
357
  ));
358
  $this->_getResource()->savePriceData($price);
359
 
app/code/core/Mage/Catalog/Model/Product/Attribute/Backend/Media.php CHANGED
@@ -643,8 +643,11 @@ class Mage_Catalog_Model_Product_Attribute_Backend_Media extends Mage_Eav_Model_
643
 
644
  } catch (Exception $e) {
645
  $file = $this->_getConfig()->getMediaPath($file);
 
646
  Mage::throwException(
647
- Mage::helper('catalog')->__('Failed to copy file %s. Please, delete media with non-existing images and try again.', $file)
 
 
648
  );
649
  }
650
 
643
 
644
  } catch (Exception $e) {
645
  $file = $this->_getConfig()->getMediaPath($file);
646
+ $io = new Varien_Io_File();
647
  Mage::throwException(
648
+ Mage::helper('catalog')->__(
649
+ 'Failed to copy file %s. Please, delete media with non-existing images and try again.',
650
+ $io->getFilteredPath($file))
651
  );
652
  }
653
 
app/code/core/Mage/Catalog/Model/Product/Link/Api/V2.php CHANGED
@@ -61,8 +61,8 @@ class Mage_Catalog_Model_Product_Link_Api_V2 extends Mage_Catalog_Model_Product_
61
 
62
  $links[(int)$linkedProductId] = array();
63
  foreach ($collection->getLinkModel()->getAttributes() as $attribute) {
64
- if (isset($data->$attribute['code'])) {
65
- $links[(int)$linkedProductId][$attribute['code']] = $data->$attribute['code'];
66
  }
67
  }
68
 
@@ -118,8 +118,8 @@ class Mage_Catalog_Model_Product_Link_Api_V2 extends Mage_Catalog_Model_Product_
118
  }
119
 
120
  foreach ($collection->getLinkModel()->getAttributes() as $attribute) {
121
- if (isset($data->$attribute['code'])) {
122
- $links[(int)$linkedProductId][$attribute['code']] = $data->$attribute['code'];
123
  }
124
  }
125
 
61
 
62
  $links[(int)$linkedProductId] = array();
63
  foreach ($collection->getLinkModel()->getAttributes() as $attribute) {
64
+ if (isset($data->{$attribute['code']})) {
65
+ $links[(int)$linkedProductId][$attribute['code']] = $data->{$attribute['code']};
66
  }
67
  }
68
 
118
  }
119
 
120
  foreach ($collection->getLinkModel()->getAttributes() as $attribute) {
121
+ if (isset($data->{$attribute['code']})) {
122
+ $links[(int)$linkedProductId][$attribute['code']] = $data->{$attribute['code']};
123
  }
124
  }
125
 
app/code/core/Mage/Catalog/Model/Resource/Eav/Attribute.php CHANGED
@@ -359,7 +359,7 @@ class Mage_Catalog_Model_Resource_Eav_Attribute extends Mage_Eav_Model_Entity_At
359
 
360
  if ($backendType == 'int' && $frontendInput == 'select') {
361
  return true;
362
- } else if ($backendType == 'varchar' && $frontendInput == 'multiselect') {
363
  return true;
364
  } else if ($backendType == 'decimal') {
365
  return true;
359
 
360
  if ($backendType == 'int' && $frontendInput == 'select') {
361
  return true;
362
+ } else if (($backendType == 'varchar' || $backendType == 'text') && $frontendInput == 'multiselect') {
363
  return true;
364
  } else if ($backendType == 'decimal') {
365
  return true;
app/code/core/Mage/Catalog/Model/Resource/Product/Attribute/Backend/Groupprice.php CHANGED
@@ -43,4 +43,17 @@ class Mage_Catalog_Model_Resource_Product_Attribute_Backend_Groupprice
43
  {
44
  $this->_init('catalog/product_attribute_group_price', 'value_id');
45
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
46
  }
43
  {
44
  $this->_init('catalog/product_attribute_group_price', 'value_id');
45
  }
46
+
47
+ /**
48
+ * Add is_percent column
49
+ *
50
+ * @param array $columns
51
+ * @return array
52
+ */
53
+ protected function _loadPriceDataColumns($columns)
54
+ {
55
+ $columns = parent::_loadPriceDataColumns($columns);
56
+ $columns['is_percent'] = 'is_percent';
57
+ return $columns;
58
+ }
59
  }
app/code/core/Mage/Catalog/Model/Resource/Product/Indexer/Eav/Source.php CHANGED
@@ -61,7 +61,7 @@ class Mage_Catalog_Model_Resource_Product_Indexer_Eav_Source
61
  ->where($this->_getIndexableAttributesCondition());
62
 
63
  if ($multiSelect == true) {
64
- $select->where('ea.backend_type = ?', 'varchar')
65
  ->where('ea.frontend_input = ?', 'multiselect');
66
  } else {
67
  $select->where('ea.backend_type = ?', 'int')
@@ -203,14 +203,14 @@ class Mage_Catalog_Model_Resource_Product_Indexer_Eav_Source
203
  $productValueExpression = $adapter->getCheckSql('pvs.value_id > 0', 'pvs.value', 'pvd.value');
204
  $select = $adapter->select()
205
  ->from(
206
- array('pvd' => $this->getValueTable('catalog/product', 'varchar')),
207
  array('entity_id', 'attribute_id'))
208
  ->join(
209
  array('cs' => $this->getTable('core/store')),
210
  '',
211
  array('store_id'))
212
  ->joinLeft(
213
- array('pvs' => $this->getValueTable('catalog/product', 'varchar')),
214
  'pvs.entity_id = pvd.entity_id AND pvs.attribute_id = pvd.attribute_id'
215
  . ' AND pvs.store_id=cs.store_id',
216
  array('value' => $productValueExpression))
61
  ->where($this->_getIndexableAttributesCondition());
62
 
63
  if ($multiSelect == true) {
64
+ $select->where('ea.backend_type = ?', 'text')
65
  ->where('ea.frontend_input = ?', 'multiselect');
66
  } else {
67
  $select->where('ea.backend_type = ?', 'int')
203
  $productValueExpression = $adapter->getCheckSql('pvs.value_id > 0', 'pvs.value', 'pvd.value');
204
  $select = $adapter->select()
205
  ->from(
206
+ array('pvd' => $this->getValueTable('catalog/product', 'text')),
207
  array('entity_id', 'attribute_id'))
208
  ->join(
209
  array('cs' => $this->getTable('core/store')),
210
  '',
211
  array('store_id'))
212
  ->joinLeft(
213
+ array('pvs' => $this->getValueTable('catalog/product', 'text')),
214
  'pvs.entity_id = pvd.entity_id AND pvs.attribute_id = pvd.attribute_id'
215
  . ' AND pvs.store_id=cs.store_id',
216
  array('value' => $productValueExpression))
app/code/core/Mage/Catalog/Model/Resource/Product/Link/Product/Collection.php CHANGED
@@ -282,6 +282,19 @@ class Mage_Catalog_Model_Resource_Product_Link_Product_Collection extends Mage_C
282
  return $this;
283
  }
284
 
 
 
 
 
 
 
 
 
 
 
 
 
 
285
  /**
286
  * Join attributes
287
  *
@@ -294,10 +307,9 @@ class Mage_Catalog_Model_Resource_Product_Link_Product_Collection extends Mage_C
294
  }
295
  $attributes = $this->getLinkModel()->getAttributes();
296
 
297
- $attributesByType = array();
298
  foreach ($attributes as $attribute) {
299
  $table = $this->getLinkModel()->getAttributeTypeTable($attribute['type']);
300
- $alias = sprintf('link_attribute_%s_%s', $attribute['code'], $attribute['type']);
301
 
302
  $joinCondiotion = array(
303
  "{$alias}.link_id = links.link_id",
@@ -331,4 +343,38 @@ class Mage_Catalog_Model_Resource_Product_Link_Product_Collection extends Mage_C
331
  }
332
  return parent::setOrder($attribute, $dir);
333
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
334
  }
282
  return $this;
283
  }
284
 
285
+ /**
286
+ * Get table alias for link model attribute
287
+ *
288
+ * @param string $attributeCode
289
+ * @param string $attributeType
290
+ *
291
+ * @return string
292
+ */
293
+ protected function _getLinkAttributeTableAlias($attributeCode, $attributeType)
294
+ {
295
+ return sprintf('link_attribute_%s_%s', $attributeCode, $attributeType);
296
+ }
297
+
298
  /**
299
  * Join attributes
300
  *
307
  }
308
  $attributes = $this->getLinkModel()->getAttributes();
309
 
 
310
  foreach ($attributes as $attribute) {
311
  $table = $this->getLinkModel()->getAttributeTypeTable($attribute['type']);
312
+ $alias = $this->_getLinkAttributeTableAlias($attribute['code'], $attribute['type']);
313
 
314
  $joinCondiotion = array(
315
  "{$alias}.link_id = links.link_id",
343
  }
344
  return parent::setOrder($attribute, $dir);
345
  }
346
+
347
+ /**
348
+ * Add specific link model attribute to collection filter
349
+ *
350
+ * @param string $attributeCode
351
+ * @param array|null $condition
352
+ *
353
+ * @return Mage_Catalog_Model_Resource_Product_Link_Product_Collection
354
+ */
355
+ public function addLinkModelFieldToFilter($attributeCode, $condition = null)
356
+ {
357
+ if (!$this->getProduct() || !$this->getProduct()->getId()) {
358
+ return $this;
359
+ }
360
+
361
+ $attribute = null;
362
+ foreach ($this->getLinkModel()->getAttributes() as $attributeData) {
363
+ if ($attributeData['code'] == $attributeCode) {
364
+ $attribute = $attributeData;
365
+ break;
366
+ }
367
+ }
368
+
369
+ if (!$attribute) {
370
+ return $this;
371
+ }
372
+
373
+ $this->_hasLinkFilter = true;
374
+
375
+ $field = $this->_getLinkAttributeTableAlias($attribute['code'], $attribute['type']) . '.value';
376
+ $this->getSelect()->where($this->_getConditionSql($field, $condition));
377
+
378
+ return $this;
379
+ }
380
  }
app/code/core/Mage/Catalog/Model/Resource/Product/Type/Configurable/Attribute/Collection.php CHANGED
@@ -241,7 +241,7 @@ class Mage_Catalog_Model_Resource_Product_Type_Configurable_Attribute_Collection
241
  }
242
 
243
  $values = array();
244
-
245
  foreach ($this->_items as $item) {
246
  $productAttribute = $item->getProductAttribute();
247
  if (!($productAttribute instanceof Mage_Eav_Model_Entity_Attribute_Abstract)) {
@@ -251,7 +251,7 @@ class Mage_Catalog_Model_Resource_Product_Type_Configurable_Attribute_Collection
251
 
252
  $optionsByValue = array();
253
  foreach ($options as $option) {
254
- $optionsByValue[$option['value']] = $option['label'];
255
  }
256
 
257
  foreach ($this->getProduct()->getTypeInstance(true)
@@ -267,18 +267,23 @@ class Mage_Catalog_Model_Resource_Product_Type_Configurable_Attribute_Collection
267
  $values[$item->getId() . ':' . $optionValue] = array(
268
  'product_super_attribute_id' => $item->getId(),
269
  'value_index' => $optionValue,
270
- 'label' => $optionsByValue[$optionValue],
271
- 'default_label' => $optionsByValue[$optionValue],
272
- 'store_label' => $optionsByValue[$optionValue],
273
  'is_percent' => 0,
274
  'pricing_value' => null,
275
- 'use_default_value' => true
 
276
  );
277
  }
278
  }
279
  }
280
  }
281
 
 
 
 
 
282
  foreach ($pricings[0] as $pricing) {
283
  // Addding pricing to options
284
  $valueKey = $pricing['product_super_attribute_id'] . ':' . $pricing['value_index'];
241
  }
242
 
243
  $values = array();
244
+ $sortOrder = 1;
245
  foreach ($this->_items as $item) {
246
  $productAttribute = $item->getProductAttribute();
247
  if (!($productAttribute instanceof Mage_Eav_Model_Entity_Attribute_Abstract)) {
251
 
252
  $optionsByValue = array();
253
  foreach ($options as $option) {
254
+ $optionsByValue[$option['value']] = array('label' => $option['label'], 'order' => $sortOrder++);
255
  }
256
 
257
  foreach ($this->getProduct()->getTypeInstance(true)
267
  $values[$item->getId() . ':' . $optionValue] = array(
268
  'product_super_attribute_id' => $item->getId(),
269
  'value_index' => $optionValue,
270
+ 'label' => $optionsByValue[$optionValue]['label'],
271
+ 'default_label' => $optionsByValue[$optionValue]['label'],
272
+ 'store_label' => $optionsByValue[$optionValue]['label'],
273
  'is_percent' => 0,
274
  'pricing_value' => null,
275
+ 'use_default_value' => true,
276
+ 'order' => $optionsByValue[$optionValue]['order']
277
  );
278
  }
279
  }
280
  }
281
  }
282
 
283
+ uasort($values, function($a, $b) {
284
+ return $a['order'] - $b['order'];
285
+ });
286
+
287
  foreach ($pricings[0] as $pricing) {
288
  // Addding pricing to options
289
  $valueKey = $pricing['product_super_attribute_id'] . ':' . $pricing['value_index'];
app/code/core/Mage/Catalog/data/catalog_setup/data-upgrade-1.6.0.0.19.1.3-1.6.0.0.19.1.4.php ADDED
@@ -0,0 +1,77 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Catalog
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+ /** @var $installer Mage_Catalog_Model_Resource_Setup */
27
+
28
+ $installer = $this;
29
+ $installer->startSetup();
30
+ $connection = $installer->getConnection();
31
+
32
+ $catalogProductEntityTypeId = Mage::getSingleton('eav/config')->getEntityType('catalog_product')->getEntityTypeId();
33
+
34
+ $attributes = Mage::getResourceModel('eav/entity_attribute_collection')
35
+ ->addFieldToFilter('frontend_input', 'multiselect')
36
+ ->addFieldToFilter('entity_type_id', $catalogProductEntityTypeId)
37
+ ->getItems();
38
+
39
+ foreach ($attributes as $attribute) {
40
+ $entityTypeId = $attribute->getEntityTypeId();
41
+ $attributeId = $attribute->getId();
42
+ $attributeTableOld = $installer->getAttributeTable($entityTypeId, $attributeId);
43
+
44
+ $installer->updateAttribute($entityTypeId, $attributeId, 'backend_type', 'text');
45
+
46
+ $attributeTableNew = $installer->getAttributeTable($entityTypeId, $attributeId);
47
+
48
+ if ($attributeTableOld != $attributeTableNew) {
49
+ $connection->disableTableKeys($attributeTableOld)
50
+ ->disableTableKeys($attributeTableNew);
51
+
52
+ $select = $connection->select()
53
+ ->from($attributeTableOld, array('entity_type_id', 'attribute_id', 'store_id', 'entity_id', 'value'))
54
+ ->where('entity_type_id = ?', $entityTypeId)
55
+ ->where('attribute_id = ?', $attributeId);
56
+
57
+ $query = $select->insertFromSelect($attributeTableNew,
58
+ array('entity_type_id', 'attribute_id', 'store_id', 'entity_id', 'value')
59
+ );
60
+
61
+ $connection->query($query);
62
+
63
+ $connection->delete($attributeTableOld,
64
+ $connection->quoteInto('entity_type_id = ?', $entityTypeId)
65
+ . $connection->quoteInto(' AND attribute_id = ?', $attributeId)
66
+ );
67
+
68
+ $connection->enableTableKeys($attributeTableOld)
69
+ ->enableTableKeys($attributeTableNew);
70
+ }
71
+ }
72
+
73
+ Mage::getModel('index/indexer')
74
+ ->getProcessByCode(Mage_Catalog_Helper_Product_Flat::CATALOG_FLAT_PROCESS_CODE)
75
+ ->changeStatus(Mage_Index_Model_Process::STATUS_REQUIRE_REINDEX);
76
+
77
+ $installer->endSetup();
app/code/core/Mage/Catalog/etc/config.xml CHANGED
@@ -28,7 +28,7 @@
28
  <config>
29
  <modules>
30
  <Mage_Catalog>
31
- <version>1.6.0.0.19.1.2</version>
32
  </Mage_Catalog>
33
  </modules>
34
  <admin>
@@ -807,6 +807,7 @@
807
  <product_image>
808
  <base_width>1800</base_width>
809
  <small_width>210</small_width>
 
810
  </product_image>
811
  <seo>
812
  <product_url_suffix>.html</product_url_suffix>
28
  <config>
29
  <modules>
30
  <Mage_Catalog>
31
+ <version>1.6.0.0.19.1.5</version>
32
  </Mage_Catalog>
33
  </modules>
34
  <admin>
807
  <product_image>
808
  <base_width>1800</base_width>
809
  <small_width>210</small_width>
810
+ <max_dimension>5000</max_dimension>
811
  </product_image>
812
  <seo>
813
  <product_url_suffix>.html</product_url_suffix>
app/code/core/Mage/Catalog/etc/system.xml CHANGED
@@ -211,6 +211,15 @@
211
  <show_in_website>1</show_in_website>
212
  <show_in_store>1</show_in_store>
213
  </small_width>
 
 
 
 
 
 
 
 
 
214
  </fields>
215
  </product_image>
216
  <placeholder translate="label">
211
  <show_in_website>1</show_in_website>
212
  <show_in_store>1</show_in_store>
213
  </small_width>
214
+ <max_dimension translate="label comment">
215
+ <label>Maximum resolution for upload image</label>
216
+ <comment>Maximum width and height resolutions for upload image</comment>
217
+ <frontend_type>text</frontend_type>
218
+ <sort_order>30</sort_order>
219
+ <show_in_default>1</show_in_default>
220
+ <show_in_website>1</show_in_website>
221
+ <show_in_store>1</show_in_store>
222
+ </max_dimension>
223
  </fields>
224
  </product_image>
225
  <placeholder translate="label">
app/code/core/Mage/Catalog/sql/catalog_setup/upgrade-1.6.0.0.19.1.2-1.6.0.0.19.1.3.php ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Catalog
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+ $installer = $this;
28
+ /** @var $installer Mage_Catalog_Model_Resource_Setup */
29
+
30
+ $attribute = 'special_price';
31
+ $installer
32
+ ->updateAttribute(
33
+ Mage_Catalog_Model_Product::ENTITY,
34
+ 'special_price',
35
+ 'note',
36
+ NULL
37
+ )
38
+ ->updateAttribute(
39
+ Mage_Catalog_Model_Product::ENTITY,
40
+ 'special_price',
41
+ 'frontend_class',
42
+ 'validate-special-price'
43
+ )
44
+ ;
app/code/core/Mage/Catalog/sql/catalog_setup/upgrade-1.6.0.0.19.1.4-1.6.0.0.19.1.5.php ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Catalog
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+ /** @var $installer Mage_Catalog_Model_Resource_Setup */
28
+ $installer = $this;
29
+ $connection = $installer->getConnection();
30
+
31
+ $connection->addColumn($installer->getTable('catalog/product_attribute_group_price'), 'is_percent', array(
32
+ 'type' => Varien_Db_Ddl_Table::TYPE_SMALLINT,
33
+ 'unsigned' => true,
34
+ 'nullable' => false,
35
+ 'default' => '0',
36
+ 'comment' => 'Is Percent',
37
+ ));
app/code/core/Mage/CatalogInventory/Model/Observer.php CHANGED
@@ -384,6 +384,7 @@ class Mage_CatalogInventory_Model_Observer
384
  $stockItem = $option->getProduct()->getStockItem();
385
 
386
  if ($quoteItem->getProductType() == Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE) {
 
387
  $stockItem->setProductName($quoteItem->getName());
388
  }
389
 
384
  $stockItem = $option->getProduct()->getStockItem();
385
 
386
  if ($quoteItem->getProductType() == Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE) {
387
+ $stockItem->setParentItem($quoteItem);
388
  $stockItem->setProductName($quoteItem->getName());
389
  }
390
 
app/code/core/Mage/CatalogInventory/Model/Stock/Item.php CHANGED
@@ -525,6 +525,27 @@ class Mage_CatalogInventory_Model_Stock_Item extends Mage_Core_Model_Abstract
525
  $qty = Mage::app()->getLocale()->getNumber($qty);
526
  }
527
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
528
  /**
529
  * Check quantity type
530
  */
525
  $qty = Mage::app()->getLocale()->getNumber($qty);
526
  }
527
 
528
+ /**
529
+ * Check if child product assigned to parent
530
+ */
531
+ $parentItem = $this->getParentItem();
532
+ if ($this->getIsChildItem() && !empty($parentItem)) {
533
+ $typeInstance = $parentItem->getProduct()->getTypeInstance(true);
534
+ $requiredChildrenIds = $typeInstance->getChildrenIds($parentItem->getProductId(), true);
535
+ $childrenIds = array();
536
+ foreach ($requiredChildrenIds as $groupedChildrenIds) {
537
+ $childrenIds = array_merge($childrenIds, $groupedChildrenIds);
538
+ }
539
+ if (!in_array($this->getProductId(), $childrenIds)) {
540
+ $result->setHasError(true)
541
+ ->setMessage(Mage::helper('cataloginventory')
542
+ ->__('This product with current option is not available'))
543
+ ->setQuoteMessage(Mage::helper('cataloginventory')->__('Some of the products are not available'))
544
+ ->setQuoteMessageIndex('stock');
545
+ return $result;
546
+ }
547
+ }
548
+
549
  /**
550
  * Check quantity type
551
  */
app/code/core/Mage/CatalogRule/Model/Action/Index/Refresh.php CHANGED
@@ -319,8 +319,16 @@ class Mage_CatalogRule_Model_Action_Index_Refresh
319
  );
320
  $priceColumn = $this->_connection->getIfNullSql(
321
  $this->_connection->getIfNullSql(
322
- 'pg.value',
323
- 'pgd.value'
 
 
 
 
 
 
 
 
324
  ),
325
  'p.price'
326
  );
@@ -343,8 +351,22 @@ class Mage_CatalogRule_Model_Action_Index_Refresh
343
  );
344
  $priceColumn = $this->_connection->getIfNullSql(
345
  $this->_connection->getIfNullSql(
346
- 'pg.value',
347
- 'pgd.value'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
348
  ),
349
  $this->_connection->getIfNullSql(
350
  'p.value',
319
  );
320
  $priceColumn = $this->_connection->getIfNullSql(
321
  $this->_connection->getIfNullSql(
322
+ $this->_connection->getCheckSql(
323
+ 'pg.is_percent = 1',
324
+ 'p.price * (100 - pg.value)/100',
325
+ 'pg.value'
326
+ ),
327
+ $this->_connection->getCheckSql(
328
+ 'pgd.is_percent = 1',
329
+ 'p.price * (100 - pgd.value)/100',
330
+ 'pgd.value'
331
+ )
332
  ),
333
  'p.price'
334
  );
351
  );
352
  $priceColumn = $this->_connection->getIfNullSql(
353
  $this->_connection->getIfNullSql(
354
+ $this->_connection->getCheckSql(
355
+ 'pg.is_percent = 1',
356
+ $this->_connection->getIfNullSql(
357
+ 'p.value',
358
+ 'pd.value'
359
+ ) . ' * (100 - pg.value)/100',
360
+ 'pg.value'
361
+ ),
362
+ $this->_connection->getCheckSql(
363
+ 'pgd.is_percent = 1',
364
+ $this->_connection->getIfNullSql(
365
+ 'p.value',
366
+ 'pd.value'
367
+ ) . ' * (100 - pgd.value)/100',
368
+ 'pgd.value'
369
+ )
370
  ),
371
  $this->_connection->getIfNullSql(
372
  'p.value',
app/code/core/Mage/CatalogSearch/Model/Resource/Advanced.php CHANGED
@@ -84,7 +84,7 @@ class Mage_CatalogSearch_Model_Resource_Advanced extends Mage_Core_Model_Resourc
84
  if (is_array($value)) {
85
  if (!empty($value['from']) || !empty($value['to'])) { // range
86
  $condition = $value;
87
- } else if ($attribute->getBackendType() == 'varchar') { // multiselect
88
  $condition = array('in_set' => $value);
89
  } else if (!isset($value['from']) && !isset($value['to'])) { // select
90
  $condition = array('in' => $value);
84
  if (is_array($value)) {
85
  if (!empty($value['from']) || !empty($value['to'])) { // range
86
  $condition = $value;
87
+ } else if (in_array($attribute->getBackendType(), array('varchar', 'text'))) { // multiselect
88
  $condition = array('in_set' => $value);
89
  } else if (!isset($value['from']) && !isset($value['to'])) { // select
90
  $condition = array('in' => $value);
app/code/core/Mage/CatalogSearch/Model/Resource/Fulltext.php CHANGED
@@ -77,9 +77,10 @@ class Mage_CatalogSearch_Model_Resource_Fulltext extends Mage_Core_Model_Resourc
77
  */
78
  protected $_allowTableChanges = true;
79
 
80
-
81
-
82
-
 
83
 
84
  /**
85
  * Init resource model
@@ -298,12 +299,7 @@ class Mage_CatalogSearch_Model_Resource_Fulltext extends Mage_Core_Model_Resourc
298
  */
299
  public function resetSearchResults()
300
  {
301
- $adapter = $this->_getWriteAdapter();
302
- $adapter->update($this->getTable('catalogsearch/search_query'), array('is_processed' => 0));
303
- $adapter->delete($this->getTable('catalogsearch/result'));
304
-
305
  Mage::dispatchEvent('catalogsearch_reset_search_result');
306
-
307
  return $this;
308
  }
309
 
@@ -334,39 +330,38 @@ class Mage_CatalogSearch_Model_Resource_Fulltext extends Mage_Core_Model_Resourc
334
  public function prepareResult($object, $queryText, $query)
335
  {
336
  $adapter = $this->_getWriteAdapter();
337
- if (!$query->getIsProcessed()) {
338
- $searchType = $object->getSearchType($query->getStoreId());
339
-
340
- $preparedTerms = Mage::getResourceHelper('catalogsearch')
341
- ->prepareTerms($queryText, $query->getMaxQueryWords());
 
 
 
 
 
 
 
 
 
 
 
342
 
343
- $bind = array();
344
- $like = array();
345
- $likeCond = '';
346
- if ($searchType == Mage_CatalogSearch_Model_Fulltext::SEARCH_TYPE_LIKE
347
- || $searchType == Mage_CatalogSearch_Model_Fulltext::SEARCH_TYPE_COMBINE
348
- ) {
349
- $helper = Mage::getResourceHelper('core');
350
- $words = Mage::helper('core/string')->splitWords($queryText, true, $query->getMaxQueryWords());
351
- foreach ($words as $word) {
352
- $like[] = $helper->getCILike('s.data_index', $word, array('position' => 'any'));
353
- }
354
- if ($like) {
355
- $likeCond = '(' . join(' OR ', $like) . ')';
356
- }
357
  }
 
358
  $mainTableAlias = 's';
359
- $fields = array(
360
- 'query_id' => new Zend_Db_Expr($query->getId()),
361
- 'product_id',
362
- );
363
  $select = $adapter->select()
364
  ->from(array($mainTableAlias => $this->getMainTable()), $fields)
365
  ->joinInner(array('e' => $this->getTable('catalog/product')),
366
  'e.entity_id = s.product_id',
367
  array())
368
- ->where($mainTableAlias.'.store_id = ?', (int)$query->getStoreId());
369
 
 
370
  if ($searchType == Mage_CatalogSearch_Model_Fulltext::SEARCH_TYPE_FULLTEXT
371
  || $searchType == Mage_CatalogSearch_Model_Fulltext::SEARCH_TYPE_COMBINE
372
  ) {
@@ -374,11 +369,10 @@ class Mage_CatalogSearch_Model_Resource_Fulltext extends Mage_Core_Model_Resourc
374
  $where = Mage::getResourceHelper('catalogsearch')
375
  ->chooseFulltext($this->getMainTable(), $mainTableAlias, $select);
376
  }
377
-
378
  if ($likeCond != '' && $searchType == Mage_CatalogSearch_Model_Fulltext::SEARCH_TYPE_COMBINE) {
379
- $where .= ($where ? ' OR ' : '') . $likeCond;
380
  } elseif ($likeCond != '' && $searchType == Mage_CatalogSearch_Model_Fulltext::SEARCH_TYPE_LIKE) {
381
- $select->columns(array('relevance' => new Zend_Db_Expr(0)));
382
  $where = $likeCond;
383
  }
384
 
@@ -386,18 +380,22 @@ class Mage_CatalogSearch_Model_Resource_Fulltext extends Mage_Core_Model_Resourc
386
  $select->where($where);
387
  }
388
 
389
- $sql = $adapter->insertFromSelect($select,
390
- $this->getTable('catalogsearch/result'),
391
- array(),
392
- Varien_Db_Adapter_Interface::INSERT_ON_DUPLICATE);
393
- $adapter->query($sql, $bind);
394
-
395
- $query->setIsProcessed(1);
396
  }
397
 
398
  return $this;
399
  }
400
 
 
 
 
 
 
 
 
 
 
 
401
  /**
402
  * Retrieve EAV Config Singleton
403
  *
77
  */
78
  protected $_allowTableChanges = true;
79
 
80
+ /**
81
+ * @var array
82
+ */
83
+ protected $_foundData = array();
84
 
85
  /**
86
  * Init resource model
299
  */
300
  public function resetSearchResults()
301
  {
 
 
 
 
302
  Mage::dispatchEvent('catalogsearch_reset_search_result');
 
303
  return $this;
304
  }
305
 
330
  public function prepareResult($object, $queryText, $query)
331
  {
332
  $adapter = $this->_getWriteAdapter();
333
+ $searchType = $object->getSearchType($query->getStoreId());
334
+
335
+ $preparedTerms = Mage::getResourceHelper('catalogsearch')
336
+ ->prepareTerms($queryText, $query->getMaxQueryWords());
337
+
338
+ $bind = array();
339
+ $like = array();
340
+ $likeCond = '';
341
+ if ($searchType == Mage_CatalogSearch_Model_Fulltext::SEARCH_TYPE_LIKE
342
+ || $searchType == Mage_CatalogSearch_Model_Fulltext::SEARCH_TYPE_COMBINE
343
+ ) {
344
+ $helper = Mage::getResourceHelper('core');
345
+ $words = Mage::helper('core/string')->splitWords($queryText, true, $query->getMaxQueryWords());
346
+ foreach ($words as $word) {
347
+ $like[] = $helper->getCILike('s.data_index', $word, array('position' => 'any'));
348
+ }
349
 
350
+ if ($like) {
351
+ $likeCond = '(' . join(' OR ', $like) . ')';
 
 
 
 
 
 
 
 
 
 
 
 
352
  }
353
+
354
  $mainTableAlias = 's';
355
+ $fields = array('product_id');
356
+
 
 
357
  $select = $adapter->select()
358
  ->from(array($mainTableAlias => $this->getMainTable()), $fields)
359
  ->joinInner(array('e' => $this->getTable('catalog/product')),
360
  'e.entity_id = s.product_id',
361
  array())
362
+ ->where($mainTableAlias . '.store_id = ?', (int)$query->getStoreId());
363
 
364
+ $where = "";
365
  if ($searchType == Mage_CatalogSearch_Model_Fulltext::SEARCH_TYPE_FULLTEXT
366
  || $searchType == Mage_CatalogSearch_Model_Fulltext::SEARCH_TYPE_COMBINE
367
  ) {
369
  $where = Mage::getResourceHelper('catalogsearch')
370
  ->chooseFulltext($this->getMainTable(), $mainTableAlias, $select);
371
  }
 
372
  if ($likeCond != '' && $searchType == Mage_CatalogSearch_Model_Fulltext::SEARCH_TYPE_COMBINE) {
373
+ $where .= ($where ? ' OR ' : '') . $likeCond;
374
  } elseif ($likeCond != '' && $searchType == Mage_CatalogSearch_Model_Fulltext::SEARCH_TYPE_LIKE) {
375
+ $select->columns(array('relevance' => new Zend_Db_Expr(0)));
376
  $where = $likeCond;
377
  }
378
 
380
  $select->where($where);
381
  }
382
 
383
+ $this->_foundData = $adapter->fetchPairs($select, $bind);
 
 
 
 
 
 
384
  }
385
 
386
  return $this;
387
  }
388
 
389
+ /**
390
+ * Retrieve found data
391
+ *
392
+ * @return array
393
+ */
394
+ public function getFoundData()
395
+ {
396
+ return $this->_foundData;
397
+ }
398
+
399
  /**
400
  * Retrieve EAV Config Singleton
401
  *
app/code/core/Mage/CatalogSearch/Model/Resource/Fulltext/Collection.php CHANGED
@@ -34,6 +34,39 @@
34
  */
35
  class Mage_CatalogSearch_Model_Resource_Fulltext_Collection extends Mage_Catalog_Model_Resource_Product_Collection
36
  {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
  /**
38
  * Retrieve query model object
39
  *
@@ -47,22 +80,101 @@ class Mage_CatalogSearch_Model_Resource_Fulltext_Collection extends Mage_Catalog
47
  /**
48
  * Add search query filter
49
  *
50
- * @param string $query
51
  * @return Mage_CatalogSearch_Model_Resource_Fulltext_Collection
52
  */
53
  public function addSearchFilter($query)
54
  {
55
- Mage::getSingleton('catalogsearch/fulltext')->prepareResult();
56
-
57
- $this->getSelect()->joinInner(
58
- array('search_result' => $this->getTable('catalogsearch/result')),
59
- $this->getConnection()->quoteInto(
60
- 'search_result.product_id=e.entity_id AND search_result.query_id=?',
61
- $this->_getQuery()->getId()
62
- ),
63
- array('relevance' => 'relevance')
64
- );
65
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
66
  return $this;
67
  }
68
 
@@ -76,7 +188,8 @@ class Mage_CatalogSearch_Model_Resource_Fulltext_Collection extends Mage_Catalog
76
  public function setOrder($attribute, $dir = 'desc')
77
  {
78
  if ($attribute == 'relevance') {
79
- $this->getSelect()->order("relevance {$dir}");
 
80
  } else {
81
  parent::setOrder($attribute, $dir);
82
  }
@@ -84,7 +197,34 @@ class Mage_CatalogSearch_Model_Resource_Fulltext_Collection extends Mage_Catalog
84
  }
85
 
86
  /**
87
- * Stub method for campatibility with other search engines
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
88
  *
89
  * @return Mage_CatalogSearch_Model_Resource_Fulltext_Collection
90
  */
@@ -92,4 +232,24 @@ class Mage_CatalogSearch_Model_Resource_Fulltext_Collection extends Mage_Catalog
92
  {
93
  return $this;
94
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
95
  }
34
  */
35
  class Mage_CatalogSearch_Model_Resource_Fulltext_Collection extends Mage_Catalog_Model_Resource_Product_Collection
36
  {
37
+ /**
38
+ * Name for relevance order
39
+ */
40
+ const RELEVANCE_ORDER_NAME = 'relevance';
41
+
42
+ /**
43
+ * Found data
44
+ *
45
+ * @var array
46
+ */
47
+ protected $_foundData = null;
48
+
49
+ /**
50
+ * Sort order by relevance
51
+ *
52
+ * @var null
53
+ */
54
+ protected $_relevanceSortOrder = SORT_DESC;
55
+
56
+ /**
57
+ * Sort by relevance flag
58
+ *
59
+ * @var bool
60
+ */
61
+ protected $_sortByRelevance = false;
62
+
63
+ /**
64
+ * Is search filter applied flag
65
+ *
66
+ * @var bool
67
+ */
68
+ protected $_isSearchFiltersApplied = false;
69
+
70
  /**
71
  * Retrieve query model object
72
  *
80
  /**
81
  * Add search query filter
82
  *
83
+ * @param $query
84
  * @return Mage_CatalogSearch_Model_Resource_Fulltext_Collection
85
  */
86
  public function addSearchFilter($query)
87
  {
88
+ return $this;
89
+ }
 
 
 
 
 
 
 
 
90
 
91
+ /**
92
+ * Before load handler
93
+ *
94
+ * @return Mage_Catalog_Model_Resource_Product_Collection
95
+ */
96
+ protected function _beforeLoad()
97
+ {
98
+ if (!$this->_isSearchFiltersApplied) {
99
+ $this->_applySearchFilters();
100
+ }
101
+
102
+ return parent::_beforeLoad();
103
+ }
104
+
105
+ /**
106
+ * Get collection size
107
+ *
108
+ * @return int
109
+ */
110
+ public function getSize()
111
+ {
112
+ if (!$this->_isSearchFiltersApplied) {
113
+ $this->_applySearchFilters();
114
+ }
115
+
116
+ return parent::getSize();
117
+ }
118
+
119
+ /**
120
+ * Apply collection search filter
121
+ *
122
+ * @return Mage_CatalogSearch_Model_Resource_Fulltext_Collection
123
+ */
124
+ protected function _applySearchFilters()
125
+ {
126
+ $foundIds = $this->getFoundIds();
127
+ if (!empty($foundIds)) {
128
+ $this->addIdFilter($foundIds);
129
+ } else {
130
+ $this->getSelect()->orWhere('FALSE');
131
+ }
132
+ $this->_isSearchFiltersApplied = true;
133
+
134
+ return $this;
135
+ }
136
+
137
+ /**
138
+ * Get found products ids
139
+ *
140
+ * @return array
141
+ */
142
+ public function getFoundIds()
143
+ {
144
+ if (is_null($this->_foundData)) {
145
+ /** @var Mage_CatalogSearch_Model_Fulltext $preparedResult */
146
+ $preparedResult = Mage::getSingleton('catalogsearch/fulltext');
147
+ $preparedResult->prepareResult();
148
+ $this->_foundData = $preparedResult->getResource()->getFoundData();
149
+ }
150
+ if (isset($this->_orders[self::RELEVANCE_ORDER_NAME])) {
151
+ $this->_resortFoundDataByRelevance();
152
+ }
153
+ return array_keys($this->_foundData);
154
+ }
155
+
156
+ /**
157
+ * Resort found data by relevance
158
+ *
159
+ * @return Mage_CatalogSearch_Model_Resource_Fulltext_Collection
160
+ */
161
+ protected function _resortFoundDataByRelevance()
162
+ {
163
+ if (is_array($this->_foundData)) {
164
+ $data = array();
165
+ foreach ($this->_foundData as $id => $relevance) {
166
+ $this->_foundData[$id] = $relevance . '_' . $id;
167
+ }
168
+ natsort($this->_foundData);
169
+ if ($this->_relevanceSortOrder == SORT_DESC) {
170
+ $this->_foundData = array_reverse($this->_foundData);
171
+ }
172
+ foreach ($this->_foundData as $dataString) {
173
+ list ($relevance, $id) = explode('_', $dataString);
174
+ $data[$id] = $relevance;
175
+ }
176
+ $this->_foundData = $data;
177
+ }
178
  return $this;
179
  }
180
 
188
  public function setOrder($attribute, $dir = 'desc')
189
  {
190
  if ($attribute == 'relevance') {
191
+ $this->_relevanceSortOrder = ($dir == 'asc') ? SORT_ASC : SORT_DESC;
192
+ $this->addOrder(self::RELEVANCE_ORDER_NAME);
193
  } else {
194
  parent::setOrder($attribute, $dir);
195
  }
197
  }
198
 
199
  /**
200
+ * Add sorting by relevance to select
201
+ *
202
+ * @return Mage_CatalogSearch_Model_Resource_Fulltext_Collection
203
+ */
204
+ protected function _addRelevanceSorting()
205
+ {
206
+ $foundIds = $this->getFoundIds();
207
+ if (!$foundIds) {
208
+ return $this;
209
+ }
210
+
211
+ /** @var Mage_CatalogSearch_Model_Resource_Helper_Mysql4 $resourceHelper */
212
+ $resourceHelper = Mage::getResourceHelper('catalogsearch');
213
+ $this->_select->order(
214
+ new Zend_Db_Expr(
215
+ $resourceHelper->getFieldOrderExpression(
216
+ 'e.' . $this->getResource()->getIdFieldName(),
217
+ $foundIds
218
+ )
219
+ . ' ' . Zend_Db_Select::SQL_ASC
220
+ )
221
+ );
222
+
223
+ return $this;
224
+ }
225
+
226
+ /**
227
+ * Stub method for compatibility with other search engines
228
  *
229
  * @return Mage_CatalogSearch_Model_Resource_Fulltext_Collection
230
  */
232
  {
233
  return $this;
234
  }
235
+
236
+ /**
237
+ * Render sql select orders
238
+ *
239
+ * @return Varien_Data_Collection_Db
240
+ */
241
+ protected function _renderOrders()
242
+ {
243
+ if (!$this->_isOrdersRendered) {
244
+ foreach ($this->_orders as $attribute => $direction) {
245
+ if ($attribute == self::RELEVANCE_ORDER_NAME) {
246
+ $this->_addRelevanceSorting();
247
+ } else {
248
+ $this->addAttributeToSort($attribute, $direction);
249
+ }
250
+ }
251
+ $this->_isOrdersRendered = true;
252
+ }
253
+ return $this;
254
+ }
255
  }
app/code/core/Mage/CatalogSearch/Model/Resource/Helper/Mysql4.php CHANGED
@@ -52,6 +52,7 @@ class Mage_CatalogSearch_Model_Resource_Helper_Mysql4 extends Mage_Eav_Model_Res
52
  * Prepare Terms
53
  *
54
  * @param string $str The source string
 
55
  * @return array(0=>words, 1=>terms)
56
  */
57
  function prepareTerms($str, $maxWordLength = 0)
@@ -112,10 +113,24 @@ class Mage_CatalogSearch_Model_Resource_Helper_Mysql4 extends Mage_Eav_Model_Res
112
  *
113
  * @param mixed $table The table to insert data into.
114
  * @param array $data Column-value pairs or array of column-value pairs.
115
- * @param arrat $fields update fields pairs or values
116
  * @return int The number of affected rows.
117
  */
118
  public function insertOnDuplicate($table, array $data, array $fields = array()) {
119
  return $this->_getWriteAdapter()->insertOnDuplicate($table, $data, $fields);
120
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
121
  }
52
  * Prepare Terms
53
  *
54
  * @param string $str The source string
55
+ * @param int $maxWordLength
56
  * @return array(0=>words, 1=>terms)
57
  */
58
  function prepareTerms($str, $maxWordLength = 0)
113
  *
114
  * @param mixed $table The table to insert data into.
115
  * @param array $data Column-value pairs or array of column-value pairs.
116
+ * @param array $fields update fields pairs or values
117
  * @return int The number of affected rows.
118
  */
119
  public function insertOnDuplicate($table, array $data, array $fields = array()) {
120
  return $this->_getWriteAdapter()->insertOnDuplicate($table, $data, $fields);
121
  }
122
+
123
+ /**
124
+ * Get field expression for order by
125
+ *
126
+ * @param string $fieldName
127
+ * @param array $orderedIds
128
+ *
129
+ * @return string
130
+ */
131
+ public function getFieldOrderExpression($fieldName, array $orderedIds)
132
+ {
133
+ $fieldName = $this->_getWriteAdapter()->quoteIdentifier($fieldName);
134
+ return "FIELD({$fieldName}, {$this->_getReadAdapter()->quote($orderedIds)})";
135
+ }
136
  }
app/code/core/Mage/Checkout/Model/Cart.php CHANGED
@@ -229,10 +229,6 @@ class Mage_Checkout_Model_Cart extends Varien_Object implements Mage_Checkout_Mo
229
  $request = new Varien_Object($requestInfo);
230
  }
231
 
232
- if (!$request->hasQty()) {
233
- $request->setQty(1);
234
- }
235
-
236
  return $request;
237
  }
238
 
@@ -248,14 +244,21 @@ class Mage_Checkout_Model_Cart extends Varien_Object implements Mage_Checkout_Mo
248
  $product = $this->_getProduct($productInfo);
249
  $request = $this->_getProductRequest($requestInfo);
250
 
 
 
 
 
 
 
 
251
  $productId = $product->getId();
252
 
253
- if ($product->getStockItem()) {
254
  $minimumQty = $product->getStockItem()->getMinSaleQty();
255
  //If product was not found in cart and there is set minimal qty for it
256
  if ($minimumQty && $minimumQty > 0 && $request->getQty() < $minimumQty
257
  && !$this->getQuote()->hasProductId($productId)
258
- ){
259
  $request->setQty($minimumQty);
260
  }
261
  }
229
  $request = new Varien_Object($requestInfo);
230
  }
231
 
 
 
 
 
232
  return $request;
233
  }
234
 
244
  $product = $this->_getProduct($productInfo);
245
  $request = $this->_getProductRequest($requestInfo);
246
 
247
+ /** @var Mage_Catalog_Helper_Product $helper */
248
+ $helper = Mage::helper('catalog/product');
249
+
250
+ if (!$request->hasQty()) {
251
+ $request->setQty($helper->getDefaultQty($product));
252
+ }
253
+
254
  $productId = $product->getId();
255
 
256
+ if (!$product->isConfigurable() && $product->getStockItem()) {
257
  $minimumQty = $product->getStockItem()->getMinSaleQty();
258
  //If product was not found in cart and there is set minimal qty for it
259
  if ($minimumQty && $minimumQty > 0 && $request->getQty() < $minimumQty
260
  && !$this->getQuote()->hasProductId($productId)
261
+ ) {
262
  $request->setQty($minimumQty);
263
  }
264
  }
app/code/core/Mage/Checkout/Model/Type/Multishipping.php CHANGED
@@ -308,6 +308,9 @@ class Mage_Checkout_Model_Type_Multishipping extends Mage_Checkout_Model_Type_Ab
308
  if (!$quoteAddress = $this->getQuote()->getShippingAddressByCustomerAddressId($address->getId())) {
309
  $quoteAddress = Mage::getModel('sales/quote_address')->importCustomerAddress($address);
310
  $this->getQuote()->addShippingAddress($quoteAddress);
 
 
 
311
  }
312
 
313
  $quoteAddress = $this->getQuote()->getShippingAddressByCustomerAddressId($address->getId());
308
  if (!$quoteAddress = $this->getQuote()->getShippingAddressByCustomerAddressId($address->getId())) {
309
  $quoteAddress = Mage::getModel('sales/quote_address')->importCustomerAddress($address);
310
  $this->getQuote()->addShippingAddress($quoteAddress);
311
+ if ($couponCode = $this->getCheckoutSession()->getCartCouponCode()) {
312
+ $this->getQuote()->setCouponCode($couponCode);
313
+ }
314
  }
315
 
316
  $quoteAddress = $this->getQuote()->getShippingAddressByCustomerAddressId($address->getId());
app/code/core/Mage/Checkout/Model/Type/Onepage.php CHANGED
@@ -362,6 +362,7 @@ class Mage_Checkout_Model_Type_Onepage
362
  ->setShippingMethod($shippingMethod)
363
  ->setCollectShippingRates(true);
364
  $this->getCheckout()->setStepData('shipping', 'complete', true);
 
365
  break;
366
  }
367
  }
@@ -592,6 +593,8 @@ class Mage_Checkout_Model_Type_Onepage
592
  return array('error' => 1, 'message' => $validateRes);
593
  }
594
 
 
 
595
  $this->getQuote()->collectTotals()->save();
596
 
597
  $this->getCheckout()
@@ -946,4 +949,17 @@ class Mage_Checkout_Model_Type_Onepage
946
  }
947
  return $orderId;
948
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
949
  }
362
  ->setShippingMethod($shippingMethod)
363
  ->setCollectShippingRates(true);
364
  $this->getCheckout()->setStepData('shipping', 'complete', true);
365
+ $this->_setCartCouponCode();
366
  break;
367
  }
368
  }
593
  return array('error' => 1, 'message' => $validateRes);
594
  }
595
 
596
+ $this->_setCartCouponCode();
597
+
598
  $this->getQuote()->collectTotals()->save();
599
 
600
  $this->getCheckout()
949
  }
950
  return $orderId;
951
  }
952
+
953
+ /**
954
+ * Sets cart coupon code from checkout to quote
955
+ *
956
+ * @return $this
957
+ */
958
+ protected function _setCartCouponCode()
959
+ {
960
+ if ($couponCode = $this->getCheckout()->getCartCouponCode()) {
961
+ $this->getQuote()->setCouponCode($couponCode);
962
+ }
963
+ return $this;
964
+ }
965
  }
app/code/core/Mage/Checkout/controllers/CartController.php CHANGED
@@ -89,7 +89,10 @@ class Mage_Checkout_CartController extends Mage_Core_Controller_Front_Action
89
  ) {
90
  $this->getResponse()->setRedirect($backUrl);
91
  } else {
92
- if ((strtolower($this->getRequest()->getActionName()) == 'add') && !$this->getRequest()->getParam('in_cart')) {
 
 
 
93
  $this->_getSession()->setContinueShoppingUrl($this->_getRefererUrl());
94
  }
95
  $this->_redirect('checkout/cart');
@@ -141,6 +144,20 @@ class Mage_Checkout_CartController extends Mage_Core_Controller_Front_Action
141
  $cart = $this->_getCart();
142
  if ($cart->getQuote()->getItemsCount()) {
143
  $cart->init();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
144
  $cart->save();
145
 
146
  if (!$this->_getQuote()->validateMinimumAmount()) {
@@ -526,6 +543,13 @@ class Mage_Checkout_CartController extends Mage_Core_Controller_Front_Action
526
  ->setRegion($region)
527
  ->setCollectShippingRates(true);
528
  $this->_getQuote()->save();
 
 
 
 
 
 
 
529
  $this->_goBack();
530
  }
531
 
@@ -581,6 +605,7 @@ class Mage_Checkout_CartController extends Mage_Core_Controller_Front_Action
581
  $this->_getSession()->addSuccess(
582
  $this->__('Coupon code "%s" was applied.', Mage::helper('core')->escapeHtml($couponCode))
583
  );
 
584
  } else {
585
  $this->_getSession()->addError(
586
  $this->__('Coupon code "%s" is not valid.', Mage::helper('core')->escapeHtml($couponCode))
89
  ) {
90
  $this->getResponse()->setRedirect($backUrl);
91
  } else {
92
+ if (
93
+ (strtolower($this->getRequest()->getActionName()) == 'add')
94
+ && !$this->getRequest()->getParam('in_cart')
95
+ ) {
96
  $this->_getSession()->setContinueShoppingUrl($this->_getRefererUrl());
97
  }
98
  $this->_redirect('checkout/cart');
144
  $cart = $this->_getCart();
145
  if ($cart->getQuote()->getItemsCount()) {
146
  $cart->init();
147
+ if (
148
+ $cart->getQuote()->getShippingAddress()
149
+ && $this->_getSession()->getEstimatedShippingAddressData()
150
+ && $couponCode = $this->_getSession()->getCartCouponCode()
151
+ ) {
152
+ $estimatedSessionAddressData = $this->_getSession()->getEstimatedShippingAddressData();
153
+ $cart->getQuote()->getShippingAddress()
154
+ ->setCountryId($estimatedSessionAddressData['country_id'])
155
+ ->setCity($estimatedSessionAddressData['city'])
156
+ ->setPostcode($estimatedSessionAddressData['postcode'])
157
+ ->setRegionId($estimatedSessionAddressData['region_id'])
158
+ ->setRegion($estimatedSessionAddressData['region']);
159
+ $cart->getQuote()->setCouponCode($couponCode);
160
+ }
161
  $cart->save();
162
 
163
  if (!$this->_getQuote()->validateMinimumAmount()) {
543
  ->setRegion($region)
544
  ->setCollectShippingRates(true);
545
  $this->_getQuote()->save();
546
+ $this->_getSession()->setEstimatedShippingAddressData(array(
547
+ 'country_id' => $country,
548
+ 'postcode' => $postcode,
549
+ 'city' => $city,
550
+ 'region_id' => $regionId,
551
+ 'region' => $region
552
+ ));
553
  $this->_goBack();
554
  }
555
 
605
  $this->_getSession()->addSuccess(
606
  $this->__('Coupon code "%s" was applied.', Mage::helper('core')->escapeHtml($couponCode))
607
  );
608
+ $this->_getSession()->setCartCouponCode($couponCode);
609
  } else {
610
  $this->_getSession()->addError(
611
  $this->__('Coupon code "%s" is not valid.', Mage::helper('core')->escapeHtml($couponCode))
app/code/core/Mage/Checkout/controllers/OnepageController.php CHANGED
@@ -334,8 +334,7 @@ class Mage_Checkout_OnepageController extends Mage_Checkout_Controller_Action
334
  $address = $this->getOnepage()->getAddress($addressId);
335
 
336
  if (Mage::getSingleton('customer/session')->getCustomer()->getId() == $address->getCustomerId()) {
337
- $this->getResponse()->setHeader('Content-type', 'application/x-json');
338
- $this->getResponse()->setBody($address->toJson());
339
  } else {
340
  $this->getResponse()->setHeader('HTTP/1.1','403 Forbidden');
341
  }
@@ -353,7 +352,7 @@ class Mage_Checkout_OnepageController extends Mage_Checkout_Controller_Action
353
  if ($this->getRequest()->isPost()) {
354
  $method = $this->getRequest()->getPost('method');
355
  $result = $this->getOnepage()->saveCheckoutMethod($method);
356
- $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
357
  }
358
  }
359
 
@@ -395,7 +394,7 @@ class Mage_Checkout_OnepageController extends Mage_Checkout_Controller_Action
395
  }
396
  }
397
 
398
- $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
399
  }
400
  }
401
 
@@ -419,7 +418,7 @@ class Mage_Checkout_OnepageController extends Mage_Checkout_Controller_Action
419
  'html' => $this->_getShippingMethodsHtml()
420
  );
421
  }
422
- $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
423
  }
424
  }
425
 
@@ -442,7 +441,7 @@ class Mage_Checkout_OnepageController extends Mage_Checkout_Controller_Action
442
  'request' => $this->getRequest(),
443
  'quote' => $this->getOnepage()->getQuote()));
444
  $this->getOnepage()->getQuote()->collectTotals();
445
- $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
446
 
447
  $result['goto_section'] = 'payment';
448
  $result['update_section'] = array(
@@ -451,7 +450,7 @@ class Mage_Checkout_OnepageController extends Mage_Checkout_Controller_Action
451
  );
452
  }
453
  $this->getOnepage()->getQuote()->collectTotals()->save();
454
- $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
455
  }
456
  }
457
 
@@ -498,7 +497,7 @@ class Mage_Checkout_OnepageController extends Mage_Checkout_Controller_Action
498
  Mage::logException($e);
499
  $result['error'] = $this->__('Unable to set Payment Method.');
500
  }
501
- $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
502
  }
503
 
504
  /**
@@ -561,7 +560,7 @@ class Mage_Checkout_OnepageController extends Mage_Checkout_Controller_Action
561
  $result['success'] = false;
562
  $result['error'] = true;
563
  $result['error_messages'] = $this->__('Please agree to all the terms and conditions before placing the order.');
564
- $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
565
  return;
566
  }
567
  }
@@ -630,7 +629,7 @@ class Mage_Checkout_OnepageController extends Mage_Checkout_Controller_Action
630
  $result['redirect'] = $redirectUrl;
631
  }
632
 
633
- $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
634
  }
635
 
636
  /**
@@ -657,4 +656,17 @@ class Mage_Checkout_OnepageController extends Mage_Checkout_Controller_Action
657
  || Mage::helper('checkout')->isAllowedGuestCheckout($this->getOnepage()->getQuote())
658
  || !Mage::helper('checkout')->isCustomerMustBeLogged();
659
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
660
  }
334
  $address = $this->getOnepage()->getAddress($addressId);
335
 
336
  if (Mage::getSingleton('customer/session')->getCustomer()->getId() == $address->getCustomerId()) {
337
+ $this->_prepareDataJSON($address->toArray());
 
338
  } else {
339
  $this->getResponse()->setHeader('HTTP/1.1','403 Forbidden');
340
  }
352
  if ($this->getRequest()->isPost()) {
353
  $method = $this->getRequest()->getPost('method');
354
  $result = $this->getOnepage()->saveCheckoutMethod($method);
355
+ $this->_prepareDataJSON($result);
356
  }
357
  }
358
 
394
  }
395
  }
396
 
397
+ $this->_prepareDataJSON($result);
398
  }
399
  }
400
 
418
  'html' => $this->_getShippingMethodsHtml()
419
  );
420
  }
421
+ $this->_prepareDataJSON($result);
422
  }
423
  }
424
 
441
  'request' => $this->getRequest(),
442
  'quote' => $this->getOnepage()->getQuote()));
443
  $this->getOnepage()->getQuote()->collectTotals();
444
+ $this->_prepareDataJSON($result);
445
 
446
  $result['goto_section'] = 'payment';
447
  $result['update_section'] = array(
450
  );
451
  }
452
  $this->getOnepage()->getQuote()->collectTotals()->save();
453
+ $this->_prepareDataJSON($result);
454
  }
455
  }
456
 
497
  Mage::logException($e);
498
  $result['error'] = $this->__('Unable to set Payment Method.');
499
  }
500
+ $this->_prepareDataJSON($result);
501
  }
502
 
503
  /**
560
  $result['success'] = false;
561
  $result['error'] = true;
562
  $result['error_messages'] = $this->__('Please agree to all the terms and conditions before placing the order.');
563
+ $this->_prepareDataJSON($result);
564
  return;
565
  }
566
  }
629
  $result['redirect'] = $redirectUrl;
630
  }
631
 
632
+ $this->_prepareDataJSON($result);
633
  }
634
 
635
  /**
656
  || Mage::helper('checkout')->isAllowedGuestCheckout($this->getOnepage()->getQuote())
657
  || !Mage::helper('checkout')->isCustomerMustBeLogged();
658
  }
659
+
660
+ /**
661
+ * Prepare JSON formatted data for response to client
662
+ *
663
+ * @param $response
664
+ * @return Zend_Controller_Response_Abstract
665
+ */
666
+ protected function _prepareDataJSON($response)
667
+ {
668
+ $this->getResponse()->setHeader('Content-type', 'application/json', true);
669
+ return $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($response));
670
+ }
671
+
672
  }
app/code/core/Mage/Cms/Block/Page.php CHANGED
@@ -63,14 +63,28 @@ class Mage_Cms_Block_Page extends Mage_Core_Block_Abstract
63
  protected function _prepareLayout()
64
  {
65
  $page = $this->getPage();
 
66
 
67
  // show breadcrumbs
68
  if (Mage::getStoreConfig('web/default/show_cms_breadcrumbs')
69
  && ($breadcrumbs = $this->getLayout()->getBlock('breadcrumbs'))
70
  && ($page->getIdentifier()!==Mage::getStoreConfig('web/default/cms_home_page'))
71
  && ($page->getIdentifier()!==Mage::getStoreConfig('web/default/cms_no_route'))) {
72
- $breadcrumbs->addCrumb('home', array('label'=>Mage::helper('cms')->__('Home'), 'title'=>Mage::helper('cms')->__('Go to Home Page'), 'link'=>Mage::getBaseUrl()));
73
- $breadcrumbs->addCrumb('cms_page', array('label'=>$page->getTitle(), 'title'=>$page->getTitle()));
 
 
 
 
 
 
 
 
 
 
 
 
 
74
  }
75
 
76
  $root = $this->getLayout()->getBlock('root');
@@ -85,6 +99,14 @@ class Mage_Cms_Block_Page extends Mage_Core_Block_Abstract
85
  $head->setDescription($page->getMetaDescription());
86
  }
87
 
 
 
 
 
 
 
 
 
88
  return parent::_prepareLayout();
89
  }
90
 
63
  protected function _prepareLayout()
64
  {
65
  $page = $this->getPage();
66
+ $breadcrumbsArray = array();
67
 
68
  // show breadcrumbs
69
  if (Mage::getStoreConfig('web/default/show_cms_breadcrumbs')
70
  && ($breadcrumbs = $this->getLayout()->getBlock('breadcrumbs'))
71
  && ($page->getIdentifier()!==Mage::getStoreConfig('web/default/cms_home_page'))
72
  && ($page->getIdentifier()!==Mage::getStoreConfig('web/default/cms_no_route'))) {
73
+ $breadcrumbsArray[] = array(
74
+ 'crumbName' => 'home',
75
+ 'crumbInfo' => array(
76
+ 'label' => Mage::helper('cms')->__('Home'),
77
+ 'title' => Mage::helper('cms')->__('Go to Home Page'),
78
+ 'link' => Mage::getBaseUrl()
79
+ )
80
+ );
81
+ $breadcrumbsArray[] = array(
82
+ 'crumbName' => 'cms_page',
83
+ 'crumbInfo' => array(
84
+ 'label' => $page->getTitle(),
85
+ 'title' => $page->getTitle()
86
+ )
87
+ );
88
  }
89
 
90
  $root = $this->getLayout()->getBlock('root');
99
  $head->setDescription($page->getMetaDescription());
100
  }
101
 
102
+ $breadcrumbsObject = new Varien_Object();
103
+ $breadcrumbsObject->setCrumbs($breadcrumbsArray);
104
+
105
+ Mage::dispatchEvent('cms_generate_breadcrumbs', array('breadcrumbs' => $breadcrumbsObject));
106
+
107
+ foreach ($breadcrumbsObject->getCrumbs() as $breadcrumbsItem) {
108
+ $breadcrumbs->addCrumb($breadcrumbsItem['crumbName'], $breadcrumbsItem['crumbInfo']);
109
+ }
110
  return parent::_prepareLayout();
111
  }
112
 
app/code/core/Mage/Cms/Helper/Wysiwyg/Images.php CHANGED
@@ -222,7 +222,8 @@ class Mage_Cms_Helper_Wysiwyg_Images extends Mage_Core_Helper_Abstract
222
  }
223
  $io = new Varien_Io_File();
224
  if (!$io->isWriteable($currentPath) && !$io->mkdir($currentPath)) {
225
- $message = Mage::helper('cms')->__('The directory %s is not writable by server.',$currentPath);
 
226
  Mage::throwException($message);
227
  }
228
  $this->_currentPath = $currentPath;
222
  }
223
  $io = new Varien_Io_File();
224
  if (!$io->isWriteable($currentPath) && !$io->mkdir($currentPath)) {
225
+ $message = Mage::helper('cms')->__('The directory %s is not writable by server.',
226
+ $io->getFilteredPath($currentPath));
227
  Mage::throwException($message);
228
  }
229
  $this->_currentPath = $currentPath;
app/code/core/Mage/Cms/Model/Wysiwyg/Images/Storage.php CHANGED
@@ -227,17 +227,18 @@ class Mage_Cms_Model_Wysiwyg_Images_Storage extends Varien_Object
227
  $rootCmp = rtrim($this->getHelper()->getStorageRoot(), DS);
228
  $pathCmp = rtrim($path, DS);
229
 
 
 
230
  if ($rootCmp == $pathCmp) {
231
- Mage::throwException(Mage::helper('cms')->__('Cannot delete root directory %s.', $path));
 
232
  }
233
 
234
- $io = new Varien_Io_File();
235
-
236
  if (Mage::helper('core/file_storage_database')->checkDbUsage()) {
237
  Mage::getModel('core/file_storage_directory_database')->deleteDirectory($path);
238
  }
239
  if (!$io->rmdir($path, true)) {
240
- Mage::throwException(Mage::helper('cms')->__('Cannot delete directory %s.', $path));
241
  }
242
 
243
  if (strpos($pathCmp, $rootCmp) === 0) {
227
  $rootCmp = rtrim($this->getHelper()->getStorageRoot(), DS);
228
  $pathCmp = rtrim($path, DS);
229
 
230
+ $io = new Varien_Io_File();
231
+
232
  if ($rootCmp == $pathCmp) {
233
+ Mage::throwException(Mage::helper('cms')->__('Cannot delete root directory %s.',
234
+ $io->getFilteredPath($path)));
235
  }
236
 
 
 
237
  if (Mage::helper('core/file_storage_database')->checkDbUsage()) {
238
  Mage::getModel('core/file_storage_directory_database')->deleteDirectory($path);
239
  }
240
  if (!$io->rmdir($path, true)) {
241
+ Mage::throwException(Mage::helper('cms')->__('Cannot delete directory %s.', $io->getFilteredPath($path)));
242
  }
243
 
244
  if (strpos($pathCmp, $rootCmp) === 0) {
app/code/core/Mage/ConfigurableSwatches/Block/Catalog/Product/List/Price.php ADDED
@@ -0,0 +1,95 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_ConfigurableSwatches
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+ class Mage_ConfigurableSwatches_Block_Catalog_Product_List_Price extends Mage_Core_Block_Template
28
+ {
29
+ /**
30
+ * @var string
31
+ */
32
+ protected $_template = 'configurableswatches/catalog/product/list/price/js.phtml';
33
+
34
+ /**
35
+ * Get target product IDs from product collection
36
+ * which was set on block
37
+ *
38
+ * @return Mage_Eav_Model_Entity_Collection_Abstract
39
+ */
40
+ protected function getProducts()
41
+ {
42
+ return $this->getProductCollection();
43
+ }
44
+
45
+ /**
46
+ * Get configuration for configurable swatches price change
47
+ *
48
+ * @return string
49
+ */
50
+ public function getJsonConfig()
51
+ {
52
+ /** @var Mage_Catalog_Helper_Product_Type_Composite $compositeProductHelper */
53
+ $compositeProductHelper = $this->helper('catalog/product_type_composite');
54
+
55
+ $config = array(
56
+ 'generalConfig' => $compositeProductHelper->prepareJsonGeneralConfig()
57
+ );
58
+ foreach ($this->getProducts() as $product) {
59
+ /** @var $product Mage_Catalog_Model_Product */
60
+ if (!$product->getSwatchPrices()) {
61
+ continue;
62
+ }
63
+
64
+ $config['products'][$product->getId()] = $compositeProductHelper->prepareJsonProductConfig($product);
65
+ $config['products'][$product->getId()]['swatchPrices'] = $product->getSwatchPrices();
66
+
67
+ $responseObject = new Varien_Object();
68
+ Mage::dispatchEvent('catalog_product_view_config', array(
69
+ 'response_object' => $responseObject,
70
+ 'product' => $product,
71
+ ));
72
+ if (is_array($responseObject->getAdditionalOptions())) {
73
+ foreach ($responseObject->getAdditionalOptions() as $option => $value) {
74
+ $config['products'][$product->getId()][$option] = $value;
75
+ }
76
+ }
77
+ }
78
+ return $this->helper('core')->jsonEncode($config);
79
+ }
80
+
81
+ /**
82
+ * Disable output if all preconditions doesn't meet
83
+ *
84
+ * @return string
85
+ */
86
+ protected function _toHtml()
87
+ {
88
+ if (!$this->helper('configurableswatches/list_price')->isEnabled()) {
89
+ return '';
90
+ }
91
+
92
+ return parent::_toHtml();
93
+ }
94
+
95
+ }
app/code/core/Mage/ConfigurableSwatches/Helper/Data.php CHANGED
@@ -92,7 +92,10 @@ class Mage_ConfigurableSwatches_Helper_Data extends Mage_Core_Helper_Abstract
92
  public function getSwatchAttributeIds()
93
  {
94
  if (is_null($this->_configAttributeIds)) {
95
- $this->_configAttributeIds = explode(',', Mage::getStoreConfig(self::CONFIG_PATH_SWATCH_ATTRIBUTES));
 
 
 
96
  }
97
  return $this->_configAttributeIds;
98
  }
@@ -111,4 +114,27 @@ class Mage_ConfigurableSwatches_Helper_Data extends Mage_Core_Helper_Abstract
111
  $configAttrs = $this->getSwatchAttributeIds();
112
  return in_array($attr, $configAttrs);
113
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
114
  }
92
  public function getSwatchAttributeIds()
93
  {
94
  if (is_null($this->_configAttributeIds)) {
95
+ $this->_configAttributeIds = array();
96
+ if (Mage::getStoreConfig(self::CONFIG_PATH_SWATCH_ATTRIBUTES)) {
97
+ $this->_configAttributeIds = explode(',', Mage::getStoreConfig(self::CONFIG_PATH_SWATCH_ATTRIBUTES));
98
+ }
99
  }
100
  return $this->_configAttributeIds;
101
  }
114
  $configAttrs = $this->getSwatchAttributeIds();
115
  return in_array($attr, $configAttrs);
116
  }
117
+
118
+ /**
119
+ * Get swatches product javascript
120
+ *
121
+ * @return string
122
+ */
123
+ public function getSwatchesProductJs()
124
+ {
125
+ /**
126
+ * @var $product Mage_Catalog_Model_Product
127
+ */
128
+ $product = Mage::registry('current_product');
129
+ if ($this->isEnabled() && $product) {
130
+ $configAttrs = $this->getSwatchAttributeIds();
131
+ $configurableAttributes = $product->getTypeInstance(true)->getConfigurableAttributesAsArray($product);
132
+ foreach ($configurableAttributes as $configurableAttribute) {
133
+ if (in_array($configurableAttribute['attribute_id'], $configAttrs)) {
134
+ return 'js/configurableswatches/swatches-product.js';
135
+ }
136
+ }
137
+ }
138
+ return '';
139
+ }
140
  }
app/code/core/Mage/ConfigurableSwatches/Helper/List/Price.php ADDED
@@ -0,0 +1,118 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_ConfigurableSwatches
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+ /**
28
+ * Class implementing price change for swatches in product listing pages
29
+ */
30
+ class Mage_ConfigurableSwatches_Helper_List_Price extends Mage_Core_Helper_Abstract
31
+ {
32
+ /**
33
+ * Path to to check is it required to change prices
34
+ */
35
+ const XML_PATH_SWATCH_PRICE = 'configswatches/general/product_list_price_change';
36
+
37
+ /**
38
+ * Set swatch_price on products where swatch option_id is set
39
+ * Depends on following product data:
40
+ * - product must have children products attached and be configurable by type
41
+ *
42
+ * @param array $products
43
+ * @param int $storeId
44
+ * @return void
45
+ */
46
+ public function attachConfigurableProductChildrenPricesMapping(array $products, $storeId = null)
47
+ {
48
+ $listSwatchAttrId = Mage::helper('configurableswatches/productlist')->getSwatchAttributeId();
49
+ $result = array();
50
+
51
+ foreach ($products as $product) {
52
+ /** @var $product Mage_Catalog_Model_Product */
53
+ if ($product->getTypeId() !== Mage_Catalog_Model_Product_Type_Configurable::TYPE_CODE
54
+ && !is_array($product->getChildrenProducts())
55
+ ) {
56
+ continue;
57
+ }
58
+
59
+ /** @var Mage_Catalog_Model_Product_Type_Configurable $typeInstance */
60
+ $typeInstance = $product->getTypeInstance();
61
+ $allowedAttributes = $typeInstance->getConfigurableAttributeCollection($product);
62
+ foreach ($allowedAttributes as $attribute) {
63
+ /** @var $attribute Mage_Catalog_Model_Product_Type_Configurable_Attribute */
64
+ if ($attribute->getAttributeId() !== $listSwatchAttrId) {
65
+ continue;
66
+ }
67
+
68
+ foreach ($attribute->getPrices() as $attributePrice) {
69
+ $product->setConfigurablePrice(
70
+ $this->_getHelper()->preparePrice(
71
+ $product,
72
+ $attributePrice['pricing_value'],
73
+ $attributePrice['is_percent'],
74
+ $storeId
75
+ )
76
+ );
77
+ Mage::dispatchEvent(
78
+ 'catalog_product_type_configurable_price',
79
+ array('product' => $product)
80
+ );
81
+ $configurablePrice = $product->getConfigurablePrice();
82
+ $cofigurableSwatchesHelper = Mage::helper('configurableswatches');
83
+ $result[$cofigurableSwatchesHelper::normalizeKey($attributePrice['store_label'])] = array(
84
+ 'price' => $configurablePrice,
85
+ 'oldPrice' => $this->_getHelper()->prepareOldPrice(
86
+ $product,
87
+ $attributePrice['pricing_value'],
88
+ $attributePrice['is_percent'],
89
+ $storeId
90
+ ),
91
+ );
92
+ }
93
+ }
94
+ $product->setSwatchPrices($result);
95
+ }
96
+ }
97
+
98
+ /**
99
+ * Get helper for calculation purposes
100
+ *
101
+ * @return Mage_Catalog_Helper_Product_Type_Composite
102
+ */
103
+ protected function _getHelper()
104
+ {
105
+ return Mage::helper('catalog/product_type_composite');
106
+ }
107
+
108
+ /**
109
+ * Check if option for swatches price change is enabled
110
+ *
111
+ * @return bool
112
+ */
113
+ public function isEnabled()
114
+ {
115
+ return Mage::getStoreConfigFlag(self::XML_PATH_SWATCH_PRICE);
116
+ }
117
+
118
+ }
app/code/core/Mage/ConfigurableSwatches/Helper/Mediafallback.php CHANGED
@@ -37,12 +37,39 @@ class Mage_ConfigurableSwatches_Helper_Mediafallback extends Mage_Core_Helper_Ab
37
  * - product must have children products attached
38
  *
39
  * @param array $parentProducts
 
40
  * @param $storeId
41
  * @return void
42
  */
43
  public function attachConfigurableProductChildrenAttributeMapping(array $parentProducts, $storeId)
44
  {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45
  $listSwatchAttr = Mage::helper('configurableswatches/productlist')->getSwatchAttribute();
 
 
 
 
 
 
 
 
 
 
46
 
47
  $parentProductIds = array();
48
  /* @var $parentProduct Mage_Catalog_Model_Product */
@@ -53,6 +80,7 @@ class Mage_ConfigurableSwatches_Helper_Mediafallback extends Mage_Core_Helper_Ab
53
  $configAttributes = Mage::getResourceModel('configurableswatches/catalog_product_attribute_super_collection')
54
  ->addParentProductsFilter($parentProductIds)
55
  ->attachEavAttributes()
 
56
  ->setStoreId($storeId)
57
  ;
58
 
@@ -61,9 +89,15 @@ class Mage_ConfigurableSwatches_Helper_Mediafallback extends Mage_Core_Helper_Ab
61
  $optionLabels += $attribute->getOptionLabels();
62
  }
63
 
 
 
 
 
 
64
  foreach ($parentProducts as $parentProduct) {
65
  $mapping = array();
66
  $listSwatchValues = array();
 
67
 
68
  /* @var $attribute Mage_Catalog_Model_Product_Type_Configurable_Attribute */
69
  foreach ($configAttributes as $attribute) {
@@ -74,8 +108,10 @@ class Mage_ConfigurableSwatches_Helper_Mediafallback extends Mage_Core_Helper_Ab
74
 
75
  foreach ($parentProduct->getChildrenProducts() as $childProduct) {
76
 
77
- // product has no value for attribute, we can't process it
78
- if (!$childProduct->hasData($attribute->getAttributeCode())) {
 
 
79
  continue;
80
  }
81
  $optionId = $childProduct->getData($attribute->getAttributeCode());
@@ -85,11 +121,6 @@ class Mage_ConfigurableSwatches_Helper_Mediafallback extends Mage_Core_Helper_Ab
85
  continue;
86
  }
87
 
88
- // normalize to all lower case before we start using them
89
- $optionLabels = array_map(function ($value) {
90
- return array_map('Mage_ConfigurableSwatches_Helper_Data::normalizeKey', $value);
91
- }, $optionLabels);
92
-
93
  // using default value as key unless store-specific label is present
94
  $optionLabel = $optionLabels[$optionId][0];
95
  if (isset($optionLabels[$optionId][$storeId])) {
@@ -110,7 +141,8 @@ class Mage_ConfigurableSwatches_Helper_Mediafallback extends Mage_Core_Helper_Ab
110
  if ($attribute->getAttributeId() == $listSwatchAttr->getAttributeId()
111
  && !in_array($mapping[$optionLabel]['label'], $listSwatchValues)
112
  ) {
113
- $listSwatchValues[$optionId] = $mapping[$optionLabel]['label'];
 
114
  }
115
  } // end looping child products
116
  } // end looping attributes
@@ -120,8 +152,13 @@ class Mage_ConfigurableSwatches_Helper_Mediafallback extends Mage_Core_Helper_Ab
120
  $mapping[$key]['product_ids'] = array_unique($mapping[$key]['product_ids']);
121
  }
122
 
 
 
 
 
123
  $parentProduct->setChildAttributeLabelMapping($mapping)
124
- ->setListSwatchAttrValues($listSwatchValues);
 
125
  } // end looping parent products
126
  }
127
 
@@ -201,7 +238,12 @@ class Mage_ConfigurableSwatches_Helper_Mediafallback extends Mage_Core_Helper_Ab
201
  /* @var $childProduct Mage_Catalog_Model_Product */
202
  if ($product->hasChildrenProducts()) {
203
  foreach ($product->getChildrenProducts() as $childProduct) {
204
- if ($image = $this->_resizeProductImage($childProduct, $imageType, $keepFrame)) {
 
 
 
 
 
205
  $imagesByType[$imageType][$childProduct->getId()] = $image;
206
  }
207
  }
37
  * - product must have children products attached
38
  *
39
  * @param array $parentProducts
40
+ * @deprecated use $this->attachProductChildrenAttributeMapping() instead
41
  * @param $storeId
42
  * @return void
43
  */
44
  public function attachConfigurableProductChildrenAttributeMapping(array $parentProducts, $storeId)
45
  {
46
+ return $this->attachProductChildrenAttributeMapping($parentProducts, $storeId);
47
+ }
48
+
49
+ /**
50
+ * Set child_attribute_label_mapping on products with attribute label -> product mapping
51
+ * Depends on following product data:
52
+ * - product must have children products attached
53
+ *
54
+ * @param array $parentProducts
55
+ * @param $storeId
56
+ * @param bool $onlyListAttributes
57
+ * @return void
58
+ */
59
+ public function attachProductChildrenAttributeMapping(array $parentProducts, $storeId, $onlyListAttributes = false)
60
+ {
61
+ /** @var $listSwatchAttr Mage_Eav_Model_Attribute */
62
  $listSwatchAttr = Mage::helper('configurableswatches/productlist')->getSwatchAttribute();
63
+ $swatchAttributeIds = array();
64
+ if (!$onlyListAttributes) {
65
+ $swatchAttributeIds = Mage::helper('configurableswatches')->getSwatchAttributeIds();
66
+ }
67
+ if ($listSwatchAttr->getId()) {
68
+ $swatchAttributeIds[] = $listSwatchAttr->getId();
69
+ }
70
+ if (empty($swatchAttributeIds)) {
71
+ return;
72
+ }
73
 
74
  $parentProductIds = array();
75
  /* @var $parentProduct Mage_Catalog_Model_Product */
80
  $configAttributes = Mage::getResourceModel('configurableswatches/catalog_product_attribute_super_collection')
81
  ->addParentProductsFilter($parentProductIds)
82
  ->attachEavAttributes()
83
+ ->addFieldToFilter('eav_attributes.attribute_id', array('in' => $swatchAttributeIds))
84
  ->setStoreId($storeId)
85
  ;
86
 
89
  $optionLabels += $attribute->getOptionLabels();
90
  }
91
 
92
+ // normalize to all lower case before we start using them
93
+ $optionLabels = array_map(function ($value) {
94
+ return array_map('Mage_ConfigurableSwatches_Helper_Data::normalizeKey', $value);
95
+ }, $optionLabels);
96
+
97
  foreach ($parentProducts as $parentProduct) {
98
  $mapping = array();
99
  $listSwatchValues = array();
100
+ $listSwatchStockValues = array();
101
 
102
  /* @var $attribute Mage_Catalog_Model_Product_Type_Configurable_Attribute */
103
  foreach ($configAttributes as $attribute) {
108
 
109
  foreach ($parentProduct->getChildrenProducts() as $childProduct) {
110
 
111
+ // product has no value for attribute or not available, we can't process it
112
+ $isInStock = $childProduct->getStockItem()->getIsInStock();
113
+ if (!$childProduct->hasData($attribute->getAttributeCode())
114
+ || (!$isInStock && !Mage::helper('cataloginventory')->isShowOutOfStock())) {
115
  continue;
116
  }
117
  $optionId = $childProduct->getData($attribute->getAttributeCode());
121
  continue;
122
  }
123
 
 
 
 
 
 
124
  // using default value as key unless store-specific label is present
125
  $optionLabel = $optionLabels[$optionId][0];
126
  if (isset($optionLabels[$optionId][$storeId])) {
141
  if ($attribute->getAttributeId() == $listSwatchAttr->getAttributeId()
142
  && !in_array($mapping[$optionLabel]['label'], $listSwatchValues)
143
  ) {
144
+ $listSwatchValues[$optionId] = $mapping[$optionLabel]['label'];
145
+ $listSwatchStockValues[$optionId] = $isInStock;
146
  }
147
  } // end looping child products
148
  } // end looping attributes
152
  $mapping[$key]['product_ids'] = array_unique($mapping[$key]['product_ids']);
153
  }
154
 
155
+ if (count($listSwatchValues)) {
156
+ $listSwatchValues = array_replace(array_intersect_key($optionLabels, $listSwatchValues),
157
+ $listSwatchValues);
158
+ }
159
  $parentProduct->setChildAttributeLabelMapping($mapping)
160
+ ->setListSwatchAttrValues($listSwatchValues)
161
+ ->setListSwatchAttrStockValues($listSwatchStockValues);
162
  } // end looping parent products
163
  }
164
 
238
  /* @var $childProduct Mage_Catalog_Model_Product */
239
  if ($product->hasChildrenProducts()) {
240
  foreach ($product->getChildrenProducts() as $childProduct) {
241
+ $image = $this->_resizeProductImage($childProduct, $imageType, $keepFrame);
242
+ if (!$image) {
243
+ $image = $this->_resizeProductImage($childProduct, 'image', $keepFrame);
244
+ }
245
+
246
+ if ($image) {
247
  $imagesByType[$imageType][$childProduct->getId()] = $image;
248
  }
249
  }
app/code/core/Mage/ConfigurableSwatches/Model/Observer.php CHANGED
@@ -37,8 +37,11 @@ class Mage_ConfigurableSwatches_Model_Observer extends Mage_Core_Model_Abstract
37
  return; // exit without loading swatch functionality
38
  }
39
 
40
- /* @var $helper Mage_ConfigurableSwatches_Helper_Mediafallback */
41
- $helper = Mage::helper('configurableswatches/mediafallback');
 
 
 
42
 
43
  /* @var $collection Mage_Catalog_Model_Resource_Product_Collection */
44
  $collection = $observer->getCollection();
@@ -51,15 +54,19 @@ class Mage_ConfigurableSwatches_Model_Observer extends Mage_Core_Model_Abstract
51
 
52
  $products = $collection->getItems();
53
 
54
- $helper->attachChildrenProducts($products, $collection->getStoreId());
55
 
56
- $helper->attachConfigurableProductChildrenAttributeMapping($products, $collection->getStoreId());
 
 
 
 
57
 
58
- $helper->attachGallerySetToCollection($products, $collection->getStoreId());
59
 
60
  /* @var $product Mage_Catalog_Model_Product */
61
  foreach ($products as $product) {
62
- $helper->groupMediaGalleryImages($product);
63
  Mage::helper('configurableswatches/productimg')
64
  ->indexProductImages($product, $product->getListSwatchAttrValues());
65
  }
@@ -90,7 +97,7 @@ class Mage_ConfigurableSwatches_Model_Observer extends Mage_Core_Model_Abstract
90
 
91
  $helper->groupMediaGalleryImages($product);
92
 
93
- $helper->attachConfigurableProductChildrenAttributeMapping(array($product), $product->getStoreId());
94
  }
95
 
96
  /**
37
  return; // exit without loading swatch functionality
38
  }
39
 
40
+ /* @var $mediaHelper Mage_ConfigurableSwatches_Helper_Mediafallback */
41
+ $mediaHelper = Mage::helper('configurableswatches/mediafallback');
42
+
43
+ /** @var $priceHelper Mage_ConfigurableSwatches_Helper_List_Price */
44
+ $priceHelper = Mage::helper('configurableswatches/list_price');
45
 
46
  /* @var $collection Mage_Catalog_Model_Resource_Product_Collection */
47
  $collection = $observer->getCollection();
54
 
55
  $products = $collection->getItems();
56
 
57
+ $mediaHelper->attachChildrenProducts($products, $collection->getStoreId());
58
 
59
+ $mediaHelper->attachProductChildrenAttributeMapping($products, $collection->getStoreId());
60
+
61
+ if ($priceHelper->isEnabled()) {
62
+ $priceHelper->attachConfigurableProductChildrenPricesMapping($products, $collection->getStoreId());
63
+ }
64
 
65
+ $mediaHelper->attachGallerySetToCollection($products, $collection->getStoreId());
66
 
67
  /* @var $product Mage_Catalog_Model_Product */
68
  foreach ($products as $product) {
69
+ $mediaHelper->groupMediaGalleryImages($product);
70
  Mage::helper('configurableswatches/productimg')
71
  ->indexProductImages($product, $product->getListSwatchAttrValues());
72
  }
97
 
98
  $helper->groupMediaGalleryImages($product);
99
 
100
+ $helper->attachProductChildrenAttributeMapping(array($product), $product->getStoreId(), false);
101
  }
102
 
103
  /**
app/code/core/Mage/ConfigurableSwatches/Model/Resource/Catalog/Product/Attribute/Super/Collection.php CHANGED
@@ -99,40 +99,59 @@ class Mage_ConfigurableSwatches_Model_Resource_Catalog_Product_Attribute_Super_C
99
  */
100
  protected function _loadOptionLabels()
101
  {
102
- if ($this->count()) {
103
- $select = $this->getConnection()->select()
104
- ->from(
105
- array('attr' => $this->getTable('catalog/product_super_attribute')),
106
- array(
107
- 'product_super_attribute_id' => 'attr.product_super_attribute_id',
108
- ))
109
- ->join(
110
- array('opt' => $this->getTable('eav/attribute_option')),
111
- 'opt.attribute_id = attr.attribute_id',
112
- array(
113
- 'attribute_id' => 'opt.attribute_id',
114
- 'option_id' => 'opt.option_id',
115
- ))
116
- ->join(
117
- array('lab' => $this->getTable('eav/attribute_option_value')),
118
- 'lab.option_id = opt.option_id',
119
- array(
120
- 'label' => 'lab.value',
121
- 'store_id' => 'lab.store_id',
122
- ))
123
- ->where('attr.product_super_attribute_id IN (?)', array_keys($this->_items))
124
- ;
125
-
126
- $result = $this->getConnection()->fetchAll($select);
127
- foreach ($result as $data) {
128
- $item = $this->getItemById($data['product_super_attribute_id']);
129
- if (!is_array($labels = $item->getOptionLabels())) {
130
- $labels = array();
131
- }
132
- $labels[$data['option_id']][$data['store_id']] = $data['label'];
133
- $item->setOptionLabels($labels);
134
- }
135
  }
136
  return $this;
137
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
138
  }
99
  */
100
  protected function _loadOptionLabels()
101
  {
102
+ $labels = $this->_getOptionLabels();
103
+ foreach ($this->getItems() as $item) {
104
+ $item->setOptionLabels($labels);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
105
  }
106
  return $this;
107
  }
108
+
109
+ /**
110
+ * Get Option Labels
111
+ *
112
+ * @return array
113
+ */
114
+ protected function _getOptionLabels()
115
+ {
116
+ $attributeIds = $this->_getAttributeIds();
117
+
118
+ $select = $this->getConnection()->select();
119
+ $select->from(array('options' => $this->getTable('eav/attribute_option')))
120
+ ->join(
121
+ array('labels' => $this->getTable('eav/attribute_option_value')),
122
+ 'labels.option_id = options.option_id',
123
+ array(
124
+ 'label' => 'labels.value',
125
+ 'store_id' => 'labels.store_id',
126
+ )
127
+ )
128
+ ->where('options.attribute_id IN (?)', $attributeIds)
129
+ ->where(
130
+ 'labels.store_id IN (?)',
131
+ array(Mage_Catalog_Model_Abstract::DEFAULT_STORE_ID, $this->getStoreId())
132
+ );
133
+
134
+ $resultSet = $this->getConnection()->query($select);
135
+ $labels = array();
136
+ while ($option = $resultSet->fetch()) {
137
+ $labels[$option['option_id']][$option['store_id']] = $option['label'];
138
+ }
139
+ return $labels;
140
+ }
141
+
142
+ /**
143
+ * Get Attribute IDs
144
+ *
145
+ * @return array
146
+ */
147
+ protected function _getAttributeIds()
148
+ {
149
+ $attributeIds = array();
150
+ foreach ($this->getItems() as $item) {
151
+ $attributeIds[] = $item->getAttributeId();
152
+ }
153
+ $attributeIds = array_unique($attributeIds);
154
+
155
+ return $attributeIds;
156
+ }
157
  }
app/code/core/Mage/ConfigurableSwatches/etc/system.xml CHANGED
@@ -71,6 +71,15 @@
71
  <show_in_website>1</show_in_website>
72
  <show_in_store>1</show_in_store>
73
  </product_list_attribute>
 
 
 
 
 
 
 
 
 
74
  </fields>
75
  </general>
76
  <product_detail_dimensions translate="label comment" module="configurableswatches">
71
  <show_in_website>1</show_in_website>
72
  <show_in_store>1</show_in_store>
73
  </product_list_attribute>
74
+ <product_list_price_change translate="label" module="configurableswatches">
75
+ <label>Dynamic Price Change for Swatches in Product Listing</label>
76
+ <frontend_type>select</frontend_type>
77
+ <source_model>adminhtml/system_config_source_yesno</source_model>
78
+ <sort_order>40</sort_order>
79
+ <show_in_default>1</show_in_default>
80
+ <show_in_website>1</show_in_website>
81
+ <show_in_store>1</show_in_store>
82
+ </product_list_price_change>
83
  </fields>
84
  </general>
85
  <product_detail_dimensions translate="label comment" module="configurableswatches">
app/code/core/Mage/Core/Block/Abstract.php CHANGED
@@ -36,6 +36,10 @@
36
  */
37
  abstract class Mage_Core_Block_Abstract extends Varien_Object
38
  {
 
 
 
 
39
  /**
40
  * Cache group Tag
41
  */
@@ -1289,7 +1293,13 @@ abstract class Mage_Core_Block_Abstract extends Varien_Object
1289
  public function getCacheKey()
1290
  {
1291
  if ($this->hasData('cache_key')) {
1292
- return $this->getData('cache_key');
 
 
 
 
 
 
1293
  }
1294
  /**
1295
  * don't prevent recalculation by saving generated cache key
36
  */
37
  abstract class Mage_Core_Block_Abstract extends Varien_Object
38
  {
39
+ /**
40
+ * Prefix for cache key
41
+ */
42
+ const CACHE_KEY_PREFIX = 'BLOCK_';
43
  /**
44
  * Cache group Tag
45
  */
1293
  public function getCacheKey()
1294
  {
1295
  if ($this->hasData('cache_key')) {
1296
+ $cacheKey = $this->getData('cache_key');
1297
+ if (strpos($cacheKey, self::CACHE_KEY_PREFIX) !== 0) {
1298
+ $cacheKey = self::CACHE_KEY_PREFIX . $cacheKey;
1299
+ $this->setData('cache_key', $cacheKey);
1300
+ }
1301
+
1302
+ return $cacheKey;
1303
  }
1304
  /**
1305
  * don't prevent recalculation by saving generated cache key
app/code/core/Mage/Core/Block/Template.php CHANGED
@@ -212,7 +212,7 @@ class Mage_Core_Block_Template extends Mage_Core_Block_Abstract
212
 
213
  // EXTR_SKIP protects from overriding
214
  // already defined variables
215
- extract ($this->_viewVars, EXTR_SKIP);
216
  $do = $this->getDirectOutput();
217
 
218
  if (!$do) {
212
 
213
  // EXTR_SKIP protects from overriding
214
  // already defined variables
215
+ extract($this->_viewVars, EXTR_SKIP);
216
  $do = $this->getDirectOutput();
217
 
218
  if (!$do) {
app/code/core/Mage/Core/Controller/Varien/Action.php CHANGED
@@ -1054,6 +1054,7 @@ abstract class Mage_Core_Controller_Varien_Action
1054
  return $this;
1055
  }
1056
  if ($content['type'] == 'filename') {
 
1057
  $isFile = true;
1058
  $file = $content['value'];
1059
  $contentLength = filesize($file);
1054
  return $this;
1055
  }
1056
  if ($content['type'] == 'filename') {
1057
+ clearstatcache();
1058
  $isFile = true;
1059
  $file = $content['value'];
1060
  $contentLength = filesize($file);
app/code/core/Mage/Core/Helper/String.php CHANGED
@@ -172,6 +172,13 @@ class Mage_Core_Helper_String extends Mage_Core_Helper_Abstract
172
  // trim
173
  if ($trim) {
174
  $str = trim(preg_replace('/\s{2,}/siu', ' ', $str));
 
 
 
 
 
 
 
175
  }
176
  // do a usual str_split, but safe for our encoding
177
  if ((!$keepWords) || ($length < 2)) {
@@ -194,7 +201,14 @@ class Mage_Core_Helper_String extends Mage_Core_Helper_Abstract
194
  $space = ' ';
195
  $spaceLen = 1;
196
  }
197
- if (empty($result[$i])) {
 
 
 
 
 
 
 
198
  $currentLength = 0;
199
  $result[$i] = '';
200
  $space = '';
@@ -476,4 +490,30 @@ class Mage_Core_Helper_String extends Mage_Core_Helper_Abstract
476
  return $this->_arrayHelper;
477
  }
478
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
479
  }
172
  // trim
173
  if ($trim) {
174
  $str = trim(preg_replace('/\s{2,}/siu', ' ', $str));
175
+ /**
176
+ * In cases like:
177
+ * Mage::helper('core/string')->str_split('0 1 2 ', 2, false, true);
178
+ * the result array have elements with boolean "false" value.
179
+ * So it fixed by
180
+ */
181
+ $strlen = $this->strlen($str);
182
  }
183
  // do a usual str_split, but safe for our encoding
184
  if ((!$keepWords) || ($length < 2)) {
201
  $space = ' ';
202
  $spaceLen = 1;
203
  }
204
+ /**
205
+ * The empty($result[$i]) is not appropriate, because in case with empty("0") expression returns "true",
206
+ * so in cases when string have "0" symbol, the "0" will lost.
207
+ * Try Mage::helper('core/string')->str_split("0 aa", 2, true);
208
+ * Therefore the empty($result[$i]) expression
209
+ * replaced by !isset($result[$i]) || isset($result[$i]) && $result[$i] === ''
210
+ */
211
+ if (!isset($result[$i]) || isset($result[$i]) && $result[$i] === '') {
212
  $currentLength = 0;
213
  $result[$i] = '';
214
  $space = '';
490
  return $this->_arrayHelper;
491
  }
492
 
493
+ /**
494
+ * Unicode compatible ord() method
495
+ *
496
+ * @param string $c char to get value from
497
+ * @return integer
498
+ */
499
+ public function uniOrd($c)
500
+ {
501
+ $ord = 0;
502
+ $h = ord($c[0]);
503
+
504
+ if ($h <= 0x7F) {
505
+ $ord = $h;
506
+ } else if ($h < 0xC2) {
507
+ $ord = 0;
508
+ } else if ($h <= 0xDF) {
509
+ $ord = (($h & 0x1F) << 6 | (ord($c[1]) & 0x3F));
510
+ } else if ($h <= 0xEF) {
511
+ $ord = (($h & 0x0F) << 12 | (ord($c[1]) & 0x3F) << 6 | (ord($c[2]) & 0x3F));
512
+ } else if ($h <= 0xF4) {
513
+ $ord = (($h & 0x0F) << 18 | (ord($c[1]) & 0x3F) << 12 |
514
+ (ord($c[2]) & 0x3F) << 6 | (ord($c[3]) & 0x3F));
515
+ }
516
+
517
+ return $ord;
518
+ }
519
  }
app/code/core/Mage/Core/Helper/Url.php CHANGED
@@ -51,7 +51,7 @@ class Mage_Core_Helper_Url extends Mage_Core_Helper_Abstract
51
  $port = (in_array($port, $defaultPorts)) ? '' : ':' . $port;
52
  }
53
  $url = $request->getScheme() . '://' . $request->getHttpHost() . $port . $request->getServer('REQUEST_URI');
54
- return $url;
55
  // return $this->_getUrl('*/*/*', array('_current' => true, '_use_rewrite' => true));
56
  }
57
 
51
  $port = (in_array($port, $defaultPorts)) ? '' : ':' . $port;
52
  }
53
  $url = $request->getScheme() . '://' . $request->getHttpHost() . $port . $request->getServer('REQUEST_URI');
54
+ return $this->escapeUrl($url);
55
  // return $this->_getUrl('*/*/*', array('_current' => true, '_use_rewrite' => true));
56
  }
57
 
app/code/core/Mage/Core/Model/Config.php CHANGED
@@ -256,6 +256,9 @@ class Mage_Core_Model_Config extends Mage_Core_Model_Config_Base
256
  if ($cacheLoad) {
257
  return $this;
258
  }
 
 
 
259
  $this->loadModules();
260
  $this->loadDb();
261
  $this->saveCache();
256
  if ($cacheLoad) {
257
  return $this;
258
  }
259
+
260
+ $this->_useCache = false;
261
+
262
  $this->loadModules();
263
  $this->loadDb();
264
  $this->saveCache();
app/code/core/Mage/Core/Model/Email/Queue.php CHANGED
@@ -44,8 +44,6 @@
44
  *
45
  * @category Mage
46
  * @package Mage_Core
47
- * @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
48
- * @license http://www.magentocommerce.com/license/enterprise-edition
49
  */
50
  class Mage_Core_Model_Email_Queue extends Mage_Core_Model_Abstract
51
  {
44
  *
45
  * @category Mage
46
  * @package Mage_Core
 
 
47
  */
48
  class Mage_Core_Model_Email_Queue extends Mage_Core_Model_Abstract
49
  {
app/code/core/Mage/Core/Model/Email/Template.php CHANGED
@@ -407,6 +407,7 @@ class Mage_Core_Model_Email_Template extends Mage_Core_Model_Email_Template_Abst
407
  if ($this->hasQueue() && $this->getQueue() instanceof Mage_Core_Model_Email_Queue) {
408
  /** @var $emailQueue Mage_Core_Model_Email_Queue */
409
  $emailQueue = $this->getQueue();
 
410
  $emailQueue->setMessageBody($text);
411
  $emailQueue->setMessageParameters(array(
412
  'subject' => $subject,
407
  if ($this->hasQueue() && $this->getQueue() instanceof Mage_Core_Model_Email_Queue) {
408
  /** @var $emailQueue Mage_Core_Model_Email_Queue */
409
  $emailQueue = $this->getQueue();
410
+ $emailQueue->clearRecipients();
411
  $emailQueue->setMessageBody($text);
412
  $emailQueue->setMessageParameters(array(
413
  'subject' => $subject,
app/code/core/Mage/Core/Model/Email/Template/Abstract.php CHANGED
@@ -149,8 +149,7 @@ abstract class Mage_Core_Model_Email_Template_Abstract extends Mage_Core_Model_T
149
  protected function _addEmailVariables($variables, $storeId)
150
  {
151
  if (!isset($variables['store'])) {
152
- $store = Mage::app()->getStore($storeId);
153
- $variables['store'] = $store;
154
  }
155
  if (!isset($variables['logo_url'])) {
156
  $variables['logo_url'] = $this->_getLogoUrl($storeId);
@@ -158,35 +157,20 @@ abstract class Mage_Core_Model_Email_Template_Abstract extends Mage_Core_Model_T
158
  if (!isset($variables['logo_alt'])) {
159
  $variables['logo_alt'] = $this->_getLogoAlt($storeId);
160
  }
161
- if (!isset($variables['logo_width'])) {
162
- $variables['logo_width'] = Mage::getStoreConfig(
163
- self::XML_PATH_DESIGN_EMAIL_LOGO_WIDTH,
164
- $storeId
165
- );
166
- }
167
- if (!isset($variables['logo_height'])) {
168
- $variables['logo_height'] = Mage::getStoreConfig(
169
- self::XML_PATH_DESIGN_EMAIL_LOGO_HEIGHT,
170
- $storeId
171
- );
172
- }
173
- if (!isset($variables['store_phone'])) {
174
- $variables['store_phone'] = Mage::getStoreConfig(
175
- Mage_Core_Model_Store::XML_PATH_STORE_STORE_PHONE,
176
- $storeId
177
- );
178
- }
179
- if (!isset($variables['store_hours'])) {
180
- $variables['store_hours'] = Mage::getStoreConfig(
181
- Mage_Core_Model_Store::XML_PATH_STORE_STORE_HOURS,
182
- $storeId
183
- );
184
- }
185
- if (!isset($variables['store_email'])) {
186
- $variables['store_email'] = Mage::getStoreConfig(
187
- Mage_Customer_Helper_Data::XML_PATH_SUPPORT_EMAIL,
188
- $storeId
189
- );
190
  }
191
  // If template is text mode, don't include styles
192
  if (!$this->isPlain()) {
149
  protected function _addEmailVariables($variables, $storeId)
150
  {
151
  if (!isset($variables['store'])) {
152
+ $variables['store'] = Mage::app()->getStore($storeId);
 
153
  }
154
  if (!isset($variables['logo_url'])) {
155
  $variables['logo_url'] = $this->_getLogoUrl($storeId);
157
  if (!isset($variables['logo_alt'])) {
158
  $variables['logo_alt'] = $this->_getLogoAlt($storeId);
159
  }
160
+
161
+ $defaultValuesMap = array(
162
+ "logo_width" => self::XML_PATH_DESIGN_EMAIL_LOGO_WIDTH,
163
+ "logo_height" => self::XML_PATH_DESIGN_EMAIL_LOGO_HEIGHT,
164
+ "phone" => Mage_Core_Model_Store::XML_PATH_STORE_STORE_PHONE,
165
+ "store_phone" => Mage_Core_Model_Store::XML_PATH_STORE_STORE_PHONE,
166
+ "store_hours" => Mage_Core_Model_Store::XML_PATH_STORE_STORE_HOURS,
167
+ "store_email" => Mage_Customer_Helper_Data::XML_PATH_SUPPORT_EMAIL,
168
+ );
169
+
170
+ foreach ($defaultValuesMap as $variableName => $configValue) {
171
+ if (!isset($variables[$variableName])) {
172
+ $variables[$variableName] = Mage::getStoreConfig($configValue, $storeId);
173
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
174
  }
175
  // If template is text mode, don't include styles
176
  if (!$this->isPlain()) {
app/code/core/Mage/Core/Model/Encryption.php CHANGED
@@ -98,9 +98,9 @@ class Mage_Core_Model_Encryption
98
  $hashArr = explode(':', $hash);
99
  switch (count($hashArr)) {
100
  case 1:
101
- return $this->hash($password) === $hash;
102
  case 2:
103
- return $this->hash($hashArr[1] . $password) === $hashArr[0];
104
  }
105
  Mage::throwException('Invalid hash.');
106
  }
98
  $hashArr = explode(':', $hash);
99
  switch (count($hashArr)) {
100
  case 1:
101
+ return hash_equals($this->hash($password), $hash);
102
  case 2:
103
+ return hash_equals($this->hash($hashArr[1] . $password), $hashArr[0]);
104
  }
105
  Mage::throwException('Invalid hash.');
106
  }
app/code/core/Mage/Core/Model/File/Storage/Abstract.php CHANGED
@@ -74,12 +74,12 @@ abstract class Mage_Core_Model_File_Storage_Abstract extends Mage_Core_Model_Abs
74
  {
75
  $path = ltrim($path, '\\/');
76
  $fullPath = $this->getMediaBaseDirectory() . DS . $path;
77
-
78
  if (!file_exists($fullPath) || !is_file($fullPath)) {
79
- Mage::throwException(Mage::helper('core')->__('File %s does not exist', $fullPath));
80
  }
81
  if (!is_readable($fullPath)) {
82
- Mage::throwException(Mage::helper('core')->__('File %s is not readable', $fullPath));
83
  }
84
 
85
  $path = str_replace(array('/', '\\'), '/', $path);
74
  {
75
  $path = ltrim($path, '\\/');
76
  $fullPath = $this->getMediaBaseDirectory() . DS . $path;
77
+ $io = new Varien_Io_File();
78
  if (!file_exists($fullPath) || !is_file($fullPath)) {
79
+ Mage::throwException(Mage::helper('core')->__('File %s does not exist', $io->getFilteredPath($fullPath)));
80
  }
81
  if (!is_readable($fullPath)) {
82
+ Mage::throwException(Mage::helper('core')->__('File %s is not readable', $io->getFilteredPath($fullPath)));
83
  }
84
 
85
  $path = str_replace(array('/', '\\'), '/', $path);
app/code/core/Mage/Core/Model/File/Validator/AvailablePath.php CHANGED
@@ -92,7 +92,7 @@ class Mage_Core_Model_File_Validator_AvailablePath extends Zend_Validate_Abstrac
92
  /**
93
  * Initialize message templates with translating
94
  *
95
- * @return Mage_Adminhtml_Model_Core_File_Validator_SavePath_Available
96
  */
97
  protected function _initMessageTemplates()
98
  {
@@ -114,7 +114,7 @@ class Mage_Core_Model_File_Validator_AvailablePath extends Zend_Validate_Abstrac
114
  *
115
  * @param array $paths All paths masks types.
116
  * E.g.: array('available' => array(...), 'protected' => array(...))
117
- * @return Mage_Adminhtml_Model_Core_File_Validator_SavePath_Available
118
  */
119
  public function setPaths(array $paths)
120
  {
@@ -131,7 +131,7 @@ class Mage_Core_Model_File_Validator_AvailablePath extends Zend_Validate_Abstrac
131
  * Set protected paths masks
132
  *
133
  * @param array $paths
134
- * @return Mage_Adminhtml_Model_Core_File_Validator_SavePath_Available
135
  */
136
  public function setProtectedPaths(array $paths)
137
  {
@@ -143,7 +143,7 @@ class Mage_Core_Model_File_Validator_AvailablePath extends Zend_Validate_Abstrac
143
  * Add protected paths masks
144
  *
145
  * @param string|array $path
146
- * @return Mage_Adminhtml_Model_Core_File_Validator_SavePath_Available
147
  */
148
  public function addProtectedPath($path)
149
  {
@@ -169,7 +169,7 @@ class Mage_Core_Model_File_Validator_AvailablePath extends Zend_Validate_Abstrac
169
  * Set available paths masks
170
  *
171
  * @param array $paths
172
- * @return Mage_Adminhtml_Model_Core_File_Validator_SavePath_Available
173
  */
174
  public function setAvailablePaths(array $paths)
175
  {
@@ -181,7 +181,7 @@ class Mage_Core_Model_File_Validator_AvailablePath extends Zend_Validate_Abstrac
181
  * Add available paths mask
182
  *
183
  * @param string|array $path
184
- * @return Mage_Adminhtml_Model_Core_File_Validator_SavePath_Available
185
  */
186
  public function addAvailablePath($path)
187
  {
92
  /**
93
  * Initialize message templates with translating
94
  *
95
+ * @return Mage_Core_Model_File_Validator_AvailablePath
96
  */
97
  protected function _initMessageTemplates()
98
  {
114
  *
115
  * @param array $paths All paths masks types.
116
  * E.g.: array('available' => array(...), 'protected' => array(...))
117
+ * @return Mage_Core_Model_File_Validator_AvailablePath
118
  */
119
  public function setPaths(array $paths)
120
  {
131
  * Set protected paths masks
132
  *
133
  * @param array $paths
134
+ * @return Mage_Core_Model_File_Validator_AvailablePath
135
  */
136
  public function setProtectedPaths(array $paths)
137
  {
143
  * Add protected paths masks
144
  *
145
  * @param string|array $path
146
+ * @return Mage_Core_Model_File_Validator_AvailablePath
147
  */
148
  public function addProtectedPath($path)
149
  {
169
  * Set available paths masks
170
  *
171
  * @param array $paths
172
+ * @return Mage_Core_Model_File_Validator_AvailablePath
173
  */
174
  public function setAvailablePaths(array $paths)
175
  {
181
  * Add available paths mask
182
  *
183
  * @param string|array $path
184
+ * @return Mage_Core_Model_File_Validator_AvailablePath
185
  */
186
  public function addAvailablePath($path)
187
  {
app/code/core/Mage/Core/Model/Input/Filter/MaliciousCode.php CHANGED
@@ -65,7 +65,13 @@ class Mage_Core_Model_Input_Filter_MaliciousCode implements Zend_Filter_Interfac
65
  */
66
  public function filter($value)
67
  {
68
- return preg_replace($this->_expressions, '', $value);
 
 
 
 
 
 
69
  }
70
 
71
  /**
65
  */
66
  public function filter($value)
67
  {
68
+ $result = false;
69
+ do {
70
+ $subject = $result ? $result : $value;
71
+ $result = preg_replace($this->_expressions, '', $subject, -1, $count);
72
+ } while ($count !== 0);
73
+
74
+ return $result;
75
  }
76
 
77
  /**
app/code/core/Mage/Core/Model/Layout.php CHANGED
@@ -552,7 +552,7 @@ class Mage_Core_Model_Layout extends Varien_Simplexml_Config
552
  $out = '';
553
  if (!empty($this->_output)) {
554
  foreach ($this->_output as $callback) {
555
- $out .= $this->getBlock($callback[0])->$callback[1]();
556
  }
557
  }
558
 
552
  $out = '';
553
  if (!empty($this->_output)) {
554
  foreach ($this->_output as $callback) {
555
+ $out .= $this->getBlock($callback[0])->{$callback[1]}();
556
  }
557
  }
558
 
app/code/core/Mage/Core/Model/Resource/Url/Rewrite.php CHANGED
@@ -134,12 +134,12 @@ class Mage_Core_Model_Resource_Url_Rewrite extends Mage_Core_Model_Resource_Db_A
134
  public function loadByRequestPath(Mage_Core_Model_Url_Rewrite $object, $path)
135
  {
136
  if (!is_array($path)) {
137
- $path = array($path);
138
  }
139
 
140
  $pathBind = array();
141
  foreach ($path as $key => $url) {
142
- $pathBind['path' . $key] = $url;
143
  }
144
  // Form select
145
  $adapter = $this->_getReadAdapter();
@@ -151,7 +151,7 @@ class Mage_Core_Model_Resource_Url_Rewrite extends Mage_Core_Model_Resource_Db_A
151
  $items = $adapter->fetchAll($select, $pathBind);
152
 
153
  // Go through all found records and choose one with lowest penalty - earlier path in array, concrete store
154
- $mapPenalty = array_flip(array_values($path)); // we got mapping array(path => index), lower index - better
155
  $currentPenalty = null;
156
  $foundItem = null;
157
  foreach ($items as $item) {
134
  public function loadByRequestPath(Mage_Core_Model_Url_Rewrite $object, $path)
135
  {
136
  if (!is_array($path)) {
137
+ $path = array(strtolower($path));
138
  }
139
 
140
  $pathBind = array();
141
  foreach ($path as $key => $url) {
142
+ $pathBind['path' . $key] = strtolower($url);
143
  }
144
  // Form select
145
  $adapter = $this->_getReadAdapter();
151
  $items = $adapter->fetchAll($select, $pathBind);
152
 
153
  // Go through all found records and choose one with lowest penalty - earlier path in array, concrete store
154
+ $mapPenalty = array_change_key_case(array_flip(array_values($path))); // we got mapping array(path => index), lower index - better
155
  $currentPenalty = null;
156
  $foundItem = null;
157
  foreach ($items as $item) {
app/code/core/Mage/Core/Model/Resource/Variable/Collection.php CHANGED
@@ -84,7 +84,7 @@ class Mage_Core_Model_Resource_Variable_Collection extends Mage_Core_Model_Resou
84
  ->join(
85
  array('value_table' => $this->getTable('core/variable_value')),
86
  'value_table.variable_id = main_table.variable_id',
87
- array('value_table.value'));
88
  $this->addFieldToFilter('value_table.store_id', array('eq' => $this->getStoreId()));
89
  return $this;
90
  }
84
  ->join(
85
  array('value_table' => $this->getTable('core/variable_value')),
86
  'value_table.variable_id = main_table.variable_id',
87
+ array('value_table.plain_value', 'value_table.html_value'));
88
  $this->addFieldToFilter('value_table.store_id', array('eq' => $this->getStoreId()));
89
  return $this;
90
  }
app/code/core/Mage/Core/Model/Session/Abstract/Varien.php CHANGED
@@ -32,6 +32,7 @@ class Mage_Core_Model_Session_Abstract_Varien extends Varien_Object
32
  const VALIDATOR_HTTP_X_FORVARDED_FOR_KEY = 'http_x_forwarded_for';
33
  const VALIDATOR_HTTP_VIA_KEY = 'http_via';
34
  const VALIDATOR_REMOTE_ADDR_KEY = 'remote_addr';
 
35
  const SECURE_COOKIE_CHECK_KEY = '_secure_cookie_check';
36
 
37
  /**
@@ -377,6 +378,16 @@ class Mage_Core_Model_Session_Abstract_Varien extends Varien_Object
377
  return true;
378
  }
379
 
 
 
 
 
 
 
 
 
 
 
380
  /**
381
  * Retrieve skip User Agent validation strings (Flash etc)
382
  *
@@ -446,6 +457,14 @@ class Mage_Core_Model_Session_Abstract_Varien extends Varien_Object
446
  return false;
447
  }
448
 
 
 
 
 
 
 
 
 
449
  return true;
450
  }
451
 
@@ -479,6 +498,8 @@ class Mage_Core_Model_Session_Abstract_Varien extends Varien_Object
479
  $parts[self::VALIDATOR_HTTP_USER_AGENT_KEY] = (string)$_SERVER['HTTP_USER_AGENT'];
480
  }
481
 
 
 
482
  return $parts;
483
  }
484
 
32
  const VALIDATOR_HTTP_X_FORVARDED_FOR_KEY = 'http_x_forwarded_for';
33
  const VALIDATOR_HTTP_VIA_KEY = 'http_via';
34
  const VALIDATOR_REMOTE_ADDR_KEY = 'remote_addr';
35
+ const VALIDATOR_SESSION_EXPIRE_TIMESTAMP = 'session_expire_timestamp';
36
  const SECURE_COOKIE_CHECK_KEY = '_secure_cookie_check';
37
 
38
  /**
378
  return true;
379
  }
380
 
381
+ /**
382
+ * Use session expire timestamp in validator key
383
+ *
384
+ * @return bool
385
+ */
386
+ public function useValidateSessionExpire()
387
+ {
388
+ return true;
389
+ }
390
+
391
  /**
392
  * Retrieve skip User Agent validation strings (Flash etc)
393
  *
457
  return false;
458
  }
459
 
460
+ if ($this->useValidateSessionExpire()
461
+ && $sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] < time() ) {
462
+ return false;
463
+ } else {
464
+ $this->_data[self::VALIDATOR_KEY][self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP]
465
+ = $validatorData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP];
466
+ }
467
+
468
  return true;
469
  }
470
 
498
  $parts[self::VALIDATOR_HTTP_USER_AGENT_KEY] = (string)$_SERVER['HTTP_USER_AGENT'];
499
  }
500
 
501
+ $parts[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] = time() + $this->getCookie()->getLifetime();
502
+
503
  return $parts;
504
  }
505
 
app/code/core/Mage/Core/etc/config.xml CHANGED
@@ -456,6 +456,14 @@
456
  <public_files_valid_paths>
457
  <protected>
458
  <app>/app/*/*</app>
 
 
 
 
 
 
 
 
459
  </protected>
460
  </public_files_valid_paths>
461
  </file>
456
  <public_files_valid_paths>
457
  <protected>
458
  <app>/app/*/*</app>
459
+ <dev>/dev/*/*</dev>
460
+ <downloader>/downloader/*/*</downloader>
461
+ <errors>/errors/*/*</errors>
462
+ <includes>/includes/*/*</includes>
463
+ <js>/js/*/*</js>
464
+ <lib>/lib/*/*</lib>
465
+ <shell>/shell/*/*</shell>
466
+ <skin>/skin/*/*</skin>
467
  </protected>
468
  </public_files_valid_paths>
469
  </file>
app/code/core/Mage/Core/etc/jstranslator.xml CHANGED
@@ -82,7 +82,7 @@
82
  <message>Please use only visible characters and spaces.</message>
83
  </validate-email-sender>
84
  <validate-password translate="message" module="core">
85
- <message>Please enter 6 or more characters. Leading or trailing spaces will be ignored.</message>
86
  </validate-password>
87
  <validate-admin-password translate="message" module="core">
88
  <message>Please enter 7 or more characters. Password should contain both numeric and alphabetic characters.</message>
@@ -130,7 +130,7 @@
130
  <message>Please select State/Province.</message>
131
  </validate-state>
132
  <validate-new-password translate="message" module="core">
133
- <message>Please enter 6 or more characters. Leading or trailing spaces will be ignored.</message>
134
  </validate-new-password>
135
  <validate-greater-than-zero translate="message" module="core">
136
  <message>Please enter a number greater than 0 in this field.</message>
82
  <message>Please use only visible characters and spaces.</message>
83
  </validate-email-sender>
84
  <validate-password translate="message" module="core">
85
+ <message>Please enter 6 or more characters without leading or trailing spaces.</message>
86
  </validate-password>
87
  <validate-admin-password translate="message" module="core">
88
  <message>Please enter 7 or more characters. Password should contain both numeric and alphabetic characters.</message>
130
  <message>Please select State/Province.</message>
131
  </validate-state>
132
  <validate-new-password translate="message" module="core">
133
+ <message>Please enter 6 or more characters without leading or trailing spaces.</message>
134
  </validate-new-password>
135
  <validate-greater-than-zero translate="message" module="core">
136
  <message>Please enter a number greater than 0 in this field.</message>
app/code/core/Mage/Core/etc/system.xml CHANGED
@@ -1068,7 +1068,7 @@
1068
  <show_in_store>0</show_in_store>
1069
  </forgot_email_identity>
1070
  <password_reset_link_expiration_period translate="label comment">
1071
- <label>Recovery Link Expiration Period (days)</label>
1072
  <comment>Please enter a number 1 or greater in this field.</comment>
1073
  <frontend_type>text</frontend_type>
1074
  <validate>required-entry validate-digits validate-digits-range digits-range-1-</validate>
1068
  <show_in_store>0</show_in_store>
1069
  </forgot_email_identity>
1070
  <password_reset_link_expiration_period translate="label comment">
1071
+ <label>Recovery Link Expiration Period (hours)</label>
1072
  <comment>Please enter a number 1 or greater in this field.</comment>
1073
  <frontend_type>text</frontend_type>
1074
  <validate>required-entry validate-digits validate-digits-range digits-range-1-</validate>
app/code/core/Mage/Core/functions.php CHANGED
@@ -375,3 +375,38 @@ if ( !function_exists('sys_get_temp_dir') ) {
375
  }
376
  }
377
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
375
  }
376
  }
377
  }
378
+
379
+ if (!function_exists('hash_equals')) {
380
+ /**
381
+ * Compares two strings using the same time whether they're equal or not.
382
+ * A difference in length will leak
383
+ *
384
+ * @param string $known_string
385
+ * @param string $user_string
386
+ * @return boolean Returns true when the two strings are equal, false otherwise.
387
+ */
388
+ function hash_equals($known_string, $user_string)
389
+ {
390
+ $result = 0;
391
+
392
+ if (!is_string($known_string)) {
393
+ trigger_error("hash_equals(): Expected known_string to be a string", E_USER_WARNING);
394
+ return false;
395
+ }
396
+
397
+ if (!is_string($user_string)) {
398
+ trigger_error("hash_equals(): Expected user_string to be a string", E_USER_WARNING);
399
+ return false;
400
+ }
401
+
402
+ if (strlen($known_string) != strlen($user_string)) {
403
+ return false;
404
+ }
405
+
406
+ for ($i = 0; $i < strlen($known_string); $i++) {
407
+ $result |= (ord($known_string[$i]) ^ ord($user_string[$i]));
408
+ }
409
+
410
+ return 0 === $result;
411
+ }
412
+ }
app/code/core/Mage/Cron/Model/Schedule.php CHANGED
@@ -215,6 +215,10 @@ class Mage_Cron_Model_Schedule extends Mage_Core_Model_Abstract
215
  */
216
  public function tryLockJob($oldStatus = self::STATUS_PENDING)
217
  {
218
- return $this->_getResource()->trySetJobStatusAtomic($this->getId(), self::STATUS_RUNNING, $oldStatus);
 
 
 
 
219
  }
220
  }
215
  */
216
  public function tryLockJob($oldStatus = self::STATUS_PENDING)
217
  {
218
+ $result = $this->_getResource()->trySetJobStatusAtomic($this->getId(), self::STATUS_RUNNING, $oldStatus);
219
+ if ($result) {
220
+ $this->setStatus(self::STATUS_RUNNING);
221
+ }
222
+ return $result;
223
  }
224
  }
app/code/core/Mage/Customer/Block/Address/Book.php CHANGED
@@ -56,7 +56,8 @@ class Mage_Customer_Block_Address_Book extends Mage_Core_Block_Template
56
 
57
  public function getDeleteUrl()
58
  {
59
- return $this->getUrl('customer/address/delete');
 
60
  }
61
 
62
  public function getAddressEditUrl($address)
56
 
57
  public function getDeleteUrl()
58
  {
59
+ return $this->getUrl('customer/address/delete',
60
+ array(Mage_Core_Model_Url::FORM_KEY => Mage::getSingleton('core/session')->getFormKey()));
61
  }
62
 
63
  public function getAddressEditUrl($address)
app/code/core/Mage/Customer/Helper/Data.php CHANGED
@@ -85,6 +85,13 @@ class Mage_Customer_Helper_Data extends Mage_Core_Helper_Abstract
85
  const XML_PATH_CUSTOMER_REQUIRE_ADMIN_USER_TO_CHANGE_USER_PASSWORD
86
  = 'customer/password/require_admin_user_to_change_user_password';
87
 
 
 
 
 
 
 
 
88
  /**
89
  * VAT class constants
90
  */
@@ -483,6 +490,36 @@ class Mage_Customer_Helper_Data extends Mage_Core_Helper_Abstract
483
  return (int)Mage::getStoreConfig(Mage_Customer_Model_Group::XML_PATH_DEFAULT_ID, $store);
484
  }
485
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
486
  /**
487
  * Retrieve customer group ID based on his VAT number
488
  *
85
  const XML_PATH_CUSTOMER_REQUIRE_ADMIN_USER_TO_CHANGE_USER_PASSWORD
86
  = 'customer/password/require_admin_user_to_change_user_password';
87
 
88
+ /**
89
+ * Configuration path to password forgotten flow change
90
+ */
91
+ const XML_PATH_CUSTOMER_FORGOT_PASSWORD_FLOW_SECURE = 'admin/security/forgot_password_flow_secure';
92
+ const XML_PATH_CUSTOMER_FORGOT_PASSWORD_EMAIL_TIMES = 'admin/security/forgot_password_email_times';
93
+ const XML_PATH_CUSTOMER_FORGOT_PASSWORD_IP_TIMES = 'admin/security/forgot_password_ip_times';
94
+
95
  /**
96
  * VAT class constants
97
  */
490
  return (int)Mage::getStoreConfig(Mage_Customer_Model_Group::XML_PATH_DEFAULT_ID, $store);
491
  }
492
 
493
+ /**
494
+ * Retrieve forgot password flow secure type
495
+ *
496
+ * @return int
497
+ */
498
+ public function getCustomerForgotPasswordFlowSecure()
499
+ {
500
+ return (int)Mage::getStoreConfig(self::XML_PATH_CUSTOMER_FORGOT_PASSWORD_FLOW_SECURE);
501
+ }
502
+
503
+ /**
504
+ * Retrieve forgot password requests to times per 24 hours from 1 e-mail
505
+ *
506
+ * @return int
507
+ */
508
+ public function getCustomerForgotPasswordEmailTimes()
509
+ {
510
+ return (int)Mage::getStoreConfig(self::XML_PATH_CUSTOMER_FORGOT_PASSWORD_EMAIL_TIMES);
511
+ }
512
+
513
+ /**
514
+ * Retrieve forgot password requests to times per hour from 1 IP
515
+ *
516
+ * @return int
517
+ */
518
+ public function getCustomerForgotPasswordIpTimes()
519
+ {
520
+ return (int)Mage::getStoreConfig(self::XML_PATH_CUSTOMER_FORGOT_PASSWORD_IP_TIMES);
521
+ }
522
+
523
  /**
524
  * Retrieve customer group ID based on his VAT number
525
  *
app/code/core/Mage/Customer/Model/Customer.php CHANGED
@@ -46,6 +46,8 @@ class Mage_Customer_Model_Customer extends Mage_Core_Model_Abstract
46
  const XML_PATH_CONFIRM_EMAIL_TEMPLATE = 'customer/create_account/email_confirmation_template';
47
  const XML_PATH_CONFIRMED_EMAIL_TEMPLATE = 'customer/create_account/email_confirmed_template';
48
  const XML_PATH_GENERATE_HUMAN_FRIENDLY_ID = 'customer/create_account/generate_human_friendly_id';
 
 
49
  /**#@-*/
50
 
51
  /**#@+
@@ -66,6 +68,11 @@ class Mage_Customer_Model_Customer extends Mage_Core_Model_Abstract
66
 
67
  const CACHE_TAG = 'customer';
68
 
 
 
 
 
 
69
  /**
70
  * Model event prefix
71
  *
@@ -385,7 +392,7 @@ class Mage_Customer_Model_Customer extends Mage_Core_Model_Abstract
385
  public function hashPassword($password, $salt = null)
386
  {
387
  return $this->_getHelper('core')
388
- ->getHash($password, !is_null($salt) ? $salt : Mage_Admin_Model_User::HASH_SALT_LENGTH);
389
  }
390
 
391
  /**
@@ -585,10 +592,11 @@ class Mage_Customer_Model_Customer extends Mage_Core_Model_Abstract
585
  * @param string $type
586
  * @param string $backUrl
587
  * @param string $storeId
 
588
  * @throws Mage_Core_Exception
589
  * @return Mage_Customer_Model_Customer
590
  */
591
- public function sendNewAccountEmail($type = 'registered', $backUrl = '', $storeId = '0')
592
  {
593
  $types = array(
594
  'registered' => self::XML_PATH_REGISTER_EMAIL_TEMPLATE, // welcome email, when confirmation is disabled
@@ -603,8 +611,10 @@ class Mage_Customer_Model_Customer extends Mage_Core_Model_Abstract
603
  $storeId = $this->_getWebsiteStoreId($this->getSendemailStoreId());
604
  }
605
 
 
606
  $this->_sendEmailTemplate($types[$type], self::XML_PATH_REGISTER_EMAIL_IDENTITY,
607
  array('customer' => $this, 'back_url' => $backUrl), $storeId);
 
608
 
609
  return $this;
610
  }
@@ -655,6 +665,25 @@ class Mage_Customer_Model_Customer extends Mage_Core_Model_Abstract
655
  return $this;
656
  }
657
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
658
  /**
659
  * Send corresponding email template
660
  *
@@ -662,14 +691,16 @@ class Mage_Customer_Model_Customer extends Mage_Core_Model_Abstract
662
  * @param string $emailSender configuration path of email identity
663
  * @param array $templateParams
664
  * @param int|null $storeId
 
665
  * @return Mage_Customer_Model_Customer
666
  */
667
- protected function _sendEmailTemplate($template, $sender, $templateParams = array(), $storeId = null)
668
  {
 
669
  /** @var $mailer Mage_Core_Model_Email_Template_Mailer */
670
  $mailer = Mage::getModel('core/email_template_mailer');
671
  $emailInfo = Mage::getModel('core/email_info');
672
- $emailInfo->addTo($this->getEmail(), $this->getName());
673
  $mailer->addEmailInfo($emailInfo);
674
 
675
  // Set all required params and send emails
@@ -838,8 +869,9 @@ class Mage_Customer_Model_Customer extends Mage_Core_Model_Abstract
838
  if (!$this->getId() && !Zend_Validate::is($password , 'NotEmpty')) {
839
  $errors[] = Mage::helper('customer')->__('The password cannot be empty.');
840
  }
841
- if (strlen($password) && !Zend_Validate::is($password, 'StringLength', array(6))) {
842
- $errors[] = Mage::helper('customer')->__('The minimum password length is %s', 6);
 
843
  }
844
  $confirmation = $this->getPasswordConfirmation();
845
  if ($password != $confirmation) {
@@ -866,6 +898,32 @@ class Mage_Customer_Model_Customer extends Mage_Core_Model_Abstract
866
  return $errors;
867
  }
868
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
869
  /**
870
  * Import customer data from text array
871
  *
@@ -1339,8 +1397,8 @@ class Mage_Customer_Model_Customer extends Mage_Core_Model_Abstract
1339
  return true;
1340
  }
1341
 
1342
- $dayDifference = floor(($currentTimestamp - $tokenTimestamp) / (24 * 60 * 60));
1343
- if ($dayDifference >= $tokenExpirationPeriod) {
1344
  return true;
1345
  }
1346
 
46
  const XML_PATH_CONFIRM_EMAIL_TEMPLATE = 'customer/create_account/email_confirmation_template';
47
  const XML_PATH_CONFIRMED_EMAIL_TEMPLATE = 'customer/create_account/email_confirmed_template';
48
  const XML_PATH_GENERATE_HUMAN_FRIENDLY_ID = 'customer/create_account/generate_human_friendly_id';
49
+ const XML_PATH_CHANGED_PASSWORD_OR_EMAIL_TEMPLATE = 'customer/changed_account/password_or_email_template';
50
+ const XML_PATH_CHANGED_PASSWORD_OR_EMAIL_IDENTITY = 'customer/changed_account/password_or_email_identity';
51
  /**#@-*/
52
 
53
  /**#@+
68
 
69
  const CACHE_TAG = 'customer';
70
 
71
+ /**
72
+ * Minimum Password Length
73
+ */
74
+ const MINIMUM_PASSWORD_LENGTH = 6;
75
+
76
  /**
77
  * Model event prefix
78
  *
392
  public function hashPassword($password, $salt = null)
393
  {
394
  return $this->_getHelper('core')
395
+ ->getHash(trim($password), !is_null($salt) ? $salt : Mage_Admin_Model_User::HASH_SALT_LENGTH);
396
  }
397
 
398
  /**
592
  * @param string $type
593
  * @param string $backUrl
594
  * @param string $storeId
595
+ * @param string $password
596
  * @throws Mage_Core_Exception
597
  * @return Mage_Customer_Model_Customer
598
  */
599
+ public function sendNewAccountEmail($type = 'registered', $backUrl = '', $storeId = '0', $password = '')
600
  {
601
  $types = array(
602
  'registered' => self::XML_PATH_REGISTER_EMAIL_TEMPLATE, // welcome email, when confirmation is disabled
611
  $storeId = $this->_getWebsiteStoreId($this->getSendemailStoreId());
612
  }
613
 
614
+ $this->setPassword($password);
615
  $this->_sendEmailTemplate($types[$type], self::XML_PATH_REGISTER_EMAIL_IDENTITY,
616
  array('customer' => $this, 'back_url' => $backUrl), $storeId);
617
+ $this->cleanPasswordsValidationData();
618
 
619
  return $this;
620
  }
665
  return $this;
666
  }
667
 
668
+ /**
669
+ * Send info email about changed password or email
670
+ *
671
+ * @return Mage_Customer_Model_Customer
672
+ */
673
+ public function sendChangedPasswordOrEmail()
674
+ {
675
+ $storeId = $this->getStoreId();
676
+ if (!$storeId) {
677
+ $storeId = $this->_getWebsiteStoreId();
678
+ }
679
+
680
+ $this->_sendEmailTemplate(self::XML_PATH_CHANGED_PASSWORD_OR_EMAIL_TEMPLATE,
681
+ self::XML_PATH_CHANGED_PASSWORD_OR_EMAIL_IDENTITY,
682
+ array('customer' => $this), $storeId, $this->getOldEmail());
683
+
684
+ return $this;
685
+ }
686
+
687
  /**
688
  * Send corresponding email template
689
  *
691
  * @param string $emailSender configuration path of email identity
692
  * @param array $templateParams
693
  * @param int|null $storeId
694
+ * @param string|null $customerEmail
695
  * @return Mage_Customer_Model_Customer
696
  */
697
+ protected function _sendEmailTemplate($template, $sender, $templateParams = array(), $storeId = null, $customerEmail = null)
698
  {
699
+ $customerEmail = ($customerEmail) ? $customerEmail : $this->getEmail();
700
  /** @var $mailer Mage_Core_Model_Email_Template_Mailer */
701
  $mailer = Mage::getModel('core/email_template_mailer');
702
  $emailInfo = Mage::getModel('core/email_info');
703
+ $emailInfo->addTo($customerEmail, $this->getName());
704
  $mailer->addEmailInfo($emailInfo);
705
 
706
  // Set all required params and send emails
869
  if (!$this->getId() && !Zend_Validate::is($password , 'NotEmpty')) {
870
  $errors[] = Mage::helper('customer')->__('The password cannot be empty.');
871
  }
872
+ if (strlen($password) && !Zend_Validate::is($password, 'StringLength', array(self::MINIMUM_PASSWORD_LENGTH))) {
873
+ $errors[] = Mage::helper('customer')
874
+ ->__('The minimum password length is %s', self::MINIMUM_PASSWORD_LENGTH);
875
  }
876
  $confirmation = $this->getPasswordConfirmation();
877
  if ($password != $confirmation) {
898
  return $errors;
899
  }
900
 
901
+ /**
902
+ * Validate customer attribute values on password reset
903
+ * @return bool
904
+ */
905
+ public function validateResetPassword()
906
+ {
907
+ $errors = array();
908
+ $password = $this->getPassword();
909
+ if (!Zend_Validate::is($password, 'NotEmpty')) {
910
+ $errors[] = Mage::helper('customer')->__('The password cannot be empty.');
911
+ }
912
+ if (!Zend_Validate::is($password, 'StringLength', array(self::MINIMUM_PASSWORD_LENGTH))) {
913
+ $errors[] = Mage::helper('customer')
914
+ ->__('The minimum password length is %s', self::MINIMUM_PASSWORD_LENGTH);
915
+ }
916
+ $confirmation = $this->getPasswordConfirmation();
917
+ if ($password != $confirmation) {
918
+ $errors[] = Mage::helper('customer')->__('Please make sure your passwords match.');
919
+ }
920
+
921
+ if (empty($errors)) {
922
+ return true;
923
+ }
924
+ return $errors;
925
+ }
926
+
927
  /**
928
  * Import customer data from text array
929
  *
1397
  return true;
1398
  }
1399
 
1400
+ $hoursDifference = floor(($currentTimestamp - $tokenTimestamp) / (60 * 60));
1401
+ if ($hoursDifference >= $tokenExpirationPeriod) {
1402
  return true;
1403
  }
1404
 
app/code/core/Mage/Customer/Model/Flowpassword.php ADDED
@@ -0,0 +1,121 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Customer
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+
28
+ /**
29
+ * Customer flow password info Model
30
+ *
31
+ * @category Mage
32
+ * @package Mage_Customer
33
+ * @author Magento Core Team <core@magentocommerce.com>
34
+ */
35
+ class Mage_Customer_Model_Flowpassword extends Mage_Core_Model_Abstract
36
+ {
37
+ protected function _construct()
38
+ {
39
+ $this->_init('customer/flowpassword');
40
+ }
41
+
42
+ /**
43
+ * Prepare data before save
44
+ *
45
+ * @return Mage_Core_Model_Abstract
46
+ */
47
+ protected function _beforeSave()
48
+ {
49
+ $this->_prepareData();
50
+ return parent::_beforeSave();
51
+ }
52
+
53
+ /**
54
+ * Prepare customer flow password data
55
+ *
56
+ * @return Mage_Customer_Model_Flowpassword
57
+ */
58
+ protected function _prepareData()
59
+ {
60
+ $validatorData = Mage::getSingleton('customer/session')->getValidatorData();
61
+ $this->setIp($validatorData[Mage_Customer_Model_Session::VALIDATOR_REMOTE_ADDR_KEY])
62
+ ->setRequestedDate(Mage::getModel('core/date')->date());
63
+ return $this;
64
+ }
65
+
66
+ /**
67
+ * Check forgot password requests to times per 24 hours from 1 e-mail
68
+ *
69
+ * @param string $email
70
+ * @return bool
71
+ */
72
+ public function checkCustomerForgotPasswordFlowEmail($email)
73
+ {
74
+ $helper = Mage::helper('customer');
75
+ $checkForgotPasswordFlowTypes = array(
76
+ Mage_Adminhtml_Model_System_Config_Source_Customer_Forgotpassword::FORGOTPASS_FLOW_IP_EMAIL,
77
+ Mage_Adminhtml_Model_System_Config_Source_Customer_Forgotpassword::FORGOTPASS_FLOW_EMAIL
78
+ );
79
+
80
+ if (in_array($helper->getCustomerForgotPasswordFlowSecure(), $checkForgotPasswordFlowTypes)) {
81
+ $forgotPassword = $this->getCollection()
82
+ ->addFieldToFilter('email', array('eq' => $email))
83
+ ->addFieldToFilter('requested_date',
84
+ array('gt' => Mage::getModel('core/date')->date(null, '-1 day')));
85
+
86
+ if ($forgotPassword->getSize() > $helper->getCustomerForgotPasswordEmailTimes()) {
87
+ return false;
88
+ }
89
+ }
90
+ return true;
91
+ }
92
+
93
+ /**
94
+ * Check forgot password requests to times per hour from 1 IP
95
+ *
96
+ * @return bool
97
+ */
98
+ public function checkCustomerForgotPasswordFlowIp()
99
+ {
100
+ $helper = Mage::helper('customer');
101
+ $validatorData = Mage::getSingleton('customer/session')->getValidatorData();
102
+ $remoteAddr = $validatorData[Mage_Customer_Model_Session::VALIDATOR_REMOTE_ADDR_KEY];
103
+ $checkForgotPasswordFlowTypes = array(
104
+ Mage_Adminhtml_Model_System_Config_Source_Customer_Forgotpassword::FORGOTPASS_FLOW_IP_EMAIL,
105
+ Mage_Adminhtml_Model_System_Config_Source_Customer_Forgotpassword::FORGOTPASS_FLOW_IP
106
+ );
107
+
108
+ if (in_array($helper->getCustomerForgotPasswordFlowSecure(), $checkForgotPasswordFlowTypes) && $remoteAddr) {
109
+ $forgotPassword = $this->getCollection()
110
+ ->addFieldToFilter('ip', array('eq' => $remoteAddr))
111
+ ->addFieldToFilter('requested_date',
112
+ array('gt' => Mage::getModel('core/date')->date(null, '-1 hour')));
113
+
114
+ if ($forgotPassword->getSize() > $helper->getCustomerForgotPasswordIpTimes()) {
115
+ return false;
116
+ }
117
+ }
118
+ return true;
119
+ }
120
+ }
121
+
app/code/core/Mage/Customer/Model/Observer.php CHANGED
@@ -141,7 +141,8 @@ class Mage_Customer_Model_Observer
141
  $customerAddress = $observer->getCustomerAddress();
142
  $customer = $customerAddress->getCustomer();
143
 
144
- if (!Mage::helper('customer/address')->isVatValidationEnabled($customer->getStore())
 
145
  || Mage::registry(self::VIV_PROCESSED_FLAG)
146
  || !$this->_canProcessAddress($customerAddress)
147
  ) {
@@ -218,4 +219,15 @@ class Mage_Customer_Model_Observer
218
  );
219
  $customer->save();
220
  }
 
 
 
 
 
 
 
 
 
 
 
221
  }
141
  $customerAddress = $observer->getCustomerAddress();
142
  $customer = $customerAddress->getCustomer();
143
 
144
+ $store = Mage::app()->getStore()->isAdmin() ? $customer->getStore() : null;
145
+ if (!Mage::helper('customer/address')->isVatValidationEnabled($store)
146
  || Mage::registry(self::VIV_PROCESSED_FLAG)
147
  || !$this->_canProcessAddress($customerAddress)
148
  ) {
219
  );
220
  $customer->save();
221
  }
222
+
223
+ /**
224
+ * Clear customer flow password table
225
+ *
226
+ */
227
+ public function deleteCustomerFlowPassword()
228
+ {
229
+ $connection = Mage::getSingleton('core/resource')->getConnection('write');
230
+ $condition = array('requested_date < ?' => Mage::getModel('core/date')->date(null, '-1 day'));
231
+ $connection->delete($connection->getTableName('customer_flowpassword'), $condition);
232
+ }
233
  }
app/code/core/Mage/Customer/Model/Resource/Flowpassword.php ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Customer
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+
28
+ /**
29
+ * Customer flow password info resource model
30
+ *
31
+ * @category Mage
32
+ * @package Mage_Customer
33
+ * @author Magento Core Team <core@magentocommerce.com>
34
+ */
35
+ class Mage_Customer_Model_Resource_Flowpassword extends Mage_Core_Model_Resource_Db_Abstract
36
+ {
37
+ /**
38
+ * Resource initialization
39
+ */
40
+ protected function _construct()
41
+ {
42
+ $this->_init('customer/flowpassword', 'flowpassword_id');
43
+ }
44
+ }
app/code/core/Mage/Customer/Model/Resource/Flowpassword/Collection.php ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Customer
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+
28
+ /**
29
+ * Customer flow password info collection
30
+ *
31
+ * @category Mage
32
+ * @package Mage_Customer
33
+ * @author Magento Core Team <core@magentocommerce.com>
34
+ */
35
+ class Mage_Customer_Model_Resource_Flowpassword_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract
36
+ {
37
+ /**
38
+ * Resource initialization
39
+ */
40
+ protected function _construct()
41
+ {
42
+ $this->_init('customer/flowpassword');
43
+ }
44
+ }
app/code/core/Mage/Customer/controllers/AccountController.php CHANGED
@@ -339,7 +339,8 @@ class Mage_Customer_AccountController extends Mage_Core_Controller_Front_Action
339
  $customer->sendNewAccountEmail(
340
  'confirmation',
341
  $session->getBeforeAuthUrl(),
342
- $store->getId()
 
343
  );
344
  $customerHelper = $this->_getHelper('customer');
345
  $session->addSuccess($this->__('Account confirmation is required. Please, check your email for the confirmation link. To resend the confirmation email please <a href="%s">click here</a>.',
@@ -571,7 +572,8 @@ class Mage_Customer_AccountController extends Mage_Core_Controller_Front_Action
571
  $customer->sendNewAccountEmail(
572
  $isJustConfirmed ? 'confirmed' : 'registered',
573
  '',
574
- Mage::app()->getStore()->getId()
 
575
  );
576
 
577
  $successUrl = $this->_getUrl('*/*/index', array('_secure' => true));
@@ -722,6 +724,25 @@ class Mage_Customer_AccountController extends Mage_Core_Controller_Front_Action
722
  {
723
  $email = (string) $this->getRequest()->getPost('email');
724
  if ($email) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
725
  if (!Zend_Validate::is($email, 'EmailAddress')) {
726
  $this->_getSession()->setForgottenEmail($email);
727
  $this->_getSession()->addError($this->__('Invalid email address.'));
@@ -825,7 +846,7 @@ class Mage_Customer_AccountController extends Mage_Core_Controller_Front_Action
825
 
826
  $customer->setPassword($password);
827
  $customer->setPasswordConfirmation($passwordConfirmation);
828
- $validationErrorMessages = $customer->validate();
829
  if (is_array($validationErrorMessages)) {
830
  $errorMessages = array_merge($errorMessages, $validationErrorMessages);
831
  }
@@ -927,7 +948,7 @@ class Mage_Customer_AccountController extends Mage_Core_Controller_Front_Action
927
  if ($this->getRequest()->isPost()) {
928
  /** @var $customer Mage_Customer_Model_Customer */
929
  $customer = $this->_getSession()->getCustomer();
930
-
931
  /** @var $customerForm Mage_Customer_Model_Form */
932
  $customerForm = $this->_getModel('customer/form');
933
  $customerForm->setFormCode('customer_account_edit')
@@ -943,32 +964,30 @@ class Mage_Customer_AccountController extends Mage_Core_Controller_Front_Action
943
  $customerForm->compactData($customerData);
944
  $errors = array();
945
 
 
 
 
 
 
 
 
 
946
  // If password change was requested then add it to common validation scheme
947
- if ($this->getRequest()->getParam('change_password')) {
948
- $currPass = $this->getRequest()->getPost('current_password');
 
949
  $newPass = $this->getRequest()->getPost('password');
950
  $confPass = $this->getRequest()->getPost('confirmation');
951
 
952
- $oldPass = $this->_getSession()->getCustomer()->getPasswordHash();
953
- if ( $this->_getHelper('core/string')->strpos($oldPass, ':')) {
954
- list($_salt, $salt) = explode(':', $oldPass);
955
- } else {
956
- $salt = false;
957
- }
958
-
959
- if ($customer->hashPassword($currPass, $salt) == $oldPass) {
960
- if (strlen($newPass)) {
961
- /**
962
- * Set entered password and its confirmation - they
963
- * will be validated later to match each other and be of right length
964
- */
965
- $customer->setPassword($newPass);
966
- $customer->setPasswordConfirmation($confPass);
967
- } else {
968
- $errors[] = $this->__('New password field cannot be empty.');
969
- }
970
  } else {
971
- $errors[] = $this->__('Invalid current password');
972
  }
973
  }
974
 
@@ -990,10 +1009,21 @@ class Mage_Customer_AccountController extends Mage_Core_Controller_Front_Action
990
 
991
  try {
992
  $customer->cleanPasswordsValidationData();
 
 
 
 
 
 
 
993
  $customer->save();
994
  $this->_getSession()->setCustomer($customer)
995
  ->addSuccess($this->__('The account information has been saved.'));
996
 
 
 
 
 
997
  $this->_redirect('customer/account');
998
  return;
999
  } catch (Mage_Core_Exception $e) {
339
  $customer->sendNewAccountEmail(
340
  'confirmation',
341
  $session->getBeforeAuthUrl(),
342
+ $store->getId(),
343
+ $this->getRequest()->getPost('password')
344
  );
345
  $customerHelper = $this->_getHelper('customer');
346
  $session->addSuccess($this->__('Account confirmation is required. Please, check your email for the confirmation link. To resend the confirmation email please <a href="%s">click here</a>.',
572
  $customer->sendNewAccountEmail(
573
  $isJustConfirmed ? 'confirmed' : 'registered',
574
  '',
575
+ Mage::app()->getStore()->getId(),
576
+ $this->getRequest()->getPost('password')
577
  );
578
 
579
  $successUrl = $this->_getUrl('*/*/index', array('_secure' => true));
724
  {
725
  $email = (string) $this->getRequest()->getPost('email');
726
  if ($email) {
727
+ /**
728
+ * @var $flowPassword Mage_Customer_Model_Flowpassword
729
+ */
730
+ $flowPassword = $this->_getModel('customer/flowpassword');
731
+ $flowPassword->setEmail($email)->save();
732
+
733
+ if (!$flowPassword->checkCustomerForgotPasswordFlowEmail($email)) {
734
+ $this->_getSession()
735
+ ->addError($this->__('You have exceeded requests to times per 24 hours from 1 e-mail.'));
736
+ $this->_redirect('*/*/forgotpassword');
737
+ return;
738
+ }
739
+
740
+ if (!$flowPassword->checkCustomerForgotPasswordFlowIp()) {
741
+ $this->_getSession()->addError($this->__('You have exceeded requests to times per hour from 1 IP.'));
742
+ $this->_redirect('*/*/forgotpassword');
743
+ return;
744
+ }
745
+
746
  if (!Zend_Validate::is($email, 'EmailAddress')) {
747
  $this->_getSession()->setForgottenEmail($email);
748
  $this->_getSession()->addError($this->__('Invalid email address.'));
846
 
847
  $customer->setPassword($password);
848
  $customer->setPasswordConfirmation($passwordConfirmation);
849
+ $validationErrorMessages = $customer->validateResetPassword();
850
  if (is_array($validationErrorMessages)) {
851
  $errorMessages = array_merge($errorMessages, $validationErrorMessages);
852
  }
948
  if ($this->getRequest()->isPost()) {
949
  /** @var $customer Mage_Customer_Model_Customer */
950
  $customer = $this->_getSession()->getCustomer();
951
+ $customer->setOldEmail($customer->getEmail());
952
  /** @var $customerForm Mage_Customer_Model_Form */
953
  $customerForm = $this->_getModel('customer/form');
954
  $customerForm->setFormCode('customer_account_edit')
964
  $customerForm->compactData($customerData);
965
  $errors = array();
966
 
967
+ if (!$customer->validatePassword($this->getRequest()->getPost('current_password'))) {
968
+ $errors[] = $this->__('Invalid current password');
969
+ }
970
+
971
+ // If email change was requested then set flag
972
+ $isChangeEmail = ($customer->getOldEmail() != $customer->getEmail()) ? true : false;
973
+ $customer->setIsChangeEmail($isChangeEmail);
974
+
975
  // If password change was requested then add it to common validation scheme
976
+ $customer->setIsChangePassword($this->getRequest()->getParam('change_password'));
977
+
978
+ if ($customer->getIsChangePassword()) {
979
  $newPass = $this->getRequest()->getPost('password');
980
  $confPass = $this->getRequest()->getPost('confirmation');
981
 
982
+ if (strlen($newPass)) {
983
+ /**
984
+ * Set entered password and its confirmation - they
985
+ * will be validated later to match each other and be of right length
986
+ */
987
+ $customer->setPassword($newPass);
988
+ $customer->setPasswordConfirmation($confPass);
 
 
 
 
 
 
 
 
 
 
 
989
  } else {
990
+ $errors[] = $this->__('New password field cannot be empty.');
991
  }
992
  }
993
 
1009
 
1010
  try {
1011
  $customer->cleanPasswordsValidationData();
1012
+
1013
+ // Reset all password reset tokens if all data was sufficient and correct on email change
1014
+ if ($customer->getIsChangeEmail()) {
1015
+ $customer->setRpToken(null);
1016
+ $customer->setRpTokenCreatedAt(null);
1017
+ }
1018
+
1019
  $customer->save();
1020
  $this->_getSession()->setCustomer($customer)
1021
  ->addSuccess($this->__('The account information has been saved.'));
1022
 
1023
+ if ($customer->getIsChangeEmail() || $customer->getIsChangePassword()) {
1024
+ $customer->sendChangedPasswordOrEmail();
1025
+ }
1026
+
1027
  $this->_redirect('customer/account');
1028
  return;
1029
  } catch (Mage_Core_Exception $e) {
app/code/core/Mage/Customer/controllers/AddressController.php CHANGED
@@ -163,6 +163,9 @@ class Mage_Customer_AddressController extends Mage_Core_Controller_Front_Action
163
 
164
  public function deleteAction()
165
  {
 
 
 
166
  $addressId = $this->getRequest()->getParam('id', false);
167
 
168
  if ($addressId) {
163
 
164
  public function deleteAction()
165
  {
166
+ if (!$this->_validateFormKey()) {
167
+ return $this->_redirect('*/*/');
168
+ }
169
  $addressId = $this->getRequest()->getParam('id', false);
170
 
171
  if ($addressId) {
app/code/core/Mage/Customer/data/customer_setup/data-upgrade-1.6.2.0.4-1.6.2.0.5.php ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Customer
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+ /** @var $installer Mage_Customer_Model_Entity_Setup */
28
+ $installer = $this;
29
+
30
+ $installer->startSetup();
31
+ $connection = $installer->getConnection();
32
+
33
+ $eavConfig = Mage::getSingleton('eav/config');
34
+ $customerEntityTypeId = $eavConfig->getEntityType('customer')->getEntityTypeId();
35
+ $customerAddressEntityTypeId = $eavConfig->getEntityType('customer_address')->getEntityTypeId();
36
+
37
+ $entityTypeIds = array($customerAddressEntityTypeId, $customerEntityTypeId);
38
+
39
+ $attributes = Mage::getResourceModel('eav/entity_attribute_collection')
40
+ ->addFieldToFilter('frontend_input', 'multiselect')
41
+ ->addFieldToFilter('entity_type_id', array('in' => $entityTypeIds))
42
+ ->getItems();
43
+
44
+ foreach ($attributes as $attribute) {
45
+ $entityTypeId = $attribute->getEntityTypeId();
46
+ $attributeId = $attribute->getId();
47
+ $attributeTableOld = $installer->getAttributeTable($entityTypeId, $attributeId);
48
+
49
+ $installer->updateAttribute($entityTypeId, $attributeId, 'backend_type', 'text');
50
+
51
+ $attributeTableNew = $installer->getAttributeTable($entityTypeId, $attributeId);
52
+
53
+ if ($attributeTableOld != $attributeTableNew) {
54
+ $connection->disableTableKeys($attributeTableOld)
55
+ ->disableTableKeys($attributeTableNew);
56
+
57
+ $select = $connection->select()
58
+ ->from($attributeTableOld, array('entity_type_id', 'attribute_id', 'entity_id', 'value'))
59
+ ->where('entity_type_id = ?', $entityTypeId)
60
+ ->where('attribute_id = ?', $attributeId);
61
+
62
+ $query = $select->insertFromSelect($attributeTableNew,
63
+ array('entity_type_id', 'attribute_id', 'entity_id', 'value')
64
+ );
65
+
66
+ $connection->query($query);
67
+
68
+ $connection->delete($attributeTableOld,
69
+ $connection->quoteInto('entity_type_id = ?', $entityTypeId)
70
+ . $connection->quoteInto(' AND attribute_id = ?', $attributeId)
71
+ );
72
+
73
+ $connection->enableTableKeys($attributeTableOld)
74
+ ->enableTableKeys($attributeTableNew);
75
+ }
76
+ }
77
+
78
+ $installer->endSetup();
app/code/core/Mage/Customer/etc/config.xml CHANGED
@@ -28,7 +28,7 @@
28
  <config>
29
  <modules>
30
  <Mage_Customer>
31
- <version>1.6.2.0.4</version>
32
  </Mage_Customer>
33
  </modules>
34
  <admin>
@@ -378,6 +378,9 @@
378
  <form_attribute>
379
  <table>customer_form_attribute</table>
380
  </form_attribute>
 
 
 
381
  </entities>
382
  </customer_resource>
383
  </models>
@@ -416,6 +419,11 @@
416
  <file>password_new.html</file>
417
  <type>html</type>
418
  </customer_password_remind_email_template>
 
 
 
 
 
419
  </email>
420
  </template>
421
  <events>
@@ -512,6 +520,10 @@
512
  <email_confirmed_template>customer_create_account_email_confirmed_template</email_confirmed_template>
513
  <vat_frontend_visibility>0</vat_frontend_visibility>
514
  </create_account>
 
 
 
 
515
  <default>
516
  <group>1</group>
517
  </default>
@@ -519,7 +531,7 @@
519
  <forgot_email_identity>support</forgot_email_identity>
520
  <forgot_email_template>customer_password_forgot_email_template</forgot_email_template>
521
  <remind_email_template>customer_password_remind_email_template</remind_email_template>
522
- <reset_link_expiration_period>1</reset_link_expiration_period>
523
  <require_admin_user_to_change_user_password>1</require_admin_user_to_change_user_password>
524
  </password>
525
  <address>
@@ -576,5 +588,24 @@ T: {{var telephone}}
576
  <js_template><![CDATA[#{prefix} #{firstname} #{middlename} #{lastname} #{suffix}<br/>#{company}<br/>#{street0}<br/>#{street1}<br/>#{street2}<br/>#{street3}<br/>#{city}, #{region}, #{postcode}<br/>#{country_id}<br/>T: #{telephone}<br/>F: #{fax}<br/>VAT: #{vat_id}]]></js_template>
577
  </address_templates>
578
  </customer>
 
 
 
 
 
 
 
579
  </default>
 
 
 
 
 
 
 
 
 
 
 
 
580
  </config>
28
  <config>
29
  <modules>
30
  <Mage_Customer>
31
+ <version>1.6.2.0.5</version>
32
  </Mage_Customer>
33
  </modules>
34
  <admin>
378
  <form_attribute>
379
  <table>customer_form_attribute</table>
380
  </form_attribute>
381
+ <flowpassword>
382
+ <table>customer_flowpassword</table>
383
+ </flowpassword>
384
  </entities>
385
  </customer_resource>
386
  </models>
419
  <file>password_new.html</file>
420
  <type>html</type>
421
  </customer_password_remind_email_template>
422
+ <customer_changed_account_password_or_email_template translate="label" module="customer">
423
+ <label>Changed Password or Email</label>
424
+ <file>password_or_email_changed.html</file>
425
+ <type>html</type>
426
+ </customer_changed_account_password_or_email_template>
427
  </email>
428
  </template>
429
  <events>
520
  <email_confirmed_template>customer_create_account_email_confirmed_template</email_confirmed_template>
521
  <vat_frontend_visibility>0</vat_frontend_visibility>
522
  </create_account>
523
+ <changed_account>
524
+ <password_or_email_identity>general</password_or_email_identity>
525
+ <password_or_email_template>customer_changed_account_password_or_email_template</password_or_email_template>
526
+ </changed_account>
527
  <default>
528
  <group>1</group>
529
  </default>
531
  <forgot_email_identity>support</forgot_email_identity>
532
  <forgot_email_template>customer_password_forgot_email_template</forgot_email_template>
533
  <remind_email_template>customer_password_remind_email_template</remind_email_template>
534
+ <reset_link_expiration_period>2</reset_link_expiration_period>
535
  <require_admin_user_to_change_user_password>1</require_admin_user_to_change_user_password>
536
  </password>
537
  <address>
588
  <js_template><![CDATA[#{prefix} #{firstname} #{middlename} #{lastname} #{suffix}<br/>#{company}<br/>#{street0}<br/>#{street1}<br/>#{street2}<br/>#{street3}<br/>#{city}, #{region}, #{postcode}<br/>#{country_id}<br/>T: #{telephone}<br/>F: #{fax}<br/>VAT: #{vat_id}]]></js_template>
589
  </address_templates>
590
  </customer>
591
+ <admin>
592
+ <security>
593
+ <forgot_password_flow_secure>1</forgot_password_flow_secure>
594
+ <forgot_password_email_times>5</forgot_password_email_times>
595
+ <forgot_password_ip_times>5</forgot_password_ip_times>
596
+ </security>
597
+ </admin>
598
  </default>
599
+ <crontab>
600
+ <jobs>
601
+ <customer_flowpassword>
602
+ <schedule>
603
+ <cron_expr>0 0 1 * *</cron_expr>
604
+ </schedule>
605
+ <run>
606
+ <model>mage_customer/observer::deleteCustomerFlowPassword</model>
607
+ </run>
608
+ </customer_flowpassword>
609
+ </jobs>
610
+ </crontab>
611
  </config>
app/code/core/Mage/Customer/etc/system.xml CHANGED
@@ -250,6 +250,34 @@
250
  </generate_human_friendly_id>
251
  </fields>
252
  </create_account>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
253
  <password translate="label">
254
  <label>Password Options</label>
255
  <frontend_type>text</frontend_type>
@@ -286,7 +314,7 @@
286
  <show_in_store>1</show_in_store>
287
  </forgot_email_identity>
288
  <reset_link_expiration_period translate="label comment">
289
- <label>Recovery Link Expiration Period (days)</label>
290
  <comment>Please enter a number 1 or greater in this field.</comment>
291
  <frontend_type>text</frontend_type>
292
  <validate>required-entry validate-digits validate-digits-range digits-range-1-</validate>
@@ -492,5 +520,40 @@
492
  </store_information>
493
  </groups>
494
  </general>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
495
  </sections>
496
  </config>
250
  </generate_human_friendly_id>
251
  </fields>
252
  </create_account>
253
+ <changed_account translate="label">
254
+ <label>Change Account Data</label>
255
+ <frontend_type>text</frontend_type>
256
+ <sort_order>25</sort_order>
257
+ <show_in_default>1</show_in_default>
258
+ <show_in_website>1</show_in_website>
259
+ <show_in_store>1</show_in_store>
260
+ <fields>
261
+ <password_or_email_identity translate="label">
262
+ <label>Email Sender</label>
263
+ <frontend_type>select</frontend_type>
264
+ <source_model>adminhtml/system_config_source_email_identity</source_model>
265
+ <sort_order>10</sort_order>
266
+ <show_in_default>1</show_in_default>
267
+ <show_in_website>1</show_in_website>
268
+ <show_in_store>1</show_in_store>
269
+ </password_or_email_identity>
270
+ <password_or_email_template translate="label">
271
+ <label>Changed Email or Password Email Template</label>
272
+ <frontend_type>select</frontend_type>
273
+ <source_model>adminhtml/system_config_source_email_template</source_model>
274
+ <sort_order>20</sort_order>
275
+ <show_in_default>1</show_in_default>
276
+ <show_in_website>1</show_in_website>
277
+ <show_in_store>1</show_in_store>
278
+ </password_or_email_template>
279
+ </fields>
280
+ </changed_account>
281
  <password translate="label">
282
  <label>Password Options</label>
283
  <frontend_type>text</frontend_type>
314
  <show_in_store>1</show_in_store>
315
  </forgot_email_identity>
316
  <reset_link_expiration_period translate="label comment">
317
+ <label>Recovery Link Expiration Period (hours)</label>
318
  <comment>Please enter a number 1 or greater in this field.</comment>
319
  <frontend_type>text</frontend_type>
320
  <validate>required-entry validate-digits validate-digits-range digits-range-1-</validate>
520
  </store_information>
521
  </groups>
522
  </general>
523
+ <admin>
524
+ <groups>
525
+ <security>
526
+ <fields>
527
+ <forgot_password_flow_secure translate="label">
528
+ <label>Forgot password flow secure</label>
529
+ <frontend_type>select</frontend_type>
530
+ <source_model>adminhtml/system_config_source_customer_forgotpassword</source_model>
531
+ <sort_order>140</sort_order>
532
+ <show_in_default>1</show_in_default>
533
+ <show_in_website>1</show_in_website>
534
+ <show_in_store>1</show_in_store>
535
+ </forgot_password_flow_secure>
536
+ <forgot_password_ip_times translate="label comment">
537
+ <label>Forgot password requests to times per hour from 1 IP</label>
538
+ <frontend_type>text</frontend_type>
539
+ <sort_order>150</sort_order>
540
+ <show_in_default>1</show_in_default>
541
+ <show_in_website>1</show_in_website>
542
+ <show_in_store>1</show_in_store>
543
+ <depends><forgot_password_flow_secure separator=",">1,2</forgot_password_flow_secure></depends>
544
+ </forgot_password_ip_times>
545
+ <forgot_password_email_times translate="label">
546
+ <label>Forgot password requests to times per 24 hours from 1 e-mail</label>
547
+ <frontend_type>text</frontend_type>
548
+ <sort_order>160</sort_order>
549
+ <show_in_default>1</show_in_default>
550
+ <show_in_website>1</show_in_website>
551
+ <show_in_store>1</show_in_store>
552
+ <depends><forgot_password_flow_secure separator=",">1,3</forgot_password_flow_secure></depends>
553
+ </forgot_password_email_times>
554
+ </fields>
555
+ </security>
556
+ </groups>
557
+ </admin>
558
  </sections>
559
  </config>
app/code/core/Mage/Customer/sql/customer_setup/upgrade-1.6.2.0.4-1.6.2.0.5.php ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Customer
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+ /* @var $installer Mage_Customer_Model_Entity_Setup */
28
+ $installer = $this;
29
+ $installer->startSetup();
30
+
31
+ $table = $installer->getConnection()
32
+ ->newTable($installer->getTable('customer/flowpassword'))
33
+ ->addColumn('flowpassword_id', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array(
34
+ 'identity' => true,
35
+ 'unsigned' => true,
36
+ 'nullable' => false,
37
+ 'primary' => true,
38
+ ), 'Flow password Id')
39
+ ->addColumn('ip', Varien_Db_Ddl_Table::TYPE_VARCHAR, 50, array(
40
+ 'nullable' => false,
41
+ ), 'User IP')
42
+ ->addColumn('email', Varien_Db_Ddl_Table::TYPE_VARCHAR, 255, array(
43
+ 'nullable' => false,
44
+ ), 'Requested email for change')
45
+ ->addColumn('requested_date', Varien_Db_Ddl_Table::TYPE_VARCHAR, 255, array(
46
+ 'nullable' => false,
47
+ 'default' => '0000-00-00 00:00:00',
48
+ ), 'Requested date for change')
49
+ ->addIndex($installer->getIdxName('customer/flowpassword', array('email')),
50
+ array('email'))
51
+ ->addIndex($installer->getIdxName('customer/flowpassword', array('ip')),
52
+ array('ip'))
53
+ ->addIndex($installer->getIdxName('customer/flowpassword', array('requested_date')),
54
+ array('requested_date'))
55
+ ->setComment('Customer flow password');
56
+ $installer->getConnection()->createTable($table);
57
+
58
+ $installer->endSetup();
app/code/core/Mage/Dataflow/Model/Profile.php CHANGED
@@ -64,10 +64,14 @@ class Mage_Dataflow_Model_Profile extends Mage_Core_Model_Abstract
64
 
65
  protected function _afterLoad()
66
  {
 
67
  if (is_string($this->getGuiData())) {
68
- $guiData = unserialize($this->getGuiData());
69
- } else {
70
- $guiData = '';
 
 
 
71
  }
72
  $this->setGuiData($guiData);
73
 
@@ -127,7 +131,13 @@ class Mage_Dataflow_Model_Profile extends Mage_Core_Model_Abstract
127
  protected function _afterSave()
128
  {
129
  if (is_string($this->getGuiData())) {
130
- $this->setGuiData(unserialize($this->getGuiData()));
 
 
 
 
 
 
131
  }
132
 
133
  $profileHistory = Mage::getModel('dataflow/profile_history');
64
 
65
  protected function _afterLoad()
66
  {
67
+ $guiData = '';
68
  if (is_string($this->getGuiData())) {
69
+ try {
70
+ $guiData = Mage::helper('core/unserializeArray')
71
+ ->unserialize($this->getGuiData());
72
+ } catch (Exception $e) {
73
+ Mage::logException($e);
74
+ }
75
  }
76
  $this->setGuiData($guiData);
77
 
131
  protected function _afterSave()
132
  {
133
  if (is_string($this->getGuiData())) {
134
+ try {
135
+ $guiData = Mage::helper('core/unserializeArray')
136
+ ->unserialize($this->getGuiData());
137
+ $this->setGuiData($guiData);
138
+ } catch (Exception $e) {
139
+ Mage::logException($e);
140
+ }
141
  }
142
 
143
  $profileHistory = Mage::getModel('dataflow/profile_history');
app/code/core/Mage/Downloadable/Block/Adminhtml/Catalog/Product/Edit/Tab/Downloadable/Links.php CHANGED
@@ -32,7 +32,7 @@
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
  class Mage_Downloadable_Block_Adminhtml_Catalog_Product_Edit_Tab_Downloadable_Links
35
- extends Mage_Adminhtml_Block_Template
36
  {
37
  /**
38
  * Purchased Separately Attribute cache
@@ -242,6 +242,7 @@ class Mage_Downloadable_Block_Adminhtml_Catalog_Product_Edit_Tab_Downloadable_Li
242
  */
243
  protected function _prepareLayout()
244
  {
 
245
  $this->setChild(
246
  'upload_button',
247
  $this->getLayout()->createBlock('adminhtml/widget_button')->addData(array(
@@ -251,6 +252,10 @@ class Mage_Downloadable_Block_Adminhtml_Catalog_Product_Edit_Tab_Downloadable_Li
251
  'onclick' => 'Downloadable.massUploadByType(\'links\');Downloadable.massUploadByType(\'linkssample\')'
252
  ))
253
  );
 
 
 
 
254
  }
255
 
256
  /**
@@ -270,33 +275,56 @@ class Mage_Downloadable_Block_Adminhtml_Catalog_Product_Edit_Tab_Downloadable_Li
270
  */
271
  public function getConfigJson($type='links')
272
  {
273
- $this->getConfig()->setUrl(Mage::getModel('adminhtml/url')->addSessionParam()
274
- ->getUrl('*/downloadable_file/upload', array('type' => $type, '_secure' => true)));
275
- $this->getConfig()->setParams(array('form_key' => $this->getFormKey()));
276
- $this->getConfig()->setFileField($type);
277
- $this->getConfig()->setFilters(array(
278
- 'all' => array(
279
- 'label' => Mage::helper('adminhtml')->__('All Files'),
280
- 'files' => array('*.*')
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
281
  )
282
- ));
283
- $this->getConfig()->setReplaceBrowseWithRemove(true);
284
- $this->getConfig()->setWidth('32');
285
- $this->getConfig()->setHideUploadButton(true);
286
- return Mage::helper('core')->jsonEncode($this->getConfig()->getData());
287
  }
288
 
 
289
  /**
290
- * Retrive config object
 
 
 
 
 
 
 
 
 
 
 
 
291
  *
292
- * @return Varien_Config
 
293
  */
294
  public function getConfig()
295
  {
296
- if(is_null($this->_config)) {
297
- $this->_config = new Varien_Object();
298
- }
299
-
300
- return $this->_config;
301
  }
302
  }
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
  class Mage_Downloadable_Block_Adminhtml_Catalog_Product_Edit_Tab_Downloadable_Links
35
+ extends Mage_Uploader_Block_Single
36
  {
37
  /**
38
  * Purchased Separately Attribute cache
242
  */
243
  protected function _prepareLayout()
244
  {
245
+ parent::_prepareLayout();
246
  $this->setChild(
247
  'upload_button',
248
  $this->getLayout()->createBlock('adminhtml/widget_button')->addData(array(
252
  'onclick' => 'Downloadable.massUploadByType(\'links\');Downloadable.massUploadByType(\'linkssample\')'
253
  ))
254
  );
255
+ $this->_addElementIdsMapping(array(
256
+ 'container' => $this->getHtmlId() . '-new',
257
+ 'delete' => $this->getHtmlId() . '-delete'
258
+ ));
259
  }
260
 
261
  /**
275
  */
276
  public function getConfigJson($type='links')
277
  {
278
+
279
+ $this->getUploaderConfig()
280
+ ->setFileParameterName($type)
281
+ ->setTarget(
282
+ Mage::getModel('adminhtml/url')
283
+ ->addSessionParam()
284
+ ->getUrl('*/downloadable_file/upload', array('type' => $type, '_secure' => true))
285
+ );
286
+ $this->getMiscConfig()
287
+ ->setReplaceBrowseWithRemove(true)
288
+ ;
289
+ return Mage::helper('core')->jsonEncode(parent::getJsonConfig());
290
+ }
291
+
292
+ /**
293
+ * @return string
294
+ */
295
+ public function getBrowseButtonHtml($type = '')
296
+ {
297
+ return $this->getChild('browse_button')
298
+ // Workaround for IE9
299
+ ->setBeforeHtml(
300
+ '<div style="display:inline-block; " id="downloadable_link_{{id}}_' . $type . 'file-browse">'
301
  )
302
+ ->setAfterHtml('</div>')
303
+ ->setId('downloadable_link_{{id}}_' . $type . 'file-browse_button')
304
+ ->toHtml();
 
 
305
  }
306
 
307
+
308
  /**
309
+ * @return string
310
+ */
311
+ public function getDeleteButtonHtml($type = '')
312
+ {
313
+ return $this->getChild('delete_button')
314
+ ->setLabel('')
315
+ ->setId('downloadable_link_{{id}}_' . $type . 'file-delete')
316
+ ->setStyle('display:none; width:31px;')
317
+ ->toHtml();
318
+ }
319
+
320
+ /**
321
+ * Retrieve config object
322
  *
323
+ * @deprecated
324
+ * @return $this
325
  */
326
  public function getConfig()
327
  {
328
+ return $this;
 
 
 
 
329
  }
330
  }
app/code/core/Mage/Downloadable/Block/Adminhtml/Catalog/Product/Edit/Tab/Downloadable/Samples.php CHANGED
@@ -32,7 +32,7 @@
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
  class Mage_Downloadable_Block_Adminhtml_Catalog_Product_Edit_Tab_Downloadable_Samples
35
- extends Mage_Adminhtml_Block_Widget
36
  {
37
  /**
38
  * Class constructor
@@ -148,6 +148,7 @@ class Mage_Downloadable_Block_Adminhtml_Catalog_Product_Edit_Tab_Downloadable_Sa
148
  */
149
  protected function _prepareLayout()
150
  {
 
151
  $this->setChild(
152
  'upload_button',
153
  $this->getLayout()->createBlock('adminhtml/widget_button')
@@ -158,6 +159,11 @@ class Mage_Downloadable_Block_Adminhtml_Catalog_Product_Edit_Tab_Downloadable_Sa
158
  'onclick' => 'Downloadable.massUploadByType(\'samples\')'
159
  ))
160
  );
 
 
 
 
 
161
  }
162
 
163
  /**
@@ -171,40 +177,59 @@ class Mage_Downloadable_Block_Adminhtml_Catalog_Product_Edit_Tab_Downloadable_Sa
171
  }
172
 
173
  /**
174
- * Retrive config json
175
  *
176
  * @return string
177
  */
178
  public function getConfigJson()
179
  {
180
- $this->getConfig()->setUrl(Mage::getModel('adminhtml/url')
181
- ->addSessionParam()
182
- ->getUrl('*/downloadable_file/upload', array('type' => 'samples', '_secure' => true)));
183
- $this->getConfig()->setParams(array('form_key' => $this->getFormKey()));
184
- $this->getConfig()->setFileField('samples');
185
- $this->getConfig()->setFilters(array(
186
- 'all' => array(
187
- 'label' => Mage::helper('adminhtml')->__('All Files'),
188
- 'files' => array('*.*')
189
- )
190
- ));
191
- $this->getConfig()->setReplaceBrowseWithRemove(true);
192
- $this->getConfig()->setWidth('32');
193
- $this->getConfig()->setHideUploadButton(true);
194
- return Mage::helper('core')->jsonEncode($this->getConfig()->getData());
195
  }
196
 
197
  /**
198
- * Retrive config object
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
199
  *
200
- * @return Varien_Config
 
201
  */
202
  public function getConfig()
203
  {
204
- if(is_null($this->_config)) {
205
- $this->_config = new Varien_Object();
206
- }
207
-
208
- return $this->_config;
209
  }
210
  }
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
  class Mage_Downloadable_Block_Adminhtml_Catalog_Product_Edit_Tab_Downloadable_Samples
35
+ extends Mage_Uploader_Block_Single
36
  {
37
  /**
38
  * Class constructor
148
  */
149
  protected function _prepareLayout()
150
  {
151
+ parent::_prepareLayout();
152
  $this->setChild(
153
  'upload_button',
154
  $this->getLayout()->createBlock('adminhtml/widget_button')
159
  'onclick' => 'Downloadable.massUploadByType(\'samples\')'
160
  ))
161
  );
162
+
163
+ $this->_addElementIdsMapping(array(
164
+ 'container' => $this->getHtmlId() . '-new',
165
+ 'delete' => $this->getHtmlId() . '-delete'
166
+ ));
167
  }
168
 
169
  /**
177
  }
178
 
179
  /**
180
+ * Retrieve config json
181
  *
182
  * @return string
183
  */
184
  public function getConfigJson()
185
  {
186
+ $this->getUploaderConfig()
187
+ ->setFileParameterName('samples')
188
+ ->setTarget(
189
+ Mage::getModel('adminhtml/url')
190
+ ->addSessionParam()
191
+ ->getUrl('*/downloadable_file/upload', array('type' => 'samples', '_secure' => true))
192
+ );
193
+ $this->getMiscConfig()
194
+ ->setReplaceBrowseWithRemove(true)
195
+ ;
196
+ return Mage::helper('core')->jsonEncode(parent::getJsonConfig());
 
 
 
 
197
  }
198
 
199
  /**
200
+ * @return string
201
+ */
202
+ public function getBrowseButtonHtml()
203
+ {
204
+ return $this->getChild('browse_button')
205
+ // Workaround for IE9
206
+ ->setBeforeHtml('<div style="display:inline-block; " id="downloadable_sample_{{id}}_file-browse">')
207
+ ->setAfterHtml('</div>')
208
+ ->setId('downloadable_sample_{{id}}_file-browse_button')
209
+ ->toHtml();
210
+ }
211
+
212
+
213
+ /**
214
+ * @return string
215
+ */
216
+ public function getDeleteButtonHtml()
217
+ {
218
+ return $this->getChild('delete_button')
219
+ ->setLabel('')
220
+ ->setId('downloadable_sample_{{id}}_file-delete')
221
+ ->setStyle('display:none; width:31px;')
222
+ ->toHtml();
223
+ }
224
+
225
+ /**
226
+ * Retrieve config object
227
  *
228
+ * @deprecated
229
+ * @return $this
230
  */
231
  public function getConfig()
232
  {
233
+ return $this;
 
 
 
 
234
  }
235
  }
app/code/core/Mage/Downloadable/Helper/File.php CHANGED
@@ -33,15 +33,35 @@
33
  */
34
  class Mage_Downloadable_Helper_File extends Mage_Core_Helper_Abstract
35
  {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
  public function __construct()
37
  {
38
- $nodes = Mage::getConfig()->getNode('global/mime/types');
39
- if ($nodes) {
40
- $nodes = (array)$nodes;
41
- foreach ($nodes as $key => $value) {
42
- self::$_mimeTypes[$key] = $value;
43
- }
 
 
 
 
44
  }
 
 
45
  }
46
 
47
  /**
@@ -152,628 +172,48 @@ class Mage_Downloadable_Helper_File extends Mage_Core_Helper_Abstract
152
  return $file;
153
  }
154
 
 
 
 
 
 
 
155
  public function getFileType($filePath)
156
  {
157
  $ext = substr($filePath, strrpos($filePath, '.')+1);
158
  return $this->_getFileTypeByExt($ext);
159
  }
160
 
 
 
 
 
 
 
 
161
  protected function _getFileTypeByExt($ext)
162
  {
163
- $type = 'x' . $ext;
164
- if (isset(self::$_mimeTypes[$type])) {
165
- return self::$_mimeTypes[$type];
166
- }
167
- return 'application/octet-stream';
168
  }
169
 
 
 
 
 
 
170
  public function getAllFileTypes()
171
  {
172
- return array_values(self::getAllMineTypes());
173
  }
174
 
 
 
 
 
 
175
  public function getAllMineTypes()
176
  {
177
- return self::$_mimeTypes;
178
  }
179
 
180
- protected static $_mimeTypes =
181
- array(
182
- 'x123' => 'application/vnd.lotus-1-2-3',
183
- 'x3dml' => 'text/vnd.in3d.3dml',
184
- 'x3g2' => 'video/3gpp2',
185
- 'x3gp' => 'video/3gpp',
186
- 'xace' => 'application/x-ace-compressed',
187
- 'xacu' => 'application/vnd.acucobol',
188
- 'xaep' => 'application/vnd.audiograph',
189
- 'xai' => 'application/postscript',
190
- 'xaif' => 'audio/x-aiff',
191
-
192
- 'xaifc' => 'audio/x-aiff',
193
- 'xaiff' => 'audio/x-aiff',
194
- 'xami' => 'application/vnd.amiga.ami',
195
- 'xapr' => 'application/vnd.lotus-approach',
196
- 'xasf' => 'video/x-ms-asf',
197
- 'xaso' => 'application/vnd.accpac.simply.aso',
198
- 'xasx' => 'video/x-ms-asf',
199
- 'xatom' => 'application/atom+xml',
200
- 'xatomcat' => 'application/atomcat+xml',
201
-
202
- 'xatomsvc' => 'application/atomsvc+xml',
203
- 'xatx' => 'application/vnd.antix.game-component',
204
- 'xau' => 'audio/basic',
205
- 'xavi' => 'video/x-msvideo',
206
- 'xbat' => 'application/x-msdownload',
207
- 'xbcpio' => 'application/x-bcpio',
208
- 'xbdm' => 'application/vnd.syncml.dm+wbxml',
209
- 'xbh2' => 'application/vnd.fujitsu.oasysprs',
210
- 'xbmi' => 'application/vnd.bmi',
211
-
212
- 'xbmp' => 'image/bmp',
213
- 'xbox' => 'application/vnd.previewsystems.box',
214
- 'xboz' => 'application/x-bzip2',
215
- 'xbtif' => 'image/prs.btif',
216
- 'xbz' => 'application/x-bzip',
217
- 'xbz2' => 'application/x-bzip2',
218
- 'xcab' => 'application/vnd.ms-cab-compressed',
219
- 'xccxml' => 'application/ccxml+xml',
220
- 'xcdbcmsg' => 'application/vnd.contact.cmsg',
221
-
222
- 'xcdkey' => 'application/vnd.mediastation.cdkey',
223
- 'xcdx' => 'chemical/x-cdx',
224
- 'xcdxml' => 'application/vnd.chemdraw+xml',
225
- 'xcdy' => 'application/vnd.cinderella',
226
- 'xcer' => 'application/pkix-cert',
227
- 'xcgm' => 'image/cgm',
228
- 'xchat' => 'application/x-chat',
229
- 'xchm' => 'application/vnd.ms-htmlhelp',
230
- 'xchrt' => 'application/vnd.kde.kchart',
231
-
232
- 'xcif' => 'chemical/x-cif',
233
- 'xcii' => 'application/vnd.anser-web-certificate-issue-initiation',
234
- 'xcil' => 'application/vnd.ms-artgalry',
235
- 'xcla' => 'application/vnd.claymore',
236
- 'xclkk' => 'application/vnd.crick.clicker.keyboard',
237
- 'xclkp' => 'application/vnd.crick.clicker.palette',
238
- 'xclkt' => 'application/vnd.crick.clicker.template',
239
- 'xclkw' => 'application/vnd.crick.clicker.wordbank',
240
- 'xclkx' => 'application/vnd.crick.clicker',
241
-
242
- 'xclp' => 'application/x-msclip',
243
- 'xcmc' => 'application/vnd.cosmocaller',
244
- 'xcmdf' => 'chemical/x-cmdf',
245
- 'xcml' => 'chemical/x-cml',
246
- 'xcmp' => 'application/vnd.yellowriver-custom-menu',
247
- 'xcmx' => 'image/x-cmx',
248
- 'xcom' => 'application/x-msdownload',
249
- 'xconf' => 'text/plain',
250
- 'xcpio' => 'application/x-cpio',
251
-
252
- 'xcpt' => 'application/mac-compactpro',
253
- 'xcrd' => 'application/x-mscardfile',
254
- 'xcrl' => 'application/pkix-crl',
255
- 'xcrt' => 'application/x-x509-ca-cert',
256
- 'xcsh' => 'application/x-csh',
257
- 'xcsml' => 'chemical/x-csml',
258
- 'xcss' => 'text/css',
259
- 'xcsv' => 'text/csv',
260
- 'xcurl' => 'application/vnd.curl',
261
-
262
- 'xcww' => 'application/prs.cww',
263
- 'xdaf' => 'application/vnd.mobius.daf',
264
- 'xdavmount' => 'application/davmount+xml',
265
- 'xdd2' => 'application/vnd.oma.dd2+xml',
266
- 'xddd' => 'application/vnd.fujixerox.ddd',
267
- 'xdef' => 'text/plain',
268
- 'xder' => 'application/x-x509-ca-cert',
269
- 'xdfac' => 'application/vnd.dreamfactory',
270
- 'xdis' => 'application/vnd.mobius.dis',
271
-
272
- 'xdjv' => 'image/vnd.djvu',
273
- 'xdjvu' => 'image/vnd.djvu',
274
- 'xdll' => 'application/x-msdownload',
275
- 'xdna' => 'application/vnd.dna',
276
- 'xdoc' => 'application/msword',
277
- 'xdot' => 'application/msword',
278
- 'xdp' => 'application/vnd.osgi.dp',
279
- 'xdpg' => 'application/vnd.dpgraph',
280
- 'xdsc' => 'text/prs.lines.tag',
281
-
282
- 'xdtd' => 'application/xml-dtd',
283
- 'xdvi' => 'application/x-dvi',
284
- 'xdwf' => 'model/vnd.dwf',
285
- 'xdwg' => 'image/vnd.dwg',
286
- 'xdxf' => 'image/vnd.dxf',
287
- 'xdxp' => 'application/vnd.spotfire.dxp',
288
- 'xecelp4800' => 'audio/vnd.nuera.ecelp4800',
289
- 'xecelp7470' => 'audio/vnd.nuera.ecelp7470',
290
- 'xecelp9600' => 'audio/vnd.nuera.ecelp9600',
291
-
292
- 'xecma' => 'application/ecmascript',
293
- 'xedm' => 'application/vnd.novadigm.edm',
294
- 'xedx' => 'application/vnd.novadigm.edx',
295
- 'xefif' => 'application/vnd.picsel',
296
- 'xei6' => 'application/vnd.pg.osasli',
297
- 'xeml' => 'message/rfc822',
298
- 'xeol' => 'audio/vnd.digital-winds',
299
- 'xeot' => 'application/vnd.ms-fontobject',
300
- 'xeps' => 'application/postscript',
301
-
302
- 'xesf' => 'application/vnd.epson.esf',
303
- 'xetx' => 'text/x-setext',
304
- 'xexe' => 'application/x-msdownload',
305
- 'xext' => 'application/vnd.novadigm.ext',
306
- 'xez' => 'application/andrew-inset',
307
- 'xez2' => 'application/vnd.ezpix-album',
308
- 'xez3' => 'application/vnd.ezpix-package',
309
- 'xfbs' => 'image/vnd.fastbidsheet',
310
- 'xfdf' => 'application/vnd.fdf',
311
-
312
- 'xfe_launch' => 'application/vnd.denovo.fcselayout-link',
313
- 'xfg5' => 'application/vnd.fujitsu.oasysgp',
314
- 'xfli' => 'video/x-fli',
315
- 'xflo' => 'application/vnd.micrografx.flo',
316
- 'xflw' => 'application/vnd.kde.kivio',
317
- 'xflx' => 'text/vnd.fmi.flexstor',
318
- 'xfly' => 'text/vnd.fly',
319
- 'xfnc' => 'application/vnd.frogans.fnc',
320
- 'xfpx' => 'image/vnd.fpx',
321
-
322
- 'xfsc' => 'application/vnd.fsc.weblaunch',
323
- 'xfst' => 'image/vnd.fst',
324
- 'xftc' => 'application/vnd.fluxtime.clip',
325
- 'xfti' => 'application/vnd.anser-web-funds-transfer-initiation',
326
- 'xfvt' => 'video/vnd.fvt',
327
- 'xfzs' => 'application/vnd.fuzzysheet',
328
- 'xg3' => 'image/g3fax',
329
- 'xgac' => 'application/vnd.groove-account',
330
- 'xgdl' => 'model/vnd.gdl',
331
-
332
- 'xghf' => 'application/vnd.groove-help',
333
- 'xgif' => 'image/gif',
334
- 'xgim' => 'application/vnd.groove-identity-message',
335
- 'xgph' => 'application/vnd.flographit',
336
- 'xgram' => 'application/srgs',
337
- 'xgrv' => 'application/vnd.groove-injector',
338
- 'xgrxml' => 'application/srgs+xml',
339
- 'xgtar' => 'application/x-gtar',
340
- 'xgtm' => 'application/vnd.groove-tool-message',
341
-
342
- 'xgtw' => 'model/vnd.gtw',
343
- 'xh261' => 'video/h261',
344
- 'xh263' => 'video/h263',
345
- 'xh264' => 'video/h264',
346
- 'xhbci' => 'application/vnd.hbci',
347
- 'xhdf' => 'application/x-hdf',
348
- 'xhlp' => 'application/winhlp',
349
- 'xhpgl' => 'application/vnd.hp-hpgl',
350
- 'xhpid' => 'application/vnd.hp-hpid',
351
-
352
- 'xhps' => 'application/vnd.hp-hps',
353
- 'xhqx' => 'application/mac-binhex40',
354
- 'xhtke' => 'application/vnd.kenameaapp',
355
- 'xhtm' => 'text/html',
356
- 'xhtml' => 'text/html',
357
- 'xhvd' => 'application/vnd.yamaha.hv-dic',
358
- 'xhvp' => 'application/vnd.yamaha.hv-voice',
359
- 'xhvs' => 'application/vnd.yamaha.hv-script',
360
- 'xice' => '#x-conference/x-cooltalk',
361
-
362
- 'xico' => 'image/x-icon',
363
- 'xics' => 'text/calendar',
364
- 'xief' => 'image/ief',
365
- 'xifb' => 'text/calendar',
366
- 'xifm' => 'application/vnd.shana.informed.formdata',
367
- 'xigl' => 'application/vnd.igloader',
368
- 'xigx' => 'application/vnd.micrografx.igx',
369
- 'xiif' => 'application/vnd.shana.informed.interchange',
370
- 'ximp' => 'application/vnd.accpac.simply.imp',
371
-
372
- 'xims' => 'application/vnd.ms-ims',
373
- 'xin' => 'text/plain',
374
- 'xipk' => 'application/vnd.shana.informed.package',
375
- 'xirm' => 'application/vnd.ibm.rights-management',
376
- 'xirp' => 'application/vnd.irepository.package+xml',
377
- 'xitp' => 'application/vnd.shana.informed.formtemplate',
378
- 'xivp' => 'application/vnd.immervision-ivp',
379
- 'xivu' => 'application/vnd.immervision-ivu',
380
- 'xjad' => 'text/vnd.sun.j2me.app-descriptor',
381
-
382
- 'xjam' => 'application/vnd.jam',
383
- 'xjava' => 'text/x-java-source',
384
- 'xjisp' => 'application/vnd.jisp',
385
- 'xjlt' => 'application/vnd.hp-jlyt',
386
- 'xjoda' => 'application/vnd.joost.joda-archive',
387
- 'xjpe' => 'image/jpeg',
388
- 'xjpeg' => 'image/jpeg',
389
- 'xjpg' => 'image/jpeg',
390
- 'xjpgm' => 'video/jpm',
391
-
392
- 'xjpgv' => 'video/jpeg',
393
- 'xjpm' => 'video/jpm',
394
- 'xjs' => 'application/javascript',
395
- 'xjson' => 'application/json',
396
- 'xkar' => 'audio/midi',
397
- 'xkarbon' => 'application/vnd.kde.karbon',
398
- 'xkfo' => 'application/vnd.kde.kformula',
399
- 'xkia' => 'application/vnd.kidspiration',
400
- 'xkml' => 'application/vnd.google-earth.kml+xml',
401
-
402
- 'xkmz' => 'application/vnd.google-earth.kmz',
403
- 'xkon' => 'application/vnd.kde.kontour',
404
- 'xksp' => 'application/vnd.kde.kspread',
405
- 'xlatex' => 'application/x-latex',
406
- 'xlbd' => 'application/vnd.llamagraphics.life-balance.desktop',
407
- 'xlbe' => 'application/vnd.llamagraphics.life-balance.exchange+xml',
408
- 'xles' => 'application/vnd.hhe.lesson-player',
409
- 'xlist' => 'text/plain',
410
- 'xlog' => 'text/plain',
411
-
412
- 'xlrm' => 'application/vnd.ms-lrm',
413
- 'xltf' => 'application/vnd.frogans.ltf',
414
- 'xlvp' => 'audio/vnd.lucent.voice',
415
- 'xlwp' => 'application/vnd.lotus-wordpro',
416
- 'xm13' => 'application/x-msmediaview',
417
- 'xm14' => 'application/x-msmediaview',
418
- 'xm1v' => 'video/mpeg',
419
- 'xm2a' => 'audio/mpeg',
420
- 'xm3a' => 'audio/mpeg',
421
-
422
- 'xm3u' => 'audio/x-mpegurl',
423
- 'xm4u' => 'video/vnd.mpegurl',
424
- 'xmag' => 'application/vnd.ecowin.chart',
425
- 'xmathml' => 'application/mathml+xml',
426
- 'xmbk' => 'application/vnd.mobius.mbk',
427
- 'xmbox' => 'application/mbox',
428
- 'xmc1' => 'application/vnd.medcalcdata',
429
- 'xmcd' => 'application/vnd.mcd',
430
- 'xmdb' => 'application/x-msaccess',
431
-
432
- 'xmdi' => 'image/vnd.ms-modi',
433
- 'xmesh' => 'model/mesh',
434
- 'xmfm' => 'application/vnd.mfmp',
435
- 'xmgz' => 'application/vnd.proteus.magazine',
436
- 'xmid' => 'audio/midi',
437
- 'xmidi' => 'audio/midi',
438
- 'xmif' => 'application/vnd.mif',
439
- 'xmime' => 'message/rfc822',
440
- 'xmj2' => 'video/mj2',
441
-
442
- 'xmjp2' => 'video/mj2',
443
- 'xmlp' => 'application/vnd.dolby.mlp',
444
- 'xmmd' => 'application/vnd.chipnuts.karaoke-mmd',
445
- 'xmmf' => 'application/vnd.smaf',
446
- 'xmmr' => 'image/vnd.fujixerox.edmics-mmr',
447
- 'xmny' => 'application/x-msmoney',
448
- 'xmov' => 'video/quicktime',
449
- 'xmovie' => 'video/x-sgi-movie',
450
- 'xmp2' => 'audio/mpeg',
451
-
452
- 'xmp2a' => 'audio/mpeg',
453
- 'xmp3' => 'audio/mpeg',
454
- 'xmp4' => 'video/mp4',
455
- 'xmp4a' => 'audio/mp4',
456
- 'xmp4s' => 'application/mp4',
457
- 'xmp4v' => 'video/mp4',
458
- 'xmpc' => 'application/vnd.mophun.certificate',
459
- 'xmpe' => 'video/mpeg',
460
- 'xmpeg' => 'video/mpeg',
461
-
462
- 'xmpg' => 'video/mpeg',
463
- 'xmpg4' => 'video/mp4',
464
- 'xmpga' => 'audio/mpeg',
465
- 'xmpkg' => 'application/vnd.apple.installer+xml',
466
- 'xmpm' => 'application/vnd.blueice.multipass',
467
- 'xmpn' => 'application/vnd.mophun.application',
468
- 'xmpp' => 'application/vnd.ms-project',
469
- 'xmpt' => 'application/vnd.ms-project',
470
- 'xmpy' => 'application/vnd.ibm.minipay',
471
-
472
- 'xmqy' => 'application/vnd.mobius.mqy',
473
- 'xmrc' => 'application/marc',
474
- 'xmscml' => 'application/mediaservercontrol+xml',
475
- 'xmseq' => 'application/vnd.mseq',
476
- 'xmsf' => 'application/vnd.epson.msf',
477
- 'xmsh' => 'model/mesh',
478
- 'xmsi' => 'application/x-msdownload',
479
- 'xmsl' => 'application/vnd.mobius.msl',
480
- 'xmsty' => 'application/vnd.muvee.style',
481
-
482
- 'xmts' => 'model/vnd.mts',
483
- 'xmus' => 'application/vnd.musician',
484
- 'xmvb' => 'application/x-msmediaview',
485
- 'xmwf' => 'application/vnd.mfer',
486
- 'xmxf' => 'application/mxf',
487
- 'xmxl' => 'application/vnd.recordare.musicxml',
488
- 'xmxml' => 'application/xv+xml',
489
- 'xmxs' => 'application/vnd.triscape.mxs',
490
- 'xmxu' => 'video/vnd.mpegurl',
491
-
492
- 'xn-gage' => 'application/vnd.nokia.n-gage.symbian.install',
493
- 'xngdat' => 'application/vnd.nokia.n-gage.data',
494
- 'xnlu' => 'application/vnd.neurolanguage.nlu',
495
- 'xnml' => 'application/vnd.enliven',
496
- 'xnnd' => 'application/vnd.noblenet-directory',
497
- 'xnns' => 'application/vnd.noblenet-sealer',
498
- 'xnnw' => 'application/vnd.noblenet-web',
499
- 'xnpx' => 'image/vnd.net-fpx',
500
- 'xnsf' => 'application/vnd.lotus-notes',
501
-
502
- 'xoa2' => 'application/vnd.fujitsu.oasys2',
503
- 'xoa3' => 'application/vnd.fujitsu.oasys3',
504
- 'xoas' => 'application/vnd.fujitsu.oasys',
505
- 'xobd' => 'application/x-msbinder',
506
- 'xoda' => 'application/oda',
507
- 'xodc' => 'application/vnd.oasis.opendocument.chart',
508
- 'xodf' => 'application/vnd.oasis.opendocument.formula',
509
- 'xodg' => 'application/vnd.oasis.opendocument.graphics',
510
- 'xodi' => 'application/vnd.oasis.opendocument.image',
511
-
512
- 'xodp' => 'application/vnd.oasis.opendocument.presentation',
513
- 'xods' => 'application/vnd.oasis.opendocument.spreadsheet',
514
- 'xodt' => 'application/vnd.oasis.opendocument.text',
515
- 'xogg' => 'application/ogg',
516
- 'xoprc' => 'application/vnd.palm',
517
- 'xorg' => 'application/vnd.lotus-organizer',
518
- 'xotc' => 'application/vnd.oasis.opendocument.chart-template',
519
- 'xotf' => 'application/vnd.oasis.opendocument.formula-template',
520
- 'xotg' => 'application/vnd.oasis.opendocument.graphics-template',
521
-
522
- 'xoth' => 'application/vnd.oasis.opendocument.text-web',
523
- 'xoti' => 'application/vnd.oasis.opendocument.image-template',
524
- 'xotm' => 'application/vnd.oasis.opendocument.text-master',
525
- 'xots' => 'application/vnd.oasis.opendocument.spreadsheet-template',
526
- 'xott' => 'application/vnd.oasis.opendocument.text-template',
527
- 'xoxt' => 'application/vnd.openofficeorg.extension',
528
- 'xp10' => 'application/pkcs10',
529
- 'xp7r' => 'application/x-pkcs7-certreqresp',
530
- 'xp7s' => 'application/pkcs7-signature',
531
-
532
- 'xpbd' => 'application/vnd.powerbuilder6',
533
- 'xpbm' => 'image/x-portable-bitmap',
534
- 'xpcl' => 'application/vnd.hp-pcl',
535
- 'xpclxl' => 'application/vnd.hp-pclxl',
536
- 'xpct' => 'image/x-pict',
537
- 'xpcx' => 'image/x-pcx',
538
- 'xpdb' => 'chemical/x-pdb',
539
- 'xpdf' => 'application/pdf',
540
- 'xpfr' => 'application/font-tdpfr',
541
-
542
- 'xpgm' => 'image/x-portable-graymap',
543
- 'xpgn' => 'application/x-chess-pgn',
544
- 'xpgp' => 'application/pgp-encrypted',
545
- 'xpic' => 'image/x-pict',
546
- 'xpki' => 'application/pkixcmp',
547
- 'xpkipath' => 'application/pkix-pkipath',
548
- 'xplb' => 'application/vnd.3gpp.pic-bw-large',
549
- 'xplc' => 'application/vnd.mobius.plc',
550
- 'xplf' => 'application/vnd.pocketlearn',
551
-
552
- 'xpls' => 'application/pls+xml',
553
- 'xpml' => 'application/vnd.ctc-posml',
554
- 'xpng' => 'image/png',
555
- 'xpnm' => 'image/x-portable-anymap',
556
- 'xportpkg' => 'application/vnd.macports.portpkg',
557
- 'xpot' => 'application/vnd.ms-powerpoint',
558
- 'xppd' => 'application/vnd.cups-ppd',
559
- 'xppm' => 'image/x-portable-pixmap',
560
- 'xpps' => 'application/vnd.ms-powerpoint',
561
-
562
- 'xppt' => 'application/vnd.ms-powerpoint',
563
- 'xpqa' => 'application/vnd.palm',
564
- 'xprc' => 'application/vnd.palm',
565
- 'xpre' => 'application/vnd.lotus-freelance',
566
- 'xprf' => 'application/pics-rules',
567
- 'xps' => 'application/postscript',
568
- 'xpsb' => 'application/vnd.3gpp.pic-bw-small',
569
- 'xpsd' => 'image/vnd.adobe.photoshop',
570
- 'xptid' => 'application/vnd.pvi.ptid1',
571
-
572
- 'xpub' => 'application/x-mspublisher',
573
- 'xpvb' => 'application/vnd.3gpp.pic-bw-var',
574
- 'xpwn' => 'application/vnd.3m.post-it-notes',
575
- 'xqam' => 'application/vnd.epson.quickanime',
576
- 'xqbo' => 'application/vnd.intu.qbo',
577
- 'xqfx' => 'application/vnd.intu.qfx',
578
- 'xqps' => 'application/vnd.publishare-delta-tree',
579
- 'xqt' => 'video/quicktime',
580
- 'xra' => 'audio/x-pn-realaudio',
581
-
582
- 'xram' => 'audio/x-pn-realaudio',
583
- 'xrar' => 'application/x-rar-compressed',
584
- 'xras' => 'image/x-cmu-raster',
585
- 'xrcprofile' => 'application/vnd.ipunplugged.rcprofile',
586
- 'xrdf' => 'application/rdf+xml',
587
- 'xrdz' => 'application/vnd.data-vision.rdz',
588
- 'xrep' => 'application/vnd.businessobjects',
589
- 'xrgb' => 'image/x-rgb',
590
- 'xrif' => 'application/reginfo+xml',
591
-
592
- 'xrl' => 'application/resource-lists+xml',
593
- 'xrlc' => 'image/vnd.fujixerox.edmics-rlc',
594
- 'xrm' => 'application/vnd.rn-realmedia',
595
- 'xrmi' => 'audio/midi',
596
- 'xrmp' => 'audio/x-pn-realaudio-plugin',
597
- 'xrms' => 'application/vnd.jcp.javame.midlet-rms',
598
- 'xrnc' => 'application/relax-ng-compact-syntax',
599
- 'xrpss' => 'application/vnd.nokia.radio-presets',
600
- 'xrpst' => 'application/vnd.nokia.radio-preset',
601
-
602
- 'xrq' => 'application/sparql-query',
603
- 'xrs' => 'application/rls-services+xml',
604
- 'xrsd' => 'application/rsd+xml',
605
- 'xrss' => 'application/rss+xml',
606
- 'xrtf' => 'application/rtf',
607
- 'xrtx' => 'text/richtext',
608
- 'xsaf' => 'application/vnd.yamaha.smaf-audio',
609
- 'xsbml' => 'application/sbml+xml',
610
- 'xsc' => 'application/vnd.ibm.secure-container',
611
-
612
- 'xscd' => 'application/x-msschedule',
613
- 'xscm' => 'application/vnd.lotus-screencam',
614
- 'xscq' => 'application/scvp-cv-request',
615
- 'xscs' => 'application/scvp-cv-response',
616
- 'xsdp' => 'application/sdp',
617
- 'xsee' => 'application/vnd.seemail',
618
- 'xsema' => 'application/vnd.sema',
619
- 'xsemd' => 'application/vnd.semd',
620
- 'xsemf' => 'application/vnd.semf',
621
-
622
- 'xsetpay' => 'application/set-payment-initiation',
623
- 'xsetreg' => 'application/set-registration-initiation',
624
- 'xsfs' => 'application/vnd.spotfire.sfs',
625
- 'xsgm' => 'text/sgml',
626
- 'xsgml' => 'text/sgml',
627
- 'xsh' => 'application/x-sh',
628
- 'xshar' => 'application/x-shar',
629
- 'xshf' => 'application/shf+xml',
630
- 'xsilo' => 'model/mesh',
631
-
632
- 'xsit' => 'application/x-stuffit',
633
- 'xsitx' => 'application/x-stuffitx',
634
- 'xslt' => 'application/vnd.epson.salt',
635
- 'xsnd' => 'audio/basic',
636
- 'xspf' => 'application/vnd.yamaha.smaf-phrase',
637
- 'xspl' => 'application/x-futuresplash',
638
- 'xspot' => 'text/vnd.in3d.spot',
639
- 'xspp' => 'application/scvp-vp-response',
640
- 'xspq' => 'application/scvp-vp-request',
641
-
642
- 'xsrc' => 'application/x-wais-source',
643
- 'xsrx' => 'application/sparql-results+xml',
644
- 'xssf' => 'application/vnd.epson.ssf',
645
- 'xssml' => 'application/ssml+xml',
646
- 'xstf' => 'application/vnd.wt.stf',
647
- 'xstk' => 'application/hyperstudio',
648
- 'xstr' => 'application/vnd.pg.format',
649
- 'xsus' => 'application/vnd.sus-calendar',
650
- 'xsusp' => 'application/vnd.sus-calendar',
651
-
652
- 'xsv4cpio' => 'application/x-sv4cpio',
653
- 'xsv4crc' => 'application/x-sv4crc',
654
- 'xsvd' => 'application/vnd.svd',
655
- 'xswf' => 'application/x-shockwave-flash',
656
- 'xtao' => 'application/vnd.tao.intent-module-archive',
657
- 'xtar' => 'application/x-tar',
658
- 'xtcap' => 'application/vnd.3gpp2.tcap',
659
- 'xtcl' => 'application/x-tcl',
660
- 'xtex' => 'application/x-tex',
661
-
662
- 'xtext' => 'text/plain',
663
- 'xtif' => 'image/tiff',
664
- 'xtiff' => 'image/tiff',
665
- 'xtmo' => 'application/vnd.tmobile-livetv',
666
- 'xtorrent' => 'application/x-bittorrent',
667
- 'xtpl' => 'application/vnd.groove-tool-template',
668
- 'xtpt' => 'application/vnd.trid.tpt',
669
- 'xtra' => 'application/vnd.trueapp',
670
- 'xtrm' => 'application/x-msterminal',
671
-
672
- 'xtsv' => 'text/tab-separated-values',
673
- 'xtxd' => 'application/vnd.genomatix.tuxedo',
674
- 'xtxf' => 'application/vnd.mobius.txf',
675
- 'xtxt' => 'text/plain',
676
- 'xumj' => 'application/vnd.umajin',
677
- 'xunityweb' => 'application/vnd.unity',
678
- 'xuoml' => 'application/vnd.uoml+xml',
679
- 'xuri' => 'text/uri-list',
680
- 'xuris' => 'text/uri-list',
681
-
682
- 'xurls' => 'text/uri-list',
683
- 'xustar' => 'application/x-ustar',
684
- 'xutz' => 'application/vnd.uiq.theme',
685
- 'xuu' => 'text/x-uuencode',
686
- 'xvcd' => 'application/x-cdlink',
687
- 'xvcf' => 'text/x-vcard',
688
- 'xvcg' => 'application/vnd.groove-vcard',
689
- 'xvcs' => 'text/x-vcalendar',
690
- 'xvcx' => 'application/vnd.vcx',
691
-
692
- 'xvis' => 'application/vnd.visionary',
693
- 'xviv' => 'video/vnd.vivo',
694
- 'xvrml' => 'model/vrml',
695
- 'xvsd' => 'application/vnd.visio',
696
- 'xvsf' => 'application/vnd.vsf',
697
- 'xvss' => 'application/vnd.visio',
698
- 'xvst' => 'application/vnd.visio',
699
- 'xvsw' => 'application/vnd.visio',
700
- 'xvtu' => 'model/vnd.vtu',
701
-
702
- 'xvxml' => 'application/voicexml+xml',
703
- 'xwav' => 'audio/x-wav',
704
- 'xwax' => 'audio/x-ms-wax',
705
- 'xwbmp' => 'image/vnd.wap.wbmp',
706
- 'xwbs' => 'application/vnd.criticaltools.wbs+xml',
707
- 'xwbxml' => 'application/vnd.wap.wbxml',
708
- 'xwcm' => 'application/vnd.ms-works',
709
- 'xwdb' => 'application/vnd.ms-works',
710
- 'xwks' => 'application/vnd.ms-works',
711
-
712
- 'xwm' => 'video/x-ms-wm',
713
- 'xwma' => 'audio/x-ms-wma',
714
- 'xwmd' => 'application/x-ms-wmd',
715
- 'xwmf' => 'application/x-msmetafile',
716
- 'xwml' => 'text/vnd.wap.wml',
717
- 'xwmlc' => 'application/vnd.wap.wmlc',
718
- 'xwmls' => 'text/vnd.wap.wmlscript',
719
- 'xwmlsc' => 'application/vnd.wap.wmlscriptc',
720
- 'xwmv' => 'video/x-ms-wmv',
721
-
722
- 'xwmx' => 'video/x-ms-wmx',
723
- 'xwmz' => 'application/x-ms-wmz',
724
- 'xwpd' => 'application/vnd.wordperfect',
725
- 'xwpl' => 'application/vnd.ms-wpl',
726
- 'xwps' => 'application/vnd.ms-works',
727
- 'xwqd' => 'application/vnd.wqd',
728
- 'xwri' => 'application/x-mswrite',
729
- 'xwrl' => 'model/vrml',
730
- 'xwsdl' => 'application/wsdl+xml',
731
-
732
- 'xwspolicy' => 'application/wspolicy+xml',
733
- 'xwtb' => 'application/vnd.webturbo',
734
- 'xwvx' => 'video/x-ms-wvx',
735
- 'xx3d' => 'application/vnd.hzn-3d-crossword',
736
- 'xxar' => 'application/vnd.xara',
737
- 'xxbd' => 'application/vnd.fujixerox.docuworks.binder',
738
- 'xxbm' => 'image/x-xbitmap',
739
- 'xxdm' => 'application/vnd.syncml.dm+xml',
740
- 'xxdp' => 'application/vnd.adobe.xdp+xml',
741
-
742
- 'xxdw' => 'application/vnd.fujixerox.docuworks',
743
- 'xxenc' => 'application/xenc+xml',
744
- 'xxfdf' => 'application/vnd.adobe.xfdf',
745
- 'xxfdl' => 'application/vnd.xfdl',
746
- 'xxht' => 'application/xhtml+xml',
747
- 'xxhtml' => 'application/xhtml+xml',
748
- 'xxhvml' => 'application/xv+xml',
749
- 'xxif' => 'image/vnd.xiff',
750
- 'xxla' => 'application/vnd.ms-excel',
751
-
752
- 'xxlc' => 'application/vnd.ms-excel',
753
- 'xxlm' => 'application/vnd.ms-excel',
754
- 'xxls' => 'application/vnd.ms-excel',
755
- 'xxlt' => 'application/vnd.ms-excel',
756
- 'xxlw' => 'application/vnd.ms-excel',
757
- 'xxml' => 'application/xml',
758
- 'xxo' => 'application/vnd.olpc-sugar',
759
- 'xxop' => 'application/xop+xml',
760
- 'xxpm' => 'image/x-xpixmap',
761
-
762
- 'xxpr' => 'application/vnd.is-xpr',
763
- 'xxps' => 'application/vnd.ms-xpsdocument',
764
- 'xxsl' => 'application/xml',
765
- 'xxslt' => 'application/xslt+xml',
766
- 'xxsm' => 'application/vnd.syncml+xml',
767
- 'xxspf' => 'application/xspf+xml',
768
- 'xxul' => 'application/vnd.mozilla.xul+xml',
769
- 'xxvm' => 'application/xv+xml',
770
- 'xxvml' => 'application/xv+xml',
771
-
772
- 'xxwd' => 'image/x-xwindowdump',
773
- 'xxyz' => 'chemical/x-xyz',
774
- 'xzaz' => 'application/vnd.zzazz.deck+xml',
775
- 'xzip' => 'application/zip',
776
- 'xzmm' => 'application/vnd.handheld-entertainment+xml',
777
- 'xodt' => 'application/x-vnd.oasis.opendocument.spreadsheet'
778
- );
779
  }
33
  */
34
  class Mage_Downloadable_Helper_File extends Mage_Core_Helper_Abstract
35
  {
36
+ /**
37
+ * @see Mage_Uploader_Helper_File::getMimeTypes
38
+ * @var array
39
+ */
40
+ protected $_mimeTypes;
41
+
42
+ /**
43
+ * @var Mage_Uploader_Helper_File
44
+ */
45
+ protected $_fileHelper;
46
+
47
+ /**
48
+ * Populate self::_mimeTypes array with values that set in config or pre-defined
49
+ */
50
  public function __construct()
51
  {
52
+ $this->_mimeTypes = $this->_getFileHelper()->getMimeTypes();
53
+ }
54
+
55
+ /**
56
+ * @return Mage_Uploader_Helper_File
57
+ */
58
+ protected function _getFileHelper()
59
+ {
60
+ if (!$this->_fileHelper) {
61
+ $this->_fileHelper = Mage::helper('uploader/file');
62
  }
63
+
64
+ return $this->_fileHelper;
65
  }
66
 
67
  /**
172
  return $file;
173
  }
174
 
175
+ /**
176
+ * Get MIME type for $filePath
177
+ *
178
+ * @param $filePath
179
+ * @return string
180
+ */
181
  public function getFileType($filePath)
182
  {
183
  $ext = substr($filePath, strrpos($filePath, '.')+1);
184
  return $this->_getFileTypeByExt($ext);
185
  }
186
 
187
+ /**
188
+ * Get MIME type by file extension
189
+ *
190
+ * @param $ext
191
+ * @return string
192
+ * @deprecated
193
+ */
194
  protected function _getFileTypeByExt($ext)
195
  {
196
+ return $this->_getFileHelper()->getMimeTypeByExtension($ext);
 
 
 
 
197
  }
198
 
199
+ /**
200
+ * Get all MIME types
201
+ *
202
+ * @return array
203
+ */
204
  public function getAllFileTypes()
205
  {
206
+ return array_values($this->getAllMineTypes());
207
  }
208
 
209
+ /**
210
+ * Get list of all MIME types
211
+ *
212
+ * @return array
213
+ */
214
  public function getAllMineTypes()
215
  {
216
+ return $this->_mimeTypes;
217
  }
218
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
219
  }
app/code/core/Mage/Eav/Block/Adminhtml/Attribute/Edit/Options/Abstract.php CHANGED
@@ -170,12 +170,11 @@ abstract class Mage_Eav_Block_Adminhtml_Attribute_Edit_Options_Abstract extends
170
  public function getLabelValues()
171
  {
172
  $values = array();
173
- $values[0] = $this->getAttributeObject()->getFrontend()->getLabel();
174
- // it can be array and cause bug
175
  $frontendLabel = $this->getAttributeObject()->getFrontend()->getLabel();
176
  if (is_array($frontendLabel)) {
177
- $frontendLabel = array_shift($frontendLabel);
178
  }
 
179
  $storeLabels = $this->getAttributeObject()->getStoreLabels();
180
  foreach ($this->getStores() as $store) {
181
  if ($store->getId() != 0) {
170
  public function getLabelValues()
171
  {
172
  $values = array();
 
 
173
  $frontendLabel = $this->getAttributeObject()->getFrontend()->getLabel();
174
  if (is_array($frontendLabel)) {
175
+ return $frontendLabel;
176
  }
177
+ $values[0] = $frontendLabel;
178
  $storeLabels = $this->getAttributeObject()->getStoreLabels();
179
  foreach ($this->getStores() as $store) {
180
  if ($store->getId() != 0) {
app/code/core/Mage/Eav/Model/Entity/Abstract.php CHANGED
@@ -808,13 +808,13 @@ abstract class Mage_Eav_Model_Entity_Abstract extends Mage_Core_Model_Resource_A
808
  *
809
  * @see Mage_Eav_Model_Entity_Abstract::getAttribute for $attribute format
810
  * @param integer|string|Mage_Eav_Model_Entity_Attribute_Abstract $attribute
 
811
  * @return boolean
812
  */
813
  public function isAttributeStatic($attribute)
814
  {
815
- $attrInstance = $this->getAttribute($attribute);
816
- $attrBackendStatic = $attrInstance->getBackend()->isStatic();
817
- return $attrInstance && $attrBackendStatic;
818
  }
819
 
820
  /**
@@ -1309,9 +1309,8 @@ abstract class Mage_Eav_Model_Entity_Abstract extends Mage_Core_Model_Resource_A
1309
  $this->_attributeValuesToSave = array();
1310
  $this->_attributeValuesToDelete = array();
1311
 
1312
- extract($saveData);
1313
  /**
1314
- * Import variables into the current symbol table from save data array
1315
  *
1316
  * @see Mage_Eav_Model_Entity_Attribute_Abstract::_collectSaveData()
1317
  *
@@ -1321,6 +1320,12 @@ abstract class Mage_Eav_Model_Entity_Abstract extends Mage_Core_Model_Resource_A
1321
  * @var array $update
1322
  * @var array $delete
1323
  */
 
 
 
 
 
 
1324
  $adapter = $this->_getWriteAdapter();
1325
  $insertEntity = true;
1326
  $entityTable = $this->getEntityTable();
808
  *
809
  * @see Mage_Eav_Model_Entity_Abstract::getAttribute for $attribute format
810
  * @param integer|string|Mage_Eav_Model_Entity_Attribute_Abstract $attribute
811
+ *
812
  * @return boolean
813
  */
814
  public function isAttributeStatic($attribute)
815
  {
816
+ $attrInstance = $this->getAttribute($attribute);
817
+ return $attrInstance && $attrInstance->getBackend()->isStatic();
 
818
  }
819
 
820
  /**
1309
  $this->_attributeValuesToSave = array();
1310
  $this->_attributeValuesToDelete = array();
1311
 
 
1312
  /**
1313
+ * Import variables from save data array
1314
  *
1315
  * @see Mage_Eav_Model_Entity_Attribute_Abstract::_collectSaveData()
1316
  *
1320
  * @var array $update
1321
  * @var array $delete
1322
  */
1323
+ $newObject = $saveData['newObject'];
1324
+ $entityRow = $saveData['entityRow'];
1325
+ $insert = $saveData['insert'];
1326
+ $update = $saveData['update'];
1327
+ $delete = $saveData['delete'];
1328
+
1329
  $adapter = $this->_getWriteAdapter();
1330
  $insertEntity = true;
1331
  $entityTable = $this->getEntityTable();
app/code/core/Mage/Eav/Model/Entity/Attribute.php CHANGED
@@ -225,12 +225,12 @@ class Mage_Eav_Model_Entity_Attribute extends Mage_Eav_Model_Entity_Attribute_Ab
225
  case 'text':
226
  case 'gallery':
227
  case 'media_image':
228
- case 'multiselect':
229
  $field = 'varchar';
230
  break;
231
 
232
  case 'image':
233
  case 'textarea':
 
234
  $field = 'text';
235
  break;
236
 
@@ -272,6 +272,7 @@ class Mage_Eav_Model_Entity_Attribute extends Mage_Eav_Model_Entity_Attribute_Ab
272
  case 'text':
273
  case 'price':
274
  case 'image':
 
275
  $field = 'default_value_text';
276
  break;
277
 
225
  case 'text':
226
  case 'gallery':
227
  case 'media_image':
 
228
  $field = 'varchar';
229
  break;
230
 
231
  case 'image':
232
  case 'textarea':
233
+ case 'multiselect':
234
  $field = 'text';
235
  break;
236
 
272
  case 'text':
273
  case 'price':
274
  case 'image':
275
+ case 'weight':
276
  $field = 'default_value_text';
277
  break;
278
 
app/code/core/Mage/Eav/Model/Entity/Attribute/Abstract.php CHANGED
@@ -383,7 +383,10 @@ abstract class Mage_Eav_Model_Entity_Attribute_Abstract extends Mage_Core_Model_
383
  $source = Mage::getModel($this->getSourceModel());
384
  if (!$source) {
385
  throw Mage::exception('Mage_Eav',
386
- Mage::helper('eav')->__('Source model "%s" not found for attribute "%s"',$this->getSourceModel(), $this->getAttributeCode())
 
 
 
387
  );
388
  }
389
  $this->_source = $source->setAttribute($this);
@@ -628,8 +631,14 @@ abstract class Mage_Eav_Model_Entity_Attribute_Abstract extends Mage_Core_Model_
628
  break;
629
  }
630
  $prop = $describe[$this->getAttributeCode()];
 
 
 
 
 
 
631
  $columns[$this->getAttributeCode()] = array(
632
- 'type' => $prop['DATA_TYPE'] . ($prop['LENGTH'] ? "({$prop['LENGTH']})" : ""),
633
  'unsigned' => $prop['UNSIGNED'] ? true: false,
634
  'is_null' => $prop['NULLABLE'],
635
  'default' => $prop['DEFAULT'],
383
  $source = Mage::getModel($this->getSourceModel());
384
  if (!$source) {
385
  throw Mage::exception('Mage_Eav',
386
+ Mage::helper('eav')->__('Source model "%s" not found for attribute "%s"',
387
+ $this->getSourceModel(),
388
+ $this->getAttributeCode()
389
+ )
390
  );
391
  }
392
  $this->_source = $source->setAttribute($this);
631
  break;
632
  }
633
  $prop = $describe[$this->getAttributeCode()];
634
+ $type = $prop['DATA_TYPE'];
635
+ if (isset($prop['PRECISION']) && isset($prop['SCALE'])) {
636
+ $type .= "({$prop['PRECISION']},{$prop['SCALE']})";
637
+ } else {
638
+ $type .= (isset($prop['LENGTH']) && $prop['LENGTH']) ? "({$prop['LENGTH']})" : "";
639
+ }
640
  $columns[$this->getAttributeCode()] = array(
641
+ 'type' => $type,
642
  'unsigned' => $prop['UNSIGNED'] ? true: false,
643
  'is_null' => $prop['NULLABLE'],
644
  'default' => $prop['DEFAULT'],
app/code/core/Mage/Eav/Model/Entity/Attribute/Source/Table.php CHANGED
@@ -152,7 +152,7 @@ class Mage_Eav_Model_Entity_Attribute_Source_Table extends Mage_Eav_Model_Entity
152
 
153
  if (Mage::helper('core')->useDbCompatibleMode()) {
154
  $columns[$attributeCode] = array(
155
- 'type' => $isMulti ? 'varchar(255)' : 'int',
156
  'unsigned' => false,
157
  'is_null' => true,
158
  'default' => null,
@@ -171,7 +171,7 @@ class Mage_Eav_Model_Entity_Attribute_Source_Table extends Mage_Eav_Model_Entity
171
  $type = ($isMulti) ? Varien_Db_Ddl_Table::TYPE_TEXT : Varien_Db_Ddl_Table::TYPE_INTEGER;
172
  $columns[$attributeCode] = array(
173
  'type' => $type,
174
- 'length' => $isMulti ? '255' : null,
175
  'unsigned' => false,
176
  'nullable' => true,
177
  'default' => null,
152
 
153
  if (Mage::helper('core')->useDbCompatibleMode()) {
154
  $columns[$attributeCode] = array(
155
+ 'type' => $isMulti ? 'text' : 'int',
156
  'unsigned' => false,
157
  'is_null' => true,
158
  'default' => null,
171
  $type = ($isMulti) ? Varien_Db_Ddl_Table::TYPE_TEXT : Varien_Db_Ddl_Table::TYPE_INTEGER;
172
  $columns[$attributeCode] = array(
173
  'type' => $type,
174
+ 'length' => $isMulti ? '65535' : null,
175
  'unsigned' => false,
176
  'nullable' => true,
177
  'default' => null,
app/code/core/Mage/Eav/Model/Entity/Collection/Abstract.php CHANGED
@@ -918,6 +918,7 @@ abstract class Mage_Eav_Model_Entity_Collection_Abstract extends Varien_Data_Col
918
  /**
919
  * Retrive all ids sql
920
  *
 
921
  * @return array
922
  */
923
  public function getAllIdsSql()
@@ -1409,6 +1410,7 @@ abstract class Mage_Eav_Model_Entity_Collection_Abstract extends Varien_Data_Col
1409
  foreach ($attribute as $attr) {
1410
  parent::setOrder($attr, $dir);
1411
  }
 
1412
  }
1413
  return parent::setOrder($attribute, $dir);
1414
  }
918
  /**
919
  * Retrive all ids sql
920
  *
921
+ * @deprecated
922
  * @return array
923
  */
924
  public function getAllIdsSql()
1410
  foreach ($attribute as $attr) {
1411
  parent::setOrder($attr, $dir);
1412
  }
1413
+ return $this;
1414
  }
1415
  return parent::setOrder($attribute, $dir);
1416
  }
app/code/core/Mage/ImportExport/Helper/Data.php CHANGED
@@ -36,8 +36,9 @@ class Mage_ImportExport_Helper_Data extends Mage_Core_Helper_Data
36
  /**
37
  * XML path for config data
38
  */
39
- const XML_PATH_EXPORT_LOCAL_VALID_PATH = 'general/file/importexport_local_valid_paths';
40
- const XML_PATH_BUNCH_SIZE = 'general/file/bunch_size';
 
41
 
42
  /**
43
  * Maximum size of uploaded files.
@@ -69,4 +70,14 @@ class Mage_ImportExport_Helper_Data extends Mage_Core_Helper_Data
69
  {
70
  return (int)Mage::getStoreConfig(self::XML_PATH_BUNCH_SIZE);
71
  }
 
 
 
 
 
 
 
 
 
 
72
  }
36
  /**
37
  * XML path for config data
38
  */
39
+ const XML_PATH_EXPORT_LOCAL_VALID_PATH = 'general/file/importexport_local_valid_paths';
40
+ const XML_PATH_BUNCH_SIZE = 'general/file/bunch_size';
41
+ const XML_PATH_IMPORT_CONFIGURABLE_PAGE_SIZE = 'system/import_csv/configurable_page_size';
42
 
43
  /**
44
  * Maximum size of uploaded files.
70
  {
71
  return (int)Mage::getStoreConfig(self::XML_PATH_BUNCH_SIZE);
72
  }
73
+
74
+ /**
75
+ * Get page size for import configurable products
76
+ *
77
+ * @return int
78
+ */
79
+ public function getImportConfigurablePageSize()
80
+ {
81
+ return (int)Mage::getStoreConfig(self::XML_PATH_IMPORT_CONFIGURABLE_PAGE_SIZE);
82
+ }
83
  }
app/code/core/Mage/ImportExport/Model/Export.php CHANGED
@@ -136,7 +136,9 @@ class Mage_ImportExport_Model_Export extends Mage_ImportExport_Model_Abstract
136
  }
137
 
138
  /**
139
- * Export data.
 
 
140
  *
141
  * @throws Mage_Core_Exception
142
  * @return string
@@ -168,6 +170,50 @@ class Mage_ImportExport_Model_Export extends Mage_ImportExport_Model_Abstract
168
  }
169
  }
170
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
171
  /**
172
  * Clean up already loaded attribute collection.
173
  *
136
  }
137
 
138
  /**
139
+ * Export data and return contents of temporary file.
140
+ *
141
+ * @deprecated after ver 1.9.2.4 use $this->exportFile() instead
142
  *
143
  * @throws Mage_Core_Exception
144
  * @return string
170
  }
171
  }
172
 
173
+ /**
174
+ * Export data and return temporary file through array.
175
+ *
176
+ * This method will return following array:
177
+ *
178
+ * array(
179
+ * 'rows' => count of written rows,
180
+ * 'value' => path to created file,
181
+ * 'type' => 'file'
182
+ * )
183
+ *
184
+ * @throws Mage_Core_Exception
185
+ * @return array
186
+ */
187
+ public function exportFile()
188
+ {
189
+ if (isset($this->_data[self::FILTER_ELEMENT_GROUP])) {
190
+ $this->addLogComment(Mage::helper('importexport')->__('Begin export of %s', $this->getEntity()));
191
+ $result = $this->_getEntityAdapter()
192
+ ->setWriter($this->_getWriter())
193
+ ->exportFile();
194
+
195
+ if (isset($result['rows'])) {
196
+ if (!$result['rows']) {
197
+ Mage::throwException(
198
+ Mage::helper('importexport')->__('There is no data for export')
199
+ );
200
+ }
201
+ if ($result['rows']) {
202
+ $this->addLogComment(array(
203
+ Mage::helper('importexport')->__('Exported %s rows.', $result['rows']),
204
+ Mage::helper('importexport')->__('Export has been done.')
205
+ ));
206
+ }
207
+ }
208
+
209
+ return $result;
210
+ } else {
211
+ Mage::throwException(
212
+ Mage::helper('importexport')->__('No filter data provided')
213
+ );
214
+ }
215
+ }
216
+
217
  /**
218
  * Clean up already loaded attribute collection.
219
  *
app/code/core/Mage/ImportExport/Model/Export/Adapter/Abstract.php CHANGED
@@ -47,6 +47,13 @@ abstract class Mage_ImportExport_Model_Export_Adapter_Abstract
47
  */
48
  protected $_headerCols = null;
49
 
 
 
 
 
 
 
 
50
  /**
51
  * Adapter object constructor.
52
  *
@@ -124,6 +131,16 @@ abstract class Mage_ImportExport_Model_Export_Adapter_Abstract
124
  return '';
125
  }
126
 
 
 
 
 
 
 
 
 
 
 
127
  /**
128
  * Set column names.
129
  *
47
  */
48
  protected $_headerCols = null;
49
 
50
+ /**
51
+ * Count of rows
52
+ *
53
+ * @var int
54
+ */
55
+ protected $_rowsCount = 0;
56
+
57
  /**
58
  * Adapter object constructor.
59
  *
131
  return '';
132
  }
133
 
134
+ /**
135
+ * Get count of wrote lines
136
+ *
137
+ * @return int
138
+ */
139
+ public function getRowsCount()
140
+ {
141
+ return $this->_rowsCount;
142
+ }
143
+
144
  /**
145
  * Set column names.
146
  *
app/code/core/Mage/ImportExport/Model/Export/Adapter/Csv.php CHANGED
@@ -125,6 +125,8 @@ class Mage_ImportExport_Model_Export_Adapter_Csv extends Mage_ImportExport_Model
125
  $this->_enclosure
126
  );
127
 
 
 
128
  return $this;
129
  }
130
 
125
  $this->_enclosure
126
  );
127
 
128
+ $this->_rowsCount++;
129
+
130
  return $this;
131
  }
132
 
app/code/core/Mage/ImportExport/Model/Export/Entity/Abstract.php CHANGED
@@ -153,6 +153,27 @@ abstract class Mage_ImportExport_Model_Export_Entity_Abstract
153
  */
154
  protected $_writer;
155
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
156
  /**
157
  * Constructor.
158
  *
@@ -165,6 +186,20 @@ abstract class Mage_ImportExport_Model_Export_Entity_Abstract
165
  $this->_connection = Mage::getSingleton('core/resource')->getConnection('write');
166
  }
167
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
168
  /**
169
  * Initialize stores hash.
170
  *
@@ -173,9 +208,11 @@ abstract class Mage_ImportExport_Model_Export_Entity_Abstract
173
  protected function _initStores()
174
  {
175
  foreach (Mage::app()->getStores(true) as $store) {
176
- $this->_storeIdToCode[$store->getId()] = $store->getCode();
 
177
  }
178
  ksort($this->_storeIdToCode); // to ensure that 'admin' store (ID is zero) goes first
 
179
 
180
  return $this;
181
  }
@@ -319,10 +356,28 @@ abstract class Mage_ImportExport_Model_Export_Entity_Abstract
319
  /**
320
  * Export process.
321
  *
 
 
322
  * @return string
323
  */
324
  abstract public function export();
325
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
326
  /**
327
  * Clean up attribute collection.
328
  *
@@ -367,7 +422,8 @@ abstract class Mage_ImportExport_Model_Export_Entity_Abstract
367
 
368
  try {
369
  foreach ($attribute->getSource()->getAllOptions(false) as $option) {
370
- foreach (is_array($option['value']) ? $option['value'] : array($option) as $innerOption) {
 
371
  if (strlen($innerOption['value'])) { // skip ' -- Please Select -- ' option
372
  $options[$innerOption['value']] = $innerOption[$index];
373
  }
153
  */
154
  protected $_writer;
155
 
156
+ /**
157
+ * Array of pairs store ID to its code.
158
+ *
159
+ * @var array
160
+ */
161
+ protected $_storeIdToCode = array();
162
+
163
+ /**
164
+ * Store Id-to-website
165
+ *
166
+ * @var array
167
+ */
168
+ protected $_storeIdToWebsiteId = array();
169
+
170
+ /**
171
+ * Website ID-to-code.
172
+ *
173
+ * @var array
174
+ */
175
+ protected $_websiteIdToCode = array();
176
+
177
  /**
178
  * Constructor.
179
  *
186
  $this->_connection = Mage::getSingleton('core/resource')->getConnection('write');
187
  }
188
 
189
+ /**
190
+ * Initialize website values.
191
+ *
192
+ * @return Mage_ImportExport_Model_Export_Entity_Customer
193
+ */
194
+ protected function _initWebsites()
195
+ {
196
+ /** @var $website Mage_Core_Model_Website */
197
+ foreach (Mage::app()->getWebsites(true) as $website) {
198
+ $this->_websiteIdToCode[$website->getId()] = $website->getCode();
199
+ }
200
+ return $this;
201
+ }
202
+
203
  /**
204
  * Initialize stores hash.
205
  *
208
  protected function _initStores()
209
  {
210
  foreach (Mage::app()->getStores(true) as $store) {
211
+ $this->_storeIdToCode[$store->getId()] = $store->getCode();
212
+ $this->_storeIdToWebsiteId[$store->getId()] = $store->getWebsiteId();
213
  }
214
  ksort($this->_storeIdToCode); // to ensure that 'admin' store (ID is zero) goes first
215
+ sort($this->_storeIdToWebsiteId);
216
 
217
  return $this;
218
  }
356
  /**
357
  * Export process.
358
  *
359
+ * @deprecated after ver 1.9.2.4 use $this->exportFile() instead
360
+ *
361
  * @return string
362
  */
363
  abstract public function export();
364
 
365
+ /**
366
+ * Export data and return temporary file through array.
367
+ *
368
+ * This method will return following array:
369
+ *
370
+ * array(
371
+ * 'rows' => count of written rows,
372
+ * 'value' => path to created file,
373
+ * 'type' => 'file'
374
+ * )
375
+ *
376
+ * @throws Mage_Core_Exception
377
+ * @return array
378
+ */
379
+ abstract function exportFile();
380
+
381
  /**
382
  * Clean up attribute collection.
383
  *
422
 
423
  try {
424
  foreach ($attribute->getSource()->getAllOptions(false) as $option) {
425
+ $innerOptions = is_array($option['value']) ? $option['value'] : array($option);
426
+ foreach ($innerOptions as $innerOption) {
427
  if (strlen($innerOption['value'])) { // skip ' -- Please Select -- ' option
428
  $options[$innerOption['value']] = $innerOption[$index];
429
  }
app/code/core/Mage/ImportExport/Model/Export/Entity/Customer.php CHANGED
@@ -75,20 +75,6 @@ class Mage_ImportExport_Model_Export_Entity_Customer extends Mage_ImportExport_M
75
  */
76
  protected $_permanentAttributes = array(self::COL_EMAIL, self::COL_WEBSITE, self::COL_STORE);
77
 
78
- /**
79
- * Array of pairs store ID to its code.
80
- *
81
- * @var array
82
- */
83
- protected $_storeIdToCode = array();
84
-
85
- /**
86
- * Website ID-to-code.
87
- *
88
- * @var array
89
- */
90
- protected $_websiteIdToCode = array();
91
-
92
  /**
93
  * Constructor.
94
  *
@@ -132,51 +118,97 @@ class Mage_ImportExport_Model_Export_Entity_Customer extends Mage_ImportExport_M
132
  }
133
 
134
  /**
135
- * Export process.
 
 
136
  *
137
  * @return string
138
  */
139
  public function export()
140
  {
141
- $collection = $this->_prepareEntityCollection(Mage::getResourceModel('customer/customer_collection'));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
142
  $validAttrCodes = $this->_getExportAttrCodes();
143
  $writer = $this->getWriter();
144
  $defaultAddrMap = Mage_ImportExport_Model_Import_Entity_Customer_Address::getDefaultAddressAttrMapping();
145
 
146
  // prepare address data
147
- $addrAttributes = array();
148
- $addrColNames = array();
149
- $customerAddrs = array();
150
-
151
- foreach (Mage::getResourceModel('customer/address_attribute_collection')
152
- ->addSystemHiddenFilter()
153
- ->addExcludeHiddenFrontendFilter() as $attribute) {
154
- $options = array();
155
- $attrCode = $attribute->getAttributeCode();
156
 
157
- if ($attribute->usesSource() && 'country_id' != $attrCode) {
158
- foreach ($attribute->getSource()->getAllOptions(false) as $option) {
159
- foreach (is_array($option['value']) ? $option['value'] : array($option) as $innerOption) {
160
- if (strlen($innerOption['value'])) { // skip ' -- Please Select -- ' option
161
- $options[$innerOption['value']] = $innerOption['label'];
162
- }
163
- }
164
- }
165
- }
166
- $addrAttributes[$attrCode] = $options;
167
  $addrColNames[] = Mage_ImportExport_Model_Import_Entity_Customer_Address::getColNameForAttrCode($attrCode);
168
  }
169
  foreach (Mage::getResourceModel('customer/address_collection')->addAttributeToSelect('*') as $address) {
170
  $addrRow = array();
171
 
172
- foreach ($addrAttributes as $attrCode => $attrValues) {
 
 
 
 
173
  if (null !== $address->getData($attrCode)) {
174
- $value = $address->getData($attrCode);
 
 
 
 
175
 
176
- if ($attrValues) {
 
 
 
 
 
 
 
 
177
  $value = $attrValues[$value];
178
  }
179
- $column = Mage_ImportExport_Model_Import_Entity_Customer_Address::getColNameForAttrCode($attrCode);
180
  $addrRow[$column] = $value;
181
  }
182
  }
@@ -189,49 +221,108 @@ class Mage_ImportExport_Model_Export_Entity_Customer extends Mage_ImportExport_M
189
  array('password'), $addrColNames,
190
  array_keys($defaultAddrMap)
191
  ));
192
- foreach ($collection as $itemId => $item) { // go through all customers
193
- $row = array();
 
 
 
 
 
 
 
194
 
195
- // go through all valid attribute codes
196
- foreach ($validAttrCodes as $attrCode) {
197
- $attrValue = $item->getData($attrCode);
198
 
199
- if (isset($this->_attributeValues[$attrCode])
200
- && isset($this->_attributeValues[$attrCode][$attrValue])
201
- ) {
202
- $attrValue = $this->_attributeValues[$attrCode][$attrValue];
203
- }
204
- if (null !== $attrValue) {
205
- $row[$attrCode] = $attrValue;
206
- }
 
 
207
  }
208
- $row[self::COL_WEBSITE] = $this->_websiteIdToCode[$item['website_id']];
209
- $row[self::COL_STORE] = $this->_storeIdToCode[$item['store_id']];
210
 
211
- // addresses injection
212
- $defaultAddrs = array();
 
 
 
213
 
214
- foreach ($defaultAddrMap as $colName => $addrAttrCode) {
215
- if (!empty($item[$addrAttrCode])) {
216
- $defaultAddrs[$item[$addrAttrCode]][] = $colName;
217
- }
218
- }
219
- if (isset($customerAddrs[$itemId])) {
220
- while (($addrRow = each($customerAddrs[$itemId]))) {
221
- if (isset($defaultAddrs[$addrRow['key']])) {
222
- foreach ($defaultAddrs[$addrRow['key']] as $colName) {
223
- $row[$colName] = 1;
224
- }
225
  }
226
- $writer->writeRow(array_merge($row, $addrRow['value']));
227
 
228
- $row = array();
 
 
 
229
  }
230
- } else {
231
- $writer->writeRow($row);
232
  }
233
  }
234
- return $writer->getContents();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
235
  }
236
 
237
  /**
@@ -247,7 +338,7 @@ class Mage_ImportExport_Model_Export_Entity_Customer extends Mage_ImportExport_M
247
  $data = $this->_attributeOverrides[$attribute->getAttributeCode()];
248
 
249
  if (isset($data['options_method']) && method_exists($this, $data['options_method'])) {
250
- $data['filter_options'] = $this->$data['options_method']();
251
  }
252
  $attribute->addData($data);
253
  }
@@ -274,4 +365,152 @@ class Mage_ImportExport_Model_Export_Entity_Customer extends Mage_ImportExport_M
274
  {
275
  return 'customer';
276
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
277
  }
75
  */
76
  protected $_permanentAttributes = array(self::COL_EMAIL, self::COL_WEBSITE, self::COL_STORE);
77
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
78
  /**
79
  * Constructor.
80
  *
118
  }
119
 
120
  /**
121
+ * Export process and return contents of temporary file
122
+ *
123
+ * @deprecated after ver 1.9.2.4 use $this->exportFile() instead
124
  *
125
  * @return string
126
  */
127
  public function export()
128
  {
129
+ $this->_prepareExport();
130
+
131
+ return $this->getWriter()->getContents();
132
+ }
133
+
134
+ /**
135
+ * Export process and return temporary file through array
136
+ *
137
+ * This method will return following array:
138
+ *
139
+ * array(
140
+ * 'rows' => count of written rows,
141
+ * 'value' => path to created file
142
+ * )
143
+ *
144
+ * @return array
145
+ */
146
+ public function exportFile()
147
+ {
148
+ $this->_prepareExport();
149
+
150
+ $writer = $this->getWriter();
151
+
152
+ return array(
153
+ 'rows' => $writer->getRowsCount(),
154
+ 'value' => $writer->getDestination()
155
+ );
156
+ }
157
+
158
+ /**
159
+ * Prepare data for export and write its to temporary file through writer.
160
+ *
161
+ * @return void
162
+ */
163
+ protected function _prepareExport()
164
+ {
165
+ $collection = $this->_prepareEntityCollection(Mage::getResourceModel('customer/customer_collection'));
166
  $validAttrCodes = $this->_getExportAttrCodes();
167
  $writer = $this->getWriter();
168
  $defaultAddrMap = Mage_ImportExport_Model_Import_Entity_Customer_Address::getDefaultAddressAttrMapping();
169
 
170
  // prepare address data
171
+ $allAddressAttributeOptions = array();
172
+ $addrColNames = array();
173
+ $customerAddrs = array();
174
+ $addressAttributeCollection = Mage::getResourceModel('customer/address_attribute_collection')
175
+ ->addSystemHiddenFilter()
176
+ ->addExcludeHiddenFrontendFilter();
177
+ $addressAttributes = array();
178
+ $addrAttributeMultiSelect = array();
179
+ $customerAttributeMultiSelect = array();
180
 
181
+ foreach ($addressAttributeCollection as $attribute) {
182
+ $attrCode = $attribute->getAttributeCode();
183
+ $allAddressAttributeOptions[$attrCode] = $this->_getAddressAttributeOptions($attribute);
 
 
 
 
 
 
 
184
  $addrColNames[] = Mage_ImportExport_Model_Import_Entity_Customer_Address::getColNameForAttrCode($attrCode);
185
  }
186
  foreach (Mage::getResourceModel('customer/address_collection')->addAttributeToSelect('*') as $address) {
187
  $addrRow = array();
188
 
189
+ if (empty($addressAttributes)) {
190
+ $addressAttributes = $address->getAttributes();
191
+ }
192
+ foreach ($allAddressAttributeOptions as $attrCode => $attrValues) {
193
+ $column = Mage_ImportExport_Model_Import_Entity_Customer_Address::getColNameForAttrCode($attrCode);
194
  if (null !== $address->getData($attrCode)) {
195
+ if (!isset($addressAttributes[$attrCode])) {
196
+ $addressAttributes = array_merge($addressAttributes, $address->getAttributes());
197
+ }
198
+ $addressAttribute = $addressAttributes[$attrCode];
199
+ $value = $address->getData($attrCode);
200
 
201
+ if ($addressAttribute->getFrontendInput() == 'multiselect') {
202
+ $optionIds = explode(',', $value);
203
+ $optionTexts = array();
204
+ foreach ($optionIds as $optionId) {
205
+ $optionText = $addressAttribute->getSource()->getOptionText($optionId);
206
+ $optionTexts[$optionId] = $optionText;
207
+ }
208
+ $addrAttributeMultiSelect[$address['parent_id']][$address->getId()][$column] = $optionTexts;
209
+ } elseif ($attrValues) {
210
  $value = $attrValues[$value];
211
  }
 
212
  $addrRow[$column] = $value;
213
  }
214
  }
221
  array('password'), $addrColNames,
222
  array_keys($defaultAddrMap)
223
  ));
224
+ foreach ($collection as $customerId => $customer) {
225
+ $customerAddress = array();
226
+ if (isset($customerAddrs[$customerId])) {
227
+ $customerAddress = $customerAddrs[$customerId];
228
+ }
229
+ $addressMultiselect= array();
230
+ if (isset($addrAttributeMultiSelect[$customerId])) {
231
+ $addressMultiselect = $addrAttributeMultiSelect[$customerId];
232
+ }
233
 
234
+ $row = $this->_prepareExportRow($customer, $customerAttributeMultiSelect);
235
+ $defaultAddrs = $this->_prepareDefaultAddress($customer);
 
236
 
237
+ $addrRow = array();
238
+ $currentAddressId = 0;
239
+ if (isset($customerAddrs[$customerId])) {
240
+ list($addressId, $addrRow) = $this->_getNextAddressRow($customerAddress);
241
+ $row = $this->_addDefaultAddressFields($defaultAddrs, $addressId, $row);
242
+ $addrRow = $this->_addNextAddressOptions($addressMultiselect, $addressId, $addrRow);
243
+ $currentAddressId = $addressId;
244
+ }
245
+ foreach ($customerAttributeMultiSelect as $column => &$multiSelectOptions) {
246
+ $row[$column] = array_shift($multiSelectOptions);
247
  }
248
+ $writeRow = array_merge($row, $addrRow);
249
+ $writer->writeRow($writeRow);
250
 
251
+ $additionalRowsCount = $this->_getAdditionalRowsCount($customerAddress,
252
+ $addressMultiselect, $customerAttributeMultiSelect);
253
+ if ($additionalRowsCount) {
254
+ for ($i = 0; $i < $additionalRowsCount; $i++) {
255
+ $writeRow = array();
256
 
257
+ foreach ($customerAttributeMultiSelect as $column => &$multiSelectOptions) {
258
+ $writeRow[$column] = array_shift($multiSelectOptions);
259
+ }
260
+ if (!$this->_isExistMultiSelectOptions($addressMultiselect, $currentAddressId)) {
261
+ list($addressId, $addrRow) = $this->_getNextAddressRow($customerAddress);
262
+ $currentAddressId = $addressId;
263
+ $addrRow = $this->_addNextAddressOptions($addressMultiselect, $currentAddressId, $addrRow);
264
+ } else {
265
+ $addrRow = array();
266
+ $addrRow = $this->_addNextAddressOptions($addressMultiselect, $currentAddressId, $addrRow);
 
267
  }
 
268
 
269
+ if ($addrRow) {
270
+ $writeRow = array_merge($writeRow, $addrRow);
271
+ }
272
+ $writer->writeRow($writeRow);
273
  }
 
 
274
  }
275
  }
276
+ }
277
+
278
+ /**
279
+ * Get Additional Rows Count
280
+ *
281
+ * @param array $customerAddress
282
+ * @param array $addrMultiSelect
283
+ * @param array $customerMultiSelect
284
+ * @return int
285
+ */
286
+ protected function _getAdditionalRowsCount($customerAddress, $addrMultiSelect, $customerMultiSelect)
287
+ {
288
+ $additionalRowsCount = count($customerAddress);
289
+ $addressRowCount = 0;
290
+ $allAddressRowCount = array();
291
+
292
+ foreach ($addrMultiSelect as $addressId => $addressAttributeOptions) {
293
+ foreach ($addressAttributeOptions as $options) {
294
+ $addressRowCount = max(count($options), $addressRowCount);
295
+ $allAddressRowCount[$addressId] = $addressRowCount;
296
+ }
297
+ $addressRowCount = 0;
298
+ }
299
+
300
+ $additionalRowsCount = max(array_sum($allAddressRowCount), $additionalRowsCount);
301
+
302
+ foreach ($customerMultiSelect as $options) {
303
+ $additionalRowsCount = max(count($options), $additionalRowsCount);
304
+ }
305
+
306
+ return $additionalRowsCount;
307
+ }
308
+
309
+ /**
310
+ * Get Next Address Row
311
+ *
312
+ * @param array $customerAddress
313
+ * @return array
314
+ */
315
+ protected function _getNextAddressRow(&$customerAddress)
316
+ {
317
+ if (!empty($customerAddress)) {
318
+ reset($customerAddress);
319
+ $addressId = key($customerAddress);
320
+ $addressRow = current($customerAddress);
321
+ unset($customerAddress[$addressId]);
322
+
323
+ return array($addressId, $addressRow);
324
+ }
325
+ return array(null, null);
326
  }
327
 
328
  /**
338
  $data = $this->_attributeOverrides[$attribute->getAttributeCode()];
339
 
340
  if (isset($data['options_method']) && method_exists($this, $data['options_method'])) {
341
+ $data['filter_options'] = $this->{$data['options_method']}();
342
  }
343
  $attribute->addData($data);
344
  }
365
  {
366
  return 'customer';
367
  }
368
+
369
+ /**
370
+ * Get Address Attributes
371
+ *
372
+ * @param $attribute
373
+ * @return array
374
+ */
375
+ protected function _getAddressAttributeOptions($attribute)
376
+ {
377
+ $options = array();
378
+ $attrCode = $attribute->getAttributeCode();
379
+
380
+ if ($attribute->usesSource() && 'country_id' != $attrCode) {
381
+ foreach ($attribute->getSource()->getAllOptions(false) as $option) {
382
+ $innerOptions = is_array($option['value']) ? $option['value'] : array($option);
383
+ foreach ($innerOptions as $innerOption) {
384
+ // skip ' -- Please Select -- ' option
385
+ if (strlen($innerOption['value'])) {
386
+ $options[$innerOption['value']] = $innerOption['label'];
387
+ }
388
+ }
389
+ }
390
+ }
391
+ return $options;
392
+ }
393
+
394
+ /**
395
+ * Prepare Export Row
396
+ *
397
+ * @param Mage_Customer_Model_Customer $customer
398
+ * @param array $attributeMultiSelect
399
+ * @return array
400
+ */
401
+ protected function _prepareExportRow($customer, &$attributeMultiSelect)
402
+ {
403
+ $row = array();
404
+ $validAttrCodes = $this->_getExportAttrCodes();
405
+
406
+ // go through all valid attribute codes
407
+ foreach ($validAttrCodes as $attrCode) {
408
+ $attribute = $customer->getAttribute($attrCode);
409
+ $attrValue = $customer->getData($attrCode);
410
+
411
+ if ($attribute && $attribute->getFrontendInput() == 'multiselect') {
412
+ $optionText = (array)$attribute->getSource()->getOptionText($attrValue);
413
+ if ($optionText) {
414
+ $attributeMultiSelect[$attrCode] = $optionText;
415
+ $attrValue = null;
416
+ }
417
+ } elseif (isset($this->_attributeValues[$attrCode])
418
+ && isset($this->_attributeValues[$attrCode][$attrValue])
419
+ ) {
420
+ $attrValue = $this->_attributeValues[$attrCode][$attrValue];
421
+ }
422
+ if (null !== $attrValue) {
423
+ $row[$attrCode] = $attrValue;
424
+ }
425
+ }
426
+ $row[self::COL_WEBSITE] = $this->_websiteIdToCode[$customer['website_id']];
427
+ $row[self::COL_STORE] = $this->_storeIdToCode[$customer['store_id']];
428
+
429
+ return $row;
430
+ }
431
+
432
+ /**
433
+ * Prepare Default Address
434
+ *
435
+ * @param Mage_Customer_Model_Customer $customer
436
+ * @return array
437
+ */
438
+ protected function _prepareDefaultAddress($customer)
439
+ {
440
+ $defaultAddrMap = Mage_ImportExport_Model_Import_Entity_Customer_Address::getDefaultAddressAttrMapping();
441
+ $defaultAddrs = array();
442
+
443
+ foreach ($defaultAddrMap as $colName => $addrAttrCode) {
444
+ if (!empty($customer[$addrAttrCode])) {
445
+ $defaultAddrs[$customer[$addrAttrCode]][] = $colName;
446
+ }
447
+ }
448
+ return $defaultAddrs;
449
+ }
450
+
451
+ /**
452
+ * Add default fields to row
453
+ *
454
+ * @param $defaultAddrs
455
+ * @param $addressId
456
+ * @param $row
457
+ * @return mixed
458
+ */
459
+ protected function _addDefaultAddressFields($defaultAddrs, $addressId, $row)
460
+ {
461
+ if (isset($defaultAddrs[$addressId])) {
462
+ foreach ($defaultAddrs[$addressId] as $colName) {
463
+ $row[$colName] = 1;
464
+ }
465
+ return $row;
466
+ }
467
+ return $row;
468
+ }
469
+
470
+ /**
471
+ * Get Next Address MultiSelect option
472
+ *
473
+ * @param array $addrAttributeMultiSelect
474
+ * @param int $addressId
475
+ * @param array $addrRow
476
+ * @return array
477
+ */
478
+ protected function _addNextAddressOptions(&$addrAttributeMultiSelect, $addressId, $addrRow)
479
+ {
480
+ if (!isset($addrAttributeMultiSelect[$addressId])) {
481
+ return $addrRow;
482
+ }
483
+ $addrMultiSelectOption = &$addrAttributeMultiSelect[$addressId];
484
+ if (is_array($addrMultiSelectOption)) {
485
+ foreach ($addrMultiSelectOption as $column => &$options) {
486
+ $addrRow[$column] = array_shift($options);
487
+ }
488
+ }
489
+ return $addrRow;
490
+ }
491
+
492
+ /**
493
+ * Check if exist MultiSelect Options
494
+ *
495
+ * @param array $addrAttributeMultiSelect
496
+ * @param int $addressId
497
+ * @return bool
498
+ */
499
+ protected function _isExistMultiSelectOptions($addrAttributeMultiSelect, $addressId)
500
+ {
501
+ $result = false;
502
+ if (!isset($addrAttributeMultiSelect[$addressId])) {
503
+ return $result;
504
+ }
505
+ $addrMultiSelectOption = $addrAttributeMultiSelect[$addressId];
506
+ if (is_array($addrMultiSelectOption)) {
507
+ foreach ($addrMultiSelectOption as $option) {
508
+ if (!empty($option)) {
509
+ $result = true;
510
+ break;
511
+ }
512
+ }
513
+ }
514
+ return $result;
515
+ }
516
  }
app/code/core/Mage/ImportExport/Model/Export/Entity/Product.php CHANGED
@@ -102,24 +102,18 @@ class Mage_ImportExport_Model_Export_Entity_Product extends Mage_ImportExport_Mo
102
  protected $_productTypeModels = array();
103
 
104
  /**
105
- * Array of pairs store ID to its code.
106
  *
107
  * @var array
108
  */
109
- protected $_storeIdToCode = array();
110
 
111
  /**
112
- * Website ID-to-code.
113
  *
114
  * @var array
115
  */
116
- protected $_websiteIdToCode = array();
117
-
118
- /**
119
- * Attribute types
120
- * @var array
121
- */
122
- protected $_attributeTypes = array();
123
 
124
  /**
125
  * Constructor.
@@ -546,11 +540,49 @@ class Mage_ImportExport_Model_Export_Entity_Product extends Mage_ImportExport_Mo
546
  }
547
 
548
  /**
549
- * Export process.
 
 
550
  *
551
  * @return string
552
  */
553
  public function export()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
554
  {
555
  //Execution time may be very long
556
  set_time_limit(0);
@@ -637,7 +669,41 @@ class Mage_ImportExport_Model_Export_Entity_Product extends Mage_ImportExport_Mo
637
  $this->_attributeValues[$attrCode],
638
  array_flip($attrValue)
639
  );
640
- $rowMultiselects[$itemId][$attrCode] = $attrValue;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
641
  } else if (isset($this->_attributeValues[$attrCode][$attrValue])) {
642
  $attrValue = $this->_attributeValues[$attrCode][$attrValue];
643
  } else {
@@ -737,6 +803,7 @@ class Mage_ImportExport_Model_Export_Entity_Product extends Mage_ImportExport_Mo
737
  );
738
 
739
  foreach ($this->_storeIdToCode as $storeId => &$storeCode) {
 
740
  $options = Mage::getResourceModel('catalog/product_option_collection')
741
  ->reset()
742
  ->addTitleToResult($storeId)
@@ -769,7 +836,7 @@ class Mage_ImportExport_Model_Export_Entity_Product extends Mage_ImportExport_Mo
769
  }
770
  $values = $option->getValues();
771
  if ($values) {
772
- $firstValue = array_shift($values);
773
  $priceType = $firstValue['price_type'] == 'percent' ? '%' : '';
774
 
775
  if ($defaultStoreId == $storeId) {
@@ -788,8 +855,14 @@ class Mage_ImportExport_Model_Export_Entity_Product extends Mage_ImportExport_Mo
788
  $row['_custom_option_store'] = $this->_storeIdToCode[$storeId];
789
  }
790
  $customOptionsDataPre[$productId][$optionId][] = $row;
 
791
  }
792
  foreach ($values as $value) {
 
 
 
 
 
793
  $row = array();
794
  $valuePriceType = $value['price_type'] == 'percent' ? '%' : '';
795
 
@@ -798,7 +871,7 @@ class Mage_ImportExport_Model_Export_Entity_Product extends Mage_ImportExport_Mo
798
  $row['_custom_option_row_price'] = $value['price'] . $valuePriceType;
799
  $row['_custom_option_row_sku'] = $value['sku'];
800
  $row['_custom_option_row_sort'] = $value['sort_order'];
801
- } elseif ($value['title'] != $customOptions[0]['_custom_option_row_title']) {
802
  $row['_custom_option_row_title'] = $value['title'];
803
  }
804
  if ($row) {
@@ -905,94 +978,93 @@ class Mage_ImportExport_Model_Export_Entity_Product extends Mage_ImportExport_Mo
905
  if (!empty($configurableData[$productId])) {
906
  $dataRow = array_merge($dataRow, array_shift($configurableData[$productId]));
907
  }
908
- if(!empty($rowMultiselects[$productId])) {
909
- foreach ($rowMultiselects[$productId] as $attrKey => $attrVal) {
910
- if (!empty($rowMultiselects[$productId][$attrKey])) {
911
- $dataRow[$attrKey] = array_shift($rowMultiselects[$productId][$attrKey]);
912
  }
913
  }
914
  }
915
 
916
  $writer->writeRow($dataRow);
917
- }
918
- // calculate largest links block
919
- $largestLinks = 0;
920
 
921
- if (isset($linksRows[$productId])) {
922
- $linksRowsKeys = array_keys($linksRows[$productId]);
923
- foreach ($linksRowsKeys as $linksRowsKey) {
924
- $largestLinks = max($largestLinks, count($linksRows[$productId][$linksRowsKey]));
 
925
  }
926
- }
927
- $additionalRowsCount = max(
928
- count($rowCategories[$productId]),
929
- count($rowWebsites[$productId]),
930
- $largestLinks
931
- );
932
- if (!empty($rowTierPrices[$productId])) {
933
- $additionalRowsCount = max($additionalRowsCount, count($rowTierPrices[$productId]));
934
- }
935
- if (!empty($rowGroupPrices[$productId])) {
936
- $additionalRowsCount = max($additionalRowsCount, count($rowGroupPrices[$productId]));
937
- }
938
- if (!empty($mediaGalery[$productId])) {
939
- $additionalRowsCount = max($additionalRowsCount, count($mediaGalery[$productId]));
940
- }
941
- if (!empty($customOptionsData[$productId])) {
942
- $additionalRowsCount = max($additionalRowsCount, count($customOptionsData[$productId]));
943
- }
944
- if (!empty($configurableData[$productId])) {
945
- $additionalRowsCount = max($additionalRowsCount, count($configurableData[$productId]));
946
- }
947
- if (!empty($rowMultiselects[$productId])) {
948
- foreach($rowMultiselects[$productId] as $attributes) {
949
- $additionalRowsCount = max($additionalRowsCount, count($attributes));
950
  }
951
- }
952
-
953
- if ($additionalRowsCount) {
954
- for ($i = 0; $i < $additionalRowsCount; $i++) {
955
- $dataRow = array();
956
-
957
- $this->_updateDataWithCategoryColumns($dataRow, $rowCategories, $productId);
958
- if ($rowWebsites[$productId]) {
959
- $dataRow['_product_websites'] = $this
960
- ->_websiteIdToCode[array_shift($rowWebsites[$productId])];
961
- }
962
- if (!empty($rowTierPrices[$productId])) {
963
- $dataRow = array_merge($dataRow, array_shift($rowTierPrices[$productId]));
964
- }
965
- if (!empty($rowGroupPrices[$productId])) {
966
- $dataRow = array_merge($dataRow, array_shift($rowGroupPrices[$productId]));
967
- }
968
- if (!empty($mediaGalery[$productId])) {
969
- $dataRow = array_merge($dataRow, array_shift($mediaGalery[$productId]));
970
  }
971
- foreach ($linkIdColPrefix as $linkId => &$colPrefix) {
972
- if (!empty($linksRows[$productId][$linkId])) {
973
- $linkData = array_shift($linksRows[$productId][$linkId]);
974
- $dataRow[$colPrefix . 'position'] = $linkData['position'];
975
- $dataRow[$colPrefix . 'sku'] = $linkData['sku'];
976
-
977
- if (null !== $linkData['default_qty']) {
978
- $dataRow[$colPrefix . 'default_qty'] = $linkData['default_qty'];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
979
  }
980
  }
981
- }
982
- if (!empty($customOptionsData[$productId])) {
983
- $dataRow = array_merge($dataRow, array_shift($customOptionsData[$productId]));
984
- }
985
- if (!empty($configurableData[$productId])) {
986
- $dataRow = array_merge($dataRow, array_shift($configurableData[$productId]));
987
- }
988
- if(!empty($rowMultiselects[$productId])) {
989
- foreach($rowMultiselects[$productId] as $attrKey=>$attrVal) {
990
- if(!empty($rowMultiselects[$productId][$attrKey])) {
991
- $dataRow[$attrKey] = array_shift($rowMultiselects[$productId][$attrKey]);
992
  }
993
  }
 
994
  }
995
- $writer->writeRow($dataRow);
996
  }
997
  }
998
  }
@@ -1058,6 +1130,7 @@ class Mage_ImportExport_Model_Export_Entity_Product extends Mage_ImportExport_Mo
1058
  $this->_attributeValues[$attribute->getAttributeCode()] = $this->getAttributeOptions($attribute);
1059
  $this->_attributeTypes[$attribute->getAttributeCode()] =
1060
  Mage_ImportExport_Model_Import::getAttributeType($attribute);
 
1061
  }
1062
  return $this;
1063
  }
102
  protected $_productTypeModels = array();
103
 
104
  /**
105
+ * Attribute types
106
  *
107
  * @var array
108
  */
109
+ protected $_attributeTypes = array();
110
 
111
  /**
112
+ * Attribute scopes
113
  *
114
  * @var array
115
  */
116
+ protected $_attributeScopes = array();
 
 
 
 
 
 
117
 
118
  /**
119
  * Constructor.
540
  }
541
 
542
  /**
543
+ * Export process and return contents of temporary file.
544
+ *
545
+ * @deprecated after ver 1.9.2.4 use $this->exportFile() instead
546
  *
547
  * @return string
548
  */
549
  public function export()
550
+ {
551
+ $this->_prepareExport();
552
+
553
+ return $this->getWriter()->getContents();
554
+ }
555
+
556
+ /**
557
+ * Export process and return temporary file through array.
558
+ *
559
+ * This method will return following array:
560
+ *
561
+ * array(
562
+ * 'rows' => count of written rows,
563
+ * 'value' => path to created file
564
+ * )
565
+ *
566
+ * @return array
567
+ */
568
+ public function exportFile()
569
+ {
570
+ $this->_prepareExport();
571
+
572
+ $writer = $this->getWriter();
573
+
574
+ return array(
575
+ 'rows' => $writer->getRowsCount(),
576
+ 'value' => $writer->getDestination()
577
+ );
578
+ }
579
+
580
+ /**
581
+ * Prepare data for export.
582
+ *
583
+ * @return void
584
+ */
585
+ protected function _prepareExport()
586
  {
587
  //Execution time may be very long
588
  set_time_limit(0);
669
  $this->_attributeValues[$attrCode],
670
  array_flip($attrValue)
671
  );
672
+
673
+ switch ($this->_attributeScopes[$attrCode]) {
674
+ case Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE:
675
+ if (isset($rowMultiselects[$itemId][0][$attrCode])
676
+ && $attrValue == $rowMultiselects[$itemId][0][$attrCode]
677
+ ) {
678
+ $attrValue = null;
679
+ }
680
+ break;
681
+
682
+ case Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL:
683
+ if ($storeId != $defaultStoreId) {
684
+ $attrValue = null;
685
+ }
686
+ break;
687
+
688
+ case Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE:
689
+ $websiteId = $this->_storeIdToWebsiteId[$storeId];
690
+ $websiteStoreId = array_search($websiteId, $this->_storeIdToWebsiteId);
691
+ if ((isset($rowMultiselects[$itemId][$websiteStoreId][$attrCode])
692
+ && $attrValue == $rowMultiselects[$itemId][$websiteStoreId][$attrCode])
693
+ || $attrValue == $rowMultiselects[$itemId][0][$attrCode]
694
+ ) {
695
+ $attrValue = null;
696
+ }
697
+ break;
698
+
699
+ default:
700
+ break;
701
+ }
702
+
703
+ if ($attrValue) {
704
+ $rowMultiselects[$itemId][$storeId][$attrCode] = $attrValue;
705
+ $rowIsEmpty = false;
706
+ }
707
  } else if (isset($this->_attributeValues[$attrCode][$attrValue])) {
708
  $attrValue = $this->_attributeValues[$attrCode][$attrValue];
709
  } else {
803
  );
804
 
805
  foreach ($this->_storeIdToCode as $storeId => &$storeCode) {
806
+ $skip = false;
807
  $options = Mage::getResourceModel('catalog/product_option_collection')
808
  ->reset()
809
  ->addTitleToResult($storeId)
836
  }
837
  $values = $option->getValues();
838
  if ($values) {
839
+ $firstValue = reset($values);
840
  $priceType = $firstValue['price_type'] == 'percent' ? '%' : '';
841
 
842
  if ($defaultStoreId == $storeId) {
855
  $row['_custom_option_store'] = $this->_storeIdToCode[$storeId];
856
  }
857
  $customOptionsDataPre[$productId][$optionId][] = $row;
858
+ $skip = true;
859
  }
860
  foreach ($values as $value) {
861
+ if ($skip) {
862
+ $skip = false;
863
+ continue;
864
+ }
865
+
866
  $row = array();
867
  $valuePriceType = $value['price_type'] == 'percent' ? '%' : '';
868
 
871
  $row['_custom_option_row_price'] = $value['price'] . $valuePriceType;
872
  $row['_custom_option_row_sku'] = $value['sku'];
873
  $row['_custom_option_row_sort'] = $value['sort_order'];
874
+ } else {
875
  $row['_custom_option_row_title'] = $value['title'];
876
  }
877
  if ($row) {
978
  if (!empty($configurableData[$productId])) {
979
  $dataRow = array_merge($dataRow, array_shift($configurableData[$productId]));
980
  }
981
+ if(!empty($rowMultiselects[$productId][$storeId])) {
982
+ foreach ($rowMultiselects[$productId][$storeId] as $attrKey => $attrVal) {
983
+ if (isset($rowMultiselects[$productId][$storeId][$attrKey])) {
984
+ $dataRow[$attrKey] = array_shift($rowMultiselects[$productId][$storeId][$attrKey]);
985
  }
986
  }
987
  }
988
 
989
  $writer->writeRow($dataRow);
990
+ // calculate largest links block
991
+ $largestLinks = 0;
 
992
 
993
+ if (isset($linksRows[$productId])) {
994
+ $linksRowsKeys = array_keys($linksRows[$productId]);
995
+ foreach ($linksRowsKeys as $linksRowsKey) {
996
+ $largestLinks = max($largestLinks, count($linksRows[$productId][$linksRowsKey]));
997
+ }
998
  }
999
+ $additionalRowsCount = max(
1000
+ count($rowCategories[$productId]),
1001
+ count($rowWebsites[$productId]),
1002
+ $largestLinks
1003
+ );
1004
+ if (!empty($rowTierPrices[$productId])) {
1005
+ $additionalRowsCount = max($additionalRowsCount, count($rowTierPrices[$productId]));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1006
  }
1007
+ if (!empty($rowGroupPrices[$productId])) {
1008
+ $additionalRowsCount = max($additionalRowsCount, count($rowGroupPrices[$productId]));
1009
+ }
1010
+ if (!empty($mediaGalery[$productId])) {
1011
+ $additionalRowsCount = max($additionalRowsCount, count($mediaGalery[$productId]));
1012
+ }
1013
+ if (!empty($customOptionsData[$productId])) {
1014
+ $additionalRowsCount = max($additionalRowsCount, count($customOptionsData[$productId]));
1015
+ }
1016
+ if (!empty($configurableData[$productId])) {
1017
+ $additionalRowsCount = max($additionalRowsCount, count($configurableData[$productId]));
1018
+ }
1019
+ if (!empty($rowMultiselects[$productId][$storeId])) {
1020
+ foreach($rowMultiselects[$productId][$storeId] as $attributes) {
1021
+ $additionalRowsCount = max($additionalRowsCount, count($attributes));
 
 
 
 
1022
  }
1023
+ }
1024
+ if ($additionalRowsCount) {
1025
+ for ($i = 0; $i < $additionalRowsCount; $i++) {
1026
+ $dataRow = array();
1027
+
1028
+ $this->_updateDataWithCategoryColumns($dataRow, $rowCategories, $productId);
1029
+ if ($rowWebsites[$productId]) {
1030
+ $dataRow['_product_websites'] = $this
1031
+ ->_websiteIdToCode[array_shift($rowWebsites[$productId])];
1032
+ }
1033
+ if (!empty($rowTierPrices[$productId])) {
1034
+ $dataRow = array_merge($dataRow, array_shift($rowTierPrices[$productId]));
1035
+ }
1036
+ if (!empty($rowGroupPrices[$productId])) {
1037
+ $dataRow = array_merge($dataRow, array_shift($rowGroupPrices[$productId]));
1038
+ }
1039
+ if (!empty($mediaGalery[$productId])) {
1040
+ $dataRow = array_merge($dataRow, array_shift($mediaGalery[$productId]));
1041
+ }
1042
+ foreach ($linkIdColPrefix as $linkId => &$colPrefix) {
1043
+ if (!empty($linksRows[$productId][$linkId])) {
1044
+ $linkData = array_shift($linksRows[$productId][$linkId]);
1045
+ $dataRow[$colPrefix . 'position'] = $linkData['position'];
1046
+ $dataRow[$colPrefix . 'sku'] = $linkData['sku'];
1047
+
1048
+ if (null !== $linkData['default_qty']) {
1049
+ $dataRow[$colPrefix . 'default_qty'] = $linkData['default_qty'];
1050
+ }
1051
  }
1052
  }
1053
+ if (!empty($customOptionsData[$productId])) {
1054
+ $dataRow = array_merge($dataRow, array_shift($customOptionsData[$productId]));
1055
+ }
1056
+ if (!empty($configurableData[$productId])) {
1057
+ $dataRow = array_merge($dataRow, array_shift($configurableData[$productId]));
1058
+ }
1059
+ if(!empty($rowMultiselects[$productId][$storeId])) {
1060
+ foreach($rowMultiselects[$productId][$storeId] as $attrKey=>$attrVal) {
1061
+ if(isset($rowMultiselects[$productId][$storeId][$attrKey])) {
1062
+ $dataRow[$attrKey] = array_shift($rowMultiselects[$productId][$storeId][$attrKey]);
1063
+ }
1064
  }
1065
  }
1066
+ $writer->writeRow($dataRow);
1067
  }
 
1068
  }
1069
  }
1070
  }
1130
  $this->_attributeValues[$attribute->getAttributeCode()] = $this->getAttributeOptions($attribute);
1131
  $this->_attributeTypes[$attribute->getAttributeCode()] =
1132
  Mage_ImportExport_Model_Import::getAttributeType($attribute);
1133
+ $this->_attributeScopes[$attribute->getAttributeCode()] = $attribute->getIsGlobal();
1134
  }
1135
  return $this;
1136
  }
app/code/core/Mage/ImportExport/Model/Export/Entity/Product/Type/Abstract.php CHANGED
@@ -96,7 +96,7 @@ abstract class Mage_ImportExport_Model_Export_Entity_Product_Type_Abstract
96
  $data = $this->_attributeOverrides[$attribute->getAttributeCode()];
97
 
98
  if (isset($data['options_method']) && method_exists($this, $data['options_method'])) {
99
- $data['filter_options'] = $this->$data['options_method']();
100
  }
101
  $attribute->addData($data);
102
 
96
  $data = $this->_attributeOverrides[$attribute->getAttributeCode()];
97
 
98
  if (isset($data['options_method']) && method_exists($this, $data['options_method'])) {
99
+ $data['filter_options'] = $this->{$data['options_method']}();
100
  }
101
  $attribute->addData($data);
102
 
app/code/core/Mage/ImportExport/Model/Import/Entity/Customer.php CHANGED
@@ -43,6 +43,7 @@ class Mage_ImportExport_Model_Import_Entity_Customer extends Mage_ImportExport_M
43
  */
44
  const SCOPE_DEFAULT = 1;
45
  const SCOPE_ADDRESS = -1;
 
46
 
47
  /**
48
  * Permanent column names.
@@ -50,9 +51,10 @@ class Mage_ImportExport_Model_Import_Entity_Customer extends Mage_ImportExport_M
50
  * Names that begins with underscore is not an attribute. This name convention is for
51
  * to avoid interference with same attribute name.
52
  */
53
- const COL_EMAIL = 'email';
54
- const COL_WEBSITE = '_website';
55
- const COL_STORE = '_store';
 
56
 
57
  /**
58
  * Error codes.
@@ -95,6 +97,13 @@ class Mage_ImportExport_Model_Import_Entity_Customer extends Mage_ImportExport_M
95
  */
96
  protected $_attributes = array();
97
 
 
 
 
 
 
 
 
98
  /**
99
  * Customer account sharing. TRUE - is global, FALSE - is per website.
100
  *
@@ -276,7 +285,7 @@ class Mage_ImportExport_Model_Import_Entity_Customer extends Mage_ImportExport_M
276
  {
277
  $collection = Mage::getResourceModel('customer/attribute_collection')->addSystemHiddenFilterWithPasswordHash();
278
  foreach ($collection as $attribute) {
279
- $this->_attributes[$attribute->getAttributeCode()] = array(
280
  'id' => $attribute->getId(),
281
  'is_required' => $attribute->getIsRequired(),
282
  'is_static' => $attribute->isStatic(),
@@ -284,6 +293,10 @@ class Mage_ImportExport_Model_Import_Entity_Customer extends Mage_ImportExport_M
284
  'type' => Mage_ImportExport_Model_Import::getAttributeType($attribute),
285
  'options' => $this->getAttributeOptions($attribute)
286
  );
 
 
 
 
287
  }
288
  return $this;
289
  }
@@ -363,6 +376,7 @@ class Mage_ImportExport_Model_Import_Entity_Customer extends Mage_ImportExport_M
363
  $nextEntityId = Mage::getResourceHelper('importexport')->getNextAutoincrement($table);
364
  $passId = $resource->getAttribute('password_hash')->getId();
365
  $passTable = $resource->getAttribute('password_hash')->getBackend()->getTable();
 
366
 
367
  while ($bunch = $this->_dataSourceModel->getNextBunch()) {
368
  $entityRowsIn = array();
@@ -415,6 +429,11 @@ class Mage_ImportExport_Model_Import_Entity_Customer extends Mage_ImportExport_M
415
  $value = $attrParams['options'][strtolower($value)];
416
  } elseif ('datetime' == $attrParams['type']) {
417
  $value = gmstrftime($strftimeFormat, strtotime($value));
 
 
 
 
 
418
  } elseif ($backModel) {
419
  $attribute->getBackend()->beforeSave($resource->setData($attrCode, $value));
420
  $value = $resource->getData($attrCode);
@@ -429,6 +448,24 @@ class Mage_ImportExport_Model_Import_Entity_Customer extends Mage_ImportExport_M
429
  if (isset($rowData['password']) && strlen($rowData['password'])) {
430
  $attributes[$passTable][$entityId][$passId] = $resource->hashPassword($rowData['password']);
431
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
432
  }
433
  }
434
  $this->_saveCustomerEntity($entityRowsIn, $entityRowsUp)->_saveCustomerAttributes($attributes);
@@ -521,7 +558,22 @@ class Mage_ImportExport_Model_Import_Entity_Customer extends Mage_ImportExport_M
521
  */
522
  public function getRowScope(array $rowData)
523
  {
524
- return strlen(trim($rowData[self::COL_EMAIL])) ? self::SCOPE_DEFAULT : self::SCOPE_ADDRESS;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
525
  }
526
 
527
  /**
@@ -607,15 +659,17 @@ class Mage_ImportExport_Model_Import_Entity_Customer extends Mage_ImportExport_M
607
  if (isset($this->_invalidRows[$rowNum])) {
608
  $email = false; // mark row as invalid for next address rows
609
  }
610
- } else {
611
  if (null === $email) { // first row is not SCOPE_DEFAULT
612
  $this->addRowError(self::ERROR_EMAIL_IS_EMPTY, $rowNum);
613
  } elseif (false === $email) { // SCOPE_DEFAULT row is invalid
614
  $this->addRowError(self::ERROR_ROW_IS_ORPHAN, $rowNum);
615
  }
616
  }
617
- // validate row data by address entity
618
- $this->_addressEntity->validateRow($rowData, $rowNum);
 
 
619
 
620
  return !isset($this->_invalidRows[$rowNum]);
621
  }
43
  */
44
  const SCOPE_DEFAULT = 1;
45
  const SCOPE_ADDRESS = -1;
46
+ const SCOPE_OPTIONS = 2;
47
 
48
  /**
49
  * Permanent column names.
51
  * Names that begins with underscore is not an attribute. This name convention is for
52
  * to avoid interference with same attribute name.
53
  */
54
+ const COL_EMAIL = 'email';
55
+ const COL_WEBSITE = '_website';
56
+ const COL_STORE = '_store';
57
+ const COL_POSTCODE = '_address_postcode';
58
 
59
  /**
60
  * Error codes.
97
  */
98
  protected $_attributes = array();
99
 
100
+ /**
101
+ * MultiSelect Attributes
102
+ *
103
+ * @var array
104
+ */
105
+ protected $_multiSelectAttributes = array();
106
+
107
  /**
108
  * Customer account sharing. TRUE - is global, FALSE - is per website.
109
  *
285
  {
286
  $collection = Mage::getResourceModel('customer/attribute_collection')->addSystemHiddenFilterWithPasswordHash();
287
  foreach ($collection as $attribute) {
288
+ $attributeArray = array(
289
  'id' => $attribute->getId(),
290
  'is_required' => $attribute->getIsRequired(),
291
  'is_static' => $attribute->isStatic(),
293
  'type' => Mage_ImportExport_Model_Import::getAttributeType($attribute),
294
  'options' => $this->getAttributeOptions($attribute)
295
  );
296
+ $this->_attributes[$attribute->getAttributeCode()] = $attributeArray;
297
+ if (Mage_ImportExport_Model_Import::getAttributeType($attribute) == 'multiselect') {
298
+ $this->_multiSelectAttributes[$attribute->getAttributeCode()] = $attributeArray;
299
+ }
300
  }
301
  return $this;
302
  }
376
  $nextEntityId = Mage::getResourceHelper('importexport')->getNextAutoincrement($table);
377
  $passId = $resource->getAttribute('password_hash')->getId();
378
  $passTable = $resource->getAttribute('password_hash')->getBackend()->getTable();
379
+ $multiSelect = array();
380
 
381
  while ($bunch = $this->_dataSourceModel->getNextBunch()) {
382
  $entityRowsIn = array();
429
  $value = $attrParams['options'][strtolower($value)];
430
  } elseif ('datetime' == $attrParams['type']) {
431
  $value = gmstrftime($strftimeFormat, strtotime($value));
432
+ } elseif ('multiselect' == $attrParams['type']) {
433
+ $value = (array)$attrParams['options'][strtolower($value)];
434
+ $attribute->getBackend()->beforeSave($resource->setData($attrCode, $value));
435
+ $value = $resource->getData($attrCode);
436
+ $multiSelect[$entityId][] = $value;
437
  } elseif ($backModel) {
438
  $attribute->getBackend()->beforeSave($resource->setData($attrCode, $value));
439
  $value = $resource->getData($attrCode);
448
  if (isset($rowData['password']) && strlen($rowData['password'])) {
449
  $attributes[$passTable][$entityId][$passId] = $resource->hashPassword($rowData['password']);
450
  }
451
+ } elseif (self::SCOPE_OPTIONS == $this->getRowScope($rowData)) {
452
+ foreach (array_intersect_key($rowData, $this->_attributes) as $attrCode => $value) {
453
+ $attribute = $resource->getAttribute($attrCode);
454
+ $attrParams = $this->_attributes[$attrCode];
455
+ if ($attrParams['type'] == 'multiselect') {
456
+ if (!isset($attrParams['options'][strtolower($value)])) {
457
+ continue;
458
+ }
459
+ $value = $attrParams['options'][strtolower($value)];
460
+ if (isset($multiSelect[$entityId])) {
461
+ $multiSelect[$entityId][] = $value;
462
+ $value = $multiSelect[$entityId];
463
+ }
464
+ $attribute->getBackend()->beforeSave($resource->setData($attrCode, $value));
465
+ $value = $resource->getData($attrCode);
466
+ $attributes[$attribute->getBackend()->getTable()][$entityId][$attrParams['id']] = $value;
467
+ }
468
+ }
469
  }
470
  }
471
  $this->_saveCustomerEntity($entityRowsIn, $entityRowsUp)->_saveCustomerAttributes($attributes);
558
  */
559
  public function getRowScope(array $rowData)
560
  {
561
+ $foundOptions = false;
562
+ foreach ($this->_multiSelectAttributes as $attrCode => $attribute) {
563
+ if ($rowData[$attrCode]) {
564
+ $foundOptions = true;
565
+ }
566
+ }
567
+
568
+ $scope = self::SCOPE_OPTIONS;
569
+ if (strlen(trim($rowData[self::COL_EMAIL]))) {
570
+ $scope = self::SCOPE_DEFAULT;
571
+ } elseif ($foundOptions) {
572
+ $scope = self::SCOPE_OPTIONS;
573
+ } elseif (strlen(trim($rowData[self::COL_POSTCODE]))) {
574
+ $scope = self::SCOPE_ADDRESS;
575
+ }
576
+ return $scope;
577
  }
578
 
579
  /**
659
  if (isset($this->_invalidRows[$rowNum])) {
660
  $email = false; // mark row as invalid for next address rows
661
  }
662
+ } elseif (self::SCOPE_OPTIONS != $rowScope) {
663
  if (null === $email) { // first row is not SCOPE_DEFAULT
664
  $this->addRowError(self::ERROR_EMAIL_IS_EMPTY, $rowNum);
665
  } elseif (false === $email) { // SCOPE_DEFAULT row is invalid
666
  $this->addRowError(self::ERROR_ROW_IS_ORPHAN, $rowNum);
667
  }
668
  }
669
+
670
+ if ($rowScope != self::SCOPE_OPTIONS) {
671
+ $this->_addressEntity->validateRow($rowData, $rowNum);
672
+ }
673
 
674
  return !isset($this->_invalidRows[$rowNum]);
675
  }
app/code/core/Mage/ImportExport/Model/Import/Entity/Customer/Address.php CHANGED
@@ -175,6 +175,7 @@ class Mage_ImportExport_Model_Import_Entity_Customer_Address extends Mage_Import
175
  $regionIdTable = $regionIdAttr->getBackend()->getTable();
176
  $regionIdAttrId = $regionIdAttr->getId();
177
  $isAppendMode = Mage_ImportExport_Model_Import::BEHAVIOR_APPEND == $this->_customer->getBehavior();
 
178
 
179
  while ($bunch = $this->_dataSourceModel->getNextBunch()) {
180
  $entityRows = array();
@@ -182,15 +183,17 @@ class Mage_ImportExport_Model_Import_Entity_Customer_Address extends Mage_Import
182
  $defaults = array(); // customer default addresses (billing/shipping) data
183
 
184
  foreach ($bunch as $rowNum => $rowData) {
185
- if (!empty($rowData[Mage_ImportExport_Model_Import_Entity_Customer::COL_EMAIL])
186
- && !empty($rowData[Mage_ImportExport_Model_Import_Entity_Customer::COL_WEBSITE])
187
- ) {
188
  $customerId = $this->_customer->getCustomerId(
189
  $rowData[Mage_ImportExport_Model_Import_Entity_Customer::COL_EMAIL],
190
  $rowData[Mage_ImportExport_Model_Import_Entity_Customer::COL_WEBSITE]
191
  );
192
  }
193
- if (!$customerId || !$this->_isRowWithAddress($rowData) || !$this->validateRow($rowData, $rowNum)) {
 
 
 
194
  continue;
195
  }
196
 
@@ -205,6 +208,9 @@ class Mage_ImportExport_Model_Import_Entity_Customer_Address extends Mage_Import
205
  $value = $attrParams['options'][strtolower($rowData[$attrAlias])];
206
  } elseif ('datetime' == $attrParams['type']) {
207
  $value = gmstrftime($strftimeFormat, strtotime($rowData[$attrAlias]));
 
 
 
208
  } else {
209
  $value = $rowData[$attrAlias];
210
  }
@@ -220,40 +226,56 @@ class Mage_ImportExport_Model_Import_Entity_Customer_Address extends Mage_Import
220
 
221
  $entityId = $nextEntityId++;
222
 
223
- // entity table data
224
- $entityRows[] = array(
225
- 'entity_id' => $entityId,
226
- 'entity_type_id' => $this->_entityTypeId,
227
- 'parent_id' => $customerId,
228
- 'created_at' => now(),
229
- 'updated_at' => now()
230
- );
231
- // attribute values
232
- foreach ($this->_attributes as $attrAlias => $attrParams) {
233
- if (isset($addressAttributes[$attrParams['id']])) {
234
- $attributes[$attrParams['table']][$entityId][$attrParams['id']]
235
- = $addressAttributes[$attrParams['id']];
 
 
 
 
236
  }
237
- }
238
- // customer default addresses
239
- foreach (self::getDefaultAddressAttrMapping() as $colName => $customerAttrCode) {
240
- if (!empty($rowData[$colName])) {
241
- $attribute = $customer->getAttribute($customerAttrCode);
242
- $defaults[$attribute->getBackend()->getTable()][$customerId][$attribute->getId()] = $entityId;
 
243
  }
244
- }
245
- // let's try to find region ID
246
- if (!empty($rowData[$regionColName])) {
247
- $countryNormalized = strtolower($rowData[$countryColName]);
248
- $regionNormalized = strtolower($rowData[$regionColName]);
249
-
250
- if (isset($this->_countryRegions[$countryNormalized][$regionNormalized])) {
251
- $regionId = $this->_countryRegions[$countryNormalized][$regionNormalized];
252
- $attributes[$regionIdTable][$entityId][$regionIdAttrId] = $regionId;
253
- // set 'region' attribute value as default name
254
- $tbl = $this->_attributes[$regionColName]['table'];
255
- $regionColNameId = $this->_attributes[$regionColName]['id'];
256
- $attributes[$tbl][$entityId][$regionColNameId] = $this->_regions[$regionId];
 
 
 
 
 
 
 
 
 
 
 
257
  }
258
  }
259
  }
@@ -486,4 +508,22 @@ class Mage_ImportExport_Model_Import_Entity_Customer_Address extends Mage_Import
486
  }
487
  return $rowIsValid;
488
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
489
  }
175
  $regionIdTable = $regionIdAttr->getBackend()->getTable();
176
  $regionIdAttrId = $regionIdAttr->getId();
177
  $isAppendMode = Mage_ImportExport_Model_Import::BEHAVIOR_APPEND == $this->_customer->getBehavior();
178
+ $multiSelect = array();
179
 
180
  while ($bunch = $this->_dataSourceModel->getNextBunch()) {
181
  $entityRows = array();
183
  $defaults = array(); // customer default addresses (billing/shipping) data
184
 
185
  foreach ($bunch as $rowNum => $rowData) {
186
+ $rowScope = $this->_getRowScope($rowData);
187
+ if ($rowScope == Mage_ImportExport_Model_Import_Entity_Customer::SCOPE_DEFAULT) {
 
188
  $customerId = $this->_customer->getCustomerId(
189
  $rowData[Mage_ImportExport_Model_Import_Entity_Customer::COL_EMAIL],
190
  $rowData[Mage_ImportExport_Model_Import_Entity_Customer::COL_WEBSITE]
191
  );
192
  }
193
+ if ($rowScope != Mage_ImportExport_Model_Import_Entity_Customer::SCOPE_OPTIONS) {
194
+ $multiSelect = array();
195
+ }
196
+ if (!$customerId) {
197
  continue;
198
  }
199
 
208
  $value = $attrParams['options'][strtolower($rowData[$attrAlias])];
209
  } elseif ('datetime' == $attrParams['type']) {
210
  $value = gmstrftime($strftimeFormat, strtotime($rowData[$attrAlias]));
211
+ } elseif ('multiselect' == $attrParams['type']) {
212
+ $value = $attrParams['options'][strtolower($rowData[$attrAlias])];
213
+ $multiSelect[$attrParams['id']][] = $value;
214
  } else {
215
  $value = $rowData[$attrAlias];
216
  }
226
 
227
  $entityId = $nextEntityId++;
228
 
229
+ if ($rowScope == Mage_ImportExport_Model_Import_Entity_Customer::SCOPE_DEFAULT
230
+ || $rowScope == Mage_ImportExport_Model_Import_Entity_Customer::SCOPE_ADDRESS
231
+ ) {
232
+ // entity table data
233
+ $entityRows[] = array(
234
+ 'entity_id' => $entityId,
235
+ 'entity_type_id' => $this->_entityTypeId,
236
+ 'parent_id' => $customerId,
237
+ 'created_at' => now(),
238
+ 'updated_at' => now()
239
+ );
240
+ // attribute values
241
+ foreach ($this->_attributes as $attrAlias => $attrParams) {
242
+ if (isset($addressAttributes[$attrParams['id']])) {
243
+ $attributes[$attrParams['table']][$entityId][$attrParams['id']]
244
+ = $addressAttributes[$attrParams['id']];
245
+ }
246
  }
247
+ // customer default addresses
248
+ foreach (self::getDefaultAddressAttrMapping() as $colName => $customerAttrCode) {
249
+ if (!empty($rowData[$colName])) {
250
+ $attribute = $customer->getAttribute($customerAttrCode);
251
+ $backendTable = $attribute->getBackend()->getTable();
252
+ $defaults[$backendTable][$customerId][$attribute->getId()] = $entityId;
253
+ }
254
  }
255
+ // let's try to find region ID
256
+ if (!empty($rowData[$regionColName])) {
257
+ $countryNormalized = strtolower($rowData[$countryColName]);
258
+ $regionNormalized = strtolower($rowData[$regionColName]);
259
+
260
+ if (isset($this->_countryRegions[$countryNormalized][$regionNormalized])) {
261
+ $regionId = $this->_countryRegions[$countryNormalized][$regionNormalized];
262
+ $attributes[$regionIdTable][$entityId][$regionIdAttrId] = $regionId;
263
+ // set 'region' attribute value as default name
264
+ $tbl = $this->_attributes[$regionColName]['table'];
265
+ $regionColNameId = $this->_attributes[$regionColName]['id'];
266
+ $attributes[$tbl][$entityId][$regionColNameId] = $this->_regions[$regionId];
267
+ }
268
+ }
269
+ } else {
270
+ foreach (array_intersect_key($rowData, $this->_attributes) as $attrCode => $value) {
271
+ $attrParams = $this->_attributes[$attrCode];
272
+ if ($attrParams['type'] == 'multiselect') {
273
+ $value = '';
274
+ if (isset($multiSelect[$attrParams['id']])) {
275
+ $value = implode(',', $multiSelect[$attrParams['id']]);
276
+ }
277
+ $attributes[$this->_attributes[$attrCode]['table']][$entityId][$attrParams['id']] = $value;
278
+ }
279
  }
280
  }
281
  }
508
  }
509
  return $rowIsValid;
510
  }
511
+
512
+ /**
513
+ * Get current scope
514
+ *
515
+ * @param $rowData
516
+ * @return int
517
+ */
518
+ protected function _getRowScope($rowData)
519
+ {
520
+ if (strlen(trim($rowData[Mage_ImportExport_Model_Import_Entity_Customer::COL_EMAIL]))) {
521
+ $scope = Mage_ImportExport_Model_Import_Entity_Customer::SCOPE_DEFAULT;
522
+ } elseif (strlen(trim($rowData[Mage_ImportExport_Model_Import_Entity_Customer::COL_POSTCODE]))) {
523
+ $scope = Mage_ImportExport_Model_Import_Entity_Customer::SCOPE_ADDRESS;
524
+ } else {
525
+ $scope = Mage_ImportExport_Model_Import_Entity_Customer::SCOPE_OPTIONS;
526
+ }
527
+ return $scope;
528
+ }
529
  }
app/code/core/Mage/ImportExport/Model/Import/Entity/Product.php CHANGED
@@ -422,6 +422,13 @@ class Mage_ImportExport_Model_Import_Entity_Product extends Mage_ImportExport_Mo
422
  */
423
  protected $_fileUploader;
424
 
 
 
 
 
 
 
 
425
  /**
426
  * Constructor.
427
  *
@@ -823,6 +830,9 @@ class Mage_ImportExport_Model_Import_Entity_Product extends Mage_ImportExport_Mo
823
  );
824
 
825
  $alreadyUsedProductIds = array();
 
 
 
826
  while ($bunch = $this->_dataSourceModel->getNextBunch()) {
827
  $customOptions = array(
828
  'product_id' => array(),
@@ -833,7 +843,8 @@ class Mage_ImportExport_Model_Import_Entity_Product extends Mage_ImportExport_Mo
833
  $typeTitleTable => array(),
834
  $typeValueTable => array()
835
  );
836
-
 
837
  foreach ($bunch as $rowNum => $rowData) {
838
  $this->_filterRowData($rowData);
839
  if (!$this->isRowAllowedToImport($rowData, $rowNum)) {
@@ -844,6 +855,13 @@ class Mage_ImportExport_Model_Import_Entity_Product extends Mage_ImportExport_Mo
844
  } elseif (!isset($productId)) {
845
  continue;
846
  }
 
 
 
 
 
 
 
847
  if (!empty($rowData['_custom_option_store'])) {
848
  if (!isset($this->_storeCodeToId[$rowData['_custom_option_store']])) {
849
  continue;
@@ -920,41 +938,66 @@ class Mage_ImportExport_Model_Import_Entity_Product extends Mage_ImportExport_Mo
920
  }
921
  $prevOptionId = $nextOptionId++; // increment option id, but preserve value for $typeValueTable
922
  }
923
- if ($typeSpecific[$type] === true && !empty($rowData['_custom_option_row_title'])
924
- && empty($rowData['_custom_option_store'])) {
925
- // complex CO option row
926
- $customOptions[$typeValueTable][$prevOptionId][] = array(
927
- 'option_type_id' => $nextValueId,
928
- 'sort_order' => empty($rowData['_custom_option_row_sort'])
929
- ? 0 : abs($rowData['_custom_option_row_sort']),
930
- 'sku' => !empty($rowData['_custom_option_row_sku'])
931
- ? $rowData['_custom_option_row_sku'] : ''
932
- );
933
- if (!isset($customOptions[$typeTitleTable][$nextValueId][0])) { // ensure default title is set
934
- $customOptions[$typeTitleTable][$nextValueId][0] = $rowData['_custom_option_row_title'];
935
- }
936
- $customOptions[$typeTitleTable][$nextValueId][$storeId] = $rowData['_custom_option_row_title'];
937
 
938
- if (!empty($rowData['_custom_option_row_price'])) {
939
- $typePriceRow = array(
940
- 'price' => (float) rtrim($rowData['_custom_option_row_price'], '%'),
941
- 'price_type' => 'fixed'
 
 
 
 
 
942
  );
943
- if ('%' == substr($rowData['_custom_option_row_price'], -1)) {
944
- $typePriceRow['price_type'] = 'percent';
945
  }
946
- if ($priceIsGlobal) {
947
- $customOptions[$typePriceTable][$nextValueId][0] = $typePriceRow;
948
- } else {
949
- // ensure default price is set
950
- if (!isset($customOptions[$typePriceTable][$nextValueId][0])) {
 
 
 
 
 
 
951
  $customOptions[$typePriceTable][$nextValueId][0] = $typePriceRow;
 
 
 
 
 
 
952
  }
953
- $customOptions[$typePriceTable][$nextValueId][$storeId] = $typePriceRow;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
954
  }
955
  }
956
- $nextValueId++;
957
  }
 
958
  if (!empty($rowData['_custom_option_title'])) {
959
  if (!isset($customOptions[$titleTable][$prevOptionId][0])) { // ensure default title is set
960
  $customOptions[$titleTable][$prevOptionId][0] = $rowData['_custom_option_title'];
@@ -1105,13 +1148,13 @@ class Mage_ImportExport_Model_Import_Entity_Product extends Mage_ImportExport_Mo
1105
  $sku = $rowData[self::COL_SKU];
1106
  }
1107
  foreach ($this->_linkNameToId as $linkName => $linkId) {
1108
- $productId = $this->_newSku[$sku]['entity_id'];
1109
- $productIds[] = $productId;
1110
  if (isset($rowData[$linkName . 'sku'])) {
1111
- $linkedSku = $rowData[$linkName . 'sku'];
 
 
1112
 
1113
  if ((isset($this->_newSku[$linkedSku]) || isset($this->_oldSku[$linkedSku]))
1114
- && $linkedSku != $sku) {
1115
  if (isset($this->_newSku[$linkedSku])) {
1116
  $linkedId = $this->_newSku[$linkedSku]['entity_id'];
1117
  } else {
@@ -1189,19 +1232,21 @@ class Mage_ImportExport_Model_Import_Entity_Product extends Mage_ImportExport_Mo
1189
  );
1190
  }
1191
 
1192
- /*
1193
- If the store based values are not provided for a particular store,
1194
- we default to the default scope values.
1195
- In this case, remove all the existing store based values stored in the table.
1196
- */
1197
- $where = $this->_connection->quoteInto('store_id NOT IN (?)', array_keys($storeValues)) .
1198
- $this->_connection->quoteInto(' AND attribute_id = ?', $attributeId) .
1199
- $this->_connection->quoteInto(' AND entity_id = ?', $productId) .
1200
- $this->_connection->quoteInto(' AND entity_type_id = ?', $this->_entityTypeId);
1201
-
1202
- $this->_connection->delete(
1203
- $tableName, $where
1204
- );
 
 
1205
  }
1206
  }
1207
  $this->_connection->insertOnDuplicate($tableName, $tableData, array('value'));
@@ -1404,7 +1449,7 @@ class Mage_ImportExport_Model_Import_Entity_Product extends Mage_ImportExport_Mo
1404
  if (!is_null($productType)) {
1405
  $previousType = $productType;
1406
  }
1407
- if (!is_null($rowData[self::COL_ATTR_SET])) {
1408
  $previousAttributeSet = $rowData[Mage_ImportExport_Model_Import_Entity_Product::COL_ATTR_SET];
1409
  }
1410
  if (self::SCOPE_NULL == $rowScope) {
@@ -1511,6 +1556,8 @@ class Mage_ImportExport_Model_Import_Entity_Product extends Mage_ImportExport_Mo
1511
  // check website defaults already set
1512
  if (!isset($attributes[$attrTable][$rowSku][$attrId][$rowStore])) {
1513
  $storeIds = $this->_storeIdToWebsiteStoreIds[$rowStore];
 
 
1514
  }
1515
  } elseif (self::SCOPE_STORE == $attribute->getIsGlobal()) {
1516
  $storeIds = array($rowStore);
@@ -2136,4 +2183,29 @@ class Mage_ImportExport_Model_Import_Entity_Product extends Mage_ImportExport_Mo
2136
  }
2137
  return $productIds;
2138
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2139
  }
422
  */
423
  protected $_fileUploader;
424
 
425
+ /**
426
+ * url_key attribute id
427
+ *
428
+ * @var int
429
+ */
430
+ protected $_urlKeyAttributeId;
431
+
432
  /**
433
  * Constructor.
434
  *
830
  );
831
 
832
  $alreadyUsedProductIds = array();
833
+ $lastStoreId = null;
834
+ $lastProductId = null;
835
+ $currentValueId = null;
836
  while ($bunch = $this->_dataSourceModel->getNextBunch()) {
837
  $customOptions = array(
838
  'product_id' => array(),
843
  $typeTitleTable => array(),
844
  $typeValueTable => array()
845
  );
846
+ $flagNewOption = true;
847
+ $firstKeyOption = null;
848
  foreach ($bunch as $rowNum => $rowData) {
849
  $this->_filterRowData($rowData);
850
  if (!$this->isRowAllowedToImport($rowData, $rowNum)) {
855
  } elseif (!isset($productId)) {
856
  continue;
857
  }
858
+
859
+ if ($lastProductId != $productId) {
860
+ $lastStoreId = Mage_Catalog_Model_Abstract::DEFAULT_STORE_ID;
861
+ $currentValueId = null;
862
+ $lastProductId = $productId;
863
+ }
864
+
865
  if (!empty($rowData['_custom_option_store'])) {
866
  if (!isset($this->_storeCodeToId[$rowData['_custom_option_store']])) {
867
  continue;
938
  }
939
  $prevOptionId = $nextOptionId++; // increment option id, but preserve value for $typeValueTable
940
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
941
 
942
+ if ($typeSpecific[$type] === true && !empty($rowData['_custom_option_row_title'])) {
943
+ if (empty($rowData['_custom_option_store'])) {
944
+ // complex CO option row
945
+ $customOptions[$typeValueTable][$prevOptionId][] = array(
946
+ 'option_type_id' => $nextValueId,
947
+ 'sort_order' => empty($rowData['_custom_option_row_sort'])
948
+ ? 0 : abs($rowData['_custom_option_row_sort']),
949
+ 'sku' => !empty($rowData['_custom_option_row_sku'])
950
+ ? $rowData['_custom_option_row_sku'] : ''
951
  );
952
+ if (!isset($customOptions[$typeTitleTable][$nextValueId][0])) { // ensure default title is set
953
+ $customOptions[$typeTitleTable][$nextValueId][0] = $rowData['_custom_option_row_title'];
954
  }
955
+ $customOptions[$typeTitleTable][$nextValueId][$storeId] = $rowData['_custom_option_row_title'];
956
+
957
+ if (!empty($rowData['_custom_option_row_price'])) {
958
+ $typePriceRow = array(
959
+ 'price' => (float) rtrim($rowData['_custom_option_row_price'], '%'),
960
+ 'price_type' => 'fixed'
961
+ );
962
+ if ('%' == substr($rowData['_custom_option_row_price'], -1)) {
963
+ $typePriceRow['price_type'] = 'percent';
964
+ }
965
+ if ($priceIsGlobal) {
966
  $customOptions[$typePriceTable][$nextValueId][0] = $typePriceRow;
967
+ } else {
968
+ // ensure default price is set
969
+ if (!isset($customOptions[$typePriceTable][$nextValueId][0])) {
970
+ $customOptions[$typePriceTable][$nextValueId][0] = $typePriceRow;
971
+ }
972
+ $customOptions[$typePriceTable][$nextValueId][$storeId] = $typePriceRow;
973
  }
974
+ }
975
+ if ($flagNewOption) {
976
+ $firstKeyOption = $nextValueId;
977
+ $flagNewOption = false;
978
+ }
979
+ $nextValueId++;
980
+ } else {
981
+ $flagNewOption = true;
982
+ if ($lastStoreId != $storeId) {
983
+ if (!$firstKeyOption) {
984
+ reset($customOptions[$typeTitleTable]);
985
+ $firstKeyOption = key($customOptions[$typeTitleTable]);
986
+ }
987
+ $currentValueId = $firstKeyOption;
988
+ $lastStoreId = $storeId;
989
+ } else {
990
+ $currentValueId++;
991
+ }
992
+
993
+ $defaultValue = $customOptions[$typeTitleTable][$currentValueId][0];
994
+ if ($defaultValue != $rowData['_custom_option_row_title']) {
995
+ $customOptions[$typeTitleTable][$currentValueId][$storeId]
996
+ = $rowData['_custom_option_row_title'];
997
  }
998
  }
 
999
  }
1000
+
1001
  if (!empty($rowData['_custom_option_title'])) {
1002
  if (!isset($customOptions[$titleTable][$prevOptionId][0])) { // ensure default title is set
1003
  $customOptions[$titleTable][$prevOptionId][0] = $rowData['_custom_option_title'];
1148
  $sku = $rowData[self::COL_SKU];
1149
  }
1150
  foreach ($this->_linkNameToId as $linkName => $linkId) {
 
 
1151
  if (isset($rowData[$linkName . 'sku'])) {
1152
+ $productId = $this->_newSku[$sku]['entity_id'];
1153
+ $productIds[] = $productId;
1154
+ $linkedSku = $rowData[$linkName . 'sku'];
1155
 
1156
  if ((isset($this->_newSku[$linkedSku]) || isset($this->_oldSku[$linkedSku]))
1157
+ && $linkedSku != $sku) {
1158
  if (isset($this->_newSku[$linkedSku])) {
1159
  $linkedId = $this->_newSku[$linkedSku]['entity_id'];
1160
  } else {
1232
  );
1233
  }
1234
 
1235
+ if ($attributeId == $this->_getUrlKeyAttributeId()) {
1236
+ /*
1237
+ If the store based values are not provided for a particular store,
1238
+ we default to the default scope values.
1239
+ In this case, remove all the existing store based values stored in the table.
1240
+ */
1241
+ $where = $this->_connection->quoteInto('store_id NOT IN (?)', array_keys($storeValues)) .
1242
+ $this->_connection->quoteInto(' AND attribute_id = ?', $attributeId) .
1243
+ $this->_connection->quoteInto(' AND entity_id = ?', $productId) .
1244
+ $this->_connection->quoteInto(' AND entity_type_id = ?', $this->_entityTypeId);
1245
+
1246
+ $this->_connection->delete(
1247
+ $tableName, $where
1248
+ );
1249
+ }
1250
  }
1251
  }
1252
  $this->_connection->insertOnDuplicate($tableName, $tableData, array('value'));
1449
  if (!is_null($productType)) {
1450
  $previousType = $productType;
1451
  }
1452
+ if (isset($rowData[self::COL_ATTR_SET]) && !is_null($rowData[self::COL_ATTR_SET])) {
1453
  $previousAttributeSet = $rowData[Mage_ImportExport_Model_Import_Entity_Product::COL_ATTR_SET];
1454
  }
1455
  if (self::SCOPE_NULL == $rowScope) {
1556
  // check website defaults already set
1557
  if (!isset($attributes[$attrTable][$rowSku][$attrId][$rowStore])) {
1558
  $storeIds = $this->_storeIdToWebsiteStoreIds[$rowStore];
1559
+ } else {
1560
+ $storeIds = array($rowStore);
1561
  }
1562
  } elseif (self::SCOPE_STORE == $attribute->getIsGlobal()) {
1563
  $storeIds = array($rowStore);
2183
  }
2184
  return $productIds;
2185
  }
2186
+
2187
+ /**
2188
+ * Get product url_key attribute id
2189
+ *
2190
+ * @return null|int
2191
+ */
2192
+ protected function _getUrlKeyAttributeId()
2193
+ {
2194
+ if ($this->_urlKeyAttributeId === null) {
2195
+ $adapter = $this->getConnection();
2196
+ $resource = $this->getResourceModel('eav/entity_attribute');
2197
+
2198
+ $select = $adapter->select()
2199
+ ->from(
2200
+ $resource->getMainTable(),
2201
+ array('attribute_id')
2202
+ )
2203
+ ->where('attribute_code = ?', 'url_key')
2204
+ ->where('entity_type_id = ?', $this->_entityTypeId);
2205
+
2206
+ $this->_urlKeyAttributeId = $adapter->fetchOne($select);
2207
+ }
2208
+
2209
+ return $this->_urlKeyAttributeId;
2210
+ }
2211
  }
app/code/core/Mage/ImportExport/Model/Import/Entity/Product/Type/Configurable.php CHANGED
@@ -230,18 +230,34 @@ class Mage_ImportExport_Model_Import_Entity_Product_Type_Configurable
230
  ->getNode('global/catalog/product/type/configurable/allow_product_types')->children() as $type) {
231
  $allowProductTypes[] = $type->getName();
232
  }
233
- foreach (Mage::getResourceModel('catalog/product_collection')
 
234
  ->addFieldToFilter('type_id', $allowProductTypes)
235
- ->addAttributeToSelect(array_keys($this->_superAttributes)) as $product) {
236
- $attrSetName = $attrSetIdToName[$product->getAttributeSetId()];
237
-
238
- $data = array_intersect_key(
239
- $product->getData(),
240
- $this->_superAttributes
241
- );
242
- foreach ($data as $attrCode => $value) {
243
- $attrId = $this->_superAttributes[$attrCode]['id'];
244
- $this->_skuSuperAttributeValues[$attrSetName][$product->getId()][$attrId] = $value;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
245
  }
246
  }
247
  }
230
  ->getNode('global/catalog/product/type/configurable/allow_product_types')->children() as $type) {
231
  $allowProductTypes[] = $type->getName();
232
  }
233
+ /** @var Mage_Catalog_Model_Resource_Product_Collection $collection */
234
+ $collection = Mage::getResourceModel('catalog/product_collection')
235
  ->addFieldToFilter('type_id', $allowProductTypes)
236
+ ->addAttributeToSelect(array_keys($this->_superAttributes));
237
+
238
+ $collectionSize = $collection->getSize();
239
+ if ($collectionSize) {
240
+ $configPageSize = Mage::helper('importexport')->getImportConfigurablePageSize();
241
+ $pageSize = ($configPageSize > 0) ? $configPageSize : $collectionSize;
242
+ $page = 0;
243
+ $collection->setPageSize($pageSize);
244
+ while ($pageSize * $page < $collectionSize) {
245
+ $page++;
246
+ $collection->setCurPage($page);
247
+
248
+ foreach ($collection as $product) {
249
+ $attrSetName = $attrSetIdToName[$product->getAttributeSetId()];
250
+
251
+ $data = array_intersect_key(
252
+ $product->getData(),
253
+ $this->_superAttributes
254
+ );
255
+ foreach ($data as $attrCode => $value) {
256
+ $attrId = $this->_superAttributes[$attrCode]['id'];
257
+ $this->_skuSuperAttributeValues[$attrSetName][$product->getId()][$attrId] = $value;
258
+ }
259
+ }
260
+ $collection->clear();
261
  }
262
  }
263
  }
app/code/core/Mage/ImportExport/Model/Import/Uploader.php CHANGED
@@ -132,7 +132,7 @@ class Mage_ImportExport_Model_Import_Uploader extends Mage_Core_Model_File_Uploa
132
  //run validate callbacks
133
  foreach ($this->_validateCallbacks as $params) {
134
  if (is_object($params['object']) && method_exists($params['object'], $params['method'])) {
135
- $params['object']->$params['method']($filePath);
136
  }
137
  }
138
  }
132
  //run validate callbacks
133
  foreach ($this->_validateCallbacks as $params) {
134
  if (is_object($params['object']) && method_exists($params['object'], $params['method'])) {
135
+ $params['object']->{$params['method']}($filePath);
136
  }
137
  }
138
  }
app/code/core/Mage/ImportExport/controllers/Adminhtml/ExportController.php CHANGED
@@ -81,9 +81,12 @@ class Mage_ImportExport_Adminhtml_ExportController extends Mage_Adminhtml_Contro
81
  $model = Mage::getModel('importexport/export');
82
  $model->setData($this->getRequest()->getParams());
83
 
 
 
 
84
  return $this->_prepareDownloadResponse(
85
  $model->getFileName(),
86
- $model->export(),
87
  $model->getContentType()
88
  );
89
  } catch (Mage_Core_Exception $e) {
81
  $model = Mage::getModel('importexport/export');
82
  $model->setData($this->getRequest()->getParams());
83
 
84
+ $result = $model->exportFile();
85
+ $result['type'] = 'filename';
86
+
87
  return $this->_prepareDownloadResponse(
88
  $model->getFileName(),
89
+ $result,
90
  $model->getContentType()
91
  );
92
  } catch (Mage_Core_Exception $e) {
app/code/core/Mage/ImportExport/etc/config.xml CHANGED
@@ -139,6 +139,9 @@
139
  <export_csv>
140
  <escaping>1</escaping>
141
  </export_csv>
 
 
 
142
  </system>
143
  <general>
144
  <file>
139
  <export_csv>
140
  <escaping>1</escaping>
141
  </export_csv>
142
+ <import_csv>
143
+ <configurable_page_size>1000</configurable_page_size>
144
+ </import_csv>
145
  </system>
146
  <general>
147
  <file>
app/code/core/Mage/ImportExport/etc/system.xml CHANGED
@@ -48,6 +48,25 @@
48
  </escaping>
49
  </fields>
50
  </export_csv>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
51
  </groups>
52
  </system>
53
  </sections>
48
  </escaping>
49
  </fields>
50
  </export_csv>
51
+ <import_csv translate="label">
52
+ <label>Import CSV</label>
53
+ <show_in_default>1</show_in_default>
54
+ <show_in_website>1</show_in_website>
55
+ <show_in_store>1</show_in_store>
56
+ <sort_order>500</sort_order>
57
+ <fields>
58
+ <configurable_page_size translate="label,comment">
59
+ <label>Page size for import configurable products</label>
60
+ <frontend_type>text</frontend_type>
61
+ <validate>validate-number</validate>
62
+ <sort_order>1</sort_order>
63
+ <show_in_default>1</show_in_default>
64
+ <show_in_website>0</show_in_website>
65
+ <show_in_store>0</show_in_store>
66
+ <comment>This option will be ignore if it set less than 1.</comment>
67
+ </configurable_page_size>
68
+ </fields>
69
+ </import_csv>
70
  </groups>
71
  </system>
72
  </sections>
app/code/core/Mage/Oauth/Model/Server.php CHANGED
@@ -328,10 +328,10 @@ class Mage_Oauth_Model_Server
328
  if (self::REQUEST_TOKEN == $this->_requestType) {
329
  $this->_validateVerifierParam();
330
 
331
- if ($this->_token->getVerifier() != $this->_protocolParams['oauth_verifier']) {
332
  $this->_throwException('', self::ERR_VERIFIER_INVALID);
333
  }
334
- if ($this->_token->getConsumerId() != $this->_consumer->getId()) {
335
  $this->_throwException('', self::ERR_TOKEN_REJECTED);
336
  }
337
  if (Mage_Oauth_Model_Token::TYPE_REQUEST != $this->_token->getType()) {
@@ -544,7 +544,7 @@ class Mage_Oauth_Model_Server
544
  $this->_request->getScheme() . '://' . $this->_request->getHttpHost() . $this->_request->getRequestUri()
545
  );
546
 
547
- if ($calculatedSign != $this->_protocolParams['oauth_signature']) {
548
  $this->_throwException('', self::ERR_SIGNATURE_INVALID);
549
  }
550
  }
328
  if (self::REQUEST_TOKEN == $this->_requestType) {
329
  $this->_validateVerifierParam();
330
 
331
+ if (!hash_equals($this->_token->getVerifier(), $this->_protocolParams['oauth_verifier'])) {
332
  $this->_throwException('', self::ERR_VERIFIER_INVALID);
333
  }
334
+ if (!hash_equals($this->_token->getConsumerId(), $this->_consumer->getId())) {
335
  $this->_throwException('', self::ERR_TOKEN_REJECTED);
336
  }
337
  if (Mage_Oauth_Model_Token::TYPE_REQUEST != $this->_token->getType()) {
544
  $this->_request->getScheme() . '://' . $this->_request->getHttpHost() . $this->_request->getRequestUri()
545
  );
546
 
547
+ if (!hash_equals($calculatedSign, $this->_protocolParams['oauth_signature'])) {
548
  $this->_throwException('', self::ERR_SIGNATURE_INVALID);
549
  }
550
  }
app/code/core/Mage/Paygate/Model/Authorizenet.php CHANGED
@@ -1273,8 +1273,10 @@ class Mage_Paygate_Model_Authorizenet extends Mage_Payment_Model_Method_Cc
1273
  $uri = $this->getConfigData('cgi_url');
1274
  $client->setUri($uri ? $uri : self::CGI_URL);
1275
  $client->setConfig(array(
1276
- 'maxredirects'=>0,
1277
- 'timeout'=>30,
 
 
1278
  //'ssltransport' => 'tcp',
1279
  ));
1280
  foreach ($request->getData() as $key => $value) {
@@ -1543,7 +1545,11 @@ class Mage_Paygate_Model_Authorizenet extends Mage_Payment_Model_Method_Cc
1543
  $uri = $this->getConfigData('cgi_url_td');
1544
  $uri = $uri ? $uri : self::CGI_URL_TD;
1545
  $client->setUri($uri);
1546
- $client->setConfig(array('timeout'=>45));
 
 
 
 
1547
  $client->setHeaders(array('Content-Type: text/xml'));
1548
  $client->setMethod(Zend_Http_Client::POST);
1549
  $client->setRawData($requestBody);
1273
  $uri = $this->getConfigData('cgi_url');
1274
  $client->setUri($uri ? $uri : self::CGI_URL);
1275
  $client->setConfig(array(
1276
+ 'maxredirects' => 0,
1277
+ 'timeout' => 30,
1278
+ 'verifyhost' => 2,
1279
+ 'verifypeer' => true,
1280
  //'ssltransport' => 'tcp',
1281
  ));
1282
  foreach ($request->getData() as $key => $value) {
1545
  $uri = $this->getConfigData('cgi_url_td');
1546
  $uri = $uri ? $uri : self::CGI_URL_TD;
1547
  $client->setUri($uri);
1548
+ $client->setConfig(array(
1549
+ 'timeout' => 45,
1550
+ 'verifyhost' => 2,
1551
+ 'verifypeer' => true,
1552
+ ));
1553
  $client->setHeaders(array('Content-Type: text/xml'));
1554
  $client->setMethod(Zend_Http_Client::POST);
1555
  $client->setRawData($requestBody);
app/code/core/Mage/Payment/Block/Info/Checkmo.php CHANGED
@@ -70,7 +70,13 @@ class Mage_Payment_Block_Info_Checkmo extends Mage_Payment_Block_Info
70
  */
71
  protected function _convertAdditionalData()
72
  {
73
- $details = @unserialize($this->getInfo()->getAdditionalData());
 
 
 
 
 
 
74
  if (is_array($details)) {
75
  $this->_payableTo = isset($details['payable_to']) ? (string) $details['payable_to'] : '';
76
  $this->_mailingAddress = isset($details['mailing_address']) ? (string) $details['mailing_address'] : '';
@@ -80,7 +86,7 @@ class Mage_Payment_Block_Info_Checkmo extends Mage_Payment_Block_Info
80
  }
81
  return $this;
82
  }
83
-
84
  public function toPdf()
85
  {
86
  $this->setTemplate('payment/info/pdf/checkmo.phtml');
70
  */
71
  protected function _convertAdditionalData()
72
  {
73
+ $details = false;
74
+ try {
75
+ $details = Mage::helper('core/unserializeArray')
76
+ ->unserialize($this->getInfo()->getAdditionalData());
77
+ } catch (Exception $e) {
78
+ Mage::logException($e);
79
+ }
80
  if (is_array($details)) {
81
  $this->_payableTo = isset($details['payable_to']) ? (string) $details['payable_to'] : '';
82
  $this->_mailingAddress = isset($details['mailing_address']) ? (string) $details['mailing_address'] : '';
86
  }
87
  return $this;
88
  }
89
+
90
  public function toPdf()
91
  {
92
  $this->setTemplate('payment/info/pdf/checkmo.phtml');
app/code/core/Mage/Payment/Model/Method/Cc.php CHANGED
@@ -122,7 +122,7 @@ class Mage_Payment_Model_Method_Cc extends Mage_Payment_Model_Method_Abstract
122
  // Visa
123
  'VI' => '/^4[0-9]{12}([0-9]{3})?$/',
124
  // Master Card
125
- 'MC' => '/^5[1-5][0-9]{14}$/',
126
  // American Express
127
  'AE' => '/^3[47][0-9]{13}$/',
128
  // Discover Network
122
  // Visa
123
  'VI' => '/^4[0-9]{12}([0-9]{3})?$/',
124
  // Master Card
125
+ 'MC' => '/^(5[1-5][0-9]{14}|2(22[1-9][0-9]{12}|2[3-9][0-9]{13}|[3-6][0-9]{14}|7[0-1][0-9]{13}|720[0-9]{12}))$/',
126
  // American Express
127
  'AE' => '/^3[47][0-9]{13}$/',
128
  // Discover Network
app/code/core/Mage/Paypal/Model/Api/Nvp.php CHANGED
@@ -520,7 +520,8 @@ class Mage_Paypal_Model_Api_Nvp extends Mage_Paypal_Model_Api_Abstract
520
  * @var array
521
  */
522
  protected $_requiredResponseParams = array(
523
- self::DO_DIRECT_PAYMENT => array('ACK', 'CORRELATIONID', 'AMT')
 
524
  );
525
 
526
  /**
520
  * @var array
521
  */
522
  protected $_requiredResponseParams = array(
523
+ self::DO_DIRECT_PAYMENT => array('ACK', 'CORRELATIONID', 'AMT'),
524
+ self::DO_EXPRESS_CHECKOUT_PAYMENT => array('ACK', 'CORRELATIONID', 'AMT'),
525
  );
526
 
527
  /**
app/code/core/Mage/Paypal/Model/Express/Checkout.php CHANGED
@@ -947,7 +947,7 @@ class Mage_Paypal_Model_Express_Checkout
947
  $shipping = $quote->isVirtual() ? null : $quote->getShippingAddress();
948
 
949
  $customerId = $this->_lookupCustomerId();
950
- if ($customerId) {
951
  $this->getCustomerSession()->loginById($customerId);
952
  return $this->_prepareCustomerQuote();
953
  }
@@ -1063,4 +1063,26 @@ class Mage_Paypal_Model_Express_Checkout
1063
  {
1064
  return $this->_customerSession;
1065
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1066
  }
947
  $shipping = $quote->isVirtual() ? null : $quote->getShippingAddress();
948
 
949
  $customerId = $this->_lookupCustomerId();
950
+ if ($customerId && !$this->_customerEmailExists($quote->getCustomerEmail())) {
951
  $this->getCustomerSession()->loginById($customerId);
952
  return $this->_prepareCustomerQuote();
953
  }
1063
  {
1064
  return $this->_customerSession;
1065
  }
1066
+
1067
+ /**
1068
+ * Check if customer email exists
1069
+ *
1070
+ * @param string $email
1071
+ * @return bool
1072
+ */
1073
+ protected function _customerEmailExists($email)
1074
+ {
1075
+ $result = false;
1076
+ $customer = Mage::getModel('customer/customer');
1077
+ $websiteId = Mage::app()->getStore()->getWebsiteId();
1078
+ if (!is_null($websiteId)) {
1079
+ $customer->setWebsiteId($websiteId);
1080
+ }
1081
+ $customer->loadByEmail($email);
1082
+ if (!is_null($customer->getId())) {
1083
+ $result = true;
1084
+ }
1085
+
1086
+ return $result;
1087
+ }
1088
  }
app/code/core/Mage/Paypal/Model/Resource/Payment/Transaction.php CHANGED
@@ -52,6 +52,26 @@ class Mage_Paypal_Model_Resource_Payment_Transaction extends Mage_Core_Model_Res
52
  $this->_init('paypal/payment_transaction', 'transaction_id');
53
  }
54
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
55
  /**
56
  * Load the transaction object by specified txn_id
57
  *
52
  $this->_init('paypal/payment_transaction', 'transaction_id');
53
  }
54
 
55
+ /**
56
+ * @see Mage_Core_Model_Resource_Abstract::_unserializeField()
57
+ */
58
+ protected function _unserializeField(Varien_Object $object, $field, $defaultValue = null)
59
+ {
60
+ $value = $object->getData($field);
61
+ if (empty($value)) {
62
+ $object->setData($field, $defaultValue);
63
+ } elseif (!is_array($value) && !is_object($value)) {
64
+ $unserializedValue = false;
65
+ try {
66
+ $unserializedValue = Mage::helper('core/unserializeArray')
67
+ ->unserialize($value);
68
+ } catch (Exception $e) {
69
+ Mage::logException($e);
70
+ }
71
+ $object->setData($field, $unserializedValue);
72
+ }
73
+ }
74
+
75
  /**
76
  * Load the transaction object by specified txn_id
77
  *
app/code/core/Mage/Persistent/Model/Persistent/Config.php CHANGED
@@ -71,7 +71,9 @@ class Mage_Persistent_Model_Persistent_Config
71
  if (is_null($this->_xmlConfig)) {
72
  $filePath = $this->_configFilePath;
73
  if (!is_file($filePath) || !is_readable($filePath)) {
74
- Mage::throwException(Mage::helper('persistent')->__('Cannot load configuration from file %s.', $filePath));
 
 
75
  }
76
  $xml = file_get_contents($filePath);
77
  $this->_xmlConfig = new Varien_Simplexml_Element($xml);
71
  if (is_null($this->_xmlConfig)) {
72
  $filePath = $this->_configFilePath;
73
  if (!is_file($filePath) || !is_readable($filePath)) {
74
+ $io = new Varien_Io_File();
75
+ Mage::throwException(Mage::helper('persistent')->__('Cannot load configuration from file %s.',
76
+ $io->getFilteredPath($filePath)));
77
  }
78
  $xml = file_get_contents($filePath);
79
  $this->_xmlConfig = new Varien_Simplexml_Element($xml);
app/code/core/Mage/Reports/Model/Product/Index/Abstract.php CHANGED
@@ -65,7 +65,16 @@ abstract class Mage_Reports_Model_Product_Index_Abstract extends Mage_Core_Model
65
  // Thanks to new performance tweaks it is possible to switch off visitor logging
66
  // This check is needed to make sure report record has either visitor id or customer id
67
  if ($this->hasVisitorId() || $this->hasCustomerId()) {
68
- parent::save();
 
 
 
 
 
 
 
 
 
69
  }
70
 
71
  return $this;
@@ -223,7 +232,16 @@ abstract class Mage_Reports_Model_Product_Index_Abstract extends Mage_Core_Model
223
  */
224
  public function registerIds($productIds)
225
  {
226
- $this->_getResource()->registerIds($this, $productIds);
 
 
 
 
 
 
 
 
 
227
  $this->_getSession()->unsData($this->_countCacheKey);
228
  return $this;
229
  }
65
  // Thanks to new performance tweaks it is possible to switch off visitor logging
66
  // This check is needed to make sure report record has either visitor id or customer id
67
  if ($this->hasVisitorId() || $this->hasCustomerId()) {
68
+ try {
69
+ parent::save();
70
+ } catch (Exception $exception) {
71
+ if ($this->hasCustomerId()) {
72
+ $this->updateCustomerFromVisitor();
73
+ parent::save();
74
+ } else {
75
+ Mage::logException($exception);
76
+ }
77
+ }
78
  }
79
 
80
  return $this;
232
  */
233
  public function registerIds($productIds)
234
  {
235
+ try {
236
+ $this->_getResource()->registerIds($this, $productIds);
237
+ } catch (Exception $exception) {
238
+ if ($this->hasCustomerId()) {
239
+ $this->updateCustomerFromVisitor();
240
+ $this->_getResource()->registerIds($this, $productIds);
241
+ } else {
242
+ Mage::logException($exception);
243
+ }
244
+ }
245
  $this->_getSession()->unsData($this->_countCacheKey);
246
  return $this;
247
  }
app/code/core/Mage/Reports/Model/Resource/Helper/Mysql4.php CHANGED
@@ -77,22 +77,44 @@ class Mage_Reports_Model_Resource_Helper_Mysql4 extends Mage_Core_Model_Resource
77
  }
78
 
79
  $columns = array(
80
- 'period' => 't.period',
81
- 'store_id' => 't.store_id',
82
- 'product_id' => 't.product_id',
83
- 'product_name' => 't.product_name',
84
- 'product_price' => 't.product_price',
85
  );
86
 
87
  if ($type == 'day') {
88
  $columns['id'] = 't.id'; // to speed-up insert on duplicate key update
89
  }
90
 
 
 
 
 
 
91
  $cols = array_keys($columns);
92
  $cols['total_qty'] = new Zend_Db_Expr('SUM(t.' . $column . ')');
 
93
  $periodSubSelect->from(array('t' => $mainTable), $cols)
94
- ->group(array('t.store_id', $periodCol, 't.product_id'))
95
- ->order(array('t.store_id', $periodCol, 'total_qty DESC'));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96
 
97
  $cols = $columns;
98
  $cols[$column] = 't.total_qty';
77
  }
78
 
79
  $columns = array(
80
+ 'period' => 't.period',
81
+ 'store_id' => 't.store_id',
82
+ 'product_id' => 't.product_id',
83
+ 'product_name' => 't.product_name',
84
+ 'product_price' => 't.product_price',
85
  );
86
 
87
  if ($type == 'day') {
88
  $columns['id'] = 't.id'; // to speed-up insert on duplicate key update
89
  }
90
 
91
+ if ($column == 'qty_ordered')
92
+ {
93
+ $columns['product_type_id'] = 't.product_type_id';
94
+ }
95
+
96
  $cols = array_keys($columns);
97
  $cols['total_qty'] = new Zend_Db_Expr('SUM(t.' . $column . ')');
98
+
99
  $periodSubSelect->from(array('t' => $mainTable), $cols)
100
+ ->group(array('t.store_id', $periodCol, 't.product_id'));
101
+
102
+ if ($column == 'qty_ordered') {
103
+ $productTypesInExpr = $adapter->quoteInto(
104
+ 't.product_type_id IN (?)',
105
+ Mage_Catalog_Model_Product_Type::getCompositeTypes()
106
+ );
107
+ $periodSubSelect->order(
108
+ array(
109
+ 't.store_id',
110
+ $periodCol,
111
+ $adapter->getCheckSql($productTypesInExpr, 1, 0),
112
+ 'total_qty DESC'
113
+ )
114
+ );
115
+ } else {
116
+ $periodSubSelect->order(array('t.store_id', $periodCol, 'total_qty DESC'));
117
+ }
118
 
119
  $cols = $columns;
120
  $cols[$column] = 't.total_qty';
app/code/core/Mage/Rss/Controller/Abstract.php ADDED
@@ -0,0 +1,77 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Rss
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+ /**
28
+ * Rss abstract controller
29
+ *
30
+ * @category Mage
31
+ * @package Mage_Rss
32
+ * @author Magento Core Team <core@magentocommerce.com>
33
+ */
34
+ class Mage_Rss_Controller_Abstract extends Mage_Core_Controller_Front_Action
35
+ {
36
+ /**
37
+ * Check feed enabled in config
38
+ *
39
+ * @param string $code
40
+ * @return boolean
41
+ */
42
+ protected function isFeedEnable($code)
43
+ {
44
+ return $this->_getHelper('rss')->isRssEnabled()
45
+ && Mage::getStoreConfig('rss/'. $code);
46
+ }
47
+
48
+ /**
49
+ * Do check feed enabled and prepare response
50
+ *
51
+ * @param string $code
52
+ * @return boolean
53
+ */
54
+ protected function checkFeedEnable($code)
55
+ {
56
+ if ($this->isFeedEnable($code)) {
57
+ $this->getResponse()->setHeader('Content-type', 'text/xml; charset=UTF-8');
58
+ return true;
59
+ } else {
60
+ $this->getResponse()->setHeader('HTTP/1.1', '404 Not Found');
61
+ $this->getResponse()->setHeader('Status', '404 File not found');
62
+ $this->_forward('nofeed', 'index', 'rss');
63
+ return false;
64
+ }
65
+ }
66
+
67
+ /**
68
+ * Retrieve helper instance
69
+ *
70
+ * @param string $name
71
+ * @return Mage_Core_Helper_Abstract
72
+ */
73
+ protected function _getHelper($name)
74
+ {
75
+ return Mage::helper($name);
76
+ }
77
+ }
app/code/core/Mage/Rss/controllers/CatalogController.php CHANGED
@@ -32,55 +32,41 @@
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
 
35
- class Mage_Rss_CatalogController extends Mage_Core_Controller_Front_Action
36
  {
37
- protected function isFeedEnable($code)
38
- {
39
- return Mage::getStoreConfig('rss/catalog/'.$code);
40
- }
41
-
42
- protected function checkFeedEnable($code)
43
- {
44
- if ($this->isFeedEnable($code)) {
45
- $this->getResponse()->setHeader('Content-type', 'text/xml; charset=UTF-8');
46
- return true;
47
- } else {
48
- $this->getResponse()->setHeader('HTTP/1.1','404 Not Found');
49
- $this->getResponse()->setHeader('Status','404 File not found');
50
- $this->_forward('nofeed','index','rss');
51
- return false;
52
- }
53
- }
54
-
55
  public function newAction()
56
  {
57
- $this->checkFeedEnable('new');
58
- $this->loadLayout(false);
59
- $this->renderLayout();
 
60
  }
61
 
62
  public function specialAction()
63
  {
64
- $this->checkFeedEnable('special');
65
- $this->loadLayout(false);
66
- $this->renderLayout();
 
67
  }
68
 
69
  public function salesruleAction()
70
  {
71
- $this->checkFeedEnable('salesrule');
72
- $this->loadLayout(false);
73
- $this->renderLayout();
 
74
  }
75
 
76
  public function tagAction()
77
  {
78
- if ($this->checkFeedEnable('tag')) {
79
  $tagName = urldecode($this->getRequest()->getParam('tagName'));
80
  $tagModel = Mage::getModel('tag/tag');
81
  $tagModel->loadByName($tagName);
82
  if ($tagModel->getId() && $tagModel->getStatus()==$tagModel->getApprovedStatus()) {
83
  Mage::register('tag_model', $tagModel);
 
84
  $this->loadLayout(false);
85
  $this->renderLayout();
86
  return;
@@ -91,21 +77,23 @@ class Mage_Rss_CatalogController extends Mage_Core_Controller_Front_Action
91
 
92
  public function notifystockAction()
93
  {
94
- $this->getResponse()->setHeader('Content-type', 'text/xml; charset=UTF-8');
95
- $this->loadLayout(false);
96
- $this->renderLayout();
 
97
  }
98
 
99
  public function reviewAction()
100
  {
101
- $this->getResponse()->setHeader('Content-type', 'text/xml; charset=UTF-8');
102
- $this->loadLayout(false);
103
- $this->renderLayout();
 
104
  }
105
 
106
  public function categoryAction()
107
  {
108
- if ($this->checkFeedEnable('category')) {
109
  $this->loadLayout(false);
110
  $this->renderLayout();
111
  }
@@ -119,11 +107,11 @@ class Mage_Rss_CatalogController extends Mage_Core_Controller_Front_Action
119
  public function preDispatch()
120
  {
121
  $action = strtolower($this->getRequest()->getActionName());
122
- if ($action == 'notifystock') {
123
  $this->_currentArea = 'adminhtml';
124
  Mage::helper('rss')->authAdmin('catalog/products');
125
  }
126
- if ($action == 'review') {
127
  $this->_currentArea = 'adminhtml';
128
  Mage::helper('rss')->authAdmin('catalog/reviews_ratings');
129
  }
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
 
35
+ class Mage_Rss_CatalogController extends Mage_Rss_Controller_Abstract
36
  {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
  public function newAction()
38
  {
39
+ if ($this->checkFeedEnable('catalog/new')) {
40
+ $this->loadLayout(false);
41
+ $this->renderLayout();
42
+ }
43
  }
44
 
45
  public function specialAction()
46
  {
47
+ if ($this->checkFeedEnable('catalog/special')) {
48
+ $this->loadLayout(false);
49
+ $this->renderLayout();
50
+ }
51
  }
52
 
53
  public function salesruleAction()
54
  {
55
+ if ($this->checkFeedEnable('catalog/salesrule')) {
56
+ $this->loadLayout(false);
57
+ $this->renderLayout();
58
+ }
59
  }
60
 
61
  public function tagAction()
62
  {
63
+ if ($this->isFeedEnable('catalog/tag')) {
64
  $tagName = urldecode($this->getRequest()->getParam('tagName'));
65
  $tagModel = Mage::getModel('tag/tag');
66
  $tagModel->loadByName($tagName);
67
  if ($tagModel->getId() && $tagModel->getStatus()==$tagModel->getApprovedStatus()) {
68
  Mage::register('tag_model', $tagModel);
69
+ $this->getResponse()->setHeader('Content-type', 'text/xml; charset=UTF-8');
70
  $this->loadLayout(false);
71
  $this->renderLayout();
72
  return;
77
 
78
  public function notifystockAction()
79
  {
80
+ if ($this->checkFeedEnable('catalog/notifystock')) {
81
+ $this->loadLayout(false);
82
+ $this->renderLayout();
83
+ }
84
  }
85
 
86
  public function reviewAction()
87
  {
88
+ if ($this->checkFeedEnable('catalog/review')) {
89
+ $this->loadLayout(false);
90
+ $this->renderLayout();
91
+ }
92
  }
93
 
94
  public function categoryAction()
95
  {
96
+ if ($this->checkFeedEnable('catalog/category')) {
97
  $this->loadLayout(false);
98
  $this->renderLayout();
99
  }
107
  public function preDispatch()
108
  {
109
  $action = strtolower($this->getRequest()->getActionName());
110
+ if ($action == 'notifystock' && $this->isFeedEnable('catalog/notifystock')) {
111
  $this->_currentArea = 'adminhtml';
112
  Mage::helper('rss')->authAdmin('catalog/products');
113
  }
114
+ if ($action == 'review' && $this->isFeedEnable('catalog/review')) {
115
  $this->_currentArea = 'adminhtml';
116
  Mage::helper('rss')->authAdmin('catalog/reviews_ratings');
117
  }
app/code/core/Mage/Rss/controllers/IndexController.php CHANGED
@@ -30,7 +30,7 @@
30
  * @file IndexController.php
31
  * @author Magento Core Team <core@magentocommerce.com>
32
  */
33
- class Mage_Rss_IndexController extends Mage_Core_Controller_Front_Action
34
  {
35
  /**
36
  * Current wishlist
@@ -80,9 +80,7 @@ class Mage_Rss_IndexController extends Mage_Core_Controller_Front_Action
80
  */
81
  public function wishlistAction()
82
  {
83
- if (!Mage::getStoreConfig('rss/wishlist/active')) {
84
- $this->getResponse()->setHeader('HTTP/1.1','404 Not Found');
85
- $this->getResponse()->setHeader('Status','404 File not found');
86
  $this->_forward('nofeed','index','rss');
87
  return;
88
  }
@@ -156,15 +154,4 @@ class Mage_Rss_IndexController extends Mage_Core_Controller_Front_Action
156
 
157
  return $this->_customer;
158
  }
159
-
160
- /**
161
- * Retrieve helper instance
162
- *
163
- * @param string $name
164
- * @return Mage_Core_Helper_Abstract
165
- */
166
- protected function _getHelper($name)
167
- {
168
- return Mage::helper($name);
169
- }
170
  }
30
  * @file IndexController.php
31
  * @author Magento Core Team <core@magentocommerce.com>
32
  */
33
+ class Mage_Rss_IndexController extends Mage_Rss_Controller_Abstract
34
  {
35
  /**
36
  * Current wishlist
80
  */
81
  public function wishlistAction()
82
  {
83
+ if (!$this->isFeedEnable('wishlist/active')) {
 
 
84
  $this->_forward('nofeed','index','rss');
85
  return;
86
  }
154
 
155
  return $this->_customer;
156
  }
 
 
 
 
 
 
 
 
 
 
 
157
  }
app/code/core/Mage/Rss/controllers/OrderController.php CHANGED
@@ -32,23 +32,25 @@
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
 
35
- class Mage_Rss_OrderController extends Mage_Core_Controller_Front_Action
36
  {
37
  public function newAction()
38
  {
39
- $this->getResponse()->setHeader('Content-type', 'text/xml; charset=UTF-8');
40
- $this->loadLayout(false);
41
- $this->renderLayout();
 
42
  }
43
 
44
  public function customerAction()
45
  {
46
- if (Mage::app()->getStore()->isCurrentlySecure()) {
47
- $this->getResponse()->setHeader('Content-type', 'text/xml; charset=UTF-8');
48
- Mage::helper('rss')->authFrontend();
49
- } else {
50
- $this->_redirect('rss/order/customer', array('_secure'=>true));
51
- return $this;
 
52
  }
53
  }
54
 
@@ -57,13 +59,15 @@ class Mage_Rss_OrderController extends Mage_Core_Controller_Front_Action
57
  */
58
  public function statusAction()
59
  {
60
- $order = Mage::helper('rss/order')->getOrderByStatusUrlKey((string)$this->getRequest()->getParam('data'));
61
- if (!is_null($order)) {
62
- Mage::register('current_order', $order);
63
- $this->getResponse()->setHeader('Content-type', 'text/xml; charset=UTF-8');
64
- $this->loadLayout(false);
65
- $this->renderLayout();
66
- return;
 
 
67
  }
68
  $this->_forward('nofeed', 'index', 'rss');
69
  }
@@ -76,7 +80,7 @@ class Mage_Rss_OrderController extends Mage_Core_Controller_Front_Action
76
  public function preDispatch()
77
  {
78
  $action = strtolower($this->getRequest()->getActionName());
79
- if ($action == 'new') {
80
  $this->_currentArea = 'adminhtml';
81
  Mage::helper('rss')->authAdmin('sales/order');
82
  }
32
  * @author Magento Core Team <core@magentocommerce.com>
33
  */
34
 
35
+ class Mage_Rss_OrderController extends Mage_Rss_Controller_Abstract
36
  {
37
  public function newAction()
38
  {
39
+ if ($this->checkFeedEnable('order/new')) {
40
+ $this->loadLayout(false);
41
+ $this->renderLayout();
42
+ }
43
  }
44
 
45
  public function customerAction()
46
  {
47
+ if ($this->checkFeedEnable('order/customer')) {
48
+ if (Mage::app()->getStore()->isCurrentlySecure()) {
49
+ Mage::helper('rss')->authFrontend();
50
+ } else {
51
+ $this->_redirect('rss/order/customer', array('_secure'=>true));
52
+ return $this;
53
+ }
54
  }
55
  }
56
 
59
  */
60
  public function statusAction()
61
  {
62
+ if ($this->isFeedEnable('order/status_notified')) {
63
+ $order = Mage::helper('rss/order')->getOrderByStatusUrlKey((string)$this->getRequest()->getParam('data'));
64
+ if (!is_null($order)) {
65
+ Mage::register('current_order', $order);
66
+ $this->getResponse()->setHeader('Content-type', 'text/xml; charset=UTF-8');
67
+ $this->loadLayout(false);
68
+ $this->renderLayout();
69
+ return;
70
+ }
71
  }
72
  $this->_forward('nofeed', 'index', 'rss');
73
  }
80
  public function preDispatch()
81
  {
82
  $action = strtolower($this->getRequest()->getActionName());
83
+ if ($action == 'new' && $this->isFeedEnable('order/new')) {
84
  $this->_currentArea = 'adminhtml';
85
  Mage::helper('rss')->authAdmin('sales/order');
86
  }
app/code/core/Mage/Rss/data/rss_setup/data-install-1.6.0.0.php ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Rss
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+
28
+ /* @var $installer Mage_Core_Model_Resource_Setup */
29
+
30
+ $installer = $this;
31
+
32
+ $this->deleteConfigData(Mage_Rss_Helper_Data::XML_PATH_RSS_ACTIVE);
33
+
34
+ $installer->endSetup();
app/code/core/Mage/Rss/etc/config.xml CHANGED
@@ -47,10 +47,14 @@
47
  <class>Mage_Rss_Block</class>
48
  </rss>
49
  </blocks>
 
 
 
 
 
 
 
50
  </global>
51
- <admin>
52
-
53
- </admin>
54
  <adminhtml>
55
  <translate>
56
  <modules>
47
  <class>Mage_Rss_Block</class>
48
  </rss>
49
  </blocks>
50
+ <resources>
51
+ <rss_setup>
52
+ <setup>
53
+ <module>Mage_Rss</module>
54
+ </setup>
55
+ </rss_setup>
56
+ </resources>
57
  </global>
 
 
 
58
  <adminhtml>
59
  <translate>
60
  <modules>
app/code/core/Mage/Rss/etc/system.xml CHANGED
@@ -56,7 +56,6 @@
56
  </active>
57
  </fields>
58
  </config>
59
-
60
  <wishlist translate="label">
61
  <label>Wishlist</label>
62
  <frontend_type>text</frontend_type>
@@ -76,7 +75,6 @@
76
  </active>
77
  </fields>
78
  </wishlist>
79
-
80
  <catalog translate="label">
81
  <label>Catalog</label>
82
  <frontend_type>text</frontend_type>
@@ -130,10 +128,27 @@
130
  <show_in_website>1</show_in_website>
131
  <show_in_store>1</show_in_store>
132
  </category>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
133
  </fields>
134
  </catalog>
135
-
136
- <order>
137
  <label>Order</label>
138
  <frontend_type>text</frontend_type>
139
  <sort_order>4</sort_order>
@@ -150,9 +165,73 @@
150
  <show_in_website>1</show_in_website>
151
  <show_in_store>1</show_in_store>
152
  </status_notified>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
153
  </fields>
154
  </order>
155
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
156
  </groups>
157
  </rss>
158
  </sections>
56
  </active>
57
  </fields>
58
  </config>
 
59
  <wishlist translate="label">
60
  <label>Wishlist</label>
61
  <frontend_type>text</frontend_type>
75
  </active>
76
  </fields>
77
  </wishlist>
 
78
  <catalog translate="label">
79
  <label>Catalog</label>
80
  <frontend_type>text</frontend_type>
128
  <show_in_website>1</show_in_website>
129
  <show_in_store>1</show_in_store>
130
  </category>
131
+ <notifystock translate="label">
132
+ <label>Stock Notification</label>
133
+ <frontend_type>select</frontend_type>
134
+ <source_model>adminhtml/system_config_source_enabledisable</source_model>
135
+ <sort_order>15</sort_order>
136
+ <show_in_default>1</show_in_default>
137
+ <show_in_website>1</show_in_website>
138
+ <show_in_store>1</show_in_store>
139
+ </notifystock>
140
+ <review translate="label">
141
+ <label>Review Notification</label>
142
+ <frontend_type>select</frontend_type>
143
+ <source_model>adminhtml/system_config_source_enabledisable</source_model>
144
+ <sort_order>16</sort_order>
145
+ <show_in_default>1</show_in_default>
146
+ <show_in_website>1</show_in_website>
147
+ <show_in_store>1</show_in_store>
148
+ </review>
149
  </fields>
150
  </catalog>
151
+ <order translate="label">
 
152
  <label>Order</label>
153
  <frontend_type>text</frontend_type>
154
  <sort_order>4</sort_order>
165
  <show_in_website>1</show_in_website>
166
  <show_in_store>1</show_in_store>
167
  </status_notified>
168
+ <new translate="label">
169
+ <label>New Order Notification</label>
170
+ <frontend_type>select</frontend_type>
171
+ <source_model>adminhtml/system_config_source_enabledisable</source_model>
172
+ <sort_order>20</sort_order>
173
+ <show_in_default>1</show_in_default>
174
+ <show_in_website>1</show_in_website>
175
+ <show_in_store>1</show_in_store>
176
+ </new>
177
+ <customer translate="label">
178
+ <label>Customer Order Notification</label>
179
+ <frontend_type>select</frontend_type>
180
+ <source_model>adminhtml/system_config_source_enabledisable</source_model>
181
+ <sort_order>30</sort_order>
182
+ <show_in_default>1</show_in_default>
183
+ <show_in_website>1</show_in_website>
184
+ <show_in_store>1</show_in_store>
185
+ </customer>
186
  </fields>
187
  </order>
188
+ <admin_catalog translate="label">
189
+ <label>Admin Catalog</label>
190
+ <frontend_type>text</frontend_type>
191
+ <sort_order>5</sort_order>
192
+ <show_in_default>1</show_in_default>
193
+ <show_in_website>1</show_in_website>
194
+ <show_in_store>1</show_in_store>
195
+ <fields>
196
+ <review translate="label">
197
+ <label>Review Notification</label>
198
+ <frontend_type>select</frontend_type>
199
+ <source_model>adminhtml/system_config_source_enabledisable</source_model>
200
+ <sort_order>10</sort_order>
201
+ <show_in_default>1</show_in_default>
202
+ <show_in_website>1</show_in_website>
203
+ <show_in_store>1</show_in_store>
204
+ </review>
205
+ <notifystock translate="label">
206
+ <label>Stock Notification</label>
207
+ <frontend_type>select</frontend_type>
208
+ <source_model>adminhtml/system_config_source_enabledisable</source_model>
209
+ <sort_order>20</sort_order>
210
+ <show_in_default>1</show_in_default>
211
+ <show_in_website>1</show_in_website>
212
+ <show_in_store>1</show_in_store>
213
+ </notifystock>
214
+ </fields>
215
+ </admin_catalog>
216
+ <admin_order translate="label">
217
+ <label>Admin Order</label>
218
+ <frontend_type>text</frontend_type>
219
+ <sort_order>6</sort_order>
220
+ <show_in_default>1</show_in_default>
221
+ <show_in_website>1</show_in_website>
222
+ <show_in_store>1</show_in_store>
223
+ <fields>
224
+ <new translate="label">
225
+ <label>New Order Notification</label>
226
+ <frontend_type>select</frontend_type>
227
+ <source_model>adminhtml/system_config_source_enabledisable</source_model>
228
+ <sort_order>10</sort_order>
229
+ <show_in_default>1</show_in_default>
230
+ <show_in_website>1</show_in_website>
231
+ <show_in_store>1</show_in_store>
232
+ </new>
233
+ </fields>
234
+ </admin_order>
235
  </groups>
236
  </rss>
237
  </sections>
app/code/core/Mage/Sales/Helper/Guest.php CHANGED
@@ -81,7 +81,7 @@ class Mage_Sales_Helper_Guest extends Mage_Core_Helper_Data
81
  $billingAddress = $order->getBillingAddress();
82
  if ((strtolower($lastName) != strtolower($billingAddress->getLastname()))
83
  || ($type == 'email'
84
- && strtolower($email) != strtolower($billingAddress->getEmail()))
85
  || ($type == 'zip'
86
  && (strtolower($zip) != strtolower($billingAddress->getPostcode())))
87
  ) {
81
  $billingAddress = $order->getBillingAddress();
82
  if ((strtolower($lastName) != strtolower($billingAddress->getLastname()))
83
  || ($type == 'email'
84
+ && strtolower($email) != strtolower($order->getCustomerEmail()))
85
  || ($type == 'zip'
86
  && (strtolower($zip) != strtolower($billingAddress->getPostcode())))
87
  ) {
app/code/core/Mage/Sales/Model/Email/Template.php CHANGED
@@ -33,7 +33,7 @@ class Mage_Sales_Model_Email_Template extends Mage_Core_Model_Email_Template
33
  if (!$filename) {
34
  return '';
35
  }
36
- extract($variables);
37
  ob_start();
38
  include $filename;
39
  return ob_get_clean();
33
  if (!$filename) {
34
  return '';
35
  }
36
+ extract($variables, EXTR_SKIP);
37
  ob_start();
38
  include $filename;
39
  return ob_get_clean();
app/code/core/Mage/Sales/Model/Order.php CHANGED
@@ -1255,7 +1255,11 @@ class Mage_Sales_Model_Order extends Mage_Sales_Model_Abstract
1255
  if (!$asObject) {
1256
  return $shippingMethod;
1257
  } else {
1258
- list($carrierCode, $method) = explode('_', $shippingMethod, 2);
 
 
 
 
1259
  return new Varien_Object(array(
1260
  'carrier_code' => $carrierCode,
1261
  'method' => $method
@@ -2021,7 +2025,12 @@ class Mage_Sales_Model_Order extends Mage_Sales_Model_Abstract
2021
  */
2022
  public function hasShipments()
2023
  {
2024
- return $this->getShipmentsCollection()->count();
 
 
 
 
 
2025
  }
2026
 
2027
  /**
@@ -2031,7 +2040,12 @@ class Mage_Sales_Model_Order extends Mage_Sales_Model_Abstract
2031
  */
2032
  public function hasCreditmemos()
2033
  {
2034
- return $this->getCreditmemosCollection()->count();
 
 
 
 
 
2035
  }
2036
 
2037
 
1255
  if (!$asObject) {
1256
  return $shippingMethod;
1257
  } else {
1258
+ $segments = explode('_', $shippingMethod, 2);
1259
+ if (!isset($segments[1])) {
1260
+ $segments[1] = $segments[0];
1261
+ }
1262
+ list($carrierCode, $method) = $segments;
1263
  return new Varien_Object(array(
1264
  'carrier_code' => $carrierCode,
1265
  'method' => $method
2025
  */
2026
  public function hasShipments()
2027
  {
2028
+ $result = false;
2029
+ $shipmentsCollection = $this->getShipmentsCollection();
2030
+ if ($shipmentsCollection) {
2031
+ $result = (bool)$shipmentsCollection->count();
2032
+ }
2033
+ return $result;
2034
  }
2035
 
2036
  /**
2040
  */
2041
  public function hasCreditmemos()
2042
  {
2043
+ $result = false;
2044
+ $creditmemosCollection = $this->getCreditmemosCollection();
2045
+ if ($creditmemosCollection) {
2046
+ $result = (bool)$creditmemosCollection->count();
2047
+ }
2048
+ return $result;
2049
  }
2050
 
2051
 
app/code/core/Mage/Sales/Model/Order/Invoice/Total/Subtotal.php CHANGED
@@ -40,9 +40,6 @@ class Mage_Sales_Model_Order_Invoice_Total_Subtotal extends Mage_Sales_Model_Ord
40
  $subtotalInclTax= 0;
41
  $baseSubtotalInclTax = 0;
42
 
43
- $totalWeeeDiscount = 0;
44
- $totalBaseWeeeDiscount = 0;
45
-
46
  $order = $invoice->getOrder();
47
 
48
  foreach ($invoice->getAllItems() as $item) {
@@ -52,50 +49,21 @@ class Mage_Sales_Model_Order_Invoice_Total_Subtotal extends Mage_Sales_Model_Ord
52
 
53
  $item->calcRowTotal();
54
 
55
- $subtotal += $item->getRowTotal();
56
- $baseSubtotal += $item->getBaseRowTotal();
57
- $subtotalInclTax+= $item->getRowTotalInclTax();
58
- $baseSubtotalInclTax += $item->getBaseRowTotalInclTax();
59
- $totalWeeeDiscount += $item->getOrderItem()->getDiscountAppliedForWeeeTax();
60
- $totalBaseWeeeDiscount += $item->getOrderItem()->getBaseDiscountAppliedForWeeeTax();
61
  }
62
 
63
  $allowedSubtotal = $order->getSubtotal() - $order->getSubtotalInvoiced();
64
  $baseAllowedSubtotal = $order->getBaseSubtotal() - $order->getBaseSubtotalInvoiced();
65
- $allowedSubtotalInclTax = $allowedSubtotal + $order->getHiddenTaxAmount() + $totalWeeeDiscount
66
- + $order->getTaxAmount() - $order->getTaxInvoiced() - $order->getHiddenTaxInvoiced();
67
- $baseAllowedSubtotalInclTax = $baseAllowedSubtotal + $order->getBaseHiddenTaxAmount() + $totalBaseWeeeDiscount
68
- + $order->getBaseTaxAmount() - $order->getBaseTaxInvoiced() - $order->getBaseHiddenTaxInvoiced();
69
-
70
- /**
71
- * Check if shipping tax calculation is included to current invoice.
72
- */
73
- $includeShippingTax = true;
74
- foreach ($invoice->getOrder()->getInvoiceCollection() as $previousInvoice) {
75
- if ($previousInvoice->getShippingAmount() && !$previousInvoice->isCanceled()) {
76
- $includeShippingTax = false;
77
- break;
78
- }
79
- }
80
-
81
- if ($includeShippingTax) {
82
- $allowedSubtotalInclTax -= $order->getShippingTaxAmount();
83
- $baseAllowedSubtotalInclTax -= $order->getBaseShippingTaxAmount();
84
- } else {
85
- $allowedSubtotalInclTax += $order->getShippingHiddenTaxAmount();
86
- $baseAllowedSubtotalInclTax += $order->getBaseShippingHiddenTaxAmount();
87
- }
88
 
89
  if ($invoice->isLast()) {
90
  $subtotal = $allowedSubtotal;
91
  $baseSubtotal = $baseAllowedSubtotal;
92
- $subtotalInclTax = $allowedSubtotalInclTax;
93
- $baseSubtotalInclTax = $baseAllowedSubtotalInclTax;
94
  } else {
95
  $subtotal = min($allowedSubtotal, $subtotal);
96
  $baseSubtotal = min($baseAllowedSubtotal, $baseSubtotal);
97
- $subtotalInclTax = min($allowedSubtotalInclTax, $subtotalInclTax);
98
- $baseSubtotalInclTax = min($baseAllowedSubtotalInclTax, $baseSubtotalInclTax);
99
  }
100
 
101
  $invoice->setSubtotal($subtotal);
40
  $subtotalInclTax= 0;
41
  $baseSubtotalInclTax = 0;
42
 
 
 
 
43
  $order = $invoice->getOrder();
44
 
45
  foreach ($invoice->getAllItems() as $item) {
49
 
50
  $item->calcRowTotal();
51
 
52
+ $subtotal += $item->getRowTotal();
53
+ $baseSubtotal += $item->getBaseRowTotal();
54
+ $subtotalInclTax += $item->getRowTotalInclTax() + $item->getWeeeTaxAppliedRowAmount();
55
+ $baseSubtotalInclTax += $item->getBaseRowTotalInclTax() + $item->getBaseWeeeTaxAppliedRowAmount();
 
 
56
  }
57
 
58
  $allowedSubtotal = $order->getSubtotal() - $order->getSubtotalInvoiced();
59
  $baseAllowedSubtotal = $order->getBaseSubtotal() - $order->getBaseSubtotalInvoiced();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
 
61
  if ($invoice->isLast()) {
62
  $subtotal = $allowedSubtotal;
63
  $baseSubtotal = $baseAllowedSubtotal;
 
 
64
  } else {
65
  $subtotal = min($allowedSubtotal, $subtotal);
66
  $baseSubtotal = min($baseAllowedSubtotal, $baseSubtotal);
 
 
67
  }
68
 
69
  $invoice->setSubtotal($subtotal);
app/code/core/Mage/Sales/Model/Quote/Address/Total/Subtotal.php CHANGED
@@ -111,7 +111,7 @@ class Mage_Sales_Model_Quote_Address_Total_Subtotal extends Mage_Sales_Model_Quo
111
  $item->setPrice($finalPrice)
112
  ->setBaseOriginalPrice($finalPrice);
113
  $item->calcRowTotal();
114
- } else if (!$quoteItem->getParentItem()) {
115
  $finalPrice = $product->getFinalPrice($quoteItem->getQty());
116
  $item->setPrice($finalPrice)
117
  ->setBaseOriginalPrice($finalPrice);
111
  $item->setPrice($finalPrice)
112
  ->setBaseOriginalPrice($finalPrice);
113
  $item->calcRowTotal();
114
+ } else if (!$quoteItem->getParentItem() && !$item->getHasError()) {
115
  $finalPrice = $product->getFinalPrice($quoteItem->getQty());
116
  $item->setPrice($finalPrice)
117
  ->setBaseOriginalPrice($finalPrice);
app/code/core/Mage/Sales/Model/Quote/Item.php CHANGED
@@ -507,7 +507,7 @@ class Mage_Sales_Model_Quote_Item extends Mage_Sales_Model_Quote_Item_Abstract
507
  $itemOptionValue = $_itemOptionValue;
508
  $optionValue = $_optionValue;
509
  // looks like it does not break bundle selection qty
510
- foreach (array('qty', 'uenc', 'form_key') as $key) {
511
  unset($itemOptionValue[$key], $optionValue[$key]);
512
  }
513
  }
507
  $itemOptionValue = $_itemOptionValue;
508
  $optionValue = $_optionValue;
509
  // looks like it does not break bundle selection qty
510
+ foreach (array('qty', 'uenc', 'form_key', 'item', 'original_qty') as $key) {
511
  unset($itemOptionValue[$key], $optionValue[$key]);
512
  }
513
  }
app/code/core/Mage/Sales/Model/Quote/Item/Abstract.php CHANGED
@@ -130,7 +130,10 @@ abstract class Mage_Sales_Model_Quote_Item_Abstract extends Mage_Core_Model_Abst
130
  {
131
  if ($parentItem) {
132
  $this->_parentItem = $parentItem;
133
- $parentItem->addChild($this);
 
 
 
134
  }
135
  return $this;
136
  }
130
  {
131
  if ($parentItem) {
132
  $this->_parentItem = $parentItem;
133
+ // Prevent duplication of children in those are already set
134
+ if (!in_array($this, $parentItem->getChildren())) {
135
+ $parentItem->addChild($this);
136
+ }
137
  }
138
  return $this;
139
  }
app/code/core/Mage/Sales/Model/Resource/Order/Payment.php CHANGED
@@ -58,4 +58,28 @@ class Mage_Sales_Model_Resource_Order_Payment extends Mage_Sales_Model_Resource_
58
  {
59
  $this->_init('sales/order_payment', 'entity_id');
60
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
61
  }
58
  {
59
  $this->_init('sales/order_payment', 'entity_id');
60
  }
61
+
62
+ /**
63
+ * Unserialize Varien_Object field in an object
64
+ *
65
+ * @param Mage_Core_Model_Abstract $object
66
+ * @param string $field
67
+ * @param mixed $defaultValue
68
+ */
69
+ protected function _unserializeField(Varien_Object $object, $field, $defaultValue = null)
70
+ {
71
+ $value = $object->getData($field);
72
+ if (empty($value)) {
73
+ $object->setData($field, $defaultValue);
74
+ } elseif (!is_array($value) && !is_object($value)) {
75
+ $unserializedValue = false;
76
+ try {
77
+ $unserializedValue = Mage::helper('core/unserializeArray')
78
+ ->unserialize($value);
79
+ } catch (Exception $e) {
80
+ Mage::logException($e);
81
+ }
82
+ $object->setData($field, $unserializedValue);
83
+ }
84
+ }
85
  }
app/code/core/Mage/Sales/Model/Resource/Order/Payment/Transaction.php CHANGED
@@ -52,6 +52,30 @@ class Mage_Sales_Model_Resource_Order_Payment_Transaction extends Mage_Sales_Mod
52
  $this->_init('sales/payment_transaction', 'transaction_id');
53
  }
54
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
55
  /**
56
  * Update transactions in database using provided transaction as parent for them
57
  * have to repeat the business logic to avoid accidental injection of wrong transactions
52
  $this->_init('sales/payment_transaction', 'transaction_id');
53
  }
54
 
55
+ /**
56
+ * Unserialize Varien_Object field in an object
57
+ *
58
+ * @param Mage_Core_Model_Abstract $object
59
+ * @param string $field
60
+ * @param mixed $defaultValue
61
+ */
62
+ protected function _unserializeField(Varien_Object $object, $field, $defaultValue = null)
63
+ {
64
+ $value = $object->getData($field);
65
+ if (empty($value)) {
66
+ $object->setData($field, $defaultValue);
67
+ } elseif (!is_array($value) && !is_object($value)) {
68
+ $unserializedValue = false;
69
+ try {
70
+ $unserializedValue = Mage::helper('core/unserializeArray')
71
+ ->unserialize($value);
72
+ } catch (Exception $e) {
73
+ Mage::logException($e);
74
+ }
75
+ $object->setData($field, $unserializedValue);
76
+ }
77
+ }
78
+
79
  /**
80
  * Update transactions in database using provided transaction as parent for them
81
  * have to repeat the business logic to avoid accidental injection of wrong transactions
app/code/core/Mage/Sales/Model/Resource/Quote.php CHANGED
@@ -156,13 +156,13 @@ class Mage_Sales_Model_Resource_Quote extends Mage_Sales_Model_Resource_Abstract
156
  /**
157
  * Check is order increment id use in sales/order table
158
  *
159
- * @param int $orderIncrementId
160
  * @return boolean
161
  */
162
  public function isOrderIncrementIdUsed($orderIncrementId)
163
  {
164
  $adapter = $this->_getReadAdapter();
165
- $bind = array(':increment_id' => (int)$orderIncrementId);
166
  $select = $adapter->select();
167
  $select->from($this->getTable('sales/order'), 'entity_id')
168
  ->where('increment_id = :increment_id');
156
  /**
157
  * Check is order increment id use in sales/order table
158
  *
159
+ * @param string $orderIncrementId
160
  * @return boolean
161
  */
162
  public function isOrderIncrementIdUsed($orderIncrementId)
163
  {
164
  $adapter = $this->_getReadAdapter();
165
+ $bind = array(':increment_id' => $orderIncrementId);
166
  $select = $adapter->select();
167
  $select->from($this->getTable('sales/order'), 'entity_id')
168
  ->where('increment_id = :increment_id');
app/code/core/Mage/Sales/Model/Resource/Quote/Payment.php CHANGED
@@ -51,4 +51,24 @@ class Mage_Sales_Model_Resource_Quote_Payment extends Mage_Sales_Model_Resource_
51
  {
52
  $this->_init('sales/quote_payment', 'payment_id');
53
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
54
  }
51
  {
52
  $this->_init('sales/quote_payment', 'payment_id');
53
  }
54
+
55
+ /**
56
+ * @see Mage_Core_Model_Resource_Abstract::_unserializeField()
57
+ */
58
+ protected function _unserializeField(Varien_Object $object, $field, $defaultValue = null)
59
+ {
60
+ $value = $object->getData($field);
61
+ if (empty($value)) {
62
+ $object->setData($field, $defaultValue);
63
+ } elseif (!is_array($value) && !is_object($value)) {
64
+ $unserializedValue = false;
65
+ try {
66
+ $unserializedValue = Mage::helper('core/unserializeArray')
67
+ ->unserialize($value);
68
+ } catch (Exception $e) {
69
+ Mage::logException($e);
70
+ }
71
+ $object->setData($field, $unserializedValue);
72
+ }
73
+ }
74
  }
app/code/core/Mage/Sales/Model/Resource/Recurring/Profile.php CHANGED
@@ -53,6 +53,33 @@ class Mage_Sales_Model_Resource_Recurring_Profile extends Mage_Sales_Model_Resou
53
  );
54
  }
55
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
56
  /**
57
  * Return recurring profile child Orders Ids
58
  *
53
  );
54
  }
55
 
56
+ /**
57
+ * Unserialize Varien_Object field in an object
58
+ *
59
+ * @param Mage_Core_Model_Abstract $object
60
+ * @param string $field
61
+ * @param mixed $defaultValue
62
+ */
63
+ protected function _unserializeField(Varien_Object $object, $field, $defaultValue = null)
64
+ {
65
+ if ($field != 'additional_info') {
66
+ return parent::_unserializeField($object, $field, $defaultValue);
67
+ }
68
+ $value = $object->getData($field);
69
+ if (empty($value)) {
70
+ $object->setData($field, $defaultValue);
71
+ } elseif (!is_array($value) && !is_object($value)) {
72
+ $unserializedValue = false;
73
+ try {
74
+ $unserializedValue = Mage::helper('core/unserializeArray')
75
+ ->unserialize($value);
76
+ } catch (Exception $e) {
77
+ Mage::logException($e);
78
+ }
79
+ $object->setData($field, $unserializedValue);
80
+ }
81
+ }
82
+
83
  /**
84
  * Return recurring profile child Orders Ids
85
  *
app/code/core/Mage/Sales/Model/Resource/Report/Bestsellers.php CHANGED
@@ -96,6 +96,7 @@ class Mage_Sales_Model_Resource_Report_Bestsellers extends Mage_Sales_Model_Reso
96
  'period' => $periodExpr,
97
  'store_id' => 'source_table.store_id',
98
  'product_id' => 'order_item.product_id',
 
99
  'product_name' => new Zend_Db_Expr(
100
  sprintf('MIN(%s)',
101
  $adapter->getIfNullSql('product_name.value','product_default_name.value')
@@ -132,16 +133,9 @@ class Mage_Sales_Model_Resource_Report_Bestsellers extends Mage_Sales_Model_Reso
132
  /** @var Mage_Catalog_Model_Resource_Product $product */
133
  $product = Mage::getResourceSingleton('catalog/product');
134
 
135
- $productTypes = array(
136
- Mage_Catalog_Model_Product_Type::TYPE_GROUPED,
137
- Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE,
138
- Mage_Catalog_Model_Product_Type::TYPE_BUNDLE,
139
- );
140
-
141
  $joinExpr = array(
142
  'product.entity_id = order_item.product_id',
143
- $adapter->quoteInto('product.entity_type_id = ?', $product->getTypeId()),
144
- $adapter->quoteInto('product.type_id NOT IN(?)', $productTypes)
145
  );
146
 
147
  $joinExpr = implode(' AND ', $joinExpr);
@@ -255,6 +249,7 @@ class Mage_Sales_Model_Resource_Report_Bestsellers extends Mage_Sales_Model_Reso
255
  'period' => 'period',
256
  'store_id' => new Zend_Db_Expr(Mage_Core_Model_App::ADMIN_STORE_ID),
257
  'product_id' => 'product_id',
 
258
  'product_name' => new Zend_Db_Expr('MIN(product_name)'),
259
  'product_price' => new Zend_Db_Expr(
260
  sprintf('%s',
96
  'period' => $periodExpr,
97
  'store_id' => 'source_table.store_id',
98
  'product_id' => 'order_item.product_id',
99
+ 'product_type_id' => 'product.type_id',
100
  'product_name' => new Zend_Db_Expr(
101
  sprintf('MIN(%s)',
102
  $adapter->getIfNullSql('product_name.value','product_default_name.value')
133
  /** @var Mage_Catalog_Model_Resource_Product $product */
134
  $product = Mage::getResourceSingleton('catalog/product');
135
 
 
 
 
 
 
 
136
  $joinExpr = array(
137
  'product.entity_id = order_item.product_id',
138
+ $adapter->quoteInto('product.entity_type_id = ?', $product->getTypeId())
 
139
  );
140
 
141
  $joinExpr = implode(' AND ', $joinExpr);
249
  'period' => 'period',
250
  'store_id' => new Zend_Db_Expr(Mage_Core_Model_App::ADMIN_STORE_ID),
251
  'product_id' => 'product_id',
252
+ 'product_type_id' => 'product_type_id',
253
  'product_name' => new Zend_Db_Expr('MIN(product_name)'),
254
  'product_price' => new Zend_Db_Expr(
255
  sprintf('%s',
app/code/core/Mage/Sales/Model/Resource/Report/Bestsellers/Collection.php CHANGED
@@ -77,11 +77,12 @@ class Mage_Sales_Model_Resource_Report_Bestsellers_Collection
77
  $this->_selectedColumns = $this->getAggregatedColumns();
78
  } else {
79
  $this->_selectedColumns = array(
80
- 'period' => sprintf('MAX(%s)', $adapter->getDateFormatSql('period', '%Y-%m-%d')),
81
- 'qty_ordered' => 'SUM(qty_ordered)',
82
- 'product_id' => 'product_id',
83
- 'product_name' => 'MAX(product_name)',
84
- 'product_price' => 'MAX(product_price)',
 
85
  );
86
  if ('year' == $this->_period) {
87
  $this->_selectedColumns['period'] = $adapter->getDateFormatSql('period', '%Y');
@@ -113,6 +114,7 @@ class Mage_Sales_Model_Resource_Report_Bestsellers_Collection
113
  ->order('qty_ordered DESC')
114
  ->limit($this->_ratingLimit);
115
 
 
116
  $this->_applyStoresFilterToSelect($sel);
117
 
118
  return $sel;
@@ -220,7 +222,6 @@ class Mage_Sales_Model_Resource_Report_Bestsellers_Collection
220
  $this->_applyStoresFilter();
221
 
222
  if ($this->_period) {
223
- //
224
  $selectUnions = array();
225
 
226
  // apply date boundaries (before calling $this->_applyDateRangeFilter())
@@ -342,6 +343,7 @@ class Mage_Sales_Model_Resource_Report_Bestsellers_Collection
342
  }
343
 
344
  $this->_applyDateRangeFilter();
 
345
 
346
  // add unions to select
347
  if ($selectUnions) {
@@ -368,4 +370,15 @@ class Mage_Sales_Model_Resource_Report_Bestsellers_Collection
368
 
369
  return $this;
370
  }
 
 
 
 
 
 
 
 
 
 
 
371
  }
77
  $this->_selectedColumns = $this->getAggregatedColumns();
78
  } else {
79
  $this->_selectedColumns = array(
80
+ 'period' => sprintf('MAX(%s)', $adapter->getDateFormatSql('period', '%Y-%m-%d')),
81
+ 'qty_ordered' => 'SUM(qty_ordered)',
82
+ 'product_id' => 'product_id',
83
+ 'product_name' => 'MAX(product_name)',
84
+ 'product_price' => 'MAX(product_price)',
85
+ 'product_type_id' => 'product_type_id'
86
  );
87
  if ('year' == $this->_period) {
88
  $this->_selectedColumns['period'] = $adapter->getDateFormatSql('period', '%Y');
114
  ->order('qty_ordered DESC')
115
  ->limit($this->_ratingLimit);
116
 
117
+ $this->_applyProductTypeFilter($sel);
118
  $this->_applyStoresFilterToSelect($sel);
119
 
120
  return $sel;
222
  $this->_applyStoresFilter();
223
 
224
  if ($this->_period) {
 
225
  $selectUnions = array();
226
 
227
  // apply date boundaries (before calling $this->_applyDateRangeFilter())
343
  }
344
 
345
  $this->_applyDateRangeFilter();
346
+ $this->_applyProductTypeFilter($this->getSelect());
347
 
348
  // add unions to select
349
  if ($selectUnions) {
370
 
371
  return $this;
372
  }
373
+
374
+ /**
375
+ * Apply filter to exclude certain product types from the collection
376
+ *
377
+ * @return Mage_Sales_Model_Resource_Report_Collection_Abstract
378
+ */
379
+ protected function _applyProductTypeFilter(Zend_Db_Select $select)
380
+ {
381
+ $select->where('product_type_id NOT IN (?)', Mage_Catalog_Model_Product_Type::getCompositeTypes());
382
+ return $this;
383
+ }
384
  }
app/code/core/Mage/Sales/etc/config.xml CHANGED
@@ -28,7 +28,7 @@
28
  <config>
29
  <modules>
30
  <Mage_Sales>
31
- <version>1.6.0.9</version>
32
  </Mage_Sales>
33
  </modules>
34
  <global>
@@ -1227,6 +1227,7 @@
1227
  </grand_total>
1228
  <msrp>
1229
  <class>sales/quote_address_total_msrp</class>
 
1230
  </msrp>
1231
  </totals>
1232
  <nominal_totals>
28
  <config>
29
  <modules>
30
  <Mage_Sales>
31
+ <version>1.6.0.10</version>
32
  </Mage_Sales>
33
  </modules>
34
  <global>
1227
  </grand_total>
1228
  <msrp>
1229
  <class>sales/quote_address_total_msrp</class>
1230
+ <before>weee,freeshipping</before>
1231
  </msrp>
1232
  </totals>
1233
  <nominal_totals>
app/code/core/Mage/Sales/sql/sales_setup/upgrade-1.6.0.9-1.6.0.10.php ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Sales
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+ /* @var $installer Mage_Sales_Model_Entity_Setup */
28
+ $installer = $this;
29
+
30
+ $installer->startSetup();
31
+
32
+ $bestsellersTables = array($installer->getTable('sales/bestsellers_aggregated_daily'),
33
+ $installer->getTable('sales/bestsellers_aggregated_monthly'),
34
+ $installer->getTable('sales/bestsellers_aggregated_yearly'));
35
+
36
+ foreach ($bestsellersTables as $table) {
37
+ $installer->getConnection()->addColumn(
38
+ $table,
39
+ 'product_type_id',
40
+ array(
41
+ 'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
42
+ 'length' => 32,
43
+ 'default' => Mage_Catalog_Model_Product_Type::TYPE_SIMPLE,
44
+ 'nullable' => false,
45
+ 'after' => 'product_id',
46
+ 'comment' => 'Product Type Id'
47
+ )
48
+ );
49
+ }
50
+
51
+ $installer->endSetup();
app/code/core/Mage/SalesRule/Model/Rule/Condition/Product.php CHANGED
@@ -57,7 +57,7 @@ class Mage_SalesRule_Model_Rule_Condition_Product extends Mage_Rule_Model_Condit
57
  public function validate(Varien_Object $object)
58
  {
59
  /** @var Mage_Catalog_Model_Product $product */
60
- $product = $object->getProduct();
61
  if (!($product instanceof Mage_Catalog_Model_Product)) {
62
  $product = Mage::getModel('catalog/product')->load($object->getProductId());
63
  }
57
  public function validate(Varien_Object $object)
58
  {
59
  /** @var Mage_Catalog_Model_Product $product */
60
+ $product = ($object instanceof Mage_Catalog_Model_Product) ? $object : $object->getProduct();
61
  if (!($product instanceof Mage_Catalog_Model_Product)) {
62
  $product = Mage::getModel('catalog/product')->load($object->getProductId());
63
  }
app/code/core/Mage/SalesRule/Model/Rule/Condition/Product/Combine.php CHANGED
@@ -216,7 +216,22 @@ class Mage_SalesRule_Model_Rule_Condition_Product_Combine extends Mage_Rule_Mode
216
  $valid = parent::validate($object);
217
  if (!$valid && $product->getTypeId() == Mage_Catalog_Model_Product_Type_Configurable::TYPE_CODE) {
218
  $children = $object->getChildren();
219
- $valid = $children && $this->validate($children[0]);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
220
  }
221
 
222
  return $valid;
216
  $valid = parent::validate($object);
217
  if (!$valid && $product->getTypeId() == Mage_Catalog_Model_Product_Type_Configurable::TYPE_CODE) {
218
  $children = $object->getChildren();
219
+ if (is_array($children) and isset($children[0])) {
220
+ $child = $children[0];
221
+
222
+ /** @var Mage_Catalog_Model_Product $childProduct */
223
+ $childProduct = Mage::getModel('catalog/product')->load($child->getProductId());
224
+ $childProduct
225
+ ->setQuoteItemQty($object->getQty())
226
+ ->setQuoteItemPrice($object->getPrice())
227
+ ->setQuoteItemRowTotal($object->getBaseRowTotal());
228
+
229
+ if (!$childProduct->isVisibleInSiteVisibility()) {
230
+ $childProduct->setCategoryIds($product->getCategoryIds());
231
+ }
232
+
233
+ $valid = parent::validate($childProduct);
234
+ }
235
  }
236
 
237
  return $valid;
app/code/core/Mage/SalesRule/Model/Validator.php CHANGED
@@ -245,26 +245,26 @@ class Mage_SalesRule_Model_Validator extends Mage_Core_Model_Abstract
245
  $item->setFreeShipping(false);
246
 
247
  foreach ($this->_getRules() as $rule) {
248
- /* @var $rule Mage_SalesRule_Model_Rule */
249
- if (!$this->_canProcessRule($rule, $address)) {
250
- continue;
251
- }
252
-
253
- if (!$rule->getActions()->validate($item)) {
254
- continue;
255
- }
256
 
257
- switch ($rule->getSimpleFreeShipping()) {
258
- case Mage_SalesRule_Model_Rule::FREE_SHIPPING_ITEM:
259
- $item->setFreeShipping($rule->getDiscountQty() ? $rule->getDiscountQty() : true);
260
- break;
 
 
 
 
 
 
 
261
 
262
- case Mage_SalesRule_Model_Rule::FREE_SHIPPING_ADDRESS:
263
- $address->setFreeShipping(true);
 
 
 
264
  break;
265
- }
266
- if ($rule->getStopRulesProcessing()) {
267
- break;
268
  }
269
  }
270
  return $this;
@@ -316,204 +316,198 @@ class Mage_SalesRule_Model_Validator extends Mage_Core_Model_Abstract
316
  foreach ($this->_getRules() as $rule) {
317
 
318
  /* @var $rule Mage_SalesRule_Model_Rule */
319
- if (!$this->_canProcessRule($rule, $address)) {
320
- continue;
321
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
322
 
323
- if (!$rule->getActions()->validate($item)) {
324
- continue;
325
- }
 
 
 
 
 
 
 
 
 
 
326
 
327
- $qty = $this->_getItemQty($item, $rule);
328
- $rulePercent = min(100, $rule->getDiscountAmount());
 
 
 
 
 
 
 
329
 
330
- $discountAmount = 0;
331
- $baseDiscountAmount = 0;
332
- //discount for original price
333
- $originalDiscountAmount = 0;
334
- $baseOriginalDiscountAmount = 0;
335
 
336
- switch ($rule->getSimpleAction()) {
337
- case Mage_SalesRule_Model_Rule::TO_PERCENT_ACTION:
338
- $rulePercent = max(0, 100-$rule->getDiscountAmount());
339
- //no break;
340
- case Mage_SalesRule_Model_Rule::BY_PERCENT_ACTION:
341
- $step = $rule->getDiscountStep();
342
- if ($step) {
343
- $qty = floor($qty/$step)*$step;
344
- }
345
- $_rulePct = $rulePercent/100;
346
- $discountAmount = ($qty * $itemPrice - $item->getDiscountAmount()) * $_rulePct;
347
- $baseDiscountAmount = ($qty * $baseItemPrice - $item->getBaseDiscountAmount()) * $_rulePct;
348
- //get discount for original price
349
- $originalDiscountAmount = ($qty * $itemOriginalPrice - $item->getDiscountAmount()) * $_rulePct;
350
- $baseOriginalDiscountAmount =
351
- ($qty * $baseItemOriginalPrice - $item->getDiscountAmount()) * $_rulePct;
352
-
353
- if (!$rule->getDiscountQty() || $rule->getDiscountQty()>$qty) {
354
- $discountPercent = min(100, $item->getDiscountPercent()+$rulePercent);
355
- $item->setDiscountPercent($discountPercent);
356
- }
357
- break;
358
- case Mage_SalesRule_Model_Rule::TO_FIXED_ACTION:
359
- $quoteAmount = $quote->getStore()->convertPrice($rule->getDiscountAmount());
360
- $discountAmount = $qty * ($itemPrice-$quoteAmount);
361
- $baseDiscountAmount = $qty * ($baseItemPrice-$rule->getDiscountAmount());
362
- //get discount for original price
363
- $originalDiscountAmount = $qty * ($itemOriginalPrice-$quoteAmount);
364
- $baseOriginalDiscountAmount = $qty * ($baseItemOriginalPrice-$rule->getDiscountAmount());
365
- break;
366
 
367
- case Mage_SalesRule_Model_Rule::BY_FIXED_ACTION:
368
- $step = $rule->getDiscountStep();
369
- if ($step) {
370
- $qty = floor($qty/$step)*$step;
371
- }
372
- $quoteAmount = $quote->getStore()->convertPrice($rule->getDiscountAmount());
373
- $discountAmount = $qty * $quoteAmount;
374
- $baseDiscountAmount = $qty * $rule->getDiscountAmount();
375
- break;
376
 
377
- case Mage_SalesRule_Model_Rule::CART_FIXED_ACTION:
378
- if (empty($this->_rulesItemTotals[$rule->getId()])) {
379
- Mage::throwException(Mage::helper('salesrule')->__('Item totals are not set for rule.'));
380
- }
381
 
382
- /**
383
- * prevent applying whole cart discount for every shipping order, but only for first order
384
- */
385
- if ($quote->getIsMultiShipping()) {
386
- $usedForAddressId = $this->getCartFixedRuleUsedForAddress($rule->getId());
387
- if ($usedForAddressId && $usedForAddressId != $address->getId()) {
388
- break;
389
- } else {
390
- $this->setCartFixedRuleUsedForAddress($rule->getId(), $address->getId());
391
- }
392
- }
393
- $cartRules = $address->getCartFixedRules();
394
- if (!isset($cartRules[$rule->getId()])) {
395
- $cartRules[$rule->getId()] = $rule->getDiscountAmount();
396
- }
397
 
398
- if ($cartRules[$rule->getId()] > 0) {
399
- if ($this->_rulesItemTotals[$rule->getId()]['items_count'] <= 1) {
400
- $quoteAmount = $quote->getStore()->convertPrice($cartRules[$rule->getId()]);
401
- $baseDiscountAmount = min($baseItemPrice * $qty, $cartRules[$rule->getId()]);
402
- } else {
403
- $discountRate = $baseItemPrice * $qty /
404
- $this->_rulesItemTotals[$rule->getId()]['base_items_price'];
405
- $maximumItemDiscount = $rule->getDiscountAmount() * $discountRate;
406
- $quoteAmount = $quote->getStore()->convertPrice($maximumItemDiscount);
407
 
408
- $baseDiscountAmount = min($baseItemPrice * $qty, $maximumItemDiscount);
409
- $this->_rulesItemTotals[$rule->getId()]['items_count']--;
410
  }
 
411
 
412
- $discountAmount = min($itemPrice * $qty, $quoteAmount);
413
- $discountAmount = $quote->getStore()->roundPrice($discountAmount);
414
- $baseDiscountAmount = $quote->getStore()->roundPrice($baseDiscountAmount);
415
 
416
- //get discount for original price
417
- $originalDiscountAmount = min($itemOriginalPrice * $qty, $quoteAmount);
418
- $baseOriginalDiscountAmount = $quote->getStore()->roundPrice($baseItemOriginalPrice);
 
 
 
 
419
 
420
- $cartRules[$rule->getId()] -= $baseDiscountAmount;
421
- }
422
- $address->setCartFixedRules($cartRules);
423
 
424
- break;
 
 
 
425
 
426
- case Mage_SalesRule_Model_Rule::BUY_X_GET_Y_ACTION:
427
- $x = $rule->getDiscountStep();
428
- $y = $rule->getDiscountAmount();
429
- if (!$x || $y > $x) {
 
430
  break;
431
- }
432
- $buyAndDiscountQty = $x + $y;
433
-
434
- $fullRuleQtyPeriod = floor($qty / $buyAndDiscountQty);
435
- $freeQty = $qty - $fullRuleQtyPeriod * $buyAndDiscountQty;
436
-
437
- $discountQty = $fullRuleQtyPeriod * $y;
438
- if ($freeQty > $x) {
439
- $discountQty += $freeQty - $x;
440
- }
441
-
442
- $discountAmount = $discountQty * $itemPrice;
443
- $baseDiscountAmount = $discountQty * $baseItemPrice;
444
- //get discount for original price
445
- $originalDiscountAmount = $discountQty * $itemOriginalPrice;
446
- $baseOriginalDiscountAmount = $discountQty * $baseItemOriginalPrice;
447
- break;
448
- }
449
 
450
- $result = new Varien_Object(array(
451
- 'discount_amount' => $discountAmount,
452
- 'base_discount_amount' => $baseDiscountAmount,
453
- ));
454
- Mage::dispatchEvent('salesrule_validator_process', array(
455
- 'rule' => $rule,
456
- 'item' => $item,
457
- 'address' => $address,
458
- 'quote' => $quote,
459
- 'qty' => $qty,
460
- 'result' => $result,
461
- ));
462
-
463
- $discountAmount = $result->getDiscountAmount();
464
- $baseDiscountAmount = $result->getBaseDiscountAmount();
465
-
466
- $percentKey = $item->getDiscountPercent();
467
- /**
468
- * Process "delta" rounding
469
- */
470
- if ($percentKey) {
471
- $delta = isset($this->_roundingDeltas[$percentKey]) ? $this->_roundingDeltas[$percentKey] : 0;
472
- $baseDelta = isset($this->_baseRoundingDeltas[$percentKey])
473
- ? $this->_baseRoundingDeltas[$percentKey]
474
- : 0;
475
- $discountAmount += $delta;
476
- $baseDiscountAmount += $baseDelta;
477
-
478
- $this->_roundingDeltas[$percentKey] = $discountAmount -
479
- $quote->getStore()->roundPrice($discountAmount);
480
- $this->_baseRoundingDeltas[$percentKey] = $baseDiscountAmount -
481
- $quote->getStore()->roundPrice($baseDiscountAmount);
482
- $discountAmount = $quote->getStore()->roundPrice($discountAmount);
483
- $baseDiscountAmount = $quote->getStore()->roundPrice($baseDiscountAmount);
484
- } else {
485
- $discountAmount = $quote->getStore()->roundPrice($discountAmount);
486
- $baseDiscountAmount = $quote->getStore()->roundPrice($baseDiscountAmount);
487
- }
488
 
489
- /**
490
- * We can't use row total here because row total not include tax
491
- * Discount can be applied on price included tax
492
- */
493
 
494
- $itemDiscountAmount = $item->getDiscountAmount();
495
- $itemBaseDiscountAmount = $item->getBaseDiscountAmount();
496
 
497
- $discountAmount = min($itemDiscountAmount + $discountAmount, $itemPrice * $qty);
498
- $baseDiscountAmount = min($itemBaseDiscountAmount + $baseDiscountAmount, $baseItemPrice * $qty);
499
 
500
- $item->setDiscountAmount($discountAmount);
501
- $item->setBaseDiscountAmount($baseDiscountAmount);
502
 
503
- $item->setOriginalDiscountAmount($originalDiscountAmount);
504
- $item->setBaseOriginalDiscountAmount($baseOriginalDiscountAmount);
505
 
506
- $appliedRuleIds[$rule->getRuleId()] = $rule->getRuleId();
507
 
508
- $this->_maintainAddressCouponCode($address, $rule);
509
- $this->_addDiscountDescription($address, $rule);
510
 
511
- if ($rule->getStopRulesProcessing()) {
512
- $this->_stopFurtherRules = true;
513
- break;
 
514
  }
515
  }
516
-
517
  $item->setAppliedRuleIds(join(',',$appliedRuleIds));
518
  $address->setAppliedRuleIds($this->mergeIds($address->getAppliedRuleIds(), $appliedRuleIds));
519
  $quote->setAppliedRuleIds($this->mergeIds($quote->getAppliedRuleIds(), $appliedRuleIds));
245
  $item->setFreeShipping(false);
246
 
247
  foreach ($this->_getRules() as $rule) {
 
 
 
 
 
 
 
 
248
 
249
+ /* @var $rule Mage_SalesRule_Model_Rule */
250
+ if (
251
+ $rule->getSimpleFreeShipping()
252
+ && $this->_canProcessRule($rule, $address)
253
+ && $rule->getActions()->validate($item)
254
+ ) {
255
+
256
+ switch ($rule->getSimpleFreeShipping()) {
257
+ case Mage_SalesRule_Model_Rule::FREE_SHIPPING_ITEM:
258
+ $item->setFreeShipping($rule->getDiscountQty() ? $rule->getDiscountQty() : true);
259
+ break;
260
 
261
+ case Mage_SalesRule_Model_Rule::FREE_SHIPPING_ADDRESS:
262
+ $address->setFreeShipping(true);
263
+ break;
264
+ }
265
+ if ($rule->getStopRulesProcessing()) {
266
  break;
267
+ }
 
 
268
  }
269
  }
270
  return $this;
316
  foreach ($this->_getRules() as $rule) {
317
 
318
  /* @var $rule Mage_SalesRule_Model_Rule */
319
+ if ($this->_canProcessRule($rule, $address) && $rule->getActions()->validate($item)) {
320
+
321
+ $qty = $this->_getItemQty($item, $rule);
322
+ $rulePercent = min(100, $rule->getDiscountAmount());
323
+
324
+ $discountAmount = 0;
325
+ $baseDiscountAmount = 0;
326
+ //discount for original price
327
+ $originalDiscountAmount = 0;
328
+ $baseOriginalDiscountAmount = 0;
329
+
330
+ switch ($rule->getSimpleAction()) {
331
+ case Mage_SalesRule_Model_Rule::TO_PERCENT_ACTION:
332
+ $rulePercent = max(0, 100 - $rule->getDiscountAmount());
333
+ //no break;
334
+ case Mage_SalesRule_Model_Rule::BY_PERCENT_ACTION:
335
+ $step = $rule->getDiscountStep();
336
+ if ($step) {
337
+ $qty = floor($qty / $step) * $step;
338
+ }
339
+ $_rulePct = $rulePercent / 100;
340
+ $discountAmount = ($qty * $itemPrice - $item->getDiscountAmount()) * $_rulePct;
341
+ $baseDiscountAmount = ($qty * $baseItemPrice - $item->getBaseDiscountAmount()) * $_rulePct;
342
+ //get discount for original price
343
+ $originalDiscountAmount = ($qty * $itemOriginalPrice - $item->getDiscountAmount()) * $_rulePct;
344
+ $baseOriginalDiscountAmount =
345
+ ($qty * $baseItemOriginalPrice - $item->getDiscountAmount()) * $_rulePct;
346
 
347
+ if (!$rule->getDiscountQty() || $rule->getDiscountQty() > $qty) {
348
+ $discountPercent = min(100, $item->getDiscountPercent() + $rulePercent);
349
+ $item->setDiscountPercent($discountPercent);
350
+ }
351
+ break;
352
+ case Mage_SalesRule_Model_Rule::TO_FIXED_ACTION:
353
+ $quoteAmount = $quote->getStore()->convertPrice($rule->getDiscountAmount());
354
+ $discountAmount = $qty * ($itemPrice - $quoteAmount);
355
+ $baseDiscountAmount = $qty * ($baseItemPrice - $rule->getDiscountAmount());
356
+ //get discount for original price
357
+ $originalDiscountAmount = $qty * ($itemOriginalPrice - $quoteAmount);
358
+ $baseOriginalDiscountAmount = $qty * ($baseItemOriginalPrice - $rule->getDiscountAmount());
359
+ break;
360
 
361
+ case Mage_SalesRule_Model_Rule::BY_FIXED_ACTION:
362
+ $step = $rule->getDiscountStep();
363
+ if ($step) {
364
+ $qty = floor($qty / $step) * $step;
365
+ }
366
+ $quoteAmount = $quote->getStore()->convertPrice($rule->getDiscountAmount());
367
+ $discountAmount = $qty * $quoteAmount;
368
+ $baseDiscountAmount = $qty * $rule->getDiscountAmount();
369
+ break;
370
 
371
+ case Mage_SalesRule_Model_Rule::CART_FIXED_ACTION:
372
+ if (empty($this->_rulesItemTotals[$rule->getId()])) {
373
+ Mage::throwException(Mage::helper('salesrule')->__('Item totals are not set for rule.'));
374
+ }
 
375
 
376
+ /**
377
+ * prevent applying whole cart discount for every shipping order, but only for first order
378
+ */
379
+ if ($quote->getIsMultiShipping()) {
380
+ $usedForAddressId = $this->getCartFixedRuleUsedForAddress($rule->getId());
381
+ if ($usedForAddressId && $usedForAddressId != $address->getId()) {
382
+ break;
383
+ } else {
384
+ $this->setCartFixedRuleUsedForAddress($rule->getId(), $address->getId());
385
+ }
386
+ }
387
+ $cartRules = $address->getCartFixedRules();
388
+ if (!isset($cartRules[$rule->getId()])) {
389
+ $cartRules[$rule->getId()] = $rule->getDiscountAmount();
390
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
391
 
392
+ if ($cartRules[$rule->getId()] > 0) {
393
+ if ($this->_rulesItemTotals[$rule->getId()]['items_count'] <= 1) {
394
+ $quoteAmount = $quote->getStore()->convertPrice($cartRules[$rule->getId()]);
395
+ $baseDiscountAmount = min($baseItemPrice * $qty, $cartRules[$rule->getId()]);
396
+ } else {
397
+ $discountRate = $baseItemPrice * $qty /
398
+ $this->_rulesItemTotals[$rule->getId()]['base_items_price'];
399
+ $maximumItemDiscount = $rule->getDiscountAmount() * $discountRate;
400
+ $quoteAmount = $quote->getStore()->convertPrice($maximumItemDiscount);
401
 
402
+ $baseDiscountAmount = min($baseItemPrice * $qty, $maximumItemDiscount);
403
+ $this->_rulesItemTotals[$rule->getId()]['items_count']--;
404
+ }
 
405
 
406
+ $discountAmount = min($itemPrice * $qty, $quoteAmount);
407
+ $discountAmount = $quote->getStore()->roundPrice($discountAmount);
408
+ $baseDiscountAmount = $quote->getStore()->roundPrice($baseDiscountAmount);
 
 
 
 
 
 
 
 
 
 
 
 
409
 
410
+ //get discount for original price
411
+ $originalDiscountAmount = min($itemOriginalPrice * $qty, $quoteAmount);
412
+ $baseOriginalDiscountAmount = $quote->getStore()->roundPrice($baseItemOriginalPrice);
 
 
 
 
 
 
413
 
414
+ $cartRules[$rule->getId()] -= $baseDiscountAmount;
 
415
  }
416
+ $address->setCartFixedRules($cartRules);
417
 
418
+ break;
 
 
419
 
420
+ case Mage_SalesRule_Model_Rule::BUY_X_GET_Y_ACTION:
421
+ $x = $rule->getDiscountStep();
422
+ $y = $rule->getDiscountAmount();
423
+ if (!$x || $y > $x) {
424
+ break;
425
+ }
426
+ $buyAndDiscountQty = $x + $y;
427
 
428
+ $fullRuleQtyPeriod = floor($qty / $buyAndDiscountQty);
429
+ $freeQty = $qty - $fullRuleQtyPeriod * $buyAndDiscountQty;
 
430
 
431
+ $discountQty = $fullRuleQtyPeriod * $y;
432
+ if ($freeQty > $x) {
433
+ $discountQty += $freeQty - $x;
434
+ }
435
 
436
+ $discountAmount = $discountQty * $itemPrice;
437
+ $baseDiscountAmount = $discountQty * $baseItemPrice;
438
+ //get discount for original price
439
+ $originalDiscountAmount = $discountQty * $itemOriginalPrice;
440
+ $baseOriginalDiscountAmount = $discountQty * $baseItemOriginalPrice;
441
  break;
442
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
443
 
444
+ $result = new Varien_Object(array(
445
+ 'discount_amount' => $discountAmount,
446
+ 'base_discount_amount' => $baseDiscountAmount,
447
+ ));
448
+ Mage::dispatchEvent('salesrule_validator_process', array(
449
+ 'rule' => $rule,
450
+ 'item' => $item,
451
+ 'address' => $address,
452
+ 'quote' => $quote,
453
+ 'qty' => $qty,
454
+ 'result' => $result,
455
+ ));
456
+
457
+ $discountAmount = $result->getDiscountAmount();
458
+ $baseDiscountAmount = $result->getBaseDiscountAmount();
459
+
460
+ $percentKey = $item->getDiscountPercent();
461
+ /**
462
+ * Process "delta" rounding
463
+ */
464
+ if ($percentKey) {
465
+ $delta = isset($this->_roundingDeltas[$percentKey]) ? $this->_roundingDeltas[$percentKey] : 0;
466
+ $baseDelta = isset($this->_baseRoundingDeltas[$percentKey])
467
+ ? $this->_baseRoundingDeltas[$percentKey]
468
+ : 0;
469
+ $discountAmount += $delta;
470
+ $baseDiscountAmount += $baseDelta;
471
+
472
+ $this->_roundingDeltas[$percentKey] = $discountAmount -
473
+ $quote->getStore()->roundPrice($discountAmount);
474
+ $this->_baseRoundingDeltas[$percentKey] = $baseDiscountAmount -
475
+ $quote->getStore()->roundPrice($baseDiscountAmount);
476
+ $discountAmount = $quote->getStore()->roundPrice($discountAmount);
477
+ $baseDiscountAmount = $quote->getStore()->roundPrice($baseDiscountAmount);
478
+ } else {
479
+ $discountAmount = $quote->getStore()->roundPrice($discountAmount);
480
+ $baseDiscountAmount = $quote->getStore()->roundPrice($baseDiscountAmount);
481
+ }
482
 
483
+ /**
484
+ * We can't use row total here because row total not include tax
485
+ * Discount can be applied on price included tax
486
+ */
487
 
488
+ $itemDiscountAmount = $item->getDiscountAmount();
489
+ $itemBaseDiscountAmount = $item->getBaseDiscountAmount();
490
 
491
+ $discountAmount = min($itemDiscountAmount + $discountAmount, $itemPrice * $qty);
492
+ $baseDiscountAmount = min($itemBaseDiscountAmount + $baseDiscountAmount, $baseItemPrice * $qty);
493
 
494
+ $item->setDiscountAmount($discountAmount);
495
+ $item->setBaseDiscountAmount($baseDiscountAmount);
496
 
497
+ $item->setOriginalDiscountAmount($originalDiscountAmount);
498
+ $item->setBaseOriginalDiscountAmount($baseOriginalDiscountAmount);
499
 
500
+ $appliedRuleIds[$rule->getRuleId()] = $rule->getRuleId();
501
 
502
+ $this->_maintainAddressCouponCode($address, $rule);
503
+ $this->_addDiscountDescription($address, $rule);
504
 
505
+ if ($rule->getStopRulesProcessing()) {
506
+ $this->_stopFurtherRules = true;
507
+ break;
508
+ }
509
  }
510
  }
 
511
  $item->setAppliedRuleIds(join(',',$appliedRuleIds));
512
  $address->setAppliedRuleIds($this->mergeIds($address->getAppliedRuleIds(), $appliedRuleIds));
513
  $quote->setAppliedRuleIds($this->mergeIds($quote->getAppliedRuleIds(), $appliedRuleIds));
app/code/core/Mage/SalesRule/etc/config.xml CHANGED
@@ -134,8 +134,8 @@
134
  <totals>
135
  <freeshipping>
136
  <class>salesrule/quote_freeshipping</class>
137
- <after>subtotal</after>
138
- <before>tax_subtotal,shipping</before>
139
  </freeshipping>
140
  <discount>
141
  <class>salesrule/quote_discount</class>
134
  <totals>
135
  <freeshipping>
136
  <class>salesrule/quote_freeshipping</class>
137
+ <after>subtotal,tax_subtotal</after>
138
+ <before>shipping</before>
139
  </freeshipping>
140
  <discount>
141
  <class>salesrule/quote_discount</class>
app/code/core/Mage/Sitemap/Model/Sitemap.php CHANGED
@@ -155,7 +155,8 @@ class Mage_Sitemap_Model_Sitemap extends Mage_Core_Model_Abstract
155
  $categories = new Varien_Object();
156
  $categories->setItems($collection);
157
  Mage::dispatchEvent('sitemap_categories_generating_before', array(
158
- 'collection' => $categories
 
159
  ));
160
  foreach ($categories->getItems() as $item) {
161
  $xml = sprintf(
@@ -178,7 +179,8 @@ class Mage_Sitemap_Model_Sitemap extends Mage_Core_Model_Abstract
178
  $products = new Varien_Object();
179
  $products->setItems($collection);
180
  Mage::dispatchEvent('sitemap_products_generating_before', array(
181
- 'collection' => $products
 
182
  ));
183
  foreach ($products->getItems() as $item) {
184
  $xml = sprintf(
155
  $categories = new Varien_Object();
156
  $categories->setItems($collection);
157
  Mage::dispatchEvent('sitemap_categories_generating_before', array(
158
+ 'collection' => $categories,
159
+ 'store_id' => $storeId
160
  ));
161
  foreach ($categories->getItems() as $item) {
162
  $xml = sprintf(
179
  $products = new Varien_Object();
180
  $products->setItems($collection);
181
  Mage::dispatchEvent('sitemap_products_generating_before', array(
182
+ 'collection' => $products,
183
+ 'store_id' => $storeId
184
  ));
185
  foreach ($products->getItems() as $item) {
186
  $xml = sprintf(
app/code/core/Mage/Tax/etc/config.xml CHANGED
@@ -162,8 +162,8 @@
162
  <totals>
163
  <tax_subtotal>
164
  <class>tax/sales_total_quote_subtotal</class>
165
- <after>freeshipping</after>
166
- <before>tax,discount</before>
167
  </tax_subtotal>
168
  <tax_shipping>
169
  <class>tax/sales_total_quote_shipping</class>
162
  <totals>
163
  <tax_subtotal>
164
  <class>tax/sales_total_quote_subtotal</class>
165
+ <after>subtotal</after>
166
+ <before>tax,discount,msrp</before>
167
  </tax_subtotal>
168
  <tax_shipping>
169
  <class>tax/sales_total_quote_shipping</class>
app/code/core/Mage/Uploader/Block/Abstract.php ADDED
@@ -0,0 +1,247 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Uploader
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+ abstract class Mage_Uploader_Block_Abstract extends Mage_Adminhtml_Block_Widget
28
+ {
29
+ /**
30
+ * Template used for uploader
31
+ *
32
+ * @var string
33
+ */
34
+ protected $_template = 'media/uploader.phtml';
35
+
36
+ /**
37
+ * @var Mage_Uploader_Model_Config_Misc
38
+ */
39
+ protected $_misc;
40
+
41
+ /**
42
+ * @var Mage_Uploader_Model_Config_Uploader
43
+ */
44
+ protected $_uploaderConfig;
45
+
46
+ /**
47
+ * @var Mage_Uploader_Model_Config_Browsebutton
48
+ */
49
+ protected $_browseButtonConfig;
50
+
51
+ /**
52
+ * @var Mage_Uploader_Model_Config_Misc
53
+ */
54
+ protected $_miscConfig;
55
+
56
+ /**
57
+ * @var array
58
+ */
59
+ protected $_idsMapping = array();
60
+
61
+ /**
62
+ * Default browse button ID suffix
63
+ */
64
+ const DEFAULT_BROWSE_BUTTON_ID_SUFFIX = 'browse';
65
+
66
+ /**
67
+ * Constructor for uploader block
68
+ *
69
+ * @see https://github.com/flowjs/flow.js/tree/v2.9.0#configuration
70
+ * @description Set unique id for block
71
+ */
72
+ public function __construct()
73
+ {
74
+ parent::__construct();
75
+ $this->setId($this->getId() . '_Uploader');
76
+ }
77
+
78
+ /**
79
+ * Helper for file manipulation
80
+ *
81
+ * @return Mage_Uploader_Helper_File
82
+ */
83
+ protected function _getHelper()
84
+ {
85
+ return Mage::helper('uploader/file');
86
+ }
87
+
88
+ /**
89
+ * @return string
90
+ */
91
+ public function getJsonConfig()
92
+ {
93
+ return $this->helper('core')->jsonEncode(array(
94
+ 'uploaderConfig' => $this->getUploaderConfig()->getData(),
95
+ 'elementIds' => $this->_getElementIdsMapping(),
96
+ 'browseConfig' => $this->getButtonConfig()->getData(),
97
+ 'miscConfig' => $this->getMiscConfig()->getData(),
98
+ ));
99
+ }
100
+
101
+ /**
102
+ * Get mapping of ids for front-end use
103
+ *
104
+ * @return array
105
+ */
106
+ protected function _getElementIdsMapping()
107
+ {
108
+ return $this->_idsMapping;
109
+ }
110
+
111
+ /**
112
+ * Add mapping ids for front-end use
113
+ *
114
+ * @param array $additionalButtons
115
+ * @return $this
116
+ */
117
+ protected function _addElementIdsMapping($additionalButtons = array())
118
+ {
119
+ $this->_idsMapping = array_merge($this->_idsMapping, $additionalButtons);
120
+
121
+ return $this;
122
+ }
123
+
124
+ /**
125
+ * Prepare layout, create buttons, set front-end elements ids
126
+ *
127
+ * @return Mage_Core_Block_Abstract
128
+ */
129
+ protected function _prepareLayout()
130
+ {
131
+ $this->setChild(
132
+ 'browse_button',
133
+ $this->getLayout()->createBlock('adminhtml/widget_button')
134
+ ->addData(array(
135
+ // Workaround for IE9
136
+ 'before_html' => sprintf(
137
+ '<div style="display:inline-block;" id="%s">',
138
+ $this->getElementId(self::DEFAULT_BROWSE_BUTTON_ID_SUFFIX)
139
+ ),
140
+ 'after_html' => '</div>',
141
+ 'id' => $this->getElementId(self::DEFAULT_BROWSE_BUTTON_ID_SUFFIX . '_button'),
142
+ 'label' => Mage::helper('uploader')->__('Browse Files...'),
143
+ 'type' => 'button',
144
+ ))
145
+ );
146
+
147
+ $this->setChild(
148
+ 'delete_button',
149
+ $this->getLayout()->createBlock('adminhtml/widget_button')
150
+ ->addData(array(
151
+ 'id' => '{{id}}',
152
+ 'class' => 'delete',
153
+ 'type' => 'button',
154
+ 'label' => Mage::helper('uploader')->__('Remove')
155
+ ))
156
+ );
157
+
158
+ $this->_addElementIdsMapping(array(
159
+ 'container' => $this->getHtmlId(),
160
+ 'templateFile' => $this->getElementId('template'),
161
+ 'browse' => $this->_prepareElementsIds(array(self::DEFAULT_BROWSE_BUTTON_ID_SUFFIX))
162
+ ));
163
+
164
+ return parent::_prepareLayout();
165
+ }
166
+
167
+ /**
168
+ * Get browse button html
169
+ *
170
+ * @return string
171
+ */
172
+ public function getBrowseButtonHtml()
173
+ {
174
+ return $this->getChildHtml('browse_button');
175
+ }
176
+
177
+ /**
178
+ * Get delete button html
179
+ *
180
+ * @return string
181
+ */
182
+ public function getDeleteButtonHtml()
183
+ {
184
+ return $this->getChildHtml('delete_button');
185
+ }
186
+
187
+ /**
188
+ * Get uploader misc settings
189
+ *
190
+ * @return Mage_Uploader_Model_Config_Misc
191
+ */
192
+ public function getMiscConfig()
193
+ {
194
+ if (is_null($this->_miscConfig)) {
195
+ $this->_miscConfig = Mage::getModel('uploader/config_misc');
196
+ }
197
+ return $this->_miscConfig;
198
+ }
199
+
200
+ /**
201
+ * Get uploader general settings
202
+ *
203
+ * @return Mage_Uploader_Model_Config_Uploader
204
+ */
205
+ public function getUploaderConfig()
206
+ {
207
+ if (is_null($this->_uploaderConfig)) {
208
+ $this->_uploaderConfig = Mage::getModel('uploader/config_uploader');
209
+ }
210
+ return $this->_uploaderConfig;
211
+ }
212
+
213
+ /**
214
+ * Get browse button settings
215
+ *
216
+ * @return Mage_Uploader_Model_Config_Browsebutton
217
+ */
218
+ public function getButtonConfig()
219
+ {
220
+ if (is_null($this->_browseButtonConfig)) {
221
+ $this->_browseButtonConfig = Mage::getModel('uploader/config_browsebutton');
222
+ }
223
+ return $this->_browseButtonConfig;
224
+ }
225
+
226
+ /**
227
+ * Get button unique id
228
+ *
229
+ * @param string $suffix
230
+ * @return string
231
+ */
232
+ public function getElementId($suffix)
233
+ {
234
+ return $this->getHtmlId() . '-' . $suffix;
235
+ }
236
+
237
+ /**
238
+ * Prepare actual elements ids from suffixes
239
+ *
240
+ * @param array $targets $type => array($idsSuffixes)
241
+ * @return array $type => array($htmlIds)
242
+ */
243
+ protected function _prepareElementsIds($targets)
244
+ {
245
+ return array_map(array($this, 'getElementId'), array_unique(array_values($targets)));
246
+ }
247
+ }
app/code/core/Mage/Uploader/Block/Multiple.php ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Uploader
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+ class Mage_Uploader_Block_Multiple extends Mage_Uploader_Block_Abstract
28
+ {
29
+ /**
30
+ *
31
+ * Default upload button ID suffix
32
+ */
33
+ const DEFAULT_UPLOAD_BUTTON_ID_SUFFIX = 'upload';
34
+
35
+
36
+ /**
37
+ * Prepare layout, create upload button
38
+ *
39
+ * @return Mage_Uploader_Block_Multiple
40
+ */
41
+ protected function _prepareLayout()
42
+ {
43
+ parent::_prepareLayout();
44
+
45
+ $this->setChild(
46
+ 'upload_button',
47
+ $this->getLayout()->createBlock('adminhtml/widget_button')
48
+ ->addData(array(
49
+ 'id' => $this->getElementId(self::DEFAULT_UPLOAD_BUTTON_ID_SUFFIX),
50
+ 'label' => Mage::helper('uploader')->__('Upload Files'),
51
+ 'type' => 'button',
52
+ ))
53
+ );
54
+
55
+ $this->_addElementIdsMapping(array(
56
+ 'upload' => $this->_prepareElementsIds(array(self::DEFAULT_UPLOAD_BUTTON_ID_SUFFIX))
57
+ ));
58
+
59
+ return $this;
60
+ }
61
+
62
+ /**
63
+ * Get upload button html
64
+ *
65
+ * @return string
66
+ */
67
+ public function getUploadButtonHtml()
68
+ {
69
+ return $this->getChildHtml('upload_button');
70
+ }
71
+ }
app/code/core/Mage/Uploader/Block/Single.php ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Uploader
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+ class Mage_Uploader_Block_Single extends Mage_Uploader_Block_Abstract
28
+ {
29
+ /**
30
+ * Prepare layout, change button and set front-end element ids mapping
31
+ *
32
+ * @return Mage_Core_Block_Abstract
33
+ */
34
+ protected function _prepareLayout()
35
+ {
36
+ parent::_prepareLayout();
37
+ $this->getChild('browse_button')->setLabel(Mage::helper('uploader')->__('...'));
38
+
39
+ return $this;
40
+ }
41
+
42
+ /**
43
+ * Constructor for single uploader block
44
+ */
45
+ public function __construct()
46
+ {
47
+ parent::__construct();
48
+
49
+ $this->getUploaderConfig()->setSingleFile(true);
50
+ $this->getButtonConfig()->setSingleFile(true);
51
+ }
52
+ }
app/code/core/Mage/Uploader/Helper/Data.php ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Uploader
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+ /**
28
+ * Uploader data helper
29
+ *
30
+ * Class Mage_Uploader_Helper_Data
31
+ */
32
+ class Mage_Uploader_Helper_Data extends Mage_Core_Helper_Abstract
33
+ {
34
+
35
+ }
app/code/core/Mage/Uploader/Helper/File.php ADDED
@@ -0,0 +1,758 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Uploader
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+ /**
28
+ * File Helper
29
+ *
30
+ * @category Mage
31
+ * @package Mage_Uploader
32
+ * @author Magento Core Team <core@magentocommerce.com>
33
+ */
34
+
35
+ class Mage_Uploader_Helper_File extends Mage_Core_Helper_Abstract
36
+ {
37
+ /**
38
+ * List of pre-defined MIME types
39
+ *
40
+ * @var array
41
+ */
42
+ protected $_mimeTypes =
43
+ array(
44
+ 'x123' => 'application/vnd.lotus-1-2-3',
45
+ 'x3dml' => 'text/vnd.in3d.3dml',
46
+ 'x3g2' => 'video/3gpp2',
47
+ 'x3gp' => 'video/3gpp',
48
+ 'xace' => 'application/x-ace-compressed',
49
+ 'xacu' => 'application/vnd.acucobol',
50
+ 'xaep' => 'application/vnd.audiograph',
51
+ 'xai' => 'application/postscript',
52
+ 'xaif' => 'audio/x-aiff',
53
+
54
+ 'xaifc' => 'audio/x-aiff',
55
+ 'xaiff' => 'audio/x-aiff',
56
+ 'xami' => 'application/vnd.amiga.ami',
57
+ 'xapr' => 'application/vnd.lotus-approach',
58
+ 'xasf' => 'video/x-ms-asf',
59
+ 'xaso' => 'application/vnd.accpac.simply.aso',
60
+ 'xasx' => 'video/x-ms-asf',
61
+ 'xatom' => 'application/atom+xml',
62
+ 'xatomcat' => 'application/atomcat+xml',
63
+
64
+ 'xatomsvc' => 'application/atomsvc+xml',
65
+ 'xatx' => 'application/vnd.antix.game-component',
66
+ 'xau' => 'audio/basic',
67
+ 'xavi' => 'video/x-msvideo',
68
+ 'xbat' => 'application/x-msdownload',
69
+ 'xbcpio' => 'application/x-bcpio',
70
+ 'xbdm' => 'application/vnd.syncml.dm+wbxml',
71
+ 'xbh2' => 'application/vnd.fujitsu.oasysprs',
72
+ 'xbmi' => 'application/vnd.bmi',
73
+
74
+ 'xbmp' => 'image/bmp',
75
+ 'xbox' => 'application/vnd.previewsystems.box',
76
+ 'xboz' => 'application/x-bzip2',
77
+ 'xbtif' => 'image/prs.btif',
78
+ 'xbz' => 'application/x-bzip',
79
+ 'xbz2' => 'application/x-bzip2',
80
+ 'xcab' => 'application/vnd.ms-cab-compressed',
81
+ 'xccxml' => 'application/ccxml+xml',
82
+ 'xcdbcmsg' => 'application/vnd.contact.cmsg',
83
+
84
+ 'xcdkey' => 'application/vnd.mediastation.cdkey',
85
+ 'xcdx' => 'chemical/x-cdx',
86
+ 'xcdxml' => 'application/vnd.chemdraw+xml',
87
+ 'xcdy' => 'application/vnd.cinderella',
88
+ 'xcer' => 'application/pkix-cert',
89
+ 'xcgm' => 'image/cgm',
90
+ 'xchat' => 'application/x-chat',
91
+ 'xchm' => 'application/vnd.ms-htmlhelp',
92
+ 'xchrt' => 'application/vnd.kde.kchart',
93
+
94
+ 'xcif' => 'chemical/x-cif',
95
+ 'xcii' => 'application/vnd.anser-web-certificate-issue-initiation',
96
+ 'xcil' => 'application/vnd.ms-artgalry',
97
+ 'xcla' => 'application/vnd.claymore',
98
+ 'xclkk' => 'application/vnd.crick.clicker.keyboard',
99
+ 'xclkp' => 'application/vnd.crick.clicker.palette',
100
+ 'xclkt' => 'application/vnd.crick.clicker.template',
101
+ 'xclkw' => 'application/vnd.crick.clicker.wordbank',
102
+ 'xclkx' => 'application/vnd.crick.clicker',
103
+
104
+ 'xclp' => 'application/x-msclip',
105
+ 'xcmc' => 'application/vnd.cosmocaller',
106
+ 'xcmdf' => 'chemical/x-cmdf',
107
+ 'xcml' => 'chemical/x-cml',
108
+ 'xcmp' => 'application/vnd.yellowriver-custom-menu',
109
+ 'xcmx' => 'image/x-cmx',
110
+ 'xcom' => 'application/x-msdownload',
111
+ 'xconf' => 'text/plain',
112
+ 'xcpio' => 'application/x-cpio',
113
+
114
+ 'xcpt' => 'application/mac-compactpro',
115
+ 'xcrd' => 'application/x-mscardfile',
116
+ 'xcrl' => 'application/pkix-crl',
117
+ 'xcrt' => 'application/x-x509-ca-cert',
118
+ 'xcsh' => 'application/x-csh',
119
+ 'xcsml' => 'chemical/x-csml',
120
+ 'xcss' => 'text/css',
121
+ 'xcsv' => 'text/csv',
122
+ 'xcurl' => 'application/vnd.curl',
123
+
124
+ 'xcww' => 'application/prs.cww',
125
+ 'xdaf' => 'application/vnd.mobius.daf',
126
+ 'xdavmount' => 'application/davmount+xml',
127
+ 'xdd2' => 'application/vnd.oma.dd2+xml',
128
+ 'xddd' => 'application/vnd.fujixerox.ddd',
129
+ 'xdef' => 'text/plain',
130
+ 'xder' => 'application/x-x509-ca-cert',
131
+ 'xdfac' => 'application/vnd.dreamfactory',
132
+ 'xdis' => 'application/vnd.mobius.dis',
133
+
134
+ 'xdjv' => 'image/vnd.djvu',
135
+ 'xdjvu' => 'image/vnd.djvu',
136
+ 'xdll' => 'application/x-msdownload',
137
+ 'xdna' => 'application/vnd.dna',
138
+ 'xdoc' => 'application/msword',
139
+ 'xdot' => 'application/msword',
140
+ 'xdp' => 'application/vnd.osgi.dp',
141
+ 'xdpg' => 'application/vnd.dpgraph',
142
+ 'xdsc' => 'text/prs.lines.tag',
143
+
144
+ 'xdtd' => 'application/xml-dtd',
145
+ 'xdvi' => 'application/x-dvi',
146
+ 'xdwf' => 'model/vnd.dwf',
147
+ 'xdwg' => 'image/vnd.dwg',
148
+ 'xdxf' => 'image/vnd.dxf',
149
+ 'xdxp' => 'application/vnd.spotfire.dxp',
150
+ 'xecelp4800' => 'audio/vnd.nuera.ecelp4800',
151
+ 'xecelp7470' => 'audio/vnd.nuera.ecelp7470',
152
+ 'xecelp9600' => 'audio/vnd.nuera.ecelp9600',
153
+
154
+ 'xecma' => 'application/ecmascript',
155
+ 'xedm' => 'application/vnd.novadigm.edm',
156
+ 'xedx' => 'application/vnd.novadigm.edx',
157
+ 'xefif' => 'application/vnd.picsel',
158
+ 'xei6' => 'application/vnd.pg.osasli',
159
+ 'xeml' => 'message/rfc822',
160
+ 'xeol' => 'audio/vnd.digital-winds',
161
+ 'xeot' => 'application/vnd.ms-fontobject',
162
+ 'xeps' => 'application/postscript',
163
+
164
+ 'xesf' => 'application/vnd.epson.esf',
165
+ 'xetx' => 'text/x-setext',
166
+ 'xexe' => 'application/x-msdownload',
167
+ 'xext' => 'application/vnd.novadigm.ext',
168
+ 'xez' => 'application/andrew-inset',
169
+ 'xez2' => 'application/vnd.ezpix-album',
170
+ 'xez3' => 'application/vnd.ezpix-package',
171
+ 'xfbs' => 'image/vnd.fastbidsheet',
172
+ 'xfdf' => 'application/vnd.fdf',
173
+
174
+ 'xfe_launch' => 'application/vnd.denovo.fcselayout-link',
175
+ 'xfg5' => 'application/vnd.fujitsu.oasysgp',
176
+ 'xfli' => 'video/x-fli',
177
+ 'xflo' => 'application/vnd.micrografx.flo',
178
+ 'xflw' => 'application/vnd.kde.kivio',
179
+ 'xflx' => 'text/vnd.fmi.flexstor',
180
+ 'xfly' => 'text/vnd.fly',
181
+ 'xfnc' => 'application/vnd.frogans.fnc',
182
+ 'xfpx' => 'image/vnd.fpx',
183
+
184
+ 'xfsc' => 'application/vnd.fsc.weblaunch',
185
+ 'xfst' => 'image/vnd.fst',
186
+ 'xftc' => 'application/vnd.fluxtime.clip',
187
+ 'xfti' => 'application/vnd.anser-web-funds-transfer-initiation',
188
+ 'xfvt' => 'video/vnd.fvt',
189
+ 'xfzs' => 'application/vnd.fuzzysheet',
190
+ 'xg3' => 'image/g3fax',
191
+ 'xgac' => 'application/vnd.groove-account',
192
+ 'xgdl' => 'model/vnd.gdl',
193
+
194
+ 'xghf' => 'application/vnd.groove-help',
195
+ 'xgif' => 'image/gif',
196
+ 'xgim' => 'application/vnd.groove-identity-message',
197
+ 'xgph' => 'application/vnd.flographit',
198
+ 'xgram' => 'application/srgs',
199
+ 'xgrv' => 'application/vnd.groove-injector',
200
+ 'xgrxml' => 'application/srgs+xml',
201
+ 'xgtar' => 'application/x-gtar',
202
+ 'xgtm' => 'application/vnd.groove-tool-message',
203
+
204
+ 'xsvg' => 'image/svg+xml',
205
+
206
+ 'xgtw' => 'model/vnd.gtw',
207
+ 'xh261' => 'video/h261',
208
+ 'xh263' => 'video/h263',
209
+ 'xh264' => 'video/h264',
210
+ 'xhbci' => 'application/vnd.hbci',
211
+ 'xhdf' => 'application/x-hdf',
212
+ 'xhlp' => 'application/winhlp',
213
+ 'xhpgl' => 'application/vnd.hp-hpgl',
214
+ 'xhpid' => 'application/vnd.hp-hpid',
215
+
216
+ 'xhps' => 'application/vnd.hp-hps',
217
+ 'xhqx' => 'application/mac-binhex40',
218
+ 'xhtke' => 'application/vnd.kenameaapp',
219
+ 'xhtm' => 'text/html',
220
+ 'xhtml' => 'text/html',
221
+ 'xhvd' => 'application/vnd.yamaha.hv-dic',
222
+ 'xhvp' => 'application/vnd.yamaha.hv-voice',
223
+ 'xhvs' => 'application/vnd.yamaha.hv-script',
224
+ 'xice' => '#x-conference/x-cooltalk',
225
+
226
+ 'xico' => 'image/x-icon',
227
+ 'xics' => 'text/calendar',
228
+ 'xief' => 'image/ief',
229
+ 'xifb' => 'text/calendar',
230
+ 'xifm' => 'application/vnd.shana.informed.formdata',
231
+ 'xigl' => 'application/vnd.igloader',
232
+ 'xigx' => 'application/vnd.micrografx.igx',
233
+ 'xiif' => 'application/vnd.shana.informed.interchange',
234
+ 'ximp' => 'application/vnd.accpac.simply.imp',
235
+
236
+ 'xims' => 'application/vnd.ms-ims',
237
+ 'xin' => 'text/plain',
238
+ 'xipk' => 'application/vnd.shana.informed.package',
239
+ 'xirm' => 'application/vnd.ibm.rights-management',
240
+ 'xirp' => 'application/vnd.irepository.package+xml',
241
+ 'xitp' => 'application/vnd.shana.informed.formtemplate',
242
+ 'xivp' => 'application/vnd.immervision-ivp',
243
+ 'xivu' => 'application/vnd.immervision-ivu',
244
+ 'xjad' => 'text/vnd.sun.j2me.app-descriptor',
245
+
246
+ 'xjam' => 'application/vnd.jam',
247
+ 'xjava' => 'text/x-java-source',
248
+ 'xjisp' => 'application/vnd.jisp',
249
+ 'xjlt' => 'application/vnd.hp-jlyt',
250
+ 'xjoda' => 'application/vnd.joost.joda-archive',
251
+ 'xjpe' => 'image/jpeg',
252
+ 'xjpeg' => 'image/jpeg',
253
+ 'xjpg' => 'image/jpeg',
254
+ 'xjpgm' => 'video/jpm',
255
+
256
+ 'xjpgv' => 'video/jpeg',
257
+ 'xjpm' => 'video/jpm',
258
+ 'xjs' => 'application/javascript',
259
+ 'xjson' => 'application/json',
260
+ 'xkar' => 'audio/midi',
261
+ 'xkarbon' => 'application/vnd.kde.karbon',
262
+ 'xkfo' => 'application/vnd.kde.kformula',
263
+ 'xkia' => 'application/vnd.kidspiration',
264
+ 'xkml' => 'application/vnd.google-earth.kml+xml',
265
+
266
+ 'xkmz' => 'application/vnd.google-earth.kmz',
267
+ 'xkon' => 'application/vnd.kde.kontour',
268
+ 'xksp' => 'application/vnd.kde.kspread',
269
+ 'xlatex' => 'application/x-latex',
270
+ 'xlbd' => 'application/vnd.llamagraphics.life-balance.desktop',
271
+ 'xlbe' => 'application/vnd.llamagraphics.life-balance.exchange+xml',
272
+ 'xles' => 'application/vnd.hhe.lesson-player',
273
+ 'xlist' => 'text/plain',
274
+ 'xlog' => 'text/plain',
275
+
276
+ 'xlrm' => 'application/vnd.ms-lrm',
277
+ 'xltf' => 'application/vnd.frogans.ltf',
278
+ 'xlvp' => 'audio/vnd.lucent.voice',
279
+ 'xlwp' => 'application/vnd.lotus-wordpro',
280
+ 'xm13' => 'application/x-msmediaview',
281
+ 'xm14' => 'application/x-msmediaview',
282
+ 'xm1v' => 'video/mpeg',
283
+ 'xm2a' => 'audio/mpeg',
284
+ 'xm3a' => 'audio/mpeg',
285
+
286
+ 'xm3u' => 'audio/x-mpegurl',
287
+ 'xm4u' => 'video/vnd.mpegurl',
288
+ 'xmag' => 'application/vnd.ecowin.chart',
289
+ 'xmathml' => 'application/mathml+xml',
290
+ 'xmbk' => 'application/vnd.mobius.mbk',
291
+ 'xmbox' => 'application/mbox',
292
+ 'xmc1' => 'application/vnd.medcalcdata',
293
+ 'xmcd' => 'application/vnd.mcd',
294
+ 'xmdb' => 'application/x-msaccess',
295
+
296
+ 'xmdi' => 'image/vnd.ms-modi',
297
+ 'xmesh' => 'model/mesh',
298
+ 'xmfm' => 'application/vnd.mfmp',
299
+ 'xmgz' => 'application/vnd.proteus.magazine',
300
+ 'xmid' => 'audio/midi',
301
+ 'xmidi' => 'audio/midi',
302
+ 'xmif' => 'application/vnd.mif',
303
+ 'xmime' => 'message/rfc822',
304
+ 'xmj2' => 'video/mj2',
305
+
306
+ 'xmjp2' => 'video/mj2',
307
+ 'xmlp' => 'application/vnd.dolby.mlp',
308
+ 'xmmd' => 'application/vnd.chipnuts.karaoke-mmd',
309
+ 'xmmf' => 'application/vnd.smaf',
310
+ 'xmmr' => 'image/vnd.fujixerox.edmics-mmr',
311
+ 'xmny' => 'application/x-msmoney',
312
+ 'xmov' => 'video/quicktime',
313
+ 'xmovie' => 'video/x-sgi-movie',
314
+ 'xmp2' => 'audio/mpeg',
315
+
316
+ 'xmp2a' => 'audio/mpeg',
317
+ 'xmp3' => 'audio/mpeg',
318
+ 'xmp4' => 'video/mp4',
319
+ 'xmp4a' => 'audio/mp4',
320
+ 'xmp4s' => 'application/mp4',
321
+ 'xmp4v' => 'video/mp4',
322
+ 'xmpc' => 'application/vnd.mophun.certificate',
323
+ 'xmpe' => 'video/mpeg',
324
+ 'xmpeg' => 'video/mpeg',
325
+
326
+ 'xmpg' => 'video/mpeg',
327
+ 'xmpg4' => 'video/mp4',
328
+ 'xmpga' => 'audio/mpeg',
329
+ 'xmpkg' => 'application/vnd.apple.installer+xml',
330
+ 'xmpm' => 'application/vnd.blueice.multipass',
331
+ 'xmpn' => 'application/vnd.mophun.application',
332
+ 'xmpp' => 'application/vnd.ms-project',
333
+ 'xmpt' => 'application/vnd.ms-project',
334
+ 'xmpy' => 'application/vnd.ibm.minipay',
335
+
336
+ 'xmqy' => 'application/vnd.mobius.mqy',
337
+ 'xmrc' => 'application/marc',
338
+ 'xmscml' => 'application/mediaservercontrol+xml',
339
+ 'xmseq' => 'application/vnd.mseq',
340
+ 'xmsf' => 'application/vnd.epson.msf',
341
+ 'xmsh' => 'model/mesh',
342
+ 'xmsi' => 'application/x-msdownload',
343
+ 'xmsl' => 'application/vnd.mobius.msl',
344
+ 'xmsty' => 'application/vnd.muvee.style',
345
+
346
+ 'xmts' => 'model/vnd.mts',
347
+ 'xmus' => 'application/vnd.musician',
348
+ 'xmvb' => 'application/x-msmediaview',
349
+ 'xmwf' => 'application/vnd.mfer',
350
+ 'xmxf' => 'application/mxf',
351
+ 'xmxl' => 'application/vnd.recordare.musicxml',
352
+ 'xmxml' => 'application/xv+xml',
353
+ 'xmxs' => 'application/vnd.triscape.mxs',
354
+ 'xmxu' => 'video/vnd.mpegurl',
355
+
356
+ 'xn-gage' => 'application/vnd.nokia.n-gage.symbian.install',
357
+ 'xngdat' => 'application/vnd.nokia.n-gage.data',
358
+ 'xnlu' => 'application/vnd.neurolanguage.nlu',
359
+ 'xnml' => 'application/vnd.enliven',
360
+ 'xnnd' => 'application/vnd.noblenet-directory',
361
+ 'xnns' => 'application/vnd.noblenet-sealer',
362
+ 'xnnw' => 'application/vnd.noblenet-web',
363
+ 'xnpx' => 'image/vnd.net-fpx',
364
+ 'xnsf' => 'application/vnd.lotus-notes',
365
+
366
+ 'xoa2' => 'application/vnd.fujitsu.oasys2',
367
+ 'xoa3' => 'application/vnd.fujitsu.oasys3',
368
+ 'xoas' => 'application/vnd.fujitsu.oasys',
369
+ 'xobd' => 'application/x-msbinder',
370
+ 'xoda' => 'application/oda',
371
+ 'xodc' => 'application/vnd.oasis.opendocument.chart',
372
+ 'xodf' => 'application/vnd.oasis.opendocument.formula',
373
+ 'xodg' => 'application/vnd.oasis.opendocument.graphics',
374
+ 'xodi' => 'application/vnd.oasis.opendocument.image',
375
+
376
+ 'xodp' => 'application/vnd.oasis.opendocument.presentation',
377
+ 'xods' => 'application/vnd.oasis.opendocument.spreadsheet',
378
+ 'xodt' => 'application/vnd.oasis.opendocument.text',
379
+ 'xogg' => 'application/ogg',
380
+ 'xoprc' => 'application/vnd.palm',
381
+ 'xorg' => 'application/vnd.lotus-organizer',
382
+ 'xotc' => 'application/vnd.oasis.opendocument.chart-template',
383
+ 'xotf' => 'application/vnd.oasis.opendocument.formula-template',
384
+ 'xotg' => 'application/vnd.oasis.opendocument.graphics-template',
385
+
386
+ 'xoth' => 'application/vnd.oasis.opendocument.text-web',
387
+ 'xoti' => 'application/vnd.oasis.opendocument.image-template',
388
+ 'xotm' => 'application/vnd.oasis.opendocument.text-master',
389
+ 'xots' => 'application/vnd.oasis.opendocument.spreadsheet-template',
390
+ 'xott' => 'application/vnd.oasis.opendocument.text-template',
391
+ 'xoxt' => 'application/vnd.openofficeorg.extension',
392
+ 'xp10' => 'application/pkcs10',
393
+ 'xp7r' => 'application/x-pkcs7-certreqresp',
394
+ 'xp7s' => 'application/pkcs7-signature',
395
+
396
+ 'xpbd' => 'application/vnd.powerbuilder6',
397
+ 'xpbm' => 'image/x-portable-bitmap',
398
+ 'xpcl' => 'application/vnd.hp-pcl',
399
+ 'xpclxl' => 'application/vnd.hp-pclxl',
400
+ 'xpct' => 'image/x-pict',
401
+ 'xpcx' => 'image/x-pcx',
402
+ 'xpdb' => 'chemical/x-pdb',
403
+ 'xpdf' => 'application/pdf',
404
+ 'xpfr' => 'application/font-tdpfr',
405
+
406
+ 'xpgm' => 'image/x-portable-graymap',
407
+ 'xpgn' => 'application/x-chess-pgn',
408
+ 'xpgp' => 'application/pgp-encrypted',
409
+ 'xpic' => 'image/x-pict',
410
+ 'xpki' => 'application/pkixcmp',
411
+ 'xpkipath' => 'application/pkix-pkipath',
412
+ 'xplb' => 'application/vnd.3gpp.pic-bw-large',
413
+ 'xplc' => 'application/vnd.mobius.plc',
414
+ 'xplf' => 'application/vnd.pocketlearn',
415
+
416
+ 'xpls' => 'application/pls+xml',
417
+ 'xpml' => 'application/vnd.ctc-posml',
418
+ 'xpng' => 'image/png',
419
+ 'xpnm' => 'image/x-portable-anymap',
420
+ 'xportpkg' => 'application/vnd.macports.portpkg',
421
+ 'xpot' => 'application/vnd.ms-powerpoint',
422
+ 'xppd' => 'application/vnd.cups-ppd',
423
+ 'xppm' => 'image/x-portable-pixmap',
424
+ 'xpps' => 'application/vnd.ms-powerpoint',
425
+
426
+ 'xppt' => 'application/vnd.ms-powerpoint',
427
+ 'xpqa' => 'application/vnd.palm',
428
+ 'xprc' => 'application/vnd.palm',
429
+ 'xpre' => 'application/vnd.lotus-freelance',
430
+ 'xprf' => 'application/pics-rules',
431
+ 'xps' => 'application/postscript',
432
+ 'xpsb' => 'application/vnd.3gpp.pic-bw-small',
433
+ 'xpsd' => 'image/vnd.adobe.photoshop',
434
+ 'xptid' => 'application/vnd.pvi.ptid1',
435
+
436
+ 'xpub' => 'application/x-mspublisher',
437
+ 'xpvb' => 'application/vnd.3gpp.pic-bw-var',
438
+ 'xpwn' => 'application/vnd.3m.post-it-notes',
439
+ 'xqam' => 'application/vnd.epson.quickanime',
440
+ 'xqbo' => 'application/vnd.intu.qbo',
441
+ 'xqfx' => 'application/vnd.intu.qfx',
442
+ 'xqps' => 'application/vnd.publishare-delta-tree',
443
+ 'xqt' => 'video/quicktime',
444
+ 'xra' => 'audio/x-pn-realaudio',
445
+
446
+ 'xram' => 'audio/x-pn-realaudio',
447
+ 'xrar' => 'application/x-rar-compressed',
448
+ 'xras' => 'image/x-cmu-raster',
449
+ 'xrcprofile' => 'application/vnd.ipunplugged.rcprofile',
450
+ 'xrdf' => 'application/rdf+xml',
451
+ 'xrdz' => 'application/vnd.data-vision.rdz',
452
+ 'xrep' => 'application/vnd.businessobjects',
453
+ 'xrgb' => 'image/x-rgb',
454
+ 'xrif' => 'application/reginfo+xml',
455
+
456
+ 'xrl' => 'application/resource-lists+xml',
457
+ 'xrlc' => 'image/vnd.fujixerox.edmics-rlc',
458
+ 'xrm' => 'application/vnd.rn-realmedia',
459
+ 'xrmi' => 'audio/midi',
460
+ 'xrmp' => 'audio/x-pn-realaudio-plugin',
461
+ 'xrms' => 'application/vnd.jcp.javame.midlet-rms',
462
+ 'xrnc' => 'application/relax-ng-compact-syntax',
463
+ 'xrpss' => 'application/vnd.nokia.radio-presets',
464
+ 'xrpst' => 'application/vnd.nokia.radio-preset',
465
+
466
+ 'xrq' => 'application/sparql-query',
467
+ 'xrs' => 'application/rls-services+xml',
468
+ 'xrsd' => 'application/rsd+xml',
469
+ 'xrss' => 'application/rss+xml',
470
+ 'xrtf' => 'application/rtf',
471
+ 'xrtx' => 'text/richtext',
472
+ 'xsaf' => 'application/vnd.yamaha.smaf-audio',
473
+ 'xsbml' => 'application/sbml+xml',
474
+ 'xsc' => 'application/vnd.ibm.secure-container',
475
+
476
+ 'xscd' => 'application/x-msschedule',
477
+ 'xscm' => 'application/vnd.lotus-screencam',
478
+ 'xscq' => 'application/scvp-cv-request',
479
+ 'xscs' => 'application/scvp-cv-response',
480
+ 'xsdp' => 'application/sdp',
481
+ 'xsee' => 'application/vnd.seemail',
482
+ 'xsema' => 'application/vnd.sema',
483
+ 'xsemd' => 'application/vnd.semd',
484
+ 'xsemf' => 'application/vnd.semf',
485
+
486
+ 'xsetpay' => 'application/set-payment-initiation',
487
+ 'xsetreg' => 'application/set-registration-initiation',
488
+ 'xsfs' => 'application/vnd.spotfire.sfs',
489
+ 'xsgm' => 'text/sgml',
490
+ 'xsgml' => 'text/sgml',
491
+ 'xsh' => 'application/x-sh',
492
+ 'xshar' => 'application/x-shar',
493
+ 'xshf' => 'application/shf+xml',
494
+ 'xsilo' => 'model/mesh',
495
+
496
+ 'xsit' => 'application/x-stuffit',
497
+ 'xsitx' => 'application/x-stuffitx',
498
+ 'xslt' => 'application/vnd.epson.salt',
499
+ 'xsnd' => 'audio/basic',
500
+ 'xspf' => 'application/vnd.yamaha.smaf-phrase',
501
+ 'xspl' => 'application/x-futuresplash',
502
+ 'xspot' => 'text/vnd.in3d.spot',
503
+ 'xspp' => 'application/scvp-vp-response',
504
+ 'xspq' => 'application/scvp-vp-request',
505
+
506
+ 'xsrc' => 'application/x-wais-source',
507
+ 'xsrx' => 'application/sparql-results+xml',
508
+ 'xssf' => 'application/vnd.epson.ssf',
509
+ 'xssml' => 'application/ssml+xml',
510
+ 'xstf' => 'application/vnd.wt.stf',
511
+ 'xstk' => 'application/hyperstudio',
512
+ 'xstr' => 'application/vnd.pg.format',
513
+ 'xsus' => 'application/vnd.sus-calendar',
514
+ 'xsusp' => 'application/vnd.sus-calendar',
515
+
516
+ 'xsv4cpio' => 'application/x-sv4cpio',
517
+ 'xsv4crc' => 'application/x-sv4crc',
518
+ 'xsvd' => 'application/vnd.svd',
519
+ 'xswf' => 'application/x-shockwave-flash',
520
+ 'xtao' => 'application/vnd.tao.intent-module-archive',
521
+ 'xtar' => 'application/x-tar',
522
+ 'xtcap' => 'application/vnd.3gpp2.tcap',
523
+ 'xtcl' => 'application/x-tcl',
524
+ 'xtex' => 'application/x-tex',
525
+
526
+ 'xtext' => 'text/plain',
527
+ 'xtif' => 'image/tiff',
528
+ 'xtiff' => 'image/tiff',
529
+ 'xtmo' => 'application/vnd.tmobile-livetv',
530
+ 'xtorrent' => 'application/x-bittorrent',
531
+ 'xtpl' => 'application/vnd.groove-tool-template',
532
+ 'xtpt' => 'application/vnd.trid.tpt',
533
+ 'xtra' => 'application/vnd.trueapp',
534
+ 'xtrm' => 'application/x-msterminal',
535
+
536
+ 'xtsv' => 'text/tab-separated-values',
537
+ 'xtxd' => 'application/vnd.genomatix.tuxedo',
538
+ 'xtxf' => 'application/vnd.mobius.txf',
539
+ 'xtxt' => 'text/plain',
540
+ 'xumj' => 'application/vnd.umajin',
541
+ 'xunityweb' => 'application/vnd.unity',
542
+ 'xuoml' => 'application/vnd.uoml+xml',
543
+ 'xuri' => 'text/uri-list',
544
+ 'xuris' => 'text/uri-list',
545
+
546
+ 'xurls' => 'text/uri-list',
547
+ 'xustar' => 'application/x-ustar',
548
+ 'xutz' => 'application/vnd.uiq.theme',
549
+ 'xuu' => 'text/x-uuencode',
550
+ 'xvcd' => 'application/x-cdlink',
551
+ 'xvcf' => 'text/x-vcard',
552
+ 'xvcg' => 'application/vnd.groove-vcard',
553
+ 'xvcs' => 'text/x-vcalendar',
554
+ 'xvcx' => 'application/vnd.vcx',
555
+
556
+ 'xvis' => 'application/vnd.visionary',
557
+ 'xviv' => 'video/vnd.vivo',
558
+ 'xvrml' => 'model/vrml',
559
+ 'xvsd' => 'application/vnd.visio',
560
+ 'xvsf' => 'application/vnd.vsf',
561
+ 'xvss' => 'application/vnd.visio',
562
+ 'xvst' => 'application/vnd.visio',
563
+ 'xvsw' => 'application/vnd.visio',
564
+ 'xvtu' => 'model/vnd.vtu',
565
+
566
+ 'xvxml' => 'application/voicexml+xml',
567
+ 'xwav' => 'audio/x-wav',
568
+ 'xwax' => 'audio/x-ms-wax',
569
+ 'xwbmp' => 'image/vnd.wap.wbmp',
570
+ 'xwbs' => 'application/vnd.criticaltools.wbs+xml',
571
+ 'xwbxml' => 'application/vnd.wap.wbxml',
572
+ 'xwcm' => 'application/vnd.ms-works',
573
+ 'xwdb' => 'application/vnd.ms-works',
574
+ 'xwks' => 'application/vnd.ms-works',
575
+
576
+ 'xwm' => 'video/x-ms-wm',
577
+ 'xwma' => 'audio/x-ms-wma',
578
+ 'xwmd' => 'application/x-ms-wmd',
579
+ 'xwmf' => 'application/x-msmetafile',
580
+ 'xwml' => 'text/vnd.wap.wml',
581
+ 'xwmlc' => 'application/vnd.wap.wmlc',
582
+ 'xwmls' => 'text/vnd.wap.wmlscript',
583
+ 'xwmlsc' => 'application/vnd.wap.wmlscriptc',
584
+ 'xwmv' => 'video/x-ms-wmv',
585
+
586
+ 'xwmx' => 'video/x-ms-wmx',
587
+ 'xwmz' => 'application/x-ms-wmz',
588
+ 'xwpd' => 'application/vnd.wordperfect',
589
+ 'xwpl' => 'application/vnd.ms-wpl',
590
+ 'xwps' => 'application/vnd.ms-works',
591
+ 'xwqd' => 'application/vnd.wqd',
592
+ 'xwri' => 'application/x-mswrite',
593
+ 'xwrl' => 'model/vrml',
594
+ 'xwsdl' => 'application/wsdl+xml',
595
+
596
+ 'xwspolicy' => 'application/wspolicy+xml',
597
+ 'xwtb' => 'application/vnd.webturbo',
598
+ 'xwvx' => 'video/x-ms-wvx',
599
+ 'xx3d' => 'application/vnd.hzn-3d-crossword',
600
+ 'xxar' => 'application/vnd.xara',
601
+ 'xxbd' => 'application/vnd.fujixerox.docuworks.binder',
602
+ 'xxbm' => 'image/x-xbitmap',
603
+ 'xxdm' => 'application/vnd.syncml.dm+xml',
604
+ 'xxdp' => 'application/vnd.adobe.xdp+xml',
605
+
606
+ 'xxdw' => 'application/vnd.fujixerox.docuworks',
607
+ 'xxenc' => 'application/xenc+xml',
608
+ 'xxfdf' => 'application/vnd.adobe.xfdf',
609
+ 'xxfdl' => 'application/vnd.xfdl',
610
+ 'xxht' => 'application/xhtml+xml',
611
+ 'xxhtml' => 'application/xhtml+xml',
612
+ 'xxhvml' => 'application/xv+xml',
613
+ 'xxif' => 'image/vnd.xiff',
614
+ 'xxla' => 'application/vnd.ms-excel',
615
+
616
+ 'xxlc' => 'application/vnd.ms-excel',
617
+ 'xxlm' => 'application/vnd.ms-excel',
618
+ 'xxls' => 'application/vnd.ms-excel',
619
+ 'xxlt' => 'application/vnd.ms-excel',
620
+ 'xxlw' => 'application/vnd.ms-excel',
621
+ 'xxml' => 'application/xml',
622
+ 'xxo' => 'application/vnd.olpc-sugar',
623
+ 'xxop' => 'application/xop+xml',
624
+ 'xxpm' => 'image/x-xpixmap',
625
+
626
+ 'xxpr' => 'application/vnd.is-xpr',
627
+ 'xxps' => 'application/vnd.ms-xpsdocument',
628
+ 'xxsl' => 'application/xml',
629
+ 'xxslt' => 'application/xslt+xml',
630
+ 'xxsm' => 'application/vnd.syncml+xml',
631
+ 'xxspf' => 'application/xspf+xml',
632
+ 'xxul' => 'application/vnd.mozilla.xul+xml',
633
+ 'xxvm' => 'application/xv+xml',
634
+ 'xxvml' => 'application/xv+xml',
635
+
636
+ 'xxwd' => 'image/x-xwindowdump',
637
+ 'xxyz' => 'chemical/x-xyz',
638
+ 'xzaz' => 'application/vnd.zzazz.deck+xml',
639
+ 'xzip' => 'application/zip',
640
+ 'xzmm' => 'application/vnd.handheld-entertainment+xml',
641
+ );
642
+
643
+ /**
644
+ * Extend list of MIME types if needed from config
645
+ */
646
+ public function __construct()
647
+ {
648
+ $nodes = Mage::getConfig()->getNode('global/mime/types');
649
+ if ($nodes) {
650
+ $nodes = (array)$nodes;
651
+ foreach ($nodes as $key => $value) {
652
+ $this->_mimeTypes[$key] = $value;
653
+ }
654
+ }
655
+ }
656
+
657
+ /**
658
+ * Get MIME type by file extension from list of pre-defined MIME types
659
+ *
660
+ * @param $ext
661
+ * @return string
662
+ */
663
+ public function getMimeTypeByExtension($ext)
664
+ {
665
+ $type = 'x' . $ext;
666
+ if (isset($this->_mimeTypes[$type])) {
667
+ return $this->_mimeTypes[$type];
668
+ }
669
+ return 'application/octet-stream';
670
+ }
671
+
672
+ /**
673
+ * Get all MIME Types
674
+ *
675
+ * @return array
676
+ */
677
+ public function getMimeTypes()
678
+ {
679
+ return $this->_mimeTypes;
680
+ }
681
+
682
+ /**
683
+ * Get array of MIME types associated with given file extension
684
+ *
685
+ * @param array|string $extensionsList
686
+ * @return array
687
+ */
688
+ public function getMimeTypeFromExtensionList($extensionsList)
689
+ {
690
+ if (is_string($extensionsList)) {
691
+ $extensionsList = array_map('trim', explode(',', $extensionsList));
692
+ }
693
+
694
+ return array_map(array($this, 'getMimeTypeByExtension'), $extensionsList);
695
+ }
696
+
697
+ /**
698
+ * Get post_max_size server setting
699
+ *
700
+ * @return string
701
+ */
702
+ public function getPostMaxSize()
703
+ {
704
+ return ini_get('post_max_size');
705
+ }
706
+
707
+ /**
708
+ * Get upload_max_filesize server setting
709
+ *
710
+ * @return string
711
+ */
712
+ public function getUploadMaxSize()
713
+ {
714
+ return ini_get('upload_max_filesize');
715
+ }
716
+
717
+ /**
718
+ * Get max upload size
719
+ *
720
+ * @return mixed
721
+ */
722
+ public function getDataMaxSize()
723
+ {
724
+ return min($this->getPostMaxSize(), $this->getUploadMaxSize());
725
+ }
726
+
727
+ /**
728
+ * Get maximum upload size in bytes
729
+ *
730
+ * @return int
731
+ */
732
+ public function getDataMaxSizeInBytes()
733
+ {
734
+ $iniSize = $this->getDataMaxSize();
735
+ $size = substr($iniSize, 0, strlen($iniSize)-1);
736
+ $parsedSize = 0;
737
+ switch (strtolower(substr($iniSize, strlen($iniSize)-1))) {
738
+ case 't':
739
+ $parsedSize = $size*(1024*1024*1024*1024);
740
+ break;
741
+ case 'g':
742
+ $parsedSize = $size*(1024*1024*1024);
743
+ break;
744
+ case 'm':
745
+ $parsedSize = $size*(1024*1024);
746
+ break;
747
+ case 'k':
748
+ $parsedSize = $size*1024;
749
+ break;
750
+ case 'b':
751
+ default:
752
+ $parsedSize = $size;
753
+ break;
754
+ }
755
+ return (int)$parsedSize;
756
+ }
757
+
758
+ }
app/code/core/Mage/Uploader/Model/Config/Abstract.php ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Uploader
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+ /**
28
+ * Uploader Config Instance Abstract Model
29
+ *
30
+ * @category Mage
31
+ * @package Mage_Uploader
32
+ */
33
+
34
+ abstract class Mage_Uploader_Model_Config_Abstract extends Varien_Object
35
+ {
36
+ /**
37
+ * Get file helper
38
+ *
39
+ * @return Mage_Uploader_Helper_File
40
+ */
41
+ protected function _getHelper()
42
+ {
43
+ return Mage::helper('uploader/file');
44
+ }
45
+
46
+ /**
47
+ * Set/Get attribute wrapper
48
+ * Also set data in cameCase for config values
49
+ *
50
+ * @param string $method
51
+ * @param array $args
52
+ * @return bool|mixed|Varien_Object
53
+ * @throws Varien_Exception
54
+ */
55
+ public function __call($method, $args)
56
+ {
57
+ $key = lcfirst($this->_camelize(substr($method,3)));
58
+ switch (substr($method, 0, 3)) {
59
+ case 'get' :
60
+ $data = $this->getData($key, isset($args[0]) ? $args[0] : null);
61
+ return $data;
62
+
63
+ case 'set' :
64
+ $result = $this->setData($key, isset($args[0]) ? $args[0] : null);
65
+ return $result;
66
+
67
+ case 'uns' :
68
+ $result = $this->unsetData($key);
69
+ return $result;
70
+
71
+ case 'has' :
72
+ return isset($this->_data[$key]);
73
+ }
74
+ throw new Varien_Exception("Invalid method ".get_class($this)."::".$method."(".print_r($args,1).")");
75
+ }
76
+ }
app/code/core/Mage/Uploader/Model/Config/Browsebutton.php ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Uploader
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+ /**
28
+ * Uploader Config Instance Abstract Model
29
+ *
30
+ * @category Mage
31
+ * @package Mage_Uploader
32
+ */
33
+ /**
34
+ * @method Mage_Uploader_Model_Config_Browsebutton setDomNodes(array $domNodesIds)
35
+ * Array of element browse buttons ids
36
+ * @method Mage_Uploader_Model_Config_Browsebutton setIsDirectory(bool $isDirectory)
37
+ * Pass in true to allow directories to be selected (Google Chrome only)
38
+ * @method Mage_Uploader_Model_Config_Browsebutton setSingleFile(bool $isSingleFile)
39
+ * To prevent multiple file uploads set this to true.
40
+ * Also look at config parameter singleFile (Mage_Uploader_Model_Config_Uploader setSingleFile())
41
+ * @method Mage_Uploader_Model_Config_Browsebutton setAttributes(array $attributes)
42
+ * Pass object of keys and values to set custom attributes on input fields.
43
+ * @see http://www.w3.org/TR/html-markup/input.file.html#input.file-attributes
44
+ *
45
+ * Class Mage_Uploader_Model_Config_Browsebutton
46
+ */
47
+
48
+ class Mage_Uploader_Model_Config_Browsebutton extends Mage_Uploader_Model_Config_Abstract
49
+ {
50
+ /**
51
+ * Set params for browse button
52
+ */
53
+ protected function _construct()
54
+ {
55
+ $this->setIsDirectory(false);
56
+ }
57
+
58
+ /**
59
+ * Get MIME types from files extensions
60
+ *
61
+ * @param string|array $exts
62
+ * @return string
63
+ */
64
+ public function getMimeTypesByExtensions($exts)
65
+ {
66
+ $mimes = array_unique($this->_getHelper()->getMimeTypeFromExtensionList($exts));
67
+
68
+ // Not include general file type
69
+ unset($mimes['application/octet-stream']);
70
+
71
+ return implode(',', $mimes);
72
+ }
73
+ }
app/code/core/Mage/Uploader/Model/Config/Misc.php ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Uploader
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+ /**
28
+ * Misc Config Parameters
29
+ *
30
+ * @category Mage
31
+ * @package Mage_Uploader
32
+ */
33
+
34
+ /**
35
+ * @method Mage_Uploader_Model_Config_Misc setMaxSizePlural (string $sizePlural) Set plural info about max upload size
36
+ * @method Mage_Uploader_Model_Config_Misc setMaxSizeInBytes (int $sizeInBytes) Set max upload size in bytes
37
+ * @method Mage_Uploader_Model_Config_Misc setReplaceBrowseWithRemove (bool $replaceBrowseWithRemove)
38
+ * Replace browse button with remove
39
+ *
40
+ * Class Mage_Uploader_Model_Config_Misc
41
+ */
42
+ class Mage_Uploader_Model_Config_Misc extends Mage_Uploader_Model_Config_Abstract
43
+ {
44
+ /**
45
+ * Prepare misc params
46
+ */
47
+ protected function _construct()
48
+ {
49
+ $this
50
+ ->setMaxSizeInBytes($this->_getHelper()->getDataMaxSizeInBytes())
51
+ ->setMaxSizePlural($this->_getHelper()->getDataMaxSize())
52
+ ;
53
+ }
54
+ }
app/code/core/Mage/Uploader/Model/Config/Uploader.php ADDED
@@ -0,0 +1,128 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Open Software License (OSL 3.0)
8
+ * that is bundled with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/osl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magento.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magento.com for more information.
20
+ *
21
+ * @category Mage
22
+ * @package Mage_Uploader
23
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
24
+ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25
+ */
26
+
27
+ /**
28
+ * Uploader Config Instance Abstract Model
29
+ *
30
+ * @category Mage
31
+ * @package Mage_Uploader
32
+ */
33
+
34
+ /**
35
+ * @method Mage_Uploader_Model_Config_Uploader setTarget(string $url)
36
+ * The target URL for the multipart POST request.
37
+ * @method Mage_Uploader_Model_Config_Uploader setSingleFile(bool $isSingleFile)
38
+ * Enable single file upload.
39
+ * Once one file is uploaded, second file will overtake existing one, first one will be canceled.
40
+ * @method Mage_Uploader_Model_Config_Uploader setChunkSize(int $chunkSize) The size in bytes of each uploaded chunk of data.
41
+ * @method Mage_Uploader_Model_Config_Uploader setForceChunkSize(bool $forceChunkSize)
42
+ * Force all chunks to be less or equal than chunkSize.
43
+ * @method Mage_Uploader_Model_Config_Uploader setSimultaneousUploads(int $amountOfSimultaneousUploads)
44
+ * @method Mage_Uploader_Model_Config_Uploader setFileParameterName(string $fileUploadParam)
45
+ * @method Mage_Uploader_Model_Config_Uploader setQuery(array $additionalQuery)
46
+ * @method Mage_Uploader_Model_Config_Uploader setHeaders(array $headers)
47
+ * Extra headers to include in the multipart POST with data.
48
+ * @method Mage_Uploader_Model_Config_Uploader setWithCredentials(bool $isCORS)
49
+ * Standard CORS requests do not send or set any cookies by default.
50
+ * In order to include cookies as part of the request, you need to set the withCredentials property to true.
51
+ * @method Mage_Uploader_Model_Config_Uploader setMethod(string $sendMethod)
52
+ * Method to use when POSTing chunks to the server. Defaults to "multipart"
53
+ * @method Mage_Uploader_Model_Config_Uploader setTestMethod(string $testMethod) Defaults to "GET"
54
+ * @method Mage_Uploader_Model_Config_Uploader setUploadMethod(string $uploadMethod) Defaults to "POST"
55
+ * @method Mage_Uploader_Model_Config_Uploader setAllowDuplicateUploads(bool $allowDuplicateUploads)
56
+ * Once a file is uploaded, allow reupload of the same file. By default, if a file is already uploaded,
57
+ * it will be skipped unless the file is removed from the existing Flow object.
58
+ * @method Mage_Uploader_Model_Config_Uploader setPrioritizeFirstAndLastChunk(bool $prioritizeFirstAndLastChunk)
59
+ * This can be handy if you can determine if a file is valid for your service from only the first or last chunk.
60
+ * @method Mage_Uploader_Model_Config_Uploader setTestChunks(bool $prioritizeFirstAndLastChunk)
61
+ * Make a GET request to the server for each chunks to see if it already exists.
62
+ * @method Mage_Uploader_Model_Config_Uploader setPreprocess(bool $prioritizeFirstAndLastChunk)
63
+ * Optional function to process each chunk before testing & sending.
64
+ * @method Mage_Uploader_Model_Config_Uploader setInitFileFn(string $function)
65
+ * Optional function to initialize the fileObject (js).
66
+ * @method Mage_Uploader_Model_Config_Uploader setReadFileFn(string $function)
67
+ * Optional function wrapping reading operation from the original file.
68
+ * @method Mage_Uploader_Model_Config_Uploader setGenerateUniqueIdentifier(string $function)
69
+ * Override the function that generates unique identifiers for each file. Defaults to "null"
70
+ * @method Mage_Uploader_Model_Config_Uploader setMaxChunkRetries(int $maxChunkRetries) Defaults to 0
71
+ * @method Mage_Uploader_Model_Config_Uploader setChunkRetryInterval(int $chunkRetryInterval) Defaults to "undefined"
72
+ * @method Mage_Uploader_Model_Config_Uploader setProgressCallbacksInterval(int $progressCallbacksInterval)
73
+ * @method Mage_Uploader_Model_Config_Uploader setSpeedSmoothingFactor(int $speedSmoothingFactor)
74
+ * Used for calculating average upload speed. Number from 1 to 0.
75
+ * Set to 1 and average upload speed wil be equal to current upload speed.
76
+ * For longer file uploads it is better set this number to 0.02,
77
+ * because time remaining estimation will be more accurate.
78
+ * @method Mage_Uploader_Model_Config_Uploader setSuccessStatuses(array $successStatuses)
79
+ * Response is success if response status is in this list
80
+ * @method Mage_Uploader_Model_Config_Uploader setPermanentErrors(array $permanentErrors)
81
+ * Response fails if response status is in this list
82
+ *
83
+ * Class Mage_Uploader_Model_Config_Uploader
84
+ */
85
+ class Mage_Uploader_Model_Config_Uploader extends Mage_Uploader_Model_Config_Abstract
86
+ {
87
+ /**
88
+ * Type of upload
89
+ */
90
+ const UPLOAD_TYPE = 'multipart';
91
+
92
+ /**
93
+ * Test chunks on resumable uploads
94
+ */
95
+ const TEST_CHUNKS = false;
96
+
97
+ /**
98
+ * Used for calculating average upload speed.
99
+ */
100
+ const SMOOTH_UPLOAD_FACTOR = 0.02;
101
+
102
+ /**
103
+ * Progress check interval
104
+ */
105
+ const PROGRESS_CALLBACK_INTERVAL = 0;
106
+
107
+ /**
108
+ * Set default values for uploader
109
+ */
110
+ protected function _construct()
111
+ {
112
+ $this
113
+ ->setChunkSize($this->_getHelper()->getDataMaxSizeInBytes())
114
+ ->setWithCredentials(false)
115
+ ->setForceChunkSize(false)
116
+ ->setQuery(array(
117
+ 'form_key' => Mage::getSingleton('core/session')->getFormKey()
118
+ ))
119
+ ->setMethod(self::UPLOAD_TYPE)
120
+ ->setAllowDuplicateUploads(true)
121
+ ->setPrioritizeFirstAndLastChunk(false)
122
+ ->setTestChunks(self::TEST_CHUNKS)
123
+ ->setSpeedSmoothingFactor(self::SMOOTH_UPLOAD_FACTOR)
124
+ ->setProgressCallbacksInterval(self::PROGRESS_CALLBACK_INTERVAL)
125
+ ->setSuccessStatuses(array(200, 201, 202))
126
+ ->setPermanentErrors(array(404, 415, 500, 501));
127
+ }
128
+ }
app/code/core/Mage/Uploader/etc/config.xml ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Academic Free License (AFL 3.0)
9
+ * that is bundled with this package in the file LICENSE_AFL.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/afl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magento.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
19
+ * versions in the future. If you wish to customize Magento for your
20
+ * needs please refer to http://www.magento.com for more information.
21
+ *
22
+ * @category Mage
23
+ * @package Mage_Uploader
24
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
25
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
+ */
27
+ -->
28
+ <config>
29
+ <modules>
30
+ <Mage_Uploader>
31
+ <version>0.1.0</version>
32
+ </Mage_Uploader>
33
+ </modules>
34
+ <global>
35
+ <blocks>
36
+ <uploader>
37
+ <class>Mage_Uploader_Block</class>
38
+ </uploader>
39
+ </blocks>
40
+ <helpers>
41
+ <uploader>
42
+ <class>Mage_Uploader_Helper</class>
43
+ </uploader>
44
+ </helpers>
45
+ <models>
46
+ <uploader>
47
+ <class>Mage_Uploader_Model</class>
48
+ </uploader>
49
+ </models>
50
+ </global>
51
+ <adminhtml>
52
+ <translate>
53
+ <modules>
54
+ <Mage_Uploader>
55
+ <files>
56
+ <default>Mage_Uploader.csv</default>
57
+ </files>
58
+ </Mage_Uploader>
59
+ </modules>
60
+ </translate>
61
+ </adminhtml>
62
+ <frontend>
63
+ <translate>
64
+ <modules>
65
+ <Mage_Uploader>
66
+ <files>
67
+ <default>Mage_Uploader.csv</default>
68
+ </files>
69
+ </Mage_Uploader>
70
+ </modules>
71
+ </translate>
72
+ </frontend>
73
+ </config>
app/code/core/Mage/Uploader/etc/jstranslator.xml ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <!--
3
+ /**
4
+ * Magento
5
+ *
6
+ * NOTICE OF LICENSE
7
+ *
8
+ * This source file is subject to the Academic Free License (AFL 3.0)
9
+ * that is bundled with this package in the file LICENSE_AFL.txt.
10
+ * It is also available through the world-wide-web at this URL:
11
+ * http://opensource.org/licenses/afl-3.0.php
12
+ * If you did not receive a copy of the license and are unable to
13
+ * obtain it through the world-wide-web, please send an email
14
+ * to license@magento.com so we can send you a copy immediately.
15
+ *
16
+ * DISCLAIMER
17
+ *
18
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
19
+ * versions in the future. If you wish to customize Magento for your
20
+ * needs please refer to http://www.magento.com for more information.
21
+ *
22
+ * @category Mage
23
+ * @package Mage_Uploader
24
+ * @copyright Copyright (c) 2006-2016 X.commerce, Inc. and affiliates (http://www.magento.com)
25
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
26
+ */
27
+ -->
28
+ <jstranslator>
29
+ <uploader-exceed_max-1 translate="message" module="uploader">
30
+ <message>Maximum allowed file size for upload is</message>
31
+ </uploader-exceed_max-1>
32
+ <uploader-exceed_max-2 translate="message" module="uploader">
33
+ <message>Please check your server PHP settings.</message>
34
+ </uploader-exceed_max-2>
35
+ <uploader-tab-change-event-confirm translate="message" module="uploader">
36
+ <message>There are files that were selected but not uploaded yet. After switching to another tab your selections will be lost. Do you wish to continue ?</message>
37
+ </uploader-tab-change-event-confirm>
38
+ <uploader-complete-event-text translate="message" module="uploader">
39
+ <message>Complete</message>
40
+ </uploader-complete-event-text>
41
+ <uploader-uploading-progress translate="message" module="uploader">
42
+ <message>Uploading...</message>
43
+ </uploader-uploading-progress>
44
+ </jstranslator>
45
+
app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl.php CHANGED
@@ -538,8 +538,8 @@ class Mage_Usa_Model_Shipping_Carrier_Dhl
538
  $ch = curl_init();
539
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
540
  curl_setopt($ch, CURLOPT_URL, $url);
541
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
542
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
543
  curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
544
  $responseBody = curl_exec($ch);
545
  curl_close($ch);
@@ -1037,8 +1037,8 @@ class Mage_Usa_Model_Shipping_Carrier_Dhl
1037
  $ch = curl_init();
1038
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
1039
  curl_setopt($ch, CURLOPT_URL, $url);
1040
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
1041
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
1042
  curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
1043
  $responseBody = curl_exec($ch);
1044
  $debugData['result'] = $responseBody;
538
  $ch = curl_init();
539
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
540
  curl_setopt($ch, CURLOPT_URL, $url);
541
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $this->getConfigFlag('verify_peer'));
542
+ curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
543
  curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
544
  $responseBody = curl_exec($ch);
545
  curl_close($ch);
1037
  $ch = curl_init();
1038
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
1039
  curl_setopt($ch, CURLOPT_URL, $url);
1040
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $this->getConfigFlag('verify_peer'));
1041
+ curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
1042
  curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
1043
  $responseBody = curl_exec($ch);
1044
  $debugData['result'] = $responseBody;
app/code/core/Mage/Usa/Model/Shipping/Carrier/Dhl/International.php CHANGED
@@ -837,7 +837,12 @@ class Mage_Usa_Model_Shipping_Carrier_Dhl_International
837
  {
838
  $client = new Varien_Http_Client();
839
  $client->setUri((string)$this->getConfigData('gateway_url'));
840
- $client->setConfig(array('maxredirects' => 0, 'timeout' => 30));
 
 
 
 
 
841
  $client->setRawData(utf8_encode($request));
842
  return $client->request(Varien_Http_Client::POST)->getBody();
843
  }
@@ -1411,7 +1416,12 @@ class Mage_Usa_Model_Shipping_Carrier_Dhl_International
1411
  try {
1412
  $client = new Varien_Http_Client();
1413
  $client->setUri((string)$this->getConfigData('gateway_url'));
1414
- $client->setConfig(array('maxredirects' => 0, 'timeout' => 30));
 
 
 
 
 
1415
  $client->setRawData($request);
1416
  $responseBody = $client->request(Varien_Http_Client::POST)->getBody();
1417
  $debugData['result'] = $responseBody;
@@ -1603,7 +1613,12 @@ class Mage_Usa_Model_Shipping_Carrier_Dhl_International
1603
  try {
1604
  $client = new Varien_Http_Client();
1605
  $client->setUri((string)$this->getConfigData('gateway_url'));
1606
- $client->setConfig(array('maxredirects' => 0, 'timeout' => 30));
 
 
 
 
 
1607
  $client->setRawData($request);
1608
  $responseBody = $client->request(Varien_Http_Client::POST)->getBody();
1609
  $debugData['result'] = $responseBody;
837
  {
838
  $client = new Varien_Http_Client();
839
  $client->setUri((string)$this->getConfigData('gateway_url'));
840
+ $client->setConfig(array(
841
+ 'maxredirects' => 0,
842
+ 'timeout' => 30,
843
+ 'verifypeer' => $this->getConfigFlag('verify_peer'),
844
+ 'verifyhost' => 2,
845
+ ));
846
  $client->setRawData(utf8_encode($request));
847
  return $client->request(Varien_Http_Client::POST)->getBody();
848
  }
1416
  try {
1417
  $client = new Varien_Http_Client();
1418
  $client->setUri((string)$this->getConfigData('gateway_url'));
1419
+ $client->setConfig(array(
1420
+ 'maxredirects' => 0,
1421
+ 'timeout' => 30,
1422
+ 'verifypeer' => $this->getConfigFlag('verify_peer'),
1423
+ 'verifyhost' => 2,
1424
+ ));
1425
  $client->setRawData($request);
1426
  $responseBody = $client->request(Varien_Http_Client::POST)->getBody();
1427
  $debugData['result'] = $responseBody;
1613
  try {
1614
  $client = new Varien_Http_Client();
1615
  $client->setUri((string)$this->getConfigData('gateway_url'));
1616
+ $client->setConfig(array(
1617
+ 'maxredirects' => 0,
1618
+ 'timeout' => 30,
1619
+ 'verifypeer' => $this->getConfigFlag('verify_peer'),
1620
+ 'verifyhost' => 2,
1621
+ ));
1622
  $client->setRawData($request);
1623
  $responseBody = $client->request(Varien_Http_Client::POST)->getBody();
1624
  $debugData['result'] = $responseBody;
app/code/core/Mage/Usa/Model/Shipping/Carrier/Fedex.php CHANGED
@@ -604,6 +604,7 @@ class Mage_Usa_Model_Shipping_Carrier_Fedex
604
  /**
605
  * Get xml quotes
606
  *
 
607
  * @return Mage_Shipping_Model_Rate_Result
608
  */
609
  protected function _getXmlQuotes()
@@ -663,8 +664,8 @@ class Mage_Usa_Model_Shipping_Carrier_Fedex
663
  $ch = curl_init();
664
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
665
  curl_setopt($ch, CURLOPT_URL, $url);
666
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
667
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
668
  curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
669
  $responseBody = curl_exec($ch);
670
  curl_close ($ch);
604
  /**
605
  * Get xml quotes
606
  *
607
+ * @deprecated
608
  * @return Mage_Shipping_Model_Rate_Result
609
  */
610
  protected function _getXmlQuotes()
664
  $ch = curl_init();
665
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
666
  curl_setopt($ch, CURLOPT_URL, $url);
667
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
668
+ curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
669
  curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
670
  $responseBody = curl_exec($ch);
671
  curl_close ($ch);
app/code/core/Mage/Usa/Model/Shipping/Carrier/Ups.php CHANGED
@@ -937,7 +937,7 @@ XMLRequest;
937
  curl_setopt($ch, CURLOPT_POST, 1);
938
  curl_setopt($ch, CURLOPT_POSTFIELDS, $xmlRequest);
939
  curl_setopt($ch, CURLOPT_TIMEOUT, 30);
940
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, (boolean)$this->getConfigFlag('mode_xml'));
941
  $xmlResponse = curl_exec ($ch);
942
 
943
  $debugData['result'] = $xmlResponse;
@@ -1578,7 +1578,7 @@ XMLAuth;
1578
  curl_setopt($ch, CURLOPT_POST, 1);
1579
  curl_setopt($ch, CURLOPT_POSTFIELDS, $this->_xmlAccessRequest . $xmlRequest->asXML());
1580
  curl_setopt($ch, CURLOPT_TIMEOUT, 30);
1581
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, (boolean)$this->getConfigFlag('mode_xml'));
1582
  $xmlResponse = curl_exec ($ch);
1583
 
1584
  $debugData['result'] = $xmlResponse;
@@ -1636,7 +1636,7 @@ XMLAuth;
1636
  curl_setopt($ch, CURLOPT_POST, 1);
1637
  curl_setopt($ch, CURLOPT_POSTFIELDS, $xmlRequest);
1638
  curl_setopt($ch, CURLOPT_TIMEOUT, 30);
1639
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, (boolean)$this->getConfigFlag('mode_xml'));
1640
  $xmlResponse = curl_exec($ch);
1641
  if ($xmlResponse === false) {
1642
  throw new Exception(curl_error($ch));
937
  curl_setopt($ch, CURLOPT_POST, 1);
938
  curl_setopt($ch, CURLOPT_POSTFIELDS, $xmlRequest);
939
  curl_setopt($ch, CURLOPT_TIMEOUT, 30);
940
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $this->getConfigFlag('verify_peer'));
941
  $xmlResponse = curl_exec ($ch);
942
 
943
  $debugData['result'] = $xmlResponse;
1578
  curl_setopt($ch, CURLOPT_POST, 1);
1579
  curl_setopt($ch, CURLOPT_POSTFIELDS, $this->_xmlAccessRequest . $xmlRequest->asXML());
1580
  curl_setopt($ch, CURLOPT_TIMEOUT, 30);
1581
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $this->getConfigFlag('verify_peer'));
1582
  $xmlResponse = curl_exec ($ch);
1583
 
1584
  $debugData['result'] = $xmlResponse;
1636
  curl_setopt($ch, CURLOPT_POST, 1);
1637
  curl_setopt($ch, CURLOPT_POSTFIELDS, $xmlRequest);
1638
  curl_setopt($ch, CURLOPT_TIMEOUT, 30);
1639
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $this->getConfigFlag('verify_peer'));
1640
  $xmlResponse = curl_exec($ch);
1641
  if ($xmlResponse === false) {
1642
  throw new Exception(curl_error($ch));
app/code/core/Mage/Usa/Model/Shipping/Carrier/Usps.php CHANGED
@@ -539,6 +539,7 @@ class Mage_Usa_Model_Shipping_Carrier_Usps
539
  'method' => array(
540
  '0_FCLE' => Mage::helper('usa')->__('First-Class Mail Large Envelope'),
541
  '0_FCL' => Mage::helper('usa')->__('First-Class Mail Letter'),
 
542
  '0_FCP' => Mage::helper('usa')->__('First-Class Mail Parcel'),
543
  '0_FCPC' => Mage::helper('usa')->__('First-Class Mail Postcards'),
544
  '1' => Mage::helper('usa')->__('Priority Mail'),
@@ -586,6 +587,7 @@ class Mage_Usa_Model_Shipping_Carrier_Usps
586
  '62' => Mage::helper('usa')->__('Priority Mail Express Padded Flat Rate Envelope'),
587
  '63' => Mage::helper('usa')->__('Priority Mail Express Padded Flat Rate Envelope Hold For Pickup'),
588
  '64' => Mage::helper('usa')->__('Priority Mail Express Sunday/Holiday Delivery Padded Flat Rate Envelope'),
 
589
  'INT_1' => Mage::helper('usa')->__('Priority Mail Express International'),
590
  'INT_2' => Mage::helper('usa')->__('Priority Mail International'),
591
  'INT_4' => Mage::helper('usa')->__('Global Express Guaranteed (GXG)'),
@@ -616,6 +618,7 @@ class Mage_Usa_Model_Shipping_Carrier_Usps
616
  'service_to_code' => array(
617
  '0_FCLE' => 'First Class',
618
  '0_FCL' => 'First Class',
 
619
  '0_FCP' => 'First Class',
620
  '0_FCPC' => 'First Class',
621
  '1' => 'Priority',
@@ -663,6 +666,7 @@ class Mage_Usa_Model_Shipping_Carrier_Usps
663
  '62' => 'Priority Express',
664
  '63' => 'Priority Express',
665
  '64' => 'Priority Express',
 
666
  'INT_1' => 'Priority Express',
667
  'INT_2' => 'Priority',
668
  'INT_4' => 'Priority Express',
@@ -694,6 +698,8 @@ class Mage_Usa_Model_Shipping_Carrier_Usps
694
  'method_to_code' => array(
695
  'First-Class Mail Large Envelope' => '0_FCLE',
696
  'First-Class Mail Letter' => '0_FCL',
 
 
697
  'First-Class Mail Parcel' => '0_FCP',
698
  ),
699
 
539
  'method' => array(
540
  '0_FCLE' => Mage::helper('usa')->__('First-Class Mail Large Envelope'),
541
  '0_FCL' => Mage::helper('usa')->__('First-Class Mail Letter'),
542
+ '0_FCSL' => Mage::helper('usa')->__('First-Class Mail Stamped Letter'),
543
  '0_FCP' => Mage::helper('usa')->__('First-Class Mail Parcel'),
544
  '0_FCPC' => Mage::helper('usa')->__('First-Class Mail Postcards'),
545
  '1' => Mage::helper('usa')->__('Priority Mail'),
587
  '62' => Mage::helper('usa')->__('Priority Mail Express Padded Flat Rate Envelope'),
588
  '63' => Mage::helper('usa')->__('Priority Mail Express Padded Flat Rate Envelope Hold For Pickup'),
589
  '64' => Mage::helper('usa')->__('Priority Mail Express Sunday/Holiday Delivery Padded Flat Rate Envelope'),
590
+ '72' => Mage::helper('usa')->__('First-Class Mail Metered Letter'),
591
  'INT_1' => Mage::helper('usa')->__('Priority Mail Express International'),
592
  'INT_2' => Mage::helper('usa')->__('Priority Mail International'),
593
  'INT_4' => Mage::helper('usa')->__('Global Express Guaranteed (GXG)'),
618
  'service_to_code' => array(
619
  '0_FCLE' => 'First Class',
620
  '0_FCL' => 'First Class',
621
+ '0_FCSL' => 'First Class',
622
  '0_FCP' => 'First Class',
623
  '0_FCPC' => 'First Class',
624
  '1' => 'Priority',
666
  '62' => 'Priority Express',
667
  '63' => 'Priority Express',
668
  '64' => 'Priority Express',
669
+ '72' => 'First Class',
670
  'INT_1' => 'Priority Express',
671
  'INT_2' => 'Priority',
672
  'INT_4' => 'Priority Express',
698
  'method_to_code' => array(
699
  'First-Class Mail Large Envelope' => '0_FCLE',
700
  'First-Class Mail Letter' => '0_FCL',
701
+ 'First-Class Mail Stamped Letter' => '0_FCSL',
702
+ 'First-Class Mail Metered Letter' => '72',
703
  'First-Class Mail Parcel' => '0_FCP',
704
  ),
705
 
app/code/core/Mage/Usa/etc/config.xml CHANGED
@@ -114,6 +114,7 @@
114
  <dutypaymenttype>R</dutypaymenttype>
115
  <free_method>G</free_method>
116
  <gateway_url>https://eCommerce.airborne.com/ApiLandingTest.asp</gateway_url>
 
117
  <id backend_model="adminhtml/system_config_backend_encrypted"/>
118
  <model>usa/shipping_carrier_dhl</model>
119
  <password backend_model="adminhtml/system_config_backend_encrypted"/>
@@ -169,6 +170,7 @@
169
  <tracking_xml_url>https://onlinetools.ups.com/ups.app/xml/Track</tracking_xml_url>
170
  <shipconfirm_xml_url>https://onlinetools.ups.com/ups.app/xml/ShipConfirm</shipconfirm_xml_url>
171
  <shipaccept_xml_url>https://onlinetools.ups.com/ups.app/xml/ShipAccept</shipaccept_xml_url>
 
172
  <handling>0</handling>
173
  <model>usa/shipping_carrier_ups</model>
174
  <pickup>CC</pickup>
@@ -188,7 +190,7 @@
188
  <usps>
189
  <active>0</active>
190
  <sallowspecific>0</sallowspecific>
191
- <allowed_methods>0_FCLE,0_FCL,0_FCP,1,2,3,4,6,7,13,16,17,22,23,25,27,28,33,34,35,36,37,42,43,53,55,56,57,61,INT_1,INT_2,INT_4,INT_6,INT_7,INT_8,INT_9,INT_10,INT_11,INT_12,INT_13,INT_14,INT_15,INT_16,INT_20,INT_26</allowed_methods>
192
  <container>VARIABLE</container>
193
  <cutoff_cost/>
194
  <free_method/>
@@ -215,10 +217,12 @@
215
  <active>0</active>
216
  <title>DHL</title>
217
  <sallowspecific>0</sallowspecific>
 
218
  <nondoc_methods>1,3,4,8,P,Q,E,F,H,J,M,V,Y</nondoc_methods>
219
  <doc_methods>2,5,6,7,9,B,C,D,U,K,L,G,W,I,N,O,R,S,T,X</doc_methods>
220
  <free_method>G</free_method>
221
  <gateway_url>https://xmlpi-ea.dhl.com/XMLShippingServlet</gateway_url>
 
222
  <id backend_model="adminhtml/system_config_backend_encrypted"/>
223
  <password backend_model="adminhtml/system_config_backend_encrypted"/>
224
  <shipment_type>N</shipment_type>
114
  <dutypaymenttype>R</dutypaymenttype>
115
  <free_method>G</free_method>
116
  <gateway_url>https://eCommerce.airborne.com/ApiLandingTest.asp</gateway_url>
117
+ <verify_peer>0</verify_peer>
118
  <id backend_model="adminhtml/system_config_backend_encrypted"/>
119
  <model>usa/shipping_carrier_dhl</model>
120
  <password backend_model="adminhtml/system_config_backend_encrypted"/>
170
  <tracking_xml_url>https://onlinetools.ups.com/ups.app/xml/Track</tracking_xml_url>
171
  <shipconfirm_xml_url>https://onlinetools.ups.com/ups.app/xml/ShipConfirm</shipconfirm_xml_url>
172
  <shipaccept_xml_url>https://onlinetools.ups.com/ups.app/xml/ShipAccept</shipaccept_xml_url>
173
+ <verify_peer>0</verify_peer>
174
  <handling>0</handling>
175
  <model>usa/shipping_carrier_ups</model>
176
  <pickup>CC</pickup>
190
  <usps>
191
  <active>0</active>
192
  <sallowspecific>0</sallowspecific>
193
+ <allowed_methods>0_FCLE,0_FCL,0_FCSL,0_FCP,0_FCPC,1,2,3,4,6,7,13,15,16,17,22,23,25,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,53,57,58,59,61,62,63,64,72,INT_1,INT_2,INT_4,INT_5,INT_6,INT_7,INT_8,INT_9,INT_10,INT_11,INT_12,INT_13,INT_14,INT_15,INT_16,INT_17,INT_18,INT_19,INT_20,INT_21,INT_22,INT_23,INT_24,INT_25,INT_27</allowed_methods>
194
  <container>VARIABLE</container>
195
  <cutoff_cost/>
196
  <free_method/>
217
  <active>0</active>
218
  <title>DHL</title>
219
  <sallowspecific>0</sallowspecific>
220
+ <content_type>D</content_type>
221
  <nondoc_methods>1,3,4,8,P,Q,E,F,H,J,M,V,Y</nondoc_methods>
222
  <doc_methods>2,5,6,7,9,B,C,D,U,K,L,G,W,I,N,O,R,S,T,X</doc_methods>
223
  <free_method>G</free_method>
224
  <gateway_url>https://xmlpi-ea.dhl.com/XMLShippingServlet</gateway_url>
225
+ <verify_peer>0</verify_peer>
226
  <id backend_model="adminhtml/system_config_backend_encrypted"/>
227
  <password backend_model="adminhtml/system_config_backend_encrypted"/>
228
  <shipment_type>N</shipment_type>
app/code/core/Mage/Usa/etc/system.xml CHANGED
@@ -130,6 +130,15 @@
130
  <show_in_website>1</show_in_website>
131
  <show_in_store>0</show_in_store>
132
  </gateway_url>
 
 
 
 
 
 
 
 
 
133
  <handling_type translate="label">
134
  <label>Calculate Handling Fee</label>
135
  <frontend_type>select</frontend_type>
@@ -744,6 +753,15 @@
744
  <show_in_website>1</show_in_website>
745
  <show_in_store>0</show_in_store>
746
  </gateway_url>
 
 
 
 
 
 
 
 
 
747
  <gateway_xml_url translate="label">
748
  <label>Gateway XML URL</label>
749
  <frontend_type>text</frontend_type>
@@ -1264,6 +1282,15 @@
1264
  <show_in_website>1</show_in_website>
1265
  <show_in_store>0</show_in_store>
1266
  </gateway_url>
 
 
 
 
 
 
 
 
 
1267
  <title translate="label">
1268
  <label>Title</label>
1269
  <frontend_type>text</frontend_type>
130
  <show_in_website>1</show_in_website>
131
  <show_in_store>0</show_in_store>
132
  </gateway_url>
133
+ <verify_peer translate="label">
134
+ <label>Enable SSL Verification</label>
135
+ <frontend_type>select</frontend_type>
136
+ <source_model>adminhtml/system_config_source_yesno</source_model>
137
+ <sort_order>30</sort_order>
138
+ <show_in_default>1</show_in_default>
139
+ <show_in_website>1</show_in_website>
140
+ <show_in_store>0</show_in_store>
141
+ </verify_peer>
142
  <handling_type translate="label">
143
  <label>Calculate Handling Fee</label>
144
  <frontend_type>select</frontend_type>
753
  <show_in_website>1</show_in_website>
754
  <show_in_store>0</show_in_store>
755
  </gateway_url>
756
+ <verify_peer translate="label">
757
+ <label>Enable SSL Verification</label>
758
+ <frontend_type>select</frontend_type>
759
+ <source_model>adminhtml/system_config_source_yesno</source_model>
760
+ <sort_order>45</sort_order>
761
+ <show_in_default>1</show_in_default>
762
+ <show_in_website>1</show_in_website>
763
+ <show_in_store>0</show_in_store>
764
+ </verify_peer>
765
  <gateway_xml_url translate="label">
766
  <label>Gateway XML URL</label>
767
  <frontend_type>text</frontend_type>
1282
  <show_in_website>1</show_in_website>
1283
  <show_in_store>0</show_in_store>
1284
  </gateway_url>
1285
+ <verify_peer translate="label">
1286
+ <label>Enable SSL Verification</label>
1287
+ <frontend_type>select</frontend_type>
1288
+ <source_model>adminhtml/system_config_source_yesno</source_model>
1289
+ <sort_order>30</sort_order>
1290
+ <show_in_default>1</show_in_default>
1291
+ <show_in_website>1</show_in_website>
1292
+ <show_in_store>0</show_in_store>
1293
+ </verify_peer>
1294
  <title translate="label">
1295
  <label>Title</label>
1296
  <frontend_type>text</frontend_type>
app/code/core/Mage/Weee/Model/Observer.php CHANGED
@@ -296,7 +296,10 @@ class Mage_Weee_Model_Observer extends Mage_Core_Model_Abstract
296
  $response = $observer->getEvent()->getResponseObject();
297
  $options = $response->getAdditionalOptions();
298
 
299
- $_product = Mage::registry('current_product');
 
 
 
300
  if (!$_product) {
301
  return $this;
302
  }
296
  $response = $observer->getEvent()->getResponseObject();
297
  $options = $response->getAdditionalOptions();
298
 
299
+ $eventProduct = $observer->getEvent()->getProduct();
300
+
301
+ $_product = $eventProduct ? $eventProduct : Mage::registry('current_product');
302
+
303
  if (!$_product) {
304
  return $this;
305
  }
app/code/core/Mage/Wishlist/Block/Customer/Wishlist/Item/Options.php CHANGED
@@ -114,9 +114,12 @@ class Mage_Wishlist_Block_Customer_Wishlist_Item_Options extends Mage_Wishlist_B
114
  }
115
 
116
  $item = $this->getItem();
117
- $data = $this->getOptionsRenderCfg($item->getProduct()->getTypeId());
118
- if (empty($data['template'])) {
119
- $data = $this->getOptionsRenderCfg('default');
 
 
 
120
  }
121
 
122
  return empty($data['template']) ? '' : $data['template'];
114
  }
115
 
116
  $item = $this->getItem();
117
+
118
+ if ($item instanceof Mage_Wishlist_Model_Item) {
119
+ $data = $this->getOptionsRenderCfg($item->getProduct()->getTypeId());
120
+ if (empty($data['template'])) {
121
+ $data = $this->getOptionsRenderCfg('default');
122
+ }
123
  }
124
 
125
  return empty($data['template']) ? '' : $data['template'];
app/code/core/Mage/Wishlist/Helper/Data.php CHANGED
@@ -274,7 +274,10 @@ class Mage_Wishlist_Helper_Data extends Mage_Core_Helper_Abstract
274
  public function getRemoveUrl($item)
275
  {
276
  return $this->_getUrl('wishlist/index/remove',
277
- array('item' => $item->getWishlistItemId())
 
 
 
278
  );
279
  }
280
 
274
  public function getRemoveUrl($item)
275
  {
276
  return $this->_getUrl('wishlist/index/remove',
277
+ array(
278
+ 'item' => $item->getWishlistItemId(),
279
+ Mage_Core_Model_Url::FORM_KEY => $this->_getSingletonModel('core/session')->getFormKey()
280
+ )
281
  );
282
  }
283
 
app/code/core/Mage/Wishlist/controllers/IndexController.php CHANGED
@@ -434,6 +434,9 @@ class Mage_Wishlist_IndexController extends Mage_Wishlist_Controller_Abstract
434
  */
435
  public function removeAction()
436
  {
 
 
 
437
  $id = (int) $this->getRequest()->getParam('item');
438
  $item = Mage::getModel('wishlist/item')->load($id);
439
  if (!$item->getId()) {
434
  */
435
  public function removeAction()
436
  {
437
+ if (!$this->_validateFormKey()) {
438
+ return $this->_redirect('*/*');
439
+ }
440
  $id = (int) $this->getRequest()->getParam('item');
441
  $item = Mage::getModel('wishlist/item')->load($id);
442
  if (!$item->getId()) {
app/code/core/Zend/Validate/Hostname.php ADDED
@@ -0,0 +1,1684 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Zend Framework
4
+ *
5
+ * LICENSE
6
+ *
7
+ * This source file is subject to the new BSD license that is bundled
8
+ * with this package in the file LICENSE.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://framework.zend.com/license/new-bsd
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@zend.com so we can send you a copy immediately.
14
+ *
15
+ * @category Zend
16
+ * @package Zend_Validate
17
+ * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
18
+ * @license http://framework.zend.com/license/new-bsd New BSD License
19
+ * @version $Id$
20
+ */
21
+
22
+ /**
23
+ * @see Zend_Validate_Abstract
24
+ */
25
+ #require_once 'Zend/Validate/Abstract.php';
26
+
27
+ /**
28
+ * @see Zend_Validate_Ip
29
+ */
30
+ #require_once 'Zend/Validate/Ip.php';
31
+
32
+ /**
33
+ * Please note there are two standalone test scripts for testing IDN characters due to problems
34
+ * with file encoding.
35
+ *
36
+ * The first is tests/Zend/Validate/HostnameTestStandalone.php which is designed to be run on
37
+ * the command line.
38
+ *
39
+ * The second is tests/Zend/Validate/HostnameTestForm.php which is designed to be run via HTML
40
+ * to allow users to test entering UTF-8 characters in a form.
41
+ *
42
+ * @category Zend
43
+ * @package Zend_Validate
44
+ * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
45
+ * @license http://framework.zend.com/license/new-bsd New BSD License
46
+ */
47
+ class Zend_Validate_Hostname extends Zend_Validate_Abstract
48
+ {
49
+ const CANNOT_DECODE_PUNYCODE = 'hostnameCannotDecodePunycode';
50
+ const INVALID = 'hostnameInvalid';
51
+ const INVALID_DASH = 'hostnameDashCharacter';
52
+ const INVALID_HOSTNAME = 'hostnameInvalidHostname';
53
+ const INVALID_HOSTNAME_SCHEMA = 'hostnameInvalidHostnameSchema';
54
+ const INVALID_LOCAL_NAME = 'hostnameInvalidLocalName';
55
+ const INVALID_URI = 'hostnameInvalidUri';
56
+ const IP_ADDRESS_NOT_ALLOWED = 'hostnameIpAddressNotAllowed';
57
+ const LOCAL_NAME_NOT_ALLOWED = 'hostnameLocalNameNotAllowed';
58
+ const UNDECIPHERABLE_TLD = 'hostnameUndecipherableTld';
59
+ const UNKNOWN_TLD = 'hostnameUnknownTld';
60
+
61
+ /**
62
+ * @var array
63
+ */
64
+ protected $_messageTemplates = array(
65
+ self::CANNOT_DECODE_PUNYCODE => "'%value%' appears to be a DNS hostname but the given punycode notation cannot be decoded",
66
+ self::INVALID => "Invalid type given. String expected",
67
+ self::INVALID_DASH => "'%value%' appears to be a DNS hostname but contains a dash in an invalid position",
68
+ self::INVALID_HOSTNAME => "'%value%' does not match the expected structure for a DNS hostname",
69
+ self::INVALID_HOSTNAME_SCHEMA => "'%value%' appears to be a DNS hostname but cannot match against hostname schema for TLD '%tld%'",
70
+ self::INVALID_LOCAL_NAME => "'%value%' does not appear to be a valid local network name",
71
+ self::INVALID_URI => "'%value%' does not appear to be a valid URI hostname",
72
+ self::IP_ADDRESS_NOT_ALLOWED => "'%value%' appears to be an IP address, but IP addresses are not allowed",
73
+ self::LOCAL_NAME_NOT_ALLOWED => "'%value%' appears to be a local network name but local network names are not allowed",
74
+ self::UNDECIPHERABLE_TLD => "'%value%' appears to be a DNS hostname but cannot extract TLD part",
75
+ self::UNKNOWN_TLD => "'%value%' appears to be a DNS hostname but cannot match TLD against known list",
76
+ );
77
+
78
+ /**
79
+ * @var array
80
+ */
81
+ protected $_messageVariables = array(
82
+ 'tld' => '_tld'
83
+ );
84
+
85
+ /**
86
+ * Allows Internet domain names (e.g., example.com)
87
+ */
88
+ const ALLOW_DNS = 1;
89
+
90
+ /**
91
+ * Allows IP addresses
92
+ */
93
+ const ALLOW_IP = 2;
94
+
95
+ /**
96
+ * Allows local network names (e.g., localhost, www.localdomain)
97
+ */
98
+ const ALLOW_LOCAL = 4;
99
+
100
+ /**
101
+ * Allows all types of hostnames
102
+ */
103
+ const ALLOW_URI = 8;
104
+
105
+ /**
106
+ * Allows all types of hostnames
107
+ */
108
+ const ALLOW_ALL = 15;
109
+
110
+ /**
111
+ * Array of valid top-level-domains
112
+ *
113
+ * Version 2014112800, Last Updated Fri Nov 28 07:07:01 2014 UTC
114
+ *
115
+ * @see http://data.iana.org/TLD/tlds-alpha-by-domain.txt List of all TLDs by domain
116
+ * @see http://www.iana.org/domains/root/db/ Official list of supported TLDs
117
+ * @var array
118
+ */
119
+ protected $_validTlds = array(
120
+ 'abogado',
121
+ 'ac',
122
+ 'academy',
123
+ 'accountants',
124
+ 'active',
125
+ 'actor',
126
+ 'ad',
127
+ 'ae',
128
+ 'aero',
129
+ 'af',
130
+ 'ag',
131
+ 'agency',
132
+ 'ai',
133
+ 'airforce',
134
+ 'al',
135
+ 'allfinanz',
136
+ 'alsace',
137
+ 'am',
138
+ 'an',
139
+ 'android',
140
+ 'ao',
141
+ 'aq',
142
+ 'ar',
143
+ 'archi',
144
+ 'army',
145
+ 'arpa',
146
+ 'as',
147
+ 'asia',
148
+ 'associates',
149
+ 'at',
150
+ 'attorney',
151
+ 'au',
152
+ 'auction',
153
+ 'audio',
154
+ 'autos',
155
+ 'aw',
156
+ 'ax',
157
+ 'axa',
158
+ 'az',
159
+ 'ba',
160
+ 'band',
161
+ 'bar',
162
+ 'bargains',
163
+ 'bayern',
164
+ 'bb',
165
+ 'bd',
166
+ 'be',
167
+ 'beer',
168
+ 'berlin',
169
+ 'best',
170
+ 'bf',
171
+ 'bg',
172
+ 'bh',
173
+ 'bi',
174
+ 'bid',
175
+ 'bike',
176
+ 'bio',
177
+ 'biz',
178
+ 'bj',
179
+ 'black',
180
+ 'blackfriday',
181
+ 'bloomberg',
182
+ 'blue',
183
+ 'bm',
184
+ 'bmw',
185
+ 'bn',
186
+ 'bnpparibas',
187
+ 'bo',
188
+ 'boo',
189
+ 'boutique',
190
+ 'br',
191
+ 'brussels',
192
+ 'bs',
193
+ 'bt',
194
+ 'budapest',
195
+ 'build',
196
+ 'builders',
197
+ 'business',
198
+ 'buzz',
199
+ 'bv',
200
+ 'bw',
201
+ 'by',
202
+ 'bz',
203
+ 'bzh',
204
+ 'ca',
205
+ 'cab',
206
+ 'cal',
207
+ 'camera',
208
+ 'camp',
209
+ 'cancerresearch',
210
+ 'capetown',
211
+ 'capital',
212
+ 'caravan',
213
+ 'cards',
214
+ 'care',
215
+ 'career',
216
+ 'careers',
217
+ 'casa',
218
+ 'cash',
219
+ 'cat',
220
+ 'catering',
221
+ 'cc',
222
+ 'cd',
223
+ 'center',
224
+ 'ceo',
225
+ 'cern',
226
+ 'cf',
227
+ 'cg',
228
+ 'ch',
229
+ 'channel',
230
+ 'cheap',
231
+ 'christmas',
232
+ 'chrome',
233
+ 'church',
234
+ 'ci',
235
+ 'citic',
236
+ 'city',
237
+ 'ck',
238
+ 'cl',
239
+ 'claims',
240
+ 'cleaning',
241
+ 'click',
242
+ 'clinic',
243
+ 'clothing',
244
+ 'club',
245
+ 'cm',
246
+ 'cn',
247
+ 'co',
248
+ 'coach',
249
+ 'codes',
250
+ 'coffee',
251
+ 'college',
252
+ 'cologne',
253
+ 'com',
254
+ 'community',
255
+ 'company',
256
+ 'computer',
257
+ 'condos',
258
+ 'construction',
259
+ 'consulting',
260
+ 'contractors',
261
+ 'cooking',
262
+ 'cool',
263
+ 'coop',
264
+ 'country',
265
+ 'cr',
266
+ 'credit',
267
+ 'creditcard',
268
+ 'cricket',
269
+ 'crs',
270
+ 'cruises',
271
+ 'cu',
272
+ 'cuisinella',
273
+ 'cv',
274
+ 'cw',
275
+ 'cx',
276
+ 'cy',
277
+ 'cymru',
278
+ 'cz',
279
+ 'dad',
280
+ 'dance',
281
+ 'dating',
282
+ 'day',
283
+ 'de',
284
+ 'deals',
285
+ 'degree',
286
+ 'delivery',
287
+ 'democrat',
288
+ 'dental',
289
+ 'dentist',
290
+ 'desi',
291
+ 'diamonds',
292
+ 'diet',
293
+ 'digital',
294
+ 'direct',
295
+ 'directory',
296
+ 'discount',
297
+ 'dj',
298
+ 'dk',
299
+ 'dm',
300
+ 'dnp',
301
+ 'do',
302
+ 'domains',
303
+ 'durban',
304
+ 'dvag',
305
+ 'dz',
306
+ 'eat',
307
+ 'ec',
308
+ 'edu',
309
+ 'education',
310
+ 'ee',
311
+ 'eg',
312
+ 'email',
313
+ 'emerck',
314
+ 'energy',
315
+ 'engineer',
316
+ 'engineering',
317
+ 'enterprises',
318
+ 'equipment',
319
+ 'er',
320
+ 'es',
321
+ 'esq',
322
+ 'estate',
323
+ 'et',
324
+ 'eu',
325
+ 'eus',
326
+ 'events',
327
+ 'everbank',
328
+ 'exchange',
329
+ 'expert',
330
+ 'exposed',
331
+ 'fail',
332
+ 'farm',
333
+ 'feedback',
334
+ 'fi',
335
+ 'finance',
336
+ 'financial',
337
+ 'firmdale',
338
+ 'fish',
339
+ 'fishing',
340
+ 'fitness',
341
+ 'fj',
342
+ 'fk',
343
+ 'flights',
344
+ 'florist',
345
+ 'flsmidth',
346
+ 'fly',
347
+ 'fm',
348
+ 'fo',
349
+ 'foo',
350
+ 'forsale',
351
+ 'foundation',
352
+ 'fr',
353
+ 'frl',
354
+ 'frogans',
355
+ 'fund',
356
+ 'furniture',
357
+ 'futbol',
358
+ 'ga',
359
+ 'gal',
360
+ 'gallery',
361
+ 'gb',
362
+ 'gbiz',
363
+ 'gd',
364
+ 'ge',
365
+ 'gent',
366
+ 'gf',
367
+ 'gg',
368
+ 'gh',
369
+ 'gi',
370
+ 'gift',
371
+ 'gifts',
372
+ 'gives',
373
+ 'gl',
374
+ 'glass',
375
+ 'gle',
376
+ 'global',
377
+ 'globo',
378
+ 'gm',
379
+ 'gmail',
380
+ 'gmo',
381
+ 'gmx',
382
+ 'gn',
383
+ 'google',
384
+ 'gop',
385
+ 'gov',
386
+ 'gp',
387
+ 'gq',
388
+ 'gr',
389
+ 'graphics',
390
+ 'gratis',
391
+ 'green',
392
+ 'gripe',
393
+ 'gs',
394
+ 'gt',
395
+ 'gu',
396
+ 'guide',
397
+ 'guitars',
398
+ 'guru',
399
+ 'gw',
400
+ 'gy',
401
+ 'hamburg',
402
+ 'haus',
403
+ 'healthcare',
404
+ 'help',
405
+ 'here',
406
+ 'hiphop',
407
+ 'hiv',
408
+ 'hk',
409
+ 'hm',
410
+ 'hn',
411
+ 'holdings',
412
+ 'holiday',
413
+ 'homes',
414
+ 'horse',
415
+ 'host',
416
+ 'hosting',
417
+ 'house',
418
+ 'how',
419
+ 'hr',
420
+ 'ht',
421
+ 'hu',
422
+ 'ibm',
423
+ 'id',
424
+ 'ie',
425
+ 'il',
426
+ 'im',
427
+ 'immo',
428
+ 'immobilien',
429
+ 'in',
430
+ 'industries',
431
+ 'info',
432
+ 'ing',
433
+ 'ink',
434
+ 'institute',
435
+ 'insure',
436
+ 'int',
437
+ 'international',
438
+ 'investments',
439
+ 'io',
440
+ 'iq',
441
+ 'ir',
442
+ 'is',
443
+ 'it',
444
+ 'je',
445
+ 'jetzt',
446
+ 'jm',
447
+ 'jo',
448
+ 'jobs',
449
+ 'joburg',
450
+ 'jp',
451
+ 'juegos',
452
+ 'kaufen',
453
+ 'ke',
454
+ 'kg',
455
+ 'kh',
456
+ 'ki',
457
+ 'kim',
458
+ 'kitchen',
459
+ 'kiwi',
460
+ 'km',
461
+ 'kn',
462
+ 'koeln',
463
+ 'kp',
464
+ 'kr',
465
+ 'krd',
466
+ 'kred',
467
+ 'kw',
468
+ 'ky',
469
+ 'kz',
470
+ 'la',
471
+ 'lacaixa',
472
+ 'land',
473
+ 'lawyer',
474
+ 'lb',
475
+ 'lc',
476
+ 'lds',
477
+ 'lease',
478
+ 'legal',
479
+ 'lgbt',
480
+ 'li',
481
+ 'life',
482
+ 'lighting',
483
+ 'limited',
484
+ 'limo',
485
+ 'link',
486
+ 'lk',
487
+ 'loans',
488
+ 'london',
489
+ 'lotto',
490
+ 'lr',
491
+ 'ls',
492
+ 'lt',
493
+ 'ltda',
494
+ 'lu',
495
+ 'luxe',
496
+ 'luxury',
497
+ 'lv',
498
+ 'ly',
499
+ 'ma',
500
+ 'madrid',
501
+ 'maison',
502
+ 'management',
503
+ 'mango',
504
+ 'market',
505
+ 'marketing',
506
+ 'mc',
507
+ 'md',
508
+ 'me',
509
+ 'media',
510
+ 'meet',
511
+ 'melbourne',
512
+ 'meme',
513
+ 'memorial',
514
+ 'menu',
515
+ 'mg',
516
+ 'mh',
517
+ 'miami',
518
+ 'mil',
519
+ 'mini',
520
+ 'mk',
521
+ 'ml',
522
+ 'mm',
523
+ 'mn',
524
+ 'mo',
525
+ 'mobi',
526
+ 'moda',
527
+ 'moe',
528
+ 'monash',
529
+ 'money',
530
+ 'mormon',
531
+ 'mortgage',
532
+ 'moscow',
533
+ 'motorcycles',
534
+ 'mov',
535
+ 'mp',
536
+ 'mq',
537
+ 'mr',
538
+ 'ms',
539
+ 'mt',
540
+ 'mu',
541
+ 'museum',
542
+ 'mv',
543
+ 'mw',
544
+ 'mx',
545
+ 'my',
546
+ 'mz',
547
+ 'na',
548
+ 'nagoya',
549
+ 'name',
550
+ 'navy',
551
+ 'nc',
552
+ 'ne',
553
+ 'net',
554
+ 'network',
555
+ 'neustar',
556
+ 'new',
557
+ 'nexus',
558
+ 'nf',
559
+ 'ng',
560
+ 'ngo',
561
+ 'nhk',
562
+ 'ni',
563
+ 'ninja',
564
+ 'nl',
565
+ 'no',
566
+ 'np',
567
+ 'nr',
568
+ 'nra',
569
+ 'nrw',
570
+ 'nu',
571
+ 'nyc',
572
+ 'nz',
573
+ 'okinawa',
574
+ 'om',
575
+ 'ong',
576
+ 'onl',
577
+ 'ooo',
578
+ 'org',
579
+ 'organic',
580
+ 'otsuka',
581
+ 'ovh',
582
+ 'pa',
583
+ 'paris',
584
+ 'partners',
585
+ 'parts',
586
+ 'party',
587
+ 'pe',
588
+ 'pf',
589
+ 'pg',
590
+ 'ph',
591
+ 'pharmacy',
592
+ 'photo',
593
+ 'photography',
594
+ 'photos',
595
+ 'physio',
596
+ 'pics',
597
+ 'pictures',
598
+ 'pink',
599
+ 'pizza',
600
+ 'pk',
601
+ 'pl',
602
+ 'place',
603
+ 'plumbing',
604
+ 'pm',
605
+ 'pn',
606
+ 'pohl',
607
+ 'poker',
608
+ 'post',
609
+ 'pr',
610
+ 'praxi',
611
+ 'press',
612
+ 'pro',
613
+ 'prod',
614
+ 'productions',
615
+ 'prof',
616
+ 'properties',
617
+ 'property',
618
+ 'ps',
619
+ 'pt',
620
+ 'pub',
621
+ 'pw',
622
+ 'py',
623
+ 'qa',
624
+ 'qpon',
625
+ 'quebec',
626
+ 're',
627
+ 'realtor',
628
+ 'recipes',
629
+ 'red',
630
+ 'rehab',
631
+ 'reise',
632
+ 'reisen',
633
+ 'reit',
634
+ 'ren',
635
+ 'rentals',
636
+ 'repair',
637
+ 'report',
638
+ 'republican',
639
+ 'rest',
640
+ 'restaurant',
641
+ 'reviews',
642
+ 'rich',
643
+ 'rio',
644
+ 'rip',
645
+ 'ro',
646
+ 'rocks',
647
+ 'rodeo',
648
+ 'rs',
649
+ 'rsvp',
650
+ 'ru',
651
+ 'ruhr',
652
+ 'rw',
653
+ 'ryukyu',
654
+ 'sa',
655
+ 'saarland',
656
+ 'sarl',
657
+ 'sb',
658
+ 'sc',
659
+ 'sca',
660
+ 'scb',
661
+ 'schmidt',
662
+ 'schule',
663
+ 'science',
664
+ 'scot',
665
+ 'sd',
666
+ 'se',
667
+ 'services',
668
+ 'sexy',
669
+ 'sg',
670
+ 'sh',
671
+ 'shiksha',
672
+ 'shoes',
673
+ 'si',
674
+ 'singles',
675
+ 'sj',
676
+ 'sk',
677
+ 'sl',
678
+ 'sm',
679
+ 'sn',
680
+ 'so',
681
+ 'social',
682
+ 'software',
683
+ 'sohu',
684
+ 'solar',
685
+ 'solutions',
686
+ 'soy',
687
+ 'space',
688
+ 'spiegel',
689
+ 'sr',
690
+ 'st',
691
+ 'su',
692
+ 'supplies',
693
+ 'supply',
694
+ 'support',
695
+ 'surf',
696
+ 'surgery',
697
+ 'suzuki',
698
+ 'sv',
699
+ 'sx',
700
+ 'sy',
701
+ 'sydney',
702
+ 'systems',
703
+ 'sz',
704
+ 'taipei',
705
+ 'tatar',
706
+ 'tattoo',
707
+ 'tax',
708
+ 'tc',
709
+ 'td',
710
+ 'technology',
711
+ 'tel',
712
+ 'tf',
713
+ 'tg',
714
+ 'th',
715
+ 'tienda',
716
+ 'tips',
717
+ 'tirol',
718
+ 'tj',
719
+ 'tk',
720
+ 'tl',
721
+ 'tm',
722
+ 'tn',
723
+ 'to',
724
+ 'today',
725
+ 'tokyo',
726
+ 'tools',
727
+ 'top',
728
+ 'town',
729
+ 'toys',
730
+ 'tp',
731
+ 'tr',
732
+ 'trade',
733
+ 'training',
734
+ 'travel',
735
+ 'tt',
736
+ 'tui',
737
+ 'tv',
738
+ 'tw',
739
+ 'tz',
740
+ 'ua',
741
+ 'ug',
742
+ 'uk',
743
+ 'university',
744
+ 'uno',
745
+ 'uol',
746
+ 'us',
747
+ 'uy',
748
+ 'uz',
749
+ 'va',
750
+ 'vacations',
751
+ 'vc',
752
+ 've',
753
+ 'vegas',
754
+ 'ventures',
755
+ 'versicherung',
756
+ 'vet',
757
+ 'vg',
758
+ 'vi',
759
+ 'viajes',
760
+ 'villas',
761
+ 'vision',
762
+ 'vlaanderen',
763
+ 'vn',
764
+ 'vodka',
765
+ 'vote',
766
+ 'voting',
767
+ 'voto',
768
+ 'voyage',
769
+ 'vu',
770
+ 'wales',
771
+ 'wang',
772
+ 'watch',
773
+ 'webcam',
774
+ 'website',
775
+ 'wed',
776
+ 'wedding',
777
+ 'wf',
778
+ 'whoswho',
779
+ 'wien',
780
+ 'wiki',
781
+ 'williamhill',
782
+ 'wme',
783
+ 'work',
784
+ 'works',
785
+ 'world',
786
+ 'ws',
787
+ 'wtc',
788
+ 'wtf',
789
+ 'xn--1qqw23a',
790
+ 'xn--3bst00m',
791
+ 'xn--3ds443g',
792
+ 'xn--3e0b707e',
793
+ 'xn--45brj9c',
794
+ 'xn--45q11c',
795
+ 'xn--4gbrim',
796
+ 'xn--55qw42g',
797
+ 'xn--55qx5d',
798
+ 'xn--6frz82g',
799
+ 'xn--6qq986b3xl',
800
+ 'xn--80adxhks',
801
+ 'xn--80ao21a',
802
+ 'xn--80asehdb',
803
+ 'xn--80aswg',
804
+ 'xn--90a3ac',
805
+ 'xn--c1avg',
806
+ 'xn--cg4bki',
807
+ 'xn--clchc0ea0b2g2a9gcd',
808
+ 'xn--czr694b',
809
+ 'xn--czru2d',
810
+ 'xn--d1acj3b',
811
+ 'xn--d1alf',
812
+ 'xn--fiq228c5hs',
813
+ 'xn--fiq64b',
814
+ 'xn--fiqs8s',
815
+ 'xn--fiqz9s',
816
+ 'xn--flw351e',
817
+ 'xn--fpcrj9c3d',
818
+ 'xn--fzc2c9e2c',
819
+ 'xn--gecrj9c',
820
+ 'xn--h2brj9c',
821
+ 'xn--i1b6b1a6a2e',
822
+ 'xn--io0a7i',
823
+ 'xn--j1amh',
824
+ 'xn--j6w193g',
825
+ 'xn--kprw13d',
826
+ 'xn--kpry57d',
827
+ 'xn--kput3i',
828
+ 'xn--l1acc',
829
+ 'xn--lgbbat1ad8j',
830
+ 'xn--mgb9awbf',
831
+ 'xn--mgba3a4f16a',
832
+ 'xn--mgbaam7a8h',
833
+ 'xn--mgbab2bd',
834
+ 'xn--mgbayh7gpa',
835
+ 'xn--mgbbh1a71e',
836
+ 'xn--mgbc0a9azcg',
837
+ 'xn--mgberp4a5d4ar',
838
+ 'xn--mgbx4cd0ab',
839
+ 'xn--ngbc5azd',
840
+ 'xn--node',
841
+ 'xn--nqv7f',
842
+ 'xn--nqv7fs00ema',
843
+ 'xn--o3cw4h',
844
+ 'xn--ogbpf8fl',
845
+ 'xn--p1acf',
846
+ 'xn--p1ai',
847
+ 'xn--pgbs0dh',
848
+ 'xn--q9jyb4c',
849
+ 'xn--qcka1pmc',
850
+ 'xn--rhqv96g',
851
+ 'xn--s9brj9c',
852
+ 'xn--ses554g',
853
+ 'xn--unup4y',
854
+ 'xn--vermgensberater-ctb',
855
+ 'xn--vermgensberatung-pwb',
856
+ 'xn--vhquv',
857
+ 'xn--wgbh1c',
858
+ 'xn--wgbl6a',
859
+ 'xn--xhq521b',
860
+ 'xn--xkc2al3hye2a',
861
+ 'xn--xkc2dl3a5ee0h',
862
+ 'xn--yfro4i67o',
863
+ 'xn--ygbi2ammx',
864
+ 'xn--zfr164b',
865
+ 'xxx',
866
+ 'xyz',
867
+ 'yachts',
868
+ 'yandex',
869
+ 'ye',
870
+ 'yoga',
871
+ 'yokohama',
872
+ 'youtube',
873
+ 'yt',
874
+ 'za',
875
+ 'zip',
876
+ 'zm',
877
+ 'zone',
878
+ 'zw',
879
+ '测试',
880
+ 'परीक्षा',
881
+ '佛山',
882
+ '集团',
883
+ '在线',
884
+ '한국',
885
+ 'ভারত',
886
+ '八卦',
887
+ 'موقع',
888
+ 'বাংলা',
889
+ '公益',
890
+ '公司',
891
+ '移动',
892
+ '我爱你',
893
+ 'москва',
894
+ 'испытание',
895
+ 'қаз',
896
+ 'онлайн',
897
+ 'сайт',
898
+ 'срб',
899
+ 'бел',
900
+ '테스트',
901
+ 'орг',
902
+ '삼성',
903
+ 'சிங்கப்பூர்',
904
+ '商标',
905
+ '商城',
906
+ 'дети',
907
+ 'мкд',
908
+ 'טעסט',
909
+ '中文网',
910
+ '中信',
911
+ '中国',
912
+ '中國',
913
+ '谷歌',
914
+ 'భారత్',
915
+ 'ලංකා',
916
+ '測試',
917
+ 'ભારત',
918
+ 'भारत',
919
+ 'آزمایشی',
920
+ 'பரிட்சை',
921
+ 'संगठन',
922
+ '网络',
923
+ 'укр',
924
+ '香港',
925
+ 'δοκιμή',
926
+ 'إختبار',
927
+ '台湾',
928
+ '台灣',
929
+ '手机',
930
+ 'мон',
931
+ 'الجزائر',
932
+ 'عمان',
933
+ 'ایران',
934
+ 'امارات',
935
+ 'بازار',
936
+ 'پاکستان',
937
+ 'الاردن',
938
+ 'بھارت',
939
+ 'المغرب',
940
+ 'السعودية',
941
+ 'سودان',
942
+ 'عراق',
943
+ 'مليسيا',
944
+ 'شبكة',
945
+ 'გე',
946
+ '机构',
947
+ '组织机构',
948
+ 'ไทย',
949
+ 'سورية',
950
+ 'рус',
951
+ 'рф',
952
+ 'تونس',
953
+ 'みんな',
954
+ 'グーグル',
955
+ '世界',
956
+ 'ਭਾਰਤ',
957
+ '网址',
958
+ '游戏',
959
+ 'vermögensberater',
960
+ 'vermögensberatung',
961
+ '企业',
962
+ 'مصر',
963
+ 'قطر',
964
+ '广东',
965
+ 'இலங்கை',
966
+ 'இந்தியா',
967
+ 'հայ',
968
+ '新加坡',
969
+ 'فلسطين',
970
+ 'テスト',
971
+ '政务',
972
+ );
973
+
974
+ /**
975
+ * @var string
976
+ */
977
+ protected $_tld;
978
+
979
+ /**
980
+ * Array for valid Idns
981
+ * @see http://www.iana.org/domains/idn-tables/ Official list of supported IDN Chars
982
+ * (.AC) Ascension Island http://www.nic.ac/pdf/AC-IDN-Policy.pdf
983
+ * (.AR) Argentinia http://www.nic.ar/faqidn.html
984
+ * (.AS) American Samoa http://www.nic.as/idn/chars.cfm
985
+ * (.AT) Austria http://www.nic.at/en/service/technical_information/idn/charset_converter/
986
+ * (.BIZ) International http://www.iana.org/domains/idn-tables/
987
+ * (.BR) Brazil http://registro.br/faq/faq6.html
988
+ * (.BV) Bouvett Island http://www.norid.no/domeneregistrering/idn/idn_nyetegn.en.html
989
+ * (.CA) Canada http://www.iana.org/domains/idn-tables/tables/ca_fr_1.0.html
990
+ * (.CAT) Catalan http://www.iana.org/domains/idn-tables/tables/cat_ca_1.0.html
991
+ * (.CH) Switzerland https://nic.switch.ch/reg/ocView.action?res=EF6GW2JBPVTG67DLNIQXU234MN6SC33JNQQGI7L6#anhang1
992
+ * (.CL) Chile http://www.iana.org/domains/idn-tables/tables/cl_latn_1.0.html
993
+ * (.COM) International http://www.verisign.com/information-services/naming-services/internationalized-domain-names/index.html
994
+ * (.DE) Germany http://www.denic.de/en/domains/idns/liste.html
995
+ * (.DK) Danmark http://www.dk-hostmaster.dk/index.php?id=151
996
+ * (.ES) Spain https://www.nic.es/media/2008-05/1210147705287.pdf
997
+ * (.FI) Finland http://www.ficora.fi/en/index/palvelut/fiverkkotunnukset/aakkostenkaytto.html
998
+ * (.GR) Greece https://grweb.ics.forth.gr/CharacterTable1_en.jsp
999
+ * (.HU) Hungary http://www.domain.hu/domain/English/szabalyzat/szabalyzat.html
1000
+ * (.INFO) International http://www.nic.info/info/idn
1001
+ * (.IO) British Indian Ocean Territory http://www.nic.io/IO-IDN-Policy.pdf
1002
+ * (.IR) Iran http://www.nic.ir/Allowable_Characters_dot-iran
1003
+ * (.IS) Iceland http://www.isnic.is/domain/rules.php
1004
+ * (.KR) Korea http://www.iana.org/domains/idn-tables/tables/kr_ko-kr_1.0.html
1005
+ * (.LI) Liechtenstein https://nic.switch.ch/reg/ocView.action?res=EF6GW2JBPVTG67DLNIQXU234MN6SC33JNQQGI7L6#anhang1
1006
+ * (.LT) Lithuania http://www.domreg.lt/static/doc/public/idn_symbols-en.pdf
1007
+ * (.MD) Moldova http://www.register.md/
1008
+ * (.MUSEUM) International http://www.iana.org/domains/idn-tables/tables/museum_latn_1.0.html
1009
+ * (.NET) International http://www.verisign.com/information-services/naming-services/internationalized-domain-names/index.html
1010
+ * (.NO) Norway http://www.norid.no/domeneregistrering/idn/idn_nyetegn.en.html
1011
+ * (.NU) Niue http://www.worldnames.net/
1012
+ * (.ORG) International http://www.pir.org/index.php?db=content/FAQs&tbl=FAQs_Registrant&id=2
1013
+ * (.PE) Peru https://www.nic.pe/nuevas_politicas_faq_2.php
1014
+ * (.PL) Poland http://www.dns.pl/IDN/allowed_character_sets.pdf
1015
+ * (.PR) Puerto Rico http://www.nic.pr/idn_rules.asp
1016
+ * (.PT) Portugal https://online.dns.pt/dns_2008/do?com=DS;8216320233;111;+PAGE(4000058)+K-CAT-CODIGO(C.125)+RCNT(100);
1017
+ * (.RU) Russia http://www.iana.org/domains/idn-tables/tables/ru_ru-ru_1.0.html
1018
+ * (.RS) Serbia http://www.iana.org/domains/idn-tables/tables/rs_sr-rs_1.0.pdf
1019
+ * (.SA) Saudi Arabia http://www.iana.org/domains/idn-tables/tables/sa_ar_1.0.html
1020
+ * (.SE) Sweden http://www.iis.se/english/IDN_campaignsite.shtml?lang=en
1021
+ * (.SH) Saint Helena http://www.nic.sh/SH-IDN-Policy.pdf
1022
+ * (.SJ) Svalbard and Jan Mayen http://www.norid.no/domeneregistrering/idn/idn_nyetegn.en.html
1023
+ * (.TH) Thailand http://www.iana.org/domains/idn-tables/tables/th_th-th_1.0.html
1024
+ * (.TM) Turkmenistan http://www.nic.tm/TM-IDN-Policy.pdf
1025
+ * (.TR) Turkey https://www.nic.tr/index.php
1026
+ * (.UA) Ukraine http://www.iana.org/domains/idn-tables/tables/ua_cyrl_1.2.html
1027
+ * (.VE) Venice http://www.iana.org/domains/idn-tables/tables/ve_es_1.0.html
1028
+ * (.VN) Vietnam http://www.vnnic.vn/english/5-6-300-2-2-04-20071115.htm#1.%20Introduction
1029
+ *
1030
+ * @var array
1031
+ */
1032
+ protected $_validIdns = array(
1033
+ 'AC' => array(1 => '/^[\x{002d}0-9a-zà-öø-ÿāăąćĉċčďđēėęěĝġģĥħīįĵķĺļľŀłńņňŋőœŕŗřśŝşšţťŧūŭůűųŵŷźżž]{1,63}$/iu'),
1034
+ 'AR' => array(1 => '/^[\x{002d}0-9a-zà-ãç-êìíñ-õü]{1,63}$/iu'),
1035
+ 'AS' => array(1 => '/^[\x{002d}0-9a-zà-öø-ÿāăąćĉċčďđēĕėęěĝğġģĥħĩīĭįıĵķĸĺļľłńņňŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷźż]{1,63}$/iu'),
1036
+ 'AT' => array(1 => '/^[\x{002d}0-9a-zà-öø-ÿœšž]{1,63}$/iu'),
1037
+ 'BIZ' => 'Zend/Validate/Hostname/Biz.php',
1038
+ 'BR' => array(1 => '/^[\x{002d}0-9a-zà-ãçéíó-õúü]{1,63}$/iu'),
1039
+ 'BV' => array(1 => '/^[\x{002d}0-9a-zàáä-éêñ-ôöøüčđńŋšŧž]{1,63}$/iu'),
1040
+ 'CA' => array(1 => '/^[\x{002d}0-9a-zàâæçéèêëîïôœùûüÿ\x{00E0}\x{00E2}\x{00E7}\x{00E8}\x{00E9}\x{00EA}\x{00EB}\x{00EE}\x{00EF}\x{00F4}\x{00F9}\x{00FB}\x{00FC}\x{00E6}\x{0153}\x{00FF}]{1,63}$/iu'),
1041
+ 'CAT' => array(1 => '/^[\x{002d}0-9a-z·àç-éíïòóúü]{1,63}$/iu'),
1042
+ 'CH' => array(1 => '/^[\x{002d}0-9a-zà-öø-ÿœ]{1,63}$/iu'),
1043
+ 'CL' => array(1 => '/^[\x{002d}0-9a-záéíñóúü]{1,63}$/iu'),
1044
+ 'CN' => 'Zend/Validate/Hostname/Cn.php',
1045
+ 'COM' => 'Zend/Validate/Hostname/Com.php',
1046
+ 'DE' => array(1 => '/^[\x{002d}0-9a-zà-öø-ÿăąāćĉčċďđĕěėęēğĝġģĥħĭĩįīıĵķĺľļłńňņŋŏőōœĸŕřŗśŝšşťßţŧŭůűũųūŵŷźžż]{1,63}$/iu'),
1047
+ 'DK' => array(1 => '/^[\x{002d}0-9a-zäéöüæøå]{1,63}$/iu'),
1048
+ 'ES' => array(1 => '/^[\x{002d}0-9a-zàáçèéíïñòóúü·]{1,63}$/iu'),
1049
+ 'EU' => array(1 => '/^[\x{002d}0-9a-zà-öø-ÿ]{1,63}$/iu',
1050
+ 2 => '/^[\x{002d}0-9a-zāăąćĉċčďđēĕėęěĝğġģĥħĩīĭįıĵķĺļľŀłńņňʼnŋōŏőœŕŗřśŝšťŧũūŭůűųŵŷźżž]{1,63}$/iu',
1051
+ 3 => '/^[\x{002d}0-9a-zșț]{1,63}$/iu',
1052
+ 4 => '/^[\x{002d}0-9a-zΐάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ]{1,63}$/iu',
1053
+ 5 => '/^[\x{002d}0-9a-zабвгдежзийклмнопрстуфхцчшщъыьэюя]{1,63}$/iu',
1054
+ 6 => '/^[\x{002d}0-9a-zἀ-ἇἐ-ἕἠ-ἧἰ-ἷὀ-ὅὐ-ὗὠ-ὧὰ-ὼώᾀ-ᾇᾐ-ᾗᾠ-ᾧᾰ-ᾴᾶᾷῂῃῄῆῇῐ-ῒΐῖῗῠ-ῧῲῳῴῶῷ]{1,63}$/iu'),
1055
+ 'FI' => array(1 => '/^[\x{002d}0-9a-zäåö]{1,63}$/iu'),
1056
+ 'GR' => array(1 => '/^[\x{002d}0-9a-zΆΈΉΊΌΎ-ΡΣ-ώἀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼῂῃῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲῳῴῶ-ῼ]{1,63}$/iu'),
1057
+ 'HK' => 'Zend/Validate/Hostname/Cn.php',
1058
+ 'HU' => array(1 => '/^[\x{002d}0-9a-záéíóöúüőű]{1,63}$/iu'),
1059
+ 'IL' => array(1 => '/^[\x{002d}0-9\x{05D0}-\x{05EA}]{1,63}$/iu',
1060
+ 2 => '/^[\x{002d}0-9a-z]{1,63}$/i'),
1061
+ 'INFO'=> array(1 => '/^[\x{002d}0-9a-zäåæéöøü]{1,63}$/iu',
1062
+ 2 => '/^[\x{002d}0-9a-záéíóöúüőű]{1,63}$/iu',
1063
+ 3 => '/^[\x{002d}0-9a-záæéíðóöúýþ]{1,63}$/iu',
1064
+ 4 => '/^[\x{AC00}-\x{D7A3}]{1,17}$/iu',
1065
+ 5 => '/^[\x{002d}0-9a-zāčēģīķļņōŗšūž]{1,63}$/iu',
1066
+ 6 => '/^[\x{002d}0-9a-ząčėęįšūųž]{1,63}$/iu',
1067
+ 7 => '/^[\x{002d}0-9a-zóąćęłńśźż]{1,63}$/iu',
1068
+ 8 => '/^[\x{002d}0-9a-záéíñóúü]{1,63}$/iu'),
1069
+ 'IO' => array(1 => '/^[\x{002d}0-9a-zà-öø-ÿăąāćĉčċďđĕěėęēğĝġģĥħĭĩįīıĵķĺľļłńňņŋŏőōœĸŕřŗśŝšşťţŧŭůűũųūŵŷźžż]{1,63}$/iu'),
1070
+ 'IS' => array(1 => '/^[\x{002d}0-9a-záéýúíóþæöð]{1,63}$/iu'),
1071
+ 'IT' => array(1 => '/^[\x{002d}0-9a-zàâäèéêëìîïòôöùûüæœçÿß-]{1,63}$/iu'),
1072
+ 'JP' => 'Zend/Validate/Hostname/Jp.php',
1073
+ 'KR' => array(1 => '/^[\x{AC00}-\x{D7A3}]{1,17}$/iu'),
1074
+ 'LI' => array(1 => '/^[\x{002d}0-9a-zà-öø-ÿœ]{1,63}$/iu'),
1075
+ 'LT' => array(1 => '/^[\x{002d}0-9ąčęėįšųūž]{1,63}$/iu'),
1076
+ 'MD' => array(1 => '/^[\x{002d}0-9ăâîşţ]{1,63}$/iu'),
1077
+ 'MUSEUM' => array(1 => '/^[\x{002d}0-9a-zà-öø-ÿāăąćċčďđēėęěğġģħīįıķĺļľłńņňŋōőœŕŗřśşšţťŧūůűųŵŷźżžǎǐǒǔ\x{01E5}\x{01E7}\x{01E9}\x{01EF}ə\x{0292}ẁẃẅỳ]{1,63}$/iu'),
1078
+ 'NET' => 'Zend/Validate/Hostname/Com.php',
1079
+ 'NO' => array(1 => '/^[\x{002d}0-9a-zàáä-éêñ-ôöøüčđńŋšŧž]{1,63}$/iu'),
1080
+ 'NU' => 'Zend/Validate/Hostname/Com.php',
1081
+ 'ORG' => array(1 => '/^[\x{002d}0-9a-záéíñóúü]{1,63}$/iu',
1082
+ 2 => '/^[\x{002d}0-9a-zóąćęłńśźż]{1,63}$/iu',
1083
+ 3 => '/^[\x{002d}0-9a-záäåæéëíðóöøúüýþ]{1,63}$/iu',
1084
+ 4 => '/^[\x{002d}0-9a-záéíóöúüőű]{1,63}$/iu',
1085
+ 5 => '/^[\x{002d}0-9a-ząčėęįšūųž]{1,63}$/iu',
1086
+ 6 => '/^[\x{AC00}-\x{D7A3}]{1,17}$/iu',
1087
+ 7 => '/^[\x{002d}0-9a-zāčēģīķļņōŗšūž]{1,63}$/iu'),
1088
+ 'PE' => array(1 => '/^[\x{002d}0-9a-zñáéíóúü]{1,63}$/iu'),
1089
+ 'PL' => array(1 => '/^[\x{002d}0-9a-zāčēģīķļņōŗšūž]{1,63}$/iu',
1090
+ 2 => '/^[\x{002d}а-ик-ш\x{0450}ѓѕјљњќџ]{1,63}$/iu',
1091
+ 3 => '/^[\x{002d}0-9a-zâîăşţ]{1,63}$/iu',
1092
+ 4 => '/^[\x{002d}0-9а-яё\x{04C2}]{1,63}$/iu',
1093
+ 5 => '/^[\x{002d}0-9a-zàáâèéêìíîòóôùúûċġħż]{1,63}$/iu',
1094
+ 6 => '/^[\x{002d}0-9a-zàäåæéêòóôöøü]{1,63}$/iu',
1095
+ 7 => '/^[\x{002d}0-9a-zóąćęłńśźż]{1,63}$/iu',
1096
+ 8 => '/^[\x{002d}0-9a-zàáâãçéêíòóôõúü]{1,63}$/iu',
1097
+ 9 => '/^[\x{002d}0-9a-zâîăşţ]{1,63}$/iu',
1098
+ 10=> '/^[\x{002d}0-9a-záäéíóôúýčďĺľňŕšťž]{1,63}$/iu',
1099
+ 11=> '/^[\x{002d}0-9a-zçë]{1,63}$/iu',
1100
+ 12=> '/^[\x{002d}0-9а-ик-шђјљњћџ]{1,63}$/iu',
1101
+ 13=> '/^[\x{002d}0-9a-zćčđšž]{1,63}$/iu',
1102
+ 14=> '/^[\x{002d}0-9a-zâçöûüğış]{1,63}$/iu',
1103
+ 15=> '/^[\x{002d}0-9a-záéíñóúü]{1,63}$/iu',
1104
+ 16=> '/^[\x{002d}0-9a-zäõöüšž]{1,63}$/iu',
1105
+ 17=> '/^[\x{002d}0-9a-zĉĝĥĵŝŭ]{1,63}$/iu',
1106
+ 18=> '/^[\x{002d}0-9a-zâäéëîô]{1,63}$/iu',
1107
+ 19=> '/^[\x{002d}0-9a-zàáâäåæçèéêëìíîïðñòôöøùúûüýćčłńřśš]{1,63}$/iu',
1108
+ 20=> '/^[\x{002d}0-9a-zäåæõöøüšž]{1,63}$/iu',
1109
+ 21=> '/^[\x{002d}0-9a-zàáçèéìíòóùú]{1,63}$/iu',
1110
+ 22=> '/^[\x{002d}0-9a-zàáéíóöúüőű]{1,63}$/iu',
1111
+ 23=> '/^[\x{002d}0-9ΐά-ώ]{1,63}$/iu',
1112
+ 24=> '/^[\x{002d}0-9a-zàáâåæçèéêëðóôöøüþœ]{1,63}$/iu',
1113
+ 25=> '/^[\x{002d}0-9a-záäéíóöúüýčďěňřšťůž]{1,63}$/iu',
1114
+ 26=> '/^[\x{002d}0-9a-z·àçèéíïòóúü]{1,63}$/iu',
1115
+ 27=> '/^[\x{002d}0-9а-ъьюя\x{0450}\x{045D}]{1,63}$/iu',
1116
+ 28=> '/^[\x{002d}0-9а-яёіў]{1,63}$/iu',
1117
+ 29=> '/^[\x{002d}0-9a-ząčėęįšūųž]{1,63}$/iu',
1118
+ 30=> '/^[\x{002d}0-9a-záäåæéëíðóöøúüýþ]{1,63}$/iu',
1119
+ 31=> '/^[\x{002d}0-9a-zàâæçèéêëîïñôùûüÿœ]{1,63}$/iu',
1120
+ 32=> '/^[\x{002d}0-9а-щъыьэюяёєіїґ]{1,63}$/iu',
1121
+ 33=> '/^[\x{002d}0-9א-ת]{1,63}$/iu'),
1122
+ 'PR' => array(1 => '/^[\x{002d}0-9a-záéíóúñäëïüöâêîôûàèùæçœãõ]{1,63}$/iu'),
1123
+ 'PT' => array(1 => '/^[\x{002d}0-9a-záàâãçéêíóôõú]{1,63}$/iu'),
1124
+ 'RS' => array(1 => '/^[\x{002D}\x{0030}-\x{0039}\x{0061}-\x{007A}\x{0107}\x{010D}\x{0111}\x{0161}\x{017E}]{1,63}$/iu)'),
1125
+ 'RU' => array(1 => '/^[\x{002d}0-9а-яё]{1,63}$/iu'),
1126
+ 'SA' => array(1 => '/^[\x{002d}.0-9\x{0621}-\x{063A}\x{0641}-\x{064A}\x{0660}-\x{0669}]{1,63}$/iu'),
1127
+ 'SE' => array(1 => '/^[\x{002d}0-9a-zäåéöü]{1,63}$/iu'),
1128
+ 'SH' => array(1 => '/^[\x{002d}0-9a-zà-öø-ÿăąāćĉčċďđĕěėęēğĝġģĥħĭĩįīıĵķĺľļłńňņŋŏőōœĸŕřŗśŝšşťţŧŭůűũųūŵŷźžż]{1,63}$/iu'),
1129
+ 'SI' => array(
1130
+ 1 => '/^[\x{002d}0-9a-zà-öø-ÿ]{1,63}$/iu',
1131
+ 2 => '/^[\x{002d}0-9a-zāăąćĉċčďđēĕėęěĝğġģĥħĩīĭįıĵķĺļľŀłńņňʼnŋōŏőœŕŗřśŝšťŧũūŭůűųŵŷźżž]{1,63}$/iu',
1132
+ 3 => '/^[\x{002d}0-9a-zșț]{1,63}$/iu'),
1133
+ 'SJ' => array(1 => '/^[\x{002d}0-9a-zàáä-éêñ-ôöøüčđńŋšŧž]{1,63}$/iu'),
1134
+ 'TH' => array(1 => '/^[\x{002d}0-9a-z\x{0E01}-\x{0E3A}\x{0E40}-\x{0E4D}\x{0E50}-\x{0E59}]{1,63}$/iu'),
1135
+ 'TM' => array(1 => '/^[\x{002d}0-9a-zà-öø-ÿāăąćĉċčďđēėęěĝġģĥħīįĵķĺļľŀłńņňŋőœŕŗřśŝşšţťŧūŭůűųŵŷźżž]{1,63}$/iu'),
1136
+ 'TW' => 'Zend/Validate/Hostname/Cn.php',
1137
+ 'TR' => array(1 => '/^[\x{002d}0-9a-zğıüşöç]{1,63}$/iu'),
1138
+ 'UA' => array(1 => '/^[\x{002d}0-9a-zабвгдежзийклмнопрстуфхцчшщъыьэюяѐёђѓєѕіїјљњћќѝўџґӂʼ]{1,63}$/iu'),
1139
+ 'VE' => array(1 => '/^[\x{002d}0-9a-záéíóúüñ]{1,63}$/iu'),
1140
+ 'VN' => array(1 => '/^[ÀÁÂÃÈÉÊÌÍÒÓÔÕÙÚÝàáâãèéêìíòóôõùúýĂăĐđĨĩŨũƠơƯư\x{1EA0}-\x{1EF9}]{1,63}$/iu'),
1141
+ 'мон' => array(1 => '/^[\x{002d}0-9\x{0430}-\x{044F}]{1,63}$/iu'),
1142
+ 'срб' => array(1 => '/^[\x{002d}0-9а-ик-шђјљњћџ]{1,63}$/iu'),
1143
+ 'сайт' => array(1 => '/^[\x{002d}0-9а-яёіїѝйўґг]{1,63}$/iu'),
1144
+ 'онлайн' => array(1 => '/^[\x{002d}0-9а-яёіїѝйўґг]{1,63}$/iu'),
1145
+ '中国' => 'Zend/Validate/Hostname/Cn.php',
1146
+ '中國' => 'Zend/Validate/Hostname/Cn.php',
1147
+ 'ලංකා' => array(1 => '/^[\x{0d80}-\x{0dff}]{1,63}$/iu'),
1148
+ '香港' => 'Zend/Validate/Hostname/Cn.php',
1149
+ '台湾' => 'Zend/Validate/Hostname/Cn.php',
1150
+ '台灣' => 'Zend/Validate/Hostname/Cn.php',
1151
+ 'امارات' => array(1 => '/^[\x{0621}-\x{0624}\x{0626}-\x{063A}\x{0641}\x{0642}\x{0644}-\x{0648}\x{067E}\x{0686}\x{0698}\x{06A9}\x{06AF}\x{06CC}\x{06F0}-\x{06F9}]{1,30}$/iu'),
1152
+ 'الاردن' => array(1 => '/^[\x{0621}-\x{0624}\x{0626}-\x{063A}\x{0641}\x{0642}\x{0644}-\x{0648}\x{067E}\x{0686}\x{0698}\x{06A9}\x{06AF}\x{06CC}\x{06F0}-\x{06F9}]{1,30}$/iu'),
1153
+ 'السعودية' => array(1 => '/^[\x{0621}-\x{0624}\x{0626}-\x{063A}\x{0641}\x{0642}\x{0644}-\x{0648}\x{067E}\x{0686}\x{0698}\x{06A9}\x{06AF}\x{06CC}\x{06F0}-\x{06F9}]{1,30}$/iu'),
1154
+ 'ไทย' => array(1 => '/^[\x{002d}0-9a-z\x{0E01}-\x{0E3A}\x{0E40}-\x{0E4D}\x{0E50}-\x{0E59}]{1,63}$/iu'),
1155
+ 'рф' => array(1 => '/^[\x{002d}0-9а-яё]{1,63}$/iu'),
1156
+ 'تونس' => array(1 => '/^[\x{0621}-\x{0624}\x{0626}-\x{063A}\x{0641}\x{0642}\x{0644}-\x{0648}\x{067E}\x{0686}\x{0698}\x{06A9}\x{06AF}\x{06CC}\x{06F0}-\x{06F9}]{1,30}$/iu'),
1157
+ 'مصر' => array(1 => '/^[\x{0621}-\x{0624}\x{0626}-\x{063A}\x{0641}\x{0642}\x{0644}-\x{0648}\x{067E}\x{0686}\x{0698}\x{06A9}\x{06AF}\x{06CC}\x{06F0}-\x{06F9}]{1,30}$/iu'),
1158
+ 'இலங்கை' => array(1 => '/^[\x{0b80}-\x{0bff}]{1,63}$/iu'),
1159
+ 'فلسطين' => array(1 => '/^[\x{0621}-\x{0624}\x{0626}-\x{063A}\x{0641}\x{0642}\x{0644}-\x{0648}\x{067E}\x{0686}\x{0698}\x{06A9}\x{06AF}\x{06CC}\x{06F0}-\x{06F9}]{1,30}$/iu'),
1160
+ 'شبكة' => array(1 => '/^[\x{0621}-\x{0624}\x{0626}-\x{063A}\x{0641}\x{0642}\x{0644}-\x{0648}\x{067E}\x{0686}\x{0698}\x{06A9}\x{06AF}\x{06CC}\x{06F0}-\x{06F9}]{1,30}$/iu'),
1161
+ );
1162
+
1163
+ protected $_idnLength = array(
1164
+ 'BIZ' => array(5 => 17, 11 => 15, 12 => 20),
1165
+ 'CN' => array(1 => 20),
1166
+ 'COM' => array(3 => 17, 5 => 20),
1167
+ 'HK' => array(1 => 15),
1168
+ 'INFO'=> array(4 => 17),
1169
+ 'KR' => array(1 => 17),
1170
+ 'NET' => array(3 => 17, 5 => 20),
1171
+ 'ORG' => array(6 => 17),
1172
+ 'TW' => array(1 => 20),
1173
+ 'ایران' => array(1 => 30),
1174
+ '中国' => array(1 => 20),
1175
+ '公司' => array(1 => 20),
1176
+ '网络' => array(1 => 20),
1177
+ );
1178
+
1179
+ protected $_options = array(
1180
+ 'allow' => self::ALLOW_DNS,
1181
+ 'idn' => true,
1182
+ 'tld' => true,
1183
+ 'ip' => null
1184
+ );
1185
+
1186
+ /**
1187
+ * Sets validator options
1188
+ *
1189
+ * @see http://www.iana.org/cctld/specifications-policies-cctlds-01apr02.htm Technical Specifications for ccTLDs
1190
+ * @param array $options Validator options
1191
+ */
1192
+ public function __construct($options = array())
1193
+ {
1194
+ if ($options instanceof Zend_Config) {
1195
+ $options = $options->toArray();
1196
+ } else if (!is_array($options)) {
1197
+ $options = func_get_args();
1198
+ $temp['allow'] = array_shift($options);
1199
+ if (!empty($options)) {
1200
+ $temp['idn'] = array_shift($options);
1201
+ }
1202
+
1203
+ if (!empty($options)) {
1204
+ $temp['tld'] = array_shift($options);
1205
+ }
1206
+
1207
+ if (!empty($options)) {
1208
+ $temp['ip'] = array_shift($options);
1209
+ }
1210
+
1211
+ $options = $temp;
1212
+ }
1213
+
1214
+ $options += $this->_options;
1215
+ $this->setOptions($options);
1216
+ }
1217
+
1218
+ /**
1219
+ * Returns all set options
1220
+ *
1221
+ * @return array
1222
+ */
1223
+ public function getOptions()
1224
+ {
1225
+ return $this->_options;
1226
+ }
1227
+
1228
+ /**
1229
+ * Sets the options for this validator
1230
+ *
1231
+ * @param array $options
1232
+ * @return Zend_Validate_Hostname
1233
+ */
1234
+ public function setOptions($options)
1235
+ {
1236
+ if (array_key_exists('allow', $options)) {
1237
+ $this->setAllow($options['allow']);
1238
+ }
1239
+
1240
+ if (array_key_exists('idn', $options)) {
1241
+ $this->setValidateIdn($options['idn']);
1242
+ }
1243
+
1244
+ if (array_key_exists('tld', $options)) {
1245
+ $this->setValidateTld($options['tld']);
1246
+ }
1247
+
1248
+ if (array_key_exists('ip', $options)) {
1249
+ $this->setIpValidator($options['ip']);
1250
+ }
1251
+
1252
+ return $this;
1253
+ }
1254
+
1255
+ /**
1256
+ * Returns the set ip validator
1257
+ *
1258
+ * @return Zend_Validate_Ip
1259
+ */
1260
+ public function getIpValidator()
1261
+ {
1262
+ return $this->_options['ip'];
1263
+ }
1264
+
1265
+ /**
1266
+ * @param Zend_Validate_Ip $ipValidator OPTIONAL
1267
+ * @return Zend_Validate_Hostname
1268
+ */
1269
+ public function setIpValidator(Zend_Validate_Ip $ipValidator = null)
1270
+ {
1271
+ if ($ipValidator === null) {
1272
+ $ipValidator = new Zend_Validate_Ip();
1273
+ }
1274
+
1275
+ $this->_options['ip'] = $ipValidator;
1276
+ return $this;
1277
+ }
1278
+
1279
+ /**
1280
+ * Returns the allow option
1281
+ *
1282
+ * @return integer
1283
+ */
1284
+ public function getAllow()
1285
+ {
1286
+ return $this->_options['allow'];
1287
+ }
1288
+
1289
+ /**
1290
+ * Sets the allow option
1291
+ *
1292
+ * @param integer $allow
1293
+ * @return Zend_Validate_Hostname Provides a fluent interface
1294
+ */
1295
+ public function setAllow($allow)
1296
+ {
1297
+ $this->_options['allow'] = $allow;
1298
+ return $this;
1299
+ }
1300
+
1301
+ /**
1302
+ * Returns the set idn option
1303
+ *
1304
+ * @return boolean
1305
+ */
1306
+ public function getValidateIdn()
1307
+ {
1308
+ return $this->_options['idn'];
1309
+ }
1310
+
1311
+ /**
1312
+ * Set whether IDN domains are validated
1313
+ *
1314
+ * This only applies when DNS hostnames are validated
1315
+ *
1316
+ * @param boolean $allowed Set allowed to true to validate IDNs, and false to not validate them
1317
+ * @return $this
1318
+ */
1319
+ public function setValidateIdn ($allowed)
1320
+ {
1321
+ $this->_options['idn'] = (bool) $allowed;
1322
+ return $this;
1323
+ }
1324
+
1325
+ /**
1326
+ * Returns the set tld option
1327
+ *
1328
+ * @return boolean
1329
+ */
1330
+ public function getValidateTld()
1331
+ {
1332
+ return $this->_options['tld'];
1333
+ }
1334
+
1335
+ /**
1336
+ * Set whether the TLD element of a hostname is validated
1337
+ *
1338
+ * This only applies when DNS hostnames are validated
1339
+ *
1340
+ * @param boolean $allowed Set allowed to true to validate TLDs, and false to not validate them
1341
+ * @return $this
1342
+ */
1343
+ public function setValidateTld ($allowed)
1344
+ {
1345
+ $this->_options['tld'] = (bool) $allowed;
1346
+ return $this;
1347
+ }
1348
+
1349
+ /**
1350
+ * Defined by Zend_Validate_Interface
1351
+ *
1352
+ * Returns true if and only if the $value is a valid hostname with respect to the current allow option
1353
+ *
1354
+ * @param string $value
1355
+ * @throws Zend_Validate_Exception if a fatal error occurs for validation process
1356
+ * @return boolean
1357
+ */
1358
+ public function isValid($value)
1359
+ {
1360
+ if (!is_string($value)) {
1361
+ $this->_error(self::INVALID);
1362
+ return false;
1363
+ }
1364
+
1365
+ $this->_setValue($value);
1366
+ // Check input against IP address schema
1367
+ if (preg_match('/^[0-9a-f:.]*$/i', $value) &&
1368
+ $this->_options['ip']->setTranslator($this->getTranslator())->isValid($value)) {
1369
+ if (!($this->_options['allow'] & self::ALLOW_IP)) {
1370
+ $this->_error(self::IP_ADDRESS_NOT_ALLOWED);
1371
+ return false;
1372
+ } else {
1373
+ return true;
1374
+ }
1375
+ }
1376
+
1377
+ // RFC3986 3.2.2 states:
1378
+ //
1379
+ // The rightmost domain label of a fully qualified domain name
1380
+ // in DNS may be followed by a single "." and should be if it is
1381
+ // necessary to distinguish between the complete domain name and
1382
+ // some local domain.
1383
+ //
1384
+ // (see ZF-6363)
1385
+
1386
+ // Local hostnames are allowed to be partitial (ending '.')
1387
+ if ($this->_options['allow'] & self::ALLOW_LOCAL) {
1388
+ if (substr($value, -1) === '.') {
1389
+ $value = substr($value, 0, -1);
1390
+ if (substr($value, -1) === '.') {
1391
+ // Empty hostnames (ending '..') are not allowed
1392
+ $this->_error(self::INVALID_LOCAL_NAME);
1393
+ return false;
1394
+ }
1395
+ }
1396
+ }
1397
+
1398
+ $domainParts = explode('.', $value);
1399
+
1400
+ // Prevent partitial IP V4 adresses (ending '.')
1401
+ if ((count($domainParts) == 4) && preg_match('/^[0-9.a-e:.]*$/i', $value) &&
1402
+ $this->_options['ip']->setTranslator($this->getTranslator())->isValid($value)) {
1403
+ $this->_error(self::INVALID_LOCAL_NAME);
1404
+ }
1405
+
1406
+ // Check input against DNS hostname schema
1407
+ if ((count($domainParts) > 1) && (strlen($value) >= 4) && (strlen($value) <= 254)) {
1408
+ $status = false;
1409
+
1410
+ $origenc = PHP_VERSION_ID < 50600
1411
+ ? iconv_get_encoding('internal_encoding')
1412
+ : ini_get('default_charset');
1413
+ if (PHP_VERSION_ID < 50600) {
1414
+ iconv_set_encoding('internal_encoding', 'UTF-8');
1415
+ } else {
1416
+ ini_set('default_charset', 'UTF-8');
1417
+ }
1418
+ do {
1419
+ // First check TLD
1420
+ $matches = array();
1421
+ if (preg_match('/([^.]{2,63})$/iu', end($domainParts), $matches)
1422
+ || (array_key_exists(end($domainParts), $this->_validIdns))) {
1423
+ reset($domainParts);
1424
+
1425
+ // Hostname characters are: *(label dot)(label dot label); max 254 chars
1426
+ // label: id-prefix [*ldh{61} id-prefix]; max 63 chars
1427
+ // id-prefix: alpha / digit
1428
+ // ldh: alpha / digit / dash
1429
+
1430
+ // Match TLD against known list
1431
+ $this->_tld = $matches[1];
1432
+ if ($this->_options['tld']) {
1433
+ if (!in_array(strtolower($this->_tld), $this->_validTlds)
1434
+ && !in_array($this->_tld, $this->_validTlds)
1435
+ && !$this->checkDnsRecords($this->_value)
1436
+ ) {
1437
+ $this->_error(self::UNKNOWN_TLD);
1438
+ $status = false;
1439
+ break;
1440
+ }
1441
+ // We have already validated that the TLD is fine. We don't want it to go through the below
1442
+ // checks as new UTF-8 TLDs will incorrectly fail if there is no IDN regex for it.
1443
+ array_pop($domainParts);
1444
+ }
1445
+
1446
+ /**
1447
+ * Match against IDN hostnames
1448
+ * Note: Keep label regex short to avoid issues with long patterns when matching IDN hostnames
1449
+ * @see Zend_Validate_Hostname_Interface
1450
+ */
1451
+ $regexChars = array(0 => '/^[a-z0-9\x2d]{1,63}$/i');
1452
+ if ($this->_options['idn'] && isset($this->_validIdns[strtoupper($this->_tld)])) {
1453
+ if (is_string($this->_validIdns[strtoupper($this->_tld)])) {
1454
+ $regexChars += include($this->_validIdns[strtoupper($this->_tld)]);
1455
+ } else {
1456
+ $regexChars += $this->_validIdns[strtoupper($this->_tld)];
1457
+ }
1458
+ }
1459
+
1460
+ // Check each hostname part
1461
+ $check = 0;
1462
+ foreach ($domainParts as $domainPart) {
1463
+ // If some domain part is empty (i.e. zend..com), it's invalid
1464
+ if (empty($domainPart) && $domainPart !== '0') {
1465
+ $this->_error(self::INVALID_HOSTNAME);
1466
+ return false;
1467
+ }
1468
+
1469
+ // Decode Punycode domainnames to IDN
1470
+ if (strpos($domainPart, 'xn--') === 0) {
1471
+ $domainPart = $this->decodePunycode(substr($domainPart, 4));
1472
+ if ($domainPart === false) {
1473
+ return false;
1474
+ }
1475
+ }
1476
+
1477
+ // Check dash (-) does not start, end or appear in 3rd and 4th positions
1478
+ if ((strpos($domainPart, '-') === 0)
1479
+ || ((strlen($domainPart) > 2) && (strpos($domainPart, '-', 2) == 2) && (strpos($domainPart, '-', 3) == 3))
1480
+ || (strpos($domainPart, '-') === (strlen($domainPart) - 1))) {
1481
+ $this->_error(self::INVALID_DASH);
1482
+ $status = false;
1483
+ break 2;
1484
+ }
1485
+
1486
+ // Check each domain part
1487
+ $checked = false;
1488
+ foreach($regexChars as $regexKey => $regexChar) {
1489
+ $status = preg_match($regexChar, $domainPart);
1490
+ if ($status > 0) {
1491
+ $length = 63;
1492
+ if (array_key_exists(strtoupper($this->_tld), $this->_idnLength)
1493
+ && (array_key_exists($regexKey, $this->_idnLength[strtoupper($this->_tld)]))) {
1494
+ $length = $this->_idnLength[strtoupper($this->_tld)];
1495
+ }
1496
+
1497
+ if (iconv_strlen($domainPart, 'UTF-8') > $length) {
1498
+ $this->_error(self::INVALID_HOSTNAME);
1499
+ } else {
1500
+ $checked = true;
1501
+ break;
1502
+ }
1503
+ }
1504
+ }
1505
+
1506
+ if ($checked) {
1507
+ ++$check;
1508
+ }
1509
+ }
1510
+
1511
+ // If one of the labels doesn't match, the hostname is invalid
1512
+ if ($check !== count($domainParts)) {
1513
+ $this->_error(self::INVALID_HOSTNAME_SCHEMA);
1514
+ $status = false;
1515
+ }
1516
+ } else {
1517
+ // Hostname not long enough
1518
+ $this->_error(self::UNDECIPHERABLE_TLD);
1519
+ $status = false;
1520
+ }
1521
+ } while (false);
1522
+
1523
+ if (PHP_VERSION_ID < 50600) {
1524
+ iconv_set_encoding('internal_encoding', $origenc);
1525
+ } else {
1526
+ ini_set('default_charset', $origenc);
1527
+ }
1528
+ // If the input passes as an Internet domain name, and domain names are allowed, then the hostname
1529
+ // passes validation
1530
+ if ($status && ($this->_options['allow'] & self::ALLOW_DNS)) {
1531
+ return true;
1532
+ }
1533
+ } else if ($this->_options['allow'] & self::ALLOW_DNS) {
1534
+ $this->_error(self::INVALID_HOSTNAME);
1535
+ }
1536
+
1537
+ // Check for URI Syntax (RFC3986)
1538
+ if ($this->_options['allow'] & self::ALLOW_URI) {
1539
+ if (preg_match("/^([a-zA-Z0-9-._~!$&\'()*+,;=]|%[[:xdigit:]]{2}){1,254}$/i", $value)) {
1540
+ return true;
1541
+ } else {
1542
+ $this->_error(self::INVALID_URI);
1543
+ }
1544
+ }
1545
+
1546
+ // Check input against local network name schema; last chance to pass validation
1547
+ $regexLocal = '/^(([a-zA-Z0-9\x2d]{1,63}\x2e)*[a-zA-Z0-9\x2d]{1,63}[\x2e]{0,1}){1,254}$/';
1548
+ $status = @preg_match($regexLocal, $value);
1549
+
1550
+ // If the input passes as a local network name, and local network names are allowed, then the
1551
+ // hostname passes validation
1552
+ $allowLocal = $this->_options['allow'] & self::ALLOW_LOCAL;
1553
+ if ($status && $allowLocal) {
1554
+ return true;
1555
+ }
1556
+
1557
+ // If the input does not pass as a local network name, add a message
1558
+ if (!$status) {
1559
+ $this->_error(self::INVALID_LOCAL_NAME);
1560
+ }
1561
+
1562
+ // If local network names are not allowed, add a message
1563
+ if ($status && !$allowLocal) {
1564
+ $this->_error(self::LOCAL_NAME_NOT_ALLOWED);
1565
+ }
1566
+
1567
+ return false;
1568
+ }
1569
+
1570
+ /**
1571
+ * Decodes a punycode encoded string to it's original utf8 string
1572
+ * In case of a decoding failure the original string is returned
1573
+ *
1574
+ * @param string $encoded Punycode encoded string to decode
1575
+ * @return string
1576
+ */
1577
+ protected function decodePunycode($encoded)
1578
+ {
1579
+ if (!preg_match('/^[a-z0-9-]+$/i', $encoded)) {
1580
+ // no punycode encoded string
1581
+ $this->_error(self::CANNOT_DECODE_PUNYCODE);
1582
+ return false;
1583
+ }
1584
+
1585
+ $decoded = array();
1586
+ $separator = strrpos($encoded, '-');
1587
+ if ($separator > 0) {
1588
+ for ($x = 0; $x < $separator; ++$x) {
1589
+ // prepare decoding matrix
1590
+ $decoded[] = ord($encoded[$x]);
1591
+ }
1592
+ }
1593
+
1594
+ $lengthd = count($decoded);
1595
+ $lengthe = strlen($encoded);
1596
+
1597
+ // decoding
1598
+ $init = true;
1599
+ $base = 72;
1600
+ $index = 0;
1601
+ $char = 0x80;
1602
+
1603
+ for ($indexe = ($separator) ? ($separator + 1) : 0; $indexe < $lengthe; ++$lengthd) {
1604
+ for ($old_index = $index, $pos = 1, $key = 36; 1 ; $key += 36) {
1605
+ $hex = ord($encoded[$indexe++]);
1606
+ $digit = ($hex - 48 < 10) ? $hex - 22
1607
+ : (($hex - 65 < 26) ? $hex - 65
1608
+ : (($hex - 97 < 26) ? $hex - 97
1609
+ : 36));
1610
+
1611
+ $index += $digit * $pos;
1612
+ $tag = ($key <= $base) ? 1 : (($key >= $base + 26) ? 26 : ($key - $base));
1613
+ if ($digit < $tag) {
1614
+ break;
1615
+ }
1616
+
1617
+ $pos = (int) ($pos * (36 - $tag));
1618
+ }
1619
+
1620
+ $delta = intval($init ? (($index - $old_index) / 700) : (($index - $old_index) / 2));
1621
+ $delta += intval($delta / ($lengthd + 1));
1622
+ for ($key = 0; $delta > 910 / 2; $key += 36) {
1623
+ $delta = intval($delta / 35);
1624
+ }
1625
+
1626
+ $base = intval($key + 36 * $delta / ($delta + 38));
1627
+ $init = false;
1628
+ $char += (int) ($index / ($lengthd + 1));
1629
+ $index %= ($lengthd + 1);
1630
+ if ($lengthd > 0) {
1631
+ for ($i = $lengthd; $i > $index; $i--) {
1632
+ $decoded[$i] = $decoded[($i - 1)];
1633
+ }
1634
+ }
1635
+
1636
+ $decoded[$index++] = $char;
1637
+ }
1638
+
1639
+ // convert decoded ucs4 to utf8 string
1640
+ foreach ($decoded as $key => $value) {
1641
+ if ($value < 128) {
1642
+ $decoded[$key] = chr($value);
1643
+ } elseif ($value < (1 << 11)) {
1644
+ $decoded[$key] = chr(192 + ($value >> 6));
1645
+ $decoded[$key] .= chr(128 + ($value & 63));
1646
+ } elseif ($value < (1 << 16)) {
1647
+ $decoded[$key] = chr(224 + ($value >> 12));
1648
+ $decoded[$key] .= chr(128 + (($value >> 6) & 63));
1649
+ $decoded[$key] .= chr(128 + ($value & 63));
1650
+ } elseif ($value < (1 << 21)) {
1651
+ $decoded[$key] = chr(240 + ($value >> 18));
1652
+ $decoded[$key] .= chr(128 + (($value >> 12) & 63));
1653
+ $decoded[$key] .= chr(128 + (($value >> 6) & 63));
1654
+ $decoded[$key] .= chr(128 + ($value & 63));
1655
+ } else {
1656
+ $this->_error(self::CANNOT_DECODE_PUNYCODE);
1657
+ return false;
1658
+ }
1659
+ }
1660
+
1661
+ return implode($decoded);
1662
+ }
1663
+
1664
+ /**
1665
+ * Returns true if any DNS records corresponding to a given Internet host are found.
1666
+ * Returns false if no DNS records were found or if an error occurred.
1667
+ * Checks A-Record.
1668
+ *
1669
+ * @param string $hostName
1670
+ *
1671
+ * @return bool
1672
+ */
1673
+ protected function checkDnsRecords($hostName)
1674
+ {
1675
+ if (function_exists('idn_to_ascii')) {
1676
+ $result = checkdnsrr(idn_to_ascii($hostName), 'A');
1677
+ } else {
1678
+ $idn = new Net_IDNA2();
1679
+ $result = checkdnsrr($idn->encode($hostName), 'A');
1680
+ }
1681
+
1682
+ return $result;
1683
+ }
1684
+ }
app/etc/modules/Mage_All.xml CHANGED
@@ -275,7 +275,7 @@
275
  <active>true</active>
276
  <codePool>core</codePool>
277
  <depends>
278
- <Mage_Core/>
279
  </depends>
280
  </Mage_Cms>
281
  <Mage_Reports>
@@ -397,5 +397,12 @@
397
  <Mage_Core/>
398
  </depends>
399
  </Mage_Index>
 
 
 
 
 
 
 
400
  </modules>
401
  </config>
275
  <active>true</active>
276
  <codePool>core</codePool>
277
  <depends>
278
+ <Mage_Uploader/>
279
  </depends>
280
  </Mage_Cms>
281
  <Mage_Reports>
397
  <Mage_Core/>
398
  </depends>
399
  </Mage_Index>
400
+ <Mage_Uploader>
401
+ <active>true</active>
402
+ <codePool>core</codePool>
403
+ <depends>
404
+ <Mage_Core/>
405
+ </depends>
406
+ </Mage_Uploader>
407
  </modules>
408
  </config>
cron.php CHANGED
@@ -44,7 +44,7 @@ Mage::app('admin')->setUseSessionInUrl(false);
44
 
45
  umask(0);
46
 
47
- $disabledFuncs = explode(',', ini_get('disable_functions'));
48
  $isShellDisabled = is_array($disabledFuncs) ? in_array('shell_exec', $disabledFuncs) : true;
49
  $isShellDisabled = (stripos(PHP_OS, 'win') === false) ? $isShellDisabled : true;
50
 
44
 
45
  umask(0);
46
 
47
+ $disabledFuncs = array_map('trim', explode(',', strtolower(ini_get('disable_functions'))));
48
  $isShellDisabled = is_array($disabledFuncs) ? in_array('shell_exec', $disabledFuncs) : true;
49
  $isShellDisabled = (stripos(PHP_OS, 'win') === false) ? $isShellDisabled : true;
50
 
errors/processor.php CHANGED
@@ -232,9 +232,12 @@ class Error_Processor
232
  }
233
 
234
  $isSecure = (!empty($_SERVER['HTTPS'])) && ($_SERVER['HTTPS'] != 'off');
235
- $url = ($isSecure ? 'https://' : 'http://') . $host;
236
 
237
- if (!empty($_SERVER['SERVER_PORT']) && !in_array($_SERVER['SERVER_PORT'], array(80, 433))) {
 
 
 
238
  $url .= ':' . $_SERVER['SERVER_PORT'];
239
  }
240
  return $url;
@@ -439,10 +442,11 @@ class Error_Processor
439
  $this->reportData['url'] = '';
440
  }
441
  else {
442
- $this->reportData['url'] = $this->getHostUrl() . $reportData['url'];
 
443
  }
444
 
445
- if ($this->reportData['script_name']) {
446
  $this->_scriptName = $this->reportData['script_name'];
447
  }
448
  }
@@ -474,7 +478,7 @@ class Error_Processor
474
 
475
  if (headers_sent()) {
476
  print '<script type="text/javascript">';
477
- print "window.location.href = '{$this->reportUrl}';";
478
  print '</script>';
479
  exit;
480
  }
@@ -487,6 +491,7 @@ class Error_Processor
487
  */
488
  public function loadReport($reportId)
489
  {
 
490
  $this->reportId = $reportId;
491
  $this->_reportFile = $this->_reportDir . '/' . $reportId;
492
 
@@ -494,7 +499,14 @@ class Error_Processor
494
  header("Location: " . $this->getBaseUrl());
495
  die();
496
  }
497
- $this->_setReportData(unserialize(file_get_contents($this->_reportFile)));
 
 
 
 
 
 
 
498
  }
499
 
500
  /**
@@ -510,11 +522,11 @@ class Error_Processor
510
  $this->postData['email'] = (isset($_POST['email'])) ? trim(htmlspecialchars($_POST['email'])) : '';
511
  $this->postData['telephone'] = (isset($_POST['telephone'])) ? trim(htmlspecialchars($_POST['telephone'])) : '';
512
  $this->postData['comment'] = (isset($_POST['comment'])) ? trim(htmlspecialchars($_POST['comment'])) : '';
 
513
 
514
  if (isset($_POST['submit'])) {
515
  if ($this->_validate()) {
516
-
517
- $msg = "URL: {$this->reportData['url']}\n"
518
  . "IP Address: {$this->_getClientIp()}\n"
519
  . "First Name: {$this->postData['firstName']}\n"
520
  . "Last Name: {$this->postData['lastName']}\n"
@@ -537,7 +549,7 @@ class Error_Processor
537
  } else {
538
  $time = gmdate('Y-m-d H:i:s \G\M\T');
539
 
540
- $msg = "URL: {$this->reportData['url']}\n"
541
  . "IP Address: {$this->_getClientIp()}\n"
542
  . "Time: {$time}\n"
543
  . "Error:\n{$this->reportData[0]}\n\n"
232
  }
233
 
234
  $isSecure = (!empty($_SERVER['HTTPS'])) && ($_SERVER['HTTPS'] != 'off');
235
+ $url = ($isSecure ? 'https://' : 'http://') . htmlspecialchars($host, ENT_COMPAT | ENT_HTML401, 'UTF-8');
236
 
237
+ if (!empty($_SERVER['SERVER_PORT'])
238
+ && preg_match('/\d+/', $_SERVER['SERVER_PORT'])
239
+ && !in_array($_SERVER['SERVER_PORT'], array(80, 433))
240
+ ) {
241
  $url .= ':' . $_SERVER['SERVER_PORT'];
242
  }
243
  return $url;
442
  $this->reportData['url'] = '';
443
  }
444
  else {
445
+ $this->reportData['url'] = $this->getHostUrl()
446
+ . htmlspecialchars($reportData['url'], ENT_COMPAT | ENT_HTML401, 'UTF-8');
447
  }
448
 
449
+ if (isset($this->reportData['script_name'])) {
450
  $this->_scriptName = $this->reportData['script_name'];
451
  }
452
  }
478
 
479
  if (headers_sent()) {
480
  print '<script type="text/javascript">';
481
+ print "window.location.href = encodeURI('{$this->reportUrl}');";
482
  print '</script>';
483
  exit;
484
  }
491
  */
492
  public function loadReport($reportId)
493
  {
494
+ $reportData = false;
495
  $this->reportId = $reportId;
496
  $this->_reportFile = $this->_reportDir . '/' . $reportId;
497
 
499
  header("Location: " . $this->getBaseUrl());
500
  die();
501
  }
502
+
503
+ $reportContent = file_get_contents($this->_reportFile);
504
+ if (!preg_match('/[oc]:[+\-]?\d+:"/i', $reportContent )) {
505
+ $reportData = unserialize($reportContent );
506
+ }
507
+ if (is_array($reportData)) {
508
+ $this->_setReportData($reportData);
509
+ }
510
  }
511
 
512
  /**
522
  $this->postData['email'] = (isset($_POST['email'])) ? trim(htmlspecialchars($_POST['email'])) : '';
523
  $this->postData['telephone'] = (isset($_POST['telephone'])) ? trim(htmlspecialchars($_POST['telephone'])) : '';
524
  $this->postData['comment'] = (isset($_POST['comment'])) ? trim(htmlspecialchars($_POST['comment'])) : '';
525
+ $url = htmlspecialchars($this->reportData['url'], ENT_COMPAT | ENT_HTML401);
526
 
527
  if (isset($_POST['submit'])) {
528
  if ($this->_validate()) {
529
+ $msg = "URL: {$url}\n"
 
530
  . "IP Address: {$this->_getClientIp()}\n"
531
  . "First Name: {$this->postData['firstName']}\n"
532
  . "Last Name: {$this->postData['lastName']}\n"
549
  } else {
550
  $time = gmdate('Y-m-d H:i:s \G\M\T');
551
 
552
+ $msg = "URL: {$url}\n"
553
  . "IP Address: {$this->_getClientIp()}\n"
554
  . "Time: {$time}\n"
555
  . "Error:\n{$this->reportData[0]}\n\n"
package.xml CHANGED
@@ -1,18 +1,18 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Mage_Core_Modules</name>
4
- <version>1.9.2.4</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Collection of Magento Core Modules</summary>
10
  <description>Collection of Magento Core Modules</description>
11
- <notes>1.9.2.4</notes>
12
  <authors><author><name>Magento Core Team</name><user>core</user><email>core@magentocommerce.com</email></author></authors>
13
- <date>2016-02-17</date>
14
- <time>18:27:39</time>
15
- <contents><target name="magecore"><dir name="Mage"><dir name="Admin"><dir name="Helper"><file name="Block.php" hash="9a1ba075a3e26fe7b3355e3518ecd9f3"/><file name="Data.php" hash="9349200d6f92c46180199ac23f98f7f6"/><dir name="Rules"><file name="Fallback.php" hash="383a4d353d762e1c925071be90cef644"/></dir><file name="Variable.php" hash="05034a643f757264fa384d34c8a38a45"/></dir><dir name="Model"><dir name="Acl"><dir name="Assert"><file name="Ip.php" hash="08ca27c4cb5d661cf244ebb2e6651758"/><file name="Time.php" hash="286d3eb95e0bd7c35303bd1645c6136d"/></dir><file name="Resource.php" hash="0c2dc0fc7553ec1f3edc827f8b315381"/><dir name="Role"><file name="Generic.php" hash="4f1f977403ed910a5753afab02c62b89"/><file name="Group.php" hash="a3eb3645929348237344ab9be05b78b1"/><file name="Registry.php" hash="1a061baac87efc3b82c267d9b496b161"/><file name="User.php" hash="584e727edf544f15e9d9c9f05b12bfdf"/></dir><file name="Role.php" hash="81b9facdda473ecd5d4c0a9831f12f23"/></dir><file name="Acl.php" hash="7d626befb3db46f07bdb75399b4536db"/><file name="Block.php" hash="cba4ab4189cf2a3b1e6a8366c7864ee4"/><file name="Config.php" hash="505e6f9bccb6b1781f006dfa0f277254"/><dir name="Mysql4"><dir name="Acl"><dir name="Role"><file name="Collection.php" hash="335baf1a546832d4430b359d2a14aac3"/></dir><file name="Role.php" hash="57e55b6117759af057407b2b52dca8e5"/></dir><file name="Acl.php" hash="535836809a79d0870f491abe690069d1"/><dir name="Permissions"><file name="Collection.php" hash="5c6808e128191b50f3f0a24d19a874e8"/></dir><dir name="Role"><file name="Collection.php" hash="0b5c5dcf8609974c82a2eb70c44db3a7"/></dir><file name="Role.php" hash="591f9370829d00af7990de49fa5246e5"/><dir name="Roles"><file name="Collection.php" hash="1f7f9e665cedc00597698d7bce6ffcd9"/><dir name="User"><file name="Collection.php" hash="8c744c176b234379a39cc05af2b6df02"/></dir></dir><file name="Roles.php" hash="1924f8555f51b66e3801bfa76690dfd0"/><dir name="Rules"><file name="Collection.php" hash="6eccb4ad5e45096587bec068f34342f0"/></dir><file name="Rules.php" hash="341d66cdfd28daf435517a49600495b3"/><dir name="User"><file name="Collection.php" hash="35a014dcc16e27dc66577c05b0747d46"/></dir><file name="User.php" hash="355610dbcb43e9d5f5fd7f3f78110048"/></dir><file name="Observer.php" hash="8bcd083d383968c893cf98d18eecba8e"/><file name="Redirectpolicy.php" hash="fbeea836834e629f96ddd6949a93e97b"/><dir name="Resource"><dir name="Acl"><dir name="Role"><file name="Collection.php" hash="bd5981e4c77d6c4bb819ac8c6c338c76"/></dir><file name="Role.php" hash="6d50597150e83a920d8e76cb74b4cfcf"/></dir><file name="Acl.php" hash="69d8caefb12003e449573d6ba87864f8"/><dir name="Block"><file name="Collection.php" hash="717351c260e79fa30fbda27111957a99"/></dir><file name="Block.php" hash="ff5550ea7047ffb019c2525c13fc17a9"/><dir name="Permissions"><file name="Collection.php" hash="439684f2b3259ca9e3959ced4aafa335"/></dir><dir name="Role"><file name="Collection.php" hash="15454b8025ed78cea0ce5d84d1e84c42"/></dir><file name="Role.php" hash="c4238cef7a9a25b72f7a9f4cb9b23f1e"/><dir name="Roles"><file name="Collection.php" hash="c1197e710a230d3ec001ae4abc3d9ec5"/><dir name="User"><file name="Collection.php" hash="7e551072e4cc23fcbef082b54b7fa798"/></dir></dir><file name="Roles.php" hash="86589cb054903023aeb3fd2a6015c83c"/><dir name="Rules"><file name="Collection.php" hash="cd0c1e7732bcbc6f9a73b84cecf5fa45"/></dir><file name="Rules.php" hash="b3d01cbc96c2f46f396c0698fc645b4a"/><dir name="User"><file name="Collection.php" hash="0177d1cee326c39536c29fa1879510fd"/></dir><file name="User.php" hash="3e216369763be663ca216f171d6454bc"/><dir name="Variable"><file name="Collection.php" hash="fd9c09d2184f32af4e48a982d0547a58"/></dir><file name="Variable.php" hash="f25a17650d60d5b1911e985fbd6904ea"/></dir><file name="Role.php" hash="2df749650c83f8203857ab6ba9a0bbe0"/><file name="Roles.php" hash="caa2c8b5b1a279297e3bf34cde27a94e"/><file name="Rules.php" hash="a37312eba4a2600a14f5bc81e6ef9a39"/><file name="Session.php" hash="619d5efe81e9ffaf11600b4df2a06352"/><file name="User.php" hash="27155ee9ca41d1d4a3553cf1ea9d3b61"/><file name="Variable.php" hash="6e8f0d0da61445ab9e0042177694881c"/></dir><dir name="data"><dir name="admin_setup"><file name="data-install-1.6.0.0.php" hash="0274ac08aadb4bad103095a11bdaff14"/></dir></dir><dir name="etc"><file name="config.xml" hash="e9ff6df606c3a60b92ae310b7b0ff63e"/></dir><dir name="sql"><dir name="admin_setup"><file name="install-1.6.0.0.php" hash="dbede184c784f531b99227dafaac6c3f"/><file name="mysql4-install-0.7.0.php" hash="ce195263d9a1483e0226725ecba4d280"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="1cc838be0dbfa4a57b367ff3ee852930"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="5f6112ff200e1156f793a88caa7fac7e"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="f4f648587b954ebf087dfcfad2e6e809"/><file name="upgrade-1.6.0.0-1.6.1.0.php" hash="6948bb0b0bf03c1a7a9f6d4992b95c32"/><file name="upgrade-1.6.1.0-1.6.1.1.php" hash="8a227654e1b908e80763a75d47b3219b"/><file name="upgrade-1.6.1.1-1.6.1.2.php" hash="d3e3dc656cb0f7b34c87c3cb57f6aae1"/></dir></dir></dir><dir name="AdminNotification"><dir name="Helper"><file name="Data.php" hash="16e00642e0d71e8f640513fbdce1fc72"/></dir><dir name="Model"><file name="Feed.php" hash="a50e6360e6f862da15017f92112f7089"/><file name="Inbox.php" hash="aa4212b432eb6c0b18d5d10f6d352f43"/><dir name="Mysql4"><dir name="Inbox"><file name="Collection.php" hash="ae2dc8ab53c50a4f2e1076f633050264"/></dir><file name="Inbox.php" hash="9476e2f1f83b120770cbef0fd7d5fbc6"/></dir><file name="Observer.php" hash="ed5d2f6241bc21d23e883afc4dec9c65"/><dir name="Resource"><dir name="Inbox"><file name="Collection.php" hash="45b86c1cc068f343096b176b7e597ac1"/></dir><file name="Inbox.php" hash="3f2ddbba6593c11626e577aee5adc866"/></dir><file name="Survey.php" hash="e8966921b8d2eb22e6b12ecb18244139"/></dir><dir name="etc"><file name="adminhtml.xml" hash="9127e273a03f08d4347096e6191ff1c4"/><file name="config.xml" hash="5e46b7a8603bb7d51093818533d98eef"/><file name="system.xml" hash="f2d8e0d8574e2680f80174341954d01d"/></dir><dir name="sql"><dir name="adminnotification_setup"><file name="install-1.6.0.0.php" hash="f1cfd5293e6997e6ea31d445caf9ff17"/><file name="mysql4-install-1.0.0.php" hash="bc08fe5d5c681ee7bcab1408c6c9dc7d"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="02520528d95f238c32456dc1f0504809"/></dir></dir></dir><dir name="Api"><dir name="Controller"><file name="Action.php" hash="774b4762b850592ab7659fdadb42ed84"/></dir><file name="Exception.php" hash="04fe0ad10ccb52bc9d66117e1ea8daf9"/><dir name="Helper"><file name="Data.php" hash="44c338b1e68841c25890cc25032bc92a"/></dir><dir name="Model"><dir name="Acl"><dir name="Assert"><file name="Ip.php" hash="c76874e041338f1a3a18da71bdd1124d"/><file name="Time.php" hash="5603cda1204e4270d92f67290f8b3882"/></dir><file name="Resource.php" hash="5536d4853e1e6ac50083dd48d12bb380"/><dir name="Role"><file name="Generic.php" hash="2f84ba87bd7d3a9ea0ae873bac95b970"/><file name="Group.php" hash="c8b844aaa124f8afa38e943f5fb7333a"/><file name="Registry.php" hash="0cf99ee44b46f1fd5abb01332d9176e3"/><file name="User.php" hash="c714175423aabf8a234c658966238574"/></dir><file name="Role.php" hash="89767b0b806ae6f6402b9dc357783d3e"/></dir><file name="Acl.php" hash="d3caadef3aaab9e8dada1f584184b6da"/><file name="Config.php" hash="e6108699ce87d3ca39462e70356fc0f7"/><dir name="Mysql4"><dir name="Acl"><dir name="Role"><file name="Collection.php" hash="29ee5de0d8a07033e66fe43f9046f3f7"/></dir><file name="Role.php" hash="606f2c8ccb598d3e3c8f3ed5bcf289f4"/></dir><file name="Acl.php" hash="e933dfe905bbdafed8e42b76b08a80f6"/><dir name="Permissions"><file name="Collection.php" hash="8f0cafdaf2c39d0b7b25addff48e3060"/></dir><dir name="Role"><file name="Collection.php" hash="65b742dffa3ce6881c55a27657bcd24e"/></dir><file name="Role.php" hash="5f635063dedb356c61da9062444228ea"/><dir name="Roles"><file name="Collection.php" hash="f3a0e95e05b018836a959d22fed1b3a7"/><dir name="User"><file name="Collection.php" hash="27c1248a4b9a201a3fde0bc1aa0b3006"/></dir></dir><file name="Roles.php" hash="78ca14d1032e095ee37c1ed027bbe8a3"/><dir name="Rules"><file name="Collection.php" hash="2bf02138aaf50a5786e8a9f9b944bb1e"/></dir><file name="Rules.php" hash="d6945e76e07b77f993f277162f75ca4e"/><dir name="User"><file name="Collection.php" hash="482d52e463eda673177bfa5b28d62171"/></dir><file name="User.php" hash="e56215febfa2bff9b644c1c422b05d20"/></dir><dir name="Resource"><file name="Abstract.php" hash="8afd58116d69d4f8cb00045e809fa065"/><dir name="Acl"><dir name="Role"><file name="Collection.php" hash="e2a0a2811e5b14b041114ab1b54b0caf"/></dir><file name="Role.php" hash="3d48c43b4d9f76f1eb1e4d3d354146f0"/></dir><file name="Acl.php" hash="0f8f6aa57d0c9d21db67c6c694f54b99"/><dir name="Permissions"><file name="Collection.php" hash="48faac14df91a789288ef14863f23415"/></dir><dir name="Role"><file name="Collection.php" hash="358cfbd02523e45ac3a13230019a9855"/></dir><file name="Role.php" hash="f12e74794a4897e7df96f05507a95679"/><dir name="Roles"><file name="Collection.php" hash="d245ece070acf720da2e4e88cd1e6157"/><dir name="User"><file name="Collection.php" hash="45839c5e6c4eb16d669d0cb61791b51c"/></dir></dir><file name="Roles.php" hash="2378dd2f701d20222a9089c48f13d32d"/><dir name="Rules"><file name="Collection.php" hash="92ab48e1ec2d99c432e25e9c3e8b4bca"/></dir><file name="Rules.php" hash="cfaef65cfd5ac344fca073aa803bf070"/><dir name="User"><file name="Collection.php" hash="d7dfaa41c6f8c576ecc78124926da9ab"/></dir><file name="User.php" hash="68f0455fadd667de2c49b361c0c63b48"/></dir><file name="Role.php" hash="65d1434ddb3bd361a08126b6a8ed2739"/><file name="Roles.php" hash="399af59b973909e92fd63620ca0ac949"/><file name="Rules.php" hash="4ca5eaf6cef0ab6ec8db507620d7fb89"/><dir name="Server"><dir name="Adapter"><file name="Interface.php" hash="64124b37d8a9686866695c823d80713c"/><file name="Soap.php" hash="89d4a8211e292c4fe2567fa52cb5292a"/><file name="Xmlrpc.php" hash="a3bea0dc8c3045630f9ba479cfe89b1f"/></dir><dir name="Handler"><file name="Abstract.php" hash="1794ca9a35ee8bc8f30703fab4ee36e3"/></dir><file name="Handler.php" hash="f4be1b5c2758e3a921387b3933f7dcdc"/><dir name="V2"><dir name="Adapter"><file name="Soap.php" hash="2626e0417ea86b2f80a8f3832b3e18df"/></dir><file name="Handler.php" hash="bdc40c4c23dc5ab6889ea72baa64684c"/></dir><dir name="Wsi"><dir name="Adapter"><file name="Soap.php" hash="f58b7e580026a274b9afd4a4ad56c95b"/></dir><file name="Handler.php" hash="6c260b6ef745ee4acb5a585c110baa71"/></dir></dir><file name="Server.php" hash="3757b660bf81e78572ee4a16df10f61d"/><file name="Session.php" hash="08135d3e54cf10a7fc44f628c0ce51b8"/><file name="User.php" hash="873676067466da34a16ca124830bb4ac"/><dir name="Wsdl"><dir name="Config"><file name="Base.php" hash="02fea248877a1a4a36bc97f2ab5971ce"/><file name="Element.php" hash="11e2d31cd86e888f4cf90613e3e9af9f"/></dir><file name="Config.php" hash="e64dbce8fd9d9bb1e8fdc4651d85959a"/></dir></dir><dir name="controllers"><file name="IndexController.php" hash="2c0689b165c97288b2e8c7f1ea7fccb2"/><file name="SoapController.php" hash="7bcebcfc203e99777804ee9fc0bb46f4"/><dir name="V2"><file name="SoapController.php" hash="78d4a08f6a1369366ae349868965ab98"/></dir><file name="XmlrpcController.php" hash="ba4e2f4fd37b0375a77140340ff99b37"/></dir><dir name="etc"><file name="adminhtml.xml" hash="1fa3c950da0464651007e8cd33f294b0"/><file name="api.xml" hash="16477872502aa7fee7b6e4ee85eb6d53"/><file name="config.xml" hash="d994cc2976bc842b796bc216af4ecabf"/><file name="system.xml" hash="d8d0ef91b865535c4f407f2eed075d7b"/><file name="wsdl.xml" hash="f0db676b04733b38f310355bb44bc3cb"/><file name="wsdl2.xml" hash="7d527421ba4b63a8a812ab6b1095891d"/><file name="wsi.xml" hash="9fb1700cf935a26e7fada90a07fae7fe"/></dir><dir name="sql"><dir name="api_setup"><file name="install-1.6.0.0.php" hash="9224f4bc3e4624a4b39829cd360f0469"/><file name="mysql4-install-0.7.0.php" hash="78a15f73deb0367b6902c80696ef0e62"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="59162c64de079f98682f67314851c92c"/><file name="mysql4-upgrade-0.8.0-0.8.1.php" hash="a76c976e331986d6249c15b79ec71cfe"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="c4b533ec0c78967c59942b8143936b97"/><file name="mysql4-upgrade-1.6.0.0-1.6.0.1.php" hash="ef060441ba7f33213e0a3aaf59a0266c"/></dir></dir></dir><dir name="Api2"><dir name="Block"><dir name="Adminhtml"><dir name="Attribute"><file name="Buttons.php" hash="30e7a5d3a1c83ef1df1b675173baa6dd"/><dir name="Edit"><file name="Form.php" hash="9da5d9bc5715ae0ae289a7646e27be85"/></dir><file name="Edit.php" hash="7ce77055d120c65648c1107fb2e5fc6a"/><file name="Grid.php" hash="770f37ab1ab5f7296cdd10e986a67e88"/><dir name="Tab"><file name="Resource.php" hash="69c35aa360066c71e6364d96fac6435c"/></dir><file name="Tabs.php" hash="6aea7548a023162ddc82e75e84cf8674"/></dir><file name="Attribute.php" hash="98679bff19e5a631eaa9e0c6cabc99ca"/><dir name="Permissions"><dir name="User"><dir name="Edit"><dir name="Tab"><file name="Roles.php" hash="b2acfc86b799efd51c7e76e10a2f7b5b"/></dir></dir></dir></dir><dir name="Roles"><file name="Buttons.php" hash="92a73c35cae3662229878c90d2e24fe8"/><file name="Grid.php" hash="215301b76a9a363c1253ec0377859241"/><dir name="Tab"><file name="Info.php" hash="3a4dacbc8eae6f0f35019df6912e89ad"/><file name="Resources.php" hash="2fd39485229e2d8f85b91d2ae7c4a862"/><file name="Users.php" hash="52ab2220a81f0e269f176e0d5615e8f7"/></dir><file name="Tabs.php" hash="5c4a34538372055306c8e7da3a8a5bde"/></dir><file name="Roles.php" hash="76bbcde1a4cbbfaa68890b7b6514b561"/></dir></dir><file name="Exception.php" hash="8e66157a187c75b217f4fc7ec56f3826"/><dir name="Helper"><file name="Data.php" hash="87e59f1ae52509cb875ab25365d6e351"/></dir><dir name="Model"><dir name="Acl"><dir name="Filter"><dir name="Attribute"><file name="Operation.php" hash="02a577838191e96fc389578891359dee"/><file name="ResourcePermission.php" hash="c0f28749c7ac8039df60f8e8ce3a4b45"/></dir><file name="Attribute.php" hash="9bd5d7c9a4818b3cd1616ae1391ddd19"/></dir><file name="Filter.php" hash="929e44dd71dcd3f25405933f14089b02"/><dir name="Global"><file name="Role.php" hash="c46376eceb36ca5d32e9582a1f5b4af4"/><dir name="Rule"><file name="Permission.php" hash="687b8715aa27e61ed516c53162775b57"/><file name="Privilege.php" hash="3d2975048cefa0226e59cd084fbcfdd7"/><file name="ResourcePermission.php" hash="a44cdbbafaf12ee628fec8ac8ba8a0ba"/><file name="Tree.php" hash="2358b8723c6e9bee54b3ea9fd7d0d953"/></dir><file name="Rule.php" hash="95040ad8b86317eb060569c28b16410b"/></dir><file name="Global.php" hash="0d95e4be423febd261812ceb03847411"/><file name="PermissionInterface.php" hash="11d294d4927d5070933d34ef2711eac9"/></dir><file name="Acl.php" hash="2ffa26f03192a669d9c86dbe724f46cd"/><dir name="Auth"><dir name="Adapter"><file name="Abstract.php" hash="e76e604f005c4dc398292c2acc00a4fc"/><file name="Oauth.php" hash="894fbacf6e21a7efeab9a0a9db946650"/></dir><file name="Adapter.php" hash="f3cbea7d5ab8b09386dc67fd107aa7d2"/><dir name="User"><file name="Abstract.php" hash="ad4d2f0c4d03eadbb81dcfbfbe4273ad"/><file name="Admin.php" hash="25e7646a77954a5784120335d13ef388"/><file name="Customer.php" hash="179a03eaa77810a013563fca02a56623"/><file name="Guest.php" hash="e572d1c2acf5facef9187d1cfe6aece6"/></dir><file name="User.php" hash="4f28b0c1bc6e6f71a0bf6a09a7a27773"/></dir><file name="Auth.php" hash="5e8ff5e0a305081a8319b2bf24496b1d"/><file name="Config.php" hash="0955d6231212120e16a5c2e7f21463a0"/><file name="Dispatcher.php" hash="1f61a75165aa48c8c97c16e72f1338d4"/><file name="Multicall.php" hash="c4741cbd2ebed177654a699ce15312e9"/><file name="Observer.php" hash="ab5efc3be71db1b54fb9f4858cd3beca"/><dir name="Renderer"><file name="Interface.php" hash="17d1ea9e291a600dd7f98a941a8945ba"/><file name="Json.php" hash="5fd32d14bd18d550ba78e9a9e901722e"/><file name="Query.php" hash="d7ea3556aaefe6c400510466a7f15077"/><dir name="Xml"><file name="Writer.php" hash="c2b3024abe24d48eac4d6bcc0f4e85e7"/></dir><file name="Xml.php" hash="fcd74870b09eb236ce768bb81b2466b9"/></dir><file name="Renderer.php" hash="7f9de64648eca506571a5156e51672c9"/><dir name="Request"><file name="Internal.php" hash="5b2981aacf6234be279b29c7eaa7bc39"/><dir name="Interpreter"><file name="Interface.php" hash="adf1d99caf07e26de34373618d1eeb7e"/><file name="Json.php" hash="759806f32a2f717d90e57657fdc2e703"/><file name="Query.php" hash="130b11ea74e1d91d9637abc5d877b218"/><file name="Xml.php" hash="3bbd3aae616947cfab67af3417e8bc73"/></dir><file name="Interpreter.php" hash="108d88f20c84667266bdeeae0f566ad0"/></dir><file name="Request.php" hash="6152f16393d2f6600131ce075be99627"/><dir name="Resource"><dir name="Acl"><dir name="Filter"><dir name="Attribute"><file name="Collection.php" hash="665ff0a1ef0b44ce90c6827fa7aee98f"/></dir><file name="Attribute.php" hash="0b1dd9c5e804f2d74f035280808e3096"/></dir><dir name="Global"><dir name="Role"><file name="Collection.php" hash="8d49bb4b7350e5143a66ac6ede38a451"/></dir><file name="Role.php" hash="208b98f459bc1efa86679e889ad1c5c1"/><dir name="Rule"><file name="Collection.php" hash="cfa58d513a38612949c71087500a9a72"/></dir><file name="Rule.php" hash="1f72374898d0ee315fe11ca122ea4bc5"/></dir></dir><file name="Setup.php" hash="d3f2fe1dd0355d83243d16dcae070bab"/><dir name="Validator"><file name="Eav.php" hash="85530468f643d51545bfb026ea31c60b"/><file name="Fields.php" hash="669ab0efb47133f83250847f032f1c37"/></dir><file name="Validator.php" hash="b4728be46e9e8b46f46af0478dcd8449"/></dir><file name="Resource.php" hash="0c8dcd44c2d03e288b985f976650c3ec"/><file name="Response.php" hash="0fbabaec58d372103b7863f6a27ec143"/><dir name="Route"><file name="Abstract.php" hash="1a27c8f502aee85f52c0b9a994ea204f"/><file name="ApiType.php" hash="6a0ec483520e9983f2cb40b5dd17fd8d"/><file name="Interface.php" hash="374d8c631c5e8adae4f11a5f11b4537b"/><file name="Rest.php" hash="cd9a94ad7d40766cb62a50a60c3dba32"/></dir><file name="Router.php" hash="fd7c3235d8dae9bf2fc8dff91472fb5c"/><file name="Server.php" hash="9ac47ece0cdc38b210dcb7df6d8c1ced"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Api2"><file name="AttributeController.php" hash="347953872ae6d5e90b16561388e6848f"/><file name="RoleController.php" hash="d27833725254f6fc12a799efd2510973"/></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="ad36dd3cd7d6e5d120bb9e7c15e11ff1"/><file name="config.xml" hash="4821abb0ebec976548c9e30d30a2b213"/></dir><dir name="sql"><dir name="api2_setup"><file name="install-1.0.0.0.php" hash="592bbea52850ec9fc91066bff5508914"/></dir></dir></dir><dir name="Authorizenet"><dir name="Block"><dir name="Directpost"><file name="Form.php" hash="9dc667687a53dd0017fa7cded230b4f1"/><file name="Iframe.php" hash="5ae85348c16639f2006542866f798d66"/></dir></dir><dir name="Helper"><file name="Admin.php" hash="ead9dd582ab6f747f2466c996b50aa31"/><file name="Data.php" hash="5440d68161cc5379507c6a0771bc7f42"/></dir><dir name="Model"><dir name="Directpost"><file name="Observer.php" hash="0fd3c47026cdba1c36b4aa5e8f43500e"/><file name="Request.php" hash="7a968e895e936e86b4e0488537e45587"/><file name="Response.php" hash="a136dcb41d52650f99036483b81d27fc"/><file name="Session.php" hash="b96a36a37ede54e2af70ed3f28c90413"/></dir><file name="Directpost.php" hash="b6869c83e477ab7f5d0590c1aeb0d856"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Authorizenet"><dir name="Directpost"><file name="PaymentController.php" hash="c49edc9dba097d0757eeefd8a00d2086"/></dir></dir></dir><dir name="Directpost"><file name="PaymentController.php" hash="e7e5bb728fda361ef16911f123e50e0c"/></dir></dir><dir name="etc"><file name="config.xml" hash="316742cf75cd9a1d8e31621757eafdb2"/><file name="system.xml" hash="772679033f6a49116ba41a49da828f3c"/></dir></dir><dir name="Backup"><file name="Exception.php" hash="1d9584b08582ee0931ae942ddc597056"/><dir name="Helper"><file name="Data.php" hash="9c4b278a8188970834ea3264dca74197"/></dir><dir name="Model"><file name="Backup.php" hash="163966b51cb4df0584200c39375b21ae"/><dir name="Config"><dir name="Backend"><file name="Cron.php" hash="ed07667ca13aa89805ebb7136d0dcd71"/></dir><dir name="Source"><file name="Type.php" hash="ed9703bce1523c0c634e862c7ad70f5e"/></dir></dir><file name="Db.php" hash="d35147f61a16f6e4d58969ae58205907"/><dir name="Fs"><file name="Collection.php" hash="d2e6b760f5050792712b1d79c35dfc68"/></dir><dir name="Mysql4"><file name="Db.php" hash="11fec4cd1cde22cf681bf8b4780c0a09"/></dir><file name="Observer.php" hash="03078671713743c8c8e97a717c2e80c2"/><dir name="Resource"><file name="Db.php" hash="35961c796f60164427dcd9ce6a1c87b9"/><dir name="Helper"><file name="Mysql4.php" hash="4d24628fa1b2890c91d8048cd65fd7da"/></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="e48cb7bbc9b47dc55c11205716a727ad"/><file name="config.xml" hash="bbef782377f0d496a05daa4ab71473d7"/><file name="system.xml" hash="e461e31f4a3d7a05ebe6398bea5ec004"/></dir></dir><dir name="Bundle"><dir name="Block"><dir name="Adminhtml"><dir name="Catalog"><dir name="Product"><dir name="Composite"><dir name="Fieldset"><file name="Bundle.php" hash="d1a01550cc44852c92276e95e161f44a"/><dir name="Options"><dir name="Type"><file name="Checkbox.php" hash="72b0fdbe208a568907ca6e03b6cc4970"/><file name="Multi.php" hash="b50b7d8093326d9c5ba76c907b3707b6"/><file name="Radio.php" hash="c3510dc759996779d7e70bec6c05a1bc"/><file name="Select.php" hash="b6719e8406961f0c5cbae9d6bbdaa973"/></dir></dir></dir></dir><dir name="Edit"><dir name="Tab"><dir name="Attributes"><file name="Extend.php" hash="c7177a24ec87ff4c63620754314fbf61"/><file name="Special.php" hash="edc5952b3071bb875c24e1a81d05d2fb"/></dir><file name="Attributes.php" hash="bee0b7319b1409fcd5817e112d2180e0"/><dir name="Bundle"><dir name="Option"><dir name="Search"><file name="Grid.php" hash="1119c21a96470f11950d7d84f65a221a"/></dir><file name="Search.php" hash="665485b2d6f20f2b715f7243c3f5d9b6"/><file name="Selection.php" hash="b2b8cf4675d04f1264a3c4a04ed2dca7"/></dir><file name="Option.php" hash="1dd71760cbe26ee1fabc3e3299bbb9fb"/></dir><file name="Bundle.php" hash="55373aaaa8f72c91051e678f03ba5029"/></dir><file name="Tabs.php" hash="9296e80b1084b9a8dc6bd1c4ce2062e1"/></dir></dir></dir><dir name="Sales"><dir name="Order"><dir name="Items"><file name="Renderer.php" hash="34710f3c5f673268d1d13a74d50c1caf"/></dir><dir name="View"><dir name="Items"><file name="Renderer.php" hash="73a0c1e6afe739b78ca2237ef2cece89"/></dir></dir></dir></dir></dir><dir name="Catalog"><dir name="Product"><dir name="List"><file name="Partof.php" hash="62d55ff286597964b23ebb4bbb73f8d5"/></dir><file name="Price.php" hash="13955390c1c20f705be3b7f6a7224368"/><dir name="View"><dir name="Type"><dir name="Bundle"><dir name="Option"><file name="Checkbox.php" hash="7703ad9fc12df82467b1269c25bcf50c"/><file name="Multi.php" hash="cd5638f49dd792c79fa448650021d40c"/><file name="Radio.php" hash="46f0caaedeb69fbb3f7307a250c6176e"/><file name="Select.php" hash="07bbb86c3bd29f4856bbbfcb47607e0e"/></dir><file name="Option.php" hash="5063d4fe519483fe11581e326085dfe5"/></dir><file name="Bundle.php" hash="85dc00e3c6624bd8f946577289d8d120"/></dir></dir><file name="View.php" hash="dbd39805a66f8efa5923826033520c1c"/></dir></dir><dir name="Checkout"><dir name="Cart"><dir name="Item"><file name="Renderer.php" hash="92eecf3508f521f28c4332b143139d2b"/></dir></dir></dir><dir name="Sales"><dir name="Order"><dir name="Items"><file name="Renderer.php" hash="1cbdc643a998d58bc27d33977ab6247e"/></dir></dir></dir></dir><dir name="Helper"><dir name="Catalog"><dir name="Product"><file name="Configuration.php" hash="3043d1b7f4599a49b37bc5f6a935a7aa"/></dir></dir><file name="Data.php" hash="9b51be0fea4acbedc363240046c243af"/></dir><dir name="Model"><dir name="CatalogIndex"><dir name="Data"><file name="Bundle.php" hash="08fcad235cc860bebf0e43dd9336d329"/></dir></dir><dir name="Mysql4"><file name="Bundle.php" hash="a105d7dd3f8efeddf367ce54c3bf27dc"/><dir name="Indexer"><file name="Price.php" hash="a49e39a23e70132f0ae71080b944bcdb"/><file name="Stock.php" hash="871b4097d83cbee3008e89ac6f440406"/></dir><dir name="Option"><file name="Collection.php" hash="30d6be1fbbe1ade58485f739f8ad453d"/></dir><file name="Option.php" hash="1795c05a00627e4ae2780198ed21cc3b"/><dir name="Price"><file name="Index.php" hash="14edc32b873efbaf576ff7afe5bddb17"/></dir><dir name="Selection"><file name="Collection.php" hash="a8fcdb51475db3cca91c117aadb4b32a"/></dir><file name="Selection.php" hash="b67d2542e335ac673b98208e8583bcf7"/></dir><file name="Observer.php" hash="e71e6581febdffc6db50b198c051b628"/><file name="Option.php" hash="2aafa265c1a09ca14873789c24081152"/><dir name="Price"><file name="Index.php" hash="8295fe309a878eb9b2b2cacc81177cbc"/></dir><dir name="Product"><dir name="Attribute"><dir name="Source"><dir name="Price"><file name="View.php" hash="40936c9f32040f4fbe9757f3038f2e6e"/></dir></dir></dir><file name="Price.php" hash="8300e53a3d8ba6480a674bb5a7f7a09d"/><file name="Type.php" hash="f795e704b950d1062789735506e07965"/></dir><dir name="Resource"><file name="Bundle.php" hash="dac365d9b9dc19ae98504b7a354fdfaa"/><dir name="Indexer"><file name="Price.php" hash="09346af9318133cdcd4bfe07ef2409b4"/><file name="Stock.php" hash="1d2a9f422efd1a85d4edf75ee67ef790"/></dir><dir name="Option"><file name="Collection.php" hash="85c0a9674eee8735fb0b674f2b69cd97"/></dir><file name="Option.php" hash="04f9d973469beb08582b72c285815fe0"/><dir name="Price"><file name="Index.php" hash="0d623baf6d9f22212eff19075e38030a"/></dir><dir name="Selection"><file name="Collection.php" hash="86fd88e9420793830e08ae09da4ad6bd"/></dir><file name="Selection.php" hash="4b11349866beaf419718e435ba6f7800"/></dir><dir name="Sales"><dir name="Order"><dir name="Pdf"><dir name="Items"><file name="Abstract.php" hash="6e94008eaed3489d1ce78686f9160a65"/><file name="Creditmemo.php" hash="7a009148c167f32c8d64c52e8a1467d1"/><file name="Invoice.php" hash="a37bebede91906ec96d949d0555b3a3f"/><file name="Shipment.php" hash="2d76cd2a857c85297b76519c919e91f1"/></dir></dir></dir></dir><file name="Selection.php" hash="df581745d68a5f9c1b2512b83e1ef5c5"/><dir name="Source"><dir name="Option"><dir name="Selection"><dir name="Price"><file name="Type.php" hash="4d1dba02f19be6162f4c041088b53861"/></dir></dir><file name="Type.php" hash="de0061e8100adf8c073f82f35344cd2c"/></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Bundle"><dir name="Product"><file name="EditController.php" hash="7b354c43663ae7359b5357674883d16f"/></dir><file name="SelectionController.php" hash="b420a1ca332482c3bc55b5d2fcdfaa8f"/></dir></dir><dir name="Product"><file name="EditController.php" hash="d2bf3045167b891f534a3c490901bf94"/></dir><file name="SelectionController.php" hash="9348a022b8d2a28b7bc9e2aaac2e8ac6"/></dir><dir name="data"><dir name="bundle_setup"><file name="data-install-1.6.0.0.php" hash="6edda03943c56b8077f77340b67694e0"/></dir></dir><dir name="etc"><file name="config.xml" hash="2f8a1d2fbf06b32f1a32fc893b47ca3b"/></dir><dir name="sql"><dir name="bundle_setup"><file name="install-1.6.0.0.php" hash="9fc392edbf05d6c30ba9f265892014ef"/><file name="mysql4-data-upgrade-0.1.13-0.1.14.php" hash="4dab0c1d90a659ff1e1f94c1e9acb132"/><file name="mysql4-install-0.1.0.php" hash="82c9663f990f4e9ae9a75c26e3979b23"/><file name="mysql4-upgrade-0.1.0-0.1.1.php" hash="20e77245c14eb8059b187264e8152e29"/><file name="mysql4-upgrade-0.1.1-0.1.2.php" hash="85b79bb079050cbd190bde83a280783f"/><file name="mysql4-upgrade-0.1.10-0.1.11.php" hash="2151261f762c2562d561569e14c6d9a8"/><file name="mysql4-upgrade-0.1.11-0.1.12.php" hash="212828a3289510319fd7479e9251b270"/><file name="mysql4-upgrade-0.1.12-0.1.13.php" hash="b92eb535f69cc85034592088f696eaf4"/><file name="mysql4-upgrade-0.1.2-0.1.3.php" hash="9b83041cd925624e8a80a965c16e9380"/><file name="mysql4-upgrade-0.1.3-0.1.4.php" hash="ae04d9a83330f2706b2e62b172efea3f"/><file name="mysql4-upgrade-0.1.4-0.1.5.php" hash="f0ac187df40e0f6d202faedcc17d9292"/><file name="mysql4-upgrade-0.1.5-0.1.6.php" hash="13940f417ccbdff869375925e41972e9"/><file name="mysql4-upgrade-0.1.6-0.1.7.php" hash="32377c2202aae4b003943383315634d4"/><file name="mysql4-upgrade-0.1.7-0.1.8.php" hash="75110184a452c033ae19cdecc77a3e17"/><file name="mysql4-upgrade-0.1.8-0.1.9.php" hash="81d93640a1700e63de5046e1a774de77"/><file name="mysql4-upgrade-0.1.9-0.1.10.php" hash="6a9b12e735a6a3fc0be490019487295a"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="bfdb71af0a3fa27111431c4e66ad5f00"/><file name="mysql4-upgrade-1.6.0.0-1.6.0.0.1.php" hash="1a4e94847369b5ccf118cd1e96797fc7"/><file name="upgrade-1.6.0.0-1.6.0.0.1.php" hash="63e676fd5c7cae10ac232c732807ca6d"/></dir></dir></dir><dir name="Captcha"><dir name="Block"><dir name="Captcha"><file name="Zend.php" hash="e3140ff48b0ebf607d5ff1702b823eb1"/></dir><file name="Captcha.php" hash="197d8bf48a7a236f840c9b9052a519a0"/></dir><dir name="Helper"><file name="Data.php" hash="cb661b87e454aefb55ad1b48f872af86"/></dir><dir name="Model"><dir name="Config"><file name="Font.php" hash="564160d4501a0983d247e94142f49bc1"/><dir name="Form"><file name="Abstract.php" hash="690bff323d84194efd1c300d2fb2c57b"/><file name="Backend.php" hash="da613c3fed8fb74fd5bc976646cc9d56"/><file name="Frontend.php" hash="b3088a0b9df26a2e1ba3f3c97139ca38"/></dir><file name="Mode.php" hash="e429bbf441d140df0f77ff123dcdac8d"/></dir><file name="Interface.php" hash="3d00e72f1a02fc1f7b63ea4ef747ba18"/><file name="Observer.php" hash="659576bf1859959b5b890eaf0e3ed887"/><dir name="Resource"><file name="Log.php" hash="24b083056fcb18954a72c87eb67421a9"/></dir><file name="Zend.php" hash="62867a57ba8e68a150055b5a4db9ee6a"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="RefreshController.php" hash="54b78c3619e28c26585e6111bd90450f"/></dir><file name="RefreshController.php" hash="6702b9e4aaac22baad8a29030b956742"/></dir><dir name="etc"><file name="config.xml" hash="587c37a06b7bd60161c9c3d793d070f2"/><file name="system.xml" hash="edeedb1737798eda557aa9c5faf09b8f"/></dir><dir name="sql"><dir name="captcha_setup"><file name="install-1.7.0.0.0.php" hash="6e8d794f94dadd6f266c7fe329e9eef7"/></dir></dir></dir><dir name="Catalog"><dir name="Block"><file name="Breadcrumbs.php" hash="dab2381718549050f05cbb86706b7e5e"/><dir name="Category"><file name="View.php" hash="f14a047e957430565a3292784ec3c9b8"/><dir name="Widget"><file name="Link.php" hash="bad2d201324e439074ec22972d1e3972"/></dir></dir><dir name="Layer"><dir name="Filter"><file name="Abstract.php" hash="eefcbcb98818b2ae12e3506aada0c913"/><file name="Attribute.php" hash="d5bd80637bf7dd879ade11e6259f05d6"/><file name="Category.php" hash="06f66db270055c1153068ec990c54df5"/><file name="Decimal.php" hash="29865012d50a70ab2d144e4c0cb8ac9d"/><file name="Price.php" hash="5636ca99c6588924845c484594f1e873"/></dir><file name="State.php" hash="a9c13d850f4607a04d1c428e98a2c4c9"/><file name="View.php" hash="11e3c1f24d801f6431e3be49aca41583"/></dir><file name="Navigation.php" hash="89f15c96eb17886c364ddf87d4e456a4"/><dir name="Product"><file name="Abstract.php" hash="d9507147f34f1179a6330011706a3705"/><dir name="Compare"><file name="Abstract.php" hash="c48b7dab6bee655b6eadd762fd242606"/><file name="List.php" hash="f3cb7750c7227edd3b87e33ebe46cab3"/><file name="Sidebar.php" hash="aac8306a9e8613dfc7f2a0dc36b04398"/></dir><file name="Gallery.php" hash="357c7d68ef3eff66f551627a5d5d0467"/><dir name="List"><file name="Crosssell.php" hash="876a23484f926c2e29d2ec07a571dfc8"/><file name="Promotion.php" hash="f4bb4b4626b8a15443a4ae04bef9ae0e"/><file name="Random.php" hash="3541c59092f62a31889e5aebb00456d4"/><file name="Related.php" hash="f20a66f4de9ae05a91ca2091633ef51d"/><file name="Toolbar.php" hash="860922416d2d9ab6cb606e349ce4cc86"/><file name="Upsell.php" hash="955a21e298fd8d6ab05b4a71bdde936a"/></dir><file name="List.php" hash="37b2ef7921f5bcdea08faa7dfa24525c"/><file name="New.php" hash="1660afbb4e83ff8f7218c91c5c6aafcf"/><dir name="Price"><file name="Template.php" hash="174757929a4637d3d4569b7804409562"/></dir><file name="Price.php" hash="eeed225d412451fec2f937bce058dbb0"/><file name="Send.php" hash="563e1e0b47de6cded50958fc8ba7c943"/><dir name="View"><file name="Abstract.php" hash="b22e9d718bf41c5382c4dc58cc003f8b"/><file name="Additional.php" hash="64048a426caafbf36d41dab9e077dc84"/><file name="Attributes.php" hash="b9eb935b62dc4693f15604a3737b76e8"/><file name="Description.php" hash="62bcfd7556f13279339e0f8953b22e7f"/><file name="Media.php" hash="4e576e71f469f2210808ef5df5827246"/><dir name="Options"><file name="Abstract.php" hash="ee57d5767122bb1fc496aee7bdeec76a"/><dir name="Type"><file name="Date.php" hash="21eca2c2db2061b75cf944f1d8fd4a94"/><file name="Default.php" hash="d643f7ddf73ab70e504fd70a5c1460a7"/><file name="File.php" hash="407e9c7d21b1f8c8a7ba830487ce9e94"/><file name="Select.php" hash="cbe99df038ac71aca106800fc39f22b7"/><file name="Text.php" hash="8a74862cba8bf5aa680c5f9104bea6f6"/></dir></dir><file name="Options.php" hash="ff35316d33688661240c14d9dc567c05"/><file name="Price.php" hash="1f6e98dfdae3f71d86a84eef7ea98e90"/><file name="Tabs.php" hash="11630345e930dbcf6e9729a16b09a589"/><dir name="Type"><file name="Configurable.php" hash="df66e796afaa342e19e0b43dbe7f2f35"/><file name="Grouped.php" hash="b131a8ec490670de0b7a0043f23d6707"/><file name="Simple.php" hash="4e2214d776eca1f2baae3b6774f7f2af"/><file name="Virtual.php" hash="df4a51eec042f9024c6dd9086456d93e"/></dir></dir><file name="View.php" hash="756eb39b2cf56c4159765636f036889c"/><dir name="Widget"><dir name="Html"><file name="Pager.php" hash="e59c96a77fa455d8a2aeb09b15f0a234"/></dir><file name="Link.php" hash="2502953b5e8b48182daa221517ea76f9"/><file name="New.php" hash="4a9a8981957dc0511cece8c9a6f498e3"/></dir></dir><file name="Product.php" hash="4444c47b16af1ee34a1c77aff29dd3f5"/><dir name="Seo"><dir name="Sitemap"><file name="Abstract.php" hash="5c0e40f42669d48af47b389a28501475"/><file name="Category.php" hash="b5ac1974fe6256597bd24f4b15484ef5"/><file name="Product.php" hash="df73746b3b434bf7d893afb16146ef27"/><dir name="Tree"><file name="Category.php" hash="b5512d7fe864e588c070ff10dbe8ce3a"/><file name="Pager.php" hash="fb5588cd7322c23026f27638a45c8d65"/></dir></dir></dir><dir name="Widget"><file name="Link.php" hash="d2c57e7e866c3bba797b9ae3780afb47"/></dir></dir><file name="Exception.php" hash="32ae17c72416f6c75b88e74776a42a17"/><dir name="Helper"><dir name="Category"><file name="Flat.php" hash="2a2cf087a8b262591b88d789c7ff508a"/><dir name="Url"><dir name="Rewrite"><file name="Interface.php" hash="0c6a04a205885d1dfa6ba43aa60a78ab"/></dir><file name="Rewrite.php" hash="c9144f35444311c1de4b69adcba1011c"/></dir></dir><file name="Category.php" hash="d2c4aaf8f55f2301d2c0c3aadaff5f94"/><file name="Data.php" hash="7fd21ab1980277fe851d3dcdee2ee9f7"/><dir name="Flat"><file name="Abstract.php" hash="4a669e8b86c77ac0375a39ec9ebd1c22"/></dir><file name="Image.php" hash="fc24b86e9a7e49f0d87b61e26c1762be"/><file name="Map.php" hash="991aae7948ba842c94fefc0c878194c5"/><file name="Output.php" hash="e66c7741f02e3f4fce1c0e8550f80bfc"/><dir name="Product"><file name="Compare.php" hash="052778e69e62955d8ba74a3ae0047c9d"/><dir name="Configuration"><file name="Interface.php" hash="7d6901165ea30966851e82735c64daa1"/></dir><file name="Configuration.php" hash="c5ec178e865833147bc26ebd9cdfcfb9"/><file name="Flat.php" hash="2d8f5df2a838567dcf003376361401df"/><file name="Options.php" hash="98afa1990b749d872ce9aad28c8b3061"/><dir name="Url"><dir name="Rewrite"><file name="Interface.php" hash="9b4996a5e9d4daa89c036dbfbd771543"/></dir><file name="Rewrite.php" hash="acda3fe8908422645c410bc8bd624b24"/></dir><file name="Url.php" hash="b674d6731e3cb8c63e179bdcb76588ff"/><file name="View.php" hash="61797e538e15b10861c88a021841dfd3"/></dir><file name="Product.php" hash="2de823968c3ddbd5b612327a36282a97"/></dir><dir name="Model"><file name="Abstract.php" hash="3103620674496397bb4d21b9ec28f34f"/><dir name="Api"><file name="Resource.php" hash="a9fcca8b2c3419a9bcbfe65e4041f939"/></dir><dir name="Api2"><dir name="Product"><dir name="Category"><dir name="Rest"><dir name="Admin"><file name="V1.php" hash="8e42c2fa4ea79661f52c74bc8e43be3d"/></dir><dir name="Customer"><file name="V1.php" hash="d59ddd14679c8f9aa2ae7db86933d883"/></dir><dir name="Guest"><file name="V1.php" hash="e8021ef740e59a287d260d05db4323dd"/></dir></dir><file name="Rest.php" hash="93da01fc7573f0cb21f5ce8491e6e964"/></dir><file name="Category.php" hash="fd88a7c38acc3a4557fd97b8b528ecb5"/><dir name="Image"><dir name="Rest"><dir name="Admin"><file name="V1.php" hash="dc9a608bdba7831626b0bb3359edffb7"/></dir><dir name="Customer"><file name="V1.php" hash="7a8ec1c18d4879fb8847b4d70dc5a9d4"/></dir><dir name="Guest"><file name="V1.php" hash="53575456ac195abf8394e62f5cd574fd"/></dir></dir><file name="Rest.php" hash="5fc432d50069268bf87de3dd29f2b976"/><dir name="Validator"><file name="Image.php" hash="01d68ef27814d7262873018bec12a16d"/></dir></dir><file name="Image.php" hash="458a3a2d0af701ce6d92a1920faf4c13"/><dir name="Rest"><dir name="Admin"><file name="V1.php" hash="83ef1afb58c8c5e3467fadfcc3dc72d4"/></dir><dir name="Customer"><file name="V1.php" hash="a341b1f231dec3c5b9742bfebcce7ec1"/></dir><dir name="Guest"><file name="V1.php" hash="53e0fdddf85dce5e474c706e528807b9"/></dir></dir><file name="Rest.php" hash="108eb659fd7de8d1d8dabf9d90abbbbf"/><dir name="Validator"><file name="Product.php" hash="69f20a23d0c413691ce8f3dcf01eedb3"/></dir><dir name="Website"><dir name="Rest"><dir name="Admin"><file name="V1.php" hash="23dc33bf46785827175930e1a15dc98e"/></dir></dir><file name="Rest.php" hash="a1a997aed079d3b7b27c0c395168a6bd"/><dir name="Validator"><dir name="Admin"><file name="Website.php" hash="e5b41e2f3cd67239b3226f5b580bcf1f"/></dir></dir></dir><file name="Website.php" hash="b490f8b56d66fe8c07429a7acfb23d1f"/></dir><file name="Product.php" hash="153b39154268727a39abbb70f206f293"/></dir><dir name="Attribute"><dir name="Backend"><file name="Customlayoutupdate.php" hash="8f3647c7ae0e9c71207091565a1d39d1"/><dir name="Urlkey"><file name="Abstract.php" hash="c0577637ef3b436a7218e9b6878adf19"/></dir></dir></dir><dir name="Category"><dir name="Api"><file name="V2.php" hash="e14aa15dd60b7968dc8a891791543b22"/></dir><file name="Api.php" hash="c2ec820764496fee4761a3652a45fe33"/><dir name="Attribute"><dir name="Api"><file name="V2.php" hash="fd7327a2eafc0a8a610f3a6fa39d22b1"/></dir><file name="Api.php" hash="8ab727a2af4401214c65d6a012b53b84"/><dir name="Backend"><file name="Image.php" hash="b8f275fc5befeeef8db39f4b42ed072d"/><file name="Sortby.php" hash="b4c6f5653a4b31079e40966511967c56"/><file name="Urlkey.php" hash="06f279de5fe222551e97b52ac1b59f31"/></dir><dir name="Source"><file name="Layout.php" hash="eba97851f2d59acec18db86202cbac4a"/><file name="Mode.php" hash="7aec1c98ef4706fbd84ee611d7529f8b"/><file name="Page.php" hash="9921b94d1305a74d8014c7eb3729cbf5"/><file name="Sortby.php" hash="1680da2e35d1232a59bb5e8139411f18"/></dir></dir><dir name="Indexer"><file name="Flat.php" hash="9d836804fb252ced0f1bae5e135a5e5a"/><file name="Product.php" hash="6bb2b173560b41800c67f1521ff2065c"/></dir><file name="Url.php" hash="d007be46a04160a3dab1c9ca48bf9b22"/></dir><file name="Category.php" hash="77f096d5a872a4af01317e2e7a9be122"/><file name="Config.php" hash="d2b67ebef5018fbe4806da55480fdf58"/><dir name="Convert"><dir name="Adapter"><file name="Catalog.php" hash="ec918565e45f17766817ea0a9aac9b5a"/><file name="Product.php" hash="5d8e58bdf5ba6aea18b51e7e53436351"/></dir><dir name="Parser"><file name="Product.php" hash="03dad5f92788f30c56329f84df76eb02"/></dir></dir><file name="Convert.php" hash="f4cb35d34b7e7b56c4ed16b28dde40c6"/><file name="Design.php" hash="3b424406387f0a395fb9bfee18eda2e7"/><dir name="Entity"><file name="Attribute.php" hash="65db780e088fefa284113d2a4d0d40bb"/><dir name="Product"><dir name="Attribute"><dir name="Design"><dir name="Options"><file name="Container.php" hash="cf987ae7b06b896650c8bbe35ebabed9"/></dir></dir><dir name="Frontend"><file name="Image.php" hash="2981031837295463e1d57f91b1b99512"/></dir></dir></dir></dir><file name="Factory.php" hash="5c940ab0d0ceae28c8a43a60f27e2d14"/><file name="Index.php" hash="3e6e38408882ce699a05cbccd5ed3c06"/><dir name="Indexer"><file name="Url.php" hash="a83fb403cb6ca1e6cb06aa98065705ba"/></dir><dir name="Layer"><dir name="Filter"><file name="Abstract.php" hash="8b543a2ea812d0100ed90183f8d54e9a"/><file name="Attribute.php" hash="6cf9b952b4a412dc1c5e662081ed7b76"/><file name="Category.php" hash="7fdfcc712efa16a0decc3786f5f28d83"/><file name="Decimal.php" hash="ebdf5a89c4a88f826101c27b98641f3d"/><file name="Item.php" hash="39b10c69714aaeab6b3980223d5f1544"/><dir name="Price"><file name="Algorithm.php" hash="2628a11cb85cd42fe49e89d56b14b4d1"/></dir><file name="Price.php" hash="9c536ad60547a4241e5e351a593b9bb0"/></dir><file name="State.php" hash="635bc64507b1d11312854ad582a08c38"/></dir><file name="Layer.php" hash="33f0735a45d5192876749545e960c80b"/><file name="Observer.php" hash="53b5ff795856c5a53ef73c2cac1875ea"/><dir name="Product"><file name="Action.php" hash="d9613b0275dde94f06e92b1454e95265"/><dir name="Api"><file name="V2.php" hash="f9fb5e59206b221a1af51af4d67720a6"/></dir><file name="Api.php" hash="8e921b1b5d0d9abaf414ea515ca9d833"/><dir name="Attribute"><dir name="Api"><file name="V2.php" hash="676fd9d10ea5a48f2a622da80ccb47f7"/></dir><file name="Api.php" hash="facd4342fe4a4500a5aad27974806b2f"/><dir name="Backend"><file name="Boolean.php" hash="8ef39bdda67176eafea7e35380862e7a"/><dir name="Groupprice"><file name="Abstract.php" hash="d55be51c8b1b3df3c3ad6a40b450eadb"/></dir><file name="Groupprice.php" hash="4b9119c5a3f1a0a64b9e5e2f10349970"/><file name="Media.php" hash="b4075b7962ee7b4e7e9bf52809631a6e"/><file name="Msrp.php" hash="d2b4d99ed552f9cacf31634eef4eb78b"/><file name="Price.php" hash="b537265d74c73a8e0b1a59ca29ab59ca"/><file name="Recurring.php" hash="c5517fd0cb006a2ad38a7de84d57a3ce"/><file name="Sku.php" hash="40334dcdae3fca0ab8eb0cd9421933b7"/><dir name="Startdate"><file name="Specialprice.php" hash="aa33b14f5f1de6708efa6ef7a905b516"/></dir><file name="Startdate.php" hash="3f3819c60c86b91ae45b4ac279edb0fc"/><file name="Tierprice.php" hash="f978087f28711f7aec541e68e0f0f376"/><file name="Urlkey.php" hash="4c539dd4d1d3007a9d8fc09f967375d8"/></dir><dir name="Frontend"><file name="Image.php" hash="cae0a80831e2b3ca348577bf9dadd860"/></dir><file name="Group.php" hash="c233ddf9563a5b22d72232104384651b"/><dir name="Media"><dir name="Api"><file name="V2.php" hash="7f8b2e79e74698e557df3143e47f20ea"/></dir><file name="Api.php" hash="555d8539a15f3b5aa88c2f6244c49115"/></dir><dir name="Set"><dir name="Api"><file name="V2.php" hash="946b1c83955e059047f6ec3eb9985184"/></dir><file name="Api.php" hash="1580b4dfd2e989d83b0c3f451af58eed"/></dir><dir name="Source"><file name="Boolean.php" hash="e3acf66166cfb90ed611af2930a2e09a"/><file name="Countryofmanufacture.php" hash="f85b0a53f73e1ac0d8447132839ce577"/><file name="Inputtype.php" hash="e467064e239e36589353a6e6652c9138"/><file name="Layout.php" hash="e93a209f3093c5f5993d936ba6c2a6d2"/><dir name="Msrp"><dir name="Type"><file name="Enabled.php" hash="2ff76f69352ac583fd6ab9a85928733d"/><file name="Price.php" hash="f2dd34500faff206fa2d3e11bdf989ee"/></dir><file name="Type.php" hash="50a3f2d6ffac9dc2e08617811597733a"/></dir></dir><dir name="Tierprice"><dir name="Api"><file name="V2.php" hash="24d1eec7a3258cdbf86de7d99e714b9c"/></dir><file name="Api.php" hash="8385c627c4b3a36a97a6ce0e1ab8b855"/></dir></dir><dir name="Compare"><file name="Item.php" hash="63e7762670f57ac31acd8afa7367786f"/><file name="List.php" hash="27165978b12b654090aca4c348ffb6c8"/></dir><dir name="Condition"><file name="Interface.php" hash="4bac667bc046c13017377423fdde69f0"/></dir><file name="Condition.php" hash="c10a6a33977bd8a021bf83b0021b9abb"/><dir name="Configuration"><dir name="Item"><file name="Interface.php" hash="c07904168054df17507307f9c285b975"/><dir name="Option"><file name="Interface.php" hash="94125408528b68bc52b3b6cf1b2900fc"/></dir><file name="Option.php" hash="3c4c1ed602ccdd72b4ec151a18553d5a"/></dir></dir><dir name="Flat"><file name="Flag.php" hash="405820b0f95dab6fd33a749c21f7a5be"/><file name="Indexer.php" hash="3a7e8d73cae80a15a60c1c555a50a81c"/><file name="Observer.php" hash="769223829dc4d75b7593fa631b00dfb6"/></dir><file name="Image.php" hash="f40a8b18d965f4eab6dcc6891755ee13"/><dir name="Indexer"><file name="Eav.php" hash="7d74bc107ddc43da8498d77c97404ae8"/><file name="Flat.php" hash="1e6d861ae255d6b381f93e7eaf9e937b"/><file name="Price.php" hash="2624163fa13495ae28ee92ec587bf495"/></dir><dir name="Link"><dir name="Api"><file name="V2.php" hash="9e88d6905d523db13deee214501437e0"/></dir><file name="Api.php" hash="dfbb72a54bcb6c333f19b6b04553cda3"/></dir><file name="Link.php" hash="9fb1eeb979fb2e5a0854217feb11b798"/><dir name="Media"><file name="Config.php" hash="f0ac7b414a245deee9028917ade49cb9"/></dir><dir name="Option"><dir name="Api"><file name="V2.php" hash="295b9141f8b71108506896baaa0663e7"/></dir><file name="Api.php" hash="453d5d3d0a67ce2fefd9c449b744184a"/><file name="Observer.php" hash="11fc3d20f2880b159cc67ee863f5d403"/><dir name="Type"><file name="Date.php" hash="c4a7c48703337c027ad3d346224de33a"/><file name="Default.php" hash="36a093fe5b2aeb6a4c9992fbc70ca09c"/><file name="File.php" hash="5046c92d54f755462859a629d7bf12ae"/><file name="Select.php" hash="a1c5a0bfaafb1988ae9743646ec93c71"/><file name="Text.php" hash="d5d534ac247bde4bde6c4c502cfd5504"/></dir><dir name="Value"><dir name="Api"><file name="V2.php" hash="a68a7921a51f26bb3310478757b9e91a"/></dir><file name="Api.php" hash="a9230fb72895529e3212529fa035747b"/></dir><file name="Value.php" hash="2bcd5835204eec255f43fc763cabb19b"/></dir><file name="Option.php" hash="814db51ec4f4773266c176eb634c258c"/><file name="Status.php" hash="5dcbbe7769ef951715e659c2018cbd59"/><dir name="Type"><file name="Abstract.php" hash="4f466aae98f72edd97167c4b07180f5e"/><dir name="Api"><file name="V2.php" hash="81db9eb28dfa1cd4d927080d3a7ea612"/></dir><file name="Api.php" hash="3a6ebc6d8673b4f7af4ab2c5a3b12e16"/><dir name="Configurable"><file name="Attribute.php" hash="eb6e2a83ca8424339ac3cc0a5a4749c9"/><file name="Price.php" hash="1bea7b9f3d0de0946afa858a064fa379"/></dir><file name="Configurable.php" hash="3edd0599bf23f1995aa4963de3a55044"/><dir name="Grouped"><file name="Price.php" hash="0253182ccb911eabe8e19e669c8c7638"/></dir><file name="Grouped.php" hash="76016646cb2ea0a90160641e42d1a241"/><file name="Price.php" hash="6d2c627c4111efe5e4591697cdb22731"/><file name="Simple.php" hash="7f607549b4d12517f66a88987df9bb20"/><file name="Virtual.php" hash="829085212233f496782c9e9b031b6b3b"/></dir><file name="Type.php" hash="92b34b54f22e84f8ca82d0d9a746a562"/><file name="Url.php" hash="7f2ac3f907c3e6b6d9ea08c03723d2d5"/><file name="Visibility.php" hash="668ecfc9a1e2a53c0907088bc330c35e"/><file name="Website.php" hash="aa009a7f09e86588e7fb998b72a6ff5b"/></dir><file name="Product.php" hash="9dab6209a5352682012568a3bc3b8f25"/><dir name="Resource"><file name="Abstract.php" hash="f20d54eac39563874e060a0b181c42e1"/><file name="Attribute.php" hash="b6532d842732783f7ef1ebc3c38fd5b7"/><dir name="Category"><dir name="Attribute"><file name="Collection.php" hash="0e61f25ea822f1d50cbe0a97346ffbc0"/><dir name="Frontend"><file name="Image.php" hash="ec8d42c78ff0950dbc56e847e00afcf9"/></dir><dir name="Source"><file name="Layout.php" hash="b00432ca67ec3fc9e9322d4fb73f0cf6"/><file name="Mode.php" hash="391399eb421fc1d9b040c17020f6b741"/><file name="Page.php" hash="65d5115df4e8a006ae4b41e7be6b6b4e"/></dir></dir><file name="Collection.php" hash="7bfdbb5958be323e71dc4ea7b98af331"/><dir name="Flat"><file name="Collection.php" hash="072eb6260f847b9ce71bf38531ff5792"/></dir><file name="Flat.php" hash="d343d9a62fdbe22eb8634e178ebca640"/><dir name="Indexer"><file name="Product.php" hash="64e41b3a3d96c22b140adc45efef8006"/></dir><file name="Tree.php" hash="f0d2efe1b5319894776cb782df59edd2"/></dir><file name="Category.php" hash="e40e22f7750cd26686f3fa9272749898"/><dir name="Collection"><file name="Abstract.php" hash="409f7b6f1ad5cf20b04d2a37bc7620fb"/></dir><file name="Config.php" hash="2db6fae019ec79c5a7e6cb1daa8566bc"/><dir name="Eav"><file name="Attribute.php" hash="6f43e1f0f5f2e9d1e1ff1aec400b5a66"/><dir name="Mysql4"><file name="Abstract.php" hash="ff5dbeb55fd6724afd42c09ed24cdc3c"/><file name="Attribute.php" hash="ede0ac3bfd412f86e2c36ed0a6f74b60"/><dir name="Category"><dir name="Attribute"><file name="Collection.php" hash="6d94bb5588fc4d1920e259037f93ffa4"/><dir name="Frontend"><file name="Image.php" hash="95a4d8e08d90d8da6b8340aa2b6f38f5"/></dir><dir name="Source"><file name="Layout.php" hash="929d6df5866c2fd332a2987b5d2fd953"/><file name="Mode.php" hash="6fed21b7c38e82b63b4edf38ad3be77c"/><file name="Page.php" hash="af44999736b5920e9a2ca662dff3cfaa"/></dir></dir><file name="Collection.php" hash="6c1e26b5f970df68c0858b7a6795fa78"/><dir name="Flat"><file name="Collection.php" hash="b56facaa8645f40ac01656900ae1f3cc"/></dir><file name="Flat.php" hash="3359d45de68809b455a8a9790633830c"/><dir name="Indexer"><file name="Product.php" hash="d294b0bd3c8aa36c8644b765377a9f26"/></dir><file name="Tree.php" hash="c0e160c2837e04122994443e26d5a8d8"/></dir><file name="Category.php" hash="859f32339e6411f3a4fd53e9ef484f55"/><dir name="Collection"><file name="Abstract.php" hash="672e5e04854b2c04acb50a2c22c6a5e0"/></dir><file name="Config.php" hash="6f86cfbbfabef5d5781a5c45bc2ac2cc"/><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="fcae67002e0a13614d5cfa11bb3f9044"/><file name="Decimal.php" hash="caa9eeee21a2dd5c806f3e83187a2e3b"/><file name="Price.php" hash="e49f552f44e6f59a97308bbed3d676ba"/></dir></dir><dir name="Product"><file name="Action.php" hash="e06b482cbb05de0f5c3a1b7f52c489bd"/><dir name="Attribute"><dir name="Backend"><file name="Image.php" hash="2438a13ffd8ba611955da135ba21c311"/><file name="Media.php" hash="d79857a5c10ac663691f55aa57b67957"/><file name="Tierprice.php" hash="ab380b633930301d131e0197f8747591"/><file name="Urlkey.php" hash="6c73b3436b040c859aadf9170c1bf9ea"/></dir><file name="Collection.php" hash="7b19cc84c1d35a09e775c70371c6a497"/><dir name="Frontend"><file name="Image.php" hash="16ec1ce2c602bcdb4764f04e97f8d1cc"/><file name="Tierprice.php" hash="bdaed65aa2d80a336a3966281893d7ae"/></dir></dir><file name="Collection.php" hash="97955be99c1f8f11f18b1af0763e9f5c"/><dir name="Compare"><dir name="Item"><file name="Collection.php" hash="80b9462ca1e9c0913d6d900d3da693f6"/></dir><file name="Item.php" hash="21919b8317303faa3b89d512ab268799"/></dir><dir name="Flat"><file name="Indexer.php" hash="de7818687372ab28543cd55c78bc4431"/></dir><file name="Flat.php" hash="4075045a5ccd98c92b5869873a4b29de"/><dir name="Indexer"><file name="Abstract.php" hash="734c4b1b6bad250cbd87c23cd03eb444"/><dir name="Eav"><file name="Abstract.php" hash="7b25ac3487d6e0549be448a453e6ea0f"/><file name="Decimal.php" hash="a56359dd2804d1b98e0bbdbb1f2023ac"/><file name="Source.php" hash="25353cd3162a000db1354bb031eba979"/></dir><file name="Eav.php" hash="eaaec7260717874a205b7c61e4c9a4b3"/><dir name="Price"><file name="Configurable.php" hash="31542ad203aef5d0185ce31471cb8773"/><file name="Default.php" hash="09efe3a441871a09940d183719369548"/><file name="Grouped.php" hash="1a09b97f2beaf2efcfdae52b1faf681d"/><file name="Interface.php" hash="b6e66a323e75e0c27584e232df6abb59"/></dir><file name="Price.php" hash="64837824ce41dd4e2a49e3c4e9355498"/></dir><dir name="Link"><file name="Collection.php" hash="2ae3996a8cac1413b9e3de5ea8b14385"/><dir name="Product"><file name="Collection.php" hash="a836990749fb372ebbd47608f5b2f04f"/></dir></dir><file name="Link.php" hash="f655704180895e85cc3245f5ea5134b8"/><dir name="Option"><file name="Collection.php" hash="27708fca4f45596a5e022eff29d19e66"/><dir name="Value"><file name="Collection.php" hash="c4746b8e0417aaafb693a0951f8c8676"/></dir><file name="Value.php" hash="041532a06fcd462d7dd481bb871cd070"/></dir><file name="Option.php" hash="184ae5c7ea858ea2029f57f59be809b9"/><file name="Relation.php" hash="07932cef0d70c5c2c42fa89bb0c1bfe5"/><file name="Status.php" hash="223c720090804a8ebed818cf36fe0193"/><dir name="Type"><dir name="Configurable"><dir name="Attribute"><file name="Collection.php" hash="c83735912b97dd31606ee4026745d8f0"/></dir><file name="Attribute.php" hash="ea01bce53397e1296418bd8ce58c9de4"/><dir name="Product"><file name="Collection.php" hash="5544baaa0fe365f68c82345f138f2cd3"/></dir></dir><file name="Configurable.php" hash="a3485101701ce27a1245face359bbacf"/></dir><file name="Website.php" hash="86d83b6ac6a33770f0d500af50249c7d"/></dir><file name="Product.php" hash="92cfd76f424656a754c5bc891e791cb7"/><dir name="Sendfriend"><file name="Collection.php" hash="c0a9d608296e3e14c54d6e1403fa0ce5"/></dir><file name="Sendfriend.php" hash="6d48bb31391b8f8b95e657cde0be7762"/><file name="Setup.php" hash="332bc2a49c8d89cc1da7ea3558b13752"/><file name="Url.php" hash="8ff30475c857c213a1524b92478cce47"/></dir></dir><dir name="Helper"><file name="Mysql4.php" hash="7c385341d8dfbe3e12417018501fe433"/></dir><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="f09cb0f19a7be42ab682ec67f3c2fbfb"/><file name="Decimal.php" hash="728037aecaabab3dea236d55ad466983"/><file name="Price.php" hash="81c8b318f93065a1313a5083985a6f5d"/></dir></dir><dir name="Product"><file name="Action.php" hash="3ecee6a9d5e528d1005c46feeffbd7fd"/><dir name="Attribute"><dir name="Backend"><dir name="Groupprice"><file name="Abstract.php" hash="3320e1ac24eed9782ac1eae7749a6f5c"/></dir><file name="Groupprice.php" hash="dfde72fdbac10316a3ce4b70a88cfd24"/><file name="Image.php" hash="98d7acc0ed12be48ff7c1ba82c3f4787"/><file name="Media.php" hash="7f7d8d066c4cf9b6b29b708e7b4b8c19"/><file name="Tierprice.php" hash="6abee5dcc3c234e50e8a2d7de254d0d9"/><file name="Urlkey.php" hash="2c13425706769e774a505009ffa87933"/></dir><file name="Collection.php" hash="f09a2706f0cc1c52d2106bb015b63256"/><dir name="Frontend"><file name="Image.php" hash="2031b292025aea8ad2c03698d8b88fdd"/><file name="Tierprice.php" hash="05a89f28521f362e39e959bba5f7c665"/></dir></dir><file name="Collection.php" hash="5e7c2d8882d8cff927d7993f8449ec4c"/><dir name="Compare"><dir name="Item"><file name="Collection.php" hash="4682910e74f1e83109a32b40f2d9f34f"/></dir><file name="Item.php" hash="a01172e17e3dad083a7a64f9cb6318f1"/></dir><dir name="Flat"><file name="Indexer.php" hash="cf608c32673e53c82b5218768c5a536c"/></dir><file name="Flat.php" hash="8193a7748b2a61d95cccbf050dc624ed"/><dir name="Indexer"><file name="Abstract.php" hash="4ce37f276d4aa581fc88ff92d61fe58c"/><dir name="Eav"><file name="Abstract.php" hash="0fe745af8f1b930ebd6dce5444672fdf"/><file name="Decimal.php" hash="0c4947e231e3722be366aff13f18b4bc"/><file name="Source.php" hash="f2e3a3b9e85bfde38805bda6f3c1bce9"/></dir><file name="Eav.php" hash="5687b6aef04079e2f27db54f60475ad1"/><dir name="Price"><file name="Configurable.php" hash="7e7e36cb2f769869b5b40f92f6edd89f"/><file name="Default.php" hash="a55d3119bdfeafafc098c77f7239a8a8"/><file name="Grouped.php" hash="e4629b734f76c5ef342407ace05e9c6c"/><file name="Interface.php" hash="b5cb0804860612471abeb6dafff7324c"/></dir><file name="Price.php" hash="2f1697c7c661b285d1afb6b42e1be83d"/></dir><dir name="Link"><file name="Collection.php" hash="4305b11e90fb5c1a795277e8d8b3c95d"/><dir name="Product"><file name="Collection.php" hash="23f8256bb24434e0a95e39ba241de1bc"/></dir></dir><file name="Link.php" hash="bcd8db6c4d0e2d87a30bb65e243974f3"/><dir name="Option"><file name="Collection.php" hash="7624675ddb98f808be646109562ce272"/><dir name="Value"><file name="Collection.php" hash="69474973f904b263cbb9f1227d0c62db"/></dir><file name="Value.php" hash="8e9c636044ac2ec2c4c2342ed22011bd"/></dir><file name="Option.php" hash="a1118f95a3b411edd7767badf0e3838c"/><file name="Relation.php" hash="accc9f5e417192ca5ef4968564e9478e"/><file name="Status.php" hash="fed573760af2fddc873678ff57df5592"/><dir name="Type"><dir name="Configurable"><dir name="Attribute"><file name="Collection.php" hash="01861a0d2f24542a3a732b167ff55590"/></dir><file name="Attribute.php" hash="c768f597c9aec823e79a554d7cd4763a"/><dir name="Product"><file name="Collection.php" hash="b573e6295f5cc4a76eae1937559876be"/></dir></dir><file name="Configurable.php" hash="cd48973bc8b1b7484eea3be93713cb69"/></dir><file name="Website.php" hash="86b909ce4bb1bc5759df3381b9409e34"/></dir><file name="Product.php" hash="7acc4fb438509e65fd11e741403542e5"/><file name="Setup.php" hash="33355298a0b2d9e4012ba0712687e5a7"/><file name="Url.php" hash="b5a13b469f829617a8c0a73a1599a984"/></dir><file name="Session.php" hash="333421356b45a753ca190bd001cb2e68"/><dir name="System"><dir name="Config"><dir name="Backend"><dir name="Catalog"><dir name="Category"><file name="Flat.php" hash="2c8fe43e4a233bf8934704c7fe0a8ec0"/></dir><dir name="Product"><file name="Flat.php" hash="754061a0376e7a804be51ba5ff644e66"/></dir><dir name="Url"><dir name="Rewrite"><file name="Suffix.php" hash="23ecaf925ea7ef9197cf7c9423352a98"/></dir></dir></dir></dir></dir></dir><dir name="Template"><file name="Filter.php" hash="96c6dfeae7b67990d60d77bc162a5b1a"/></dir><file name="Url.php" hash="2f3325358a78597164094dfdec07b2a6"/></dir><dir name="controllers"><file name="CategoryController.php" hash="c7c68016b46bd824b748959d090013ee"/><file name="IndexController.php" hash="ac301f4a5039061c8d4cf5e58b90fb26"/><dir name="Product"><file name="CompareController.php" hash="a97e663d47459bf714484cdde8c0591d"/></dir><file name="ProductController.php" hash="aba9a281433847277420e5da2e769c82"/><dir name="Seo"><file name="SitemapController.php" hash="0ad9c48e4a286100a0157896b89c14ff"/></dir></dir><dir name="data"><dir name="catalog_setup"><file name="data-install-1.6.0.0.php" hash="c4ca68125954765c850feaec77d77105"/><file name="data-upgrade-1.6.0.0.12-1.6.0.0.13.php" hash="030e24354ba8aca75a886da56736e76a"/><file name="data-upgrade-1.6.0.0.13-1.6.0.0.14.php" hash="a63c31ff7ec6d9de4f11db70af34d702"/><file name="data-upgrade-1.6.0.0.4-1.6.0.0.5.php" hash="cec64dd7df5eef024a8496a3f72e4372"/><file name="data-upgrade-1.6.0.0.8-1.6.0.0.9.php" hash="a43bf0ff9fb72e57db9b883bd45aa382"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="b562b0c4140a43cdc7ed3fa21374a606"/><file name="api.xml" hash="eed902fc50af484f6484357fd6d5e013"/><file name="api2.xml" hash="10e038b1f127f74e8c0e3d1153cdffd3"/><file name="config.xml" hash="5d8a38e2f1603137fabce33a1468e8cc"/><file name="convert.xml" hash="59dccc5cc29cb3fbfc94eee26b529db2"/><file name="system.xml" hash="116c649d0cda56ed087b9c0761b9c1a1"/><file name="widget.xml" hash="0068b7b010d4985eb83b865ea838586d"/><file name="wsdl.xml" hash="fa198392d766134085b3c2ec1be4a0e9"/><file name="wsi.xml" hash="0acfd65c613ccb83404317500078a85d"/></dir><dir name="sql"><dir name="catalog_setup"><file name="install-1.6.0.0.php" hash="a57c3b2a53aa6384c2f0a693353fcba1"/><file name="mysql4-data-upgrade-0.7.57-0.7.58.php" hash="2120fdc78c6000ef2134b217f8c74f74"/><file name="mysql4-data-upgrade-0.7.63-0.7.64.php" hash="8f51c57d94bca45d11e27a0d8055147f"/><file name="mysql4-data-upgrade-1.4.0.0.28-1.4.0.0.29.php" hash="a194850e9a5388bf38b1ba5aa8739414"/><file name="mysql4-data-upgrade-1.4.0.0.42-1.4.0.0.43.php" hash="d0175f8e452128201765735009a5851e"/><file name="mysql4-install-0.7.0.php" hash="650ac4b7aff67f5e83639013d8f2b9fe"/><file name="mysql4-install-1.4.0.0.0.php" hash="243371a61b6c1e942b31abfaf4448d8f"/><file name="mysql4-upgrade-0.6.40-0.7.0.php" hash="2ea5fccbfdfd7dc682c57c1f0a4fe77e"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="dea20de1987cf262ec8ce66e6d05d785"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="8b171bb907cf9fac38b1ca561be15e9a"/><file name="mysql4-upgrade-0.7.11-0.7.12.php" hash="67cc3f88d62d577099591dba703591ab"/><file name="mysql4-upgrade-0.7.12-0.7.13.php" hash="5743235727dfa1b1745346d4a665dde0"/><file name="mysql4-upgrade-0.7.13-0.7.14.php" hash="c913f966bfbe54f9afc179916e346e3f"/><file name="mysql4-upgrade-0.7.14-0.7.15.php" hash="eda07a21268160d97d458708dccf3b5e"/><file name="mysql4-upgrade-0.7.15-0.7.16.php" hash="cbba89e54536d02170e5456e2b079ffd"/><file name="mysql4-upgrade-0.7.16-0.7.17.php" hash="5743235727dfa1b1745346d4a665dde0"/><file name="mysql4-upgrade-0.7.17-0.7.18.php" hash="7d1d1bead20fdf38cfab28cb21e78d6f"/><file name="mysql4-upgrade-0.7.18-0.7.19.php" hash="b6735d410395dfd34f21458427f99a13"/><file name="mysql4-upgrade-0.7.19-0.7.20.php" hash="67cc3f88d62d577099591dba703591ab"/><file name="mysql4-upgrade-0.7.2-0.7.3.php" hash="54a7a140bc602006a071acb6641673f7"/><file name="mysql4-upgrade-0.7.20-0.7.21.php" hash="4ba67e9710ca055f98a63d1df6c4f31f"/><file name="mysql4-upgrade-0.7.21-0.7.22.php" hash="ee461b2f49e962b362e1cfee547ecd9e"/><file name="mysql4-upgrade-0.7.22-0.7.23.php" hash="f61b8a86749dce0df458b02a835efe68"/><file name="mysql4-upgrade-0.7.23-0.7.24.php" hash="2050ea455761178daa9d220a34cd8254"/><file name="mysql4-upgrade-0.7.24-0.7.25.php" hash="261e90a21d40864974e60972cda1ae1c"/><file name="mysql4-upgrade-0.7.25-0.7.26.php" hash="261e90a21d40864974e60972cda1ae1c"/><file name="mysql4-upgrade-0.7.26-0.7.27.php" hash="2e2061fcffef07742e04f465c4545c64"/><file name="mysql4-upgrade-0.7.27-0.7.28.php" hash="047e843051f421435db7f9d45ad1bf3c"/><file name="mysql4-upgrade-0.7.28-0.7.29.php" hash="bad4802d0e999950f441f2adc841b8c7"/><file name="mysql4-upgrade-0.7.29-0.7.30.php" hash="448c3f0262d320927a67c3bdf2248b87"/><file name="mysql4-upgrade-0.7.30-0.7.31.php" hash="34ca255178a097f0bfd58d63024ff303"/><file name="mysql4-upgrade-0.7.31-0.7.32.php" hash="9c2270289ec1119ab13292825b7260e8"/><file name="mysql4-upgrade-0.7.32-0.7.33.php" hash="805cfe42d016780188eb0cb7bf5199fd"/><file name="mysql4-upgrade-0.7.33-0.7.34.php" hash="c115797b39ca05a11ba359bd2a997006"/><file name="mysql4-upgrade-0.7.34-0.7.35.php" hash="5e0c9878dca7097f391deb7f12041666"/><file name="mysql4-upgrade-0.7.35-0.7.36.php" hash="8c2ea970a1f8bfb1e4f8a44cbdb38fe6"/><file name="mysql4-upgrade-0.7.36-0.7.37.php" hash="07bf9ea01a058db11f3f53c2b262a547"/><file name="mysql4-upgrade-0.7.37-0.7.38.php" hash="30c07450806e0c47785c87ef33b93c30"/><file name="mysql4-upgrade-0.7.38-0.7.39.php" hash="b9272cd795d086256e30c392301dd694"/><file name="mysql4-upgrade-0.7.39-0.7.40.php" hash="48bddb7f32ca326c121521bea4aa123d"/><file name="mysql4-upgrade-0.7.4-0.7.5.php" hash="0e42c040a8ad7cdcd333513ad3242ea1"/><file name="mysql4-upgrade-0.7.40-0.7.41.php" hash="681a24fc90e818f247c9278e56fc22cf"/><file name="mysql4-upgrade-0.7.41-0.7.42.php" hash="9d42b6ee298ac25fb328fa5146492753"/><file name="mysql4-upgrade-0.7.43-0.7.44.php" hash="050e5d63ebfa04bdd57a6309679166f5"/><file name="mysql4-upgrade-0.7.44-0.7.45.php" hash="1a4cc1c7e259401c57aed4220483e633"/><file name="mysql4-upgrade-0.7.45-0.7.46.php" hash="5a4654a62a0811396925e2ca4adb2a46"/><file name="mysql4-upgrade-0.7.46-0.7.47.php" hash="c8b8e5055e15d33a8022ecc6adc77014"/><file name="mysql4-upgrade-0.7.47-0.7.48.php" hash="957376949159b9eb8753c9fa28a5a867"/><file name="mysql4-upgrade-0.7.48-0.7.49.php" hash="aaed0cde1206d55bf44cd3e6686af190"/><file name="mysql4-upgrade-0.7.49-0.7.50.php" hash="57b37f0719b078c4c625764d85ae5b03"/><file name="mysql4-upgrade-0.7.5-0.7.6.php" hash="7e0c59fa1f5d9f140fa31b3301efab6b"/><file name="mysql4-upgrade-0.7.50-0.7.51.php" hash="622a111a3f2b81c5d32b6d8025d1d048"/><file name="mysql4-upgrade-0.7.51-0.7.52.php" hash="b4c13ba1d8f8957f774abaf72ef35447"/><file name="mysql4-upgrade-0.7.52-0.7.53.php" hash="f62ec5e18aa80e66187cdf3b1de278de"/><file name="mysql4-upgrade-0.7.53-0.7.54.php" hash="757aa6098ea17b17d3116902dc7be3b3"/><file name="mysql4-upgrade-0.7.54-0.7.55.php" hash="96dc0d387fe6041c12a5cfa7014436f7"/><file name="mysql4-upgrade-0.7.55-0.7.56.php" hash="be67dce7c1e4b162e6f84d404ebf754d"/><file name="mysql4-upgrade-0.7.56-0.7.57.php" hash="3a269e09567cbc6bb616358059ab166d"/><file name="mysql4-upgrade-0.7.57-0.7.58.php" hash="3286e68856de2df6ad4727f4b06bb675"/><file name="mysql4-upgrade-0.7.58-0.7.59.php" hash="9d7e86bdc91bebcaa869322794fecf8b"/><file name="mysql4-upgrade-0.7.59-0.7.60.php" hash="38f210380cacc867ab17c56a6fefc71c"/><file name="mysql4-upgrade-0.7.6-0.7.7.php" hash="67cc3f88d62d577099591dba703591ab"/><file name="mysql4-upgrade-0.7.60-0.7.61.php" hash="0aa5d71181602994e81e57d12855dc41"/><file name="mysql4-upgrade-0.7.61-0.7.62.php" hash="115303e7a95de11ae88f7fc7d5bbad3d"/><file name="mysql4-upgrade-0.7.62-0.7.63.php" hash="05513ae185d2218c0cd7149a22d1ccd8"/><file name="mysql4-upgrade-0.7.63-0.7.64.php" hash="3361281520cea0d31c4ee630d7d727e4"/><file name="mysql4-upgrade-0.7.64-0.7.65.php" hash="92e376ef0bba20d8b619275fa76e139d"/><file name="mysql4-upgrade-0.7.65-0.7.66.php" hash="48d6fec6dde29cd75041f4d4ce5ee67e"/><file name="mysql4-upgrade-0.7.66-0.7.67.php" hash="d2976659ace49f2a265329db12b03129"/><file name="mysql4-upgrade-0.7.67-0.7.68.php" hash="89d1c98c285f09c343849cc930527b34"/><file name="mysql4-upgrade-0.7.68-0.7.69.php" hash="ea616d8ba8039db50d7d75460e2a1f46"/><file name="mysql4-upgrade-0.7.69-0.7.70.php" hash="52d5ad25a00242d9cea51db2b593021c"/><file name="mysql4-upgrade-0.7.7-0.7.8.php" hash="a68c2cd5a586e87a9351ee854cbd0d08"/><file name="mysql4-upgrade-0.7.70-0.7.71.php" hash="4247e7a1304a682043f2c028f8acface"/><file name="mysql4-upgrade-0.7.71-0.7.72.php" hash="b8d499e3820e95098b59241f1c1568f3"/><file name="mysql4-upgrade-0.7.72-0.7.73.php" hash="8387086581ab89ea580994e764abfdac"/><file name="mysql4-upgrade-0.7.73-1.4.0.0.0.php" hash="29b12a0fc191bed325fddadf54c24a08"/><file name="mysql4-upgrade-0.7.8-0.7.9.php" hash="180699aa8d5b88a650ee277ebbf77452"/><file name="mysql4-upgrade-1.4.0.0.0-1.4.0.0.1.php" hash="3b55a162a3af253b6506129c6df6360b"/><file name="mysql4-upgrade-1.4.0.0.1-1.4.0.0.2.php" hash="34a6f5923b96527a664a5598a8727a95"/><file name="mysql4-upgrade-1.4.0.0.10-1.4.0.0.11.php" hash="033f0c35991ba3a9c243f97e129c1269"/><file name="mysql4-upgrade-1.4.0.0.11-1.4.0.0.12.php" hash="a6faac10dad9ac7e8c7bba5ac816888e"/><file name="mysql4-upgrade-1.4.0.0.12-1.4.0.0.13.php" hash="ac727df9feaafbe4f71cf474ff734aaa"/><file name="mysql4-upgrade-1.4.0.0.13-1.4.0.0.14.php" hash="c28e9f8b3214308cb5a5d1da629b0245"/><file name="mysql4-upgrade-1.4.0.0.14-1.4.0.0.15.php" hash="2e39a7bfbd42ff9172a555d5610dd046"/><file name="mysql4-upgrade-1.4.0.0.15-1.4.0.0.16.php" hash="76eb00176e848426a7c2f2fa12a9c747"/><file name="mysql4-upgrade-1.4.0.0.16-1.4.0.0.17.php" hash="45f0e737d823702d981f3ee0ae700558"/><file name="mysql4-upgrade-1.4.0.0.17-1.4.0.0.18.php" hash="e90d278a0f5042539090da25152bfa90"/><file name="mysql4-upgrade-1.4.0.0.18-1.4.0.0.19.php" hash="72b100195e2885b4ef08c8d8c8f0a554"/><file name="mysql4-upgrade-1.4.0.0.19-1.4.0.0.20.php" hash="6b52232190f3c6bfbe6795c696477f61"/><file name="mysql4-upgrade-1.4.0.0.2-1.4.0.0.3.php" hash="2a830069f6b45abe68b6c752038c0ff1"/><file name="mysql4-upgrade-1.4.0.0.20-1.4.0.0.21.php" hash="b9b9101807c38728146574fb9ea943c9"/><file name="mysql4-upgrade-1.4.0.0.21-1.4.0.0.22.php" hash="bcf38c56ad3adb48a39de63d4d5a9743"/><file name="mysql4-upgrade-1.4.0.0.22-1.4.0.0.23.php" hash="235f71a24ea39c231e98db12a42b61b2"/><file name="mysql4-upgrade-1.4.0.0.23-1.4.0.0.24.php" hash="331fa853150d1ffa8c516d212aa2f8ad"/><file name="mysql4-upgrade-1.4.0.0.24-1.4.0.0.25.php" hash="82812309ff548852b02f1ed3e237fa88"/><file name="mysql4-upgrade-1.4.0.0.25-1.4.0.0.26.php" hash="b05811676a5dce07cef80ef120e8d81e"/><file name="mysql4-upgrade-1.4.0.0.26-1.4.0.0.27.php" hash="319cb1b721425218dfdbb8e6b35d2696"/><file name="mysql4-upgrade-1.4.0.0.27-1.4.0.0.28.php" hash="b05b195b2f019e9809ae5f632a290716"/><file name="mysql4-upgrade-1.4.0.0.28-1.4.0.0.29.php" hash="9dd311b7b21faa2ea4d51255ba418b4a"/><file name="mysql4-upgrade-1.4.0.0.3-1.4.0.0.4.php" hash="cbe028d3212877dd34d99d5dcebc6b5a"/><file name="mysql4-upgrade-1.4.0.0.30-1.4.0.0.31.php" hash="6467bf0816d5824368b73f14881a9594"/><file name="mysql4-upgrade-1.4.0.0.31-1.4.0.0.32.php" hash="63d31a684aae6f3685de3bdba5fa8382"/><file name="mysql4-upgrade-1.4.0.0.32-1.4.0.0.33.php" hash="e10a90a8b43ed815b753039927d987b6"/><file name="mysql4-upgrade-1.4.0.0.33-1.4.0.0.34.php" hash="6ff59cc05f2ba9cbaac47771bcf22ea3"/><file name="mysql4-upgrade-1.4.0.0.34-1.4.0.0.35.php" hash="2437bcdce44398b9ed73ed1e3decba40"/><file name="mysql4-upgrade-1.4.0.0.35-1.4.0.0.36.php" hash="68e92c8f846da8d06a49c7fa80d3262b"/><file name="mysql4-upgrade-1.4.0.0.36-1.4.0.0.37.php" hash="a52db42ba61e1621f7843566633367f3"/><file name="mysql4-upgrade-1.4.0.0.37-1.4.0.0.38.php" hash="c922e3c1000cf84cda132c340578b35b"/><file name="mysql4-upgrade-1.4.0.0.38-1.4.0.0.39.php" hash="346f6a122b15b7f1ac8e8a2f25a5f748"/><file name="mysql4-upgrade-1.4.0.0.39-1.4.0.0.40.php" hash="a1d2f7e1b745850087b5e23a19ced0c1"/><file name="mysql4-upgrade-1.4.0.0.4-1.4.0.0.5.php" hash="863fcd3a4d5f0d7f5a589d89e08291a5"/><file name="mysql4-upgrade-1.4.0.0.40-1.4.0.0.41.php" hash="e9b96de3dab54f6eb5b44ed1a6796dc5"/><file name="mysql4-upgrade-1.4.0.0.41-1.4.0.0.42.php" hash="75eefbda635369ec825856c3111419ac"/><file name="mysql4-upgrade-1.4.0.0.43-1.4.0.0.44.php" hash="44955c234a43e88720d98e69bed21d66"/><file name="mysql4-upgrade-1.4.0.0.5-1.4.0.0.6.php" hash="2b2d2223ab82953f2d561cecfc0565f4"/><file name="mysql4-upgrade-1.4.0.0.6-1.4.0.0.7.php" hash="e3a56b28711daac89ba7f7f0a0f1c236"/><file name="mysql4-upgrade-1.4.0.0.7-1.4.0.0.8.php" hash="20ec846642be63a3c0185211f45a4683"/><file name="mysql4-upgrade-1.4.0.0.8-1.4.0.0.9.php" hash="de70d7d3fb9ac7702845c5486f251a7e"/><file name="mysql4-upgrade-1.4.0.0.9-1.4.0.0.10.php" hash="d020d258926fad12d51577fb92238711"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="e9d8993129029d6ce440139fe76d2ae3"/><file name="mysql4-upgrade-1.6.0.0.8-1.6.0.0.9.php" hash="0e7307795fa7b2020f3e7d7068664395"/><file name="upgrade-1.6.0.0-1.6.0.0.1.php" hash="018fc237065f4d0f3d467f40b6337eb3"/><file name="upgrade-1.6.0.0.1-1.6.0.0.2.php" hash="ae66a75fdc23f3b148a98ff5f7189e75"/><file name="upgrade-1.6.0.0.10-1.6.0.0.11.php" hash="f4c233432fc57f2dad363dfa899eebe1"/><file name="upgrade-1.6.0.0.11-1.6.0.0.12.php" hash="38c8277fa9982c564b395248794a0fcf"/><file name="upgrade-1.6.0.0.14-1.6.0.0.15.php" hash="9d146cf31e038d66f1a6fbe754db7c8f"/><file name="upgrade-1.6.0.0.15-1.6.0.0.18.php" hash="57dc7ac4fdfb98a730fd06a8c52fb59e"/><file name="upgrade-1.6.0.0.18-1.6.0.0.19.php" hash="21c046f401d22b516e1a770e5b1e236f"/><file name="upgrade-1.6.0.0.19.1.1-1.6.0.0.19.1.2.php" hash="c7ac3babd810049a182c93b938467a2a"/><file name="upgrade-1.6.0.0.2-1.6.0.0.3.php" hash="756234b5c7485325e34e07d0ceb575b6"/><file name="upgrade-1.6.0.0.3-1.6.0.0.4.php" hash="d8db9fed9a6b4c3fb944f7fc2cde147e"/><file name="upgrade-1.6.0.0.4-1.6.0.0.5.php" hash="8beffe03092e948fad66fc023a34ab6e"/><file name="upgrade-1.6.0.0.5-1.6.0.0.6.php" hash="bc7b55027d59403cb325f1f79be7ec95"/><file name="upgrade-1.6.0.0.6-1.6.0.0.7.php" hash="74cdd027eb485ce7a38e5910f90c3833"/><file name="upgrade-1.6.0.0.7-1.6.0.0.8.php" hash="88c429ccc6589bc338a8f7459f0560d2"/><file name="upgrade-1.6.0.0.9-1.6.0.0.10.php" hash="3afc43cd784b7397da0318b7dd60c314"/></dir></dir></dir><dir name="CatalogIndex"><dir name="Model"><file name="Aggregation.php" hash="d8446e11e4e245b251f88cfd4da269b7"/><file name="Attribute.php" hash="e6216e285d12b7b51b0dff0d81747fca"/><dir name="Catalog"><dir name="Index"><file name="Flag.php" hash="e1eb655da746408366e7a977d28f6209"/><dir name="Kill"><file name="Flag.php" hash="1d37bd5c967979aa21bc99d6bc9f7154"/></dir></dir></dir><dir name="Data"><file name="Abstract.php" hash="d9f91599be307f824b17ba55a03777c3"/><file name="Configurable.php" hash="c98b4e4546bbf5af9cdec5bf4d32779c"/><file name="Grouped.php" hash="8964208ac3299ed7a0e918a1ad282c4d"/><file name="Simple.php" hash="966919e26852450fde971814d9267314"/><file name="Virtual.php" hash="34c4e295e18d47a3f0c84000c7cf37b7"/></dir><dir name="Indexer"><file name="Abstract.php" hash="163c7eb1f9d54cf54919c301a50d08bc"/><file name="Eav.php" hash="5f2d4772baae0ae42a3e963e9e6d1398"/><file name="Interface.php" hash="1701436dc2c161fc778c18135dad5579"/><file name="Minimalprice.php" hash="eb3b85b428e99ed84ff4226ce6430c00"/><file name="Price.php" hash="96f194a17250f6bf3c9737f5eb5b82f4"/><file name="Tierprice.php" hash="1765d4fed0a73ae74e756ac5f853aeaf"/></dir><file name="Indexer.php" hash="42484b0ee84d41b72aadad7334fda63b"/><dir name="Mysql4"><file name="Abstract.php" hash="8d7b96a754563d987b35f54ba1807457"/><file name="Aggregation.php" hash="82843ec810859f175730e7ca27225fca"/><file name="Attribute.php" hash="7e23d064ce0f6e24501c97cacd21adaa"/><dir name="Data"><file name="Abstract.php" hash="c869b2447587f487d821e953cde65236"/><file name="Configurable.php" hash="d841008e1a838053533d6a02ca3db950"/><file name="Grouped.php" hash="9765ee55da8451f5d76796eeb996f5d4"/></dir><dir name="Indexer"><file name="Abstract.php" hash="2e9a20aae085d294fbbccd65b34aee6f"/><file name="Eav.php" hash="a91a531718dd714f86f5819b8a4c3f22"/><file name="Minimalprice.php" hash="139a035f3cd6627a4b622471fa6bf6aa"/><file name="Price.php" hash="7d118cd7699496534a6318140f213256"/></dir><file name="Indexer.php" hash="aaa9010ef33d1e3b6e3babe05404a0e8"/><file name="Price.php" hash="5b01f7a082382b399f8cc02fc5f8637a"/><file name="Retreiver.php" hash="a8d0312325f1fcb397f1a816786cae9a"/><file name="Setup.php" hash="7c74778b63f245643a02b3133532fa0a"/></dir><file name="Observer.php" hash="4c4839c5c6289e4a68a4e68055d0fc39"/><file name="Price.php" hash="3cede2cadd925a804f5ab4533a0aedb6"/><dir name="Resource"><file name="Abstract.php" hash="6d28df0cb41449e78938675c2177ea5b"/><file name="Aggregation.php" hash="357e91b7049334de0d0e2242c40d6af5"/><file name="Attribute.php" hash="1c6e6fcd593b3982206ee870740b6632"/><dir name="Data"><file name="Abstract.php" hash="44d9ff50977584d81e3732a6bfca8c66"/><file name="Configurable.php" hash="33c11796275c59a0ccb21475d5fca796"/><file name="Grouped.php" hash="aee13957e362b6b29da1e130a0c9183e"/></dir><dir name="Indexer"><file name="Abstract.php" hash="77bd665e3220fba4e8874a2c9415f0f4"/><file name="Eav.php" hash="eeb4d41a3b496b7fa452aa7a88eb219f"/><file name="Minimalprice.php" hash="9e4e2c07140ee094c03dcf870fc7a8af"/><file name="Price.php" hash="b80a57584e61871ff1796c752f78110f"/></dir><file name="Indexer.php" hash="62590ce725754ad991a4b13b7631d100"/><file name="Price.php" hash="463262c0563bfbc9b4b12931edd38940"/><file name="Retreiver.php" hash="105b6e091067d5ad5ffbba34ec6de9e8"/><file name="Setup.php" hash="1e75b2e97a20aab6b916d800595a1423"/></dir><file name="Retreiver.php" hash="b0bad24bf9db93ad36c6a3f12cd6912e"/></dir><dir name="etc"><file name="config.xml" hash="a53aa3f175d09e5ec6364d19c0a41b05"/></dir><dir name="sql"><dir name="catalogindex_setup"><file name="install-1.6.0.0.php" hash="0301fb68116b2e5c6e57829c85770221"/><file name="mysql4-install-0.7.0.php" hash="ef60e25208b1c1c69f7760f788608866"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="edb518ac2880e64a3d1196fcca5c5408"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="5b08f13eecdbb190392bb1079ea992fa"/><file name="mysql4-upgrade-0.7.2-0.7.3.php" hash="79a5d99838ab289d59644b628479549d"/><file name="mysql4-upgrade-0.7.3-0.7.4.php" hash="86691781b4c72f2e3c009dbb219449d7"/><file name="mysql4-upgrade-0.7.4-0.7.5.php" hash="e0bbb2cf8699048f0dd4f11e26ee5b6f"/><file name="mysql4-upgrade-0.7.5-0.7.6.php" hash="ba2a3bf8d66332e75bda38855c520895"/><file name="mysql4-upgrade-0.7.6-0.7.7.php" hash="ce4b36e3b2e090fed799fcd96c1f3b4b"/><file name="mysql4-upgrade-0.7.7-0.7.8.php" hash="e9fb63a6f1712e39622423875a731f80"/><file name="mysql4-upgrade-0.7.8-0.7.9.php" hash="9cb3838b1c74e3ebb09bd1275d598d32"/><file name="mysql4-upgrade-0.7.9-0.7.10.php" hash="e49c1677360cdb321d1dc5fab9507457"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="c9a23a1358aa13ee28bfadf65ca8d70a"/></dir></dir></dir><dir name="CatalogInventory"><dir name="Block"><dir name="Adminhtml"><dir name="Form"><dir name="Field"><file name="Customergroup.php" hash="163d3b06c6d929bcbb5aa7bcc37dd3b0"/><file name="Minsaleqty.php" hash="a1253bfe158b1c145657c13d7f530c52"/></dir></dir></dir><file name="Qtyincrements.php" hash="0b959b5a8399ff56452d30bf872c1af5"/><dir name="Stockqty"><file name="Abstract.php" hash="634f12287ffad43305214d5425338a79"/><file name="Composite.php" hash="39a929bff736748e49c8762cef926fae"/><file name="Default.php" hash="2b9c5f6a616b4d46ee15d5665b2c1012"/><dir name="Type"><file name="Configurable.php" hash="22930288268d14c881af4b0e228f5a77"/><file name="Grouped.php" hash="299fcfde251b737162a76c738b709af3"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="533b21d642ec4d0da92a493a52a9fcdf"/><file name="Minsaleqty.php" hash="252c7dc08342b1b576cd15adf6896cc3"/></dir><dir name="Model"><dir name="Api2"><dir name="Stock"><dir name="Item"><dir name="Rest"><dir name="Admin"><file name="V1.php" hash="c84e4ed181f22fa7b7af3c76ed05b18f"/></dir></dir><file name="Rest.php" hash="e270aadfdfe27e36ce10ce652df5cd5f"/><dir name="Validator"><file name="Item.php" hash="b9d1b5db0d174bf229f6481140eccf61"/></dir></dir><file name="Item.php" hash="b1e6789de22bc81cd8c9e5d418f6e417"/></dir></dir><dir name="Indexer"><file name="Stock.php" hash="86bb76e8c6e4eed87e48a7f1d5969118"/></dir><dir name="Mysql4"><dir name="Indexer"><dir name="Stock"><file name="Configurable.php" hash="c575d00d8ec9f9a02fd2fc91f093e862"/><file name="Default.php" hash="71fef27bb3953dab13046778d6cc85cb"/><file name="Grouped.php" hash="681655f42e1abf8a5e4c65bcd51b9632"/><file name="Interface.php" hash="6f8454915dcd8d4c0aa8098ac47d3149"/></dir><file name="Stock.php" hash="aa87f7c0f015fe5348afbf63d8b64307"/></dir><dir name="Stock"><dir name="Item"><file name="Collection.php" hash="d89055e9f449549be221f5e68157f53b"/></dir><file name="Item.php" hash="0095d1ccf8329fb63a3506ae6a2edb28"/><file name="Status.php" hash="dbfb58bd7d8ae6a805d15ea4520740fc"/></dir><file name="Stock.php" hash="b92334f297141b9295798bc2e4608675"/></dir><file name="Observer.php" hash="a9736bb37585a8c1af46560e92c51db7"/><dir name="Resource"><dir name="Indexer"><dir name="Stock"><file name="Configurable.php" hash="cc79a58c240df2dea5a7876596f4fa98"/><file name="Default.php" hash="dd5890df9d9d4dec9eaa9a22311cf636"/><file name="Grouped.php" hash="645cece573ebe2ae8c9a5b44a5d5875a"/><file name="Interface.php" hash="935fe279b249565fe7fc209bed740516"/></dir><file name="Stock.php" hash="47cac76c6e244d2f76686813fb8bc00a"/></dir><dir name="Stock"><dir name="Item"><file name="Collection.php" hash="9dd080a07edee641c784c898b5295238"/></dir><file name="Item.php" hash="a2064ba40b20174a12164cc36d3bd33d"/><file name="Status.php" hash="ad92e42f445a27ff103eb6f1b8fb63f3"/></dir><file name="Stock.php" hash="ad4cbd3e0236e529cd80a11de1b7a53a"/></dir><dir name="Source"><file name="Backorders.php" hash="7f08d25b4803c2b5b85e29e5af359c37"/><file name="Stock.php" hash="b9450ed75a0d1be3c4daeea22202a455"/></dir><dir name="Stock"><dir name="Item"><dir name="Api"><file name="V2.php" hash="783c76e4aed5a72e67a7de070185b741"/></dir><file name="Api.php" hash="e39eb5620e1f577cb51e9feae480c035"/></dir><file name="Item.php" hash="a637868daa9bb8faa2ee33ecb0112659"/><file name="Status.php" hash="20fbca52b8afa08194b67aa6b2c16c44"/></dir><file name="Stock.php" hash="d6185257041d13f6b566d6601b49edb2"/><dir name="System"><dir name="Config"><dir name="Backend"><file name="Minqty.php" hash="00aa4d4dba81277cb07a21de73133759"/><file name="Minsaleqty.php" hash="a29d77d011b419a9786b1d7f17ede6af"/><file name="Qtyincrements.php" hash="5663f823ca9993f8995a70d6a909d88e"/></dir></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="ec7bc5e2292512488a4248e8dbd1631e"/><file name="api.xml" hash="b037c38c8dfc663cbf6e1c1353e5d252"/><file name="api2.xml" hash="f983c350e9c44229e4fc4d41ce294d91"/><file name="config.xml" hash="79dd5f14b3d64fb65f20d5f3e3309a12"/><file name="system.xml" hash="d962c914c34134200d08f18d87d2fb00"/><file name="wsdl.xml" hash="cfad5924eb32b8fb7ccf79309e5966df"/><file name="wsi.xml" hash="ec7bdd8cb2bc5dd12c0a4d865fe3d313"/></dir><dir name="sql"><dir name="cataloginventory_setup"><file name="install-1.6.0.0.php" hash="186d243fdf3189b96caf9fbdc80aee6c"/><file name="mysql4-install-0.7.0.php" hash="75e2c895e6dfbad69c600f865db6cff4"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="6f0d39d6f4fe87c167fd43b5a39de2d9"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="7e6fcee3d6aeb8bed8be763687cdb8ba"/><file name="mysql4-upgrade-0.7.2-0.7.3.php" hash="04f921c7375bfb01a658b349c31537fd"/><file name="mysql4-upgrade-0.7.3-0.7.4.php" hash="e0e7a7ccefc05896c771fd99f780f708"/><file name="mysql4-upgrade-0.7.4-0.7.5.php" hash="5565cd4be6aead2b0932872f0eb55340"/><file name="mysql4-upgrade-0.7.5-0.7.6.php" hash="be17870a38cf723722f6f99b5bb68c18"/><file name="mysql4-upgrade-0.7.6-0.7.7.php" hash="17a69f148b233711d0c94537352837f1"/><file name="mysql4-upgrade-0.7.7-0.7.8.php" hash="243f5fc0eb15dec1d62992f4c7c7d56d"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="281755ca835ad1ee976f5118076bc94d"/><file name="mysql4-upgrade-1.6.0.0-1.6.0.0.1.php" hash="bfd977798f6118c5368b614c9c5c7795"/><file name="upgrade-1.6.0.0.1-1.6.0.0.2.php" hash="53308b12950c985fa05c7bbf9d49e12c"/></dir></dir></dir><dir name="CatalogRule"><dir name="Helper"><file name="Data.php" hash="560016778ef760247cb7d3b1caabb70f"/></dir><dir name="Model"><dir name="Action"><dir name="Index"><dir name="Refresh"><file name="Row.php" hash="b3d2f0876cfc7c3dc88cf084aa011f8c"/></dir><file name="Refresh.php" hash="330831a22e1f5b94ab64d0647be6698c"/></dir></dir><file name="Flag.php" hash="7903d33b2f3b537f31def82ab02ea752"/><dir name="Mysql4"><dir name="Rule"><file name="Collection.php" hash="1c7ef5836a12d91c7b6cd1596a5c0c9d"/><dir name="Product"><dir name="Price"><file name="Collection.php" hash="4745a3b75d783c2ce549f8c66880f1b0"/></dir><file name="Price.php" hash="659daee66e70387f6ec6ad1c2782a9af"/></dir></dir><file name="Rule.php" hash="a2252e99ac1beaa96c558788d7541dca"/></dir><file name="Observer.php" hash="cc5c3ee1e4dfcff8e656b4c4f7df9713"/><dir name="Resource"><dir name="Rule"><file name="Collection.php" hash="b90b0ab93e58b0d99ba8a1d611a69b34"/><dir name="Product"><dir name="Price"><file name="Collection.php" hash="b05d4de6ec29c21af930a60b6b30b111"/></dir><file name="Price.php" hash="52dbe3cbb55103fcc8b1673ad0e29d5c"/></dir></dir><file name="Rule.php" hash="d4e895a2ed2e80408a4dadc95985eff2"/></dir><dir name="Rule"><dir name="Action"><file name="Collection.php" hash="cbefca5d6a981c7aa1d79431da1a1006"/><file name="Product.php" hash="1ef05545bae581adff21dea5eef7436c"/></dir><dir name="Condition"><file name="Combine.php" hash="d476c6954ab95cb3ebd80aff66eabb83"/><file name="Product.php" hash="22634d4e9c59ea7d4da5ac793e79c2e8"/></dir><dir name="Product"><file name="Price.php" hash="866097a5efe4d81c1bca28d1fce9973b"/></dir></dir><file name="Rule.php" hash="e3cd573194b1bcefbcd8d41b1ed07fa2"/></dir><dir name="etc"><file name="adminhtml.xml" hash="093d6f0890d18e7d864a9635fa08e26d"/><file name="config.xml" hash="93a7c143800b9a7f3ae090a0a97ce8bb"/></dir><dir name="sql"><dir name="catalogrule_setup"><file name="install-1.6.0.0.php" hash="f267d851d396f216b2ed0a73a177c717"/><file name="mysql4-install-0.7.0.php" hash="a2de42b77075ec0b403630b1a93e95f7"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="0fb948870f4792fd810bf6982237a0f7"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="9a60dc6338554003d882475a411f24ba"/><file name="mysql4-upgrade-0.7.2-0.7.3.php" hash="900eebf1d56e35c1ec6fe8b169ff71ab"/><file name="mysql4-upgrade-0.7.3-0.7.4.php" hash="c935d33a43baf1b58075fcd2fa9c8667"/><file name="mysql4-upgrade-0.7.4-0.7.5.php" hash="94818b4c3f6694c3fea522fa7071129a"/><file name="mysql4-upgrade-0.7.5-0.7.6.php" hash="b97239fccace41b55ae0b01d0334f07e"/><file name="mysql4-upgrade-0.7.6-0.7.7.php" hash="cd83d4f6daea4ea53974f39fc2603bf0"/><file name="mysql4-upgrade-0.7.7-0.7.8.php" hash="72612964477cbfdeacaa95a8bc7ace43"/><file name="mysql4-upgrade-0.7.8-0.7.9.php" hash="09a0d5a3d5c97841401bad35a7b34d05"/><file name="mysql4-upgrade-0.7.9-0.7.10.php" hash="5ada9f5e099cbbd1f03393f46d2ca6b7"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="4e50dfe5c65040c848b49001884ff11f"/><file name="upgrade-1.6.0.0-1.6.0.1.php" hash="6e81e9960d6c8d22bfbdd8642bc41da8"/><file name="upgrade-1.6.0.1-1.6.0.2.php" hash="d87e4ab753b65806b9cd8b3231abf543"/><file name="upgrade-1.6.0.2-1.6.0.3.php" hash="363f01664e7f1b960920a03a67be5037"/></dir></dir></dir><dir name="CatalogSearch"><dir name="Block"><dir name="Advanced"><file name="Form.php" hash="e73320b5f9aa1db5d6dd535cd5a51c77"/><file name="Result.php" hash="158d8c4234b2b24f5bce04f068878997"/></dir><file name="Autocomplete.php" hash="40a423ace61e14fb7e928aa1c18dbb74"/><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="686db1fc07ef2ff608bc1982b43359a3"/></dir></dir><file name="Layer.php" hash="8c4c35b064430d739f6d0d4a216f2b14"/><file name="Result.php" hash="e2767174a41982becba4446853a38d6c"/><file name="Term.php" hash="f02a1a1991d2837d54ee71c632e641a7"/></dir><dir name="Helper"><file name="Data.php" hash="16b83aedc3e508276e90b116a5ef0610"/></dir><dir name="Model"><file name="Advanced.php" hash="673206deb25181e532fa901a3cfdd5ea"/><dir name="Fulltext"><file name="Observer.php" hash="d98bcfbda298c86a256b0039c88463ca"/></dir><file name="Fulltext.php" hash="f45fac39b3af844c0ad489cc31fd36c5"/><dir name="Indexer"><file name="Fulltext.php" hash="fdb752b9e4a49a9a06022f7cd943846d"/></dir><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="70ca3a299e5a79880ae1e67593f207eb"/></dir></dir><file name="Layer.php" hash="9b58138cc29407e8df0bbeed10991657"/><dir name="Mysql4"><dir name="Advanced"><file name="Collection.php" hash="4e13897ad78aadf7dd362b68f57449e7"/></dir><file name="Advanced.php" hash="852588dba6d4f9e68b7ccd72ed22efd7"/><dir name="Fulltext"><file name="Collection.php" hash="cdf89df38a26752fb99ad76f1889266d"/><file name="Engine.php" hash="c4268d353f9345fa90659ada21e85120"/></dir><file name="Fulltext.php" hash="dc7b4be01985a3a6be2641549777ba7d"/><dir name="Indexer"><file name="Fulltext.php" hash="4bf43c11bd0a0691220b6f435927b394"/></dir><dir name="Query"><file name="Collection.php" hash="446ad51d56c11f26debb0b2452f3b412"/></dir><file name="Query.php" hash="13604101b9dee37fe489630cec0a8887"/><dir name="Search"><file name="Collection.php" hash="de4b4bb9646a0a2b8185d4ad7d8612d4"/></dir></dir><file name="Query.php" hash="da8170ea36c99b6fe69cadee58ff624c"/><dir name="Resource"><dir name="Advanced"><file name="Collection.php" hash="a31a945c32e467b20a94fcb4cbe0a902"/></dir><file name="Advanced.php" hash="a99cd6a002c704a5de40be954bee02bf"/><dir name="Fulltext"><file name="Collection.php" hash="2b65992d28d7048b208795e07e7de8ba"/><file name="Engine.php" hash="c82ac50d4a4c7dd5cca266611d5bb32b"/></dir><file name="Fulltext.php" hash="4c4aa37aebfe5d8254d7b484eeaf01fa"/><dir name="Helper"><file name="Mysql4.php" hash="1826bcae20cf6f941b03cb999c6302d7"/></dir><dir name="Indexer"><file name="Fulltext.php" hash="f2f34a970c04267593442eac45fabed1"/></dir><dir name="Query"><file name="Collection.php" hash="9e49419777202fb6732dd4e76d80ca83"/></dir><file name="Query.php" hash="a62f0dac4012d29dcd4a4aa0c107eebd"/><dir name="Search"><file name="Collection.php" hash="72a2af0b587772e944547732ec6c46ec"/></dir></dir><file name="Session.php" hash="74ee378fc7dd0cf7c17637b1a876e733"/><dir name="System"><dir name="Config"><dir name="Backend"><file name="Sitemap.php" hash="28eafe560f68a8bd2cf7ae5ed82abd35"/></dir></dir></dir></dir><dir name="controllers"><file name="AdvancedController.php" hash="f58f4832cf837a644aff27d3e9831d82"/><file name="AjaxController.php" hash="c512ebd4bd8ab2f0ad0a2d18f068de21"/><file name="ResultController.php" hash="6199d499b4d9040b3beda927f07248c8"/><file name="TermController.php" hash="3ff5982242c57a7f4ae02ce2cd28b7f0"/></dir><dir name="etc"><file name="adminhtml.xml" hash="666740063c81d96ab024d95108e0eb1b"/><file name="config.xml" hash="071d829deff261b3899f8506a20da0d7"/><file name="system.xml" hash="7e133c61e5dac5dfaf765f29e429bc78"/></dir><dir name="sql"><dir name="catalogsearch_setup"><file name="install-1.6.0.0.php" hash="685d4b125a8c0156af263540c0662aa6"/><file name="mysql4-install-0.7.0.php" hash="b692090952faab6b90b0013012a67a5a"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="fcfb5aa7d2be0d3619fb1273db0bc0fa"/><file name="mysql4-upgrade-0.7.2-0.7.3.php" hash="78f25300474601a56ccae20b2899228a"/><file name="mysql4-upgrade-0.7.3-0.7.4.php" hash="6375fb28c6357cf9d9fa92d92801cd4e"/><file name="mysql4-upgrade-0.7.4-0.7.5.php" hash="85b4b27b90be56dff302e49b9038d419"/><file name="mysql4-upgrade-0.7.5-0.7.6.php" hash="80d97a392fd15c328d6e929428bfe677"/><file name="mysql4-upgrade-0.7.6-0.7.7.php" hash="435822849781f094803c02ded421fe8a"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="20c3c617d661d1bf8a421594a6b3981a"/><file name="upgrade-1.6.0.0-1.8.2.0.php" hash="e9e7f420007c062e4c4536cf49205104"/></dir></dir></dir><dir name="Checkout"><dir name="Block"><file name="Agreements.php" hash="8d56692ecac1020f66f55d778263faff"/><dir name="Cart"><file name="Abstract.php" hash="f9ec040f942e590fdfc265813fd9fd1d"/><file name="Coupon.php" hash="511ace3d8e590ab1d3801d4da74e142c"/><file name="Crosssell.php" hash="862405f0b1554945cf9d249e33f0aaf6"/><dir name="Item"><file name="Configure.php" hash="278e92e905c3100630c48e875aa0466d"/><dir name="Renderer"><file name="Configurable.php" hash="87f290557da9375aa29539bbe00928d2"/><file name="Grouped.php" hash="0bf0e8c6a45b426435a63eb499029599"/></dir><file name="Renderer.php" hash="483f7b9973a1a2e5ec1cd4b380e1c773"/></dir><file name="Minicart.php" hash="2357ea9c0d495c8c608b36d67f8d864d"/><file name="Shipping.php" hash="1d480d34a3aa3829e7a17ec5d66a0100"/><file name="Sidebar.php" hash="479be1a791631077e4848911a2fe9816"/><file name="Totals.php" hash="643a06ca086b06a732004f073688eb35"/></dir><file name="Cart.php" hash="7ffacdd2422f769df682c83156aab966"/><file name="Links.php" hash="3ea4b4fd3a0c040d55c258e2b9c23102"/><dir name="Multishipping"><file name="Abstract.php" hash="b0a1ea630d0c18369dadc359446bb1e1"/><dir name="Address"><file name="Select.php" hash="0b7c8184050f87a58b1e2eb5a82f4dc9"/></dir><file name="Addresses.php" hash="f64e18dd22554cae891a9181e02abed0"/><dir name="Billing"><file name="Items.php" hash="75dbdfc33982acd44dc344b0b23626f5"/></dir><file name="Billing.php" hash="78b56757554c4e521e610376d975648d"/><file name="Link.php" hash="2a19d42e946334b65b12ce78a24ae31f"/><file name="Overview.php" hash="9bc38e98f85764d58ba8292aed5335c6"/><dir name="Payment"><file name="Info.php" hash="a670440634774b806310ea1a251ea034"/></dir><file name="Shipping.php" hash="3f1832bfc1c91d15d4491c4b8fed4ba4"/><file name="State.php" hash="0ec043c400c0ef3640c4946d85277a82"/><file name="Success.php" hash="d869c536a16ec9386b7dfca8eb94ab19"/></dir><dir name="Onepage"><file name="Abstract.php" hash="bcfa18c091ad1413c3398067b7919d66"/><file name="Billing.php" hash="edaae580ab1c058260cd2919bbbd86b5"/><file name="Failure.php" hash="56bf05b27fbf60186f6967e47726c78c"/><file name="Link.php" hash="3273d959fbb7923af96284a736d6fcca"/><file name="Login.php" hash="260a20603dd06f5f0be399db86464f3f"/><dir name="Payment"><file name="Info.php" hash="d165a359b5da76e98f30c8031a12d0a9"/><file name="Methods.php" hash="8f17730b97a36e5d20542afe940146e8"/></dir><file name="Payment.php" hash="0ad11208d8bcf7523aa4690846fa3b1f"/><file name="Progress.php" hash="fe224885dc3f53b82d7faa8c77b2a2dd"/><dir name="Review"><file name="Info.php" hash="6f9552265170840423bddf029c15def5"/></dir><file name="Review.php" hash="6f3b70cd1870a4349af5e78a29ca554b"/><dir name="Shipping"><dir name="Method"><file name="Additional.php" hash="9406f7ac92241d223906b3fa12531a82"/><file name="Available.php" hash="429a98e91babb72ae1eb1d5b03ce28e8"/></dir><file name="Method.php" hash="33542a802205b6e0aecfa7064dd396e5"/></dir><file name="Shipping.php" hash="1f9301b61fe67ab39e6e2d5462ab1b41"/><file name="Success.php" hash="44abaf732daf677bd272fda41c8e83b0"/></dir><file name="Onepage.php" hash="975f6c5d38ee23b49a336baaf90ec759"/><file name="Success.php" hash="e1bdcc4ff63a008a52416e7dcd9f20b7"/><dir name="Total"><file name="Default.php" hash="f72876020eb1e469d32a2439a9335608"/><file name="Nominal.php" hash="4675f9491a2608573a67371428db578d"/><file name="Tax.php" hash="5dc3bd46f6a148f409a7731ce1a5af84"/></dir></dir><dir name="Controller"><file name="Action.php" hash="43c24f20c6930bc9b9227eeb2dc057de"/></dir><file name="Exception.php" hash="4bffd7231c2d9380b18fc9f44ea62e07"/><dir name="Helper"><file name="Cart.php" hash="17e59a7184d8a7cb99b900984736e197"/><file name="Data.php" hash="51217ce0f916f303606743f5f3b8c98d"/><file name="Url.php" hash="9676658d942ddb56c34c76bb48705570"/></dir><dir name="Model"><file name="Agreement.php" hash="5ea689d86468a3e9bfe38d26274548a1"/><dir name="Api"><dir name="Resource"><file name="Customer.php" hash="fd4f5a72d3450a84bf635fea8d4bfa90"/><file name="Product.php" hash="0b62cd2b7405e808aadfc1b94d3a4f9a"/></dir><file name="Resource.php" hash="f70d9833d06848322aa3199ddf6aaff9"/></dir><dir name="Cart"><dir name="Api"><file name="V2.php" hash="8e565977022bad3538d555b4143600ce"/></dir><file name="Api.php" hash="4f3cd847a5e5ec831cf5a91875da1fe8"/><dir name="Coupon"><dir name="Api"><file name="V2.php" hash="300d9073ae574bf1a59c8a49405ccb54"/></dir><file name="Api.php" hash="3d79972a820b8e118eaaeb55fe71df84"/></dir><dir name="Customer"><dir name="Api"><file name="V2.php" hash="37e2cde05368b1825ae543663c98c64b"/></dir><file name="Api.php" hash="e148b69dbf2338fe2ca192de81af2615"/></dir><file name="Interface.php" hash="b12492224b276a8af17c00aa7dd22d3b"/><dir name="Payment"><dir name="Api"><file name="V2.php" hash="0a212d789a1bedf703f930b16873050c"/></dir><file name="Api.php" hash="400fbc37a9bbde155bbec0f92feeabd6"/></dir><dir name="Product"><dir name="Api"><file name="V2.php" hash="72dac519831f333fe8ad4f1cc6b68822"/></dir><file name="Api.php" hash="8462145424fadbc98ecb6ba3b6b03045"/></dir><dir name="Shipping"><dir name="Api"><file name="V2.php" hash="32bd4bbb1a051851da1c7b611f228f09"/></dir><file name="Api.php" hash="2d905e80b2233b6464722d4bcbfa9a22"/></dir></dir><file name="Cart.php" hash="bb30bb3a820eaa24f4244a2d48c4ebfa"/><dir name="Config"><dir name="Source"><dir name="Cart"><file name="Summary.php" hash="08585e104eb4aed09d41c4491ff0d07b"/></dir></dir></dir><dir name="Mysql4"><dir name="Agreement"><file name="Collection.php" hash="0afca26f992a28eb4892066decbcb69b"/></dir><file name="Agreement.php" hash="792d897865a39eecbb919609a410619a"/><file name="Cart.php" hash="be6723269141b1451a4f7c86e7497300"/><file name="Setup.php" hash="c38f1ad47143d40d06a970a385a313bc"/></dir><file name="Observer.php" hash="2d31b6d1cb06767587b0a1c4cdfae1c9"/><dir name="Resource"><dir name="Agreement"><file name="Collection.php" hash="c913189410058ef96f312aa6a5d3527b"/></dir><file name="Agreement.php" hash="e0995392f16cfa42398e742a2c2abced"/><file name="Cart.php" hash="c78518be163aa4f0ab31e61c7f5e0e19"/><file name="Setup.php" hash="081ca5d71ba089d5d605f3186d423313"/></dir><file name="Session.php" hash="f8abf097841c62f56529f482a406296b"/><dir name="Type"><file name="Abstract.php" hash="fc48b701ceebbf0d057cc8d158827fac"/><dir name="Multishipping"><file name="State.php" hash="6d7e4f36bf9477d11f9a2a10cc39ccb1"/></dir><file name="Multishipping.php" hash="b3d5e822ce0e9e3cef587c0f0131e494"/><file name="Onepage.php" hash="298c8bf52aacaff01be823c70e423464"/></dir></dir><dir name="controllers"><file name="CartController.php" hash="f22877ed501b9025f70b25a4a88f05bf"/><file name="IndexController.php" hash="27765c343e0c3204259e5ac11bcad9b2"/><dir name="Multishipping"><file name="AddressController.php" hash="96de3280a8451974d109e44ffbedc311"/></dir><file name="MultishippingController.php" hash="d89dfbf2f130b832792907e62746e9c5"/><file name="OnepageController.php" hash="a34b0aeaae32a1886ba3aa2b8e730261"/></dir><dir name="etc"><file name="adminhtml.xml" hash="3a89352000cfec6bdaebcfdba1fd01d9"/><file name="api.xml" hash="c898575a004eac996f514232ec42d894"/><file name="config.xml" hash="a033a72513ee637d6c86fae693430061"/><file name="jstranslator.xml" hash="09192c5171c833110988c9929eb8dff5"/><file name="system.xml" hash="047fb91fb6234a0f324ae8f88b75bf03"/><file name="wsdl.xml" hash="9a10e25803e84713f5031a168dd0c624"/><file name="wsi.xml" hash="2567bee4ef18e1b426c700ce66c3bcb1"/></dir><dir name="sql"><dir name="checkout_setup"><file name="install-1.6.0.0.php" hash="e9845a59bd24b9ed5ce891dcbc8929fe"/><file name="mysql4-install-0.9.1.php" hash="a583303cd013f23487f913cf7489a65c"/><file name="mysql4-upgrade-0.9.0-0.9.1.php" hash="0bb20a7e58b933371b288d310e528a3b"/><file name="mysql4-upgrade-0.9.1-0.9.2.php" hash="25503ad4ffcb56651642b2519194b852"/><file name="mysql4-upgrade-0.9.2-0.9.3.php" hash="fd21901e41bfea81736ac0ca1075a1ad"/><file name="mysql4-upgrade-0.9.3-0.9.4.php" hash="d79b9cb31eb2a39f4fd51ff16908f0ef"/><file name="mysql4-upgrade-0.9.4-0.9.5.php" hash="ff007a238948d561df296dbed692cb47"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="bc84512cc6d28fff2ee3c02bf1fb2ede"/></dir></dir></dir><dir name="Cms"><dir name="Block"><file name="Block.php" hash="808cc7b98e9d5d6b9bffa3fa2fb00620"/><file name="Page.php" hash="f16549722275e6617b7e08b8c9ae6b24"/><dir name="Widget"><file name="Block.php" hash="ebe7556437cd84216b0a3dbd25b69269"/><dir name="Page"><file name="Link.php" hash="7aedc331ff5e05d58314a0650235d45c"/></dir></dir></dir><dir name="Controller"><file name="Router.php" hash="153a05f03ef48b34b18276dc18faf339"/></dir><dir name="Helper"><file name="Data.php" hash="704b0bf92e17ea9d45ad7aead5825fb8"/><file name="Page.php" hash="ef27b6592747ccbbcd19a7a32e774ffd"/><dir name="Wysiwyg"><file name="Images.php" hash="03b111bbba15da48dd2e1db3af67b944"/></dir></dir><dir name="Model"><dir name="Adminhtml"><dir name="Template"><file name="Filter.php" hash="5f12afe3c720ffb4cea6fed946135bb9"/></dir></dir><file name="Block.php" hash="d4d7b6f77300797ba3ca3d72bc58818c"/><dir name="Mysql4"><dir name="Block"><file name="Collection.php" hash="6fd2d7b274c65303976683c9255f5667"/></dir><file name="Block.php" hash="16bd676bde704194d0eb383b53d853b4"/><dir name="Page"><file name="Collection.php" hash="c34032769799df3970c4edc4ceacce8d"/><file name="Service.php" hash="1404261f5a2aedd536cc79d431348eb1"/></dir><file name="Page.php" hash="477f2eff400115e79e61ef848d129d8c"/></dir><file name="Observer.php" hash="cc521139189d28588d9434bb58e79693"/><file name="Page.php" hash="2967afd2aa4840338d22e2d0e090cc3f"/><dir name="Resource"><dir name="Block"><file name="Collection.php" hash="9a86e9526a30783ed5ded05d9f5e9f14"/></dir><file name="Block.php" hash="d641f3d6a76d9186f44dae801d8094fc"/><dir name="Page"><file name="Collection.php" hash="c6ad6050fb8c4163a438698e1bb2cd0a"/><file name="Service.php" hash="ee4af8837bfd0333f48aa9d1475eea28"/></dir><file name="Page.php" hash="af4b60e4531be743407d0f6c36f5b2dd"/></dir><dir name="Template"><file name="Filter.php" hash="ea84ea91afc7c16077e72ac41a17e7d3"/></dir><dir name="Wysiwyg"><file name="Config.php" hash="a5e8ed87851da04ef8e219cc2b4f6596"/><dir name="Images"><dir name="Storage"><file name="Collection.php" hash="3fbb9096f505cf63a7a54f7f67fa3095"/></dir><file name="Storage.php" hash="8878f38e162917697883f0cd2dab7b8e"/></dir></dir></dir><dir name="controllers"><file name="IndexController.php" hash="0e7e12bc4babef09e69e7467cb65a108"/><file name="PageController.php" hash="55524ed778a003db6067c75ded5c7516"/></dir><dir name="data"><dir name="cms_setup"><file name="data-install-1.6.0.0.php" hash="fa64f4284e2bdbda37b03a586787eadf"/><file name="data-upgrade-1.6.0.0.0-1.6.0.0.1.php" hash="b3b6fa8bef11edfc71f459e7873b6268"/><file name="data-upgrade-1.6.0.0.1-1.6.0.0.2.php" hash="2de01ad853f4243be77e6a8b6953870d"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="fe1b8ff7eebe920ed8ab2adc1eb0c7ea"/><file name="config.xml" hash="57993187979be0c04798d298a31fafd7"/><file name="system.xml" hash="df2b1f760a8f78b9f43a1ec7d05eea13"/><file name="widget.xml" hash="6c29f20e2b3267e154cba1fb4cccfb82"/></dir><dir name="sql"><dir name="cms_setup"><file name="install-1.6.0.0.php" hash="5669050d7b7e3b78e466fcd832eb66ab"/><file name="mysql4-install-0.7.0.php" hash="e7c388928acdec38b1146c1ea6482ad6"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="8199f7126a7a23e3fcd3010c212b86cb"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="2809caa9a092d89fc11e22504bb149be"/><file name="mysql4-upgrade-0.7.10-0.7.11.php" hash="e26c67326979cee3f22ead8e4a330ac2"/><file name="mysql4-upgrade-0.7.11-0.7.12.php" hash="971bb950e4533dc2fbfdb3651062bae8"/><file name="mysql4-upgrade-0.7.12-0.7.13.php" hash="ecf73f12a15a4c76b4b0c184b2815e41"/><file name="mysql4-upgrade-0.7.2-0.7.3.php" hash="c27a9ac81e7664b8555f369eb73c00ba"/><file name="mysql4-upgrade-0.7.4-0.7.5.php" hash="1d526c35029e9ccd1358bfb79ba85219"/><file name="mysql4-upgrade-0.7.5-0.7.6.php" hash="f7c8cad8181dce1db0ff749bb2a1f1c3"/><file name="mysql4-upgrade-0.7.7-0.7.8.php" hash="1a877f21e0adb5d14696f155d744cf3e"/><file name="mysql4-upgrade-0.7.8-0.7.9.php" hash="772f6217e2477aa7c7f6096654c08fc3"/><file name="mysql4-upgrade-0.7.9-0.7.10.php" hash="3533979da1385e39faff4bbde8179e24"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="be1f73f82e59a420e0a74401a0fca80b"/></dir></dir></dir><dir name="ConfigurableSwatches"><dir name="Block"><dir name="Catalog"><dir name="Layer"><dir name="State"><file name="Swatch.php" hash="ba2d565918d86b78d018bf2252ce107f"/></dir></dir><dir name="Media"><dir name="Js"><file name="Abstract.php" hash="65d13549eff5aed01e7de5fbd1dae86a"/><file name="List.php" hash="5d1bf59d2c66986f88516c17e578843d"/><file name="Product.php" hash="0e01cd15f0d717b0ed2db9a5c63a5d8b"/></dir></dir><dir name="Product"><dir name="View"><dir name="Type"><dir name="Configurable"><file name="Swatches.php" hash="ca8cde3ec6ecba0f802a4be0a95b2720"/></dir></dir></dir></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="62f9325a431cecabb0d466cf4a02f58e"/><file name="Mediafallback.php" hash="ba7c295669947104325cf6359a8c86ab"/><file name="Productimg.php" hash="7c45bc60904625048daebe1ae6ee3426"/><file name="Productlist.php" hash="485ac59635fa6338bb6047899ce210b6"/><file name="Swatchdimensions.php" hash="5d9b2d9c5cb9db5eee4b3a43d11c940d"/></dir><dir name="Model"><file name="Observer.php" hash="438c0c73fd36dc552c53415fb16d0803"/><dir name="Resource"><dir name="Catalog"><dir name="Product"><dir name="Attribute"><dir name="Super"><file name="Collection.php" hash="fc55d935904ce1398e8037af43d761c8"/></dir></dir><dir name="Type"><dir name="Configurable"><dir name="Product"><file name="Collection.php" hash="7ee76f04040a166ff09c9f49057916cf"/></dir></dir><file name="Configurable.php" hash="e240a0d73107c1a05bcd2f2c717b6305"/></dir></dir></dir></dir><dir name="System"><dir name="Config"><dir name="Source"><dir name="Catalog"><dir name="Product"><dir name="Configattribute"><file name="Select.php" hash="c1307cb449fcfc2b28405c32ac1be385"/></dir><file name="Configattribute.php" hash="36770f92cc2f60edf324faa1f7c26f0b"/></dir></dir></dir></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="520821e755cb0713359c9d5e41e9b793"/><file name="config.xml" hash="34c0ad0df08a9ccdbb358d7d46778cf8"/><file name="jstranslator.xml" hash="6c0bfe8d32613e25cd6e81bf40e2eb52"/><file name="system.xml" hash="8dd1540a19455c00cf2644ba74d1fa1a"/></dir></dir><dir name="Connect"><dir name="Block"><dir name="Adminhtml"><dir name="Extension"><dir name="Custom"><dir name="Edit"><file name="Form.php" hash="d789b9e5f5b5be54256d54c2067a7495"/><dir name="Tab"><file name="Abstract.php" hash="faa6ebfa9a24b2726091a7079e32b2af"/><file name="Authors.php" hash="18e44b9c37050798bc44e7bebefe6b79"/><file name="Contents.php" hash="a69e88be8f99a4dfdc42d1d8a5cfe64c"/><file name="Depends.php" hash="2f4c09428ffbafc3c976394e94a013ee"/><file name="Grid.php" hash="ff77b7a1539670805534f87ae2ef4a93"/><file name="Load.php" hash="1e51f328e913bbcb0a08feed4d1fdfc1"/><file name="Local.php" hash="2d3289cfa670c6ed650344225ad9175a"/><file name="Package.php" hash="e9d0265bb0a008a6c36cc760ceec0386"/><file name="Release.php" hash="b7f347176161922003596b1819dc0027"/></dir><file name="Tabs.php" hash="b27a5ab996909088f5d914598ffd5e22"/></dir><file name="Edit.php" hash="c7861675784fbb52b833e3dbe0f480fa"/></dir></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="08cf5672c1c0b67a213ba6ace2a58107"/></dir><dir name="Model"><dir name="Extension"><file name="Collection.php" hash="8a067c24e32d6ce8ea9d8a5968a728f7"/></dir><file name="Extension.php" hash="816868c3415ddd41f45e409501f6c7dc"/><file name="Session.php" hash="5440476ad3ef3f7c3c2230ae1ab28ea8"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Extension"><file name="CustomController.php" hash="f33eead77dce7b537894d8b16226c5f2"/><file name="LocalController.php" hash="d930aaed8a7b773573b59e8bb442ddf6"/></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="101c7900791af6e5ee9c95da47c483f1"/><file name="config.xml" hash="fe2f20c5ab7f316d5c8148ff72008105"/></dir></dir><dir name="Contacts"><dir name="Helper"><file name="Data.php" hash="1a738165172917c879f9ac141c11b9e1"/></dir><dir name="Model"><dir name="System"><dir name="Config"><dir name="Backend"><file name="Links.php" hash="ba1b3017172093f46465a105ad2996a2"/></dir></dir></dir></dir><dir name="controllers"><file name="IndexController.php" hash="bf03d63562bb14bc90fed7f19e0b7f30"/></dir><dir name="etc"><file name="adminhtml.xml" hash="2cedca70a58666ac2347bbe3f9bdafd0"/><file name="config.xml" hash="5c00f20bddf8f55411db826d7d613921"/><file name="system.xml" hash="4de5af82897ea61d65abc342179e27f0"/></dir><dir name="sql"><dir name="contacts_setup"><file name="install-1.6.0.0.php" hash="13f3139c5258cd52688763b6b9dd99b0"/><file name="mysql4-install-0.7.1.php" hash="94a59176972576cb435ea6505e08636f"/><file name="mysql4-install-0.8.0.php" hash="894c4d3fda75ee5ff0bad394ef03ae15"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="f21132d7a6189d17610d76954ba3e6f8"/></dir></dir></dir><dir name="Core"><dir name="Block"><file name="Abstract.php" hash="cd68bf84fe2894432df500d8398930e1"/><file name="Flush.php" hash="689a5e3eb946bcb0d761dfbc1ef737d4"/><dir name="Html"><file name="Calendar.php" hash="6159aac3f3bcfbb50f6292f8426128b5"/><file name="Date.php" hash="44aa2b30529c837699f0302d3f5a129e"/><file name="Link.php" hash="c0586fbede4941f473fb0d9b4199eabb"/><file name="Select.php" hash="3a00a83d4fcc827a19050989db504111"/></dir><file name="Messages.php" hash="81e21fc3d8782d4ddb9f82847f79f78d"/><file name="Profiler.php" hash="768c063dfbf1fd40e5d1472fe3f77884"/><dir name="Store"><file name="Switcher.php" hash="81c614c6aaa95f2b016351aa60a6565c"/></dir><dir name="Template"><file name="Facade.php" hash="66b97c587f08c3312a3a7e902d012d25"/><file name="Smarty.php" hash="726d82c94a6e6aca2b2ecc3a4abb2ce2"/><file name="Zend.php" hash="62cca867dd890b50e95988c0f863861c"/></dir><file name="Template.php" hash="ed17f8e7bd43f7856b5b68f6c8665ae4"/><dir name="Text"><dir name="List"><file name="Item.php" hash="be4927dd33ac2147f6bbee57c4d9ce63"/><file name="Link.php" hash="8935c490d0b2cfea4147236707135178"/></dir><file name="List.php" hash="0415c60e89ee20a9b164303625630320"/><dir name="Tag"><dir name="Css"><file name="Admin.php" hash="bd031a45ce2d6071fcaa9d6c68c16201"/></dir><file name="Css.php" hash="871935fa964adbf99609e014e60d4ddd"/><file name="Debug.php" hash="36f5331bdcb23703d33418c423abc5ae"/><file name="Js.php" hash="659e91e2758e5e5582a42188e8671f59"/><file name="Meta.php" hash="cee17b0e3efeb8cd34c4f7f34d191789"/></dir><file name="Tag.php" hash="09b53ed3fe7f8730140f85ef49d8ba6e"/></dir><file name="Text.php" hash="5dd0190a290ba9314143284a465f3783"/></dir><dir name="Controller"><dir name="Front"><file name="Action.php" hash="0bd3f2b0428b65fec0b20d3260624a4c"/><file name="Router.php" hash="f4a1e85ed9ceff4df31de9fc3925b749"/></dir><dir name="Request"><file name="Http.php" hash="af9331e309ad5a600e37f45f456b85ea"/></dir><dir name="Response"><file name="Http.php" hash="b4e08d0cf4f3958fea43e98d23e921a3"/></dir><dir name="Varien"><file name="Action.php" hash="66156838ee7eeb45e3a5616ce2db0ea3"/><file name="Exception.php" hash="a798a1e14cf080320fd8ff1c61b7c0ce"/><file name="Front.php" hash="fa826d6cb39da808d9f2abdb6c4a3619"/><dir name="Router"><file name="Abstract.php" hash="9b7dbb6f0025291498471f3df80a1775"/><file name="Admin.php" hash="e2bfb79df9e269912795b699a2cbc57c"/><file name="Default.php" hash="4af9b582bf8c1d58a787c1b0fd814296"/><file name="Standard.php" hash="e270230e4ab92d50e975c49774ef57b2"/></dir></dir></dir><file name="Exception.php" hash="e24ff5a61dfb253617d88752d7035dae"/><dir name="Helper"><file name="Abstract.php" hash="8e71f2a30d98a6a7e9bdfa3d473679ed"/><file name="Array.php" hash="484a0a74a7f9e3c08c3a4b73f7337ac5"/><file name="Cookie.php" hash="7c6e78a4bb52f8a2e8cd72c611c3a607"/><file name="Data.php" hash="ef93ca79009474e6b8d935fdd7f03c46"/><dir name="File"><dir name="Storage"><file name="Database.php" hash="ad54c841a0cb8f9a6c85923fd70899d7"/></dir><file name="Storage.php" hash="8f02a3f236314fceb25ab16c5d47f2f6"/></dir><file name="Hint.php" hash="694fd4bbddbaacdd56bd07683802a234"/><file name="Http.php" hash="a63b38419324891ec908414714758d00"/><file name="Js.php" hash="be84944e4f41c399d10b154b8a130a81"/><file name="String.php" hash="fd32204caa683023e76554ac36f0f581"/><file name="Translate.php" hash="a6dd08880eb8f27ef543d93ea532fff2"/><file name="UnserializeArray.php" hash="d5506fe8abd8794aaa7e4ad23821bce7"/><dir name="Url"><file name="Rewrite.php" hash="97e46be2318d6a82d40e217f234663d6"/></dir><file name="Url.php" hash="9b1970fc80d30d7057b787063db3745a"/></dir><dir name="Model"><file name="Abstract.php" hash="3ebc995256ad69f924819f96e401b60f"/><dir name="App"><file name="Area.php" hash="6c814d69b0066a826869f69841e0b287"/><file name="Emulation.php" hash="218411722dbc2925f6afd70c4c493cb7"/></dir><file name="App.php" hash="c7d73ebf537565a7293a88ece6ea7613"/><file name="Cache.php" hash="00e7b0a35d49e3774f39b4c9811017da"/><file name="Calculator.php" hash="7903aee2fa175e91615c702870866b9f"/><dir name="Config"><file name="Base.php" hash="95d6606f6dc37e645b9bf5d95f860dac"/><file name="Data.php" hash="b002587f1ecdf2ddced2371c44591eb0"/><file name="Element.php" hash="070129342aea34a54ba3cc99052d4075"/><file name="Options.php" hash="a2afec98dfdde676d372aab35fc1d0b3"/><file name="System.php" hash="e44dcb546c68d06df2e58d135030a140"/></dir><file name="Config.php" hash="d1c19353abedadb15c0ee22598a59fc3"/><file name="Convert.php" hash="96387227fa5be3cff23e39a345234b75"/><file name="Cookie.php" hash="cc5c60b0a34494b472adcb4197286026"/><file name="Date.php" hash="1f7628558283dc16fc637116fc3df677"/><dir name="Design"><file name="Config.php" hash="93276cf40f2f17108cb16e6feb0fb674"/><file name="Fallback.php" hash="5484111090937874c9989a2df61a13d8"/><file name="Package.php" hash="267df9446f26ba8a64cb2c04c9f7b20d"/><dir name="Source"><file name="Apply.php" hash="232aac8a7ca16ed044f1d88d8ece4775"/><file name="Design.php" hash="b594cf0c90f77d1eab9947667024a6b3"/></dir></dir><file name="Design.php" hash="edf9897c28bb0697addc9050785b1389"/><file name="Domainpolicy.php" hash="80272f0001a2360486342d53df6a7890"/><dir name="Email"><file name="Info.php" hash="b928f262cef6543836df610a9ddb81d5"/><file name="Queue.php" hash="9e9b62cc16bd02a38cbf8412f845a761"/><dir name="Template"><file name="Abstract.php" hash="8db81c0e7c6c29983bc4fce512875a9f"/><file name="Filter.php" hash="5b30e3fd74c056d97ba00b49f3a7691b"/><file name="Mailer.php" hash="14660ee8eeee2b300b46a01392c35712"/></dir><file name="Template.php" hash="8be3176a5deba047d65b740039d969b1"/><file name="Transport.php" hash="46a8e4e2e504fc31a034f41bd05af5ca"/></dir><file name="Email.php" hash="e31ab1cef8d2dbaf9c9e02239774c039"/><file name="Encryption.php" hash="0ce4aa3ca4955465e1264a1c3564c621"/><file name="Factory.php" hash="1def8ecf557dd80c27bd8b9ae0389aa0"/><dir name="File"><dir name="Storage"><file name="Abstract.php" hash="abfc781db12a26c13039ac54b2ab08f3"/><dir name="Database"><file name="Abstract.php" hash="9558ea6318d43c989527c5c6781427d9"/></dir><file name="Database.php" hash="c8cd146d38f94cb1a34aa7ba4807e9d5"/><dir name="Directory"><file name="Database.php" hash="59a04f3cc135f69cc177d7713ee44da5"/></dir><file name="File.php" hash="33253411661b819e14dd8ffcbf68b991"/><file name="Flag.php" hash="36cd58ed02c91be1d8d6e163a6a37eaf"/></dir><file name="Storage.php" hash="29f0f2b03940992772d6d575742eac8b"/><file name="Uploader.php" hash="ac91eabcb578a50962258f0a1f684472"/><dir name="Validator"><file name="AvailablePath.php" hash="45f0f713d4280835f44ab663d1644d4c"/><file name="Image.php" hash="fed721fed352dcf04bae8d86d64c5e38"/><file name="NotProtectedExtension.php" hash="2a5bc90d074468f322ec80c5f22ff994"/></dir></dir><file name="Flag.php" hash="7dfd86cc88faaecb61270b06a8949afe"/><dir name="Input"><dir name="Filter"><file name="MaliciousCode.php" hash="63300b6d85bfb07b110f5175b2ef857d"/></dir><file name="Filter.php" hash="9a705f56a3b458781ed1d0e08eb6d9de"/></dir><file name="Language.php" hash="5553b1a3996e214ee04bb873d2e496a2"/><dir name="Layout"><file name="Data.php" hash="ad8e232f9bfbcb6a2597762a4794ef59"/><file name="Element.php" hash="f763346da15b317cee92c02f57a37292"/><file name="Update.php" hash="d6b3c449d3e49dabc4087c36d083fa55"/></dir><file name="Layout.php" hash="c3da90be498953dd5acbe07a4e68cb7c"/><dir name="Locale"><file name="Config.php" hash="f38c5dec6e40442e75cac2587838acba"/></dir><file name="Locale.php" hash="8501f332360a8052748e3b25d1db656a"/><dir name="Log"><file name="Adapter.php" hash="16e93511497b13a8e07e4d517225ed0c"/></dir><file name="Logger.php" hash="beb95c8bf5b8505b8104278d3b9958a5"/><dir name="Magento"><dir name="Api"><file name="V2.php" hash="990a2e9e5813e05c5d1add95e22148a6"/></dir><file name="Api.php" hash="6fc47bad41f25c86614e3339b6171c4b"/></dir><dir name="Message"><file name="Abstract.php" hash="0b916894d2dc70d6ce62d46921e33d37"/><file name="Collection.php" hash="344cf87be807bf3d3824af6aca2bb9e3"/><file name="Error.php" hash="403f98d2d9612549c6f6258fa10a8d17"/><file name="Notice.php" hash="5d9e6c832be4e1bef81ad8081f75bc43"/><file name="Success.php" hash="66438b0c9cff77eb73ff5ff315df52f4"/><file name="Warning.php" hash="aafb26c475337e687ff1dfeb005edcaa"/></dir><file name="Message.php" hash="85d7966c908e150ac1e8fc41244f245a"/><dir name="Mysql4"><file name="Abstract.php" hash="44d0b31e3085e15ca2b3b0f9d0be2c5c"/><file name="Cache.php" hash="535e51f36277a7df2d30b9d2d6601b3c"/><dir name="Collection"><file name="Abstract.php" hash="4a98bfc00bea6a5da2fc5bf3609e6433"/></dir><dir name="Config"><dir name="Data"><file name="Collection.php" hash="4ef79294f6f55c6c2722abfb7ed34706"/></dir><file name="Data.php" hash="f53c79280bc295051fa7b3860cfea9ae"/></dir><file name="Config.php" hash="a42970610f64863e0097a58b9e6cc23b"/><dir name="Design"><file name="Collection.php" hash="743cd2d296bb161ecc98616e57a05d12"/><dir name="Package"><file name="Collection.php" hash="b0e13eba451dcbc84e59b3c1ba879b23"/></dir><dir name="Theme"><file name="Collection.php" hash="d15267e5e6c26e9e59a9c4be4735986e"/></dir></dir><file name="Design.php" hash="eda39942885b6a2679aa1ef3f41ea025"/><dir name="Email"><dir name="Template"><file name="Collection.php" hash="4f591b6e7817ed5fe9a06d1bbf77acf6"/></dir><file name="Template.php" hash="3ff3b156f0cc0cb243a1b09b74673339"/></dir><dir name="File"><dir name="Storage"><file name="Abstract.php" hash="3922d04eb1e885ba9ee02df7cc9a6408"/><file name="Database.php" hash="c60d8d1728e449fac71590330def8f94"/><dir name="Directory"><file name="Database.php" hash="4ce089a2e5594faf2a7cb6ea88944dd1"/></dir><file name="File.php" hash="2072a576162d3e7d4b2d17dfff5c647f"/></dir></dir><file name="Flag.php" hash="a0a11d34b0b0e100b96fc11c9c975a1f"/><dir name="Language"><file name="Collection.php" hash="58144f7d71289903e929638fc4fc5f1d"/></dir><file name="Language.php" hash="aced85d1d84667357d79ebb0fb8bc3b8"/><file name="Layout.php" hash="57bc0dbe1d31bb305e4660759025901b"/><file name="Resource.php" hash="c408f0d94d0cf7c85b60b281665c7444"/><file name="Session.php" hash="2a829f916eb8f50f7a63b670ca399bf2"/><dir name="Store"><file name="Collection.php" hash="ee4457bf62e4b2e3e7614558cf2f0cb7"/><dir name="Group"><file name="Collection.php" hash="e78c87707665daf3261d0e61aa003175"/></dir><file name="Group.php" hash="2f704ed0988128cc94aa579c23b40195"/></dir><file name="Store.php" hash="b9ec990140144ae2b4ff4b1b4357a276"/><dir name="Translate"><file name="String.php" hash="2550beff52f20647c9070a521b177d81"/></dir><file name="Translate.php" hash="2bae6bc9d6d6f9b54d1e74e3ef541620"/><dir name="Url"><dir name="Rewrite"><file name="Collection.php" hash="618b2b7ac1893631af1c96381be8d6e2"/></dir><file name="Rewrite.php" hash="f0847e55d9ab40a714791c1866102915"/></dir><dir name="Variable"><file name="Collection.php" hash="8c6cf80f822398f16ddcb1f700e5b97a"/></dir><file name="Variable.php" hash="e3412c25b10a5e79c59e90f7fe817ce3"/><dir name="Website"><file name="Collection.php" hash="34999e0a76945a915346632845961062"/></dir><file name="Website.php" hash="a6457ca65b822869a2c42abab954ba12"/></dir><file name="Observer.php" hash="7a1f30833ecd016885791a9df66ba83e"/><dir name="Resource"><file name="Abstract.php" hash="694793a99cc08f415b84aa6f87d3b080"/><file name="Cache.php" hash="d421e47284b76a6d0034a55954354601"/><dir name="Config"><dir name="Data"><file name="Collection.php" hash="aa72268f5dcd2cb27a2e9583bd9a7b97"/></dir><file name="Data.php" hash="6f5b1ffa861eb1a771b650e55393b8d2"/></dir><file name="Config.php" hash="b609a605366bda0d9b77fb0b4da8f680"/><dir name="Db"><file name="Abstract.php" hash="2aa23ed3e3cfbb4f1ee504b1b080dc93"/><dir name="Collection"><file name="Abstract.php" hash="856ffddfc4b7eef7e653fc9f4ed1cc12"/></dir></dir><dir name="Design"><file name="Collection.php" hash="9eda836bfcfc20bd10d992cff0f42dee"/><dir name="Package"><file name="Collection.php" hash="71080e12d259608667ca14694fc06786"/></dir></dir><file name="Design.php" hash="ab67c437c1fb6b21e174271b5eea4795"/><dir name="Email"><dir name="Queue"><file name="Collection.php" hash="dc99090438f9d3da4eafdd6289b0e593"/></dir><file name="Queue.php" hash="e6ff94522082f76abd83abeede4350c4"/><dir name="Template"><file name="Collection.php" hash="74ff7fee4831faeabb215e745ea2c5d5"/></dir><file name="Template.php" hash="e24b6c1aa4117729b9e1fef8ce470df1"/></dir><dir name="Entity"><file name="Abstract.php" hash="fbab338c7741fac0f55ee32753eabb31"/><file name="Table.php" hash="82ccdee4411353933aa056b40219c66a"/></dir><dir name="File"><dir name="Storage"><file name="Abstract.php" hash="63f9930772d7d6218a97eba4ef2e51e5"/><file name="Database.php" hash="9f8d3d2ae031cf910550022e48e04f24"/><dir name="Directory"><file name="Database.php" hash="7fd49ee18d156fc2cb5322497f066d8e"/></dir><file name="File.php" hash="db44e3c71d0a7ed03a1f98772fee81a1"/></dir></dir><file name="Flag.php" hash="fd7d58c0720668e089e1721675309e11"/><dir name="Helper"><file name="Abstract.php" hash="7f7d5923b0d30b78b5bb09101c6fa45d"/><file name="Mysql4.php" hash="9b7abcaf9407b0cfd54878aac2dc4a71"/></dir><file name="Iterator.php" hash="87812d0f3cc7c2aa3ad880845a9d81cb"/><dir name="Language"><file name="Collection.php" hash="a94b4d950521edf293306f2ce3d1f2e3"/></dir><file name="Language.php" hash="1a8abe38849f32cf206d94908d0bb157"/><file name="Layout.php" hash="eceec3e6ab5a55a7cdbcc9ed830cd9d8"/><file name="Resource.php" hash="5dd772aa7bd15d23902ec45c73a6e757"/><file name="Session.php" hash="f6113f0ded8c6c1ac47a3d3ea30a5d05"/><dir name="Setup"><dir name="Query"><file name="Modifier.php" hash="441f79117cff4d7d6bc7e1bf3af0534d"/></dir></dir><file name="Setup.php" hash="af2e8140844cf09135c7270cb6cc57b6"/><dir name="Store"><file name="Collection.php" hash="77e38160ee990c0ef701635da0727f27"/><dir name="Group"><file name="Collection.php" hash="69ef898295bf51476f85350909a30dbb"/></dir><file name="Group.php" hash="aadd4f4301afaa93d49cb98cd6a31a27"/></dir><file name="Store.php" hash="8deab7031d5538151a02b5a7b27b4de1"/><file name="Transaction.php" hash="304008e754044346662a2763add16495"/><dir name="Translate"><file name="String.php" hash="14389d4db4ba5795ccfbe923b876fd7d"/></dir><file name="Translate.php" hash="6717d307f1747093eaea31225aa18935"/><dir name="Type"><file name="Abstract.php" hash="688b26e10a67f4484131cdf9de51557b"/><dir name="Db"><dir name="Mysqli"><file name="Setup.php" hash="8a5f3235eb45f511db2b0e14ca7bac3d"/></dir><file name="Mysqli.php" hash="6459b80b973a0944cba2619a173aa895"/><dir name="Pdo"><file name="Mysql.php" hash="747a0822bd08cb3f0b2d1526c6dfeccf"/></dir></dir><file name="Db.php" hash="b8eb52fe758a85e093f2e7694d8663ca"/></dir><dir name="Url"><dir name="Rewrite"><file name="Collection.php" hash="683f36f30c844c054f01be8ff310230e"/></dir><file name="Rewrite.php" hash="c8498de6f192598ceb876bf3787fa65f"/></dir><dir name="Variable"><file name="Collection.php" hash="b5413db4271eb3a3d0333c1406fb1058"/></dir><file name="Variable.php" hash="75b3c3b20e1bfd1a0f4017b7e64ec1ce"/><dir name="Website"><file name="Collection.php" hash="1c353c8ed5e653bf799a81896da8a645"/></dir><file name="Website.php" hash="e385a6d19f6d87c1e8c0ac0e31dbf471"/></dir><file name="Resource.php" hash="a97d261d1638b03f3a19ba7947c0f03e"/><dir name="Session"><dir name="Abstract"><file name="Varien.php" hash="a20202cd6f202a0462c31f74c8b5db38"/><file name="Zend.php" hash="48602c6c721a1419a16291602bbc6e6b"/></dir><file name="Abstract.php" hash="0fd88d73bd06001281b3f4cd3185f855"/><file name="Exception.php" hash="1419325851e05e56085a80360993ec7a"/></dir><file name="Session.php" hash="e2c1d6077d37b1fd5a648b1f7835c3e7"/><dir name="Source"><dir name="Email"><file name="Variables.php" hash="2d6e88ba25d3321a5af0d7fde74569c3"/></dir></dir><dir name="Store"><dir name="Api"><file name="V2.php" hash="23fce9936bfde4eddf3bc042da49c704"/></dir><file name="Api.php" hash="e26d51518a7bcd09ed5da2fac58b1b4f"/><file name="Exception.php" hash="59d2bd50b218ccf5f217e8f4f87db294"/><file name="Group.php" hash="685ea0a277d23ec5e17d44728deef16a"/><file name="Observer.php" hash="beed858da489fece24868586ae67624b"/></dir><file name="Store.php" hash="f895e6a4d4fc82542c471c2c276ff215"/><file name="Template.php" hash="e78ec82cbb982ce5e06e6937e8616ae0"/><dir name="Translate"><file name="Expr.php" hash="5e7825d1ad5d680fae8d2cb2e3e56a3f"/><file name="Inline.php" hash="c46e75758767785fcbf90429f3b27f7c"/><file name="String.php" hash="ff5d4c7d438f42a96481bcf50dcfe726"/></dir><file name="Translate.php" hash="40815cb1b455d9b11ee7bc5b209f7883"/><dir name="Url"><dir name="Rewrite"><file name="Interface.php" hash="9c5c19dbddac570166efa99fe23636eb"/><file name="Request.php" hash="1d981ff6255931373ab21012ef728a43"/></dir><file name="Rewrite.php" hash="65284f3fd21eab368bb60e9fcef41980"/><file name="Validator.php" hash="c701ffe374838bcc86a02daeb531716c"/></dir><file name="Url.php" hash="8d74e01ecc551a7fb4170fce4aab07d2"/><dir name="Variable"><file name="Config.php" hash="2e89c7e08f594c235ee7c54d9d8ecd04"/><file name="Observer.php" hash="abeffe7406776babb339ff8530c97bcb"/></dir><file name="Variable.php" hash="6b550791573110761a25dd7a014bd0ea"/><file name="Website.php" hash="159a68fc3084c56aa44b77214f6d22be"/></dir><dir name="controllers"><file name="AjaxController.php" hash="0fdf2d77ca172a26f52a058d9f4a7744"/><file name="IndexController.php" hash="bf938059a97c970206756db4f00c9584"/></dir><dir name="etc"><file name="api.xml" hash="6bbb100de305337ddec14d20e0cfdf70"/><file name="config.xml" hash="c00eebd00ec8985ebd797c37c375f7af"/><file name="jstranslator.xml" hash="367a1b0e9f7e7143e105f42c597eaaae"/><file name="system.xml" hash="23e5328e41753a3ea8527ceeba1bc9bf"/><file name="wsdl.xml" hash="79501d6ccf39846b5dd551e85880dcb8"/><file name="wsi.xml" hash="31fa195d527181c946019bcd44d819d6"/></dir><file name="functions.php" hash="c9a07d4104e2af4a909af41993a072cd"/><dir name="sql"><dir name="core_setup"><file name="install-1.6.0.0.php" hash="c69f3177bd988dcf47af832d0f30d867"/><file name="mysql4-data-upgrade-1.6.0.2-1.6.0.3.php" hash="fb24c3e570816db655406d337f606568"/><file name="mysql4-install-0.7.0.php" hash="d7fd9846b6460fc316c7e16c6728dedc"/><file name="mysql4-install-0.8.0.php" hash="cdee3cc30f18e8867a1a2804cdd84d03"/><file name="mysql4-upgrade-0.6.26-0.7.0.php" hash="345976f0456345f682763fac7316cc55"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="32fefbbffd4cecd44bb883383cfd9371"/><file name="mysql4-upgrade-0.7.2-0.7.3.php" hash="66ebb46fb35c1af148779933ef65fca8"/><file name="mysql4-upgrade-0.7.3-0.7.4.php" hash="c5412377ad835880e87f4732a3b6714a"/><file name="mysql4-upgrade-0.7.4-0.7.5.php" hash="0c21a8b350aeef94116668aca96d4ded"/><file name="mysql4-upgrade-0.7.5-0.7.6.php" hash="9e245ebd96215aae487df642a4244006"/><file name="mysql4-upgrade-0.7.6-0.7.7.php" hash="67525f1672117b14999c40df9b4ffe44"/><file name="mysql4-upgrade-0.7.7-0.7.8.php" hash="8aa20d72ba29c2c4c036a74f5da81354"/><file name="mysql4-upgrade-0.7.8-0.7.9.php" hash="60cfbe9a16cea4084149fbb60aadfe33"/><file name="mysql4-upgrade-0.8.0-0.8.1.php" hash="4b5bfe8f064af5094380fd0c6f4230b8"/><file name="mysql4-upgrade-0.8.1-0.8.2.php" hash="5e889e1e36552f97c6b47ccacc037878"/><file name="mysql4-upgrade-0.8.10-0.8.11.php" hash="e7b405393ee923ce77b4fc73fe2c49e5"/><file name="mysql4-upgrade-0.8.11-0.8.12.php" hash="e5177617bf9ff7cad413ebadbaa36c2e"/><file name="mysql4-upgrade-0.8.12-0.8.13.php" hash="58d94dcd86435d9a9678110d7380e9e6"/><file name="mysql4-upgrade-0.8.13-0.8.14.php" hash="4ef7145c13ab85b257e149ee4ce42aae"/><file name="mysql4-upgrade-0.8.14-0.8.15.php" hash="11462279aad7a312d138871c1232bc4c"/><file name="mysql4-upgrade-0.8.15-0.8.16.php" hash="b68084f2461e13da31d10ffb69b6c427"/><file name="mysql4-upgrade-0.8.16-0.8.17.php" hash="cc5a96f1ec35576e5cc04d2f3c8fcdbe"/><file name="mysql4-upgrade-0.8.17-0.8.18.php" hash="a049195d8b49c8fac0b422b55444f072"/><file name="mysql4-upgrade-0.8.18-0.8.19.php" hash="5c1e0d78fe374bc179fac4e0a201024c"/><file name="mysql4-upgrade-0.8.19-0.8.20.php" hash="57188799f2c9aa98b2db3e9cc88f57ca"/><file name="mysql4-upgrade-0.8.2-0.8.3.php" hash="5c4c948191730c5aaa46a9c0a4d529af"/><file name="mysql4-upgrade-0.8.20-0.8.21.php" hash="26306dc6458b0403f1a05bc92447af40"/><file name="mysql4-upgrade-0.8.21-0.8.22.php" hash="1375cdd7860773ed2f80282af9986008"/><file name="mysql4-upgrade-0.8.22-0.8.23.php" hash="96d94946d3d1d8471ff619228407cb7a"/><file name="mysql4-upgrade-0.8.23-0.8.24.php" hash="219d2459c587c5e8a81290c56154e0d6"/><file name="mysql4-upgrade-0.8.24-0.8.25.php" hash="6f1f9c00a382d22bcc220e1b9f3c8905"/><file name="mysql4-upgrade-0.8.25-0.8.26.php" hash="4558c5a6d9be1ca611ac9ca058e4edfb"/><file name="mysql4-upgrade-0.8.26-0.8.27.php" hash="65e15fa502932b633a0c8c828a6334bf"/><file name="mysql4-upgrade-0.8.27-0.8.28.php" hash="19590c1ee41148edfc36fc72965e402b"/><file name="mysql4-upgrade-0.8.3-0.8.4.php" hash="3cc627e59b0ceb3b3016e328c88b829e"/><file name="mysql4-upgrade-0.8.4-0.8.5.php" hash="5a829783619299f2538700da0ae1e123"/><file name="mysql4-upgrade-0.8.5-0.8.6.php" hash="3e314226e8fbaa3bcaf1694faefd8809"/><file name="mysql4-upgrade-0.8.6-0.8.7.php" hash="c2344bc955f3fb823c2926310209c25e"/><file name="mysql4-upgrade-0.8.7-0.8.8.php" hash="9b86798fe5b7fe0cb5cc595874b07501"/><file name="mysql4-upgrade-0.8.8-0.8.9.php" hash="d2bbc20b4f415a188d706abd0f67bb0d"/><file name="mysql4-upgrade-0.8.9-0.8.10.php" hash="6255b0401694107d9c3c67d0a7cb4a6f"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="91433f5df703361ded3d282200923d2d"/><file name="upgrade-1.6.0.1-1.6.0.2.php" hash="dba0fecbc83001d5c62b114522103050"/><file name="upgrade-1.6.0.2-1.6.0.3.php" hash="e043db02bb9983863f06f46dac0b78c2"/><file name="upgrade-1.6.0.3-1.6.0.4.php" hash="1be7d02e33df1abe18f3df4d76063329"/><file name="upgrade-1.6.0.5-1.6.0.6.php" hash="eb7b611019f69996f4963183636b6094"/></dir></dir></dir><dir name="Cron"><file name="Exception.php" hash="7ad70a581e997407204ecec98768cdd5"/><dir name="Helper"><file name="Data.php" hash="a977275822fc9e8de01235a624ba7cc4"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Schedule"><file name="Collection.php" hash="62f2dd629591cebffd75273bdea7c5b7"/></dir><file name="Schedule.php" hash="6ac83aed52b6ae3256a9906a4370a66c"/></dir><file name="Observer.php" hash="3a61f2a4165aadd074686fc4dd6bfeea"/><dir name="Resource"><dir name="Schedule"><file name="Collection.php" hash="a8f6dddabd1265fb4743245ced01230b"/></dir><file name="Schedule.php" hash="33fc20836d2171d9949b73cc50e2d105"/></dir><file name="Schedule.php" hash="65ca2746160839b4514f1284b95f8070"/></dir><dir name="etc"><file name="config.xml" hash="8ea948903301aed5a1117e1ec2b52b7d"/><file name="system.xml" hash="bc4190c5898ffc674bf7ae552b14cc7e"/></dir><dir name="sql"><dir name="cron_setup"><file name="install-1.6.0.0.php" hash="4ac9e29af105f14c9ea6e0565eb21dce"/><file name="mysql4-install-0.7.0.php" hash="3ba830a77c1d985f7a83fe0e008475e9"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="4d5d452d004acae9c2ace046afe0ad92"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="9008bddeb8e836fbb26f0c20aab65fdf"/></dir></dir></dir><dir name="CurrencySymbol"><dir name="Block"><dir name="Adminhtml"><dir name="System"><file name="Currencysymbol.php" hash="f47a77be4420bffac85f7d872e89f102"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="147a5a7af07ed0831da300c3f100c20e"/></dir><dir name="Model"><file name="Observer.php" hash="c6a9f862b406983ac0c3b4667998338b"/><dir name="System"><file name="Currencysymbol.php" hash="f43af0d9441283cb3583dfb25c9c72c2"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="System"><file name="CurrencysymbolController.php" hash="81843fabc7a4edeffb3c66a96f245111"/></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="d406b1181fcc035d9e66f0478c772053"/><file name="config.xml" hash="9b618f0e516ffa912d7d6ba9ec4f7e93"/></dir></dir><dir name="Customer"><dir name="Block"><dir name="Account"><file name="Changeforgotten.php" hash="fced334ff0b4c476c421e8eb61ab898c"/><dir name="Dashboard"><file name="Address.php" hash="08fc3da5ef87ce0f3d3b6a49c6d6b96d"/><file name="Block.php" hash="7ecc346998aa07b344b488a1f68bcf3a"/><file name="Hello.php" hash="1577a3b7e668fb5eba42d771cee2a4df"/><file name="Info.php" hash="a28109d8c9e53d8df9c112fc6456c618"/><file name="Newsletter.php" hash="81eaf17f4451110516d15c1e9060a6df"/><file name="Sidebar.php" hash="78f7c1ecea5c5d84ffc9265ec682112b"/></dir><file name="Dashboard.php" hash="4ea7dc3f67fb46c8de31ac6dde8702a2"/><file name="Forgotpassword.php" hash="0954e6e8365b6f1bed1c8b5cfdb711c0"/><file name="Navigation.php" hash="2bb91a3fca4c66259eab57b299240a30"/><file name="Resetpassword.php" hash="ed4565c138a3ddc81e64fe6dbc84bd0a"/></dir><file name="Account.php" hash="afe508a80c28e23a4ecb1c3c5544a6b0"/><dir name="Address"><file name="Book.php" hash="6800f4240c38234c6a71b507c12a2a6b"/><file name="Edit.php" hash="3ffd80fd5dfe6540383e8072433c6965"/><dir name="Renderer"><file name="Default.php" hash="fc8079a31280cb3e17e4955f002e9732"/><file name="Interface.php" hash="d66b89c20dd7ea78138f1f959cc0b901"/></dir></dir><dir name="Form"><file name="Edit.php" hash="d53369b67258ffabea416ab39348ae00"/><file name="Login.php" hash="0198cb1a7280263217b6c028c679ce8f"/><file name="Register.php" hash="cc64439d56326d315840b6bf8d50e151"/></dir><file name="Newsletter.php" hash="a1c95a95a4498fc1544da8b9060e85be"/><dir name="Widget"><file name="Abstract.php" hash="9f8810def5e03f41ca7bfbc6d029538f"/><file name="Dob.php" hash="cccffffa3c36c6f37cf7db02dc5e7cc9"/><file name="Gender.php" hash="20a92e9abae465f22df00485388e7ec2"/><file name="Name.php" hash="44e46d85ffc1aadf9584aadefb9a623d"/><file name="Taxvat.php" hash="5b6a1aeb9ea9eabc7a2202464c56e0a5"/></dir></dir><file name="Exception.php" hash="334d5017aa3ad32335b631affbf8b194"/><dir name="Helper"><file name="Address.php" hash="2d3a7d87871f4c022b6f5f531cf1f8ea"/><file name="Data.php" hash="0bf4ae911e83b41556b0aeb374c349c5"/></dir><dir name="Model"><dir name="Address"><file name="Abstract.php" hash="5d9dee72eb717beae28d1922c057a11b"/><dir name="Api"><file name="V2.php" hash="266ad678cd335ba60c1af1da19f22bf9"/></dir><file name="Api.php" hash="a03cc80ec147566fcff37dbf64faab06"/><file name="Config.php" hash="80d39631075023919039fd1c57ba6669"/></dir><file name="Address.php" hash="fdd7f0519a98d5b0254d3fec6f21665c"/><dir name="Api"><file name="Resource.php" hash="a3ca3939facf9676e07572b2e0e2b1b8"/></dir><dir name="Api2"><dir name="Customer"><dir name="Address"><dir name="Rest"><dir name="Admin"><file name="V1.php" hash="0c688ce090e3d27195058d7d498dbede"/></dir><dir name="Customer"><file name="V1.php" hash="5234f6e89921abb1805b252a2f191545"/></dir></dir><file name="Rest.php" hash="b8d40fa6226e0a1de076a2dea49e7d8b"/><file name="Validator.php" hash="57a2007eca992a01d27ee93844ef1c83"/></dir><file name="Address.php" hash="aaa3e23cf5369a422c7dc7f60fe988f0"/><dir name="Rest"><dir name="Admin"><file name="V1.php" hash="5b2113835c16750e3496a5f5fb1f5ae3"/></dir><dir name="Customer"><file name="V1.php" hash="4405dc245188874865c837f9558b3082"/></dir></dir><file name="Rest.php" hash="5ed64554ea1364509e0cf89288c04208"/></dir><file name="Customer.php" hash="bb6e0e4c5c2d5bfc28516547e6e61b64"/></dir><dir name="Attribute"><dir name="Backend"><dir name="Data"><file name="Boolean.php" hash="4ac8df716d7f38367d6dbe49e72052e2"/></dir></dir><dir name="Data"><file name="Abstract.php" hash="1867ecd751e10de5d28f4acf3459b1eb"/><file name="Boolean.php" hash="58e453aa57b80ec5e9372436ebaca1d6"/><file name="Date.php" hash="8452492f198664592e3e7a86aae0d9ef"/><file name="File.php" hash="d28febe339b50dbddaab12ca9b8cca4e"/><file name="Hidden.php" hash="6d33bce9cf131d228af61789be63cef0"/><file name="Image.php" hash="fdc9ced5bcab3f489d4d23db1c145c81"/><file name="Multiline.php" hash="475699822544385ca3dcc69e76fa13ba"/><file name="Multiselect.php" hash="cdc75f0b1ab1ce27dadb82349be079b6"/><file name="Postcode.php" hash="6a5bf54cf10fc54829effc31a63a72a2"/><file name="Select.php" hash="4d3809b46c33a1db0853ff6094d0e834"/><file name="Text.php" hash="fc8c36ddfdf5332a5d992b17a816c318"/><file name="Textarea.php" hash="fcd0ca5818876ddb39402575783eeebf"/></dir><file name="Data.php" hash="be5db892203623727253be6c7b993b88"/></dir><file name="Attribute.php" hash="4c616f072194b568dfa6dbcf2c9a28cd"/><dir name="Config"><file name="Share.php" hash="48d6a459edd906fa4433a8c7eb18bb53"/></dir><dir name="Convert"><dir name="Adapter"><file name="Customer.php" hash="d2eae522d3ca91753fbc3e29ddc1299f"/></dir><dir name="Parser"><file name="Customer.php" hash="beae99d9a77e453b1190adfec0750a3d"/></dir></dir><dir name="Customer"><dir name="Api"><file name="V2.php" hash="aa2436ca33afdaae7bdf096fc511b942"/></dir><file name="Api.php" hash="19f6a519c966b04198379abe62639baf"/><dir name="Attribute"><dir name="Backend"><file name="Billing.php" hash="faa9c2539bbf7b7a74b943d00caa708c"/><file name="Password.php" hash="d0393528b65c863a25de9175c9cf0784"/><file name="Shipping.php" hash="b68a9d6f1736be20b4ed6a21a6d0b49a"/><file name="Store.php" hash="2e69bab09b526a69a49a83b3c0cce498"/><file name="Website.php" hash="4334601d447e0fda794cec9dce34da7e"/></dir><dir name="Source"><file name="Group.php" hash="98360127300b5e9809144987e61a0264"/><file name="Store.php" hash="4abe85c31478e7fa194d4c2c98fc66a7"/><file name="Website.php" hash="2618b2a43a90336eec9ca4e84e20c2a5"/></dir></dir></dir><file name="Customer.php" hash="d8ebafc513e5f4a242678b7418decfd7"/><dir name="Entity"><dir name="Address"><dir name="Attribute"><dir name="Backend"><file name="Region.php" hash="1e8b5f5d46a5ad344f18f856dbc86a53"/><file name="Street.php" hash="f3eb2077afa392b82939a7d33058ad81"/></dir><file name="Collection.php" hash="d3ec4db3da89f9371c49196ff87d9cab"/><dir name="Source"><file name="Country.php" hash="ac1d2569e723fd3324242a1ab4c05849"/><file name="Region.php" hash="e4e8342efe2fd0b38294f3788e1bcbbc"/></dir></dir><file name="Collection.php" hash="05ddc8ad4046b66ef051b52d44fdd1e6"/></dir><file name="Address.php" hash="9ca25098a2ce67cc50d1f0c0bf492f32"/><dir name="Attribute"><file name="Collection.php" hash="b1bb2d740a7c345c0c46ecafa70167bd"/></dir><file name="Attribute.php" hash="e1b8d57fa9b3d802ac0ad6ff895b98b0"/><dir name="Customer"><file name="Collection.php" hash="c23343549f1e667660861a73fbe3dc19"/></dir><file name="Customer.php" hash="9cd6abf273d7d3699ee02f49569d327e"/><dir name="Form"><dir name="Attribute"><file name="Collection.php" hash="ef67e77017f7db0946f21874e3ebc711"/></dir><file name="Attribute.php" hash="618a8aff4746774c556906e2dbb56dc0"/></dir><dir name="Group"><file name="Collection.php" hash="e06ab66c1fc6b016a8cdc6e39fee5ab0"/></dir><file name="Group.php" hash="45fb0fbbe8e357fe6f26ae1cbf31b77f"/><file name="Setup.php" hash="33c38b117ba9aa195bb79504b56ae25c"/><dir name="Wishlist"><file name="Collection.php" hash="354fb025a63f5b3026f690cb4442ab9b"/></dir></dir><file name="Form.php" hash="d5f1aa9224be4aa721771b8fb65e7abf"/><dir name="Group"><dir name="Api"><file name="V2.php" hash="5bdbdfeb06ce9a196eb712fefc9c402b"/></dir><file name="Api.php" hash="6d92e16c176002b84361ac07832bffb6"/></dir><file name="Group.php" hash="7cc8f0dd768aba328ee3564cbfecaf31"/><file name="Observer.php" hash="05c4c9298cab5d30b19f5cf4a862c268"/><dir name="Resource"><dir name="Address"><dir name="Attribute"><dir name="Backend"><file name="Region.php" hash="0d9f0d30f70655765bed01b63d96d9b6"/><file name="Street.php" hash="04a83b26c53aa80ab01c1aafbb796ea1"/></dir><file name="Collection.php" hash="637774f2478002e6ee054df43bcc379b"/><dir name="Source"><file name="Country.php" hash="71a2b37a1748851c0035f809e0bdfe89"/><file name="Region.php" hash="844de0dca956ee491723b7902228fb04"/></dir></dir><file name="Collection.php" hash="36dce3f02858cf7a208cb5e1725aa97e"/></dir><file name="Address.php" hash="9903c920d224421684fb7bd93a7781a5"/><dir name="Attribute"><file name="Collection.php" hash="db7bbf94e78302488fde013cfacd9e98"/></dir><file name="Attribute.php" hash="eb31a55d0a28cffe6bc03e05df1ed514"/><dir name="Customer"><file name="Collection.php" hash="5c3207823fed1f27990d26cf0f8f3d2c"/></dir><file name="Customer.php" hash="78f73dd318200e4c5a07a766d63b7c68"/><dir name="Form"><dir name="Attribute"><file name="Collection.php" hash="d62fab14dc76f758829cef6a810df9d8"/></dir><file name="Attribute.php" hash="d7a7296e899066d4fc01b6f2a56f4db8"/></dir><dir name="Group"><file name="Collection.php" hash="5afd75ae771a976b601f81dafbbcec87"/></dir><file name="Group.php" hash="b7a915449ed7749c86b0ad1ce6ff0585"/><file name="Setup.php" hash="e9702ba3b32f695e2a2d99b31448ce85"/><dir name="Wishlist"><file name="Collection.php" hash="5a0c9faad27c135369581b4c329b3843"/></dir></dir><file name="Session.php" hash="49a0f51d836465a95c0d1879519ad6b1"/></dir><dir name="controllers"><file name="AccountController.php" hash="6c4e67e940f3b59f593066928da4434f"/><file name="AddressController.php" hash="dce3e740290b8c1486ec9cd7293052e1"/><file name="ReviewController.php" hash="508c3a4932ad2b216fc78ff8a701d6f5"/></dir><dir name="data"><dir name="customer_setup"><file name="data-upgrade-1.6.2.0.2-1.6.2.0.3.php" hash="2bc893a5f3d9baf672cf84e8c913567c"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="50849c1982934971d289b35dc3ecd0a4"/><file name="api.xml" hash="3ea62419ec25f6ad40d443166c628740"/><file name="api2.xml" hash="47711ce85c8d796ed91d265c6d460469"/><file name="config.xml" hash="3e1f6d4a4f54f9cb4e6b2da79b74955e"/><file name="system.xml" hash="a41c7630389b7209a996b3d8b4387761"/><file name="wsdl.xml" hash="b31ebf1de4a58469781b383f455991f5"/><file name="wsi.xml" hash="4c81aee30c525677be5c38e078b98408"/></dir><dir name="sql"><dir name="customer_setup"><file name="install-1.6.0.0.php" hash="c6722d28dacef27ab29b643f758ef193"/><file name="mysql4-data-upgrade-1.4.0.0.11-1.4.0.0.12.php" hash="ef5abe9941b9b1a0c895f5fa2b1f0aea"/><file name="mysql4-data-upgrade-1.4.0.0.13-1.4.0.0.14.php" hash="d44a1e3efa2cd3fc388c207917821570"/><file name="mysql4-data-upgrade-1.4.0.0.7-1.4.0.0.8.php" hash="2c91627628c1339f5cebf10890a38f2d"/><file name="mysql4-data-upgrade-1.4.0.0.8-1.4.0.0.9.php" hash="e49b632aca5e28a67293c325126a0409"/><file name="mysql4-install-0.7.0.php" hash="d8dcd4d5094da2f12e692ece42d88127"/><file name="mysql4-install-0.8.0.php" hash="0d3fbb7ed5c62178e222485988d9e7b5"/><file name="mysql4-install-1.4.0.0.0.php" hash="138bdb5365d60a33117ac3478aa9f85f"/><file name="mysql4-upgrade-0.6.1-0.7.0.php" hash="7c1fd0262a63c8ff50b79e001083f7a1"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="363e9b57cd3696b36f431f085752b5d8"/><file name="mysql4-upgrade-0.7.2-0.7.3.php" hash="021c527478a0ff9af0baf7ec3df02f4e"/><file name="mysql4-upgrade-0.8.0-0.8.1.php" hash="2c8c202d1ec6e3c1ae311b7f8e9f3463"/><file name="mysql4-upgrade-0.8.10-0.8.11.php" hash="6f0b05e3e4874f5eaca3a05a8d60b896"/><file name="mysql4-upgrade-0.8.11-0.8.12.php" hash="4628af77d20620d7560e13a6bd669472"/><file name="mysql4-upgrade-0.8.12-1.4.0.0.0.php" hash="36c583e090c0a00072dc6f0bbc63f5ca"/><file name="mysql4-upgrade-0.8.4-0.8.5.php" hash="0e6780ab9ffb88582b6380835eae0995"/><file name="mysql4-upgrade-0.8.5-0.8.6.php" hash="54566539dc7db512ee378323de4bf19b"/><file name="mysql4-upgrade-0.8.6-0.8.7.php" hash="a88dc9d5df61e4f1c35ca05aac6ae861"/><file name="mysql4-upgrade-0.8.7-0.8.8.php" hash="65ba249ca2d34310acecaf58a90c730a"/><file name="mysql4-upgrade-0.8.8-0.8.9.php" hash="faf1b1cc527fded99a6daf08abeb7eb0"/><file name="mysql4-upgrade-0.8.9-0.8.10.php" hash="f4c7bda051fd88c4ddc9dfd2bd561e21"/><file name="mysql4-upgrade-1.4.0.0.0-1.4.0.0.1.php" hash="2c281af9f5d3c7d765e0e811c737ae95"/><file name="mysql4-upgrade-1.4.0.0.1-1.4.0.0.2.php" hash="034ba91d9726928771e871b07577b8fb"/><file name="mysql4-upgrade-1.4.0.0.10-1.4.0.0.11.php" hash="8d674f068cc86cb857728b8b6fb08622"/><file name="mysql4-upgrade-1.4.0.0.12-1.4.0.0.13.php" hash="61c185677d57da12a970d22ddb05f05a"/><file name="mysql4-upgrade-1.4.0.0.2-1.4.0.0.3.php" hash="04f55ef4393d258f5a55e0028a9931f3"/><file name="mysql4-upgrade-1.4.0.0.3-1.4.0.0.4.php" hash="e637abb3ec729c7d5a823cd7a4aff962"/><file name="mysql4-upgrade-1.4.0.0.5-1.4.0.0.6.php" hash="c42b6bd2019102e3131ea7f540c50b6d"/><file name="mysql4-upgrade-1.4.0.0.6-1.4.0.0.7.php" hash="2b9caa7eda59e0d4450dedbb36b87cd8"/><file name="mysql4-upgrade-1.4.0.0.7-1.4.0.0.8.php" hash="001e91ba0859756ba7048bae6b38cc1c"/><file name="mysql4-upgrade-1.4.0.0.8-1.4.0.0.9.php" hash="b8786ebb55d6c1e0fc128d0e4da6ab2a"/><file name="mysql4-upgrade-1.4.0.0.9-1.4.0.0.10.php" hash="0b1efc85ae90a8caaefa357e4255ea82"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="e8b9f39275e935992bb92394b8d88a6d"/><file name="mysql4-upgrade-1.6.0.0-1.6.1.0.php" hash="239edb6475a8d43322ee37e6c93430f2"/><file name="upgrade-1.6.1.0-1.6.2.0.php" hash="ff896a7214ac40c54417217d57f8ed0a"/><file name="upgrade-1.6.2.0-1.6.2.0.1.php" hash="b297335d55acecbde135d6df95779463"/><file name="upgrade-1.6.2.0.1-1.6.2.0.2.php" hash="480c316c173021f5b6a3969c732aedf9"/><file name="upgrade-1.6.2.0.3-1.6.2.0.4.php" hash="7c8a6b2ad86df5b8af8fc57bc67d0fe2"/></dir></dir></dir><dir name="Dataflow"><dir name="Helper"><file name="Data.php" hash="6465cd672c3f3b789f0ce68fe56ca210"/></dir><dir name="Model"><dir name="Batch"><file name="Abstract.php" hash="a72b30a0f7f2dbd2355cc9ab7a065fc0"/><file name="Export.php" hash="2a347c5b937768e63d94a291f4c6ee8c"/><file name="Import.php" hash="8609cf6fe2ec5e47113bfd892475f99c"/><file name="Io.php" hash="3b4e1278ab16b6cfa9abff8507f46063"/></dir><file name="Batch.php" hash="4c44c87c6a834e0f58efd26fed42a2c8"/><dir name="Convert"><dir name="Action"><file name="Abstract.php" hash="2438ed004179ffa108a63d5e2f222236"/><file name="Interface.php" hash="733da76667237922d6d449a3b69ae435"/></dir><file name="Action.php" hash="6cfe1a8b8d52145278b58895236b52be"/><dir name="Adapter"><file name="Abstract.php" hash="58e1fdd534d4f3f76d8fe1d865b60f86"/><dir name="Db"><file name="Table.php" hash="53e10c1ac23116f8c6a6ddbde64a1f9e"/></dir><dir name="Http"><file name="Curl.php" hash="744b8a2b86864abfea92b71725fc8820"/></dir><file name="Http.php" hash="d1ea66edc722b8accd19b0adfbd7d11c"/><file name="Interface.php" hash="11052c6a192dd467f389fe7ac6b84e85"/><file name="Io.php" hash="8c0296ddbbee95bf24aae0bcb78eea80"/><file name="Soap.php" hash="ca3e6862b566aeb5581f4344f3d621f6"/><file name="Std.php" hash="2d58df33c9796d6b046bb20c966054f7"/><dir name="Zend"><file name="Cache.php" hash="fcd406583fd02b7c8be74cc7843e6b95"/><file name="Db.php" hash="a85645a65ced26200c5525f15b8119e0"/></dir></dir><dir name="Container"><file name="Abstract.php" hash="f1802b2e4c92ec8877317fb50111f2c3"/><file name="Collection.php" hash="38380862831c2305259d46abbf41aa43"/><file name="Generic.php" hash="739a1e2be58f1870eda3f31b834a1823"/><file name="Interface.php" hash="fef9bc1ba0f04e432cdff336660ffc20"/></dir><file name="Exception.php" hash="d2d901bbcbf10a28df208dcd1a1980a8"/><dir name="Iterator"><dir name="File"><file name="Csv.php" hash="043ee74f2fceaef1af9170ec825d70b5"/></dir><file name="Http.php" hash="4727281da701bcae4d2f46982db9c980"/><file name="Interface.php" hash="2e6f3b56123eb3cffbc19c548dcfdafe"/></dir><file name="Iterator.php" hash="3a915c5742dcf64bc1f2d91626b9b0ee"/><dir name="Mapper"><file name="Abstract.php" hash="a786dee51483da6557501bf1673fd5d4"/><file name="Column.php" hash="0d247eb378c928e90f80a496b0388730"/><file name="Interface.php" hash="4bbf145346856b2c9f282fa2825f424b"/></dir><dir name="Parser"><file name="Abstract.php" hash="ef292d2447ef56d86ed9534aae6b3fff"/><file name="Csv.php" hash="7ecf34f0a9cf2bf9438e84a49e68c890"/><file name="Interface.php" hash="dadb9f463b43f28640e4708a4d866a50"/><file name="Serialize.php" hash="60e5ce469511bca43d4a89254424e823"/><dir name="Xml"><file name="Excel.php" hash="8ff8502bbf1565b2b25dcc2ff090197c"/></dir></dir><dir name="Profile"><file name="Abstract.php" hash="20b74ec5332d569fc3afc25fd4376f12"/><file name="Collection.php" hash="588af8f423060628544b544013ce1b47"/><file name="Interface.php" hash="ec1304f19b742cbf5229890d2a8fc226"/></dir><file name="Profile.php" hash="8812c4fc43739ace2116ab49c5d47806"/><dir name="Validator"><file name="Abstract.php" hash="c6f104eff1b82659a4d36d4de5eb3891"/><file name="Column.php" hash="76ce0db2dfa4136b77398245390d13f0"/><file name="Dryrun.php" hash="2fa547ec5aecf1a736f9877b00f75848"/><file name="Interface.php" hash="ed4f54c6508ce31a19f449cf527132ae"/></dir></dir><file name="Convert.php" hash="1a118785cfee26e0249652922fb3fa6f"/><file name="Import.php" hash="c4125b22472e8edb07aaf55a499201ee"/><dir name="Mysql4"><dir name="Batch"><file name="Abstract.php" hash="3aa5d4c54262bfbf463b7b2e90e6a0ca"/><file name="Collection.php" hash="9ea3700a10c5e6e85006c9d63a45b4e8"/><file name="Export.php" hash="5df742225ff7f0cb3c2530248a345b28"/><file name="Import.php" hash="fe2b0f2f6fc0bddc67825793ad13afba"/></dir><file name="Batch.php" hash="3803aa35bc8f1772737d21f0d65f6e07"/><file name="Catalogold.php" hash="0e023972193f136cebfde36252fa2c4c"/><dir name="Import"><file name="Collection.php" hash="7722967ae22783fe92f27e55e90de1ff"/></dir><file name="Import.php" hash="eb5d31c548d4eddbf751b208da673050"/><dir name="Profile"><file name="Collection.php" hash="ab4e4ad47794284cba12a444d7f3f495"/><dir name="History"><file name="Collection.php" hash="ee4193e87158ffceee49a1449c7bca99"/></dir><file name="History.php" hash="964aa735b3fd1ba3a06632ca19d28eee"/></dir><file name="Profile.php" hash="94be3bfa9c5f1a175fc6ee5d60e5ee65"/><file name="Session.php" hash="f8795a0c5817f0809c11f19ea5df5cf4"/></dir><dir name="Profile"><file name="History.php" hash="755a5ed8dd4c1b25f237fb1598b82c7d"/></dir><file name="Profile.php" hash="55bd1e08aecf03ef5481d06afe4484cc"/><dir name="Resource"><dir name="Batch"><file name="Abstract.php" hash="11746a73dbf367baddc49c98ee4bcd04"/><file name="Collection.php" hash="82529698919888159989a4595e4bdba4"/><file name="Export.php" hash="f41c179fc4ee246cb750f7c8d43df57f"/><file name="Import.php" hash="a0fcb8df641d15a8dd39009544e19447"/></dir><file name="Batch.php" hash="fcc5b78df2ea986e82415fe9e8e246ec"/><dir name="Import"><file name="Collection.php" hash="65eafb61a50696e1f399cd3a2f01030f"/></dir><file name="Import.php" hash="35a2c1acb655ff0c76c330114462fd25"/><dir name="Profile"><file name="Collection.php" hash="baca3a6c70f7ae2717341a6742db7782"/><dir name="History"><file name="Collection.php" hash="f689357486f341ee846696b278221fe3"/></dir><file name="History.php" hash="655b62bbe1d2eb9bbc4fbf34b1a272b2"/></dir><file name="Profile.php" hash="063582cabd6ad164def62f04205cb245"/><file name="Session.php" hash="773fef3cc64d0d4a9d2438125d2f6e6a"/></dir><dir name="Session"><dir name="Adapter"><file name="Http.php" hash="6f3b7442403f2d17c462d0f6ebc6486f"/></dir><dir name="Parser"><file name="Csv.php" hash="222ce10f61da341c9ca849bc2f8145d7"/></dir></dir><file name="Session.php" hash="dd3e356428c1f99f97906eb168dd5f33"/></dir><dir name="data"><dir name="dataflow_setup"><file name="data-install-1.6.0.0.php" hash="e071429f47116a98b169da9819c35640"/></dir></dir><dir name="etc"><file name="config.xml" hash="2e118dec7181a8e54eecd6476d20b1cd"/></dir><dir name="sql"><dir name="dataflow_setup"><file name="install-1.6.0.0.php" hash="16396d55ee8be825295fe63d5d89df7b"/><file name="mysql4-install-0.7.0.php" hash="1a3e64911829e084e4523ed8e02ed41f"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="6b7fb755e32fbdb7b0a8b8e2d07a8ea2"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="c38208cf5ed155921e0294d9149afa27"/><file name="mysql4-upgrade-0.7.2-0.7.3.php" hash="b51f71e9fd234db0af7ff97c442af60e"/><file name="mysql4-upgrade-0.7.3-0.7.4.php" hash="e3d3aaa974b011cb94c2ad7a5e026cdc"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="6d8690664c883cd6be731ebc8bce9894"/></dir></dir></dir><dir name="Directory"><dir name="Block"><dir name="Adminhtml"><dir name="Frontend"><dir name="Currency"><file name="Base.php" hash="3df3b6aaceeac2d31ceb35688be211cb"/></dir><dir name="Region"><file name="Updater.php" hash="fa6d4e9f133a8477fb646dae7aa7e4c8"/></dir></dir></dir><file name="Currency.php" hash="1410e677f27c3583f211be2d85a2149b"/><file name="Data.php" hash="c909b4874ea35549661d47ee2c1d921f"/></dir><file name="Exception.php" hash="453781dee8161d7b895ba3b1b0899ed3"/><dir name="Helper"><file name="Data.php" hash="aa37d979e53ded8d6ed9d432e6def025"/><file name="Url.php" hash="9e2d3271ce5db109658ee9f773db2fe0"/></dir><dir name="Model"><dir name="Country"><dir name="Api"><file name="V2.php" hash="afc6233ae08cfd5f08f8af38dfadad2a"/></dir><file name="Api.php" hash="c9307a174e99bb73fd7721d0cc15d628"/><file name="Format.php" hash="549856f02db55e157ce7cc937dd5795c"/></dir><file name="Country.php" hash="f47612b251ae4076df80ba085b1a00be"/><dir name="Currency"><file name="Filter.php" hash="3e3723b4af1bb35a6742a5ef2c019cd1"/><dir name="Import"><file name="Abstract.php" hash="3a1c5f29cca4389e86d6cebbe4f7be52"/><file name="Webservicex.php" hash="dea261da8bc1c2ddb0f00813a7d62754"/></dir></dir><file name="Currency.php" hash="f24df11a73ec1ac000d4ee91fe4cccf4"/><dir name="Mysql4"><dir name="Country"><file name="Collection.php" hash="490fcff8cc039c4a882d3e3b39ac0b3e"/><dir name="Format"><file name="Collection.php" hash="0f58e5a9fa3243c66db014d768a98da0"/></dir><file name="Format.php" hash="1b5b0f7deb5ec7a20a428d3c9a51cec5"/></dir><file name="Country.php" hash="23ff3d527006e79be8d941145374b004"/><dir name="Currency"><file name="Collection.php" hash="7418fb72c4b329862657fea893873e32"/></dir><file name="Currency.php" hash="8e9d26aad2bafd54bfab262341b89840"/><dir name="Region"><file name="Collection.php" hash="003d2e43eab9416cc832faaae38d445e"/></dir><file name="Region.php" hash="ac20fa937cd177b663e7acab340b7f4a"/></dir><file name="Observer.php" hash="66dfc096ba692f66d368654743204f2f"/><dir name="Region"><dir name="Api"><file name="V2.php" hash="da3f09a99c24d056d3461b600884f039"/></dir><file name="Api.php" hash="13196b7ad957235c9d4d80744baacc3d"/></dir><file name="Region.php" hash="5f11b838130796d0c106ef14e9a101ba"/><dir name="Resource"><dir name="Country"><file name="Collection.php" hash="ced5dce56f137888a778c307244eadf4"/><dir name="Format"><file name="Collection.php" hash="69cb0e29571bd557c535465669d45e66"/></dir><file name="Format.php" hash="801e9aeb9fcac19129e86aaf6c742bd2"/></dir><file name="Country.php" hash="d6826020474e1e50a9f7d616110c1eed"/><dir name="Currency"><file name="Collection.php" hash="4d6afb22b96acf37ac4f67a6326166b5"/></dir><file name="Currency.php" hash="24f10a37fe14475176ee98163b700344"/><dir name="Region"><file name="Collection.php" hash="57023acea67abf21b68492953657446c"/></dir><file name="Region.php" hash="bc8800af3d7e35e91fa90f2b553d9a91"/></dir></dir><dir name="controllers"><file name="CurrencyController.php" hash="35bb0925782ebd04e4943ab84951b0a3"/></dir><dir name="data"><dir name="directory_setup"><file name="data-install-1.6.0.0.php" hash="449178d272d3d195a1cbb6fc539a19d7"/><file name="data-upgrade-1.6.0.0-1.6.0.1.php" hash="8e186141736e15ee67ac6666545fed8d"/><file name="data-upgrade-1.6.0.2-1.6.0.3.php" hash="e0f4e5efad915f8bd637815adb08569a"/></dir></dir><dir name="etc"><file name="api.xml" hash="a8c3af31971871f3375af3bed83efb86"/><file name="config.xml" hash="74e76d5a9efb3fee78fc4c625c294ab6"/><file name="system.xml" hash="184976587366b082639fb50d529be1ee"/><file name="wsdl.xml" hash="cc488b81c0eae648a0ee360d6e2d9960"/><file name="wsi.xml" hash="66de37cc17e24c0c66f74c52e2df616e"/></dir><dir name="sql"><dir name="directory_setup"><file name="install-1.6.0.0.php" hash="96c305524970800bd33dbe4fde4fc024"/><file name="mysql4-install-0.7.0.php" hash="42cf2e07bdba83c4a27ef841f02cf584"/><file name="mysql4-install-0.8.0.php" hash="44a9bc17d349599c2f6ff1a4b2007846"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="0959ae732181c61075a30c10e25ef9d0"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="32c7d7431d0eb0edeae4ee12ee8e4330"/><file name="mysql4-upgrade-0.8.0-0.8.1.php" hash="4a159005aafdf056c758c1f2dab6b6e5"/><file name="mysql4-upgrade-0.8.1-0.8.2.php" hash="112a839147f190e708ac455635a889ea"/><file name="mysql4-upgrade-0.8.10-0.8.11.php" hash="4506726831a1d03b8207430506e602cd"/><file name="mysql4-upgrade-0.8.2-0.8.3.php" hash="f88e75dc363e65884f3c048e7ffc0923"/><file name="mysql4-upgrade-0.8.3-0.8.4.php" hash="20244a13eae58dcc96177cee74fccfbd"/><file name="mysql4-upgrade-0.8.4-0.8.5.php" hash="8bd7e20943ffcf758a319bc15e9c3d05"/><file name="mysql4-upgrade-0.8.5-0.8.6.php" hash="bfbf0cf011d06e1e92bd31462ebcce0a"/><file name="mysql4-upgrade-0.8.6-0.8.7.php" hash="e86faf4aaa60d3c6594e6a86f00dcb7d"/><file name="mysql4-upgrade-0.8.7-0.8.8.php" hash="5d20a16495474937945473bac9216f5b"/><file name="mysql4-upgrade-0.8.8-0.8.9.php" hash="c2e580ccc38df1b269b211a97b6631f8"/><file name="mysql4-upgrade-0.8.9-0.8.10.php" hash="449b434a82d218c5247b29abc82af315"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="ab1088a57c79f78a47f80873415e5804"/><file name="mysql4-upgrade-1.6.0.1-1.6.0.2.php" hash="990a1d52cb2fe443704da47a700b5237"/><file name="upgrade-1.6.0.1-1.6.0.2.php" hash="8882e2847161262a97651fe455d3cb09"/></dir></dir></dir><dir name="Downloadable"><dir name="Block"><dir name="Adminhtml"><dir name="Catalog"><dir name="Product"><dir name="Composite"><dir name="Fieldset"><file name="Downloadable.php" hash="7358eefbe70ee183fff6b1a2704b89df"/></dir></dir><dir name="Edit"><dir name="Tab"><dir name="Downloadable"><file name="Links.php" hash="346b6dfd7dd8607b67c280350ac9975e"/><file name="Samples.php" hash="93c481ebd2ef25927bd836829d943fae"/></dir><file name="Downloadable.php" hash="f8b9ba9f21da82fdc42aca57b2342440"/></dir></dir></dir></dir><dir name="Sales"><dir name="Items"><dir name="Column"><dir name="Downloadable"><file name="Name.php" hash="ac478179897d1c38ed89186f2b96c6d1"/></dir></dir></dir></dir></dir><dir name="Catalog"><dir name="Product"><file name="Links.php" hash="6f12867079f0056e33188a1781b26ce2"/><file name="Samples.php" hash="584482a2e01386e3e5adcdfebe777bab"/><dir name="View"><file name="Type.php" hash="3f08ab2df3b23f5cd17db5552eba2c3d"/></dir></dir></dir><dir name="Checkout"><dir name="Cart"><dir name="Item"><file name="Renderer.php" hash="5ccfcdb46c34c9b9156755ac704c5a08"/></dir></dir><file name="Success.php" hash="99e840479f116e644a35d9d216159b4b"/></dir><dir name="Customer"><dir name="Products"><file name="List.php" hash="be90199170ef5e92035c539a27929df4"/></dir></dir><dir name="Sales"><dir name="Order"><dir name="Email"><dir name="Items"><file name="Downloadable.php" hash="4c877a4a2d8b36d09606d16d9aff6c4f"/><dir name="Order"><file name="Downloadable.php" hash="6d1f06f133472f790e0b00c1e9bdf37f"/></dir></dir></dir><dir name="Item"><dir name="Renderer"><file name="Downloadable.php" hash="f52357f0c231d6ff9741fdc6ff165ea6"/></dir></dir></dir></dir></dir><dir name="Helper"><dir name="Catalog"><dir name="Product"><file name="Configuration.php" hash="d7d2ffc5fcd3d53a4273289cdf6921b3"/></dir></dir><file name="Data.php" hash="07eb756ae74dfa62fd3bf51609d4d4a6"/><file name="Download.php" hash="3c298ba201ccc8d74bc52c2e49390af8"/><file name="File.php" hash="c86545274beaf199427b91dd9963d741"/></dir><dir name="Model"><dir name="CatalogIndex"><dir name="Data"><file name="Downloadable.php" hash="125f7269d544ba02f6655baa197f4473"/></dir></dir><dir name="Link"><dir name="Api"><file name="Uploader.php" hash="9746c685682eb407d254a2465886b4a3"/><file name="V2.php" hash="991ca71de9dda0bea63cc0cd33ef9daa"/><file name="Validator.php" hash="062a30a7333c11b09b71ee717a328731"/></dir><file name="Api.php" hash="9b300c79df89089057c7bdf443919b1e"/><dir name="Purchased"><file name="Item.php" hash="594d6579858a2b03be09fcae48e919c2"/></dir><file name="Purchased.php" hash="a4f94fc05023dca72a2a604892446c16"/></dir><file name="Link.php" hash="694fe1ab9a01117859c6d5eb125ad60e"/><dir name="Mysql4"><dir name="Indexer"><file name="Price.php" hash="8b811e5db6b18e60eff2b867aa535f2e"/></dir><dir name="Link"><file name="Collection.php" hash="60724c4412e2745d17770867f6136310"/><dir name="Purchased"><file name="Collection.php" hash="15568a7cf224010ec291774a3aa455d7"/><dir name="Item"><file name="Collection.php" hash="19e24646e835c28b1b48edea775b85fc"/></dir><file name="Item.php" hash="b2988c475c696f3d23346dd4ee4135f2"/></dir><file name="Purchased.php" hash="f4005b7a02cd00de35ae48f249373fca"/></dir><file name="Link.php" hash="ca2faf7ecebc50591c1bf629d75206a7"/><dir name="Sample"><file name="Collection.php" hash="2941b96e46a0d3371c4af2e3466c779f"/></dir><file name="Sample.php" hash="793b63049588a8f428f288fbfee5d383"/></dir><file name="Observer.php" hash="c2de9729f8c6eda48909ebed3700d321"/><dir name="Product"><file name="Price.php" hash="037cc3a2002e5a88fb7a058ce69d5b22"/><file name="Type.php" hash="62299715d7e4dc49cceb8e0fab2a3ef3"/></dir><dir name="Resource"><dir name="Indexer"><file name="Price.php" hash="7bcb28ca3896a121f3fb2822c097ad76"/></dir><dir name="Link"><file name="Collection.php" hash="1ac5104d02a0f70f31164c1daef776d3"/><dir name="Purchased"><file name="Collection.php" hash="75c749171a918e324c290fe466540cb1"/><dir name="Item"><file name="Collection.php" hash="439f6d97c98306cd8d5eb1ba41e73f3a"/></dir><file name="Item.php" hash="006ec93b3aed51e5f19c9919cb4ef97d"/></dir><file name="Purchased.php" hash="0441d43b422ec40025ef75acabdacb86"/></dir><file name="Link.php" hash="d05c0bd3eda5e6f29879afa45ac75c30"/><dir name="Sample"><file name="Collection.php" hash="a5bb7f15c1bde679a53a0ee8ed712b42"/></dir><file name="Sample.php" hash="91bf983e907eecbb76965a7c392b9020"/></dir><dir name="Sales"><dir name="Order"><dir name="Pdf"><dir name="Items"><file name="Abstract.php" hash="272c182a0a9898fceddebc88df8c1b05"/><file name="Creditmemo.php" hash="6490db251da913698d88f4197d6a09d5"/><file name="Invoice.php" hash="7ad07c0b6573103c7cea924be44579d5"/></dir></dir></dir></dir><file name="Sample.php" hash="a1edf7159521eb4b34a1b4031ba1c091"/><dir name="System"><dir name="Config"><dir name="Source"><file name="Contentdisposition.php" hash="e722e6c4fee62f44ed6eeecaa501e38b"/><file name="Orderitemstatus.php" hash="b3d1a82bbb57611c7adda7e58783385c"/></dir></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Downloadable"><file name="FileController.php" hash="e9308d58b8f4264a784b19151a76babb"/><dir name="Product"><file name="EditController.php" hash="0969a4037610b06894afa3b4cbbd7f56"/></dir></dir></dir><file name="CustomerController.php" hash="1ddd6baf02a69a69975de56e17a01940"/><file name="DownloadController.php" hash="83756594be03b31dbf6d23f569fe70ec"/><file name="FileController.php" hash="c8e35419fe8ba798b09e1e9cebdedc0a"/><dir name="Product"><file name="EditController.php" hash="70913c9ac3ada8a871d54c0a4f681746"/></dir></dir><dir name="data"><dir name="downloadable_setup"><file name="data-install-1.6.0.0.php" hash="b14b0b3975296dab7f22c9eb3a9a0b05"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="ae491bc8ec858cca1e75cb3e8c5f2b17"/><file name="api.xml" hash="bbe19285b70034f9d5e27f0fda6cb3ae"/><file name="config.xml" hash="b1854a9ecf6b790247072bf98573fbe0"/><file name="system.xml" hash="c4960eb43b0313ec2f48cc2f3565d3c2"/><file name="wsdl.xml" hash="b3935ff3bf7e2ca40ddd304b4c78577f"/><file name="wsi.xml" hash="7eef36b29c2abf88596e63b6a042626d"/></dir><dir name="sql"><dir name="downloadable_setup"><file name="install-1.6.0.0.php" hash="beb734081bb4155a9cb7f553e69b594c"/><file name="mysql4-install-0.1.0.php" hash="7ce2cf98b69fbfba519760dc52e80459"/><file name="mysql4-install-1.4.0.0.php" hash="23dc8c45995c1e29783cd4cb2a9b45d7"/><file name="mysql4-upgrade-0.1.0-0.1.1.php" hash="935c425258ea38e53750b2c29d4f8963"/><file name="mysql4-upgrade-0.1.1-0.1.2.php" hash="fe155b21566d67a442234b6e79eb5adb"/><file name="mysql4-upgrade-0.1.10-0.1.11.php" hash="49d09f81d946f2adb1c85d9df82ef2b0"/><file name="mysql4-upgrade-0.1.11-0.1.12.php" hash="ea206eb1a90b9f69d218f67061f333d6"/><file name="mysql4-upgrade-0.1.12-0.1.13.php" hash="1ff853acaa6a28fd9b4bdaf29514ca0f"/><file name="mysql4-upgrade-0.1.13-0.1.14.php" hash="04bcdb5db567384f5f5730e515860f52"/><file name="mysql4-upgrade-0.1.14-0.1.15.php" hash="f0881b027d876ba04ee199cc78cf526c"/><file name="mysql4-upgrade-0.1.15-0.1.16.php" hash="57216ec34addd7ee5c7eaec22ec2c27f"/><file name="mysql4-upgrade-0.1.2-0.1.3.php" hash="7661dc81d863d694545619cc29bb5eae"/><file name="mysql4-upgrade-0.1.3-0.1.4.php" hash="590fa44959f6f7eee97b3ed60f457f79"/><file name="mysql4-upgrade-0.1.4-0.1.5.php" hash="c48d705fd46c240333b9714d285608ff"/><file name="mysql4-upgrade-0.1.5-0.1.6.php" hash="954022ed0f417fc88563f7714b837002"/><file name="mysql4-upgrade-0.1.6-0.1.7.php" hash="47f79b65ee08a98d9a2384ee272b6115"/><file name="mysql4-upgrade-0.1.7-0.1.8.php" hash="08329ddb5b63676cb1ec21c54d656b9c"/><file name="mysql4-upgrade-0.1.8-0.1.9.php" hash="c6f922e771296d9825ed6ac46baf201e"/><file name="mysql4-upgrade-0.1.9-0.1.10.php" hash="4959673a9ecfd8101537611c2196389f"/><file name="mysql4-upgrade-1.3.9-1.4.0.0.php" hash="9a05f94ff39ae21bf150a5de0c989000"/><file name="mysql4-upgrade-1.4.0.0-1.4.0.1.php" hash="9ffbb8d7bb6bab9522c8d973cc1c3a7b"/><file name="mysql4-upgrade-1.4.0.1-1.4.0.2.php" hash="9c21c4304bb549da8bf45ef68d2eb955"/><file name="mysql4-upgrade-1.4.0.2-1.4.0.3.php" hash="959e73c2831f1beba3b34283dd9080ae"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="22ff9aa1fa9bed6cd198f6c363bdebd0"/><file name="mysql4-upgrade-1.6.0.0.1-1.6.0.0.2.php" hash="721d09be119a9721f79cd7b1616937ce"/><file name="upgrade-1.6.0.0-1.6.0.0.1.php" hash="d98e8b797596118339ad1f7d1d11a56a"/><file name="upgrade-1.6.0.0.1-1.6.0.0.2.php" hash="3334037f3df011313b4cc5567d6cfa1a"/></dir></dir></dir><dir name="Eav"><dir name="Block"><dir name="Adminhtml"><dir name="Attribute"><dir name="Edit"><file name="Js.php" hash="e0bba2d57c4540d7195297cdf88d2bd6"/><dir name="Main"><file name="Abstract.php" hash="457a084c10be074a8c774f997d9ac8e4"/></dir><dir name="Options"><file name="Abstract.php" hash="76af300975657193d4d0cfa85576fda0"/></dir></dir><dir name="Grid"><file name="Abstract.php" hash="a2657b40ee26194898ae39afc02947cc"/></dir></dir></dir></dir><file name="Exception.php" hash="ba78eaacf2dc82c3cffe9548d50747f3"/><dir name="Helper"><file name="Data.php" hash="6d1932a60c28de1ecd04570ca364eaa3"/></dir><dir name="Model"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Source"><dir name="Inputtype"><file name="Validator.php" hash="a2675fe89ef6f342922029238f2ea5c0"/></dir><file name="Inputtype.php" hash="4afc8da40c91a9f47b55c03ceac7990f"/></dir></dir></dir></dir><dir name="Attribute"><dir name="Data"><file name="Abstract.php" hash="306fcd0c0607ac616612120f9c77d287"/><file name="Boolean.php" hash="18858a47815608071999b0b5ca1165c3"/><file name="Date.php" hash="6769356dbf884bf768ee06a318aa44e2"/><file name="Datetime.php" hash="df486c8eb6af383ad7804695e91efff1"/><file name="File.php" hash="7cead2c01b8e44a125d763e865fbdeb3"/><file name="Hidden.php" hash="24980022dd521fb150ae8c538786fbbf"/><file name="Image.php" hash="c4d430baccc315f46a45b99c3a4bf9be"/><file name="Multiline.php" hash="faf0756527157bbb78ac40d08f0e6ea6"/><file name="Multiselect.php" hash="2732b3248b01aee3f10fb501cd01e6c4"/><file name="Select.php" hash="f1bcb979195337a74e5cfdb282551cd3"/><file name="Text.php" hash="c9d2dc2235eb7170bfa1cf0b5d9a203c"/><file name="Textarea.php" hash="80ec9bc40d0b8cc4f0c4fb597d2819f1"/></dir><file name="Data.php" hash="305a8daf73fe035215210e588ae6c8ad"/></dir><file name="Attribute.php" hash="4ace96e951c06dd07f00c390e870a60d"/><file name="Config.php" hash="c42f7c5fd927b3a5c64d7a7c34c4a6a5"/><dir name="Convert"><dir name="Adapter"><file name="Entity.php" hash="0ade841607bab74e7a483d455b9f52f9"/><file name="Grid.php" hash="7fc479f09d622aaaf52890c7d58cfc8f"/></dir><dir name="Parser"><file name="Abstract.php" hash="8db62cb6da63d23daf851de36e320be3"/></dir></dir><dir name="Entity"><file name="Abstract.php" hash="e8431edc51fa410d8213e2461a335740"/><dir name="Attribute"><file name="Abstract.php" hash="000e768f7d9893f1b9169952b5e46f1e"/><dir name="Backend"><file name="Abstract.php" hash="aab703cc6b8cce7d9a8a8f118e5e7531"/><file name="Array.php" hash="99875b63f65864791260146ba38d3206"/><file name="Datetime.php" hash="e9d9857bff9668b2c652a9d6b9a16e4e"/><file name="Default.php" hash="8fbbfcbd555ebdd43d03bb958ff33390"/><file name="Increment.php" hash="4a0efac8a50f88f2b1d97fc86fb91fd9"/><file name="Interface.php" hash="6e0ed88de1bfdcf5bb4de9d64a945dac"/><file name="Serialized.php" hash="0c6e0dcc914fffe7ddc3d6d7090e0c21"/><file name="Store.php" hash="97409a22dc17d154d20ca68eb1f3864b"/><dir name="Time"><file name="Created.php" hash="42b416adf0c6918aeba35d9c27b249b8"/><file name="Updated.php" hash="240414877034fe485c7270a923935c58"/></dir></dir><file name="Exception.php" hash="1b3b6f8d415510f60ca92f8fae59876e"/><dir name="Frontend"><file name="Abstract.php" hash="24237f13ba4d0cc05b45103aa15052d6"/><file name="Datetime.php" hash="aae764ac16d26251acb7c4a948782102"/><file name="Default.php" hash="5c45d132eaa76426fb30c662fa161e0d"/><file name="Interface.php" hash="cfdc936f738438f302061440b520b68d"/></dir><file name="Group.php" hash="0aa9726a108e94b20a07365b28105996"/><file name="Interface.php" hash="3ceddd274b6274c99a51aa1f36a406dc"/><file name="Option.php" hash="9ee6bc3d4f689086b37b2ffc18b785cd"/><file name="Set.php" hash="e647755dae1f6158ef4c05ff9ca4c5a8"/><dir name="Source"><file name="Abstract.php" hash="85bb954a30e6e5789456b2041872fbc5"/><file name="Boolean.php" hash="7acdb80b01292956b92db947973b0cdc"/><file name="Config.php" hash="e9dec75fb6c8eb8726fd5039c3e2fde8"/><file name="Interface.php" hash="789df7c41a366fe4fc689c655d492a8d"/><file name="Store.php" hash="83cfdbed4e59a35f70996934da9c053d"/><file name="Table.php" hash="df09bf2cd735dec656a663d731217ec9"/></dir></dir><file name="Attribute.php" hash="e51a9433782f8811c162dc8975b46252"/><dir name="Collection"><file name="Abstract.php" hash="33d0bf3ff5a7dbdc0db1f6a86deb7e67"/></dir><file name="Collection.php" hash="f33ad123504fcded784d6390769539cc"/><dir name="Increment"><file name="Abstract.php" hash="f967bb4fc23c850be7c268d50a7cea0b"/><file name="Alphanum.php" hash="f7a3e9c80bcefde59d531d46a6433fce"/><file name="Interface.php" hash="bb5b075e6e0f93b5294d8394e0f4c8cb"/><file name="Numeric.php" hash="a6df9348d7d018da95bbf66a2c8a3503"/></dir><file name="Interface.php" hash="4a2c904265bdf814ea5b3cdad22c615b"/><file name="Setup.php" hash="60425807abfee75f5949f0bdb758f407"/><file name="Store.php" hash="af4c09a4e20e7fbacb7deeac0e470bcb"/><file name="Type.php" hash="c94283878472673af91cc9c1d06332e4"/></dir><file name="Entity.php" hash="a354f3b0d015f164ac3af7292b617019"/><dir name="Form"><file name="Element.php" hash="f7e425204d55ac6395c0695b7a550bd4"/><file name="Fieldset.php" hash="6f911a1dd046a6c2d9429a0e42a7bdc3"/><file name="Type.php" hash="389f76edf7ae69afaa26be81d817e63a"/></dir><file name="Form.php" hash="1ad7a7957defd42a9fd071ad02b138a2"/><dir name="Mysql4"><file name="Config.php" hash="007e3a0c288d5a921a1d7ffbccd15c9c"/><dir name="Entity"><dir name="Attribute"><file name="Collection.php" hash="af2a8e18dec1095aeb8cd167f4084f08"/><dir name="Group"><file name="Collection.php" hash="63819ab574b2252fb3e36f4722c3bfe1"/></dir><file name="Group.php" hash="7f4daa758c746bcf7a35ba2fcca56aa8"/><dir name="Option"><file name="Collection.php" hash="d981884b8300d5f1cdc295badad4d397"/></dir><file name="Option.php" hash="5123a55ce2e310234ed2eea4ba2103d2"/><dir name="Set"><file name="Collection.php" hash="59191804e6864586038796ace8ed39e9"/></dir><file name="Set.php" hash="6ac37acb880ef52967c53c20f4a18292"/></dir><file name="Attribute.php" hash="36f7157a08817d00f8408a80ad307726"/><file name="Store.php" hash="ac8bdd504017b69c029d014f1acb883e"/><dir name="Type"><file name="Collection.php" hash="df4a0594aa35f346c052a9188a5c4471"/></dir><file name="Type.php" hash="ad6ac3edee4ec97ce9332b165eef1736"/></dir><dir name="Form"><dir name="Element"><file name="Collection.php" hash="45b9183328ee19850345752b1a8e23fd"/></dir><file name="Element.php" hash="4166c03b2847882e3368be57d1cb7f6b"/><dir name="Fieldset"><file name="Collection.php" hash="5146d0c568cddd8ec261ffb7c0a7bac0"/></dir><file name="Fieldset.php" hash="988d72a77b0182cabebdff61fc9a2531"/><dir name="Type"><file name="Collection.php" hash="5cda9032e5d07855388b412abe4c8d71"/></dir><file name="Type.php" hash="85d66f2053a03b1a495ed6ffd7cba6c8"/></dir></dir><dir name="Resource"><dir name="Attribute"><file name="Collection.php" hash="745a9bffdca7a1641891bcd4b0b3ec32"/></dir><file name="Attribute.php" hash="9b08b8a0b41eeed8a9ebf3acfb1b89ec"/><file name="Config.php" hash="30786ab3c85c165506c3db425cf9cfa5"/><dir name="Entity"><dir name="Attribute"><file name="Collection.php" hash="5aa1077e62b09344de49240534ac1c1f"/><dir name="Group"><file name="Collection.php" hash="f6d61cf7b743537537a27648b7b1605a"/></dir><file name="Group.php" hash="017cba9a5945e4f851460e5080aed89d"/><dir name="Option"><file name="Collection.php" hash="021d33b2d1d89308eb74f3597a3796cd"/></dir><file name="Option.php" hash="1515ac3c5a915d814a63b7fe1d5e63bb"/><dir name="Set"><file name="Collection.php" hash="4064d63b518886a4e1a8b0539868297b"/></dir><file name="Set.php" hash="5caa0c72cd0a8bb9a73f6c537ab7c19a"/></dir><file name="Attribute.php" hash="0d90287692b6f7b8aa961e82992e6b80"/><file name="Store.php" hash="7ccda84a385ab0b3bcfbe2d0f9214a8e"/><dir name="Type"><file name="Collection.php" hash="f2271900b7cc9bcc317c3b15561b460f"/></dir><file name="Type.php" hash="258dc3600151215743abb3f826df4572"/></dir><dir name="Form"><dir name="Attribute"><file name="Collection.php" hash="b3e6bffd6179cf09b589f1d0f7a57a4c"/></dir><file name="Attribute.php" hash="1bae3456f8a814790ea27c6f87fe640e"/><dir name="Element"><file name="Collection.php" hash="fcbc5b35885479067ec6fcd8ddb212e5"/></dir><file name="Element.php" hash="25036926d29af351dbddea9896c118d1"/><dir name="Fieldset"><file name="Collection.php" hash="86c6b6a9ed62afd852f3ffd3aa82e88a"/></dir><file name="Fieldset.php" hash="76933617fe53fd9d5cccf6c4c3e6ae65"/><dir name="Type"><file name="Collection.php" hash="94d8400f8b81c0b5d46c3716a46197a1"/></dir><file name="Type.php" hash="bfcfa79bf5911c3cf38699903edcbde3"/></dir><dir name="Helper"><file name="Mysql4.php" hash="e569889cc3ec54dc85de288aaf895e09"/></dir></dir></dir><dir name="etc"><file name="config.xml" hash="dbab2258c8d26c903915254fe61ef3b3"/></dir><dir name="sql"><dir name="eav_setup"><file name="install-1.6.0.0.php" hash="8bd8cda1628ad65acced30d89f9e79f2"/><file name="mysql4-install-0.7.0.php" hash="b5c7cab312704e2f4b0837c7713ed7e5"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="4dc93d791f8319279f500b0b4ed8b72b"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="3304a0f850d10d0083eacfb2614043af"/><file name="mysql4-upgrade-0.7.10-0.7.11.php" hash="0a66058a0c21cb0746195f2cf09a8987"/><file name="mysql4-upgrade-0.7.11-0.7.12.php" hash="45a1db26109e930762aa3e6d27e7315e"/><file name="mysql4-upgrade-0.7.12-0.7.13.php" hash="eac8e6dbd6a556a0c97ec397a4b2bb6d"/><file name="mysql4-upgrade-0.7.13-0.7.14.php" hash="f9ef9728e9111ce19b3d4b0ced28c5dd"/><file name="mysql4-upgrade-0.7.14-0.7.15.php" hash="ead9b25a17f8bcfc1b874e568008e688"/><file name="mysql4-upgrade-0.7.15-0.7.16.php" hash="74a8a82cc1660b3be1ccec4131387b5b"/><file name="mysql4-upgrade-0.7.2-0.7.3.php" hash="821ca88eb77698b1e1363314d78c61b4"/><file name="mysql4-upgrade-0.7.3-0.7.4.php" hash="507ed2e28ff2f31e35df016bcb3aa6ce"/><file name="mysql4-upgrade-0.7.4-0.7.5.php" hash="962eed9c04187bec9872955c3cbcdd24"/><file name="mysql4-upgrade-0.7.5-0.7.6.php" hash="1794620b2d297dd60179fcf6f5932c74"/><file name="mysql4-upgrade-0.7.6-0.7.7.php" hash="41bc6f807ca7e82b1a49860647de4d22"/><file name="mysql4-upgrade-0.7.7-0.7.8.php" hash="b47e4d4570ed78ec510b818e705c60e5"/><file name="mysql4-upgrade-0.7.8-0.7.9.php" hash="3cc86e7527496b42cc349baf22061625"/><file name="mysql4-upgrade-0.7.9-0.7.10.php" hash="31a77042c51dda6249cf7b26175d41cf"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="5d300439dcdb43b988cdc3eb6a723a69"/><file name="upgrade-1.6.0.0-1.6.0.1.php" hash="c254084e38d31391d4a9dcf6f5efb1b5"/></dir></dir></dir><dir name="GiftMessage"><dir name="Block"><dir name="Adminhtml"><dir name="Product"><dir name="Helper"><dir name="Form"><file name="Config.php" hash="2b97d65b248912e6056105eb7b22647a"/></dir></dir></dir><dir name="Sales"><dir name="Order"><dir name="Create"><file name="Form.php" hash="102f55b5670ecc4624d2779a5d9dae47"/><file name="Giftoptions.php" hash="5af2eaa83c347cf87f944cecc240f72f"/><file name="Items.php" hash="b4833f6731249bb524d0ac5c8b61b823"/></dir><dir name="View"><file name="Form.php" hash="d96b129bc6aa7fb968b6b3bca40d6641"/><file name="Giftoptions.php" hash="8e5db4e604059e74dfa6a6cbf48eab22"/><file name="Items.php" hash="8c4cfb13907db5b6caab2a99ee039918"/></dir></dir></dir></dir><dir name="Message"><file name="Form.php" hash="e0b6247f6e0dac8a096335409c8bbf58"/><file name="Helper.php" hash="3a4cbf8851f4b489b433bb23fb62a50b"/><file name="Inline.php" hash="07b38ebaac00b45a1929387903ff3862"/></dir></dir><dir name="Helper"><file name="Data.php" hash="5b88dfacb8f95f979585366200b80f72"/><file name="Message.php" hash="92f73fd54b2a59340bfdbf05615fb68f"/><file name="Url.php" hash="9f8d36e13391f023deaaf0b912cc37fc"/></dir><dir name="Model"><dir name="Api"><file name="V2.php" hash="f04aee0ff3e2490540050c4b319ccedf"/></dir><file name="Api.php" hash="ae703cf87197282f7efde1dae67864af"/><dir name="Entity"><dir name="Attribute"><dir name="Backend"><dir name="Boolean"><file name="Config.php" hash="912ab6934476d64533586fd38351183d"/></dir></dir><dir name="Source"><dir name="Boolean"><file name="Config.php" hash="529f82da62485f46d085625efc092714"/></dir></dir></dir></dir><file name="Message.php" hash="6e3d9660ffca1ed6f992e15d2143e486"/><dir name="Mysql4"><dir name="Message"><file name="Collection.php" hash="8610d5937a758e916c2d81dbd41d36ac"/></dir><file name="Message.php" hash="6d0ccc5368848a220e397da25dfaf737"/><file name="Setup.php" hash="2407a2d026ed41cb38ceff1ebccb8c88"/></dir><file name="Observer.php" hash="9e8f1570cc6efdf82b5fc5b4b2e12b58"/><dir name="Resource"><dir name="Message"><file name="Collection.php" hash="6949121421c02e75fb923b0170b73d99"/></dir><file name="Message.php" hash="6b09b60ccc7b993dd17c5240cd2aa7ac"/><file name="Setup.php" hash="30c57e5147e83cce71f3976820ce24c6"/></dir></dir><dir name="controllers"><file name="IndexController.php" hash="7897754c8f0647dd688d6c57f4b74070"/></dir><dir name="etc"><file name="api.xml" hash="14039afdb9315721b5b515c9f34f41cb"/><file name="config.xml" hash="3cb2d88b80c9f48c64a36d62e9abcd3f"/><file name="system.xml" hash="510b3986f40a221b5d18f9dda07194c9"/><file name="wsdl.xml" hash="b99aaaac0126c6e09a7ba59fa4dbcf30"/><file name="wsi.xml" hash="ab77c7cfecb0f5d6cb7b07c0b5abc1d1"/></dir><dir name="sql"><dir name="giftmessage_setup"><file name="install-1.6.0.0.php" hash="0fb2290857ea3b17b7ed76e851d27c62"/><file name="mysql4-install-0.7.0.php" hash="654f2dbfc67cf93ffdd6d78a461e896a"/><file name="mysql4-upgrade-0.1.3-0.7.0.php" hash="e4ca5e477b610b00e61a8f7509ee1f5f"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="7775c0535994eefcc81be63041a681a1"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="2d547e8260cc8efdad80bb7898d536f5"/><file name="mysql4-upgrade-0.7.2-0.7.3.php" hash="80c9fd152bb817c49659463cc955b7a2"/><file name="mysql4-upgrade-0.7.3-0.7.4.php" hash="e11619037b1758b3ee2cd847af91315d"/><file name="mysql4-upgrade-0.7.4-0.7.5.php" hash="01dc822919ac4feb64b4d321078d3f8a"/><file name="mysql4-upgrade-0.7.5-0.7.6.php" hash="fd7bb80cc8682a3991609c5b1eed3977"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="ab382785e333359bb9793011aac0f586"/></dir></dir></dir><dir name="GoogleAnalytics"><dir name="Block"><file name="Ga.php" hash="21d9fd37c1e92ae684566de0eb42791f"/></dir><dir name="Helper"><file name="Data.php" hash="100f3a40bea481c98c1393f43b6bc603"/></dir><dir name="Model"><file name="Observer.php" hash="ad6ac25124a3322a714e20a977064be0"/><dir name="System"><dir name="Config"><dir name="Source"><file name="Type.php" hash="4805f9d896da417036af79e15613eac3"/></dir></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="5fea2673308abebb7cd8c15359737309"/><file name="config.xml" hash="4284f96f4068849482549a713d11c4f8"/><file name="system.xml" hash="c91c97c91ae42121ff31cd23d5a5682b"/></dir><dir name="sql"><dir name="googleanalytics_setup"><file name="install-1.6.0.0.php" hash="a7ae51e268e4b23f43b1f6b1477691f9"/></dir></dir></dir><dir name="GoogleBase"><dir name="Block"><dir name="Adminhtml"><file name="Captcha.php" hash="62f522f22cb64d19850b09ccee65adb6"/><dir name="Items"><file name="Item.php" hash="f8c9007a1ad978bb47b6c9d5d2c11d93"/><file name="Product.php" hash="e51f257f3918fcd5e72ce12f5f527b87"/><dir name="Renderer"><file name="Id.php" hash="a163a4d6a3edc89a19bb0efa0675ac7d"/></dir></dir><file name="Items.php" hash="f78483b50fc3e072d0dccb10fdc6e45a"/><dir name="Store"><file name="Switcher.php" hash="7dd1e22cb003eecdfa9a7d4df6628e1e"/></dir><dir name="Types"><dir name="Edit"><file name="Attributes.php" hash="de7ce9a9907ae7d7d94adb123ba364c4"/><file name="Form.php" hash="76cb4afbadef58a6cb517007fd258a1a"/></dir><file name="Edit.php" hash="7a8c72d4f8d506f69561735fe175d759"/><file name="Grid.php" hash="1794a6560af01397f30022cbf248de3f"/><dir name="Renderer"><file name="Country.php" hash="60106faee902375cc177fa463e27ec2a"/></dir></dir><file name="Types.php" hash="cc6a7f78d0e2edf4dfe7a40b46282138"/></dir></dir><dir name="Helper"><file name="Data.php" hash="a9d67fdd71f358434564df80fc163a06"/></dir><dir name="Model"><file name="Attribute.php" hash="c9e51b38341831512db3e739233707d4"/><file name="Config.php" hash="a3afa7ff5098f38dfe1d5c979f7389d1"/><file name="Item.php" hash="a200fd6fc7e97b66695133fa4650f35e"/><dir name="Mysql4"><dir name="Attribute"><file name="Collection.php" hash="4bf3b43f87dac062e4cba4ee6b155b02"/></dir><file name="Attribute.php" hash="8a74acdccc2d5e802c2f1ddf6b9f2a2d"/><dir name="Item"><file name="Collection.php" hash="26993881e30a5bc17876ae4024400823"/></dir><file name="Item.php" hash="73f6da324cb2de0d5975130fc7db4077"/><dir name="Type"><file name="Collection.php" hash="0294f3588c2dce8cd416e4ed5349d832"/></dir><file name="Type.php" hash="062cb6dd81aed45a04e69ef7acd5ab3d"/></dir><file name="Observer.php" hash="7a728d960e8d7291dad86f4391091696"/><dir name="Resource"><dir name="Attribute"><file name="Collection.php" hash="ea5ac4726d4656f50002c16f0b95cd58"/></dir><file name="Attribute.php" hash="8ff14327de62fcf5a8a0b01677202a41"/><dir name="Item"><file name="Collection.php" hash="b00cf45f527f967c76c8ce2d4b74fda4"/></dir><file name="Item.php" hash="ec0a24d01ec1e532d7d1c68ba0bf8eca"/><dir name="Type"><file name="Collection.php" hash="f72ce44ab1aec0e8c9e8dab0353b388c"/></dir><file name="Type.php" hash="4364b45b8eba2cf13aa0aa945ee9c03d"/></dir><dir name="Service"><file name="Feed.php" hash="199e735393a20e97b65cdee9f1c23fcd"/><file name="Item.php" hash="f02a6db44af965fc155d93048077ac08"/></dir><file name="Service.php" hash="278413ad9e0e76f20e58736aaf8aa5b9"/><dir name="Source"><file name="Accounttype.php" hash="f52c54635bd844df6474a5b890d468b2"/><file name="Authtype.php" hash="31fc1f9aa9000ff058ab8765cafd4e04"/><file name="Country.php" hash="886467f45e88a020c30ae01c9e5578e9"/><file name="Statuses.php" hash="ebcdec3951e1ed9ee101d149dd1bb24a"/></dir><file name="Type.php" hash="328e54fa39d0fbb1dffbe800b38d4100"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Googlebase"><file name="ItemsController.php" hash="b643377439ef3280554774f5d422766f"/><file name="SelectionController.php" hash="7238751980394f57e9f8cca86819114f"/><file name="TypesController.php" hash="72e6982dad771b164f21aa77b7507bbf"/></dir></dir><file name="ItemsController.php" hash="3e1165defd70e63523405e6a8debcab7"/><file name="SelectionController.php" hash="63901f0e85cb0769358a745c4628e58d"/><file name="TypesController.php" hash="9e01961f36dee9a443ac5c875f5ba939"/></dir><dir name="etc"><file name="adminhtml.xml" hash="a72bbb994243c60b20bd507b5ad4bd5e"/><file name="config.xml" hash="8b080f10dc19b429bfa57197e0fed070"/><file name="system.xml" hash="abdd0ddd6a9936e18c2e12181ccd0cf4"/></dir><dir name="sql"><dir name="googlebase_setup"><file name="install-1.6.0.0.php" hash="ac81f7ef2a424e846595f7aaeca9eb57"/><file name="mysql4-install-0.1.0.php" hash="5ef567e8fd3f272288334985d8319ed7"/><file name="mysql4-upgrade-0.1.0-0.1.1.php" hash="0bbd83ea551e93f64fa1ee618659d1bd"/><file name="mysql4-upgrade-0.1.1-0.1.2.php" hash="e94099eedd81ce5f48dbeb10adbcc391"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="f5618d5a47a34bdfc1a20c869f60b2ee"/></dir></dir></dir><dir name="GoogleCheckout"><dir name="Model"><file name="Payment.php" hash="1f39c37b4560a4016f479f8e97d4ef08"/></dir><dir name="etc"><file name="config.xml" hash="46071ba0ff385dc63194959aa98e5b89"/></dir></dir><dir name="ImportExport"><dir name="Block"><dir name="Adminhtml"><dir name="Export"><dir name="Edit"><file name="Form.php" hash="191ccf47abab7c84547280304805073a"/></dir><file name="Edit.php" hash="360e63e850d8f71eb7e75cf3cc21578c"/><file name="Filter.php" hash="c02bfef81c8010bc55d03bd26d4d72a8"/></dir><dir name="Import"><dir name="Edit"><file name="Form.php" hash="792fe3b32111587f3cb6da0e20b2dd7d"/></dir><file name="Edit.php" hash="89d3340a3cf9ca522457b72f882681f9"/><dir name="Frame"><file name="Result.php" hash="d325e4179d827ca9af9098f0d875f888"/></dir></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="6b5b53e8a8f5180ad6f13a5c27b094c1"/></dir><dir name="Model"><file name="Abstract.php" hash="40838be4ecbacd9411cce97a8e33fd59"/><file name="Config.php" hash="157790b05e5a9c2e0b7d204b88917318"/><dir name="Export"><dir name="Adapter"><file name="Abstract.php" hash="64ed9cc14fbad47ae4f11a2928fde17c"/><file name="Csv.php" hash="794dcfddb7bd0db0c5303df1f166153f"/></dir><dir name="Entity"><file name="Abstract.php" hash="e31a714f686f381d798e22664e1adbb6"/><file name="Customer.php" hash="24ab7d507c3a46d86d4aa20f2c998fd4"/><dir name="Product"><dir name="Type"><file name="Abstract.php" hash="20cf0dedd5dc42796be32ba0d51a2327"/><file name="Configurable.php" hash="4686346b2b166ff1f92146293cc7e327"/><file name="Grouped.php" hash="38f7b2c87a9455afdd0c135758740796"/><file name="Simple.php" hash="9ef13bb631878a0af571539965571172"/></dir></dir><file name="Product.php" hash="f591a679963220b632745c495f263512"/></dir></dir><file name="Export.php" hash="ea27aaa86fdc7d628ee11dbeb5c07f7c"/><dir name="Import"><dir name="Adapter"><file name="Abstract.php" hash="2ad7d03cced97eaaa1651ddd2b7f7083"/><file name="Csv.php" hash="75a2655c6e3540b2ca24619293902dd1"/></dir><file name="Adapter.php" hash="f236483dac22b562e1d06a5355a7f8f5"/><dir name="Entity"><file name="Abstract.php" hash="ae4bdb8377bd890291cf075cd2effefa"/><dir name="Customer"><file name="Address.php" hash="e5970ea424ff012beeaa5abda978df39"/></dir><file name="Customer.php" hash="2e407b589b4af03aba89271c91a33d70"/><dir name="Product"><dir name="Type"><file name="Abstract.php" hash="93a0b9def9a8f96499b060c3e12caadf"/><file name="Configurable.php" hash="5a9f117df70ab0d2a20c48be413162bb"/><file name="Grouped.php" hash="7fb797515dc6bf4fb6b695dd7a50209c"/><file name="Simple.php" hash="1fbbbbf117e24efa9ab1fa9fce3736f9"/></dir></dir><file name="Product.php" hash="38cda3bf095e0a5f9476a04782463be2"/></dir><dir name="Proxy"><dir name="Product"><file name="Resource.php" hash="fd09d311d1aa8f092f7bafd3057a74ba"/></dir><file name="Product.php" hash="ef5715669f2930b67adf56d347ed4335"/></dir><file name="Uploader.php" hash="7c3c8a75d52ca5626f3bbdb3e457229c"/></dir><file name="Import.php" hash="31c1fb6a58202618c63bedc68330edfe"/><dir name="Mysql4"><dir name="Import"><file name="Data.php" hash="4b9f1050be63d5e883107af1296175f2"/></dir><file name="Setup.php" hash="ae69a84651baea4a3980558f63bef95a"/></dir><dir name="Product"><dir name="Attribute"><dir name="Backend"><file name="Urlkey.php" hash="c48051028fca4186c5c6d9b86de4b26b"/></dir></dir></dir><dir name="Resource"><dir name="Helper"><file name="Mysql4.php" hash="bf9c7c30ee1dc6fa8dfc921f8ae7dfc4"/></dir><dir name="Import"><file name="Data.php" hash="c4db1e915b5b7f72a0ff25cf4f2f1541"/></dir><file name="Setup.php" hash="2d595c2da3a7deb58f70949f10a2dd3e"/></dir><dir name="Source"><dir name="Export"><file name="Entity.php" hash="b1e3a8910a8855867da94132482feb51"/><file name="Format.php" hash="d6d5b4658fc212ba88e5ee9200b65080"/></dir><dir name="Import"><file name="Behavior.php" hash="887159c45f3ab8ccd55f07ae44855d40"/><file name="Entity.php" hash="482bac24d63807f8a1e7dce11b15ca63"/></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="ExportController.php" hash="3a0345427274827e38cbc3a07a2c78ce"/><file name="ImportController.php" hash="60eaa6d4654ea83fcc6f35912b3493c3"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="8b27d8fa6369ee77b35c48e50dd63eb0"/><file name="config.xml" hash="3272523ea699bf38f342a8a9e22df99f"/><file name="system.xml" hash="c8a042d8ca73431d57b0f0e8664130d1"/></dir><dir name="sql"><dir name="importexport_setup"><file name="install-1.6.0.0.php" hash="e9c28a9b24e977248e6cf669002a4ebe"/><file name="mysql4-install-0.1.0.php" hash="477525d2570e7ec6f7b26cde9ba38f4a"/><file name="mysql4-upgrade-1.6.0.1-1.6.0.2.php" hash="31078007e13b489ee06a2d98c5f68f0e"/></dir></dir></dir><dir name="Index"><dir name="Block"><dir name="Adminhtml"><file name="Notifications.php" hash="64e42d1d0916743a3c267a9d3986a018"/><dir name="Process"><dir name="Edit"><file name="Form.php" hash="afec06dbd7f7e4703655d23518471df5"/><dir name="Tab"><file name="Main.php" hash="eab42bfbcdb027c24bdf85780380b453"/></dir><file name="Tabs.php" hash="f0027c1dec504f914afc09a5107d98cc"/></dir><file name="Edit.php" hash="a8607cfd423515bbab8652621b57ba97"/><dir name="Grid"><file name="Massaction.php" hash="81e99da4acec59e14a5328d88d1eef59"/></dir><file name="Grid.php" hash="2d48734f2ffba326c7e48f1c79fec71b"/></dir><file name="Process.php" hash="a5905ac7c9d456b64ab5efcbb01bfce8"/></dir></dir><file name="Exception.php" hash="3f9709e30bf75621f0b2b009fac764a3"/><dir name="Helper"><file name="Data.php" hash="526c8c51d7557bb7e2bebdc796d83dee"/></dir><dir name="Model"><file name="Event.php" hash="4ddf63e7fa648061409e0225cd44e404"/><dir name="Indexer"><file name="Abstract.php" hash="3456ff7dde44167200fa592863a01abb"/></dir><file name="Indexer.php" hash="7e249ec7766c897fcc067337af52f972"/><dir name="Lock"><dir name="Storage"><file name="Db.php" hash="7b6395c88009ce3b639153553dbfbe90"/><file name="Interface.php" hash="228a5b390d2eb1461f8284f0b0a0e436"/></dir></dir><file name="Lock.php" hash="18ae0b5da223a0e92aed6b366118633f"/><dir name="Mysql4"><file name="Abstract.php" hash="da2155dd41c4e0bc6d59024cfb8ecb6c"/><dir name="Event"><file name="Collection.php" hash="309b479d4c1fd12a8bb3ef51ab199245"/></dir><file name="Event.php" hash="b25a7b1d24b6260998c37c63c333d8b2"/><dir name="Process"><file name="Collection.php" hash="254e38062f1c44ddeb34b6e28bf1cd70"/></dir><file name="Process.php" hash="50c2548f9175cc128f8cb28251d82ab0"/><file name="Setup.php" hash="e173a9a5363dc1795e537e33aa2fd2e0"/></dir><file name="Observer.php" hash="f651484dc38526885bcb6b52a330a92c"/><file name="Process.php" hash="1beada279d1055354e1567b610ecf06b"/><dir name="Resource"><file name="Abstract.php" hash="e3f04920b0ccdcf81cad334aa4c98d92"/><dir name="Event"><file name="Collection.php" hash="7e1da3865c397d4f8f8f39deacdaf477"/></dir><file name="Event.php" hash="b38237c2f5e6479523e2e5dca54abfb7"/><dir name="Helper"><dir name="Lock"><file name="Interface.php" hash="68edac6eef4180e63de6c52596f2b6b7"/></dir><file name="Mysql4.php" hash="02072c9858b4d309efadf7b07f58538d"/></dir><dir name="Lock"><file name="Resource.php" hash="b1ade0fb2bf60074421c007373cd8f87"/></dir><dir name="Process"><file name="Collection.php" hash="23640077491875846f0bd74705a3fb3d"/></dir><file name="Process.php" hash="6cc0a505a68ac88ea9a9fd8bfed8ace4"/><file name="Setup.php" hash="9d334f0343ac10a2224fab7adb308709"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="ProcessController.php" hash="828bd6d468d2ac1b795a96963e61effa"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="881d9be8b3c918a1cf77f9e930efdf42"/><file name="config.xml" hash="0f27f7d206075ae8f14bff9293b2189c"/></dir><dir name="sql"><dir name="index_setup"><file name="install-1.6.0.0.php" hash="15418fe240598d12bf4d35dfd4d30a24"/><file name="mysql4-install-1.4.0.0.php" hash="3d1236edd44f29b962421065da8f0296"/><file name="mysql4-upgrade-1.4.0.0-1.4.0.1.php" hash="1c13dc777f4d4ed5ecd9ba41006fa6d3"/><file name="mysql4-upgrade-1.4.0.1-1.4.0.2.php" hash="4469700c7a18ff4a769e76be0c90266e"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="614694540111f3a5a21295109475a53e"/></dir></dir></dir><dir name="Install"><dir name="Block"><file name="Abstract.php" hash="555000323855b771524db1059d3c7325"/><file name="Admin.php" hash="acc664e804f36a76f83951fa9e006179"/><file name="Begin.php" hash="3c352bab206779b7424b8353cda33106"/><file name="Config.php" hash="5aaa7143564a85f0514f302e750756e2"/><dir name="Db"><file name="Main.php" hash="b47e431840dcbd7f3ad112a5bab094ff"/><dir name="Type"><file name="Mysql4.php" hash="0758a30a32781d178ceebf407b8ec7ed"/></dir><file name="Type.php" hash="29ba04bc5cfacd3edd3af12454ecf420"/></dir><file name="Download.php" hash="015e92ffaafb93fbc7734a019747cefc"/><file name="End.php" hash="6869d3d567eca578c8ac18375c235764"/><file name="Locale.php" hash="c237683a54c18d9e9c1e592cf3abfa32"/><file name="State.php" hash="d2b2eb2154ba0696c2e8f51c360fb38c"/></dir><dir name="Controller"><file name="Action.php" hash="936a0d4a816a2f20af2e82075fc09faf"/><dir name="Router"><file name="Install.php" hash="daad88210875f371d0308ad9232527ff"/></dir></dir><dir name="Helper"><file name="Data.php" hash="19d3c8e41fbdb23f2d36c7136daf4ca3"/></dir><dir name="Model"><file name="Config.php" hash="97fe63982485036efc55aa51f5a56664"/><dir name="Installer"><file name="Abstract.php" hash="3cfd0c23eec851411c164e572f2a9d77"/><file name="Config.php" hash="6d712ce39c557e7170d3450401a66bad"/><file name="Console.php" hash="a1a9e4fa9c3a75a3a3672d80ec6f7445"/><file name="Data.php" hash="3187a8648f8bd73efc4037e7491a29c6"/><dir name="Db"><file name="Abstract.php" hash="ee952066e04729eb05b4aad84e1266aa"/><file name="Mysql4.php" hash="58e387d6ca053687e4dc3c16664105d9"/></dir><file name="Db.php" hash="1c677f1de56b0cfed06c89d43fd2e6a4"/><file name="Env.php" hash="ab54af3da141dcffd4550230932fc31b"/><file name="Filesystem.php" hash="dd2164debedfc223c151543d6604754b"/><file name="Pear.php" hash="ea295ba14228f45bac4fd7c0efe3b655"/></dir><file name="Installer.php" hash="8aab26a891e8786b3fd82d1a6ddd2d86"/><file name="Observer.php" hash="7121ca74bcbf584b617f1beedb6b8a22"/><file name="Session.php" hash="cc550bb13df895f0ea855727598c60c2"/><file name="Wizard.php" hash="5d0aee29acb9303f1769d3a254335a1a"/></dir><dir name="controllers"><file name="IndexController.php" hash="256c45076b06fa9e37bda5b226d085b0"/><file name="WizardController.php" hash="20a361bc4c1b891c0406740e24dde5ab"/></dir><dir name="etc"><file name="config.xml" hash="d6b69e99d14fba4296f9ddf90ae4ec25"/><file name="install.xml" hash="31da31823570f91544558cd61c7fc226"/></dir></dir><dir name="Log"><dir name="Helper"><file name="Data.php" hash="30ae369a1aa4759d45a453609b5dad3c"/></dir><dir name="Model"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Source"><file name="Loglevel.php" hash="9cad9bf72c99c36940a09de844584716"/></dir></dir></dir></dir><file name="Aggregation.php" hash="5f78ce71ac5613af4644991bf532ff0b"/><file name="Cron.php" hash="d8ad0584b0f7ac24aff2ff0d6cc4cd91"/><file name="Customer.php" hash="b5f937ab16fa39630d9109616fbcbf59"/><file name="Log.php" hash="3aeefc6a2d29ec116b3099bd92164549"/><dir name="Mysql4"><file name="Aggregation.php" hash="b97140f67f21e77ede87b020e9517f5e"/><file name="Customer.php" hash="0d514c735d2ac96ab53aef336ec152c6"/><file name="Log.php" hash="f8e29884e1fe0ea14f53216ea119b753"/><dir name="Visitor"><file name="Collection.php" hash="a310d6e6b71610a4282e467a1b4aa41c"/><dir name="Online"><file name="Collection.php" hash="eb1e5990f2e12de88f7b0aa2b1b62dc1"/></dir><file name="Online.php" hash="e9b8b8a9bd0f56a674ef13f26e76173e"/></dir><file name="Visitor.php" hash="4102a469fbf239d68fb7b2ffb9905a22"/></dir><dir name="Resource"><file name="Aggregation.php" hash="4ce2a95673f3e0d6a96b9416adc1435c"/><file name="Customer.php" hash="e6d3b8a6a126f61a432b4a24967bcdfa"/><file name="Log.php" hash="cd9efd22a95cebc176759b75f3479a6b"/><dir name="Visitor"><file name="Collection.php" hash="a71743a48c7c2074c1af4611b8d8e905"/><dir name="Online"><file name="Collection.php" hash="50f686d723180437039b42ea42553113"/></dir><file name="Online.php" hash="b04b67e7d53aaa3cc4e96f12179bc905"/></dir><file name="Visitor.php" hash="55fb2c737e70985f71d03e9b2d5f3f20"/></dir><dir name="Visitor"><file name="Online.php" hash="c8744cb16a9038474c624a4bc0939166"/></dir><file name="Visitor.php" hash="928d3f4c1949c88f8ef947e47affb03d"/></dir><dir name="data"><dir name="log_setup"><file name="data-install-1.6.0.0.php" hash="83ebb5d68ec9c7a74ea170c7ad4d523d"/></dir></dir><dir name="etc"><file name="config.xml" hash="752c4b618caa3b66cba80355f680f61f"/><file name="system.xml" hash="1d8c7a56952b37a70adba7d4005d69e5"/></dir><dir name="sql"><dir name="log_setup"><file name="install-1.6.0.0.php" hash="e4885569c21f047e584cf37ba17af655"/><file name="mysql4-install-0.7.0.php" hash="d3b05b14033df61f11df7029aab003a0"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="b822f8f0e83f17b4853b78b816205ef9"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="44c6c31099f5e75706ef83c6c0d3e0d8"/><file name="mysql4-upgrade-0.7.3-0.7.4.php" hash="942917aad3bd435d793185fb16dfa1f6"/><file name="mysql4-upgrade-0.7.4-0.7.5.php" hash="273e630ff2847772bc2f0680947defa2"/><file name="mysql4-upgrade-0.7.5-0.7.6.php" hash="7dcc3a767526ab0fa4b626538011fd4a"/><file name="mysql4-upgrade-0.7.6-0.7.7.php" hash="9f31ffe2d94a4610da2b65219f42cb2c"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="81747aadb709ceef438bd9005f838da3"/><file name="mysql4-upgrade-1.6.0.0-1.6.1.0.php" hash="88ba8d186737c788be142f3b1f99c732"/><file name="mysql4-upgrade-1.6.1.0-1.6.1.1.php" hash="3ae3748b58bb788c9b1aed2198689aa6"/></dir></dir></dir><dir name="Media"><dir name="Helper"><file name="Data.php" hash="26771745a6464a7198d3e593254ca53d"/></dir><dir name="Model"><dir name="File"><file name="Image.php" hash="963140ba20341c36389eb43c64d54d9b"/></dir><dir name="Image"><dir name="Config"><file name="Interface.php" hash="57b1124aa9c503223ef3f88a5a967e33"/></dir></dir><file name="Image.php" hash="ed0066b2bf423c2cefed47ddb1af4236"/></dir><dir name="etc"><file name="config.xml" hash="1f67f3dc20255bd6e3cd3280969a23a9"/></dir></dir><dir name="Newsletter"><dir name="Block"><file name="Subscribe.php" hash="449ab55028a54ca25d0839b9cfc5b0b8"/></dir><dir name="Helper"><file name="Data.php" hash="14eceb7d1f476c6d32a0bc989e25f655"/></dir><dir name="Model"><file name="Message.php" hash="3cf3c04a138a75d3d21b60aebf14e8bf"/><dir name="Mysql4"><dir name="Problem"><file name="Collection.php" hash="3d949f32e546368ff16e02e088233531"/></dir><file name="Problem.php" hash="85f0b29f8d01c7869a6b436b38b62233"/><dir name="Queue"><file name="Collection.php" hash="361b217b7fd75fe633ac97e1d665da54"/></dir><file name="Queue.php" hash="4ee1b747ca7dbffcaf84a933341b7642"/><dir name="Subscriber"><file name="Collection.php" hash="e7141e4d1f981040b525a268cfbbe0b6"/></dir><file name="Subscriber.php" hash="4d67750c55b9944f29c7c127a1630e8a"/><dir name="Template"><file name="Collection.php" hash="761c9841afb177482318503120ecf6c2"/></dir><file name="Template.php" hash="0b3568e98b4a06b9eacdd19c40e2c35b"/></dir><file name="Observer.php" hash="f01f66d03b935a633b2a47e5177e6753"/><file name="Problem.php" hash="609d83b319fccdfdd963caef0dd98b7a"/><file name="Queue.php" hash="03683875ef4fb937ac4fd7ff32cb3db7"/><dir name="Resource"><dir name="Problem"><file name="Collection.php" hash="b38f7bc74ebaa7bc00b1cc6fc7522d45"/></dir><file name="Problem.php" hash="9759f8034517091ffeff187d0f1cc143"/><dir name="Queue"><file name="Collection.php" hash="3e77b2973b1d1e9ee11b3fffa4a019e3"/></dir><file name="Queue.php" hash="d48763a0ddf55e5acce61a64c5a0e342"/><dir name="Subscriber"><file name="Collection.php" hash="fe744d0af0f83889863470f07021cc2f"/></dir><file name="Subscriber.php" hash="381627f97da58822b99c853fceea89ed"/><dir name="Template"><file name="Collection.php" hash="1d5164328ce7a03fc4425c72e2929f84"/></dir><file name="Template.php" hash="274acf2f5d0e27a4c5190061ac53f19c"/></dir><file name="Session.php" hash="9ba9110e39fe7c83ea5d3d8083a83f40"/><file name="Subscriber.php" hash="b356c4fb473c18c566204ea520ece6ab"/><dir name="Template"><file name="Filter.php" hash="bbed59b047d5680c0980dd5c2d124f36"/></dir><file name="Template.php" hash="3706ee69d89cbf54d6b84622451215e0"/></dir><dir name="controllers"><file name="ManageController.php" hash="f7829644363c4307be49d59b3a480f79"/><file name="SubscriberController.php" hash="6e44a9acf8256e118ee24fbad6f88dab"/></dir><dir name="data"><dir name="newsletter_setup"><file name="data-upgrade-1.6.0.0-1.6.0.1.php" hash="4cf6778e36701416f8c01cf7b109f145"/><file name="data-upgrade-1.6.0.1-1.6.0.2.php" hash="888b0e1cbdd1d55dee197b4d91370314"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="503ba54d7c27fa034797c32c9bd0b7dc"/><file name="config.xml" hash="3c69e269d11922d08bdeaadb6aaadb4e"/><file name="system.xml" hash="7ef3fb951e816306912826b8697a27d4"/></dir><dir name="sql"><dir name="newsletter_setup"><file name="install-1.6.0.0.php" hash="58883f3e4e4c19304b7029df9d5d5e66"/><file name="mysql4-install-0.7.0.php" hash="0c1559a857127c060b1505c3c696b8b4"/><file name="mysql4-install-0.8.0.php" hash="a1544eb72c9a919917611239ef5f1988"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="8efdcb593f2e1007738ef1c18f3d7de1"/><file name="mysql4-upgrade-0.8.0-0.8.1.php" hash="58d80ff20a72380bdff5ea6959131765"/><file name="mysql4-upgrade-0.8.1-0.8.2.php" hash="faa728001981a1495b3fdee678e16249"/><file name="mysql4-upgrade-0.8.2-0.8.3.php" hash="3593430c5b8682e42147ff755846efb2"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="47e0fb7b1c861432c1b2b3162ab8f9a6"/></dir></dir></dir><dir name="Oauth"><dir name="Block"><dir name="Adminhtml"><dir name="Oauth"><dir name="Admin"><dir name="Token"><file name="Grid.php" hash="42036a33467da4f42d9058ddd47ab959"/></dir><file name="Token.php" hash="e4ce330fec980d7a70e2f88403c0c66e"/></dir><dir name="Authorize"><file name="Button.php" hash="71991ce5a051162fba9687620c5290ba"/></dir><file name="Authorize.php" hash="c6bf2c6799b7198418fe9a7e9d01c683"/><dir name="AuthorizedTokens"><file name="Grid.php" hash="76a530eda3c116a423400284c20f5c9c"/></dir><file name="AuthorizedTokens.php" hash="c9d45c65803f066fa8438be651c285d8"/><dir name="Consumer"><dir name="Edit"><file name="Form.php" hash="2226a3bcda3e8c3d2388135c5472b9db"/></dir><file name="Edit.php" hash="199e0dcb4a0a490de70b964b7b5cdb9b"/><file name="Grid.php" hash="26eb0ea15a6d1d5489f314cec6f661e4"/></dir><file name="Consumer.php" hash="0312def158a954066ad38a714819ba72"/></dir></dir><dir name="Authorize"><file name="Abstract.php" hash="f353f1ba5541b14e93b2b435aca1b545"/><file name="Button.php" hash="346967facd6467c8b10af56bc79eb306"/><file name="ButtonBaseAbstract.php" hash="16c30c4c11dcca0bb6f881c5caaed97c"/></dir><file name="Authorize.php" hash="f97e5456556525395dee90320c4436ad"/><file name="AuthorizeBaseAbstract.php" hash="a465b5fb6fb39b657966057c6ccff3b9"/><dir name="Customer"><dir name="Token"><file name="List.php" hash="3ffbb0ed0553620eb7f3fbe6e9016599"/></dir></dir></dir><file name="Exception.php" hash="f4e95c4ab7bad97ff9577d33ec4ab39a"/><dir name="Helper"><file name="Data.php" hash="9ad92655975ce86bb2df598306c7ea4b"/></dir><dir name="Model"><dir name="Consumer"><dir name="Validator"><file name="KeyLength.php" hash="b4b6e8060e7d3e294f7901dc35725f49"/></dir></dir><file name="Consumer.php" hash="e25d96d06e6d8da85bf5682c52fe9c5c"/><file name="Nonce.php" hash="9769e90a4ed04e55aa61e6d4d2dc36a2"/><file name="Observer.php" hash="c74d4927d19fbddac91433efd6922bd7"/><dir name="Resource"><dir name="Consumer"><file name="Collection.php" hash="71ba2fcde335893d300a9eabcd00c837"/></dir><file name="Consumer.php" hash="fef2c17117346cdbda4a13ad1d76b398"/><dir name="Nonce"><file name="Collection.php" hash="cf540be396de9075c3faad12a0f185a7"/></dir><file name="Nonce.php" hash="1aa04099dd8af352a53941355cb637e6"/><file name="Setup.php" hash="f4e3e2147d0f2a707ba7626f64174fcb"/><dir name="Token"><file name="Collection.php" hash="9b7d966bb3eb546bca3e02e6ad926ec6"/></dir><file name="Token.php" hash="d68c2670ee4466f74bef021fd8d1d2fe"/></dir><file name="Server.php" hash="63f08a68e9bf28bcfcf21f99190092f6"/><file name="Token.php" hash="a514038f9060a508704578c4fc7687de"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Oauth"><dir name="Admin"><file name="TokenController.php" hash="8e468113385b7a74e3839dad6c498876"/></dir><file name="AuthorizeController.php" hash="7f7733f394041f5a87571c5a8299d740"/><file name="AuthorizedTokensController.php" hash="bcbce949721b421810bde10f13a8908d"/><file name="ConsumerController.php" hash="d65a605940f42aa8ff904d0e1a15017e"/></dir></dir><file name="AuthorizeController.php" hash="911adff8b475a3da8a22adc711522c45"/><dir name="Customer"><file name="TokenController.php" hash="927ebd85e7a1c2f4d131169e4d07ab5e"/></dir><file name="InitiateController.php" hash="a1313c0315c9cf39f182b096013c3600"/><file name="TokenController.php" hash="d823cd1d366e521328961389696e6d76"/></dir><dir name="etc"><file name="adminhtml.xml" hash="14e19f6615abc0e1fa1ad599784fbd1f"/><file name="config.xml" hash="6e8262e104995201cdf1364b6f8ade1d"/><file name="system.xml" hash="6e56da8ad6bcd25048783b50946a8ee2"/></dir><dir name="sql"><dir name="oauth_setup"><file name="install-1.0.0.0.php" hash="1a04a4872f35972c93888c4ac6a3877f"/></dir></dir></dir><dir name="Page"><dir name="Block"><dir name="Html"><file name="Breadcrumbs.php" hash="76af1c2d62a351333dcf0d5b08fec99f"/><file name="CookieNotice.php" hash="d99d2a80b967fbe83f55f23ad52becb2"/><file name="Footer.php" hash="ff6f73f6b42e113499ae3b3064bb430f"/><file name="Head.php" hash="f1ec3c20a89e408bfda4d199b608800f"/><file name="Header.php" hash="b5796cf01cabb982036e16b31c3d802a"/><file name="Notices.php" hash="d73e9b23a0554aa17d65dc9fe9a41f8b"/><file name="Pager.php" hash="cb7e6e7f110b4aae632f042992f13dea"/><file name="Toplinks.php" hash="0ca598406370b7c20b701e1503de60c2"/><dir name="Topmenu"><file name="Renderer.php" hash="c7820b31bfc7f45f214e0443889ef1f9"/></dir><file name="Topmenu.php" hash="d6038fa18c19d3a1790783f1a1cdfc34"/><file name="Welcome.php" hash="e29f11ee527cf91312c1df7a1169a3ec"/><file name="Wrapper.php" hash="728d2084b2ca0112b9d19d3621f376f3"/></dir><file name="Html.php" hash="fb9c260b36a23840c073ee9a8767e994"/><dir name="Js"><file name="Cookie.php" hash="9c3b30a237707c39b54125be0c6c8b95"/><file name="Translate.php" hash="7b301f7fdc537ae8845db32933577ba7"/></dir><file name="Redirect.php" hash="9743b0e148b44690057ce8aef91c32f1"/><file name="Switch.php" hash="2813eb1fcc51fbd521f62ca8841b2503"/><dir name="Template"><file name="Container.php" hash="a47ca180b7c5fe949b77ab548a148a7a"/><dir name="Links"><file name="Block.php" hash="7a36747c24374c252232ae00d1e07e4b"/></dir><file name="Links.php" hash="209d295ad695628faf975c1366e3f70d"/></dir></dir><dir name="Helper"><file name="Data.php" hash="b3237bb0b644e30e9de83668c2c57f75"/><file name="Html.php" hash="d50c1710bf6ac9bd53637016c514736b"/><file name="Layout.php" hash="b2ab663e18bb1617a8c520b0ff87e03c"/></dir><dir name="Model"><file name="Config.php" hash="ce257767900549bccb75fbac14b14b0b"/><dir name="Source"><file name="Layout.php" hash="498643f03bf27d411a95c1885970b4cb"/></dir></dir><dir name="etc"><file name="config.xml" hash="1e437f497da55c56e92332739548ffd6"/><file name="system.xml" hash="35f4c6faed23af9b665de3933c674820"/></dir></dir><dir name="PageCache"><dir name="Block"><dir name="Adminhtml"><dir name="Cache"><file name="Additional.php" hash="3dba80fb53e5a4e05ab038242a5062a6"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="82b38eb4d6f3326dced9558236f05b84"/></dir><dir name="Model"><dir name="Control"><file name="Interface.php" hash="32465287fd5ad49a5373b2f49c6d7787"/><file name="Zend.php" hash="ae15c24b95b8a22abb718c2615d1501a"/></dir><file name="Observer.php" hash="1cc8787360b74db204bc992a9961a810"/><dir name="System"><dir name="Config"><dir name="Source"><file name="Controls.php" hash="da7eb2b87b1c384efa2acab229a831e0"/></dir></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="PageCacheController.php" hash="8253cb13731f25fdc7054db569def5de"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="cf82072d1f673dd4f2cb8298d944b06a"/><file name="config.xml" hash="c4fc5364d36f687cf8ae0c9ebfcd5d07"/><file name="system.xml" hash="d8f45c4bac9d0d1f705c6bcd46c2ca57"/></dir></dir><dir name="Paygate"><dir name="Block"><dir name="Authorizenet"><dir name="Form"><file name="Cc.php" hash="3a748028fe3f5b5d5f066c448f419fba"/></dir><dir name="Info"><file name="Cc.php" hash="a78355ba5a73bc8f26fccf2373cc2ae9"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="e9561c30aa2df8e942f466c827656736"/></dir><dir name="Model"><dir name="Authorizenet"><file name="Cards.php" hash="668c87965a89ec7ad2aa5fd30cdc4ca3"/><file name="Debug.php" hash="8618355606cd3814e802dc10c700b41c"/><file name="Request.php" hash="c1f4b4089359478b40a1b6a9e23351c2"/><file name="Result.php" hash="bf8a7bbce2821c12d49cbf7984d23b99"/><dir name="Source"><file name="Cctype.php" hash="71c90de1db4b2238bc322349f070730c"/><file name="PaymentAction.php" hash="83e8c00869bf0234049555f0f22c8ebe"/></dir></dir><file name="Authorizenet.php" hash="4459a6e01fb54bc355e7246f9fbcdf44"/><dir name="Mysql4"><dir name="Authorizenet"><dir name="Debug"><file name="Collection.php" hash="213ce4998f43bc900c8df45cfd5100a3"/></dir><file name="Debug.php" hash="b25abe86de7da9d31b0e6e2fbebca46e"/></dir></dir><dir name="Resource"><dir name="Authorizenet"><dir name="Debug"><file name="Collection.php" hash="96579efd296c9747bc69ddb93563c7c7"/></dir><file name="Debug.php" hash="8b16f0e8c62f27c974a630174b445e9e"/></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Paygate"><dir name="Authorizenet"><file name="PaymentController.php" hash="0786c25427d18f4c42d7e0dbeeecce44"/></dir></dir></dir><dir name="Authorizenet"><file name="PaymentController.php" hash="cba52139f51e9c6036da7a9d43000559"/></dir></dir><dir name="etc"><file name="config.xml" hash="7d9c108a4f7461e38e453595ae99e166"/><file name="system.xml" hash="4c7ad997873f413974b8d7acda17fe00"/></dir><dir name="sql"><dir name="paygate_setup"><file name="install-1.6.0.0.php" hash="b42125deb1bb3e94a0b964bce550a2db"/><file name="mysql4-data-upgrade-0.7.0-0.7.1.php" hash="4f22fe3689b223adc5818e70691f671c"/><file name="mysql4-install-0.7.0.php" hash="3e2e04f85dfdf7b9fa7697904035e86e"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="48c76ca9ce36054b194288542f4bbd25"/></dir></dir></dir><dir name="Payment"><dir name="Block"><dir name="Catalog"><dir name="Product"><dir name="View"><file name="Profile.php" hash="4cbf4eb8350c8a40f01970c7960122de"/></dir></dir></dir><dir name="Form"><file name="Banktransfer.php" hash="ca8b755ddb73aeb8b2f35b9f75338a0f"/><file name="Cashondelivery.php" hash="ff169ed043cc386faf01e8fe15bf3022"/><file name="Cc.php" hash="2389f3a83069e0643b4e750ba4e8e44f"/><file name="Ccsave.php" hash="5ff8d24e9e6a4297b8e4f687368da407"/><file name="Checkmo.php" hash="bdc8bb2c6ba10b7e9957e8e521e90c12"/><file name="Container.php" hash="cec07bf2ca7b4b2bb3a0baa0ffb9f2c1"/><file name="Purchaseorder.php" hash="137da51f5fde7f115c2a85a5b36990a4"/></dir><file name="Form.php" hash="dd368566c7eb6919ad947e78cbe1859e"/><dir name="Info"><file name="Banktransfer.php" hash="ecf02d9d5721675e2975d7dfec284403"/><file name="Cc.php" hash="99dc5f4df2287ab2c22bdc58542f074b"/><file name="Ccsave.php" hash="082a31b849bbb55a59190e02893a75d5"/><file name="Checkmo.php" hash="b0446cc68a1a3ba9f2e03905e77d6eb8"/><file name="Container.php" hash="2ee3f38b5cd1f6fa43b95a858d921708"/><file name="Purchaseorder.php" hash="0fe351afef830b891f9bfb105c44d030"/></dir><file name="Info.php" hash="f71e6f15698f402e9189ca9e5bc670b4"/></dir><file name="Exception.php" hash="beb2d8551ade49853e5437659b614c6c"/><dir name="Helper"><file name="Data.php" hash="7b268b8060a3e70aa39971ef7258a253"/></dir><dir name="Model"><dir name="Billing"><dir name="Agreement"><file name="MethodInterface.php" hash="424553e9cc4fe2fa6befb6401bcf1006"/></dir><file name="AgreementAbstract.php" hash="4043c168c28cfb9a86f15bdde1aa4f33"/></dir><file name="Config.php" hash="195db58e611647682704767e965799e9"/><dir name="Info"><file name="Exception.php" hash="fc52e6ca869415f8a26d7f36a5752f60"/></dir><file name="Info.php" hash="38f6883ca27e92501ca87f8c5310c983"/><dir name="Method"><file name="Abstract.php" hash="7fcbd59cc63e90c83a8ac304b21fb959"/><file name="Banktransfer.php" hash="fb540e43ac0f7fd3bd1635e4762fdbd4"/><file name="Cashondelivery.php" hash="b09ee08f6805fbef82daed86b26548d4"/><file name="Cc.php" hash="d03d57e9fb50fd58e633a17dc5a36c8f"/><file name="Ccsave.php" hash="6df7df82d30724aacb47c6447cb1fcac"/><file name="Checkmo.php" hash="20737ca73dc12889ac107605ec7d27ca"/><file name="Free.php" hash="0b771056ddecea00184fe0c141550e47"/><file name="Purchaseorder.php" hash="a7b2b57eb818f50e3508c7838ad211be"/></dir><file name="Observer.php" hash="d6337e367754f1da2328f9907c9a17e6"/><dir name="Paygate"><file name="Request.php" hash="86a6803dfe434c5d7afc2fd7b27cc3db"/><file name="Result.php" hash="4f715aa54c36a891099828332fc68aee"/></dir><dir name="Recurring"><dir name="Profile"><file name="MethodInterface.php" hash="d434add969bedb69762a5be4866f54d3"/></dir><file name="Profile.php" hash="f07c2863b3b89472e76678fca27cdf0c"/></dir><dir name="Source"><file name="Cctype.php" hash="8941383914fc870894a525c394311e10"/><file name="Invoice.php" hash="bbb8f9293ea7928c47007f7c05066b63"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="7a5adf8c1263e48cf2f9071c5195ee2a"/><file name="config.xml" hash="74b9d5cb7149617310b34c1f59542126"/><file name="system.xml" hash="adcf3b2b91219f1f5526b0f70849f65c"/></dir></dir><dir name="Paypal"><dir name="Block"><dir name="Adminhtml"><dir name="Settlement"><dir name="Details"><file name="Form.php" hash="7a5470652fc38ab2c5918a16becdf54f"/></dir><file name="Details.php" hash="49132e87516ed2cd05aa80f7a4afbcb2"/><dir name="Report"><file name="Grid.php" hash="3e6dda1e1a4aadbd6007772f17cd35dc"/></dir><file name="Report.php" hash="c3104724d674c1317dc23146436dc33e"/></dir><dir name="System"><dir name="Config"><file name="ApiWizard.php" hash="237edd4428f23a4d0824161159031907"/><file name="BmlApiWizard.php" hash="0d02c63e9dcd5d8f92abbf6a7435e9d2"/><dir name="Field"><file name="Country.php" hash="194bfb6c4fd11f9eedaa2df850a243ba"/><file name="Hidden.php" hash="fc1085a05c3570cc1345d82bc6f46153"/><file name="SolutionType.php" hash="c199b755054bed63b98bcfe870ee24c3"/></dir><dir name="Fieldset"><file name="Deprecated.php" hash="75ccac6c4a42d1d89bd4453afc5d7936"/><file name="Expanded.php" hash="f6979eb0dec53d903b255cb81fa64e7d"/><file name="Global.php" hash="b243db32fddae60eda87b9cf8615983d"/><file name="Group.php" hash="8fc7543ec871e4bc58965ec050f19f9d"/><file name="Hint.php" hash="849288a88f8ecff4c66bd9b7f39f5f73"/><file name="Location.php" hash="6bed7b43656d2201e15fed7c4ee91372"/><file name="PathDependent.php" hash="e4a8685376fa5318336d2285b727cb6d"/><file name="Payment.php" hash="202f147418cb85a3d895f96b76eeb412"/><file name="Store.php" hash="8cf7dfe2261b400034ab9e8d45b31e49"/></dir><dir name="Payflowlink"><file name="Advanced.php" hash="dbb8abc9fc791cd9e4f9d8b0db1a5799"/><file name="Info.php" hash="0b570584ebe08a45704445fb84b7e64d"/></dir></dir></dir></dir><dir name="Bml"><file name="Banners.php" hash="9ce71c3a54451fd06f8a58d6dfa94774"/><file name="Form.php" hash="8861e608e012ad0d129cbaacce543fa4"/></dir><dir name="Express"><file name="Form.php" hash="2dfe96f6ec89fa9cc6efba0d71efcb27"/><dir name="Review"><file name="Billing.php" hash="f87c07fbe423ba3cfbae38b0359f8e9d"/><file name="Details.php" hash="41e9c8426c47365611cfdd8c2cba6537"/><file name="Shipping.php" hash="87ab76371ff5d8cf3cff2adf2d864347"/></dir><file name="Review.php" hash="1b9840c465a17813701faf8c4307315f"/><file name="Shortcut.php" hash="fd29062b729328ca291f45c5ad541773"/></dir><dir name="Hosted"><dir name="Pro"><file name="Form.php" hash="fb0a5f67251cc199cd8ce40b4e543003"/><file name="Iframe.php" hash="6ad033d68b559ae0eeb0f4ce580368aa"/><file name="Info.php" hash="88de1e67a4cf09a19b18db35594e2f83"/></dir></dir><file name="Iframe.php" hash="130b950fb3db789617577e253f44d0d4"/><file name="Logo.php" hash="01ad9e06cf747d11e56fb1232191fa97"/><dir name="Payflow"><dir name="Advanced"><file name="Form.php" hash="e27e11120227c4317975d53d6ec87a07"/><file name="Iframe.php" hash="dbdcf942fcca65ce33275ec2546c4cfc"/><file name="Info.php" hash="c653c07418e1b95851a35dfa6167c703"/><file name="Review.php" hash="fc88e4f21988be8c6df7d6061c305c40"/></dir><dir name="Link"><file name="Form.php" hash="3aa3d74747d840e18d4573e68c7a7986"/><file name="Iframe.php" hash="da1e91b2b849623f4b12bd7f64bcbd04"/><file name="Info.php" hash="a0870dd47d4228d2d425e4a3f5f27f2e"/><file name="Review.php" hash="13c8891d5e0cefda15c57b6e402bf6ff"/></dir></dir><dir name="Payment"><file name="Info.php" hash="7f2d80e99718b0c94a08347d73a64da4"/></dir><dir name="Standard"><file name="Form.php" hash="d4bd08c533fe4c4db3daab3bf9360860"/><file name="Redirect.php" hash="36d3646e7d3e4013847ff219e3f9e3db"/></dir></dir><dir name="Controller"><dir name="Express"><file name="Abstract.php" hash="4695d1fac56793866c282316b3d33917"/></dir></dir><file name="Exception.php" hash="7dee8f2f62ac73a1c4e25b12fb85a3fb"/><dir name="Helper"><file name="Checkout.php" hash="f71e0d44157c5c7c710f768317a418b0"/><file name="Data.php" hash="0e4a617f7985832bca600b52de577278"/><file name="Hss.php" hash="1643e958dd97f7b024e5412d82e0de3c"/></dir><dir name="Model"><dir name="Api"><file name="Abstract.php" hash="5c289e9731993409f86cee3b2919f4a8"/><file name="Nvp.php" hash="048397ce1e613a1481613a09b79e3c02"/><file name="ProcessableException.php" hash="4313e637008571be2bd2d86f6a560112"/><file name="Standard.php" hash="986fd1dec22bc55cb84ecf75c7bc3729"/></dir><file name="Bml.php" hash="ac3c55752b8eb272c9481fc11521bb0b"/><file name="Cart.php" hash="d6979cb0fe3174d7d70bbf26474b3a16"/><file name="Cert.php" hash="8b23417ca6e231a0ec8f89a6e769f01e"/><file name="Config.php" hash="d356e412f4eca6207004674303791ad6"/><file name="Direct.php" hash="04692b3598ead300783c59dc664e5ad5"/><dir name="Express"><file name="Checkout.php" hash="dc1c4a7086ed6df59c5513e9b3b15e11"/></dir><file name="Express.php" hash="553e93873ac88d39e98b5a01ef0e26f2"/><dir name="Hostedpro"><file name="Request.php" hash="4aaa99812f8ba31c0e2aee9c18d68671"/></dir><file name="Hostedpro.php" hash="14ae27c0f8a9d9c2ec1525ec9b06be7c"/><file name="Info.php" hash="31e9a1d2d63b0d826079a4c74a4779d2"/><file name="Ipn.php" hash="5a216c988a5b749bcda0bf0acba621c7"/><dir name="Method"><file name="Agreement.php" hash="c24473819dda2b2d6d6ff3dcc8f66b46"/></dir><dir name="Mysql4"><file name="Cert.php" hash="e873d71130a68719913fd5d2cc5cde98"/><dir name="Report"><dir name="Settlement"><dir name="Row"><file name="Collection.php" hash="e91f7ac5962615e0bd88ad266397f351"/></dir><file name="Row.php" hash="546eca3d90673785045eed293e0eacb3"/></dir><file name="Settlement.php" hash="1fb1b95e74a309c82098aa33267dddf2"/></dir><file name="Setup.php" hash="25c05eab1013655aa210df9db8b24e5a"/></dir><file name="Observer.php" hash="425f8814bb8c74fec03ae794960341ae"/><dir name="Payflow"><file name="Request.php" hash="4e6e0e5b184f618e00f58a193f9947c8"/></dir><file name="Payflowadvanced.php" hash="2d03cd17c394c87dd24eaedb15099df0"/><file name="Payflowlink.php" hash="7a4d9c3add43af18a085145abb7f947f"/><file name="Payflowpro.php" hash="ea5729b6eecc3703ffa5870a490a4b26"/><dir name="Payment"><file name="Transaction.php" hash="6b591f640c751a19076203c300387493"/></dir><file name="Pro.php" hash="50866ddf07601f6f95600cbe36fbf789"/><dir name="Report"><dir name="Settlement"><file name="Row.php" hash="e8ce793bd31bfdbb335e5b7c88ee6481"/></dir><file name="Settlement.php" hash="bf873501e3ec1dc391091857c29f129b"/></dir><dir name="Resource"><file name="Cert.php" hash="47acda02c8bb5253aec7806152a21256"/><dir name="Payment"><dir name="Transaction"><file name="Collection.php" hash="46c4cbe70814d8248cbcd55914aa4760"/></dir><file name="Transaction.php" hash="69e92d4f119da07ae7afb02c5386daa7"/></dir><dir name="Report"><dir name="Settlement"><dir name="Row"><file name="Collection.php" hash="5e2ad46cf5c7c0f5351ba9657f633f17"/></dir><file name="Row.php" hash="3dfbb758901b47830b60f114073004c0"/></dir><file name="Settlement.php" hash="1acdff09f13b0d35b656aec95d6d1c73"/></dir><file name="Setup.php" hash="37c6198a0a0e5daa1deb681b98d81bf5"/></dir><file name="Session.php" hash="afe645f7f8170a396398c7b19ccb6081"/><file name="Standard.php" hash="7765aa2b21914c56a89ee5e620c3e19c"/><dir name="System"><dir name="Config"><dir name="Backend"><file name="Cert.php" hash="e2e25660cbd04ebca8ecece49b2fd048"/><file name="Cron.php" hash="ef3cc65eee0ceac037efa06c9f183ca1"/><file name="MerchantCountry.php" hash="da78abe736c024ecf6f1ddecaaa63526"/></dir><dir name="Source"><file name="AuthorizationAmounts.php" hash="571d007a29c74c59c744f50d29842543"/><file name="BmlPosition.php" hash="60bbdfda6cd86dda0fe90c9700cf2636"/><file name="BmlSize.php" hash="607c977a8aaafcc229143b82cf430c25"/><file name="BuyerCountry.php" hash="799dde6860e145d7b2433d23728a82f5"/><file name="FetchingSchedule.php" hash="f0e755d7731dfb5a2347bf10301704cb"/><file name="Logo.php" hash="27e65c01c0772b1c0d80dcdef6cc4f5b"/><file name="MerchantCountry.php" hash="6ba3235a1ee581aaf4d6713f36588fb5"/><dir name="PaymentActions"><file name="Express.php" hash="801ace31eab8ee2c6d7c8a7e16d9e6db"/></dir><file name="PaymentActions.php" hash="b5b002fac765911a65902f60f0653be7"/><file name="RequireBillingAddress.php" hash="411ab6c7e05926bcf468abf930537ce7"/><file name="UrlMethod.php" hash="f63d754747653c20805e462c19ea5c7e"/><file name="YesnoShortcut.php" hash="90d03993b09bedefc96ffd9805ed1431"/></dir></dir></dir></dir><file name="UnavailableException.php" hash="6aea3ef7d5c6faa61e7db9f7a0642730"/><dir name="controllers"><dir name="Adminhtml"><dir name="Paypal"><file name="ReportsController.php" hash="8a89aa9cddb18427419f685703580e3a"/></dir></dir><file name="BmlController.php" hash="78af6f6e5e867ca3db8c884c06192719"/><file name="ExpressController.php" hash="7ddeae6fed13f82b047a913bb26db088"/><file name="HostedproController.php" hash="19064da0129b279576087d06be8cf6cc"/><file name="IpnController.php" hash="47cb003f48e69d3e287b734356ddd034"/><file name="PayflowController.php" hash="62adc0e1b8c39a493c9dd6878da1b56b"/><file name="PayflowadvancedController.php" hash="461bd3aa8ea93322a72b54bca8284d29"/><file name="StandardController.php" hash="362883e8f15d465d51ab2968a94e9479"/></dir><dir name="data"><dir name="paypal_setup"><file name="data-install-1.6.0.5.php" hash="059b1d115ed5c3bb2a36a9812d35efcf"/><file name="data-upgrade-1.6.0.2-1.6.0.3.php" hash="46c7aff595df6d6bb6271f9f59517dd6"/><file name="data-upgrade-1.6.0.4-1.6.0.5.php" hash="37291b0a8e2303c570801b2969a82525"/><file name="data-upgrade-1.6.0.5-1.6.0.6.php" hash="fa6c77f9043beff5657041a8ee147306"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="fab4507688b1a9c58c66c03a8d896db3"/><file name="config.xml" hash="34dd5390aea2da6b8879d8d829252eef"/><file name="system.xml" hash="b229ac8bc2bef28008308a1a7e64cd61"/></dir><dir name="sql"><dir name="paypal_setup"><file name="install-1.6.0.0.php" hash="e2a0c2a2016d509249a35bf9a2bc8db7"/><file name="mysql4-install-0.7.0.php" hash="f244a03c132a74f31c9f31f1d94a7546"/><file name="mysql4-install-1.4.0.0.php" hash="5b7b095062586fad639f38e6093510ab"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="42c40b94a3dedfc1626294b4f2ef8c82"/><file name="mysql4-upgrade-0.7.2-0.7.3.php" hash="14ae3790f7806b0a42a5d41cad31c86b"/><file name="mysql4-upgrade-1.4.0.0-1.4.0.1.php" hash="e35cb5cd3389959767a64db45574d84d"/><file name="mysql4-upgrade-1.4.0.1-1.4.0.2.php" hash="29ecb0e7970cb79297902da47cf467ae"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="8e744cbcd04e839ddc7fddaaaa32796c"/><file name="upgrade-1.6.0.0-1.6.0.1.php" hash="5c36c70f4c75b61a1f259022d30b7a4b"/><file name="upgrade-1.6.0.1-1.6.0.2.php" hash="06f5655d0fb454ef38e3789d601222fa"/><file name="upgrade-1.6.0.3-1.6.0.4.php" hash="6b9ddbbf5508514480fa87bbd76ee985"/></dir></dir></dir><dir name="PaypalUk"><dir name="Block"><dir name="Bml"><file name="Form.php" hash="cf1b947ad1c91ba44acedf5decb9a532"/></dir><dir name="Express"><file name="Form.php" hash="f5373e3c537b94289836075f9afb0b51"/><file name="Shortcut.php" hash="b2cdf2c320cd92884fd4abf89faef178"/></dir></dir><dir name="Helper"><file name="Data.php" hash="8e0d1ad6e9324789591fc6239fc3c6ac"/></dir><dir name="Model"><dir name="Api"><dir name="Express"><file name="Nvp.php" hash="64ef2065db009f8abd4648012d824e0c"/></dir><file name="Nvp.php" hash="6af3185466eb67691c2ef46c0a80286b"/></dir><file name="Bml.php" hash="8e3a5e9fe353ea100b3cfe59d230356b"/><file name="Direct.php" hash="be8ed9705207543d515177edabbfb41a"/><dir name="Express"><file name="Checkout.php" hash="953e880327e7656ce8b6beecfe8d8253"/><file name="Pro.php" hash="1e637be10b977f8076cf50afda5d13a3"/></dir><file name="Express.php" hash="5d7be27ca6afc8c62cccccd8c8ce736a"/><file name="Pro.php" hash="5c585f87407ae54513c53d09976832e3"/><file name="Session.php" hash="1b6cb3ba3f1d5c25f5cc39adafb2209b"/></dir><dir name="controllers"><file name="BmlController.php" hash="a0fc8df60f523651cdaecebc60098ece"/><file name="ExpressController.php" hash="784cc6db9289eef6341d1f06690bf54d"/></dir><dir name="etc"><file name="config.xml" hash="04422987a1fa80e48b0139077b8a246a"/></dir><dir name="sql"><dir name="paypaluk_setup"><file name="install-1.6.0.0.php" hash="2cb3e7e5d9b500a7635404f507d868d3"/><file name="mysql4-install-0.7.0.php" hash="740e1532e31f969125a4b91219b9a0c7"/></dir></dir></dir><dir name="Persistent"><dir name="Block"><dir name="Form"><file name="Remember.php" hash="5794677bd73e8be3cfd7fa8f18fdcdd2"/></dir><dir name="Header"><file name="Additional.php" hash="92edbc33bdefc70527d179dd23ef979c"/></dir></dir><dir name="Helper"><file name="Data.php" hash="17656b16d662546d0828b8e4d34faa33"/><file name="Session.php" hash="adcb0096928cea4a896ce70b14087900"/></dir><dir name="Model"><dir name="Observer"><file name="Session.php" hash="5ae73e511745a43fcc752d33931a34a2"/></dir><file name="Observer.php" hash="fe086526a2b481c67c67c5c73ba5da3b"/><dir name="Persistent"><file name="Config.php" hash="38363d104ff0c5d92b7c63439a3fd4f7"/></dir><dir name="Resource"><file name="Session.php" hash="681b6641939e4a7b9625dfc11c2bf2d6"/></dir><file name="Session.php" hash="6e09f7fc7fac22537b251053b9d32ff8"/></dir><dir name="controllers"><file name="IndexController.php" hash="33f033033719d3964c41def44f85663e"/></dir><dir name="etc"><file name="adminhtml.xml" hash="3771392801e23c17826e75a9b25372b4"/><file name="config.xml" hash="eec576f615c067affcadf38c40a715ef"/><file name="persistent.xml" hash="018e1087987582ea2136a1c6431278fe"/><file name="system.xml" hash="f7964f686bd76e24c6a8ee84ecaca430"/></dir><dir name="sql"><dir name="persistent_setup"><file name="install-1.0.0.0.php" hash="89227fe784a684f21323cbb1721fb0d1"/></dir></dir></dir><dir name="Poll"><dir name="Block"><file name="ActivePoll.php" hash="2428695a559f9c0c25a26dc1c6e7cbab"/><file name="Poll.php" hash="fc9c9fdf65cb9dd9ec74cf6c183a0adc"/></dir><dir name="Helper"><file name="Data.php" hash="def7c69cc26cf99246cc730f73e1e3ea"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Poll"><dir name="Answer"><file name="Collection.php" hash="b556c72503481d769f6892645ddf1810"/></dir><file name="Answer.php" hash="1d2520e6b3a8e4950a44df50cb942a27"/><file name="Collection.php" hash="66f3595487040e11e6ea00ee45a99b2f"/><file name="Vote.php" hash="a55849069d7fcccd99c2eac27c138591"/></dir><file name="Poll.php" hash="46b968aa2732df14f122b2f1f166fd02"/></dir><dir name="Poll"><file name="Answer.php" hash="2182f29b3b65a58dfd3562a1383dec50"/><file name="Vote.php" hash="1220c89848a6472a8d42b4c6be4fe6ca"/></dir><file name="Poll.php" hash="37200d119b6de58337a6a818ccdca25a"/><dir name="Resource"><dir name="Poll"><dir name="Answer"><file name="Collection.php" hash="7bc645da37afa74785cefa000c4b5497"/></dir><file name="Answer.php" hash="05e9e5d2f19cbce8b84bca05a0b63134"/><file name="Collection.php" hash="cc923a4031b6cd1b568c42d2e8f6f0b4"/><file name="Vote.php" hash="c80497ea204f0e14e54b731f3bdf45e7"/></dir><file name="Poll.php" hash="df6d9f88b6fa3074fbaaf897c610e458"/></dir></dir><dir name="controllers"><file name="VoteController.php" hash="54d64a155fe9582cce3dee023a63f5fc"/></dir><dir name="data"><dir name="poll_setup"><file name="data-install-1.6.0.0.php" hash="e4f42b9770bdb857a581a15e3adf5d8e"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="0228e6dc8be6b89bc8327d82a72a1cdc"/><file name="config.xml" hash="33db549c84b624056296d3d8d3cff78d"/><file name="system.xml" hash="5d03f833d9d4d358136c279264e7d108"/></dir><dir name="sql"><dir name="poll_setup"><file name="install-1.6.0.0.php" hash="3a73db3ca9bb2c9b0ab4b303fd7efc42"/><file name="mysql4-install-0.7.0.php" hash="190909c1080304cba03e361eadfbaae8"/><file name="mysql4-upgrade-0.6.0-0.6.1.php" hash="d1284367365dc74d3b59e6500ef1ab94"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="41a8c5bb804dda85121b359d0775e4ae"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="20f73e58e91b163f8a0080ceabfc5464"/><file name="mysql4-upgrade-1.6.0.0-1.6.0.1.php" hash="eac1c3f580e97390201b577d83e1a381"/></dir></dir></dir><dir name="ProductAlert"><dir name="Block"><dir name="Email"><file name="Abstract.php" hash="cfa24038551836778d5dac621a40833b"/><file name="Price.php" hash="5da89d1e652e08598a2bac62e63d9b7e"/><file name="Stock.php" hash="28c2abc40aa9fafaddd734f1abc85532"/></dir><file name="Price.php" hash="18c453fb5964d7c50b5209273d38a0f6"/><dir name="Product"><file name="View.php" hash="62b24a700f162f896ae86fa3acc827ea"/></dir><file name="Stock.php" hash="7c004818f1af75d884a62b3016d997fe"/></dir><dir name="Helper"><file name="Data.php" hash="db8a716551468ff9c77f8fc6c9db7310"/></dir><dir name="Model"><file name="Email.php" hash="4790a3c20b28cba3edd90cae78b278e7"/><dir name="Mysql4"><dir name="Price"><file name="Collection.php" hash="85751f5b1a72f6bcd11b3805e63a5005"/><dir name="Customer"><file name="Collection.php" hash="369d078510d7947c732b5b86ddc95f85"/></dir></dir><file name="Price.php" hash="b384a5f9340ad848799a3fdb88701de8"/><dir name="Stock"><file name="Collection.php" hash="dfcbbe2f7b29139801339b994332249f"/><dir name="Customer"><file name="Collection.php" hash="fc817bc79bc6ec62806321a9031babc8"/></dir></dir><file name="Stock.php" hash="2d0c857d0505931e417d13a425832d6f"/></dir><file name="Observer.php" hash="c0ce37fc22caf339bfe7368f1a75f5d0"/><file name="Price.php" hash="a8adb5a314d448f412f3be2851dbe2de"/><dir name="Resource"><file name="Abstract.php" hash="5e7b69574dc2ebb59b40ab7d2c9c0765"/><dir name="Price"><file name="Collection.php" hash="75de0797acab577891d55918d8226759"/><dir name="Customer"><file name="Collection.php" hash="90a486c8338befca41ba91bfe2bac212"/></dir></dir><file name="Price.php" hash="8eae6baeeb33c29fd4d20072f7f4b03d"/><dir name="Stock"><file name="Collection.php" hash="d370c2841d6c2db3265daad7df79d778"/><dir name="Customer"><file name="Collection.php" hash="586ebf48b4e6ea50b0dab75098d16d22"/></dir></dir><file name="Stock.php" hash="179ee6e99b0d9e0fc99ee65b21e2aa3b"/></dir><file name="Stock.php" hash="86899d6412c3c20d203dcbb8a9231793"/></dir><dir name="controllers"><file name="AddController.php" hash="b6c15fa6c403080d42dec29983d01cf1"/><file name="UnsubscribeController.php" hash="0aa60cf7437c64b7c5dc61832a2efe81"/></dir><dir name="etc"><file name="config.xml" hash="2b33af987fffc0ae9e01d72165ba9afc"/><file name="system.xml" hash="bae0a5263513a3a35c1a22562c13352e"/></dir><dir name="sql"><dir name="productalert_setup"><file name="install-1.6.0.0.php" hash="9aa79e33fcec15e95743593fe59f2390"/><file name="mysql4-install-0.7.0.php" hash="f7a08cbc249da6a74f3d0c481e0d6efc"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="15c96f77d2d484c064e62a386f724e8d"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="746880502eae6875f53f55caf018d77b"/></dir></dir></dir><dir name="Rating"><dir name="Block"><dir name="Entity"><file name="Detailed.php" hash="2df366bd9bd76c58c562d5fb2da5adda"/></dir></dir><dir name="Helper"><file name="Data.php" hash="1497a9c555ed61310cd363e73452fe75"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Rating"><file name="Collection.php" hash="2be82e08c380c2d374621537c6aedb6a"/><file name="Entity.php" hash="e88daac6bdd143fae6da93dd9f8a2225"/><dir name="Option"><file name="Collection.php" hash="6835bedd300a506b5a76d690bfbfce9e"/><dir name="Vote"><file name="Collection.php" hash="a74f8e93bda26728e724e950fed66cc8"/></dir><file name="Vote.php" hash="70276c04262057ed0eb51f525059748c"/></dir><file name="Option.php" hash="9abfbec461869fce3347fff5ef85099a"/></dir><file name="Rating.php" hash="be6495cad8183742287e84fc56330d00"/></dir><file name="Observer.php" hash="333fa3beea2acdf12fe82bc58db879ee"/><dir name="Rating"><file name="Entity.php" hash="0eaa3be9aae9e66598cab8864411d45a"/><dir name="Option"><file name="Vote.php" hash="e27da11404c974828d3528345136801c"/></dir><file name="Option.php" hash="f02069ffffe0e1329c01f8e6f077b138"/></dir><file name="Rating.php" hash="13ce1479793c6ac4f91da72a7194eb33"/><dir name="Resource"><dir name="Rating"><file name="Collection.php" hash="c534ff40ef290d3c56f0af910c449e92"/><file name="Entity.php" hash="f5afaed9e816eec3166f691359325ddb"/><dir name="Option"><file name="Collection.php" hash="eccb091c85da3a34940054e6f073269b"/><dir name="Vote"><file name="Collection.php" hash="2014d6044a2a65690955b76af44f897d"/></dir><file name="Vote.php" hash="a7571a7766ef8122df604b33c4fa6ec7"/></dir><file name="Option.php" hash="dafba3671508ceb3638a1a43c8608416"/></dir><file name="Rating.php" hash="ed7239eaea66379e5591f23b066572d9"/></dir></dir><dir name="data"><dir name="rating_setup"><file name="data-install-1.6.0.0.php" hash="d4498d6f3949264bdeb41786e9b819f7"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="951372191ab682aa0294141c8f909b2a"/><file name="config.xml" hash="5e9779ebe932f8568cbf2a0cd694894f"/></dir><dir name="sql"><dir name="rating_setup"><file name="install-1.6.0.0.php" hash="dff36c635b4f390d57bef9960ab61450"/><file name="mysql4-install-0.7.0.php" hash="43da7f53e940b3228d61b3b7e4ea8d86"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="878afa7015bc930899fcd00dd55c2e78"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="b8adde02281d654b07f01569fc6cef40"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="85860ce2789eb87b9d121ef77aadadc6"/><file name="mysql4-upgrade-1.6.0.0-1.6.0.1.php" hash="e289d6dc315380df36bb514f3fafb664"/></dir></dir></dir><dir name="Reports"><dir name="Block"><dir name="Product"><file name="Abstract.php" hash="578257203342bebb0d973e20bf424237"/><file name="Compared.php" hash="8c76e6f2101f15f09c72ad0dc7ce70e6"/><file name="Viewed.php" hash="b20d015e5507cb98a8cf924c782d865c"/><dir name="Widget"><file name="Compared.php" hash="e8d9c4dd37391851667bf377fdaf403b"/><file name="Viewed.php" hash="553c388ee11f7e5181ed22936af26e7e"/></dir></dir></dir><file name="Exception.php" hash="617108bc39f17464f0884bc9269a5256"/><dir name="Helper"><file name="Data.php" hash="57200f54d3da931422d6a8c586532022"/></dir><dir name="Model"><file name="Config.php" hash="f96b39428330ca93965b3209071e4ed9"/><dir name="Event"><file name="Observer.php" hash="c12b50f301025d0fa06d7de61941393a"/><file name="Type.php" hash="cf0f1c1d1f3b510644798c27a17c9b97"/></dir><file name="Event.php" hash="34aceecd3f214f6aba29668554411b04"/><file name="Flag.php" hash="2e4623f20e42f90f25f7f6cc60ad7f1f"/><dir name="Grouped"><file name="Collection.php" hash="5efbafd7b095ab116892abcd060c847d"/></dir><dir name="Mysql4"><dir name="Accounts"><file name="Collection.php" hash="0cd8c4e2b3f59fd776d56243e5d62ced"/></dir><dir name="Coupons"><file name="Collection.php" hash="612aaff421905d73df9243358ca05438"/></dir><dir name="Customer"><file name="Collection.php" hash="033c927182b930e159a21282f1ed7f47"/><dir name="Orders"><file name="Collection.php" hash="84fa52e616801dddd7a27b80504a06dd"/></dir><dir name="Totals"><file name="Collection.php" hash="675557cf33c7a70a8be723be30ba4b9a"/></dir></dir><dir name="Entity"><dir name="Summary"><dir name="Collection"><file name="Abstract.php" hash="bdd85eef6cac58409adc3964ae6cf6c2"/></dir></dir></dir><dir name="Event"><file name="Collection.php" hash="d9e615045a5a035931d317905d76f724"/><dir name="Type"><file name="Collection.php" hash="d53a6f31cdaaa4d32b52deeaafcff1f9"/></dir><file name="Type.php" hash="c345412280dfb442121e3602d8b16764"/></dir><file name="Event.php" hash="e72c63316342488accdeb68d11ab70cb"/><dir name="Invoiced"><file name="Collection.php" hash="4d06a58ba94a9c755f93eaefdb6a3a08"/></dir><dir name="Order"><file name="Collection.php" hash="8d2cba8be937acd70e3aca7db9306abb"/></dir><dir name="Product"><file name="Collection.php" hash="ace029a821d771876e671d46f27e60f4"/><dir name="Downloads"><file name="Collection.php" hash="83f9551343cb00586e03a255c32f1b0a"/></dir><dir name="Index"><file name="Abstract.php" hash="25a6163346a75c1e40cc35ef5c506d24"/><dir name="Collection"><file name="Abstract.php" hash="80a7c9a2fbb2dea4d3139971fc508775"/></dir><dir name="Compared"><file name="Collection.php" hash="de0ce45c836245949ea314f638f21632"/></dir><file name="Compared.php" hash="5d89a2b48b220c7c918f78619160f357"/><dir name="Viewed"><file name="Collection.php" hash="a7c3fd32783500207532d248397ea6d6"/></dir><file name="Viewed.php" hash="e7e3bd541dc11358384591075276dfad"/></dir><dir name="Lowstock"><file name="Collection.php" hash="c311fead7cef2a26b87aecc38aadcc3a"/></dir><dir name="Ordered"><file name="Collection.php" hash="ef8ebad26866118a380433333ce47380"/></dir><dir name="Sold"><file name="Collection.php" hash="94ad564ef224cfa524a51d726a33a978"/></dir><dir name="Viewed"><file name="Collection.php" hash="e278a7c870b0a6ee0d0f5671814d8f94"/></dir></dir><dir name="Quote"><file name="Collection.php" hash="fd4b4c28b862298c3b4b04f573241d17"/></dir><dir name="Refunded"><file name="Collection.php" hash="64990addecffaa1d86bc02d3b2981d9f"/></dir><dir name="Report"><file name="Abstract.php" hash="663e9bb9143398dac8d11132390756d4"/><file name="Collection.php" hash="e64ec700bfb2a1f7d728ebd94fc93b71"/></dir><dir name="Review"><file name="Collection.php" hash="6efb24b1edfaf5800256b3080a3ebf7b"/><dir name="Customer"><file name="Collection.php" hash="7100d4c24e90087a0c86956d557392d3"/></dir><dir name="Product"><file name="Collection.php" hash="fd7249e0d7f7926c7bdf6ea2816f10cc"/></dir></dir><dir name="Shipping"><file name="Collection.php" hash="b03601cb3818a005278584a09333481e"/></dir><dir name="Shopcart"><dir name="Product"><file name="Collection.php" hash="19308938fe4f69eb9da330687a4d2cd2"/></dir></dir><dir name="Tag"><file name="Collection.php" hash="8cc1e1483ce042ba13eceb2809f4653f"/><dir name="Customer"><file name="Collection.php" hash="27db3ccb1682c57477a953bc31ddcd0e"/></dir><dir name="Product"><file name="Collection.php" hash="c955864f76538d1cf5aaed5dd0a76aef"/></dir></dir><dir name="Tax"><file name="Collection.php" hash="42c124a9f1536dfd0f5025b5e078aa63"/></dir><dir name="Wishlist"><file name="Collection.php" hash="2e72a148c7257bcadc36a0397633cfb2"/><dir name="Product"><file name="Collection.php" hash="aa120dc6a1d5fa2a9ac4f09fe5724e65"/></dir></dir></dir><dir name="Product"><dir name="Index"><file name="Abstract.php" hash="30ee1f44839a150a2e031c9aece97d30"/><file name="Compared.php" hash="f82383db41fd5055301154a2d0d700bd"/><file name="Viewed.php" hash="4fac7d613ac53411b39c4d003b04e4ae"/></dir></dir><file name="Report.php" hash="68fc1cd405bb41b8e1b04750b1bc7360"/><dir name="Resource"><dir name="Accounts"><file name="Collection.php" hash="fee03c893f5e04633b0b2082fe9e2ef0"/></dir><dir name="Coupons"><file name="Collection.php" hash="574b5b8dd40aa8b21bc7c10eb1381a72"/></dir><dir name="Customer"><file name="Collection.php" hash="3a8028e41a4a57ba87ef84e571cfe3f1"/><dir name="Orders"><file name="Collection.php" hash="fe5f4e7053223edbd5e0fc165b589b63"/></dir><dir name="Totals"><file name="Collection.php" hash="e4bb6c1e9d11ed44a25b500eab9f3522"/></dir></dir><dir name="Entity"><dir name="Summary"><dir name="Collection"><file name="Abstract.php" hash="659c86a44c2fc759f57445735549462d"/></dir></dir></dir><dir name="Event"><file name="Collection.php" hash="e580c833e0f97a3e184f22eec5b37126"/><dir name="Type"><file name="Collection.php" hash="ec8bc58faba0544ea3850b0903a8aa48"/></dir><file name="Type.php" hash="85714e6c137da8bd4549665a0cbe4e2f"/></dir><file name="Event.php" hash="4317ab0d3b4535f48da744f344275648"/><dir name="Helper"><file name="Interface.php" hash="81dc8c30550774a7adac91a70dd54bf6"/><file name="Mysql4.php" hash="a9f7f9d0ea90d69187f61a3d540c1f95"/></dir><dir name="Invoiced"><file name="Collection.php" hash="d0f04c9ed71b3aca95d9565a580cec0b"/></dir><dir name="Order"><file name="Collection.php" hash="a1bd2a47354577ad6b721cf64839ddbd"/></dir><dir name="Product"><file name="Collection.php" hash="ac4f87d98924f8894a58e37f0f8df435"/><dir name="Downloads"><file name="Collection.php" hash="1cf51bea3e7c8ea4eb767c75d4694676"/></dir><dir name="Index"><file name="Abstract.php" hash="90d75ed2b95b7bf9cf2139a5d396bfb6"/><dir name="Collection"><file name="Abstract.php" hash="717d1cd42e5335c877a17be8730ea870"/></dir><dir name="Compared"><file name="Collection.php" hash="1eb2cb2f7bac8b19c640daa25b617234"/></dir><file name="Compared.php" hash="939443ab1103343f51bea61016b4d27b"/><dir name="Viewed"><file name="Collection.php" hash="826efd82bfccd82219fa9b438961b334"/></dir><file name="Viewed.php" hash="d124f494245b2560c6ae0f18983188fd"/></dir><dir name="Lowstock"><file name="Collection.php" hash="22943a8e88ab28cec838fed6c3d80ef4"/></dir><dir name="Ordered"><file name="Collection.php" hash="b7aff86efc7690ae6cc6344ff43f51d1"/></dir><dir name="Sold"><file name="Collection.php" hash="d8593a120fa2a8371c5c4aa0c8a25a0e"/></dir><dir name="Viewed"><file name="Collection.php" hash="5777a50f19b37ee1aae6df0eb082120c"/></dir></dir><dir name="Quote"><file name="Collection.php" hash="1518826f907902ead06c4ba3a9158c0e"/></dir><dir name="Refunded"><file name="Collection.php" hash="edddbd898f30863b840110329631d264"/></dir><dir name="Report"><file name="Abstract.php" hash="e8b84cda293b5925a7d822b2618306b4"/><dir name="Collection"><file name="Abstract.php" hash="be10b98d8158c4e52019091792e8c618"/></dir><file name="Collection.php" hash="cd4deae110bccaaec9ec2f3a3fec14b8"/><dir name="Product"><dir name="Viewed"><file name="Collection.php" hash="7f7ba5b8925ab4f3d54af661861e8819"/></dir><file name="Viewed.php" hash="cc5f49fac0b0b3550e923f7b8eb60d2c"/></dir></dir><dir name="Review"><file name="Collection.php" hash="1e5a8704988f2bc5c0046097032c7dfc"/><dir name="Customer"><file name="Collection.php" hash="f18eb356beb157be4eb37c8af6d8ec8e"/></dir><dir name="Product"><file name="Collection.php" hash="9379e71ecaf6c6bf23faab0bed211058"/></dir></dir><dir name="Shipping"><file name="Collection.php" hash="33d173b19fca8f7c78108c3e9062f5d6"/></dir><dir name="Shopcart"><dir name="Product"><file name="Collection.php" hash="ae0e5190ef686b2d7e8639b474e6a6fd"/></dir></dir><dir name="Tag"><file name="Collection.php" hash="b7359de3cfa026bd219d76f963991a35"/><dir name="Customer"><file name="Collection.php" hash="9b57e619f7aa720f190cbd266c47f1b2"/></dir><dir name="Product"><file name="Collection.php" hash="5a55614f682cb61db52337b2e4898c5f"/></dir></dir><dir name="Tax"><file name="Collection.php" hash="46253868811290d102283fffc76b60c0"/></dir><dir name="Wishlist"><file name="Collection.php" hash="46df78b3756ffda1baff9802f39ca18a"/><dir name="Product"><file name="Collection.php" hash="31aaf993411e2957520b89e9654b0ace"/></dir></dir></dir><file name="Session.php" hash="c913987e12bc3c14a1493078fa0cc7f9"/><file name="Test.php" hash="0393ad68e17f904a7a750901aac16668"/><file name="Totals.php" hash="0c7521b26433f20d43f7cd14c0d44fb5"/></dir><dir name="data"><dir name="reports_setup"><file name="data-install-1.6.0.0.php" hash="e3ff9bb6870eb75e131047d5c3803bf6"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="26e74f9cb9bff0fd18b52184700b8c2b"/><file name="config.xml" hash="6f255f3c6eddc8afb7e9c41ff37f74a0"/><file name="system.xml" hash="5661e56b5032074a0ce9972580c52606"/><file name="widget.xml" hash="205050df167238d66730ee69eaf6f6a7"/></dir><dir name="sql"><dir name="reports_setup"><file name="install-1.6.0.0.php" hash="ed84a64f623472cb570d062f83f0af44"/><file name="mysql4-install-0.7.1.php" hash="726b040c54515d68f09d123770d9028b"/><file name="mysql4-install-1.5.0.0.php" hash="65582d059b8fdf311793143b119f2536"/><file name="mysql4-install-1.6.0.0.php" hash="a87f4f510630a48695e4a18eece61064"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="a19dcddecfbf548fa2e591dbc2ca9810"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="87a2ea5896fed2cdb80dafdfd153ebc5"/><file name="mysql4-upgrade-0.7.2-0.7.3.php" hash="2acc3102db4ca570f17e6c1b863d0866"/><file name="mysql4-upgrade-0.7.3-0.7.4.php" hash="11377f7648ab6f02858afe240a9b43a0"/><file name="mysql4-upgrade-0.7.4-0.7.5.php" hash="c410cb005fc894c9ac889548d7331c23"/><file name="mysql4-upgrade-0.7.5-0.7.7.php" hash="7bf77af57e370205ad5e825388a01f11"/><file name="mysql4-upgrade-0.7.7-0.7.8.php" hash="9e0a0522db37067818ab59c2ad1819e7"/><file name="mysql4-upgrade-0.7.8-0.7.9.php" hash="e7373ad67f1f1da45d98f10e38d6cc90"/><file name="mysql4-upgrade-0.7.9-0.7.10.php" hash="ae5c36c5d517af8cdb9d2162da7a2517"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="d18b4b1e51cce1f465349a0e7e972b31"/><file name="upgrade-1.6.0.0-1.6.0.0.1.php" hash="a64567d3c7c0b712373a85fe8165b616"/></dir></dir></dir><dir name="Review"><dir name="Block"><dir name="Customer"><file name="List.php" hash="688c97060d2bd41c8b34a23e67cd0946"/><file name="Recent.php" hash="80a4cb7d0d03e44540245141ce9087bb"/><file name="View.php" hash="e999f76f350ceac3141c8c5fbe081f14"/></dir><file name="Form.php" hash="f9aa8849530864916d62ef0950d306f6"/><file name="Helper.php" hash="c58352105799c1f6fd74faa2bbf1e469"/><dir name="Product"><dir name="View"><file name="List.php" hash="9d0dd075156974df0efab6b6d24dfbe4"/></dir><file name="View.php" hash="ba6fbf6d0d0810aeb6a4fe8ef511c543"/></dir><file name="View.php" hash="d1f8334e56c287db50ed36c8ba210b32"/></dir><dir name="Helper"><file name="Data.php" hash="336eafffbcd2ad9ecd0c1a2e28fc066c"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Review"><file name="Collection.php" hash="aa368d8d499b9bcc8673817caf374596"/><dir name="Product"><file name="Collection.php" hash="797dc7211eb9b41025ed50dfb579061b"/></dir><dir name="Status"><file name="Collection.php" hash="1a16ff1e417289416ab7edf8e1b5df7c"/></dir><dir name="Summary"><file name="Collection.php" hash="d76d4011d5235c49d5813fab3088d68d"/></dir><file name="Summary.php" hash="e7f2d56ff21ee5dee3d5071eb448e8d1"/></dir><file name="Review.php" hash="852d52d9969952379b14cb98157d6c34"/></dir><file name="Observer.php" hash="babd7c7b8163adc0394e4bab6f2df8cb"/><dir name="Resource"><dir name="Review"><file name="Collection.php" hash="1207b5cfaa2e6718164fa1bb61585fa2"/><dir name="Product"><file name="Collection.php" hash="cfa52fb26168c53b854011483c8af3f4"/></dir><dir name="Status"><file name="Collection.php" hash="64e105f2a37553dc9a0e30615e4a3cdb"/></dir><file name="Status.php" hash="8eb6f8acbeeb80965bd998002ae4c234"/><dir name="Summary"><file name="Collection.php" hash="6ae6e402541869c0654f466485e1a224"/></dir><file name="Summary.php" hash="5b6379cd3d82e3b36f8278fa212583df"/></dir><file name="Review.php" hash="f59efd2e287bb7bb421a0749702234e6"/></dir><dir name="Review"><file name="Status.php" hash="34ce4efbfdbc4a43815168f3cd8707f1"/><file name="Summary.php" hash="5b5dd53aa74e975654f07bce1d3ef6f7"/></dir><file name="Review.php" hash="2244401a8a7dc904ba266f02e8254966"/><file name="Session.php" hash="4be3894bef741a016c2e54818f14c686"/></dir><dir name="controllers"><file name="CustomerController.php" hash="23a25aab3f28015ba72084057b56783a"/><file name="ProductController.php" hash="e1573472537d3148fcff527df5161f98"/></dir><dir name="data"><dir name="review_setup"><file name="data-install-1.6.0.0.php" hash="91b9ef227d8c39b83922c6bd6cd3dda8"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="be1c195ad059fdcbc14c339bff52498a"/><file name="config.xml" hash="86234db3b0bdf986e4339678994adef7"/><file name="system.xml" hash="13a6cc0a5c42f2858800582f12c1b49a"/></dir><dir name="sql"><dir name="review_setup"><file name="install-1.6.0.0.php" hash="a2f341c93efbffca7b896e7ecd02cfd3"/><file name="mysql4-install-0.7.0.php" hash="53fd7fcfda5f226273e5a27a83db6e19"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="fe61f3cbcb86c0564a4e10bc96ca2edf"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="1a0b13fe3b58a9603e966e3cf72a24bd"/><file name="mysql4-upgrade-0.7.2-0.7.3.php" hash="5fd41a667f5c19e76a48eff2f4b95744"/><file name="mysql4-upgrade-0.7.3-0.7.4.php" hash="772490f892fe928a156cbc5f8f26a735"/><file name="mysql4-upgrade-0.7.4-0.7.5.php" hash="8f1d7567b707feccdb5594765a2eb810"/><file name="mysql4-upgrade-0.7.5-0.7.6.php" hash="3c27dc97c75195008250fa6e7fc366b2"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="3e3998abe2c3be13a06fecabcadd8c70"/></dir></dir></dir><dir name="Rss"><dir name="Block"><file name="Abstract.php" hash="228f9f7f2d8ef4293e7a6964ffdbadda"/><dir name="Catalog"><file name="Abstract.php" hash="2b8416813980dfc482d3f864a9765abe"/><file name="Category.php" hash="9e3e8e3ae403c6dff2f189b691fab602"/><file name="New.php" hash="77b6e6d2f74d6f0e0ac2d81cdb9935dd"/><file name="NotifyStock.php" hash="69973b399bc7b66099f5f62a03dfb9e3"/><file name="Review.php" hash="25ff0148e4c74326e7f9f2007edd6f9a"/><file name="Salesrule.php" hash="b61dbfbbd59ce2cebec03a7a8327c3be"/><file name="Special.php" hash="4db5552d06528898bce0722326b5efa7"/><file name="Tag.php" hash="13d733ba64269d580ce1ef7e5f0be6a7"/></dir><file name="List.php" hash="3bb032c882687dc98520a32596c191f6"/><dir name="Order"><file name="Details.php" hash="b95b6ede9c431ea8d79098c8c8238eea"/><file name="New.php" hash="791e6f6319ff6c6d4da772def4a11c98"/><file name="Status.php" hash="cde91abfbe67ab81a35535a8c2f214a0"/></dir><file name="Wishlist.php" hash="a20670c9d52c4247c71e137dd7336c87"/></dir><dir name="Helper"><file name="Catalog.php" hash="f4cb16624431109213432bb608a08605"/><file name="Data.php" hash="5b1ccf2ac6afcbd4245704e6b5cd2677"/><file name="Order.php" hash="7d61ac8b1e6715ece1cdf5dae892bdd0"/></dir><dir name="Model"><dir name="Mysql4"><file name="Order.php" hash="123e72ffb9e3350b9cea4c71e9097c39"/></dir><file name="Observer.php" hash="d841dfe9cbf1902a55dae2fac695ed1d"/><dir name="Resource"><file name="Order.php" hash="4e58a6427568518788372023ddacca81"/></dir><file name="Rss.php" hash="53efc26d427153f25e2335ed38d5448e"/><file name="Session.php" hash="c38ba113406171cd3a343f88161f0a4f"/><dir name="System"><dir name="Config"><dir name="Backend"><file name="Links.php" hash="b81829f3b076d18d0d302cd46aef4a6d"/></dir></dir></dir></dir><dir name="controllers"><file name="CatalogController.php" hash="25c478503e3e039379cff71052bc279d"/><file name="IndexController.php" hash="c7234ce8ca386031af48dc0fad94479b"/><file name="OrderController.php" hash="c573fafb7c509dcce8da26c355d9bb64"/></dir><dir name="etc"><file name="adminhtml.xml" hash="d34139ee3d3f9e03595bdd15ff8f4521"/><file name="config.xml" hash="24a0c7697702bdabe035905a225f3943"/><file name="system.xml" hash="4c7bd23d028be19c8a27503ff00aab38"/></dir></dir><dir name="Rule"><dir name="Block"><file name="Actions.php" hash="d750c05b56556998b59731e160540c59"/><file name="Conditions.php" hash="eaea483b3bd5f3a146fb6581978af90d"/><file name="Editable.php" hash="2b26ef990188a91564b7290c9b0659de"/><file name="Newchild.php" hash="05a8c5a2cb761288766b4d3989ee29e5"/><file name="Rule.php" hash="c4d713f909abe86239d20a60d0607d6c"/></dir><dir name="Helper"><file name="Data.php" hash="81760cf3af0ab5289345e49b0e3ba54a"/></dir><dir name="Model"><file name="Abstract.php" hash="4c5e20c95468d96b4833f31798799ad7"/><dir name="Action"><file name="Abstract.php" hash="c52c1e09ca72326dc05769caacce9e39"/><file name="Collection.php" hash="9035c5268da66f28206235a29ebc872d"/><file name="Interface.php" hash="9b17800993d0ec330e538c7710eada17"/></dir><dir name="Condition"><file name="Abstract.php" hash="cc88075d09f80e6971b50a629d68af58"/><file name="Combine.php" hash="67103b5576ada6147fbef7728050f4f1"/><file name="Interface.php" hash="9a325c6097fb3bc4bac88b4cc0ca094d"/><dir name="Product"><file name="Abstract.php" hash="a4c44d2039940a117e67ccb86ab25e74"/></dir></dir><file name="Environment.php" hash="74c9ff6908d88aa5cb94c403479c1fe9"/><dir name="Mysql4"><dir name="Rule"><file name="Collection.php" hash="76fe147ad14cb1847220367e1795acb7"/></dir><file name="Rule.php" hash="e62050e81ffae0f4fb5e5524c6bd60f2"/></dir><dir name="Renderer"><file name="Actions.php" hash="79c006e7231845575db4bdab65b37223"/><file name="Conditions.php" hash="1554a57063852a8b5eea22d1ff4286f5"/></dir><dir name="Resource"><file name="Abstract.php" hash="c9dc026ee7dc7d02692eca3640a899d6"/><dir name="Rule"><dir name="Collection"><file name="Abstract.php" hash="411bfd2f48bd17d1c6b3b0264ce15386"/></dir><file name="Collection.php" hash="4d359f928bf960fb63dbb42ebb2ca638"/><dir name="Condition"><file name="SqlBuilder.php" hash="d66a02bbe17332598bee9d2c6d5d69c7"/></dir></dir><file name="Rule.php" hash="7d164a7312e3a569773afcbb2d1d74bf"/></dir><file name="Rule.php" hash="0ce190a68223bb0f31080a09bca990be"/></dir><dir name="etc"><file name="config.xml" hash="89d887580ba266a59da015ccc5096e12"/></dir></dir><dir name="Sales"><dir name="Block"><dir name="Adminhtml"><dir name="Billing"><dir name="Agreement"><file name="Grid.php" hash="ab64005141ad56a40f4eee672ff5fa22"/><dir name="View"><file name="Form.php" hash="d49013bf67623802402ffa98759518cd"/><dir name="Tab"><file name="Info.php" hash="7d64e1159b7f19f0f6b624a5d1700465"/><file name="Orders.php" hash="0c97d875772bd26011a5842222008d06"/></dir><file name="Tabs.php" hash="5ec087539d0febcb14149f4a49bf98cf"/></dir><file name="View.php" hash="d1840489619f20ef684154f36eadde60"/></dir><file name="Agreement.php" hash="0530bd38d000dd4154870b53b237d5d1"/></dir><dir name="Customer"><dir name="Edit"><dir name="Tab"><file name="Agreement.php" hash="bef0c8b5fa7d69a6058bab8bb87c4dd0"/><dir name="Recurring"><file name="Profile.php" hash="280991eff7ab7ec0ce26c22bcf1883a6"/></dir></dir></dir></dir><dir name="Recurring"><dir name="Profile"><dir name="Edit"><file name="Form.php" hash="1a07be5b691b3a27714b6fe1891e03cd"/></dir><file name="Grid.php" hash="b155716b78ece29889088293f46e632e"/><dir name="View"><file name="Getawayinfo.php" hash="2efce2246e8700e2f2c5561bfa0914c3"/><file name="Info.php" hash="b5c6da6e5da9d1b14a306e751a6d7a26"/><file name="Items.php" hash="3486f9f9543a9f23e3e37155ef88dc27"/><dir name="Tab"><file name="Info.php" hash="92e2297f8270e5ac97365dc2b5876001"/><file name="Orders.php" hash="31ac421f7dc37f5ccf1b65f51d06c88d"/></dir></dir><file name="View.php" hash="ae9f3fa2090354b740adf94470f829ef"/></dir><file name="Profile.php" hash="31fb87ec9882159f493c112eda85f150"/></dir><dir name="Report"><dir name="Filter"><dir name="Form"><file name="Coupon.php" hash="99780c30522e0f4c7fea9ba83cc09943"/><file name="Order.php" hash="3b1144c18800419d41122bc3de4edd4b"/></dir><file name="Form.php" hash="a931ab2b844c2a828c3137d3a8325b94"/></dir></dir></dir><dir name="Billing"><dir name="Agreement"><file name="View.php" hash="0070759005c1077ff90acb913adf1653"/></dir><file name="Agreements.php" hash="084159eb2b2a5a41725840b6a2374519"/></dir><dir name="Guest"><file name="Links.php" hash="461fb53f348e9afda6ad83763716f110"/></dir><dir name="Items"><file name="Abstract.php" hash="5b35f656fe36550385e9bc6bacca12a1"/></dir><dir name="Order"><file name="Comments.php" hash="fe24035bad289c5404047d5853d44893"/><dir name="Creditmemo"><file name="Items.php" hash="4b71e1d59ae3a570aa06155bc9f4fac0"/><file name="Totals.php" hash="cb049975bce99b312fbbccbb591b6202"/></dir><file name="Creditmemo.php" hash="4a96dd3d8ab48e9b2e0b1bbdf023657a"/><file name="Details.php" hash="868f07f4ffda8b77aeed47e2f480a120"/><dir name="Email"><dir name="Creditmemo"><file name="Items.php" hash="eb6a404122177859964ef0cab67b462a"/></dir><dir name="Invoice"><file name="Items.php" hash="542b53e8867c1673364a625f70424e57"/></dir><dir name="Items"><file name="Default.php" hash="2416ee589546421e172ff7a6da5c96f0"/><dir name="Order"><file name="Default.php" hash="20929c643eb043962a1e8b61cd318a4b"/><file name="Grouped.php" hash="b55c283f71a4e0c90ac8446120dfa487"/></dir></dir><file name="Items.php" hash="aacd10efd5610acd6b93d7a5047b66b6"/><dir name="Shipment"><file name="Items.php" hash="cf84ae54b263c40e91f3825064ecd25b"/></dir></dir><file name="History.php" hash="12fca99cf4abf4a5b4f1ff27306ee011"/><dir name="Info"><file name="Buttons.php" hash="8f5b0a322f7b0cff84a97bbb6e085a10"/></dir><file name="Info.php" hash="5a7131b56be83ed705424edfb6d57cd8"/><dir name="Invoice"><file name="Items.php" hash="a4774f3c36f1e497f878f048924bbda2"/><file name="Totals.php" hash="209ccde765e502711d7b6a71a7c88a37"/></dir><file name="Invoice.php" hash="ec0ea4d0dc4c7748e6eb382e0e6b6eb6"/><dir name="Item"><dir name="Renderer"><file name="Default.php" hash="0828a3ae6d0600712b46ecf6288b8004"/><file name="Grouped.php" hash="eccd98d4534a5b93158eba13da301ca7"/></dir></dir><file name="Items.php" hash="dd081a2f191bdc29cd62643bb0f2ba1d"/><dir name="Print"><file name="Creditmemo.php" hash="c5b2dc24ed818e9615b09fb89a9aea5b"/><file name="Invoice.php" hash="5617eb6a99851c0de132bfb8fb31acde"/><file name="Shipment.php" hash="ca653701f844f634e399a02796e2ba76"/></dir><file name="Print.php" hash="240aca4a9b880066f017a6850136121f"/><file name="Recent.php" hash="48899d8b9370effc1646de10eef97992"/><dir name="Shipment"><file name="Items.php" hash="c7117ede5f1b9c5c2cfea84fe6c6fe10"/></dir><file name="Shipment.php" hash="65da31ae21d849560ceb48bcd3493051"/><file name="Tax.php" hash="c4c2e0283060f10275e0638176fa727b"/><file name="Totals.php" hash="ccc3c11f7fb91a28a2f8c1ff0b787b1b"/><file name="View.php" hash="38b6e4791fefe828223a6f46624855cf"/></dir><dir name="Payment"><dir name="Form"><dir name="Billing"><file name="Agreement.php" hash="a66f12c3b7a2936f95204d3a15b93319"/></dir></dir><dir name="Info"><dir name="Billing"><file name="Agreement.php" hash="3805e9c6a86ce12ad9cc5e02c6db46e0"/></dir></dir></dir><dir name="Recurring"><dir name="Profile"><file name="View.php" hash="f2874f3d643330b2bc04ada847a96241"/></dir><file name="Profiles.php" hash="5bbdce07e4ac6ba4e7f65cf023663e44"/></dir><dir name="Reorder"><file name="Sidebar.php" hash="bf5ac172d7919d6ac5f96f9b166b9ee9"/></dir><dir name="Widget"><dir name="Guest"><file name="Form.php" hash="e81410c8d0e2ec04b7cd2a0e52434090"/></dir></dir></dir><dir name="Controller"><file name="Abstract.php" hash="04e04503f2c5d2b7dda3a02aa7d2e2d5"/></dir><file name="Exception.php" hash="09ac18ff9070aab670e1782c87ac0d26"/><dir name="Helper"><file name="Data.php" hash="51977c71532b66040d318a015bd34cbf"/><file name="Guest.php" hash="8399c4eaa5193d103d6a5b32653421e4"/><file name="Reorder.php" hash="05674626dbe02172f86e2d5f0e33268b"/></dir><dir name="Model"><file name="Abstract.php" hash="2be530c5215dab5c3da6f089383f43d4"/><dir name="Api"><file name="Resource.php" hash="b434db280dff034d053c75a372191ac1"/></dir><dir name="Api2"><dir name="Order"><dir name="Address"><dir name="Rest"><dir name="Admin"><file name="V1.php" hash="ed09d4b2cf008a4643fae22c9436473e"/></dir><dir name="Customer"><file name="V1.php" hash="52506df5c4293b38113ecd2d1acbd207"/></dir></dir><file name="Rest.php" hash="e3f5913b7fcb0faabf011c303420acb3"/></dir><file name="Address.php" hash="98f80e478d7f1f9860dab3ef4c5769e7"/><dir name="Comment"><dir name="Rest"><dir name="Admin"><file name="V1.php" hash="85f20bae6d7ce22e3b64051a9dda1b48"/></dir><dir name="Customer"><file name="V1.php" hash="929a2f896b27a14ca3b89ecd528a1dee"/></dir></dir><file name="Rest.php" hash="c3d28889e2a3a504b7e32598ee10320c"/></dir><file name="Comment.php" hash="5157ddaa57e0ec0c5d5584b9d53c2b5e"/><dir name="Item"><dir name="Rest"><dir name="Admin"><file name="V1.php" hash="fa4a9b9deb37d2200cb68fb9704133cb"/></dir><dir name="Customer"><file name="V1.php" hash="c351f86d832ead8a89c6a00e4aa91011"/></dir></dir><file name="Rest.php" hash="4976919b54a42fd3687d03c49173bbd8"/></dir><file name="Item.php" hash="9573e3a435623d0d2a03d26700db1cbd"/><dir name="Rest"><dir name="Admin"><file name="V1.php" hash="ba19da984378e2b6496377feda439ce9"/></dir><dir name="Customer"><file name="V1.php" hash="5db410d1522d7af533033b24882b0295"/></dir></dir><file name="Rest.php" hash="bfd35b17693c615db96527d377fbd74d"/></dir><file name="Order.php" hash="22dd50272ce66f1e8b06f980d430b8df"/></dir><dir name="Billing"><file name="Agreement.php" hash="7b761c9564d128722b5dcbec3adabc9c"/></dir><dir name="Config"><file name="Ordered.php" hash="4b3a09d5c1ac7ef65033250aea6c810b"/></dir><file name="Config.php" hash="fda273a9bb6d925e3e94f0f09010744a"/><dir name="Convert"><file name="Order.php" hash="673924b5f6a1fd53b765b44eaeb240b8"/><file name="Quote.php" hash="8afd52f68c48b9ae046b62365a6dd8d9"/></dir><dir name="Email"><file name="Template.php" hash="6d0df7b9f2f6fba2fce79c3c9725051f"/></dir><dir name="Entity"><dir name="Order"><dir name="Address"><file name="Collection.php" hash="d26edfda28bc64caf64d109ce8896bb0"/></dir><file name="Address.php" hash="2ef4cd5fe9412ddc88d7240af3ba12f5"/><dir name="Attribute"><dir name="Backend"><file name="Billing.php" hash="22d5fa3a28c101d2e027f0ab0ca3ac31"/><file name="Child.php" hash="39c26fdab597f65f087424211ca51432"/><file name="Parent.php" hash="e41ba3c47ddbadd0cf8fcd85055fa5ce"/><file name="Shipping.php" hash="3a825d75685945ecdd5f6f294395f9fb"/></dir></dir><file name="Collection.php" hash="e2378e7479f995faf015c5e3d3f974e8"/><dir name="Creditmemo"><dir name="Attribute"><dir name="Backend"><file name="Child.php" hash="12910c9b1b2f5890eebe15922f984ac5"/><file name="Parent.php" hash="46fe7422c5cf98de193eb8f1be7d4b08"/></dir></dir><file name="Collection.php" hash="9c144ecbfa18a242b8ef9b288b89af10"/><dir name="Comment"><file name="Collection.php" hash="27a48a53840facd443cdb39382bccbbe"/></dir><file name="Comment.php" hash="c2e06ebb9052fc9918072554200c849d"/><dir name="Item"><file name="Collection.php" hash="5756bdea8e9804efba31d920627a5173"/></dir><file name="Item.php" hash="1c8e1f1f96a30390427a9e822610b9d1"/></dir><file name="Creditmemo.php" hash="dc543fd0ab03dc7d7fd5196fe8bb1ff1"/><dir name="Invoice"><dir name="Attribute"><dir name="Backend"><file name="Child.php" hash="2b0383261cec8e5c7212d5f2eb8cf454"/><file name="Item.php" hash="e956eb1171c842859d9ab91f3ef410c8"/><file name="Order.php" hash="6a33e064b57d6cd81563f3dabc98aedf"/><file name="Parent.php" hash="34e287508489fff67e4823c468bf8661"/></dir></dir><file name="Collection.php" hash="7627ccd2307a63a81fdea8c530fd38a3"/><dir name="Comment"><file name="Collection.php" hash="473775d8c46e318aa3c438991e81e4b8"/></dir><file name="Comment.php" hash="e1f351ed0ec213589b29cf5dfc0851b5"/><dir name="Item"><file name="Collection.php" hash="5731b554cc01bf289b3aae069ab7bd6b"/></dir><file name="Item.php" hash="1dbdadf8d58651b08b37f0a75093bcce"/></dir><file name="Invoice.php" hash="0985a22ea865b224062b19cc3acdb7a2"/><dir name="Item"><file name="Collection.php" hash="f9c328e3332bae8d7d6a56305a85afdb"/></dir><file name="Item.php" hash="b9a7c019cda58cb0b1a4157907ffac3e"/><dir name="Payment"><file name="Collection.php" hash="c2e7432b532ac381b869c5e46d8a759a"/></dir><file name="Payment.php" hash="6c0a5ac8f6b8986dcc842f8c4c4d53eb"/><dir name="Shipment"><dir name="Attribute"><dir name="Backend"><file name="Child.php" hash="d4793ddad0fee71b951fa45287ecafa1"/><file name="Parent.php" hash="519ab3ea8c74957f2cbdddd21f871f50"/></dir></dir><file name="Collection.php" hash="db788f0e3da76dc1944e72262c9132b9"/><dir name="Comment"><file name="Collection.php" hash="98693746ced501c8b6900774bb9cd093"/></dir><file name="Comment.php" hash="49d67daf14d3082c54d5c6617c9ec19c"/><dir name="Item"><file name="Collection.php" hash="5a8de713464b059130cc6cf3df164f30"/></dir><file name="Item.php" hash="0bab382cb9828171c66f68ce71301a05"/><dir name="Track"><file name="Collection.php" hash="c11625e9135139bb4c8e35f780801ad9"/></dir><file name="Track.php" hash="e555ac5938b8407dc15e9af46367f272"/></dir><file name="Shipment.php" hash="90442acab2fced52569c58061f99b314"/><dir name="Status"><dir name="History"><file name="Collection.php" hash="db8dd0423ed6dd3090e86a2b6d54b38e"/></dir><file name="History.php" hash="010afa69ee1bc6d75cb8d9f7e71251e1"/></dir></dir><file name="Order.php" hash="ee249d376904a567403cb18c11bff88e"/><dir name="Quote"><dir name="Address"><dir name="Attribute"><dir name="Backend"><file name="Child.php" hash="3dc2c9d89f14da2af5dd3567eefcd33f"/><file name="Parent.php" hash="ae02daaf996116cd5baaddf169a94b97"/><file name="Region.php" hash="aa6929d155e099c82cddf33c78d4c25b"/></dir><file name="Backend.php" hash="ada6b632ee949fefc70e7cd47602ecdf"/><dir name="Frontend"><file name="Custbalance.php" hash="9b97a3e95fe207f13389c3db9eda4672"/><file name="Discount.php" hash="bcdbd4ffb5ee8ddbdbe47421e2d629a1"/><file name="Grand.php" hash="1a4dde3c4512ace0bb16f69dfae76d63"/><file name="Shipping.php" hash="fca436d1af0ec3a58065dddc47814317"/><file name="Subtotal.php" hash="c770e113b79ef05501eb826350de6537"/><file name="Tax.php" hash="f201a5b79c3d86bc787a1d94c26f9795"/></dir><file name="Frontend.php" hash="6663deed8b7770ae28cfce76740decae"/></dir><file name="Collection.php" hash="968a22e1d2ff514245bb0ccf9bc285eb"/><dir name="Item"><file name="Collection.php" hash="d15136c7db392ca14222cfba4b6889c1"/></dir><file name="Item.php" hash="b7616e552aeab785797b3e1fa0a8726b"/><dir name="Rate"><file name="Collection.php" hash="764fac7cb350d2a54b09f63a63924a12"/></dir><file name="Rate.php" hash="cd88976ded80724bab442e50d904e929"/></dir><file name="Address.php" hash="7c7ca80d4fdc6c79f5fecdc455e8ecaa"/><file name="Collection.php" hash="75f34757a52eb79cb886d36790ab6271"/><dir name="Item"><file name="Collection.php" hash="6d3d952bf2f6b882b72b5325c62f4c5a"/></dir><file name="Item.php" hash="9517a2117470f932873f3d8b16cee1ac"/><dir name="Payment"><file name="Collection.php" hash="4fd05e00454cda210a7f927fba328301"/></dir><file name="Payment.php" hash="5a71a13f039b1c7f2f50468d33c7dd24"/></dir><file name="Quote.php" hash="9989cb2478e4fdd611c36fef6acc508b"/><dir name="Sale"><file name="Collection.php" hash="bea4c27ce23e409479adf1f79bd8709a"/></dir><file name="Setup.php" hash="d6f3c5e6c70ffae9c1404fa6d4292827"/></dir><dir name="Mysql4"><file name="Abstract.php" hash="d12f89a16a66a9068353cba5f05a223e"/><dir name="Billing"><dir name="Agreement"><file name="Collection.php" hash="710965f0fd934005da8d4c83dece7550"/></dir><file name="Agreement.php" hash="923babe9c55ce2164bdcd0a94ef4e8bc"/></dir><dir name="Collection"><file name="Abstract.php" hash="87274fda5a701210f87b77d9604251de"/></dir><dir name="Order"><file name="Abstract.php" hash="eaced4a24e027f10d94d6f53fbe21d92"/><dir name="Address"><file name="Collection.php" hash="7c038b6f181c8a3966fc1c5cf5e34640"/></dir><file name="Address.php" hash="ff29e3311002ce43be12e5a91d6b1da5"/><dir name="Attribute"><dir name="Backend"><file name="Billing.php" hash="e74b054bc739ad33a356049a3509c3d8"/><file name="Child.php" hash="558490d4f64a480c5eeb23f48e7c30f0"/><file name="Parent.php" hash="4ef6e19383c74b35e65ea2fccdfa7350"/><file name="Shipping.php" hash="f5cbc5b01c156b621b6d9676b70515a2"/></dir></dir><dir name="Collection"><file name="Abstract.php" hash="d2ef36b96e484eb05f9a144f7a0e1ac5"/></dir><file name="Collection.php" hash="1072d2318446752fffe984f485d78a24"/><dir name="Comment"><dir name="Collection"><file name="Abstract.php" hash="d9df028b7b86dfcdc2dd0ed0cf072c11"/></dir></dir><dir name="Creditmemo"><dir name="Attribute"><dir name="Backend"><file name="Child.php" hash="e94545b89ecd79340b3d4b49916b6094"/><file name="Parent.php" hash="adf80a157584b4eff97f47978fb2100a"/></dir></dir><file name="Collection.php" hash="a281567b4afa1366d03dbc966fa460d5"/><dir name="Comment"><file name="Collection.php" hash="755191133b2d9f5c23cd395e35a9940a"/></dir><file name="Comment.php" hash="4905bed204ee14da43471f196836ef16"/><dir name="Grid"><file name="Collection.php" hash="af14079eb6603944ed56a472b59d93b6"/></dir><dir name="Item"><file name="Collection.php" hash="3754dda4b1b9b269aee3cc1a604411b8"/></dir><file name="Item.php" hash="01edfe8eeeff847b787540ecb1e2e16a"/></dir><file name="Creditmemo.php" hash="18c88ec4de175eebc00f8b009d17364a"/><dir name="Grid"><file name="Collection.php" hash="af59bede1d5f988ac464802aedee2588"/></dir><dir name="Invoice"><dir name="Attribute"><dir name="Backend"><file name="Child.php" hash="6c7957523f57d1a853109c34b0425d3a"/><file name="Item.php" hash="ffa9a7ded8bb32eb40091f5ce85cdda2"/><file name="Order.php" hash="e21c183035c5aaafded5e255bb37724f"/><file name="Parent.php" hash="3ef3263c67a15d2fe95ba466f0815c95"/></dir></dir><file name="Collection.php" hash="5e4c4f4e5cd38c2c54a11b18652fb32a"/><dir name="Comment"><file name="Collection.php" hash="b830e77b09c207e95af2a90dff8d72f2"/></dir><file name="Comment.php" hash="f211d7ee656e04eec95e535047f6dc92"/><dir name="Grid"><file name="Collection.php" hash="f808f6269031a5a9d60cbb54893a784d"/></dir><dir name="Item"><file name="Collection.php" hash="404b3d848237e9d603c6f68f7fe2817a"/></dir><file name="Item.php" hash="c1a8fe93361614428ca3c32d06c08713"/></dir><file name="Invoice.php" hash="9bb6a39a36c9d56b181397f0f8bded55"/><dir name="Item"><file name="Collection.php" hash="94c72ab7fb747ce61a132e0928ee19e5"/></dir><file name="Item.php" hash="13d9b87db264f7adf6f22cdde3c63e20"/><dir name="Payment"><file name="Collection.php" hash="2ec3645904237690b347af9acb4baf09"/><dir name="Transaction"><file name="Collection.php" hash="c8362358510365e093c98de78608600d"/></dir><file name="Transaction.php" hash="7f334ddf120f5c7f6b113abb06d2a1ec"/></dir><file name="Payment.php" hash="660718b664b599b51fa353bb3cb5afd9"/><dir name="Shipment"><dir name="Attribute"><dir name="Backend"><file name="Child.php" hash="a406b89a624d48aa29ae600c007c0c12"/><file name="Parent.php" hash="bc5d2742024c55ff439523592a310b82"/></dir></dir><file name="Collection.php" hash="6ac549687fc7151c65c40b20fd882808"/><dir name="Comment"><file name="Collection.php" hash="df9a925d885420bda460c230afaca220"/></dir><file name="Comment.php" hash="6e30f7a9192f9811cf5289092f9bbb46"/><dir name="Grid"><file name="Collection.php" hash="57354bff0ac77569b0a32e8569d8be4c"/></dir><dir name="Item"><file name="Collection.php" hash="473c210b4b7bdad1af3b310fc0a8f922"/></dir><file name="Item.php" hash="8e71388582b4d0891dc60b65195ba5af"/><dir name="Track"><file name="Collection.php" hash="549b0cfa09627da8de41d0681ab3c07b"/></dir><file name="Track.php" hash="9906630d788208f383a9059383973f78"/></dir><file name="Shipment.php" hash="b06730da07d51443e7ba9020244cece5"/><dir name="Status"><file name="Collection.php" hash="5ce12f2894eb2e71b04056f74a56db3d"/><dir name="History"><file name="Collection.php" hash="db335452e2ca68c798bb0c05c4ced6d4"/></dir><file name="History.php" hash="f58b802fa285f32f96aa21be59df9ded"/></dir><file name="Status.php" hash="f64acff11b319559d5a682ae2f2eb09c"/><dir name="Tax"><file name="Collection.php" hash="bfd0323dd565de0bd7bbb9804f63e991"/></dir><file name="Tax.php" hash="524f62286c3565a8d006badbef121fa8"/></dir><file name="Order.php" hash="66627134e6c20286c8c7acb9c33b582a"/><dir name="Quote"><dir name="Address"><dir name="Attribute"><dir name="Backend"><file name="Child.php" hash="f90b9d087c7154c32b0ba915dc6a3a0c"/><file name="Parent.php" hash="3fa6cab874b6b7a5617a150f8b2c1ca0"/><file name="Region.php" hash="ea81bb9a64bda4203dc2f1067ca39a54"/></dir><file name="Backend.php" hash="87f2c8635b883ce589e944499131d465"/><dir name="Frontend"><file name="Custbalance.php" hash="52d52833c5f46decdf9bd4a856f80093"/><file name="Discount.php" hash="648af5482186d234a31505e1bc6ae500"/><file name="Grand.php" hash="cb9b6c627d5b8966aee72db58e4460a2"/><file name="Shipping.php" hash="b7462a6658bb61f49233b8218a73322f"/><file name="Subtotal.php" hash="761b9c8e389b4bde68396f69b5407bab"/><file name="Tax.php" hash="629321380f74bc26cef7264ac5c2dde3"/></dir><file name="Frontend.php" hash="fa01a05e99d7f3e602575c340f4c607b"/></dir><file name="Collection.php" hash="a86add0a2fd554af53fd940ca7b5758e"/><dir name="Item"><file name="Collection.php" hash="c75c7cb0ba7d071d42923e642a898009"/></dir><file name="Item.php" hash="076f3fad0e42176998ad492d286369fc"/><dir name="Rate"><file name="Collection.php" hash="5d948c6fa35b627fda071895000f40cb"/></dir><file name="Rate.php" hash="9826e55d12d254250ff2eb5e60bd1c23"/></dir><file name="Address.php" hash="fe4ff7530d9772854641a76ae2052a8e"/><file name="Collection.php" hash="998e958aa6d8c085a96ba19789657964"/><dir name="Item"><file name="Collection.php" hash="422290fb391c6e242436ff5def1b1deb"/><dir name="Option"><file name="Collection.php" hash="89d56a8521f26b4162bea949a786c6fc"/></dir><file name="Option.php" hash="9f1e28275ad2c5b4816c438296727129"/></dir><file name="Item.php" hash="0c26721d7af53a1d389be27183f630a4"/><dir name="Payment"><file name="Collection.php" hash="48c6b856e3e6b7c8e23e0fb1da6932b1"/></dir><file name="Payment.php" hash="e592e97eaf9d243042cc366d5846fe81"/></dir><file name="Quote.php" hash="7fc8dbbdcb80abc93eca614aa8bd06fc"/><dir name="Recurring"><dir name="Profile"><file name="Collection.php" hash="08722279a3a0a4f474aad055e732aaa2"/></dir><file name="Profile.php" hash="f56cfd3293d3cbeac339edefe5977fe8"/></dir><dir name="Report"><file name="Abstract.php" hash="efc244667a406052af6f89fd35d94fdc"/><dir name="Bestsellers"><file name="Collection.php" hash="c2af090807cc79cdaac55d1059c377f0"/></dir><file name="Bestsellers.php" hash="ca75e70a1765aa211b7bd09608fdcf8a"/><dir name="Collection"><file name="Abstract.php" hash="6ccbc672629fcdc8b6272bbcfafff7e8"/></dir><dir name="Invoiced"><dir name="Collection"><file name="Invoiced.php" hash="51f1eac170f2465080d104114093e0e1"/><file name="Order.php" hash="db5eae7f77229c4598aae657b8c936da"/></dir></dir><file name="Invoiced.php" hash="bf10ed9ca5323d4b31c4f5c8f98ce378"/><dir name="Order"><file name="Collection.php" hash="3c1434cd5c02a3375913079adeebe2ee"/><dir name="Updatedat"><file name="Collection.php" hash="0264dd6d390e6625eb398d5ef66ec29d"/></dir></dir><file name="Order.php" hash="fa060bf8a358181af5ea4c5a0cb71008"/><dir name="Refunded"><dir name="Collection"><file name="Order.php" hash="76f32743c0658c289d1ea66c24bc91d3"/><file name="Refunded.php" hash="301c9cd4e574585f67f6409064547297"/></dir></dir><file name="Refunded.php" hash="cc07f06b3b2193ee644ca1d384b66171"/><dir name="Shipping"><dir name="Collection"><file name="Order.php" hash="75275bc7cf3b6ec53eb3fb3e9536a15d"/><file name="Shipment.php" hash="73d8f9fc683a8cd3d8b389d3325f4629"/></dir></dir><file name="Shipping.php" hash="20b9e95f7a75936ddac39b3e1493a812"/></dir><file name="Report.php" hash="7828f88e9d9974abc4efdd8312672999"/><dir name="Sale"><file name="Collection.php" hash="602312e983120d7c5107de9cafb274b4"/></dir><file name="Setup.php" hash="eff4b297bf369baf2878dcee94c3c725"/></dir><file name="Observer.php" hash="af8249b4041fc99dc39402b44b9070a6"/><dir name="Order"><file name="Address.php" hash="b5aaf6b398fea44f576767a36da61b3f"/><dir name="Api"><file name="V2.php" hash="61a763b0b1cc10e7a1f810e7014debdf"/></dir><file name="Api.php" hash="60720076b3e2d6fa19f198ee6b3fea34"/><file name="Config.php" hash="9de4f1dec458aea9d9b5f9a7341e6280"/><dir name="Creditmemo"><dir name="Api"><file name="V2.php" hash="9a98607475d99105414a0ae82afaf4d0"/></dir><file name="Api.php" hash="f8679da662ef327e76843a9cc1f3793d"/><file name="Comment.php" hash="38afb28018280129c420cb149337b00f"/><file name="Config.php" hash="2b1841ce51d9a41a60b23630edbdd12e"/><file name="Item.php" hash="82f431c3cd11ee553cd071f314ac60b5"/><dir name="Total"><file name="Abstract.php" hash="734d7caeedbc5d4947e207e949289561"/><file name="Cost.php" hash="6a74bbae062751be9c4fd797f75ead47"/><file name="Discount.php" hash="184c13257733df0c2c6ff03a753e7faf"/><file name="Grand.php" hash="853363438c6fa900f20f5a69999e85dc"/><file name="Shipping.php" hash="360dde779af523188fcb845e203796ae"/><file name="Subtotal.php" hash="b215261de63a33f4e3a1d2092b73e838"/><file name="Tax.php" hash="72e683482df722523fe89da62b8157d3"/></dir></dir><file name="Creditmemo.php" hash="f2e811cff4ca81f4632df4b98c63b88f"/><dir name="Invoice"><dir name="Api"><file name="V2.php" hash="e04827c97bc64a9b4a47f01ec07efb35"/></dir><file name="Api.php" hash="9d8d2f62139c7fb8c3e5403a3569b2da"/><file name="Comment.php" hash="71efb48707ef5e985335830845a47198"/><file name="Config.php" hash="aa47690e5b82454c5c0af87131307b1e"/><file name="Item.php" hash="96425a3ff3e8b7e161572f6810632840"/><dir name="Total"><file name="Abstract.php" hash="0cfd189857a55d3ac0681810a731b58c"/><file name="Cost.php" hash="fee6afa197d455c74716d76734a1180b"/><file name="Discount.php" hash="083078f98215a8d2d66138fa7096ed8f"/><file name="Grand.php" hash="32612eb9c44d2ec6cc8e11daab5586f6"/><file name="Shipping.php" hash="d3513d00b2308f6907b73b5193714fd1"/><file name="Subtotal.php" hash="7bc974c645acd358ec1b985a2cb497b3"/><file name="Tax.php" hash="432e2791339a3bc66c106977509e334c"/></dir></dir><file name="Invoice.php" hash="14e3a7d612dbe05d3967da27842c2444"/><file name="Item.php" hash="b4be5fc454af9ce0aea4af15bb9c0007"/><dir name="Payment"><file name="Transaction.php" hash="5415a0f3baaae203f4e6889204d5fbef"/></dir><file name="Payment.php" hash="2b93e3dca7135820fe90c291384746c0"/><dir name="Pdf"><file name="Abstract.php" hash="99500e8639a6ae441d03487ccd224b1f"/><file name="Creditmemo.php" hash="f285b8eed25541d884ed4b05e8cd9995"/><file name="Invoice.php" hash="42b3b2072b65e431c1255779846ceb53"/><dir name="Items"><file name="Abstract.php" hash="ea2808f1fbd4cdcca4fe94acd8afa003"/><dir name="Creditmemo"><file name="Default.php" hash="f79904131e7df30bbe7959ce7b85083e"/><file name="Grouped.php" hash="3c18661d38676d9a8d01e4bfc5913d3d"/></dir><dir name="Invoice"><file name="Default.php" hash="e2d04550d67ed65fe47648917bb72522"/><file name="Grouped.php" hash="a1597c343881ab54665f2f98a8da215d"/></dir><dir name="Shipment"><file name="Default.php" hash="f358a2c8971ee532161f6dc004e3a81d"/></dir></dir><dir name="Shipment"><file name="Packaging.php" hash="e1b05ca73d859e0b70e13c74b98238e3"/></dir><file name="Shipment.php" hash="8a3ac8ab741a72ff505785b5dd6546ca"/><dir name="Total"><file name="Default.php" hash="8f7266cff28f558dfce099a332cb7693"/></dir></dir><dir name="Shipment"><dir name="Api"><file name="V2.php" hash="4b37ad12413b8f00972b3d3f4315fcad"/></dir><file name="Api.php" hash="591c40d195e796254c8264645bdeeca6"/><file name="Comment.php" hash="832f87c9d3c6f98457f89494a3007fa1"/><file name="Item.php" hash="57e626460ed5d16d6fd8d1b684fe1c55"/><file name="Track.php" hash="ef300b5958bf00f73e7fd41aacc49594"/></dir><file name="Shipment.php" hash="d3dc3eb9bf6d50ddd606dd14212dea75"/><dir name="Status"><file name="History.php" hash="9fa47f2e20b7e333d714d296ba3b99e9"/></dir><file name="Status.php" hash="2c5ae7c06fd502603361fc3063e4a793"/><file name="Tax.php" hash="0e3c13ad8faa32eb24960e3d254180e1"/><dir name="Total"><file name="Abstract.php" hash="fcea40c1cb0c35f58a5a720cb409ad1c"/><dir name="Config"><file name="Base.php" hash="2f32b6816b83ddf645211a284a18ca25"/></dir></dir><file name="Total.php" hash="5cd140158579497b17bd6e79162011bd"/></dir><file name="Order.php" hash="1ce6180488b5710564863dbd98ad26e2"/><dir name="Payment"><dir name="Method"><dir name="Billing"><file name="AgreementAbstract.php" hash="fcf2161aa71002dc50725409ed6de596"/></dir></dir></dir><dir name="Quote"><dir name="Address"><file name="Item.php" hash="ea12e72ec8424db3aa2bc593241c9699"/><file name="Rate.php" hash="61ed371c7a1a57fbc388d7f6bfdfc1cf"/><dir name="Total"><file name="Abstract.php" hash="6bbbbce102c225d2b2bc5625b0b12ff6"/><file name="Collector.php" hash="d7a41cc4fa813af40b13c1cbc039cf5f"/><file name="Custbalance.php" hash="d141306f03fc099f0584e982b1c80559"/><file name="Discount.php" hash="603730b9fcff49d2a304e8467472a7eb"/><file name="Grand.php" hash="e5525fd20218935749c16ae5fbd98176"/><file name="Msrp.php" hash="de22dfc41e2640f2b9a6f76e2a0f8474"/><dir name="Nominal"><file name="Collector.php" hash="bedeac0b799a55eef8af99dc6d398fda"/><dir name="Recurring"><file name="Initial.php" hash="7ca5ffb59d71e46b429c40e1229077dc"/><file name="Trial.php" hash="ac1f6b68f4659acd0609df9c9d94f3ed"/></dir><file name="RecurringAbstract.php" hash="201fc90c8ea7f9403dd6e29ce681cf67"/><file name="Shipping.php" hash="852de22dfb4f3ef9b303e8f6ab3b3b9a"/><file name="Subtotal.php" hash="ae07f40723e388d6461f2f8ecb4fc493"/></dir><file name="Nominal.php" hash="5a9d8bb830fde9dc147854f6acc127d2"/><file name="Shipping.php" hash="a7de312528e726122cd380038067c4de"/><file name="Subtotal.php" hash="a4aadc71f90beed863dd3507c1b3633a"/><file name="Tax.php" hash="7e494a87976e318906077abb778fa2d3"/></dir><file name="Total.php" hash="376cf52b2a0324714b3b264407970b4f"/></dir><file name="Address.php" hash="77204f9535b973a39dd2e8fa14b400d5"/><file name="Config.php" hash="4c65b9bbda8a9f2cf6e19a2013680f67"/><dir name="Item"><file name="Abstract.php" hash="aae53ae7b254c8b7f7a681b40857c1db"/><file name="Option.php" hash="4284d9ca3a81cdc0cedc2581d3baacd5"/></dir><file name="Item.php" hash="111baaaed72b5bc408304326965cc928"/><file name="Payment.php" hash="c68884655d0fc6bfbe86597e5e4e54a5"/></dir><file name="Quote.php" hash="d4a6d48b9f10eabfeabe2ab22a37aba6"/><dir name="Recurring"><file name="Profile.php" hash="2b09538dc730a146093dfd2a8e4f3a0e"/></dir><dir name="Resource"><file name="Abstract.php" hash="a56c65b3e68ac908a1c40adae76c2f23"/><dir name="Billing"><dir name="Agreement"><file name="Collection.php" hash="ac427d72b5e018173ddb6550d62da685"/></dir><file name="Agreement.php" hash="cc469f2f01bdcc8c4c72681a39847e21"/></dir><dir name="Collection"><file name="Abstract.php" hash="19484c8d144e8243405ab083a5e91d2b"/></dir><dir name="Helper"><file name="Interface.php" hash="8ce1b682deae4814812cb98a8162e8e6"/><file name="Mysql4.php" hash="bc687fc66fb4d2678873d2e7c04a1e01"/></dir><dir name="Order"><file name="Abstract.php" hash="89f4e7c6cd503c1390a0c127fb0a7381"/><dir name="Address"><file name="Collection.php" hash="fa8eadfeaa028a016b40ac04734b9e68"/></dir><file name="Address.php" hash="47fbb096ec189bac3fe97f215a79697d"/><dir name="Attribute"><dir name="Backend"><file name="Billing.php" hash="506ea2c822a89532f120ea13ac6099cd"/><file name="Child.php" hash="4d81b1cf9fe25d8df19d44aa516be6be"/><file name="Parent.php" hash="f14239349ff28e561bc8534743b22aaa"/><file name="Shipping.php" hash="c79a59a848d3c1692dfe3a82ef761ef6"/></dir></dir><dir name="Collection"><file name="Abstract.php" hash="c64eb8965d55c5eeacb7856bff91f36a"/></dir><file name="Collection.php" hash="d3dab5f90d3a84ba0548b217a12c9b72"/><dir name="Comment"><dir name="Collection"><file name="Abstract.php" hash="34add69ec5c79f8726b971c1620181f1"/></dir></dir><dir name="Creditmemo"><dir name="Attribute"><dir name="Backend"><file name="Child.php" hash="a040e9da7bb848a6a61b330e5fd4edfa"/><file name="Parent.php" hash="dadde192982cb95d32ce82adac882e4a"/></dir></dir><file name="Collection.php" hash="fa47186a90e42584a49e001c5532b32c"/><dir name="Comment"><file name="Collection.php" hash="103422d9049c3ac381ab7e665daccb9f"/></dir><file name="Comment.php" hash="a61c32f0e00415c7a3ff911d05cd39cc"/><dir name="Grid"><file name="Collection.php" hash="5ced80afeb94905b80eee5925f45ef17"/></dir><dir name="Item"><file name="Collection.php" hash="9dff81ac8137cb216a13a774badda549"/></dir><file name="Item.php" hash="31a8c3a138c9565d0e79bbd07a023eb8"/></dir><file name="Creditmemo.php" hash="e7a8a584f07a00a9e10ef1592bac5bce"/><dir name="Grid"><file name="Collection.php" hash="e7972c610e58d9c746349f7c0d573894"/></dir><dir name="Invoice"><dir name="Attribute"><dir name="Backend"><file name="Child.php" hash="3b6d7bc632b74727578ad0b77bf2daba"/><file name="Item.php" hash="e962dbfe36cfe0cb23faf16eb8f582c8"/><file name="Order.php" hash="bdebc5b6093057017c31d5b1877d9014"/><file name="Parent.php" hash="5686ccf311802d7134c969942788832a"/></dir></dir><file name="Collection.php" hash="3bf9ddee39489f83d98be8f1f84eba5e"/><dir name="Comment"><file name="Collection.php" hash="15195ba2555e4fb35e493830e8c5266e"/></dir><file name="Comment.php" hash="41dcb8ab21d15d4a1d315f891d429136"/><dir name="Grid"><file name="Collection.php" hash="a82f47818143ded93703b22c0cbb62d8"/></dir><dir name="Item"><file name="Collection.php" hash="9618891171bb13d7821c773cdd346fdd"/></dir><file name="Item.php" hash="9cedbe54187f8926cedef976e27759d3"/></dir><file name="Invoice.php" hash="02058b23cf63cd0c8ab8c9697d74c9c5"/><dir name="Item"><file name="Collection.php" hash="51d426ee2191db7f4e9b0ed3afbd6698"/></dir><file name="Item.php" hash="b690d152ea3dfb9dd3380d741cc09ba7"/><dir name="Payment"><file name="Collection.php" hash="fc6382cef0d1fbdbb0a42c227251d36a"/><dir name="Transaction"><file name="Collection.php" hash="cb2c63339719d9d99d00cdf26c0214de"/></dir><file name="Transaction.php" hash="963dd8f94b47cf916878d2181db05a2f"/></dir><file name="Payment.php" hash="f05bf66baba38aab3fb02ef0ffc6d164"/><dir name="Shipment"><dir name="Attribute"><dir name="Backend"><file name="Child.php" hash="4ba5eedeaf8309b199eb2fcfdcb07d60"/><file name="Parent.php" hash="2bfe8559afcc459971bd6dcd3bc7656c"/></dir></dir><file name="Collection.php" hash="3d5cae59fea64fc1ae428f076c3e4daf"/><dir name="Comment"><file name="Collection.php" hash="99475e1992a15bdaec93ba5cc949ea5c"/></dir><file name="Comment.php" hash="7880148dcadae0a97c34e8cd7516f116"/><dir name="Grid"><file name="Collection.php" hash="12f7a15a174921f190e4ff3664d58148"/></dir><dir name="Item"><file name="Collection.php" hash="453322c8099ce1ce02ad2d4acfdacbc7"/></dir><file name="Item.php" hash="59afa9fd390ec49e3d4ce6d8ef01d025"/><dir name="Track"><file name="Collection.php" hash="33d07bf647e12110363a7962b5bd5469"/></dir><file name="Track.php" hash="4915b855be0f53287306a287a229c9b2"/></dir><file name="Shipment.php" hash="46c000412d0a5f1c441cbde032f8f0de"/><dir name="Status"><file name="Collection.php" hash="dba6909246ba69c305b49859864a7039"/><dir name="History"><file name="Collection.php" hash="15c83d6eace7253cec6a2e4810e4e82a"/></dir><file name="History.php" hash="0e7fbeb03289e64df359b229f8571378"/></dir><file name="Status.php" hash="792bc432c727ce1d8dec519f47a30abf"/><dir name="Tax"><file name="Collection.php" hash="95e805cec38b5d5c7c584a65210ce913"/></dir><file name="Tax.php" hash="d7821ceb2f3ddcb29dc66b88a646058f"/></dir><file name="Order.php" hash="8b25ec73560f8644ab0376de07e81ecd"/><dir name="Quote"><dir name="Address"><dir name="Attribute"><dir name="Backend"><file name="Child.php" hash="ca8ac35d3e13d27a950a051d2e0adfc9"/><file name="Parent.php" hash="0f4511956cfbc4713fb7278ed958df2f"/><file name="Region.php" hash="0735a5a338c6f035ddf95689281e080a"/></dir><file name="Backend.php" hash="f7eece248dceb7811c5d48ad018f7bc2"/><dir name="Frontend"><file name="Custbalance.php" hash="f027ff02b8bb782388b9b7e69700a690"/><file name="Discount.php" hash="82b08a77b8b244f432b4d601e0f20fa9"/><file name="Grand.php" hash="036b8d97f3c6f4355d00ca84d3f9432b"/><file name="Shipping.php" hash="5354411cc83b29a7df63cf50030c0fda"/><file name="Subtotal.php" hash="0b86d5e81f0576df09de5ed8a773a8f2"/><file name="Tax.php" hash="ebfa77cf9dd43485695ebbbd3bef21e9"/></dir><file name="Frontend.php" hash="a8151b164769e3f2763e0869b51ec6d1"/></dir><file name="Collection.php" hash="44c7a8720c2c1aacb9cda1ed4c49563b"/><dir name="Item"><file name="Collection.php" hash="8c1099b9ea900b683103ab1af47adda3"/></dir><file name="Item.php" hash="a21914009409a143fccd2772de4a0575"/><dir name="Rate"><file name="Collection.php" hash="718cc26d336586466d1fbbefa6cae9c6"/></dir><file name="Rate.php" hash="12455eda9d701a890068c0bfb94056c2"/></dir><file name="Address.php" hash="460c102f3194bbf255619853e4b79053"/><file name="Collection.php" hash="8e4a53611328a7d9f14608bb280e650c"/><dir name="Item"><file name="Collection.php" hash="0e66744af4b82925604fdb0e3b31eb2a"/><dir name="Option"><file name="Collection.php" hash="5c14f50b6104952d4e76c6c412488577"/></dir><file name="Option.php" hash="a40a4bc013ed117bd5b21e2dab161a66"/></dir><file name="Item.php" hash="0c3531593e88f210eae490a4a96588fa"/><dir name="Payment"><file name="Collection.php" hash="0e5317d6d76d0137b44b03b659a385e2"/></dir><file name="Payment.php" hash="b2e2b33eb37878a0d06e9dd2e16a67f2"/></dir><file name="Quote.php" hash="8e4e595817d0aa18060a66bf6b7c8084"/><dir name="Recurring"><dir name="Profile"><file name="Collection.php" hash="3b97e1fd792ea29e03362f39b3adaa08"/></dir><file name="Profile.php" hash="c349c5813161d74703caf851105ef0e1"/></dir><dir name="Report"><file name="Abstract.php" hash="cb7d4c7c801edcd8cfdcf17956921f97"/><dir name="Bestsellers"><file name="Collection.php" hash="93502f58a0e6d532dd7b2b07d796c6c8"/></dir><file name="Bestsellers.php" hash="75048327f74601773dbc6528968c2dbb"/><dir name="Collection"><file name="Abstract.php" hash="f78d7f267b278f63629372fc621709f2"/></dir><dir name="Invoiced"><dir name="Collection"><file name="Invoiced.php" hash="19c19915f20e148c27c7d1c09b3ec37b"/><file name="Order.php" hash="a82edad51925a47b467307235c8dd780"/></dir></dir><file name="Invoiced.php" hash="707173594e3d21fc44332f162749d7a9"/><dir name="Order"><file name="Collection.php" hash="f021d66db855f2fc030a8d503046f073"/><file name="Createdat.php" hash="40ee1bd59b007a9dd45d4e1ead89d5be"/><dir name="Updatedat"><file name="Collection.php" hash="229247f6c1ffc4cb832b89e55e5c643b"/></dir><file name="Updatedat.php" hash="182c1ec4c6e22f0ec4642094a5baa75e"/></dir><file name="Order.php" hash="1b5124776b6983193c0f836e09629a73"/><dir name="Refunded"><dir name="Collection"><file name="Order.php" hash="c86a880bbbc3e3c939740a21ee705b65"/><file name="Refunded.php" hash="5b2ee7377fc029b459021211662410c3"/></dir></dir><file name="Refunded.php" hash="60f6c42c8d259a7e018bfc59deae97c8"/><dir name="Shipping"><dir name="Collection"><file name="Order.php" hash="4d3e40e091390b09db1456ff99317652"/><file name="Shipment.php" hash="7868a4e901eb49f1f023030a21152e76"/></dir></dir><file name="Shipping.php" hash="23198ac1648eacd30e457900c03c1fbd"/></dir><file name="Report.php" hash="c06b39cf180fe07e3a95e79292e9331e"/><dir name="Sale"><file name="Collection.php" hash="f55060aae60f709e8db01519cf221578"/></dir><file name="Setup.php" hash="b5d75c487de0d1c2d4dbcd5f9df1cd56"/></dir><dir name="Service"><file name="Order.php" hash="d35c0087381364015dfd6a6f76b9fa72"/><file name="Quote.php" hash="8895124dcc1b104750132a3fdb4bb10d"/></dir><dir name="Status"><file name="List.php" hash="48a7c3fe6e8ad5fe60fbc724354a3635"/></dir></dir><dir name="controllers"><dir name="Billing"><file name="AgreementController.php" hash="16105acc9d6fab8bbf0cde7207efea03"/></dir><file name="DownloadController.php" hash="093b8f38ab59b12168416b0c0cc52a32"/><file name="GuestController.php" hash="be829deb8f9c3e37e92e1fce8c094b40"/><file name="OrderController.php" hash="959facfa8eb16ae41a10d4e46969500d"/><dir name="Recurring"><file name="ProfileController.php" hash="44154e960c47f91846a914c02eaee80f"/></dir></dir><dir name="data"><dir name="sales_setup"><file name="data-install-1.6.0.0.php" hash="4a6712e20d22ae761842ee7be870d496"/><file name="data-upgrade-1.6.0.4-1.6.0.5.php" hash="dad2f163ecbfd7c224947292c5899d5d"/></dir></dir><dir name="doc"><file name="invoice.txt" hash="d41d8cd98f00b204e9800998ecf8427e"/><file name="order.txt" hash="5dce876530c94ebbedbba7a234c23846"/><file name="order_actions.HTM" hash="b955e61bff753ea0534f907ef6ba9bb6"/><file name="quote.txt" hash="55ecfbdd576958ff1b1fbf16957ba9df"/><file name="test.php" hash="4d7ea87f963d0256869405e6a1d19b0b"/></dir><dir name="etc"><file name="adminhtml.xml" hash="ba7c07cb628f2b05ae380dfd81679fe3"/><file name="api.xml" hash="91a657769f66f5e04cf4e73b016dcb05"/><file name="api2.xml" hash="3b99b83b783e2c95f1792d6ee7af063a"/><file name="config.xml" hash="8d046c8a6787b9dc5580fadbe2ccb055"/><file name="system.xml" hash="a1296df14bec6424736e61b565885ff3"/><file name="widget.xml" hash="573f3a91b06b4a29d119f30067f47e0a"/><file name="wsdl.xml" hash="ed13de1dde6408ab508892374ef57b81"/><file name="wsi.xml" hash="6aba2f44765955ec8bcd1afcebfb0800"/></dir><dir name="sql"><dir name="sales_setup"><file name="install-1.6.0.0.php" hash="ad9131b711aeddde2bd8e77a764a119c"/><file name="mysql4-install-0.7.0.php" hash="45a8b3690a68b98bc6c666163f5cb93e"/><file name="mysql4-install-0.8.11.php" hash="8bcd40d0c68f907e544fc6d25d4ed814"/><file name="mysql4-install-0.9.0.php" hash="d98e55a800406643b1feccc8b844336b"/><file name="mysql4-install-1.4.0.0.php" hash="c37c1fde345f093f3c621cade0113bde"/><file name="mysql4-upgrade-0.6.2-0.7.0.php" hash="7a301e36f307f42a4c885e858a71ee44"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="d8f8a077777d2046b9770e3ed0b950e8"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="ce1c736098a85a220629cfc4ea41780b"/><file name="mysql4-upgrade-0.7.2-0.7.3.php" hash="809d679d0c3100564a7092a7c57dd959"/><file name="mysql4-upgrade-0.7.9-0.7.10.php" hash="e4118cf7756d6b1006cac5a2026d70a3"/><file name="mysql4-upgrade-0.8.0-0.8.1.php" hash="56b2f5fd8ea04c1f64bc7ece1ada04ab"/><file name="mysql4-upgrade-0.8.1-0.8.2.php" hash="d2cc0692775cec0c0a98942ea9e53a91"/><file name="mysql4-upgrade-0.8.11-0.8.12.php" hash="7ce9f421f2354f9d74e7c57e138f2344"/><file name="mysql4-upgrade-0.8.12-0.8.13.php" hash="d97fd3692fc674a1d16775195edd7d04"/><file name="mysql4-upgrade-0.8.13-0.8.14.php" hash="896cd390d0263ecd2d55dd2c060debfa"/><file name="mysql4-upgrade-0.8.14-0.8.15.php" hash="bf0bc110da8ed3f7b56315a6ff5c7103"/><file name="mysql4-upgrade-0.8.15-0.8.16.php" hash="119f891e77b37b2bfa1902a6100e8703"/><file name="mysql4-upgrade-0.8.16-0.8.17.php" hash="6cc567d7432ffe1fd816752ce3968e9b"/><file name="mysql4-upgrade-0.8.17-0.8.18.php" hash="99e19181f870c0be92934fcf94c11ca5"/><file name="mysql4-upgrade-0.8.18-0.8.19.php" hash="63705ff013020bf9ea9fa32a5cd1c7d2"/><file name="mysql4-upgrade-0.8.19-0.8.20.php" hash="8b20d23b8762d3559179c1787b256670"/><file name="mysql4-upgrade-0.8.2-0.8.3.php" hash="6c4685d51fcbc235025d136d21e5cafc"/><file name="mysql4-upgrade-0.8.20-0.8.21.php" hash="9bfd3bb05a815a828e7a1172a94b083b"/><file name="mysql4-upgrade-0.8.21-0.8.22.php" hash="e0d3f4ddf5dd5247c988e895aa3d6de3"/><file name="mysql4-upgrade-0.8.22-0.8.23.php" hash="2ab58a83c8f9a058ccfb0d1b4679c542"/><file name="mysql4-upgrade-0.8.23-0.8.24.php" hash="c155ed1c4bfa5341c496cc07138029cb"/><file name="mysql4-upgrade-0.8.24-0.8.25.php" hash="8e6bb2382269dbb243d9f4c72149a75e"/><file name="mysql4-upgrade-0.8.25-0.8.26.php" hash="43baf31a4445aeed7627e5ded2131cd2"/><file name="mysql4-upgrade-0.8.26-0.8.27.php" hash="fb6ab16d8d951dce412eaf5dbb68a07d"/><file name="mysql4-upgrade-0.8.27-0.8.28.php" hash="a77c3985614fecd5594210988d0e7469"/><file name="mysql4-upgrade-0.8.28-0.8.29.php" hash="6d28baeb420cc75fbca6b57c8a9b61d0"/><file name="mysql4-upgrade-0.8.29-0.9.0.php" hash="0a4087c60fd53c78937f37e400eeeb99"/><file name="mysql4-upgrade-0.8.3-0.8.4.php" hash="49c9703203c22880d6bbaae0b0077550"/><file name="mysql4-upgrade-0.8.6-0.8.7.php" hash="6c4685d51fcbc235025d136d21e5cafc"/><file name="mysql4-upgrade-0.8.7-0.8.8.php" hash="908bfd3db7f9604320d4da1af4623fe1"/><file name="mysql4-upgrade-0.8.8-0.8.9.php" hash="5067ca1cf42fc83e02535dc576396362"/><file name="mysql4-upgrade-0.9.0-0.9.1.php" hash="94c98afbb3dab321fe18a2f411a43608"/><file name="mysql4-upgrade-0.9.1-0.9.2.php" hash="46a9bee30d60aafc06ef8062c850ccb4"/><file name="mysql4-upgrade-0.9.10-0.9.11.php" hash="85c6b75f00dcb9b55d43f74934297785"/><file name="mysql4-upgrade-0.9.11-0.9.12.php" hash="ba81e70efd8d25ad2b70aea0cc34ebeb"/><file name="mysql4-upgrade-0.9.12-0.9.13.php" hash="d65c5e3a285022f148afccac45620391"/><file name="mysql4-upgrade-0.9.13-0.9.14.php" hash="e5c09c14a0bed9d5839c5889f90ec66f"/><file name="mysql4-upgrade-0.9.14-0.9.15.php" hash="4b13fee2809c60d36c6844d8066f3740"/><file name="mysql4-upgrade-0.9.15-0.9.16.php" hash="becb6607d0134c46960991259ad7688d"/><file name="mysql4-upgrade-0.9.16-0.9.17.php" hash="e3def15b7cac3e7922f62d1ddba74121"/><file name="mysql4-upgrade-0.9.17-0.9.18.php" hash="cc8eed29e8f88b95889bb8936f8e1c27"/><file name="mysql4-upgrade-0.9.18-0.9.19.php" hash="60b35d580283517075fd5aeb267dce43"/><file name="mysql4-upgrade-0.9.19-0.9.20.php" hash="dc771038130ae3fe56043b5da05e6625"/><file name="mysql4-upgrade-0.9.2-0.9.3.php" hash="fcc73a33a728a715265acb1dde471a63"/><file name="mysql4-upgrade-0.9.20-0.9.21.php" hash="cb0c3364e1c89b160bf4e552fcc17e68"/><file name="mysql4-upgrade-0.9.21-0.9.22.php" hash="2ffbf9d7615b6200c82df4184257c6de"/><file name="mysql4-upgrade-0.9.22-0.9.23.php" hash="84b7e53b5eb48467c582e5a3fb5a0ac3"/><file name="mysql4-upgrade-0.9.23-0.9.24.php" hash="61deeb2a8e4cec9d2a477321c2167782"/><file name="mysql4-upgrade-0.9.24-0.9.25.php" hash="266c119a6facd3915b43efe9aa60e6d7"/><file name="mysql4-upgrade-0.9.25-0.9.26.php" hash="30f73941ce05f5fb0064376d6ec1fb27"/><file name="mysql4-upgrade-0.9.26-0.9.27.php" hash="9d607f87c05367acc5108bc35267dbb2"/><file name="mysql4-upgrade-0.9.27-0.9.28.php" hash="e12b21bd4364a9c90037907c5e5faa39"/><file name="mysql4-upgrade-0.9.28-0.9.29.php" hash="d76c8dbd3ebbb686be493f70cd9afe82"/><file name="mysql4-upgrade-0.9.29-0.9.30.php" hash="e7635a8301589e9be0079af1ad7b01d7"/><file name="mysql4-upgrade-0.9.3-0.9.4.php" hash="1e56964c6ca31627ee5bc04dafe390bf"/><file name="mysql4-upgrade-0.9.30-0.9.31.php" hash="5351da3d29337b463cd12b9c6765ba02"/><file name="mysql4-upgrade-0.9.31-0.9.32.php" hash="4dfcaa3fee69eca37b5f25df6c43399d"/><file name="mysql4-upgrade-0.9.32-0.9.33.php" hash="6248da914bead9ed0fd5ef3ab9e412eb"/><file name="mysql4-upgrade-0.9.33-0.9.34.php" hash="2768ce258e815cb67a520837fe3a47a5"/><file name="mysql4-upgrade-0.9.34-0.9.35.php" hash="df2e4f1dc28d8353b7aa2421946dce1b"/><file name="mysql4-upgrade-0.9.35-0.9.36.php" hash="4a0d859ef0b4c69870b3eaeed4d445af"/><file name="mysql4-upgrade-0.9.36-0.9.37.php" hash="c62bdd2cf00b0952a7244a65db44bcd9"/><file name="mysql4-upgrade-0.9.37-0.9.38.php" hash="ec05f8b858c37c0dea93eb77380f6041"/><file name="mysql4-upgrade-0.9.38-0.9.39.php" hash="91ed75e00e054bf67caf681bb8f5e70f"/><file name="mysql4-upgrade-0.9.39-0.9.40.php" hash="9e5a3b0e1128f75e9147ab1317816e99"/><file name="mysql4-upgrade-0.9.4-0.9.5.php" hash="3714b986a17d6eb1e23b601c34dab1bc"/><file name="mysql4-upgrade-0.9.40-0.9.41.php" hash="220e2d412c77116c1e66ffb3a21781b8"/><file name="mysql4-upgrade-0.9.41-0.9.42.php" hash="266785c96f2c8749a5ddba6d4366c33b"/><file name="mysql4-upgrade-0.9.42-0.9.43.php" hash="cfd3b55f8b67762d24b9164f0d4722c4"/><file name="mysql4-upgrade-0.9.43-0.9.44.php" hash="b8fad415444e87770e31626f46738038"/><file name="mysql4-upgrade-0.9.44-0.9.45.php" hash="46215a5f44641500fc5758a49020be10"/><file name="mysql4-upgrade-0.9.45-0.9.46.php" hash="e62f6bb08a26192bfaf032eb0a6cf545"/><file name="mysql4-upgrade-0.9.46-0.9.47.php" hash="7c1674670c11bee0f2d4107a1261bdcd"/><file name="mysql4-upgrade-0.9.47-0.9.48.php" hash="3f738c494b2b70dfc622e9f6be041681"/><file name="mysql4-upgrade-0.9.48-0.9.49.php" hash="be3a23a307dd56909d2bc650ccc41664"/><file name="mysql4-upgrade-0.9.49-0.9.50.php" hash="21c27ed39e31746fba42aa894f7436c3"/><file name="mysql4-upgrade-0.9.5-0.9.6.php" hash="ec660fbb133e1e6bd51453255ebf4c9b"/><file name="mysql4-upgrade-0.9.50-0.9.51.php" hash="6a0363c0019604c3bea7cb0e3e24c217"/><file name="mysql4-upgrade-0.9.51-0.9.52.php" hash="9085d690dc27f1317fcf528e413acc40"/><file name="mysql4-upgrade-0.9.52-0.9.53.php" hash="3567bd3103389dd61fde91a6ca48ca79"/><file name="mysql4-upgrade-0.9.53-0.9.54.php" hash="3b96ee5e33b97a42023da26997b16197"/><file name="mysql4-upgrade-0.9.54-0.9.55.php" hash="03ff417b6fb863ece368dbb5f81d5d70"/><file name="mysql4-upgrade-0.9.55-0.9.56.php" hash="e7ca15be03ac7cfac0fcea4b0fa2985b"/><file name="mysql4-upgrade-0.9.6-0.9.7.php" hash="635341008791d12bd8e4bd215d534443"/><file name="mysql4-upgrade-0.9.7-0.9.8.php" hash="890cab701c586792fe8a12ce39ac1f19"/><file name="mysql4-upgrade-0.9.8-0.9.9.php" hash="4b41356735f8ff28b1742c57f5ed1a4a"/><file name="mysql4-upgrade-0.9.9-0.9.10.php" hash="dda8e2af0238f263a5c5f92a14ace840"/><file name="mysql4-upgrade-1.3.99-1.4.0.0.php" hash="77ac2194c56f7bb14383a34de91dbd80"/><file name="mysql4-upgrade-1.4.0.0-1.4.0.1.php" hash="06fe1dc0108327de8543edb5ffc593b7"/><file name="mysql4-upgrade-1.4.0.1-1.4.0.2.php" hash="a1847daa20b04fd39ff6dd0c9953c8af"/><file name="mysql4-upgrade-1.4.0.15-1.4.0.16.php" hash="54ba869b091e90c02c5d201e6f7c0212"/><file name="mysql4-upgrade-1.4.0.16-1.4.0.17.php" hash="9ad817104bcae36c8b1c00d238ae693d"/><file name="mysql4-upgrade-1.4.0.17-1.4.0.18.php" hash="36ffc177e07c0dd213cfdae9d15c8976"/><file name="mysql4-upgrade-1.4.0.18-1.4.0.19.php" hash="7b745587ba63b0be9aced262780b62b5"/><file name="mysql4-upgrade-1.4.0.19-1.4.0.20.php" hash="4d06c0487cfc63f4f9f9d74e34f19001"/><file name="mysql4-upgrade-1.4.0.2-1.4.0.3.php" hash="6e1948d6d323b3ced1bfc7f895f9dc50"/><file name="mysql4-upgrade-1.4.0.20-1.4.0.21.php" hash="72b34c101241c573b18259e380f9f305"/><file name="mysql4-upgrade-1.4.0.21-1.4.0.22.php" hash="adee3c1e3f99eea5ed69aeea869ae720"/><file name="mysql4-upgrade-1.4.0.22-1.4.0.23.php" hash="65065d54f7d632ca505d75125450bad2"/><file name="mysql4-upgrade-1.4.0.23-1.4.0.24.php" hash="029e72643fda31c50c91f59812600862"/><file name="mysql4-upgrade-1.4.0.24-1.4.0.25.php" hash="c48ea044fd5fb5e17d8641260f9aea4d"/><file name="mysql4-upgrade-1.4.0.3-1.4.0.4.php" hash="aadd6c47508e97c907100a9ee4efbb7e"/><file name="mysql4-upgrade-1.4.0.4-1.4.0.5.php" hash="aadc3e1578524b4397df7e1427d69d95"/><file name="mysql4-upgrade-1.4.0.5-1.4.0.6.php" hash="dfbb02e3ae02c8c7a274aa76d9a90d51"/><file name="mysql4-upgrade-1.4.0.6-1.4.0.7.php" hash="0376ceeb6feb2569159eaf4d47461fbc"/><file name="mysql4-upgrade-1.4.0.7-1.4.0.8.php" hash="be028c13c7e7e3cbeb386aa0fdc8c557"/><file name="mysql4-upgrade-1.4.0.8-1.4.0.15.php" hash="961b468624d47a60ea3689926548070b"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="064b60eff0c7933b32977f792f9a29af"/><file name="upgrade-1.6.0.0-1.6.0.1.php" hash="a18bd47beb2638bc79b7b8742cbfd23d"/><file name="upgrade-1.6.0.1-1.6.0.2.php" hash="b9a6a2cdcac55be8f0e03d93aacbf17b"/><file name="upgrade-1.6.0.2-1.6.0.3.php" hash="857f785ecad5f12ad1207c3b492a59b2"/><file name="upgrade-1.6.0.3-1.6.0.4.php" hash="d28e8838f5b0d7323a1d6a984be025b0"/><file name="upgrade-1.6.0.4-1.6.0.5.php" hash="58c7bc285503fcbb93f72247a68bfc87"/><file name="upgrade-1.6.0.5-1.6.0.6.php" hash="eef078b8e6e72a530c633bf79d7af9f5"/><file name="upgrade-1.6.0.6-1.6.0.7.php" hash="9d0d9dbedd6e9f0cc163d61fab6d1b69"/><file name="upgrade-1.6.0.7-1.6.0.8.php" hash="be511c47bb454fda5527d02abb3d355e"/><file name="upgrade-1.6.0.8-1.6.0.9.php" hash="8f1122686f0991af060492948e75229e"/></dir></dir></dir><dir name="SalesRule"><file name="Exception.php" hash="4e9ce8126c516cc05e2ff0cedbe0f20a"/><dir name="Helper"><file name="Coupon.php" hash="076fd16e4bb8955e9b7f939dd70d39cf"/><file name="Data.php" hash="2bdf9d077f4d81ab3e7c900fb5d26d12"/></dir><dir name="Model"><dir name="Coupon"><file name="Codegenerator.php" hash="c8224a37bd1f67dfd70b10327774c0e4"/><file name="CodegeneratorInterface.php" hash="7b15ebeac15c4e87750f68b6e7f21f73"/><file name="Massgenerator.php" hash="85d9dfa52bdfc367c8f9619411487a3d"/></dir><file name="Coupon.php" hash="4cebd26778be971cf1c1514659fa3fba"/><dir name="Mysql4"><dir name="Coupon"><file name="Collection.php" hash="b8b546f6cfc40d1bcc62ae3b98ba56ff"/><file name="Usage.php" hash="28c48eca68e75f5304af95789072c05f"/></dir><file name="Coupon.php" hash="4b078ee80e4e18dfe13b2170b48d9b5a"/><dir name="Report"><file name="Collection.php" hash="b82503dc59eab59ee9a90fd385ba8ad3"/><file name="Rule.php" hash="a07dccccde92de56744b19349c006923"/><dir name="Updatedat"><file name="Collection.php" hash="0673a299aaa19f9fdaa30b51105cf0ce"/></dir></dir><dir name="Rule"><file name="Collection.php" hash="e6a07bfacec4e6739e9a4c20c6685b97"/><dir name="Customer"><file name="Collection.php" hash="2cce404c75e97feea76ed62d400019b1"/></dir><file name="Customer.php" hash="7e2ac0895dad37b0252f2d282062dda4"/><dir name="Product"><file name="Collection.php" hash="fc60274d7949beb2a7d3d172566b3b34"/></dir><file name="Product.php" hash="cc80fd799f39597d876bffed7f9c63e6"/></dir><file name="Rule.php" hash="ec4535389b43e09c3681a372772a9bab"/></dir><file name="Observer.php" hash="6d67a640167d60ad8ade63bf9d61d61f"/><dir name="Quote"><file name="Discount.php" hash="889c7ca97fb7c91e0ff15faa64f817aa"/><file name="Freeshipping.php" hash="9d115f6bf202de539762894215a2c2ea"/><dir name="Nominal"><file name="Discount.php" hash="5ca26a7724b52f3f350ab22043f37ecb"/></dir></dir><dir name="Resource"><dir name="Coupon"><file name="Collection.php" hash="3f3d8eca7a1a0d7a369f8bdd7092f61f"/><file name="Usage.php" hash="c38c2afe3545ed5dff57122735a63565"/></dir><file name="Coupon.php" hash="76121843b67c6ea7ff0ae840683e6add"/><dir name="Report"><file name="Collection.php" hash="6a44c4b951efe14465ff9e1ed87a535d"/><dir name="Rule"><file name="Createdat.php" hash="ae5346dd9a6a2561cb6a4db0c4354ba4"/><file name="Updatedat.php" hash="80d77f02d1c28458c186c13f018f5a8f"/></dir><file name="Rule.php" hash="0205b014096925390bf07e8e0e1514b8"/><dir name="Updatedat"><file name="Collection.php" hash="938a4bd3820ccb3c0bfb2c20f835c53a"/></dir></dir><dir name="Rule"><file name="Collection.php" hash="cbc66e87a2aedb554b49fb99acd46c9d"/><dir name="Customer"><file name="Collection.php" hash="3cd2678e7b2c22765aa867dbcf8678dd"/></dir><file name="Customer.php" hash="aca20264aa59b767a382046391602fac"/><dir name="Product"><file name="Collection.php" hash="a966e01313b05dda88baaee3f32d5a37"/></dir><file name="Product.php" hash="70eb01ef2ff1153711848776dee5222c"/></dir><file name="Rule.php" hash="0c50c2960d17713b0bff7e2c7f5791c2"/></dir><dir name="Rule"><dir name="Action"><file name="Collection.php" hash="14dd3f26a1bee5f17ca0a75ac148427d"/><file name="Product.php" hash="615fca8aecf34bcb0b4a7c4aaab9c16d"/></dir><dir name="Condition"><file name="Address.php" hash="7d57dd2ce9f7d75d654f8ad28946a7ce"/><file name="Combine.php" hash="9ce394da38c750a3d120c493f02227f4"/><dir name="Product"><dir name="Attribute"><file name="Assigned.php" hash="9fd909dfa0a5713b84719b7d9c6ea2ae"/></dir><file name="Combine.php" hash="7e41ce564b3812f80e3463f15797ca63"/><file name="Found.php" hash="dcebfcc174f8a08a87ade98b6100eada"/><file name="Subselect.php" hash="8cc2f695a23a15d167e02635204e5805"/></dir><file name="Product.php" hash="213682586cbe5a9804c2b2e1ba8f9858"/></dir><file name="Customer.php" hash="02503e0189f06db45b1e0ad9623f7680"/><file name="Product.php" hash="7496c3d4f1e0f65659232162c03c4d06"/></dir><file name="Rule.php" hash="45be966f6cb8c52ab162c1243d4b8123"/><dir name="System"><dir name="Config"><dir name="Source"><dir name="Coupon"><file name="Format.php" hash="aab8bc179b0f879e9018bb4ea6c001d5"/></dir></dir></dir></dir><file name="Validator.php" hash="16645e0f50764faf9d4a801984cbe08d"/></dir><dir name="etc"><file name="adminhtml.xml" hash="3d731d199aa29013967a4c94df199800"/><file name="config.xml" hash="ee1d5d33d50227d739c96a706da2889a"/><file name="system.xml" hash="64919875d3da8f8293043eca7b2ce4ee"/></dir><dir name="sql"><dir name="salesrule_setup"><file name="install-1.6.0.0.php" hash="ef3da9f4e8acb17930893c977d34d6fd"/><file name="mysql4-install-0.7.0.php" hash="921d2d467926e0c13eb16dd7334e1714"/><file name="mysql4-install-1.4.0.0.0.php" hash="fcce54959c45dc58d17fe29dd42bf746"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="602b1c05470ccc732de48775df2aca1f"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="1aec3621f741a3415352319c44ee9391"/><file name="mysql4-upgrade-0.7.10-0.7.11.php" hash="172c35aa21c558d5520920d30aca7f24"/><file name="mysql4-upgrade-0.7.11-0.7.12.php" hash="57c383376a15ee04a6f21001e3c1ad90"/><file name="mysql4-upgrade-0.7.2-0.7.3.php" hash="39a55db2190f2535372cad2fad462402"/><file name="mysql4-upgrade-0.7.3-0.7.4.php" hash="0ca2bfede8d72e5c0a5a8b7e47f4b85f"/><file name="mysql4-upgrade-0.7.4-0.7.5.php" hash="01d99c8f79297bf54852166aa401f1e6"/><file name="mysql4-upgrade-0.7.5-0.7.6.php" hash="c45aeb3a84820efddcd1de502493a9ea"/><file name="mysql4-upgrade-0.7.6-0.7.7.php" hash="26a9138f7d291e945c59e3e1bc48c1ef"/><file name="mysql4-upgrade-0.7.7-0.7.8.php" hash="48352dc01f70b8c184e6677a5e776a80"/><file name="mysql4-upgrade-0.7.8-0.7.9.php" hash="e67d8f6a232817d4fab99b30471195c0"/><file name="mysql4-upgrade-0.7.9-0.7.10.php" hash="537402ce4301806c8be55a7bf376ff87"/><file name="mysql4-upgrade-1.4.0.0.0-1.4.0.0.1.php" hash="03840fca31a1928a99b08adfd7ad0976"/><file name="mysql4-upgrade-1.4.0.0.1-1.4.0.0.2.php" hash="a781ab1205e762153abbb5c60fb77ccb"/><file name="mysql4-upgrade-1.4.0.0.2-1.4.0.0.3.php" hash="ba7ea46031b11752fba84f6244f8aed3"/><file name="mysql4-upgrade-1.4.0.0.3-1.4.0.0.4.php" hash="7424333756913c7c02c1feafc0738c59"/><file name="mysql4-upgrade-1.4.0.0.4-1.4.0.0.5.php" hash="83ec6ae7e67f25b8073d5a356c730032"/><file name="mysql4-upgrade-1.4.0.0.5-1.4.0.0.6.php" hash="69290121e8067ac32bf79d16617273c3"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="50ca737624508b3318fade4851d1f99d"/><file name="upgrade-1.6.0.0-1.6.0.1.php" hash="9697fc94895bdd8b83bbc87661251963"/><file name="upgrade-1.6.0.1-1.6.0.2.php" hash="c9eb0dea1d0f89eee0f9c8386ba59e70"/><file name="upgrade-1.6.0.2-1.6.0.3.php" hash="8078a6356fca81229d3c09564a31dfa6"/></dir></dir></dir><dir name="Sendfriend"><dir name="Block"><file name="Send.php" hash="c434b505c781fda4ab54a44bfef0f363"/></dir><dir name="Helper"><file name="Data.php" hash="aa58040f89e873a52494cc84163f7b0a"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Sendfriend"><file name="Collection.php" hash="bcec0fd092d5bb47d97118030b574c1b"/></dir><file name="Sendfriend.php" hash="9b077a178f5cb29936332e449b206a90"/><file name="Setup.php" hash="265fa95c0e1934505dc0eaa021bad797"/></dir><file name="Observer.php" hash="0b3d5d71bf38a919b0ab7fefe67de9bd"/><dir name="Resource"><dir name="Sendfriend"><file name="Collection.php" hash="24f71b975d71cdc73e24417a8683b7ee"/></dir><file name="Sendfriend.php" hash="ee8e444138548e24f3650add38e20847"/><file name="Setup.php" hash="174c0cdd833448fe0737b73fd70f55b5"/></dir><file name="Sendfriend.php" hash="5de6284f9cdc19648296209a2f5d7190"/></dir><dir name="controllers"><file name="ProductController.php" hash="58d8e8660033fe5fa3a7e61c9984a9b2"/></dir><dir name="etc"><file name="config.xml" hash="ef5c6e640f4e7ab18df16a53bd0629c3"/><file name="system.xml" hash="57041fc5b58220a0cd050bc55c70631d"/></dir><dir name="sql"><dir name="sendfriend_setup"><file name="install-1.6.0.0.php" hash="43d65881ae4702ba24cc60b266144865"/><file name="mysql4-install-0.7.0.php" hash="6350ae8dc9c3f285eaeaf45e406c6b1c"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="c0814a6cbc54356121ec60bbab931889"/><file name="mysql4-upgrade-0.7.2-0.7.3.php" hash="c38e9d633fc193e475c355afabfa6b34"/><file name="mysql4-upgrade-0.7.3-0.7.4.php" hash="88af0150e5a4515e87947f1ddacfd927"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="e441c905520470f0b38ec23a2276416a"/><file name="mysql4-upgrade-1.6.0.0-1.6.0.1.php" hash="b744deb766c95fae2c6ccf1356a7f6fc"/></dir></dir></dir><dir name="Shipping"><dir name="Block"><dir name="Tracking"><file name="Ajax.php" hash="c5a1e6b590e05d731e8eef9624501c07"/><file name="Popup.php" hash="ea5e6055e4516698522332e096edde09"/></dir></dir><file name="Exception.php" hash="35143e238e766f5c7227ea766991de32"/><dir name="Helper"><file name="Data.php" hash="296032d034f6215955a082415204d33e"/></dir><dir name="Model"><dir name="Carrier"><file name="Abstract.php" hash="22c814e5584e75f59252df24c660a679"/><file name="Flatrate.php" hash="32af10507ddcd512656d0cab1dabbe8f"/><file name="Freeshipping.php" hash="9ae21e34b64d99c06cbea33af1636c58"/><file name="Interface.php" hash="8834c6a20c305611bfa9f54449b61ac7"/><file name="Pickup.php" hash="c2b55a625a3111ef8148d971c4037099"/><file name="Tablerate.php" hash="315766cec4a075d5060ea2bd8467a6eb"/></dir><file name="Config.php" hash="b2d41b1048749a80177b4c0f35a902a7"/><file name="Info.php" hash="5ef452697059312e316d011205d220de"/><dir name="Mysql4"><dir name="Carrier"><dir name="Tablerate"><file name="Collection.php" hash="b2947c163acd20e4186cf6de1327db3c"/></dir><file name="Tablerate.php" hash="0a9027c484b45aa2b2039e9102c207bf"/></dir></dir><dir name="Rate"><file name="Abstract.php" hash="a846366861445de8064ad961a063f455"/><file name="Request.php" hash="da53b2509c54cc9446e6944e441853a7"/><dir name="Result"><file name="Abstract.php" hash="c285a4e19c7d7deaf76648a8503ef357"/><file name="Error.php" hash="837d9bc34da0c3721f40fef8698613f6"/><file name="Method.php" hash="cc8a4e4f3ac3b51002c8ff72b195ceca"/></dir><file name="Result.php" hash="0ece73d8d4d0da4e5cdf6a7ecaf51de0"/></dir><dir name="Resource"><dir name="Carrier"><dir name="Tablerate"><file name="Collection.php" hash="8ab50521bd064d60a29ebd755490e522"/></dir><file name="Tablerate.php" hash="698b13767acab216353a8aaad8b3a27b"/></dir></dir><dir name="Shipment"><file name="Request.php" hash="c9fb828ca234d36b1161402fc449f70b"/><file name="Return.php" hash="67d08700e7215f5f39ed7c2d13717527"/></dir><file name="Shipping.php" hash="d7409cdf2e31beba185c7969e511543a"/><dir name="Source"><file name="HandlingAction.php" hash="dd48d76f60399c612e8162834293157e"/><file name="HandlingType.php" hash="7601bea631571182aec8e2eac9635bc6"/></dir><dir name="Tracking"><dir name="Result"><file name="Abstract.php" hash="d10fe8e3929b5f4d37fa7815bbd6cb33"/><file name="Error.php" hash="7e429bbf73f960c86ea98c39ac97bcb2"/><file name="Status.php" hash="097b6ccdcfef61790f074621a98d9df7"/></dir><file name="Result.php" hash="6ab087d47eb717cad17fda03bc712c3e"/></dir></dir><dir name="controllers"><file name="ShippingController.php" hash="cc5ab865a08b42a5d843ccbd4b0e5d70"/><file name="TrackingController.php" hash="db1a9965e8475e038fe8ef4b7b90f2c7"/></dir><dir name="etc"><file name="adminhtml.xml" hash="563e17ed4b244f4b005594e4e2e6b1db"/><file name="config.xml" hash="cf72271df9c7d3d4c3b5fd312ad13a5b"/><file name="system.xml" hash="9c9d5cbb5633744f3c7c6664ff05babe"/></dir><dir name="sql"><dir name="shipping_setup"><file name="install-1.6.0.0.php" hash="a338147f6f1aaf4a493898c5ebdb48d1"/><file name="mysql4-install-0.7.0.php" hash="3b35de934df04b9d397198109ce75771"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="ddbe84100c05437c3d7adcf6c3c4538b"/></dir></dir></dir><dir name="Sitemap"><dir name="Helper"><file name="Data.php" hash="6bf2e0bffe2507a5ab90a99f94de549b"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Catalog"><file name="Category.php" hash="3b3c1da8c0d2fd3dc22129593b360754"/><file name="Product.php" hash="67a0941366203e4657a2e25224067729"/></dir><dir name="Cms"><file name="Page.php" hash="c494cb8fab1bfec8fd17133511a184ae"/></dir><dir name="Sitemap"><file name="Collection.php" hash="51d5ca69a0bf7c7a3350f29025479b05"/></dir><file name="Sitemap.php" hash="b197605bff45bf1ae94cefc9d182c0e9"/></dir><file name="Observer.php" hash="19e6519062d6d06ad66831b30b7eaf86"/><dir name="Resource"><dir name="Catalog"><file name="Abstract.php" hash="0a50ee109df005dae5b37606fa7289aa"/><file name="Category.php" hash="7b6420762899f1a0cdaa8fc7fab0fa1a"/><file name="Product.php" hash="5e3eb5ba9ef747cf8dbd8355e91f7fad"/></dir><dir name="Cms"><file name="Page.php" hash="5b8ecd1bb5badfd408d1a65302ff68bb"/></dir><dir name="Sitemap"><file name="Collection.php" hash="5a92728a6851d4d54876becc785e7825"/></dir><file name="Sitemap.php" hash="5079efecbd47bcef141d0654f5169c1c"/></dir><file name="Sitemap.php" hash="44e59d049b5e1a4e263e74ef831d21fb"/></dir><dir name="etc"><file name="adminhtml.xml" hash="29e3669211e4ae919b59651711f278ca"/><file name="config.xml" hash="c92b7da47c8637b25149acaf873dec65"/><file name="system.xml" hash="2dfd284d2aa8ba4930a87e56f570287b"/></dir><dir name="sql"><dir name="sitemap_setup"><file name="install-1.6.0.0.php" hash="e3968f0b4ce2e8be3235b0584a063bc3"/><file name="mysql4-install-0.7.0.php" hash="81da61d8119b5bd005d0ebd0d8bbddf4"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="4f37efc4880b12ae9728a9e7d656d394"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="a140e5675116c2a5c19decc82945c959"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="7e3ed5e46f2cedad36ccdedf71f55e5e"/></dir></dir></dir><dir name="Tag"><dir name="Block"><file name="All.php" hash="5868297a4e88127a4bb9ca1ebed5f051"/><dir name="Customer"><file name="Edit.php" hash="258912c59d4ef9b2ff70ceeed0c04784"/><file name="Recent.php" hash="246c4f4a146e74da1b71729c7790f650"/><file name="Tags.php" hash="c6e67247b85824e129cf3ab9be98bacb"/><file name="View.php" hash="faa3f0ef1bfffd7ee1146d1687150364"/></dir><file name="Popular.php" hash="ed2e1e13560d1e5a46aa42c7857ad989"/><dir name="Product"><file name="List.php" hash="f6b954ac9d96b8b7c013517b0ecf3aa6"/><file name="Result.php" hash="2b8a66d8d9764abd707a94e25b10901a"/></dir></dir><dir name="Helper"><file name="Data.php" hash="6d824384b0a0df4ff33d2924f4d71e4d"/></dir><dir name="Model"><dir name="Api"><file name="V2.php" hash="cba9328c2322e37faeabcdeebd250079"/></dir><file name="Api.php" hash="1c6601f744d27c86454fbe6e1a958d92"/><dir name="Entity"><dir name="Customer"><file name="Collection.php" hash="3920e0f353d3a60ec2d24bc5d8571432"/></dir></dir><dir name="Indexer"><file name="Summary.php" hash="d473f8924e47bffff6b7e9869929b23d"/></dir><dir name="Mysql4"><dir name="Customer"><file name="Collection.php" hash="9c19636f6295507833217724043fe081"/></dir><dir name="Indexer"><file name="Summary.php" hash="47d61d186011e402e542a6a3419bb2b2"/></dir><dir name="Popular"><file name="Collection.php" hash="ea10d8f4f6061681d38990bdba934d64"/></dir><dir name="Product"><file name="Collection.php" hash="b6b622f9be67ea9d8859264f1ea9294a"/></dir><dir name="Tag"><file name="Collection.php" hash="2b207742defcf9cf5c4b3292ed8df272"/><file name="Relation.php" hash="47a7cd136e3d7d027ab53796da9ff7b9"/></dir><file name="Tag.php" hash="c9ba40a21577912877ab199a000f304f"/></dir><dir name="Resource"><dir name="Customer"><file name="Collection.php" hash="5010a57b9a4e8bf17f7b5923e0a9093a"/></dir><dir name="Indexer"><file name="Summary.php" hash="d0db0c94263cfff4b6ec4fcd93adaec2"/></dir><dir name="Popular"><file name="Collection.php" hash="0364f1f31a80002d86f35fb14a6cdec7"/></dir><dir name="Product"><file name="Collection.php" hash="9edba493f4930ab9609b4691be8034c1"/></dir><dir name="Tag"><file name="Collection.php" hash="934a0e6bd72d71428e0f194d9378454a"/><file name="Relation.php" hash="a90fe31d40b3868fe645875a1678eb6e"/></dir><file name="Tag.php" hash="a90b12859d75f1df33cb272416fcb4f2"/></dir><file name="Session.php" hash="887fe96718898876b4a578ada3d6383f"/><dir name="Tag"><file name="Relation.php" hash="4b89602602795ef3c676f8224ca1f67b"/></dir><file name="Tag.php" hash="16a05f65e9436a81c94e86e7b139d320"/></dir><dir name="controllers"><file name="CustomerController.php" hash="907597af877a272d98b41b98ee5734fb"/><file name="IndexController.php" hash="e0c8d1c26b7c31575b89b64cdb359493"/><file name="ListController.php" hash="0226fbf3b3859928a743750b76032438"/><file name="ProductController.php" hash="b358d421a65aaa04fd765e5eb9a6c329"/></dir><dir name="etc"><file name="adminhtml.xml" hash="c156d6c981708ce6343c545676a566ba"/><file name="api.xml" hash="cadb3e216a39b6c3a602edf4417876f7"/><file name="config.xml" hash="034241040fff18a71676cae97d9d4115"/><file name="wsdl.xml" hash="e87343a710e0068dcc555ffc4b302a9b"/><file name="wsi.xml" hash="1d31787826a686590acf89ec2703b76e"/></dir><dir name="sql"><dir name="tag_setup"><file name="install-1.6.0.0.php" hash="c2808c718e9bdc908d28261c9ee76f9d"/><file name="mysql4-install-0.7.0.php" hash="fd4ebd48a951f70fd32f851bdbdeb1e5"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="4fbdf351be48eea3acb1ad470fa65a99"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="4a0f89a08120b9e700c71b7199ec741c"/><file name="mysql4-upgrade-0.7.2-0.7.3.php" hash="005cffca4b5b4053e130daa6eefe8a21"/><file name="mysql4-upgrade-0.7.3-0.7.4.php" hash="e84392accba5a720747d9fd03a37f7e2"/><file name="mysql4-upgrade-0.7.4-0.7.5.php" hash="3384bc150777de038c48cd21fc372a29"/><file name="mysql4-upgrade-0.7.5-0.7.6.php" hash="dd94e312998fbf44bafb7880bacd0d49"/><file name="mysql4-upgrade-0.7.6-0.7.7.php" hash="1927c716b1a865eb6234cec1ed65ea94"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="1893d8e7ec128b9fa59a46faafd09729"/></dir></dir></dir><dir name="Tax"><dir name="Block"><dir name="Adminhtml"><dir name="Frontend"><dir name="Region"><file name="Updater.php" hash="eae742c088fd0e5b8b6ec655e942e67a"/></dir></dir><file name="Notifications.php" hash="f5d2958cccdf0e1ca75eed8022438632"/></dir><dir name="Checkout"><file name="Discount.php" hash="ab6c338885260bdc52b8cd2513786ed4"/><file name="Grandtotal.php" hash="305ad755a3ea293f2b7f4fe217d03ca6"/><file name="Shipping.php" hash="868f6ebc4627984359f1d243b3398c6b"/><file name="Subtotal.php" hash="ca0c91a818c57b317a948a6d2ea2236e"/><file name="Tax.php" hash="349db923d8eb0e6eb3693f64030324c7"/></dir><dir name="Sales"><dir name="Order"><file name="Tax.php" hash="0b517168e0b884108d824dd19c3b2f58"/></dir></dir></dir><file name="Exception.php" hash="134817f848225bfc88be851553dafba6"/><dir name="Helper"><file name="Data.php" hash="9a04b7305f7b9dfbc3362a70f022b317"/></dir><dir name="Model"><dir name="Calculation"><dir name="Rate"><file name="Title.php" hash="cbe6e35f9febbca8ffb9629827a68b73"/></dir><file name="Rate.php" hash="0fbab9716f22a83de77c0ca0c94aeb40"/><file name="Rule.php" hash="7eb4f5f529562d80e5fd99b4c47d5cb3"/></dir><file name="Calculation.php" hash="c765c9e1fe7ea167e1e53349a9e18a33"/><dir name="Class"><dir name="Source"><file name="Customer.php" hash="f6d06efe47e7c5685959e956a2a6dea5"/><file name="Product.php" hash="c0e88ffb2aeb60a496ba466c1cedfd8e"/></dir></dir><file name="Class.php" hash="f14fae96db3b13b77d2ed485f73cfa9d"/><dir name="Config"><file name="Notification.php" hash="4f21ea9d9c67ca63f39c72771b088e40"/><dir name="Price"><file name="Include.php" hash="bad0b10bf559e7bbb3e715b3c5eb0d11"/></dir></dir><file name="Config.php" hash="b731a3ff3197d4faeb79286a4d5f52a7"/><dir name="Mysql4"><dir name="Calculation"><file name="Collection.php" hash="a9b28eff948b411a9a70e5f1e9245f20"/><dir name="Rate"><file name="Collection.php" hash="57ce00827e2914026ff258fda5f3c731"/><dir name="Title"><file name="Collection.php" hash="6be6eabadf9ad24b4e47769158d13ede"/></dir><file name="Title.php" hash="921e2513afbfc66b2fbc10498f5fe397"/></dir><file name="Rate.php" hash="2bdb808f9eca4c199b3ee26bf200015b"/><dir name="Rule"><file name="Collection.php" hash="67300fb90e8f5773666d6cb6a432ef1f"/></dir><file name="Rule.php" hash="830b09ef81c38eccd2b5ac6bacac4ade"/></dir><file name="Calculation.php" hash="f275709492086311b846aaf2ee442b54"/><dir name="Class"><file name="Collection.php" hash="09e5e413d73f207202239eac8915005b"/></dir><file name="Class.php" hash="ec615ab1523b103ffcb2f621467cfb12"/><dir name="Report"><file name="Collection.php" hash="f22a869db862de20e3e8c485b647c933"/><file name="Tax.php" hash="a4ac98f09c37a2ae4330db5d1f3ce7ef"/><dir name="Updatedat"><file name="Collection.php" hash="71b0d744219c130601545e6cc2448f25"/></dir></dir><dir name="Sales"><dir name="Order"><dir name="Tax"><file name="Collection.php" hash="4297ca6f020cc2e3edc4fabbb6b5bd1d"/></dir><file name="Tax.php" hash="a6c454efc6cf663ca14785ed339ff465"/></dir></dir><file name="Setup.php" hash="1538915edef549c61d74f1306d8dd232"/></dir><file name="Observer.php" hash="571696862a48d431b8d4e4adb7501714"/><dir name="Resource"><dir name="Calculation"><file name="Collection.php" hash="8fd71d2be5abbc50bfc23b043bf27100"/><dir name="Rate"><file name="Collection.php" hash="232d6cbb5b9ea727c9f2c22b89bdd4c0"/><dir name="Title"><file name="Collection.php" hash="81d4993f07b85ffcbca0331974aeeee3"/></dir><file name="Title.php" hash="350855d6219dc7c02753ca9be5fb9b59"/></dir><file name="Rate.php" hash="1c9a4255898b508393364396dbdce096"/><dir name="Rule"><file name="Collection.php" hash="b6fd0f7c8c36cc10c605a8b2726b33b1"/></dir><file name="Rule.php" hash="4c81eb1f8bc2c0251e4876f32ea1e6ba"/></dir><file name="Calculation.php" hash="4a73463dcf5237633e361800eacdd09e"/><dir name="Class"><file name="Collection.php" hash="13073a929e7c02c87753acc6d0bd38fc"/></dir><file name="Class.php" hash="4502445de0970861f4b87042cd30aeb6"/><dir name="Report"><file name="Collection.php" hash="fd18217a781af914988f81eec1660662"/><dir name="Tax"><file name="Createdat.php" hash="ef65059e92035ebf976b937c1fec0b91"/><file name="Updatedat.php" hash="3b9dabbd4d9ef21bd2d2a520549b6964"/></dir><file name="Tax.php" hash="7b158c0744d9f0badaa63b10271811c1"/><dir name="Updatedat"><file name="Collection.php" hash="8632c08217b29740d214ad1e37c7064a"/></dir></dir><dir name="Sales"><dir name="Order"><dir name="Tax"><file name="Collection.php" hash="55c5363e2074c9af59f044765553c51a"/><dir name="Item"><file name="Collection.php" hash="f41bbd5588c871de548716219798dd73"/></dir><file name="Item.php" hash="e1d727a298e4295e605a6a9486d04d9b"/></dir><file name="Tax.php" hash="6250a0bfb54b43010137d7725bcd1088"/></dir></dir><file name="Setup.php" hash="2c29db94902284cd174e19a2ce14f9b2"/></dir><dir name="Sales"><dir name="Order"><dir name="Tax"><file name="Item.php" hash="f336fd2059e5761bc6f2a5bfeca11978"/></dir><file name="Tax.php" hash="4717bd548a8a5e2fdc7121a470f8b4d8"/></dir><dir name="Pdf"><file name="Grandtotal.php" hash="78a9facf89b73f40d677721a7a5fffdf"/><file name="Shipping.php" hash="2de97a1a33ec131e74df18b328017e64"/><file name="Subtotal.php" hash="29c6e113f41814271d69673ecc8dd649"/><file name="Tax.php" hash="d6fa76691b87d52a36723b15f976acf9"/></dir><dir name="Total"><dir name="Quote"><file name="Discount.php" hash="3a4297a2c36d17e5e8e7db701e53144e"/><dir name="Nominal"><file name="Subtotal.php" hash="3a9f825f68d8445d2b632cae70b83dbc"/><file name="Tax.php" hash="2301b2eafae1780330deff59cf3032fd"/></dir><file name="Shipping.php" hash="2ee60af500b52acc5bae799593c26841"/><file name="Subtotal.php" hash="2eea1fa38f7b253f4431aa424daefe25"/><file name="Tax.php" hash="d658f47c72675e6908b9f8c9d25a791a"/></dir></dir></dir><dir name="System"><dir name="Config"><dir name="Source"><file name="Algorithm.php" hash="e8d0092465380aeaa9a89e8c3804e21f"/><file name="Apply.php" hash="8d06d8938dfd4960d10f4278b842b294"/><file name="PriceType.php" hash="a4a573c741e05bec3b04de7c5cae0e0c"/><dir name="Tax"><file name="Country.php" hash="850f8683eef4258523323d565bb8b43a"/><dir name="Display"><file name="Type.php" hash="fab5dca34c90f0c7a0bba273bd2cd319"/></dir><file name="Region.php" hash="2443ba70dc76ecf71af26c94c33d1b04"/></dir></dir></dir></dir></dir><dir name="data"><dir name="tax_setup"><file name="data-install-1.6.0.0.php" hash="73cd3a6c8f182f686f2fb61824b6ffd7"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="3d99f2ea678fdd83f0f9f5c115a971a0"/><file name="config.xml" hash="83bef9b0e62f56240968ef1970425ff3"/><file name="system.xml" hash="7220c5958c58856ece69bb3d6458c0e6"/></dir><dir name="sql"><dir name="tax_setup"><file name="install-1.6.0.0.php" hash="4c14e324b02ceb79258ccbd98e474389"/><file name="mysql4-install-0.7.0.php" hash="5571445e2b9e43bb63658b3c8801e5a9"/><file name="mysql4-install-1.4.0.0.php" hash="f3c2df0be2d8e7d9dc9815a4ddf2318d"/><file name="mysql4-upgrade-0.6.1-0.7.0.php" hash="7068af799ffa77608f336152e1b66187"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="be1ca656fff19428909b3335c7673580"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="c7b8f3aa6abc242c671fa7e3a7052f3b"/><file name="mysql4-upgrade-0.7.10-0.7.11.php" hash="2ef9e7c6f005ef5f9153423d16a88f96"/><file name="mysql4-upgrade-0.7.11-0.7.12.php" hash="f470a41fbd7b5af3747f381db54aac40"/><file name="mysql4-upgrade-0.7.12-0.7.13.php" hash="2e63c1b0b9226c21a4c313ada8ddb06d"/><file name="mysql4-upgrade-0.7.2-0.7.3.php" hash="b57330d4ee03ad16d075ca7e84185682"/><file name="mysql4-upgrade-0.7.3-0.7.4.php" hash="9aad92fcfba9178f923eb977b2b7d8bf"/><file name="mysql4-upgrade-0.7.4-0.7.5.php" hash="8ba0f98f056b1b527ea48ec7fc95ed7a"/><file name="mysql4-upgrade-0.7.5-0.7.6.php" hash="672255066405d197b12896d83c8d9b78"/><file name="mysql4-upgrade-0.7.6-0.7.7.php" hash="b3a91bda34376d031f1f70825256674e"/><file name="mysql4-upgrade-0.7.7-0.7.8.php" hash="c06869f49954a9fdf9a4e058b2955019"/><file name="mysql4-upgrade-0.7.8-0.7.9.php" hash="184f1afe963a5a49c6af3b69df2e39bc"/><file name="mysql4-upgrade-0.7.9-0.7.10.php" hash="5a8c1f51dbe5b4fd4789dc36a74bf1e4"/><file name="mysql4-upgrade-1.3.9-1.4.0.php" hash="30c7713f0e1e098c44f3d20fcd2dc0d9"/><file name="mysql4-upgrade-1.4.0.0-1.4.0.1.php" hash="4665a694d158f1c9f1b0a9b8ada53c6f"/><file name="mysql4-upgrade-1.4.0.1-1.4.0.2.php" hash="e047de6af7a34d3e486f4b5ccd752f2c"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="210748a7fde45c907a388cc38fcfd429"/><file name="upgrade-1.6.0.0-1.6.0.1.php" hash="f8f34e33effab8b964e9f27d5f8fab92"/><file name="upgrade-1.6.0.1-1.6.0.2.php" hash="8bb7f207b0d724b20598bfa053051439"/><file name="upgrade-1.6.0.2-1.6.0.3.php" hash="08d57d78afe883166f29c87441eca701"/><file name="upgrade-1.6.0.3-1.6.0.4.php" hash="6f5d36e28af9da0fcc659c33fb1a4c40"/></dir></dir></dir><dir name="Usa"><dir name="Block"><dir name="Adminhtml"><dir name="Dhl"><file name="Unitofmeasure.php" hash="aa6d70fd5c2fb7fdb83aa476ab3a334d"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="ce1c2a972ce6ea88f6016c6921aa2668"/></dir><dir name="Model"><dir name="Shipping"><dir name="Carrier"><dir name="Abstract"><dir name="Source"><file name="Mode.php" hash="c4b7333d787083278d14dd5a6b57598a"/><file name="Requesttype.php" hash="2231301ef94bc0c85d79831e47f38362"/></dir></dir><file name="Abstract.php" hash="475e8dcdfb6bc5c050b14682884de1a0"/><dir name="Dhl"><file name="Abstract.php" hash="a33e2e899d52d1f37cf6a731a58889c8"/><dir name="International"><dir name="Source"><file name="Contenttype.php" hash="b4db2fda105ce4200c6021c7bcbc3d1f"/><dir name="Method"><file name="Abstract.php" hash="dec66cd92cdc58bb28a3f4e8417449da"/><file name="Doc.php" hash="a9b7aad608a6c3c963d170937da2d39d"/><file name="Freedoc.php" hash="2e46f7c2cbff611fbf89a0a6068bfb64"/><file name="Freenondoc.php" hash="36e5c8cc9940c627cc9fec162ca36d37"/><file name="Nondoc.php" hash="76b0b629ed4a8cb9dcea909c99ffe305"/><file name="Size.php" hash="194cdfe6d8e4aa40804a05887c0ba461"/><file name="Unitofmeasure.php" hash="6e171bf090ff7423207099c4df65782f"/></dir></dir></dir><file name="International.php" hash="033b849caad3f97d08febd44ad399700"/><dir name="Label"><dir name="Pdf"><file name="Page.php" hash="99c2322ff56b8891c8e18bbece736677"/><file name="PageBuilder.php" hash="8407592238dc66f9f74547602ebdbfb0"/></dir><file name="Pdf.php" hash="046eba823e0bd8ed3ad8ee0bbdc0cdd7"/></dir><dir name="Source"><file name="Dutypaymenttype.php" hash="65b9a133d8b23d521903c1ca38cbba6d"/><file name="Freemethod.php" hash="60f5169fc5a3d60bbccd10fa7d674463"/><file name="Method.php" hash="91249bbb0a60708a7b6c1e2e919643ad"/><dir name="Protection"><file name="Rounding.php" hash="494a0ef4bd57ae523578df64dd60720f"/><file name="Value.php" hash="d1298eb253fd835f3f854a353db2f25f"/></dir><file name="Shipmenttype.php" hash="41a9dc1755d603b1fe2ac420eaac67e1"/></dir></dir><file name="Dhl.php" hash="39a649ca0abb94f6faecc7d25bb60d33"/><dir name="Fedex"><dir name="Source"><file name="Dropoff.php" hash="1ad1f1d123bef11d3eba5e4227ee6337"/><file name="Freemethod.php" hash="a3553e0f71095f8e04cabe0c67b97172"/><file name="Method.php" hash="0fe8a73c64ae7eaf99826998c712c844"/><file name="Packaging.php" hash="f38f31e935180278934d4ed6010a3475"/><file name="Unitofmeasure.php" hash="5f96db4caf4086665c91b450c51e9783"/></dir></dir><file name="Fedex.php" hash="da3c5444be0eea0bf2a2f12599c2df6e"/><dir name="Ups"><dir name="Source"><file name="Container.php" hash="2f0b789d516fc028c3c1a2474e238bc8"/><file name="DestType.php" hash="8464331937887875496d14cb570ce9f2"/><file name="Freemethod.php" hash="144eab21d02ddc5aaa560edeb0e519fa"/><file name="Method.php" hash="65ca936d439cc03198d0523cbf3be5a8"/><file name="Mode.php" hash="1805aee8fbdff130f3bdfb3c46feaa21"/><file name="OriginShipment.php" hash="7adfc5192d9f5205a0554990510744e9"/><file name="Pickup.php" hash="6ba1bcb3fde3ddb56b1e1842ed3f54da"/><file name="Type.php" hash="0bd501f64815ed42deba122a48e30a8d"/><file name="Unitofmeasure.php" hash="451ad9bda2daa0b7cc0291e6f49c5ee6"/></dir></dir><file name="Ups.php" hash="f12d189d938af40ed795c776ff119c98"/><dir name="Usps"><dir name="Source"><file name="Container.php" hash="cc193d35a2c48ebdfc607f2a6aa22fea"/><file name="Freemethod.php" hash="8d55016301502a5e90a20ed0be3bcd0a"/><file name="Machinable.php" hash="ea50b2832ff3d7557eeaf1d5558900aa"/><file name="Method.php" hash="c798b9f38f95eb82476fbf3a7e2c4161"/><file name="Size.php" hash="adf168c941988427f20eff4d614b6500"/></dir></dir><file name="Usps.php" hash="75c6446fda616022a929da5183bcf930"/></dir></dir></dir><dir name="etc"><file name="config.xml" hash="c41c02c264559f4178ae53eaab88f968"/><dir name="dhl"><dir name="international"><file name="countries.xml" hash="6dcdf8dfc8d3e0e87655f602bd485e92"/></dir></dir><file name="system.xml" hash="0ec2e27fb22e21659ed49714b5fcedbb"/><dir name="wsdl"><dir name="FedEx"><file name="RateService_v10.wsdl" hash="352ed0cd739b31d42d206aba31bf4c31"/><file name="RateService_v9.wsdl" hash="5e698519a3b3ae3dcea2105545053763"/><file name="ShipService_v10.wsdl" hash="4e661e70491a1af695c27878610054e2"/><file name="ShipService_v9.wsdl" hash="9c3779aa87540dcae41b43b16b724df6"/><file name="TrackService_v5.wsdl" hash="89cc7077a8fc439446e70bac0ca0f0c1"/></dir></dir></dir><dir name="sql"><dir name="usa_setup"><file name="install-1.6.0.0.php" hash="68ec9644080ba8163104e983fdbcb9bb"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="83250a3964db7956e84f62eddb3be1ac"/><file name="upgrade-1.6.0.0-1.6.0.1.php" hash="ebee347b03130506141a635c34847aa9"/><file name="upgrade-1.6.0.1-1.6.0.2.php" hash="45b2c1803f13a7c18b4a812b797c4603"/><file name="upgrade-1.6.0.2-1.6.0.3.php" hash="1553fcefb1914c86a831894128126a35"/></dir></dir></dir><dir name="Weee"><dir name="Block"><dir name="Element"><dir name="Weee"><file name="Tax.php" hash="23f63c80fff28f6a432086a899da263e"/></dir></dir><dir name="Renderer"><dir name="Weee"><file name="Tax.php" hash="057294cd195b3fb4ca5c1737cc7b0eaf"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="9cb6e70dbddb395a5c8ef5a58401b9bf"/></dir><dir name="Model"><dir name="Attribute"><dir name="Backend"><dir name="Weee"><file name="Tax.php" hash="3c3579878bb1df64f30e91934d54e7eb"/></dir></dir></dir><dir name="Config"><dir name="Source"><file name="Display.php" hash="57693773a99739bb0d20bfe03c77de23"/><dir name="Fpt"><file name="Tax.php" hash="1e8024ae0da70cbc9a9872c2a6a0ac83"/></dir></dir></dir><dir name="Mysql4"><dir name="Attribute"><dir name="Backend"><dir name="Weee"><file name="Tax.php" hash="328e308a784c9cebc94f31035db8e250"/></dir></dir></dir><file name="Setup.php" hash="2cf0f2771b2f1867ef03f421e5340f82"/><file name="Tax.php" hash="18ee47054f3ec738b8c28aec79dfdb7e"/></dir><file name="Observer.php" hash="2931a779d0cf79d91b811a180328273c"/><dir name="Resource"><dir name="Attribute"><dir name="Backend"><dir name="Weee"><file name="Tax.php" hash="8e7788f1ae65b900a08796ce191494da"/></dir></dir></dir><file name="Setup.php" hash="9271d672996dcb9d13e712d7dbe4f2c9"/><file name="Tax.php" hash="27762b8450a0d9804ceaa4c9082712e1"/></dir><file name="Tax.php" hash="c48fa3fc37b885bad8d9404f9a3c769c"/><dir name="Total"><dir name="Creditmemo"><file name="Weee.php" hash="019940c068e8893f5790e20cbd329998"/></dir><dir name="Invoice"><file name="Weee.php" hash="4c13fc79c012c2d94cb1bb602c7362c3"/></dir><dir name="Quote"><dir name="Nominal"><file name="Weee.php" hash="94f2ae2dd989fc2717b998c71861e3d1"/></dir><file name="Weee.php" hash="1eedda120ad286228975e2857184b362"/></dir></dir></dir><dir name="etc"><file name="config.xml" hash="fd17dbd55bb0f290feb984e82482ecb1"/><file name="system.xml" hash="ef40deebb9016cde8ee08a7cdbda1711"/></dir><dir name="sql"><dir name="weee_setup"><file name="install-1.6.0.0.php" hash="bfc75c8a7df559a92ffcd186bf53c0f3"/><file name="mysql4-install-0.1.php" hash="f7423f7460bbfab30e71b47e344fa159"/><file name="mysql4-upgrade-0.1-0.2.php" hash="6d72ffda83cad4435f67ec8284a6fdfd"/><file name="mysql4-upgrade-0.10-0.11.php" hash="d8db1bff60b64f0b876a7d9319760e19"/><file name="mysql4-upgrade-0.11-0.12.php" hash="6da6743057f0a4e32ed3e0ee97839327"/><file name="mysql4-upgrade-0.12-0.13.php" hash="153d446b9255e40f77023eb9088380a2"/><file name="mysql4-upgrade-0.2-0.3.php" hash="7af0c55abea7af5834c9935ead8200e6"/><file name="mysql4-upgrade-0.3-0.4.php" hash="e80aa5b416399a3f03cccc3427d972b0"/><file name="mysql4-upgrade-0.4-0.5.php" hash="eec167a7d45e7c2a1e04f833ad866f77"/><file name="mysql4-upgrade-0.5-0.6.php" hash="02e67f9269d46661d65f232dd0a70e1c"/><file name="mysql4-upgrade-0.6-0.7.php" hash="1c86934423bdcd22d3cbcb1f3b85e8c3"/><file name="mysql4-upgrade-0.7-0.8.php" hash="0a5439668ecc660e34d8e7dd1401ab1d"/><file name="mysql4-upgrade-0.8-0.9.php" hash="235184f61ff872e6e71cd0a2d5bc1458"/><file name="mysql4-upgrade-0.9-0.10.php" hash="2a30b3e6471ddbf3ea70e1c95c319ed3"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="a60aeb96c1364daec6eb6b9ba1ff6e5d"/></dir></dir></dir><dir name="Widget"><dir name="Block"><dir name="Adminhtml"><dir name="Widget"><file name="Chooser.php" hash="0a0aac34f5fbe815255b1ee03ee6c76f"/><file name="Form.php" hash="46164d4a81302a95c797e5edcc4c63ac"/><dir name="Instance"><dir name="Edit"><dir name="Chooser"><file name="Block.php" hash="7058735394083dc96501013f1a8a387f"/><file name="Layout.php" hash="69b066a40ef32cc5ece935a4e7a19c16"/><file name="Template.php" hash="da707b616f69140402370331988d15a3"/></dir><file name="Form.php" hash="255ede0a28ae87b550ba4bb8e52b059b"/><dir name="Tab"><dir name="Main"><file name="Layout.php" hash="8593998ae0f15b42846bc68118f92baf"/></dir><file name="Main.php" hash="1dc0071fb877469c507bc72ca3c86b1c"/><file name="Properties.php" hash="48f89f3721a40bf109b938b84c99a5ef"/><file name="Settings.php" hash="308cd2ebd3fd985326fb10d75b674ace"/></dir><file name="Tabs.php" hash="cdb09602bebd1f90f5adb6b7f15c7cf9"/></dir><file name="Edit.php" hash="8b5136b252c2dc7e3c1115c052c87690"/><file name="Grid.php" hash="8a97ecbf9e4628936b4c6a4618a9a79a"/></dir><file name="Instance.php" hash="f28ea283c912e71d31500417d3f8f342"/><file name="Options.php" hash="ef5736010cb81ea203357df31983c0ee"/></dir><file name="Widget.php" hash="95042144450d0c43e3b0708e4429ebc3"/></dir><file name="Interface.php" hash="c21020fb6a0314bfe39dfa29c4ffd825"/></dir><dir name="Helper"><file name="Data.php" hash="9c2486b93790b9ba648ed489620809a9"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Widget"><dir name="Instance"><file name="Collection.php" hash="8b053745adbecece87ccc95979e3eb9c"/></dir><file name="Instance.php" hash="c70faec36fec06928b04bc744eb0f2ee"/></dir><file name="Widget.php" hash="14998c148be50a45f837d0f680368f48"/></dir><file name="Observer.php" hash="bb16c366d45cb6c2cb3bee081ef1296e"/><dir name="Resource"><dir name="Widget"><dir name="Instance"><file name="Collection.php" hash="3a9a90430907aafb90aba1016653d23e"/></dir><file name="Instance.php" hash="4cc2fe32326424f0dfef1ba12edc2308"/></dir><file name="Widget.php" hash="c20c80932a5fbaa85bb838fbe5041a51"/></dir><dir name="Template"><file name="Filter.php" hash="9ca63f12391cd1c82ce6d125b31879c2"/></dir><dir name="Widget"><file name="Config.php" hash="5413241c93b7b626327fdc53c99ad525"/><file name="Instance.php" hash="8ab973cbe1aa067b14d212060c7d5cc0"/></dir><file name="Widget.php" hash="5fd6abc24e19e948d39ac13c52725d1a"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Widget"><file name="InstanceController.php" hash="819bb4f59821d89cbffdefb00e4432b1"/></dir><file name="WidgetController.php" hash="fa6ddf084f22912a786f000791ee3332"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="e635ea0bd54262e557e4e9eb994cda1f"/><file name="config.xml" hash="9d0b798ca36be2ef2cecf68b0b9e9a9b"/><file name="jstranslator.xml" hash="46eca3103cb2e0d6504dbdd0d4b6337f"/></dir><dir name="sql"><dir name="widget_setup"><file name="install-1.6.0.0.php" hash="fe05bdd574a78eaba1106c4c6d103166"/><file name="mysql4-install-1.4.0.0.0.php" hash="131a7eeb07cc4031c3b36fe7bfa06176"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="e6c5010f5267ac8b0c8088ba1bce060e"/></dir></dir></dir><dir name="Wishlist"><dir name="Block"><file name="Abstract.php" hash="7352820e2c6073e09636692a438f95a1"/><dir name="Customer"><file name="Sharing.php" hash="1649e1df9947f7a3b6720a7422eaae52"/><file name="Sidebar.php" hash="4e44d260e041cf0f91505455791107a4"/><dir name="Wishlist"><file name="Button.php" hash="872261e1192ccb98663bafd0afda0d5c"/><dir name="Item"><dir name="Column"><file name="Cart.php" hash="3a9314f56505c0db28bcf6247076d925"/><file name="Comment.php" hash="aa485bc5ef3c26763a8691b089693cc8"/><file name="Image.php" hash="363930a4118e81f62b55c616ec81b01c"/><file name="Remove.php" hash="3d1b02be1da916315ae4bee80b8cce2a"/></dir><file name="Column.php" hash="523f1545fdaa40746266fbc314b9694d"/><file name="Options.php" hash="a3b85a30f102fd44fc01f43d97a6addd"/></dir><file name="Items.php" hash="d8ad764345d6993370ce69e9d5c1fa24"/></dir><file name="Wishlist.php" hash="8ef6eeee9f331eae1b37290159b00704"/></dir><dir name="Item"><file name="Configure.php" hash="df540c6d631dad1df585477a6094efa2"/></dir><file name="Links.php" hash="7388c5aa2f11b17f7e1acbf1e3154fee"/><dir name="Render"><dir name="Item"><file name="Price.php" hash="c7897ddc67cdeb3270e6bc120034e601"/></dir></dir><dir name="Share"><dir name="Email"><file name="Items.php" hash="2c5e179ebbb18e061eb574a21a9729e1"/><file name="Rss.php" hash="69dcb685b4ebdc1c409832c31a70d5c1"/></dir><file name="Wishlist.php" hash="36ddc5b0d9d66e24c1557a4f953ae412"/></dir></dir><dir name="Controller"><file name="Abstract.php" hash="03947a26493474f68a78ac21f32b9342"/></dir><dir name="Helper"><file name="Data.php" hash="e4a2e0b548d19de3575b0c120fcc3f03"/></dir><dir name="Model"><dir name="Config"><dir name="Source"><file name="Summary.php" hash="fddf0fcbe285076f626f06ab9b8b43de"/></dir></dir><file name="Config.php" hash="646e0e9adf588f9d0bc3f9ed1aa38fb4"/><dir name="Item"><file name="Option.php" hash="56539786a0ba47bcee01f67fe260366f"/></dir><file name="Item.php" hash="bc30a733ecd2e3ed20602488c1844df0"/><dir name="Mysql4"><dir name="Item"><file name="Collection.php" hash="7b728a313029fd327839e20e14d87f67"/><dir name="Option"><file name="Collection.php" hash="25f4702f7f8b2043683ad8a6f7fe6c1f"/></dir><file name="Option.php" hash="c8d065def3aebbd48c246c96152fdcc1"/></dir><file name="Item.php" hash="e579117f62f2539ad727b3c4f113d464"/><dir name="Product"><file name="Collection.php" hash="bf8e2aee1ad775f658cd23e722f87718"/></dir><dir name="Wishlist"><file name="Collection.php" hash="fe599f4061cec35c9708adafef85eedb"/></dir><file name="Wishlist.php" hash="d448e775459bb534032fd49baa11b17f"/></dir><file name="Observer.php" hash="ae44ab5404204f8d624b5ec25eccca0f"/><dir name="Resource"><dir name="Item"><file name="Collection.php" hash="6aa52daba54440df4f74bc4048ab6f35"/><dir name="Option"><file name="Collection.php" hash="87a9f18e10260fccba022110bda6cdfd"/></dir><file name="Option.php" hash="ea1490b6cef10a18b315663be8b4358b"/></dir><file name="Item.php" hash="b33c9ae9c772cc2962d6e9c3e2b65809"/><dir name="Product"><file name="Collection.php" hash="613df0bcf1fb3689c4c93ce216a169c0"/></dir><dir name="Wishlist"><file name="Collection.php" hash="ad5efb5bd2fc89b646b5215f7b1e5d30"/></dir><file name="Wishlist.php" hash="a0820a5c980ed3b30e1f1b40acf82144"/></dir><file name="Session.php" hash="83cca8e59015346c16cf6c7ca33ce16a"/><file name="Wishlist.php" hash="aca197421b94af4baedcd1e55e72da83"/></dir><dir name="controllers"><file name="IndexController.php" hash="c0c32c13d0414cc48613a54f7932b6a3"/><file name="SharedController.php" hash="f271d1a01b6db8122c2e806222986248"/></dir><dir name="etc"><file name="adminhtml.xml" hash="1d60d7a6f4a0860ac7c97d372c3fe033"/><file name="config.xml" hash="807e8eeb1b8e43a55aa7fbb6897204e1"/><file name="system.xml" hash="ea3dd210a0775e6c238f73e296731694"/></dir><dir name="sql"><dir name="wishlist_setup"><file name="install-1.6.0.0.php" hash="33a95e58bf36403e3332c8179fd223a5"/><file name="mysql4-install-0.7.0.php" hash="0ad4dd35e9bfcacd896a473389bb5d02"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="11ac69d9c9e48b276f3cc7ffbe5f4ff9"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="7a2e6d2f78ecde8da32b54bd62f59fec"/><file name="mysql4-upgrade-0.7.2-0.7.4.php" hash="1542cb7321c5550eb704b8fc33bed06f"/><file name="mysql4-upgrade-0.7.4-0.7.5.php" hash="445f775cedb1ef509ad6eab4e5562859"/><file name="mysql4-upgrade-0.7.5-0.7.6.php" hash="9b802c81524d358727eaa9e707b1a173"/><file name="mysql4-upgrade-0.7.6-0.7.7.php" hash="6677145122de6fbbaba4d94af4951c8e"/><file name="mysql4-upgrade-0.7.7-0.7.8.php" hash="1eb422ca0f5a852efc04b3f26b7aee16"/><file name="mysql4-upgrade-0.7.8-0.7.9.php" hash="463c8a2f3460283b79d8bac7cc12028b"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="f47f0f666365f61b750ca9ad540114f9"/></dir></dir></dir></dir><dir name="Zend"><file name="Date.php" hash="95bf218944785f606f22c2ea0c077f5d"/><dir name="Db"><file name="Select.php" hash="28f3efa5f9797af22f899fb525dbb44f"/><file name="Statement.php" hash="4b5b39a1e1c651ab9d6db332c882fdf7"/></dir><file name="Mime.php" hash="f216d84221e3d7601822b4c95948aeaf"/><dir name="Xml"><file name="Security.php" hash="7366a7b9e2dab5551b557f49d900d6a1"/></dir></dir></target><target name="mage"><dir name="app"><file name="Mage.php" hash="459a2e435af4ab477b7ab502b2991d58"/><file name=".htaccess" hash="72617d60821288133a367f70bf39ad93"/><file name="bootstrap.php" hash="a617c37f2a73cc3edbd6a545f2e2e00b"/></dir><dir name="."><file name="cron.php" hash="a5087282b32d81c52fccc65a54444fd5"/><file name="LICENSE.txt" hash="59563e7be45096d0833dade102989042"/><file name="index.php.sample" hash="45893b3f7f642cd085b7922b51c673a0"/><file name=".htaccess.sample" hash="8c6af3a408cee7bdd8a0e4c59ad2693d"/><file name="LICENSE_AFL.txt" hash="45a399f2095030865fb962263ccd7506"/><file name="LICENSE.html" hash="caf0a79ffb5e4719f9f4de286f253a61"/><file name="cron.sh" hash="80579b07c2ef11b488014de167f3afc0"/><file name="install.php" hash="908eccc23a47e0c455cc859b2ff4db0c"/><file name="php.ini.sample" hash="d7412c2f78440a96fc2d9378ccf460cb"/><file name="get.php" hash="2a16b51e2ccb46e237e00072e0490ffe"/><file name="RELEASE_NOTES.txt" hash="d6f71a5427e3bf2cf8aee95a8702e4ca"/><file name="favicon.ico" hash="88733ee53676a47fc354a61c32516e82"/><file name="api.php" hash="70a3df124ee5bcde33f87512adb3b5e0"/></dir><dir name="errors"><file name="404.php" hash="589e28548254946751733ac8bac7a160"/><file name="503.php" hash="49d4f4a126202215605c51c5cdacfba3"/><dir name="default"><file name="404.phtml" hash="af7b554e2b6596a66251134c107d6db2"/><file name="503.phtml" hash="d456bc683ed74a37b3853b385ea3daa0"/><dir name="css"><file name="styles.css" hash="0d34138c8c22e5e7fe0474f88be13be2"/></dir><dir name="images"><file name="bkg_body.gif" hash="82bfc5bfe346c8e974cd33b1314b0acf"/><file name="bkg_header.jpg" hash="0211c47be1493bd0ec72949c47932b81"/><file name="bkg_main1.gif" hash="a8f5717873dc6cf8f6bd22924b5838fe"/><file name="bkg_main2.gif" hash="cf18ba9f7c7e6b058b439cde1a897e9c"/><file name="favicon.ico" hash="88733ee53676a47fc354a61c32516e82"/><file name="i_msg-error.gif" hash="e4f28607f075a105e53fa3113d84bd26"/><file name="i_msg-note.gif" hash="e774ee481a2820789c1a77112377c4e0"/><file name="i_msg-success.gif" hash="834dfafd5f8b44c4b24a4c00add56fcf"/><file name="logo.gif" hash="48b7eb03807fdf80bdfb19b872cf84b8"/></dir><file name="page.phtml" hash="bd758ecf041c888ae775c7affbbfd961"/><file name="report.phtml" hash="7eef7b64f5ce167d5d7d8cf894fea4e6"/></dir><file name="design.xml" hash="824a6db1d11d0c33fa2ecc32cdace275"/><file name="local.xml.sample" hash="9e95ec195ec69786856468eb498d3bff"/><file name="processor.php" hash="e0dc255fa136541ebaca2b32700100c6"/><file name="report.php" hash="05f4e9510d6556a5f167c4333425cb8a"/><file name=".htaccess" hash="8382e66b40fe15d7a1edfc780f9be92f"/><file name=".htaccess" hash="8382e66b40fe15d7a1edfc780f9be92f"/></dir><dir name="var"><file name=".htaccess" hash="72617d60821288133a367f70bf39ad93"/></dir><dir name="shell"><file name="abstract.php" hash="b9671e36ce77be402f6c1feaab612771"/><file name="compiler.php" hash="5ae0b5c4151c73af8ca567d25c4b8f5e"/><file name="indexer.php" hash="0b1e58df83d5f41b739aa0095a9d96d0"/><file name="log.php" hash="2715cec50ab8441e6a6f55b0b8578f37"/><file name=".htaccess" hash="72617d60821288133a367f70bf39ad93"/></dir><dir name="lib"><file name=".htaccess" hash="72617d60821288133a367f70bf39ad93"/></dir><dir name="media"><file name=".htaccess" hash="08de5b2f5ea1ce6f51f40a19bacbf42e"/><dir name="dhl"><file name="logo.jpg" hash="68500df59e568e01333ba078a262ca27"/></dir><dir name="downloadable"><file name=".htaccess" hash="72617d60821288133a367f70bf39ad93"/></dir><dir name="customer"><file name=".htaccess" hash="72617d60821288133a367f70bf39ad93"/></dir></dir></target><target name="mageetc"><dir name="."><file name="config.xml" hash="be7c02ff5f7e2904978cecba4862a4af"/><file name="local.xml.template" hash="8c3bf448008dc74fdba97dd751816bb3"/><file name="local.xml.additional" hash="3bd377a8f06ada51c7dd280262c1f276"/></dir><dir name="modules"><file name="Mage_All.xml" hash="0203006e088449a982a328bc56b38a96"/><file name="Mage_Bundle.xml" hash="deb91101ce207e55cd783752a68a2f12"/><file name="Mage_Api.xml" hash="e10951bddfcd370b6f4c67a492b00358"/><file name="Mage_Downloadable.xml" hash="fd74033d6239aa3150469503664c25ad"/><file name="Mage_Weee.xml" hash="8cda7afdfef0a98434c8fec627c256cc"/><file name="Mage_Widget.xml" hash="97744c0f37d72188da7013d3ab9d7076"/><file name="Mage_Connect.xml" hash="daaec0c7dc6a3dea31860000eef4c534"/><file name="Mage_ImportExport.xml" hash="c337858c314568e42eff27f6b91d936d"/><file name="Mage_PageCache.xml" hash="a49bf857449628caf03e29623b9fa943"/><file name="Mage_Persistent.xml" hash="14b5506f30659b9d3aa4b12ed5808f74"/><file name="Mage_Authorizenet.xml" hash="8c131bf1a09ad61042eaf4b2514dd049"/><file name="Mage_Captcha.xml" hash="9139860029aaf80f9900c951fb762136"/><file name="Mage_CurrencySymbol.xml" hash="56081b1aaf92a89ac2f7d7fbdeeff627"/><file name="Mage_Api2.xml" hash="3d4bb7cca4a1ddb93ae48dc3eadb11c7"/><file name="Mage_Oauth.xml" hash="593e89ff7905abded6e966f9e110b027"/><file name="Mage_ConfigurableSwatches.xml" hash="cedf68a891a12cf573d06cfcdbd104d6"/></dir></target></contents>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Mage_Core_Modules</name>
4
+ <version>1.9.3.0</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
7
  <channel>community</channel>
8
  <extends/>
9
  <summary>Collection of Magento Core Modules</summary>
10
  <description>Collection of Magento Core Modules</description>
11
+ <notes>1.9.3.0</notes>
12
  <authors><author><name>Magento Core Team</name><user>core</user><email>core@magentocommerce.com</email></author></authors>
13
+ <date>2016-10-04</date>
14
+ <time>13:04:40</time>
15
+ <contents><target name="magecore"><dir name="Mage"><dir name="Admin"><dir name="Helper"><file name="Block.php" hash="9a1ba075a3e26fe7b3355e3518ecd9f3"/><file name="Data.php" hash="9349200d6f92c46180199ac23f98f7f6"/><dir name="Rules"><file name="Fallback.php" hash="383a4d353d762e1c925071be90cef644"/></dir><file name="Variable.php" hash="05034a643f757264fa384d34c8a38a45"/></dir><dir name="Model"><dir name="Acl"><dir name="Assert"><file name="Ip.php" hash="08ca27c4cb5d661cf244ebb2e6651758"/><file name="Time.php" hash="286d3eb95e0bd7c35303bd1645c6136d"/></dir><file name="Resource.php" hash="0c2dc0fc7553ec1f3edc827f8b315381"/><dir name="Role"><file name="Generic.php" hash="4f1f977403ed910a5753afab02c62b89"/><file name="Group.php" hash="a3eb3645929348237344ab9be05b78b1"/><file name="Registry.php" hash="1a061baac87efc3b82c267d9b496b161"/><file name="User.php" hash="584e727edf544f15e9d9c9f05b12bfdf"/></dir><file name="Role.php" hash="81b9facdda473ecd5d4c0a9831f12f23"/></dir><file name="Acl.php" hash="7d626befb3db46f07bdb75399b4536db"/><file name="Block.php" hash="cba4ab4189cf2a3b1e6a8366c7864ee4"/><file name="Config.php" hash="505e6f9bccb6b1781f006dfa0f277254"/><dir name="Mysql4"><dir name="Acl"><dir name="Role"><file name="Collection.php" hash="335baf1a546832d4430b359d2a14aac3"/></dir><file name="Role.php" hash="57e55b6117759af057407b2b52dca8e5"/></dir><file name="Acl.php" hash="535836809a79d0870f491abe690069d1"/><dir name="Permissions"><file name="Collection.php" hash="5c6808e128191b50f3f0a24d19a874e8"/></dir><dir name="Role"><file name="Collection.php" hash="0b5c5dcf8609974c82a2eb70c44db3a7"/></dir><file name="Role.php" hash="591f9370829d00af7990de49fa5246e5"/><dir name="Roles"><file name="Collection.php" hash="1f7f9e665cedc00597698d7bce6ffcd9"/><dir name="User"><file name="Collection.php" hash="8c744c176b234379a39cc05af2b6df02"/></dir></dir><file name="Roles.php" hash="1924f8555f51b66e3801bfa76690dfd0"/><dir name="Rules"><file name="Collection.php" hash="6eccb4ad5e45096587bec068f34342f0"/></dir><file name="Rules.php" hash="341d66cdfd28daf435517a49600495b3"/><dir name="User"><file name="Collection.php" hash="35a014dcc16e27dc66577c05b0747d46"/></dir><file name="User.php" hash="355610dbcb43e9d5f5fd7f3f78110048"/></dir><file name="Observer.php" hash="8bcd083d383968c893cf98d18eecba8e"/><file name="Redirectpolicy.php" hash="fbeea836834e629f96ddd6949a93e97b"/><dir name="Resource"><dir name="Acl"><dir name="Role"><file name="Collection.php" hash="bd5981e4c77d6c4bb819ac8c6c338c76"/></dir><file name="Role.php" hash="6d50597150e83a920d8e76cb74b4cfcf"/></dir><file name="Acl.php" hash="69d8caefb12003e449573d6ba87864f8"/><dir name="Block"><file name="Collection.php" hash="717351c260e79fa30fbda27111957a99"/></dir><file name="Block.php" hash="ff5550ea7047ffb019c2525c13fc17a9"/><dir name="Permissions"><file name="Collection.php" hash="439684f2b3259ca9e3959ced4aafa335"/></dir><dir name="Role"><file name="Collection.php" hash="15454b8025ed78cea0ce5d84d1e84c42"/></dir><file name="Role.php" hash="c4238cef7a9a25b72f7a9f4cb9b23f1e"/><dir name="Roles"><file name="Collection.php" hash="c1197e710a230d3ec001ae4abc3d9ec5"/><dir name="User"><file name="Collection.php" hash="7e551072e4cc23fcbef082b54b7fa798"/></dir></dir><file name="Roles.php" hash="86589cb054903023aeb3fd2a6015c83c"/><dir name="Rules"><file name="Collection.php" hash="cd0c1e7732bcbc6f9a73b84cecf5fa45"/></dir><file name="Rules.php" hash="b3d01cbc96c2f46f396c0698fc645b4a"/><dir name="User"><file name="Collection.php" hash="0177d1cee326c39536c29fa1879510fd"/></dir><file name="User.php" hash="3e216369763be663ca216f171d6454bc"/><dir name="Variable"><file name="Collection.php" hash="fd9c09d2184f32af4e48a982d0547a58"/></dir><file name="Variable.php" hash="f25a17650d60d5b1911e985fbd6904ea"/></dir><file name="Role.php" hash="2df749650c83f8203857ab6ba9a0bbe0"/><file name="Roles.php" hash="caa2c8b5b1a279297e3bf34cde27a94e"/><file name="Rules.php" hash="a37312eba4a2600a14f5bc81e6ef9a39"/><file name="Session.php" hash="619d5efe81e9ffaf11600b4df2a06352"/><file name="User.php" hash="dcec560e1ba661610d748efb726c250e"/><file name="Variable.php" hash="6e8f0d0da61445ab9e0042177694881c"/></dir><dir name="data"><dir name="admin_setup"><file name="data-install-1.6.0.0.php" hash="0274ac08aadb4bad103095a11bdaff14"/></dir></dir><dir name="etc"><file name="config.xml" hash="ddf36fe419691b25611a94b45b30f082"/></dir><dir name="sql"><dir name="admin_setup"><file name="install-1.6.0.0.php" hash="dbede184c784f531b99227dafaac6c3f"/><file name="mysql4-install-0.7.0.php" hash="ce195263d9a1483e0226725ecba4d280"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="1cc838be0dbfa4a57b367ff3ee852930"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="5f6112ff200e1156f793a88caa7fac7e"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="f4f648587b954ebf087dfcfad2e6e809"/><file name="upgrade-1.6.0.0-1.6.1.0.php" hash="6948bb0b0bf03c1a7a9f6d4992b95c32"/><file name="upgrade-1.6.1.0-1.6.1.1.php" hash="8a227654e1b908e80763a75d47b3219b"/><file name="upgrade-1.6.1.1-1.6.1.2.php" hash="d3e3dc656cb0f7b34c87c3cb57f6aae1"/></dir></dir></dir><dir name="AdminNotification"><dir name="Helper"><file name="Data.php" hash="16e00642e0d71e8f640513fbdce1fc72"/></dir><dir name="Model"><file name="Feed.php" hash="a50e6360e6f862da15017f92112f7089"/><file name="Inbox.php" hash="aa4212b432eb6c0b18d5d10f6d352f43"/><dir name="Mysql4"><dir name="Inbox"><file name="Collection.php" hash="ae2dc8ab53c50a4f2e1076f633050264"/></dir><file name="Inbox.php" hash="9476e2f1f83b120770cbef0fd7d5fbc6"/></dir><file name="Observer.php" hash="ed5d2f6241bc21d23e883afc4dec9c65"/><dir name="Resource"><dir name="Inbox"><file name="Collection.php" hash="45b86c1cc068f343096b176b7e597ac1"/></dir><file name="Inbox.php" hash="3f2ddbba6593c11626e577aee5adc866"/></dir><file name="Survey.php" hash="e8966921b8d2eb22e6b12ecb18244139"/></dir><dir name="etc"><file name="adminhtml.xml" hash="9127e273a03f08d4347096e6191ff1c4"/><file name="config.xml" hash="5e46b7a8603bb7d51093818533d98eef"/><file name="system.xml" hash="f2d8e0d8574e2680f80174341954d01d"/></dir><dir name="sql"><dir name="adminnotification_setup"><file name="install-1.6.0.0.php" hash="f1cfd5293e6997e6ea31d445caf9ff17"/><file name="mysql4-install-1.0.0.php" hash="bc08fe5d5c681ee7bcab1408c6c9dc7d"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="02520528d95f238c32456dc1f0504809"/></dir></dir></dir><dir name="Api"><dir name="Controller"><file name="Action.php" hash="774b4762b850592ab7659fdadb42ed84"/></dir><file name="Exception.php" hash="04fe0ad10ccb52bc9d66117e1ea8daf9"/><dir name="Helper"><file name="Data.php" hash="44c338b1e68841c25890cc25032bc92a"/></dir><dir name="Model"><dir name="Acl"><dir name="Assert"><file name="Ip.php" hash="c76874e041338f1a3a18da71bdd1124d"/><file name="Time.php" hash="5603cda1204e4270d92f67290f8b3882"/></dir><file name="Resource.php" hash="5536d4853e1e6ac50083dd48d12bb380"/><dir name="Role"><file name="Generic.php" hash="2f84ba87bd7d3a9ea0ae873bac95b970"/><file name="Group.php" hash="c8b844aaa124f8afa38e943f5fb7333a"/><file name="Registry.php" hash="0cf99ee44b46f1fd5abb01332d9176e3"/><file name="User.php" hash="c714175423aabf8a234c658966238574"/></dir><file name="Role.php" hash="89767b0b806ae6f6402b9dc357783d3e"/></dir><file name="Acl.php" hash="d3caadef3aaab9e8dada1f584184b6da"/><file name="Config.php" hash="e6108699ce87d3ca39462e70356fc0f7"/><dir name="Mysql4"><dir name="Acl"><dir name="Role"><file name="Collection.php" hash="29ee5de0d8a07033e66fe43f9046f3f7"/></dir><file name="Role.php" hash="606f2c8ccb598d3e3c8f3ed5bcf289f4"/></dir><file name="Acl.php" hash="e933dfe905bbdafed8e42b76b08a80f6"/><dir name="Permissions"><file name="Collection.php" hash="8f0cafdaf2c39d0b7b25addff48e3060"/></dir><dir name="Role"><file name="Collection.php" hash="65b742dffa3ce6881c55a27657bcd24e"/></dir><file name="Role.php" hash="5f635063dedb356c61da9062444228ea"/><dir name="Roles"><file name="Collection.php" hash="f3a0e95e05b018836a959d22fed1b3a7"/><dir name="User"><file name="Collection.php" hash="27c1248a4b9a201a3fde0bc1aa0b3006"/></dir></dir><file name="Roles.php" hash="78ca14d1032e095ee37c1ed027bbe8a3"/><dir name="Rules"><file name="Collection.php" hash="2bf02138aaf50a5786e8a9f9b944bb1e"/></dir><file name="Rules.php" hash="d6945e76e07b77f993f277162f75ca4e"/><dir name="User"><file name="Collection.php" hash="482d52e463eda673177bfa5b28d62171"/></dir><file name="User.php" hash="e56215febfa2bff9b644c1c422b05d20"/></dir><dir name="Resource"><file name="Abstract.php" hash="8afd58116d69d4f8cb00045e809fa065"/><dir name="Acl"><dir name="Role"><file name="Collection.php" hash="e2a0a2811e5b14b041114ab1b54b0caf"/></dir><file name="Role.php" hash="3d48c43b4d9f76f1eb1e4d3d354146f0"/></dir><file name="Acl.php" hash="0f8f6aa57d0c9d21db67c6c694f54b99"/><dir name="Permissions"><file name="Collection.php" hash="48faac14df91a789288ef14863f23415"/></dir><dir name="Role"><file name="Collection.php" hash="358cfbd02523e45ac3a13230019a9855"/></dir><file name="Role.php" hash="f12e74794a4897e7df96f05507a95679"/><dir name="Roles"><file name="Collection.php" hash="d245ece070acf720da2e4e88cd1e6157"/><dir name="User"><file name="Collection.php" hash="45839c5e6c4eb16d669d0cb61791b51c"/></dir></dir><file name="Roles.php" hash="2378dd2f701d20222a9089c48f13d32d"/><dir name="Rules"><file name="Collection.php" hash="92ab48e1ec2d99c432e25e9c3e8b4bca"/></dir><file name="Rules.php" hash="cfaef65cfd5ac344fca073aa803bf070"/><dir name="User"><file name="Collection.php" hash="d7dfaa41c6f8c576ecc78124926da9ab"/></dir><file name="User.php" hash="68f0455fadd667de2c49b361c0c63b48"/></dir><file name="Role.php" hash="65d1434ddb3bd361a08126b6a8ed2739"/><file name="Roles.php" hash="399af59b973909e92fd63620ca0ac949"/><file name="Rules.php" hash="4ca5eaf6cef0ab6ec8db507620d7fb89"/><dir name="Server"><dir name="Adapter"><file name="Interface.php" hash="64124b37d8a9686866695c823d80713c"/><file name="Soap.php" hash="89d4a8211e292c4fe2567fa52cb5292a"/><file name="Xmlrpc.php" hash="a3bea0dc8c3045630f9ba479cfe89b1f"/></dir><dir name="Handler"><file name="Abstract.php" hash="608a7e7c5f637627bc38d3ac29881e7e"/></dir><file name="Handler.php" hash="f4be1b5c2758e3a921387b3933f7dcdc"/><dir name="V2"><dir name="Adapter"><file name="Soap.php" hash="2626e0417ea86b2f80a8f3832b3e18df"/></dir><file name="Handler.php" hash="bdc40c4c23dc5ab6889ea72baa64684c"/></dir><dir name="Wsi"><dir name="Adapter"><file name="Soap.php" hash="f58b7e580026a274b9afd4a4ad56c95b"/></dir><file name="Handler.php" hash="6c260b6ef745ee4acb5a585c110baa71"/></dir></dir><file name="Server.php" hash="3757b660bf81e78572ee4a16df10f61d"/><file name="Session.php" hash="08135d3e54cf10a7fc44f628c0ce51b8"/><file name="User.php" hash="873676067466da34a16ca124830bb4ac"/><dir name="Wsdl"><dir name="Config"><file name="Base.php" hash="02fea248877a1a4a36bc97f2ab5971ce"/><file name="Element.php" hash="11e2d31cd86e888f4cf90613e3e9af9f"/></dir><file name="Config.php" hash="e64dbce8fd9d9bb1e8fdc4651d85959a"/></dir></dir><dir name="controllers"><file name="IndexController.php" hash="2c0689b165c97288b2e8c7f1ea7fccb2"/><file name="SoapController.php" hash="7bcebcfc203e99777804ee9fc0bb46f4"/><dir name="V2"><file name="SoapController.php" hash="78d4a08f6a1369366ae349868965ab98"/></dir><file name="XmlrpcController.php" hash="ba4e2f4fd37b0375a77140340ff99b37"/></dir><dir name="etc"><file name="adminhtml.xml" hash="1fa3c950da0464651007e8cd33f294b0"/><file name="api.xml" hash="16477872502aa7fee7b6e4ee85eb6d53"/><file name="config.xml" hash="d994cc2976bc842b796bc216af4ecabf"/><file name="system.xml" hash="d8d0ef91b865535c4f407f2eed075d7b"/><file name="wsdl.xml" hash="f0db676b04733b38f310355bb44bc3cb"/><file name="wsdl2.xml" hash="7d527421ba4b63a8a812ab6b1095891d"/><file name="wsi.xml" hash="9fb1700cf935a26e7fada90a07fae7fe"/></dir><dir name="sql"><dir name="api_setup"><file name="install-1.6.0.0.php" hash="9224f4bc3e4624a4b39829cd360f0469"/><file name="mysql4-install-0.7.0.php" hash="78a15f73deb0367b6902c80696ef0e62"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="59162c64de079f98682f67314851c92c"/><file name="mysql4-upgrade-0.8.0-0.8.1.php" hash="a76c976e331986d6249c15b79ec71cfe"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="c4b533ec0c78967c59942b8143936b97"/><file name="mysql4-upgrade-1.6.0.0-1.6.0.1.php" hash="ef060441ba7f33213e0a3aaf59a0266c"/></dir></dir></dir><dir name="Api2"><dir name="Block"><dir name="Adminhtml"><dir name="Attribute"><file name="Buttons.php" hash="30e7a5d3a1c83ef1df1b675173baa6dd"/><dir name="Edit"><file name="Form.php" hash="9da5d9bc5715ae0ae289a7646e27be85"/></dir><file name="Edit.php" hash="7ce77055d120c65648c1107fb2e5fc6a"/><file name="Grid.php" hash="770f37ab1ab5f7296cdd10e986a67e88"/><dir name="Tab"><file name="Resource.php" hash="69c35aa360066c71e6364d96fac6435c"/></dir><file name="Tabs.php" hash="6aea7548a023162ddc82e75e84cf8674"/></dir><file name="Attribute.php" hash="98679bff19e5a631eaa9e0c6cabc99ca"/><dir name="Permissions"><dir name="User"><dir name="Edit"><dir name="Tab"><file name="Roles.php" hash="b2acfc86b799efd51c7e76e10a2f7b5b"/></dir></dir></dir></dir><dir name="Roles"><file name="Buttons.php" hash="92a73c35cae3662229878c90d2e24fe8"/><file name="Grid.php" hash="215301b76a9a363c1253ec0377859241"/><dir name="Tab"><file name="Info.php" hash="3a4dacbc8eae6f0f35019df6912e89ad"/><file name="Resources.php" hash="2fd39485229e2d8f85b91d2ae7c4a862"/><file name="Users.php" hash="52ab2220a81f0e269f176e0d5615e8f7"/></dir><file name="Tabs.php" hash="5c4a34538372055306c8e7da3a8a5bde"/></dir><file name="Roles.php" hash="76bbcde1a4cbbfaa68890b7b6514b561"/></dir></dir><file name="Exception.php" hash="8e66157a187c75b217f4fc7ec56f3826"/><dir name="Helper"><file name="Data.php" hash="87e59f1ae52509cb875ab25365d6e351"/></dir><dir name="Model"><dir name="Acl"><dir name="Filter"><dir name="Attribute"><file name="Operation.php" hash="02a577838191e96fc389578891359dee"/><file name="ResourcePermission.php" hash="c0f28749c7ac8039df60f8e8ce3a4b45"/></dir><file name="Attribute.php" hash="9bd5d7c9a4818b3cd1616ae1391ddd19"/></dir><file name="Filter.php" hash="929e44dd71dcd3f25405933f14089b02"/><dir name="Global"><file name="Role.php" hash="c46376eceb36ca5d32e9582a1f5b4af4"/><dir name="Rule"><file name="Permission.php" hash="687b8715aa27e61ed516c53162775b57"/><file name="Privilege.php" hash="3d2975048cefa0226e59cd084fbcfdd7"/><file name="ResourcePermission.php" hash="a44cdbbafaf12ee628fec8ac8ba8a0ba"/><file name="Tree.php" hash="2358b8723c6e9bee54b3ea9fd7d0d953"/></dir><file name="Rule.php" hash="95040ad8b86317eb060569c28b16410b"/></dir><file name="Global.php" hash="0d95e4be423febd261812ceb03847411"/><file name="PermissionInterface.php" hash="11d294d4927d5070933d34ef2711eac9"/></dir><file name="Acl.php" hash="2ffa26f03192a669d9c86dbe724f46cd"/><dir name="Auth"><dir name="Adapter"><file name="Abstract.php" hash="e76e604f005c4dc398292c2acc00a4fc"/><file name="Oauth.php" hash="894fbacf6e21a7efeab9a0a9db946650"/></dir><file name="Adapter.php" hash="f3cbea7d5ab8b09386dc67fd107aa7d2"/><dir name="User"><file name="Abstract.php" hash="ad4d2f0c4d03eadbb81dcfbfbe4273ad"/><file name="Admin.php" hash="25e7646a77954a5784120335d13ef388"/><file name="Customer.php" hash="179a03eaa77810a013563fca02a56623"/><file name="Guest.php" hash="e572d1c2acf5facef9187d1cfe6aece6"/></dir><file name="User.php" hash="4f28b0c1bc6e6f71a0bf6a09a7a27773"/></dir><file name="Auth.php" hash="5e8ff5e0a305081a8319b2bf24496b1d"/><file name="Config.php" hash="0955d6231212120e16a5c2e7f21463a0"/><file name="Dispatcher.php" hash="1f61a75165aa48c8c97c16e72f1338d4"/><file name="Multicall.php" hash="c4741cbd2ebed177654a699ce15312e9"/><file name="Observer.php" hash="ab5efc3be71db1b54fb9f4858cd3beca"/><dir name="Renderer"><file name="Interface.php" hash="17d1ea9e291a600dd7f98a941a8945ba"/><file name="Json.php" hash="5fd32d14bd18d550ba78e9a9e901722e"/><file name="Query.php" hash="d7ea3556aaefe6c400510466a7f15077"/><dir name="Xml"><file name="Writer.php" hash="c2b3024abe24d48eac4d6bcc0f4e85e7"/></dir><file name="Xml.php" hash="fcd74870b09eb236ce768bb81b2466b9"/></dir><file name="Renderer.php" hash="7f9de64648eca506571a5156e51672c9"/><dir name="Request"><file name="Internal.php" hash="5b2981aacf6234be279b29c7eaa7bc39"/><dir name="Interpreter"><file name="Interface.php" hash="adf1d99caf07e26de34373618d1eeb7e"/><file name="Json.php" hash="759806f32a2f717d90e57657fdc2e703"/><file name="Query.php" hash="130b11ea74e1d91d9637abc5d877b218"/><file name="Xml.php" hash="3bbd3aae616947cfab67af3417e8bc73"/></dir><file name="Interpreter.php" hash="108d88f20c84667266bdeeae0f566ad0"/></dir><file name="Request.php" hash="6152f16393d2f6600131ce075be99627"/><dir name="Resource"><dir name="Acl"><dir name="Filter"><dir name="Attribute"><file name="Collection.php" hash="665ff0a1ef0b44ce90c6827fa7aee98f"/></dir><file name="Attribute.php" hash="0b1dd9c5e804f2d74f035280808e3096"/></dir><dir name="Global"><dir name="Role"><file name="Collection.php" hash="8d49bb4b7350e5143a66ac6ede38a451"/></dir><file name="Role.php" hash="208b98f459bc1efa86679e889ad1c5c1"/><dir name="Rule"><file name="Collection.php" hash="cfa58d513a38612949c71087500a9a72"/></dir><file name="Rule.php" hash="1f72374898d0ee315fe11ca122ea4bc5"/></dir></dir><file name="Setup.php" hash="d3f2fe1dd0355d83243d16dcae070bab"/><dir name="Validator"><file name="Eav.php" hash="85530468f643d51545bfb026ea31c60b"/><file name="Fields.php" hash="669ab0efb47133f83250847f032f1c37"/></dir><file name="Validator.php" hash="b4728be46e9e8b46f46af0478dcd8449"/></dir><file name="Resource.php" hash="0c8dcd44c2d03e288b985f976650c3ec"/><file name="Response.php" hash="0fbabaec58d372103b7863f6a27ec143"/><dir name="Route"><file name="Abstract.php" hash="1a27c8f502aee85f52c0b9a994ea204f"/><file name="ApiType.php" hash="6a0ec483520e9983f2cb40b5dd17fd8d"/><file name="Interface.php" hash="374d8c631c5e8adae4f11a5f11b4537b"/><file name="Rest.php" hash="cd9a94ad7d40766cb62a50a60c3dba32"/></dir><file name="Router.php" hash="fd7c3235d8dae9bf2fc8dff91472fb5c"/><file name="Server.php" hash="9ac47ece0cdc38b210dcb7df6d8c1ced"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Api2"><file name="AttributeController.php" hash="347953872ae6d5e90b16561388e6848f"/><file name="RoleController.php" hash="d27833725254f6fc12a799efd2510973"/></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="ad36dd3cd7d6e5d120bb9e7c15e11ff1"/><file name="config.xml" hash="4821abb0ebec976548c9e30d30a2b213"/></dir><dir name="sql"><dir name="api2_setup"><file name="install-1.0.0.0.php" hash="592bbea52850ec9fc91066bff5508914"/></dir></dir></dir><dir name="Authorizenet"><dir name="Block"><dir name="Directpost"><file name="Form.php" hash="9dc667687a53dd0017fa7cded230b4f1"/><file name="Iframe.php" hash="5ae85348c16639f2006542866f798d66"/></dir></dir><dir name="Helper"><file name="Admin.php" hash="ead9dd582ab6f747f2466c996b50aa31"/><file name="Data.php" hash="5440d68161cc5379507c6a0771bc7f42"/></dir><dir name="Model"><dir name="Directpost"><file name="Observer.php" hash="0fd3c47026cdba1c36b4aa5e8f43500e"/><file name="Request.php" hash="7a968e895e936e86b4e0488537e45587"/><file name="Response.php" hash="a136dcb41d52650f99036483b81d27fc"/><file name="Session.php" hash="b96a36a37ede54e2af70ed3f28c90413"/></dir><file name="Directpost.php" hash="b6869c83e477ab7f5d0590c1aeb0d856"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Authorizenet"><dir name="Directpost"><file name="PaymentController.php" hash="c49edc9dba097d0757eeefd8a00d2086"/></dir></dir></dir><dir name="Directpost"><file name="PaymentController.php" hash="e7e5bb728fda361ef16911f123e50e0c"/></dir></dir><dir name="etc"><file name="config.xml" hash="316742cf75cd9a1d8e31621757eafdb2"/><file name="system.xml" hash="772679033f6a49116ba41a49da828f3c"/></dir></dir><dir name="Backup"><file name="Exception.php" hash="1d9584b08582ee0931ae942ddc597056"/><dir name="Helper"><file name="Data.php" hash="9c4b278a8188970834ea3264dca74197"/></dir><dir name="Model"><file name="Backup.php" hash="163966b51cb4df0584200c39375b21ae"/><dir name="Config"><dir name="Backend"><file name="Cron.php" hash="ed07667ca13aa89805ebb7136d0dcd71"/></dir><dir name="Source"><file name="Type.php" hash="ed9703bce1523c0c634e862c7ad70f5e"/></dir></dir><file name="Db.php" hash="d35147f61a16f6e4d58969ae58205907"/><dir name="Fs"><file name="Collection.php" hash="d2e6b760f5050792712b1d79c35dfc68"/></dir><dir name="Mysql4"><file name="Db.php" hash="11fec4cd1cde22cf681bf8b4780c0a09"/></dir><file name="Observer.php" hash="03078671713743c8c8e97a717c2e80c2"/><dir name="Resource"><file name="Db.php" hash="35961c796f60164427dcd9ce6a1c87b9"/><dir name="Helper"><file name="Mysql4.php" hash="4d24628fa1b2890c91d8048cd65fd7da"/></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="e48cb7bbc9b47dc55c11205716a727ad"/><file name="config.xml" hash="bbef782377f0d496a05daa4ab71473d7"/><file name="system.xml" hash="e461e31f4a3d7a05ebe6398bea5ec004"/></dir></dir><dir name="Bundle"><dir name="Block"><dir name="Adminhtml"><dir name="Catalog"><dir name="Product"><dir name="Composite"><dir name="Fieldset"><file name="Bundle.php" hash="d1a01550cc44852c92276e95e161f44a"/><dir name="Options"><dir name="Type"><file name="Checkbox.php" hash="72b0fdbe208a568907ca6e03b6cc4970"/><file name="Multi.php" hash="b50b7d8093326d9c5ba76c907b3707b6"/><file name="Radio.php" hash="c3510dc759996779d7e70bec6c05a1bc"/><file name="Select.php" hash="b6719e8406961f0c5cbae9d6bbdaa973"/></dir></dir></dir></dir><dir name="Edit"><dir name="Tab"><dir name="Attributes"><file name="Extend.php" hash="c7177a24ec87ff4c63620754314fbf61"/><file name="Special.php" hash="edc5952b3071bb875c24e1a81d05d2fb"/></dir><file name="Attributes.php" hash="20404aae31a0d039019f640c85f05ea5"/><dir name="Bundle"><dir name="Option"><dir name="Search"><file name="Grid.php" hash="1119c21a96470f11950d7d84f65a221a"/></dir><file name="Search.php" hash="665485b2d6f20f2b715f7243c3f5d9b6"/><file name="Selection.php" hash="b2b8cf4675d04f1264a3c4a04ed2dca7"/></dir><file name="Option.php" hash="1dd71760cbe26ee1fabc3e3299bbb9fb"/></dir><file name="Bundle.php" hash="55373aaaa8f72c91051e678f03ba5029"/></dir><file name="Tabs.php" hash="9296e80b1084b9a8dc6bd1c4ce2062e1"/></dir></dir></dir><dir name="Sales"><dir name="Order"><dir name="Items"><file name="Renderer.php" hash="34710f3c5f673268d1d13a74d50c1caf"/></dir><dir name="View"><dir name="Items"><file name="Renderer.php" hash="73a0c1e6afe739b78ca2237ef2cece89"/></dir></dir></dir></dir></dir><dir name="Catalog"><dir name="Product"><dir name="List"><file name="Partof.php" hash="62d55ff286597964b23ebb4bbb73f8d5"/></dir><file name="Price.php" hash="13955390c1c20f705be3b7f6a7224368"/><dir name="View"><dir name="Type"><dir name="Bundle"><dir name="Option"><file name="Checkbox.php" hash="7703ad9fc12df82467b1269c25bcf50c"/><file name="Multi.php" hash="cd5638f49dd792c79fa448650021d40c"/><file name="Radio.php" hash="46f0caaedeb69fbb3f7307a250c6176e"/><file name="Select.php" hash="07bbb86c3bd29f4856bbbfcb47607e0e"/></dir><file name="Option.php" hash="f9aa8a487a359dff377e4e48cc7edf31"/></dir><file name="Bundle.php" hash="85dc00e3c6624bd8f946577289d8d120"/></dir></dir><file name="View.php" hash="dbd39805a66f8efa5923826033520c1c"/></dir></dir><dir name="Checkout"><dir name="Cart"><dir name="Item"><file name="Renderer.php" hash="92eecf3508f521f28c4332b143139d2b"/></dir></dir></dir><dir name="Sales"><dir name="Order"><dir name="Items"><file name="Renderer.php" hash="1cbdc643a998d58bc27d33977ab6247e"/></dir></dir></dir></dir><dir name="Helper"><dir name="Catalog"><dir name="Product"><file name="Configuration.php" hash="3043d1b7f4599a49b37bc5f6a935a7aa"/></dir></dir><file name="Data.php" hash="9b51be0fea4acbedc363240046c243af"/></dir><dir name="Model"><dir name="CatalogIndex"><dir name="Data"><file name="Bundle.php" hash="08fcad235cc860bebf0e43dd9336d329"/></dir></dir><dir name="Mysql4"><file name="Bundle.php" hash="a105d7dd3f8efeddf367ce54c3bf27dc"/><dir name="Indexer"><file name="Price.php" hash="a49e39a23e70132f0ae71080b944bcdb"/><file name="Stock.php" hash="871b4097d83cbee3008e89ac6f440406"/></dir><dir name="Option"><file name="Collection.php" hash="30d6be1fbbe1ade58485f739f8ad453d"/></dir><file name="Option.php" hash="1795c05a00627e4ae2780198ed21cc3b"/><dir name="Price"><file name="Index.php" hash="14edc32b873efbaf576ff7afe5bddb17"/></dir><dir name="Selection"><file name="Collection.php" hash="a8fcdb51475db3cca91c117aadb4b32a"/></dir><file name="Selection.php" hash="b67d2542e335ac673b98208e8583bcf7"/></dir><file name="Observer.php" hash="e71e6581febdffc6db50b198c051b628"/><file name="Option.php" hash="2aafa265c1a09ca14873789c24081152"/><dir name="Price"><file name="Index.php" hash="8295fe309a878eb9b2b2cacc81177cbc"/></dir><dir name="Product"><dir name="Attribute"><dir name="Source"><dir name="Price"><file name="View.php" hash="40936c9f32040f4fbe9757f3038f2e6e"/></dir></dir></dir><file name="Price.php" hash="8300e53a3d8ba6480a674bb5a7f7a09d"/><file name="Type.php" hash="f795e704b950d1062789735506e07965"/></dir><dir name="Resource"><file name="Bundle.php" hash="dac365d9b9dc19ae98504b7a354fdfaa"/><dir name="Indexer"><file name="Price.php" hash="09346af9318133cdcd4bfe07ef2409b4"/><file name="Stock.php" hash="1d2a9f422efd1a85d4edf75ee67ef790"/></dir><dir name="Option"><file name="Collection.php" hash="85c0a9674eee8735fb0b674f2b69cd97"/></dir><file name="Option.php" hash="04f9d973469beb08582b72c285815fe0"/><dir name="Price"><file name="Index.php" hash="0d623baf6d9f22212eff19075e38030a"/></dir><dir name="Selection"><file name="Collection.php" hash="86fd88e9420793830e08ae09da4ad6bd"/></dir><file name="Selection.php" hash="4b11349866beaf419718e435ba6f7800"/></dir><dir name="Sales"><dir name="Order"><dir name="Pdf"><dir name="Items"><file name="Abstract.php" hash="6e94008eaed3489d1ce78686f9160a65"/><file name="Creditmemo.php" hash="7a009148c167f32c8d64c52e8a1467d1"/><file name="Invoice.php" hash="a37bebede91906ec96d949d0555b3a3f"/><file name="Shipment.php" hash="2d76cd2a857c85297b76519c919e91f1"/></dir></dir></dir></dir><file name="Selection.php" hash="df581745d68a5f9c1b2512b83e1ef5c5"/><dir name="Source"><dir name="Option"><dir name="Selection"><dir name="Price"><file name="Type.php" hash="4d1dba02f19be6162f4c041088b53861"/></dir></dir><file name="Type.php" hash="de0061e8100adf8c073f82f35344cd2c"/></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Bundle"><dir name="Product"><file name="EditController.php" hash="7b354c43663ae7359b5357674883d16f"/></dir><file name="SelectionController.php" hash="b420a1ca332482c3bc55b5d2fcdfaa8f"/></dir></dir><dir name="Product"><file name="EditController.php" hash="d2bf3045167b891f534a3c490901bf94"/></dir><file name="SelectionController.php" hash="9348a022b8d2a28b7bc9e2aaac2e8ac6"/></dir><dir name="data"><dir name="bundle_setup"><file name="data-install-1.6.0.0.php" hash="6edda03943c56b8077f77340b67694e0"/></dir></dir><dir name="etc"><file name="config.xml" hash="2f8a1d2fbf06b32f1a32fc893b47ca3b"/></dir><dir name="sql"><dir name="bundle_setup"><file name="install-1.6.0.0.php" hash="9fc392edbf05d6c30ba9f265892014ef"/><file name="mysql4-data-upgrade-0.1.13-0.1.14.php" hash="4dab0c1d90a659ff1e1f94c1e9acb132"/><file name="mysql4-install-0.1.0.php" hash="82c9663f990f4e9ae9a75c26e3979b23"/><file name="mysql4-upgrade-0.1.0-0.1.1.php" hash="20e77245c14eb8059b187264e8152e29"/><file name="mysql4-upgrade-0.1.1-0.1.2.php" hash="85b79bb079050cbd190bde83a280783f"/><file name="mysql4-upgrade-0.1.10-0.1.11.php" hash="2151261f762c2562d561569e14c6d9a8"/><file name="mysql4-upgrade-0.1.11-0.1.12.php" hash="212828a3289510319fd7479e9251b270"/><file name="mysql4-upgrade-0.1.12-0.1.13.php" hash="b92eb535f69cc85034592088f696eaf4"/><file name="mysql4-upgrade-0.1.2-0.1.3.php" hash="9b83041cd925624e8a80a965c16e9380"/><file name="mysql4-upgrade-0.1.3-0.1.4.php" hash="ae04d9a83330f2706b2e62b172efea3f"/><file name="mysql4-upgrade-0.1.4-0.1.5.php" hash="f0ac187df40e0f6d202faedcc17d9292"/><file name="mysql4-upgrade-0.1.5-0.1.6.php" hash="13940f417ccbdff869375925e41972e9"/><file name="mysql4-upgrade-0.1.6-0.1.7.php" hash="32377c2202aae4b003943383315634d4"/><file name="mysql4-upgrade-0.1.7-0.1.8.php" hash="75110184a452c033ae19cdecc77a3e17"/><file name="mysql4-upgrade-0.1.8-0.1.9.php" hash="81d93640a1700e63de5046e1a774de77"/><file name="mysql4-upgrade-0.1.9-0.1.10.php" hash="6a9b12e735a6a3fc0be490019487295a"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="bfdb71af0a3fa27111431c4e66ad5f00"/><file name="mysql4-upgrade-1.6.0.0-1.6.0.0.1.php" hash="1a4e94847369b5ccf118cd1e96797fc7"/><file name="upgrade-1.6.0.0-1.6.0.0.1.php" hash="63e676fd5c7cae10ac232c732807ca6d"/></dir></dir></dir><dir name="Captcha"><dir name="Block"><dir name="Captcha"><file name="Zend.php" hash="e3140ff48b0ebf607d5ff1702b823eb1"/></dir><file name="Captcha.php" hash="197d8bf48a7a236f840c9b9052a519a0"/></dir><dir name="Helper"><file name="Data.php" hash="cb661b87e454aefb55ad1b48f872af86"/></dir><dir name="Model"><dir name="Config"><file name="Font.php" hash="564160d4501a0983d247e94142f49bc1"/><dir name="Form"><file name="Abstract.php" hash="690bff323d84194efd1c300d2fb2c57b"/><file name="Backend.php" hash="da613c3fed8fb74fd5bc976646cc9d56"/><file name="Frontend.php" hash="b3088a0b9df26a2e1ba3f3c97139ca38"/></dir><file name="Mode.php" hash="e429bbf441d140df0f77ff123dcdac8d"/></dir><file name="Interface.php" hash="3d00e72f1a02fc1f7b63ea4ef747ba18"/><file name="Observer.php" hash="659576bf1859959b5b890eaf0e3ed887"/><dir name="Resource"><file name="Log.php" hash="24b083056fcb18954a72c87eb67421a9"/></dir><file name="Zend.php" hash="62867a57ba8e68a150055b5a4db9ee6a"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="RefreshController.php" hash="54b78c3619e28c26585e6111bd90450f"/></dir><file name="RefreshController.php" hash="6702b9e4aaac22baad8a29030b956742"/></dir><dir name="etc"><file name="config.xml" hash="587c37a06b7bd60161c9c3d793d070f2"/><file name="system.xml" hash="edeedb1737798eda557aa9c5faf09b8f"/></dir><dir name="sql"><dir name="captcha_setup"><file name="install-1.7.0.0.0.php" hash="6e8d794f94dadd6f266c7fe329e9eef7"/></dir></dir></dir><dir name="Catalog"><dir name="Block"><file name="Breadcrumbs.php" hash="dab2381718549050f05cbb86706b7e5e"/><dir name="Category"><file name="View.php" hash="f14a047e957430565a3292784ec3c9b8"/><dir name="Widget"><file name="Link.php" hash="bad2d201324e439074ec22972d1e3972"/></dir></dir><dir name="Layer"><dir name="Filter"><file name="Abstract.php" hash="eefcbcb98818b2ae12e3506aada0c913"/><file name="Attribute.php" hash="d5bd80637bf7dd879ade11e6259f05d6"/><file name="Category.php" hash="06f66db270055c1153068ec990c54df5"/><file name="Decimal.php" hash="29865012d50a70ab2d144e4c0cb8ac9d"/><file name="Price.php" hash="5636ca99c6588924845c484594f1e873"/></dir><file name="State.php" hash="a9c13d850f4607a04d1c428e98a2c4c9"/><file name="View.php" hash="11e3c1f24d801f6431e3be49aca41583"/></dir><file name="Navigation.php" hash="89f15c96eb17886c364ddf87d4e456a4"/><dir name="Product"><file name="Abstract.php" hash="7328523670e73e435c44af3a5808b240"/><dir name="Compare"><file name="Abstract.php" hash="c48b7dab6bee655b6eadd762fd242606"/><file name="List.php" hash="f3cb7750c7227edd3b87e33ebe46cab3"/><file name="Sidebar.php" hash="aac8306a9e8613dfc7f2a0dc36b04398"/></dir><file name="Gallery.php" hash="357c7d68ef3eff66f551627a5d5d0467"/><dir name="List"><file name="Crosssell.php" hash="876a23484f926c2e29d2ec07a571dfc8"/><file name="Promotion.php" hash="f4bb4b4626b8a15443a4ae04bef9ae0e"/><file name="Random.php" hash="3541c59092f62a31889e5aebb00456d4"/><file name="Related.php" hash="f20a66f4de9ae05a91ca2091633ef51d"/><file name="Toolbar.php" hash="860922416d2d9ab6cb606e349ce4cc86"/><file name="Upsell.php" hash="955a21e298fd8d6ab05b4a71bdde936a"/></dir><file name="List.php" hash="e8e75d2e527d89da82eaee62608af684"/><file name="New.php" hash="1660afbb4e83ff8f7218c91c5c6aafcf"/><dir name="Price"><file name="Template.php" hash="174757929a4637d3d4569b7804409562"/></dir><file name="Price.php" hash="eeed225d412451fec2f937bce058dbb0"/><file name="Send.php" hash="563e1e0b47de6cded50958fc8ba7c943"/><dir name="View"><file name="Abstract.php" hash="b22e9d718bf41c5382c4dc58cc003f8b"/><file name="Additional.php" hash="64048a426caafbf36d41dab9e077dc84"/><file name="Attributes.php" hash="b9eb935b62dc4693f15604a3737b76e8"/><file name="Description.php" hash="62bcfd7556f13279339e0f8953b22e7f"/><file name="Media.php" hash="4e576e71f469f2210808ef5df5827246"/><dir name="Options"><file name="Abstract.php" hash="ee57d5767122bb1fc496aee7bdeec76a"/><dir name="Type"><file name="Date.php" hash="21eca2c2db2061b75cf944f1d8fd4a94"/><file name="Default.php" hash="d643f7ddf73ab70e504fd70a5c1460a7"/><file name="File.php" hash="407e9c7d21b1f8c8a7ba830487ce9e94"/><file name="Select.php" hash="cbe99df038ac71aca106800fc39f22b7"/><file name="Text.php" hash="8a74862cba8bf5aa680c5f9104bea6f6"/></dir></dir><file name="Options.php" hash="ff35316d33688661240c14d9dc567c05"/><file name="Price.php" hash="1f6e98dfdae3f71d86a84eef7ea98e90"/><file name="Tabs.php" hash="11630345e930dbcf6e9729a16b09a589"/><dir name="Type"><file name="Configurable.php" hash="e61c2916fa2b3de94ecc7c7683247b3f"/><file name="Grouped.php" hash="b131a8ec490670de0b7a0043f23d6707"/><file name="Simple.php" hash="4e2214d776eca1f2baae3b6774f7f2af"/><file name="Virtual.php" hash="df4a51eec042f9024c6dd9086456d93e"/></dir></dir><file name="View.php" hash="a0e4ad0acaaf8834ddaac74f2a2e0301"/><dir name="Widget"><dir name="Html"><file name="Pager.php" hash="e59c96a77fa455d8a2aeb09b15f0a234"/></dir><file name="Link.php" hash="2502953b5e8b48182daa221517ea76f9"/><file name="New.php" hash="4a9a8981957dc0511cece8c9a6f498e3"/></dir></dir><file name="Product.php" hash="4444c47b16af1ee34a1c77aff29dd3f5"/><dir name="Seo"><dir name="Sitemap"><file name="Abstract.php" hash="5c0e40f42669d48af47b389a28501475"/><file name="Category.php" hash="b5ac1974fe6256597bd24f4b15484ef5"/><file name="Product.php" hash="df73746b3b434bf7d893afb16146ef27"/><dir name="Tree"><file name="Category.php" hash="b5512d7fe864e588c070ff10dbe8ce3a"/><file name="Pager.php" hash="fb5588cd7322c23026f27638a45c8d65"/></dir></dir></dir><dir name="Widget"><file name="Link.php" hash="d2c57e7e866c3bba797b9ae3780afb47"/></dir></dir><file name="Exception.php" hash="32ae17c72416f6c75b88e74776a42a17"/><dir name="Helper"><dir name="Category"><file name="Flat.php" hash="2a2cf087a8b262591b88d789c7ff508a"/><dir name="Url"><dir name="Rewrite"><file name="Interface.php" hash="0c6a04a205885d1dfa6ba43aa60a78ab"/></dir><file name="Rewrite.php" hash="c9144f35444311c1de4b69adcba1011c"/></dir></dir><file name="Category.php" hash="d2c4aaf8f55f2301d2c0c3aadaff5f94"/><file name="Data.php" hash="7fd21ab1980277fe851d3dcdee2ee9f7"/><dir name="Flat"><file name="Abstract.php" hash="4a669e8b86c77ac0375a39ec9ebd1c22"/></dir><file name="Image.php" hash="206d09e955869c6c7afd049b17630631"/><file name="Map.php" hash="991aae7948ba842c94fefc0c878194c5"/><file name="Output.php" hash="e66c7741f02e3f4fce1c0e8550f80bfc"/><dir name="Product"><file name="Compare.php" hash="052778e69e62955d8ba74a3ae0047c9d"/><dir name="Configuration"><file name="Interface.php" hash="7d6901165ea30966851e82735c64daa1"/></dir><file name="Configuration.php" hash="c5ec178e865833147bc26ebd9cdfcfb9"/><file name="Flat.php" hash="2d8f5df2a838567dcf003376361401df"/><file name="Options.php" hash="98afa1990b749d872ce9aad28c8b3061"/><dir name="Type"><file name="Composite.php" hash="2c56ad7d1249dc7f80ee0401ed70ea10"/></dir><dir name="Url"><dir name="Rewrite"><file name="Interface.php" hash="9b4996a5e9d4daa89c036dbfbd771543"/></dir><file name="Rewrite.php" hash="acda3fe8908422645c410bc8bd624b24"/></dir><file name="Url.php" hash="b674d6731e3cb8c63e179bdcb76588ff"/><file name="View.php" hash="61797e538e15b10861c88a021841dfd3"/></dir><file name="Product.php" hash="04b2822dc8cc3fed9127c00a680e7b17"/></dir><dir name="Model"><file name="Abstract.php" hash="3103620674496397bb4d21b9ec28f34f"/><dir name="Api"><file name="Resource.php" hash="a9fcca8b2c3419a9bcbfe65e4041f939"/></dir><dir name="Api2"><dir name="Product"><dir name="Category"><dir name="Rest"><dir name="Admin"><file name="V1.php" hash="8e42c2fa4ea79661f52c74bc8e43be3d"/></dir><dir name="Customer"><file name="V1.php" hash="d59ddd14679c8f9aa2ae7db86933d883"/></dir><dir name="Guest"><file name="V1.php" hash="e8021ef740e59a287d260d05db4323dd"/></dir></dir><file name="Rest.php" hash="93da01fc7573f0cb21f5ce8491e6e964"/></dir><file name="Category.php" hash="fd88a7c38acc3a4557fd97b8b528ecb5"/><dir name="Image"><dir name="Rest"><dir name="Admin"><file name="V1.php" hash="dc9a608bdba7831626b0bb3359edffb7"/></dir><dir name="Customer"><file name="V1.php" hash="7a8ec1c18d4879fb8847b4d70dc5a9d4"/></dir><dir name="Guest"><file name="V1.php" hash="53575456ac195abf8394e62f5cd574fd"/></dir></dir><file name="Rest.php" hash="5fc432d50069268bf87de3dd29f2b976"/><dir name="Validator"><file name="Image.php" hash="01d68ef27814d7262873018bec12a16d"/></dir></dir><file name="Image.php" hash="458a3a2d0af701ce6d92a1920faf4c13"/><dir name="Rest"><dir name="Admin"><file name="V1.php" hash="83ef1afb58c8c5e3467fadfcc3dc72d4"/></dir><dir name="Customer"><file name="V1.php" hash="a341b1f231dec3c5b9742bfebcce7ec1"/></dir><dir name="Guest"><file name="V1.php" hash="53e0fdddf85dce5e474c706e528807b9"/></dir></dir><file name="Rest.php" hash="108eb659fd7de8d1d8dabf9d90abbbbf"/><dir name="Validator"><file name="Product.php" hash="69f20a23d0c413691ce8f3dcf01eedb3"/></dir><dir name="Website"><dir name="Rest"><dir name="Admin"><file name="V1.php" hash="23dc33bf46785827175930e1a15dc98e"/></dir></dir><file name="Rest.php" hash="a1a997aed079d3b7b27c0c395168a6bd"/><dir name="Validator"><dir name="Admin"><file name="Website.php" hash="e5b41e2f3cd67239b3226f5b580bcf1f"/></dir></dir></dir><file name="Website.php" hash="b490f8b56d66fe8c07429a7acfb23d1f"/></dir><file name="Product.php" hash="153b39154268727a39abbb70f206f293"/></dir><dir name="Attribute"><dir name="Backend"><file name="Customlayoutupdate.php" hash="8f3647c7ae0e9c71207091565a1d39d1"/><dir name="Urlkey"><file name="Abstract.php" hash="c0577637ef3b436a7218e9b6878adf19"/></dir></dir></dir><dir name="Category"><dir name="Api"><file name="V2.php" hash="e14aa15dd60b7968dc8a891791543b22"/></dir><file name="Api.php" hash="c2ec820764496fee4761a3652a45fe33"/><dir name="Attribute"><dir name="Api"><file name="V2.php" hash="fd7327a2eafc0a8a610f3a6fa39d22b1"/></dir><file name="Api.php" hash="8ab727a2af4401214c65d6a012b53b84"/><dir name="Backend"><file name="Image.php" hash="b8f275fc5befeeef8db39f4b42ed072d"/><file name="Sortby.php" hash="b4c6f5653a4b31079e40966511967c56"/><file name="Urlkey.php" hash="06f279de5fe222551e97b52ac1b59f31"/></dir><dir name="Source"><file name="Layout.php" hash="eba97851f2d59acec18db86202cbac4a"/><file name="Mode.php" hash="7aec1c98ef4706fbd84ee611d7529f8b"/><file name="Page.php" hash="9921b94d1305a74d8014c7eb3729cbf5"/><file name="Sortby.php" hash="1680da2e35d1232a59bb5e8139411f18"/></dir></dir><dir name="Indexer"><file name="Flat.php" hash="9d836804fb252ced0f1bae5e135a5e5a"/><file name="Product.php" hash="6bb2b173560b41800c67f1521ff2065c"/></dir><file name="Url.php" hash="d007be46a04160a3dab1c9ca48bf9b22"/></dir><file name="Category.php" hash="77f096d5a872a4af01317e2e7a9be122"/><file name="Config.php" hash="d2b67ebef5018fbe4806da55480fdf58"/><dir name="Convert"><dir name="Adapter"><file name="Catalog.php" hash="ec918565e45f17766817ea0a9aac9b5a"/><file name="Product.php" hash="5d8e58bdf5ba6aea18b51e7e53436351"/></dir><dir name="Parser"><file name="Product.php" hash="03dad5f92788f30c56329f84df76eb02"/></dir></dir><file name="Convert.php" hash="f4cb35d34b7e7b56c4ed16b28dde40c6"/><file name="Design.php" hash="3b424406387f0a395fb9bfee18eda2e7"/><dir name="Entity"><file name="Attribute.php" hash="65db780e088fefa284113d2a4d0d40bb"/><dir name="Product"><dir name="Attribute"><dir name="Design"><dir name="Options"><file name="Container.php" hash="cf987ae7b06b896650c8bbe35ebabed9"/></dir></dir><dir name="Frontend"><file name="Image.php" hash="2981031837295463e1d57f91b1b99512"/></dir></dir></dir></dir><file name="Factory.php" hash="5c940ab0d0ceae28c8a43a60f27e2d14"/><file name="Index.php" hash="3e6e38408882ce699a05cbccd5ed3c06"/><dir name="Indexer"><file name="Url.php" hash="a83fb403cb6ca1e6cb06aa98065705ba"/></dir><dir name="Layer"><dir name="Filter"><file name="Abstract.php" hash="8b543a2ea812d0100ed90183f8d54e9a"/><file name="Attribute.php" hash="6cf9b952b4a412dc1c5e662081ed7b76"/><file name="Category.php" hash="7fdfcc712efa16a0decc3786f5f28d83"/><file name="Decimal.php" hash="ebdf5a89c4a88f826101c27b98641f3d"/><file name="Item.php" hash="39b10c69714aaeab6b3980223d5f1544"/><dir name="Price"><file name="Algorithm.php" hash="2628a11cb85cd42fe49e89d56b14b4d1"/></dir><file name="Price.php" hash="9c536ad60547a4241e5e351a593b9bb0"/></dir><file name="State.php" hash="635bc64507b1d11312854ad582a08c38"/></dir><file name="Layer.php" hash="33f0735a45d5192876749545e960c80b"/><file name="Observer.php" hash="53b5ff795856c5a53ef73c2cac1875ea"/><dir name="Product"><file name="Action.php" hash="d9613b0275dde94f06e92b1454e95265"/><dir name="Api"><file name="V2.php" hash="f9fb5e59206b221a1af51af4d67720a6"/></dir><file name="Api.php" hash="8e921b1b5d0d9abaf414ea515ca9d833"/><dir name="Attribute"><dir name="Api"><file name="V2.php" hash="676fd9d10ea5a48f2a622da80ccb47f7"/></dir><file name="Api.php" hash="facd4342fe4a4500a5aad27974806b2f"/><dir name="Backend"><file name="Boolean.php" hash="8ef39bdda67176eafea7e35380862e7a"/><dir name="Groupprice"><file name="Abstract.php" hash="a032aa77fb64e0c5c6880e9683a13d9e"/></dir><file name="Groupprice.php" hash="4b9119c5a3f1a0a64b9e5e2f10349970"/><file name="Media.php" hash="9791d033e1b38e60530c7e187588c75d"/><file name="Msrp.php" hash="d2b4d99ed552f9cacf31634eef4eb78b"/><file name="Price.php" hash="b537265d74c73a8e0b1a59ca29ab59ca"/><file name="Recurring.php" hash="c5517fd0cb006a2ad38a7de84d57a3ce"/><file name="Sku.php" hash="40334dcdae3fca0ab8eb0cd9421933b7"/><dir name="Startdate"><file name="Specialprice.php" hash="aa33b14f5f1de6708efa6ef7a905b516"/></dir><file name="Startdate.php" hash="3f3819c60c86b91ae45b4ac279edb0fc"/><file name="Tierprice.php" hash="f978087f28711f7aec541e68e0f0f376"/><file name="Urlkey.php" hash="4c539dd4d1d3007a9d8fc09f967375d8"/></dir><dir name="Frontend"><file name="Image.php" hash="cae0a80831e2b3ca348577bf9dadd860"/></dir><file name="Group.php" hash="c233ddf9563a5b22d72232104384651b"/><dir name="Media"><dir name="Api"><file name="V2.php" hash="7f8b2e79e74698e557df3143e47f20ea"/></dir><file name="Api.php" hash="555d8539a15f3b5aa88c2f6244c49115"/></dir><dir name="Set"><dir name="Api"><file name="V2.php" hash="946b1c83955e059047f6ec3eb9985184"/></dir><file name="Api.php" hash="1580b4dfd2e989d83b0c3f451af58eed"/></dir><dir name="Source"><file name="Boolean.php" hash="e3acf66166cfb90ed611af2930a2e09a"/><file name="Countryofmanufacture.php" hash="f85b0a53f73e1ac0d8447132839ce577"/><file name="Inputtype.php" hash="e467064e239e36589353a6e6652c9138"/><file name="Layout.php" hash="e93a209f3093c5f5993d936ba6c2a6d2"/><dir name="Msrp"><dir name="Type"><file name="Enabled.php" hash="2ff76f69352ac583fd6ab9a85928733d"/><file name="Price.php" hash="f2dd34500faff206fa2d3e11bdf989ee"/></dir><file name="Type.php" hash="50a3f2d6ffac9dc2e08617811597733a"/></dir></dir><dir name="Tierprice"><dir name="Api"><file name="V2.php" hash="24d1eec7a3258cdbf86de7d99e714b9c"/></dir><file name="Api.php" hash="8385c627c4b3a36a97a6ce0e1ab8b855"/></dir></dir><dir name="Compare"><file name="Item.php" hash="63e7762670f57ac31acd8afa7367786f"/><file name="List.php" hash="27165978b12b654090aca4c348ffb6c8"/></dir><dir name="Condition"><file name="Interface.php" hash="4bac667bc046c13017377423fdde69f0"/></dir><file name="Condition.php" hash="c10a6a33977bd8a021bf83b0021b9abb"/><dir name="Configuration"><dir name="Item"><file name="Interface.php" hash="c07904168054df17507307f9c285b975"/><dir name="Option"><file name="Interface.php" hash="94125408528b68bc52b3b6cf1b2900fc"/></dir><file name="Option.php" hash="3c4c1ed602ccdd72b4ec151a18553d5a"/></dir></dir><dir name="Flat"><file name="Flag.php" hash="405820b0f95dab6fd33a749c21f7a5be"/><file name="Indexer.php" hash="3a7e8d73cae80a15a60c1c555a50a81c"/><file name="Observer.php" hash="769223829dc4d75b7593fa631b00dfb6"/></dir><file name="Image.php" hash="f40a8b18d965f4eab6dcc6891755ee13"/><dir name="Indexer"><file name="Eav.php" hash="7d74bc107ddc43da8498d77c97404ae8"/><file name="Flat.php" hash="1e6d861ae255d6b381f93e7eaf9e937b"/><file name="Price.php" hash="2624163fa13495ae28ee92ec587bf495"/></dir><dir name="Link"><dir name="Api"><file name="V2.php" hash="1485d465f1f47f879b7ce08dc58d0301"/></dir><file name="Api.php" hash="dfbb72a54bcb6c333f19b6b04553cda3"/></dir><file name="Link.php" hash="9fb1eeb979fb2e5a0854217feb11b798"/><dir name="Media"><file name="Config.php" hash="f0ac7b414a245deee9028917ade49cb9"/></dir><dir name="Option"><dir name="Api"><file name="V2.php" hash="295b9141f8b71108506896baaa0663e7"/></dir><file name="Api.php" hash="453d5d3d0a67ce2fefd9c449b744184a"/><file name="Observer.php" hash="11fc3d20f2880b159cc67ee863f5d403"/><dir name="Type"><file name="Date.php" hash="c4a7c48703337c027ad3d346224de33a"/><file name="Default.php" hash="36a093fe5b2aeb6a4c9992fbc70ca09c"/><file name="File.php" hash="5046c92d54f755462859a629d7bf12ae"/><file name="Select.php" hash="a1c5a0bfaafb1988ae9743646ec93c71"/><file name="Text.php" hash="d5d534ac247bde4bde6c4c502cfd5504"/></dir><dir name="Value"><dir name="Api"><file name="V2.php" hash="a68a7921a51f26bb3310478757b9e91a"/></dir><file name="Api.php" hash="a9230fb72895529e3212529fa035747b"/></dir><file name="Value.php" hash="2bcd5835204eec255f43fc763cabb19b"/></dir><file name="Option.php" hash="814db51ec4f4773266c176eb634c258c"/><file name="Status.php" hash="5dcbbe7769ef951715e659c2018cbd59"/><dir name="Type"><file name="Abstract.php" hash="4f466aae98f72edd97167c4b07180f5e"/><dir name="Api"><file name="V2.php" hash="81db9eb28dfa1cd4d927080d3a7ea612"/></dir><file name="Api.php" hash="3a6ebc6d8673b4f7af4ab2c5a3b12e16"/><dir name="Configurable"><file name="Attribute.php" hash="eb6e2a83ca8424339ac3cc0a5a4749c9"/><file name="Price.php" hash="1bea7b9f3d0de0946afa858a064fa379"/></dir><file name="Configurable.php" hash="3edd0599bf23f1995aa4963de3a55044"/><dir name="Grouped"><file name="Price.php" hash="0253182ccb911eabe8e19e669c8c7638"/></dir><file name="Grouped.php" hash="76016646cb2ea0a90160641e42d1a241"/><file name="Price.php" hash="6d2c627c4111efe5e4591697cdb22731"/><file name="Simple.php" hash="7f607549b4d12517f66a88987df9bb20"/><file name="Virtual.php" hash="829085212233f496782c9e9b031b6b3b"/></dir><file name="Type.php" hash="92b34b54f22e84f8ca82d0d9a746a562"/><file name="Url.php" hash="7f2ac3f907c3e6b6d9ea08c03723d2d5"/><file name="Visibility.php" hash="668ecfc9a1e2a53c0907088bc330c35e"/><file name="Website.php" hash="aa009a7f09e86588e7fb998b72a6ff5b"/></dir><file name="Product.php" hash="9dab6209a5352682012568a3bc3b8f25"/><dir name="Resource"><file name="Abstract.php" hash="f20d54eac39563874e060a0b181c42e1"/><file name="Attribute.php" hash="b6532d842732783f7ef1ebc3c38fd5b7"/><dir name="Category"><dir name="Attribute"><file name="Collection.php" hash="0e61f25ea822f1d50cbe0a97346ffbc0"/><dir name="Frontend"><file name="Image.php" hash="ec8d42c78ff0950dbc56e847e00afcf9"/></dir><dir name="Source"><file name="Layout.php" hash="b00432ca67ec3fc9e9322d4fb73f0cf6"/><file name="Mode.php" hash="391399eb421fc1d9b040c17020f6b741"/><file name="Page.php" hash="65d5115df4e8a006ae4b41e7be6b6b4e"/></dir></dir><file name="Collection.php" hash="7bfdbb5958be323e71dc4ea7b98af331"/><dir name="Flat"><file name="Collection.php" hash="072eb6260f847b9ce71bf38531ff5792"/></dir><file name="Flat.php" hash="d343d9a62fdbe22eb8634e178ebca640"/><dir name="Indexer"><file name="Product.php" hash="64e41b3a3d96c22b140adc45efef8006"/></dir><file name="Tree.php" hash="f0d2efe1b5319894776cb782df59edd2"/></dir><file name="Category.php" hash="e40e22f7750cd26686f3fa9272749898"/><dir name="Collection"><file name="Abstract.php" hash="409f7b6f1ad5cf20b04d2a37bc7620fb"/></dir><file name="Config.php" hash="2db6fae019ec79c5a7e6cb1daa8566bc"/><dir name="Eav"><file name="Attribute.php" hash="dd6e35d1579df9760022dd65f133bf66"/><dir name="Mysql4"><file name="Abstract.php" hash="ff5dbeb55fd6724afd42c09ed24cdc3c"/><file name="Attribute.php" hash="ede0ac3bfd412f86e2c36ed0a6f74b60"/><dir name="Category"><dir name="Attribute"><file name="Collection.php" hash="6d94bb5588fc4d1920e259037f93ffa4"/><dir name="Frontend"><file name="Image.php" hash="95a4d8e08d90d8da6b8340aa2b6f38f5"/></dir><dir name="Source"><file name="Layout.php" hash="929d6df5866c2fd332a2987b5d2fd953"/><file name="Mode.php" hash="6fed21b7c38e82b63b4edf38ad3be77c"/><file name="Page.php" hash="af44999736b5920e9a2ca662dff3cfaa"/></dir></dir><file name="Collection.php" hash="6c1e26b5f970df68c0858b7a6795fa78"/><dir name="Flat"><file name="Collection.php" hash="b56facaa8645f40ac01656900ae1f3cc"/></dir><file name="Flat.php" hash="3359d45de68809b455a8a9790633830c"/><dir name="Indexer"><file name="Product.php" hash="d294b0bd3c8aa36c8644b765377a9f26"/></dir><file name="Tree.php" hash="c0e160c2837e04122994443e26d5a8d8"/></dir><file name="Category.php" hash="859f32339e6411f3a4fd53e9ef484f55"/><dir name="Collection"><file name="Abstract.php" hash="672e5e04854b2c04acb50a2c22c6a5e0"/></dir><file name="Config.php" hash="6f86cfbbfabef5d5781a5c45bc2ac2cc"/><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="fcae67002e0a13614d5cfa11bb3f9044"/><file name="Decimal.php" hash="caa9eeee21a2dd5c806f3e83187a2e3b"/><file name="Price.php" hash="e49f552f44e6f59a97308bbed3d676ba"/></dir></dir><dir name="Product"><file name="Action.php" hash="e06b482cbb05de0f5c3a1b7f52c489bd"/><dir name="Attribute"><dir name="Backend"><file name="Image.php" hash="2438a13ffd8ba611955da135ba21c311"/><file name="Media.php" hash="d79857a5c10ac663691f55aa57b67957"/><file name="Tierprice.php" hash="ab380b633930301d131e0197f8747591"/><file name="Urlkey.php" hash="6c73b3436b040c859aadf9170c1bf9ea"/></dir><file name="Collection.php" hash="7b19cc84c1d35a09e775c70371c6a497"/><dir name="Frontend"><file name="Image.php" hash="16ec1ce2c602bcdb4764f04e97f8d1cc"/><file name="Tierprice.php" hash="bdaed65aa2d80a336a3966281893d7ae"/></dir></dir><file name="Collection.php" hash="97955be99c1f8f11f18b1af0763e9f5c"/><dir name="Compare"><dir name="Item"><file name="Collection.php" hash="80b9462ca1e9c0913d6d900d3da693f6"/></dir><file name="Item.php" hash="21919b8317303faa3b89d512ab268799"/></dir><dir name="Flat"><file name="Indexer.php" hash="de7818687372ab28543cd55c78bc4431"/></dir><file name="Flat.php" hash="4075045a5ccd98c92b5869873a4b29de"/><dir name="Indexer"><file name="Abstract.php" hash="734c4b1b6bad250cbd87c23cd03eb444"/><dir name="Eav"><file name="Abstract.php" hash="7b25ac3487d6e0549be448a453e6ea0f"/><file name="Decimal.php" hash="a56359dd2804d1b98e0bbdbb1f2023ac"/><file name="Source.php" hash="25353cd3162a000db1354bb031eba979"/></dir><file name="Eav.php" hash="eaaec7260717874a205b7c61e4c9a4b3"/><dir name="Price"><file name="Configurable.php" hash="31542ad203aef5d0185ce31471cb8773"/><file name="Default.php" hash="09efe3a441871a09940d183719369548"/><file name="Grouped.php" hash="1a09b97f2beaf2efcfdae52b1faf681d"/><file name="Interface.php" hash="b6e66a323e75e0c27584e232df6abb59"/></dir><file name="Price.php" hash="64837824ce41dd4e2a49e3c4e9355498"/></dir><dir name="Link"><file name="Collection.php" hash="2ae3996a8cac1413b9e3de5ea8b14385"/><dir name="Product"><file name="Collection.php" hash="a836990749fb372ebbd47608f5b2f04f"/></dir></dir><file name="Link.php" hash="f655704180895e85cc3245f5ea5134b8"/><dir name="Option"><file name="Collection.php" hash="27708fca4f45596a5e022eff29d19e66"/><dir name="Value"><file name="Collection.php" hash="c4746b8e0417aaafb693a0951f8c8676"/></dir><file name="Value.php" hash="041532a06fcd462d7dd481bb871cd070"/></dir><file name="Option.php" hash="184ae5c7ea858ea2029f57f59be809b9"/><file name="Relation.php" hash="07932cef0d70c5c2c42fa89bb0c1bfe5"/><file name="Status.php" hash="223c720090804a8ebed818cf36fe0193"/><dir name="Type"><dir name="Configurable"><dir name="Attribute"><file name="Collection.php" hash="c83735912b97dd31606ee4026745d8f0"/></dir><file name="Attribute.php" hash="ea01bce53397e1296418bd8ce58c9de4"/><dir name="Product"><file name="Collection.php" hash="5544baaa0fe365f68c82345f138f2cd3"/></dir></dir><file name="Configurable.php" hash="a3485101701ce27a1245face359bbacf"/></dir><file name="Website.php" hash="86d83b6ac6a33770f0d500af50249c7d"/></dir><file name="Product.php" hash="92cfd76f424656a754c5bc891e791cb7"/><dir name="Sendfriend"><file name="Collection.php" hash="c0a9d608296e3e14c54d6e1403fa0ce5"/></dir><file name="Sendfriend.php" hash="6d48bb31391b8f8b95e657cde0be7762"/><file name="Setup.php" hash="332bc2a49c8d89cc1da7ea3558b13752"/><file name="Url.php" hash="8ff30475c857c213a1524b92478cce47"/></dir></dir><dir name="Helper"><file name="Mysql4.php" hash="7c385341d8dfbe3e12417018501fe433"/></dir><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="f09cb0f19a7be42ab682ec67f3c2fbfb"/><file name="Decimal.php" hash="728037aecaabab3dea236d55ad466983"/><file name="Price.php" hash="81c8b318f93065a1313a5083985a6f5d"/></dir></dir><dir name="Product"><file name="Action.php" hash="3ecee6a9d5e528d1005c46feeffbd7fd"/><dir name="Attribute"><dir name="Backend"><dir name="Groupprice"><file name="Abstract.php" hash="3320e1ac24eed9782ac1eae7749a6f5c"/></dir><file name="Groupprice.php" hash="94ad553373be41f787f9f97ffa9004be"/><file name="Image.php" hash="98d7acc0ed12be48ff7c1ba82c3f4787"/><file name="Media.php" hash="7f7d8d066c4cf9b6b29b708e7b4b8c19"/><file name="Tierprice.php" hash="6abee5dcc3c234e50e8a2d7de254d0d9"/><file name="Urlkey.php" hash="2c13425706769e774a505009ffa87933"/></dir><file name="Collection.php" hash="f09a2706f0cc1c52d2106bb015b63256"/><dir name="Frontend"><file name="Image.php" hash="2031b292025aea8ad2c03698d8b88fdd"/><file name="Tierprice.php" hash="05a89f28521f362e39e959bba5f7c665"/></dir></dir><file name="Collection.php" hash="5e7c2d8882d8cff927d7993f8449ec4c"/><dir name="Compare"><dir name="Item"><file name="Collection.php" hash="4682910e74f1e83109a32b40f2d9f34f"/></dir><file name="Item.php" hash="a01172e17e3dad083a7a64f9cb6318f1"/></dir><dir name="Flat"><file name="Indexer.php" hash="cf608c32673e53c82b5218768c5a536c"/></dir><file name="Flat.php" hash="8193a7748b2a61d95cccbf050dc624ed"/><dir name="Indexer"><file name="Abstract.php" hash="4ce37f276d4aa581fc88ff92d61fe58c"/><dir name="Eav"><file name="Abstract.php" hash="0fe745af8f1b930ebd6dce5444672fdf"/><file name="Decimal.php" hash="0c4947e231e3722be366aff13f18b4bc"/><file name="Source.php" hash="e6eb02055fe59a3c33455ed6b8407481"/></dir><file name="Eav.php" hash="5687b6aef04079e2f27db54f60475ad1"/><dir name="Price"><file name="Configurable.php" hash="7e7e36cb2f769869b5b40f92f6edd89f"/><file name="Default.php" hash="a55d3119bdfeafafc098c77f7239a8a8"/><file name="Grouped.php" hash="e4629b734f76c5ef342407ace05e9c6c"/><file name="Interface.php" hash="b5cb0804860612471abeb6dafff7324c"/></dir><file name="Price.php" hash="2f1697c7c661b285d1afb6b42e1be83d"/></dir><dir name="Link"><file name="Collection.php" hash="4305b11e90fb5c1a795277e8d8b3c95d"/><dir name="Product"><file name="Collection.php" hash="924d095f564445185476e378e232123c"/></dir></dir><file name="Link.php" hash="bcd8db6c4d0e2d87a30bb65e243974f3"/><dir name="Option"><file name="Collection.php" hash="7624675ddb98f808be646109562ce272"/><dir name="Value"><file name="Collection.php" hash="69474973f904b263cbb9f1227d0c62db"/></dir><file name="Value.php" hash="8e9c636044ac2ec2c4c2342ed22011bd"/></dir><file name="Option.php" hash="a1118f95a3b411edd7767badf0e3838c"/><file name="Relation.php" hash="accc9f5e417192ca5ef4968564e9478e"/><file name="Status.php" hash="fed573760af2fddc873678ff57df5592"/><dir name="Type"><dir name="Configurable"><dir name="Attribute"><file name="Collection.php" hash="82a4ce119cfd7eae53fe790ffd309519"/></dir><file name="Attribute.php" hash="c768f597c9aec823e79a554d7cd4763a"/><dir name="Product"><file name="Collection.php" hash="b573e6295f5cc4a76eae1937559876be"/></dir></dir><file name="Configurable.php" hash="cd48973bc8b1b7484eea3be93713cb69"/></dir><file name="Website.php" hash="86b909ce4bb1bc5759df3381b9409e34"/></dir><file name="Product.php" hash="7acc4fb438509e65fd11e741403542e5"/><file name="Setup.php" hash="33355298a0b2d9e4012ba0712687e5a7"/><file name="Url.php" hash="b5a13b469f829617a8c0a73a1599a984"/></dir><file name="Session.php" hash="333421356b45a753ca190bd001cb2e68"/><dir name="System"><dir name="Config"><dir name="Backend"><dir name="Catalog"><dir name="Category"><file name="Flat.php" hash="2c8fe43e4a233bf8934704c7fe0a8ec0"/></dir><dir name="Product"><file name="Flat.php" hash="754061a0376e7a804be51ba5ff644e66"/></dir><dir name="Url"><dir name="Rewrite"><file name="Suffix.php" hash="23ecaf925ea7ef9197cf7c9423352a98"/></dir></dir></dir></dir></dir></dir><dir name="Template"><file name="Filter.php" hash="96c6dfeae7b67990d60d77bc162a5b1a"/></dir><file name="Url.php" hash="2f3325358a78597164094dfdec07b2a6"/></dir><dir name="controllers"><file name="CategoryController.php" hash="c7c68016b46bd824b748959d090013ee"/><file name="IndexController.php" hash="ac301f4a5039061c8d4cf5e58b90fb26"/><dir name="Product"><file name="CompareController.php" hash="a97e663d47459bf714484cdde8c0591d"/></dir><file name="ProductController.php" hash="aba9a281433847277420e5da2e769c82"/><dir name="Seo"><file name="SitemapController.php" hash="0ad9c48e4a286100a0157896b89c14ff"/></dir></dir><dir name="data"><dir name="catalog_setup"><file name="data-install-1.6.0.0.php" hash="c4ca68125954765c850feaec77d77105"/><file name="data-upgrade-1.6.0.0.12-1.6.0.0.13.php" hash="030e24354ba8aca75a886da56736e76a"/><file name="data-upgrade-1.6.0.0.13-1.6.0.0.14.php" hash="a63c31ff7ec6d9de4f11db70af34d702"/><file name="data-upgrade-1.6.0.0.19.1.3-1.6.0.0.19.1.4.php" hash="33fe7adfb9d165b343279939d54710e5"/><file name="data-upgrade-1.6.0.0.4-1.6.0.0.5.php" hash="cec64dd7df5eef024a8496a3f72e4372"/><file name="data-upgrade-1.6.0.0.8-1.6.0.0.9.php" hash="a43bf0ff9fb72e57db9b883bd45aa382"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="b562b0c4140a43cdc7ed3fa21374a606"/><file name="api.xml" hash="eed902fc50af484f6484357fd6d5e013"/><file name="api2.xml" hash="10e038b1f127f74e8c0e3d1153cdffd3"/><file name="config.xml" hash="cb9e29a8540a06ceb0c7ba8098344499"/><file name="convert.xml" hash="59dccc5cc29cb3fbfc94eee26b529db2"/><file name="system.xml" hash="09a2876b271dd61e39cf89abee735ee8"/><file name="widget.xml" hash="0068b7b010d4985eb83b865ea838586d"/><file name="wsdl.xml" hash="fa198392d766134085b3c2ec1be4a0e9"/><file name="wsi.xml" hash="0acfd65c613ccb83404317500078a85d"/></dir><dir name="sql"><dir name="catalog_setup"><file name="install-1.6.0.0.php" hash="a57c3b2a53aa6384c2f0a693353fcba1"/><file name="mysql4-data-upgrade-0.7.57-0.7.58.php" hash="2120fdc78c6000ef2134b217f8c74f74"/><file name="mysql4-data-upgrade-0.7.63-0.7.64.php" hash="8f51c57d94bca45d11e27a0d8055147f"/><file name="mysql4-data-upgrade-1.4.0.0.28-1.4.0.0.29.php" hash="a194850e9a5388bf38b1ba5aa8739414"/><file name="mysql4-data-upgrade-1.4.0.0.42-1.4.0.0.43.php" hash="d0175f8e452128201765735009a5851e"/><file name="mysql4-install-0.7.0.php" hash="650ac4b7aff67f5e83639013d8f2b9fe"/><file name="mysql4-install-1.4.0.0.0.php" hash="243371a61b6c1e942b31abfaf4448d8f"/><file name="mysql4-upgrade-0.6.40-0.7.0.php" hash="2ea5fccbfdfd7dc682c57c1f0a4fe77e"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="dea20de1987cf262ec8ce66e6d05d785"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="8b171bb907cf9fac38b1ca561be15e9a"/><file name="mysql4-upgrade-0.7.11-0.7.12.php" hash="67cc3f88d62d577099591dba703591ab"/><file name="mysql4-upgrade-0.7.12-0.7.13.php" hash="5743235727dfa1b1745346d4a665dde0"/><file name="mysql4-upgrade-0.7.13-0.7.14.php" hash="c913f966bfbe54f9afc179916e346e3f"/><file name="mysql4-upgrade-0.7.14-0.7.15.php" hash="eda07a21268160d97d458708dccf3b5e"/><file name="mysql4-upgrade-0.7.15-0.7.16.php" hash="cbba89e54536d02170e5456e2b079ffd"/><file name="mysql4-upgrade-0.7.16-0.7.17.php" hash="5743235727dfa1b1745346d4a665dde0"/><file name="mysql4-upgrade-0.7.17-0.7.18.php" hash="7d1d1bead20fdf38cfab28cb21e78d6f"/><file name="mysql4-upgrade-0.7.18-0.7.19.php" hash="b6735d410395dfd34f21458427f99a13"/><file name="mysql4-upgrade-0.7.19-0.7.20.php" hash="67cc3f88d62d577099591dba703591ab"/><file name="mysql4-upgrade-0.7.2-0.7.3.php" hash="54a7a140bc602006a071acb6641673f7"/><file name="mysql4-upgrade-0.7.20-0.7.21.php" hash="4ba67e9710ca055f98a63d1df6c4f31f"/><file name="mysql4-upgrade-0.7.21-0.7.22.php" hash="ee461b2f49e962b362e1cfee547ecd9e"/><file name="mysql4-upgrade-0.7.22-0.7.23.php" hash="f61b8a86749dce0df458b02a835efe68"/><file name="mysql4-upgrade-0.7.23-0.7.24.php" hash="2050ea455761178daa9d220a34cd8254"/><file name="mysql4-upgrade-0.7.24-0.7.25.php" hash="261e90a21d40864974e60972cda1ae1c"/><file name="mysql4-upgrade-0.7.25-0.7.26.php" hash="261e90a21d40864974e60972cda1ae1c"/><file name="mysql4-upgrade-0.7.26-0.7.27.php" hash="2e2061fcffef07742e04f465c4545c64"/><file name="mysql4-upgrade-0.7.27-0.7.28.php" hash="047e843051f421435db7f9d45ad1bf3c"/><file name="mysql4-upgrade-0.7.28-0.7.29.php" hash="bad4802d0e999950f441f2adc841b8c7"/><file name="mysql4-upgrade-0.7.29-0.7.30.php" hash="448c3f0262d320927a67c3bdf2248b87"/><file name="mysql4-upgrade-0.7.30-0.7.31.php" hash="34ca255178a097f0bfd58d63024ff303"/><file name="mysql4-upgrade-0.7.31-0.7.32.php" hash="9c2270289ec1119ab13292825b7260e8"/><file name="mysql4-upgrade-0.7.32-0.7.33.php" hash="805cfe42d016780188eb0cb7bf5199fd"/><file name="mysql4-upgrade-0.7.33-0.7.34.php" hash="c115797b39ca05a11ba359bd2a997006"/><file name="mysql4-upgrade-0.7.34-0.7.35.php" hash="5e0c9878dca7097f391deb7f12041666"/><file name="mysql4-upgrade-0.7.35-0.7.36.php" hash="8c2ea970a1f8bfb1e4f8a44cbdb38fe6"/><file name="mysql4-upgrade-0.7.36-0.7.37.php" hash="07bf9ea01a058db11f3f53c2b262a547"/><file name="mysql4-upgrade-0.7.37-0.7.38.php" hash="30c07450806e0c47785c87ef33b93c30"/><file name="mysql4-upgrade-0.7.38-0.7.39.php" hash="b9272cd795d086256e30c392301dd694"/><file name="mysql4-upgrade-0.7.39-0.7.40.php" hash="48bddb7f32ca326c121521bea4aa123d"/><file name="mysql4-upgrade-0.7.4-0.7.5.php" hash="0e42c040a8ad7cdcd333513ad3242ea1"/><file name="mysql4-upgrade-0.7.40-0.7.41.php" hash="681a24fc90e818f247c9278e56fc22cf"/><file name="mysql4-upgrade-0.7.41-0.7.42.php" hash="9d42b6ee298ac25fb328fa5146492753"/><file name="mysql4-upgrade-0.7.43-0.7.44.php" hash="050e5d63ebfa04bdd57a6309679166f5"/><file name="mysql4-upgrade-0.7.44-0.7.45.php" hash="1a4cc1c7e259401c57aed4220483e633"/><file name="mysql4-upgrade-0.7.45-0.7.46.php" hash="5a4654a62a0811396925e2ca4adb2a46"/><file name="mysql4-upgrade-0.7.46-0.7.47.php" hash="c8b8e5055e15d33a8022ecc6adc77014"/><file name="mysql4-upgrade-0.7.47-0.7.48.php" hash="957376949159b9eb8753c9fa28a5a867"/><file name="mysql4-upgrade-0.7.48-0.7.49.php" hash="aaed0cde1206d55bf44cd3e6686af190"/><file name="mysql4-upgrade-0.7.49-0.7.50.php" hash="57b37f0719b078c4c625764d85ae5b03"/><file name="mysql4-upgrade-0.7.5-0.7.6.php" hash="7e0c59fa1f5d9f140fa31b3301efab6b"/><file name="mysql4-upgrade-0.7.50-0.7.51.php" hash="622a111a3f2b81c5d32b6d8025d1d048"/><file name="mysql4-upgrade-0.7.51-0.7.52.php" hash="b4c13ba1d8f8957f774abaf72ef35447"/><file name="mysql4-upgrade-0.7.52-0.7.53.php" hash="f62ec5e18aa80e66187cdf3b1de278de"/><file name="mysql4-upgrade-0.7.53-0.7.54.php" hash="757aa6098ea17b17d3116902dc7be3b3"/><file name="mysql4-upgrade-0.7.54-0.7.55.php" hash="96dc0d387fe6041c12a5cfa7014436f7"/><file name="mysql4-upgrade-0.7.55-0.7.56.php" hash="be67dce7c1e4b162e6f84d404ebf754d"/><file name="mysql4-upgrade-0.7.56-0.7.57.php" hash="3a269e09567cbc6bb616358059ab166d"/><file name="mysql4-upgrade-0.7.57-0.7.58.php" hash="3286e68856de2df6ad4727f4b06bb675"/><file name="mysql4-upgrade-0.7.58-0.7.59.php" hash="9d7e86bdc91bebcaa869322794fecf8b"/><file name="mysql4-upgrade-0.7.59-0.7.60.php" hash="38f210380cacc867ab17c56a6fefc71c"/><file name="mysql4-upgrade-0.7.6-0.7.7.php" hash="67cc3f88d62d577099591dba703591ab"/><file name="mysql4-upgrade-0.7.60-0.7.61.php" hash="0aa5d71181602994e81e57d12855dc41"/><file name="mysql4-upgrade-0.7.61-0.7.62.php" hash="115303e7a95de11ae88f7fc7d5bbad3d"/><file name="mysql4-upgrade-0.7.62-0.7.63.php" hash="05513ae185d2218c0cd7149a22d1ccd8"/><file name="mysql4-upgrade-0.7.63-0.7.64.php" hash="3361281520cea0d31c4ee630d7d727e4"/><file name="mysql4-upgrade-0.7.64-0.7.65.php" hash="92e376ef0bba20d8b619275fa76e139d"/><file name="mysql4-upgrade-0.7.65-0.7.66.php" hash="48d6fec6dde29cd75041f4d4ce5ee67e"/><file name="mysql4-upgrade-0.7.66-0.7.67.php" hash="d2976659ace49f2a265329db12b03129"/><file name="mysql4-upgrade-0.7.67-0.7.68.php" hash="89d1c98c285f09c343849cc930527b34"/><file name="mysql4-upgrade-0.7.68-0.7.69.php" hash="ea616d8ba8039db50d7d75460e2a1f46"/><file name="mysql4-upgrade-0.7.69-0.7.70.php" hash="52d5ad25a00242d9cea51db2b593021c"/><file name="mysql4-upgrade-0.7.7-0.7.8.php" hash="a68c2cd5a586e87a9351ee854cbd0d08"/><file name="mysql4-upgrade-0.7.70-0.7.71.php" hash="4247e7a1304a682043f2c028f8acface"/><file name="mysql4-upgrade-0.7.71-0.7.72.php" hash="b8d499e3820e95098b59241f1c1568f3"/><file name="mysql4-upgrade-0.7.72-0.7.73.php" hash="8387086581ab89ea580994e764abfdac"/><file name="mysql4-upgrade-0.7.73-1.4.0.0.0.php" hash="29b12a0fc191bed325fddadf54c24a08"/><file name="mysql4-upgrade-0.7.8-0.7.9.php" hash="180699aa8d5b88a650ee277ebbf77452"/><file name="mysql4-upgrade-1.4.0.0.0-1.4.0.0.1.php" hash="3b55a162a3af253b6506129c6df6360b"/><file name="mysql4-upgrade-1.4.0.0.1-1.4.0.0.2.php" hash="34a6f5923b96527a664a5598a8727a95"/><file name="mysql4-upgrade-1.4.0.0.10-1.4.0.0.11.php" hash="033f0c35991ba3a9c243f97e129c1269"/><file name="mysql4-upgrade-1.4.0.0.11-1.4.0.0.12.php" hash="a6faac10dad9ac7e8c7bba5ac816888e"/><file name="mysql4-upgrade-1.4.0.0.12-1.4.0.0.13.php" hash="ac727df9feaafbe4f71cf474ff734aaa"/><file name="mysql4-upgrade-1.4.0.0.13-1.4.0.0.14.php" hash="c28e9f8b3214308cb5a5d1da629b0245"/><file name="mysql4-upgrade-1.4.0.0.14-1.4.0.0.15.php" hash="2e39a7bfbd42ff9172a555d5610dd046"/><file name="mysql4-upgrade-1.4.0.0.15-1.4.0.0.16.php" hash="76eb00176e848426a7c2f2fa12a9c747"/><file name="mysql4-upgrade-1.4.0.0.16-1.4.0.0.17.php" hash="45f0e737d823702d981f3ee0ae700558"/><file name="mysql4-upgrade-1.4.0.0.17-1.4.0.0.18.php" hash="e90d278a0f5042539090da25152bfa90"/><file name="mysql4-upgrade-1.4.0.0.18-1.4.0.0.19.php" hash="72b100195e2885b4ef08c8d8c8f0a554"/><file name="mysql4-upgrade-1.4.0.0.19-1.4.0.0.20.php" hash="6b52232190f3c6bfbe6795c696477f61"/><file name="mysql4-upgrade-1.4.0.0.2-1.4.0.0.3.php" hash="2a830069f6b45abe68b6c752038c0ff1"/><file name="mysql4-upgrade-1.4.0.0.20-1.4.0.0.21.php" hash="b9b9101807c38728146574fb9ea943c9"/><file name="mysql4-upgrade-1.4.0.0.21-1.4.0.0.22.php" hash="bcf38c56ad3adb48a39de63d4d5a9743"/><file name="mysql4-upgrade-1.4.0.0.22-1.4.0.0.23.php" hash="235f71a24ea39c231e98db12a42b61b2"/><file name="mysql4-upgrade-1.4.0.0.23-1.4.0.0.24.php" hash="331fa853150d1ffa8c516d212aa2f8ad"/><file name="mysql4-upgrade-1.4.0.0.24-1.4.0.0.25.php" hash="82812309ff548852b02f1ed3e237fa88"/><file name="mysql4-upgrade-1.4.0.0.25-1.4.0.0.26.php" hash="b05811676a5dce07cef80ef120e8d81e"/><file name="mysql4-upgrade-1.4.0.0.26-1.4.0.0.27.php" hash="319cb1b721425218dfdbb8e6b35d2696"/><file name="mysql4-upgrade-1.4.0.0.27-1.4.0.0.28.php" hash="b05b195b2f019e9809ae5f632a290716"/><file name="mysql4-upgrade-1.4.0.0.28-1.4.0.0.29.php" hash="9dd311b7b21faa2ea4d51255ba418b4a"/><file name="mysql4-upgrade-1.4.0.0.3-1.4.0.0.4.php" hash="cbe028d3212877dd34d99d5dcebc6b5a"/><file name="mysql4-upgrade-1.4.0.0.30-1.4.0.0.31.php" hash="6467bf0816d5824368b73f14881a9594"/><file name="mysql4-upgrade-1.4.0.0.31-1.4.0.0.32.php" hash="63d31a684aae6f3685de3bdba5fa8382"/><file name="mysql4-upgrade-1.4.0.0.32-1.4.0.0.33.php" hash="e10a90a8b43ed815b753039927d987b6"/><file name="mysql4-upgrade-1.4.0.0.33-1.4.0.0.34.php" hash="6ff59cc05f2ba9cbaac47771bcf22ea3"/><file name="mysql4-upgrade-1.4.0.0.34-1.4.0.0.35.php" hash="2437bcdce44398b9ed73ed1e3decba40"/><file name="mysql4-upgrade-1.4.0.0.35-1.4.0.0.36.php" hash="68e92c8f846da8d06a49c7fa80d3262b"/><file name="mysql4-upgrade-1.4.0.0.36-1.4.0.0.37.php" hash="a52db42ba61e1621f7843566633367f3"/><file name="mysql4-upgrade-1.4.0.0.37-1.4.0.0.38.php" hash="c922e3c1000cf84cda132c340578b35b"/><file name="mysql4-upgrade-1.4.0.0.38-1.4.0.0.39.php" hash="346f6a122b15b7f1ac8e8a2f25a5f748"/><file name="mysql4-upgrade-1.4.0.0.39-1.4.0.0.40.php" hash="a1d2f7e1b745850087b5e23a19ced0c1"/><file name="mysql4-upgrade-1.4.0.0.4-1.4.0.0.5.php" hash="863fcd3a4d5f0d7f5a589d89e08291a5"/><file name="mysql4-upgrade-1.4.0.0.40-1.4.0.0.41.php" hash="e9b96de3dab54f6eb5b44ed1a6796dc5"/><file name="mysql4-upgrade-1.4.0.0.41-1.4.0.0.42.php" hash="75eefbda635369ec825856c3111419ac"/><file name="mysql4-upgrade-1.4.0.0.43-1.4.0.0.44.php" hash="44955c234a43e88720d98e69bed21d66"/><file name="mysql4-upgrade-1.4.0.0.5-1.4.0.0.6.php" hash="2b2d2223ab82953f2d561cecfc0565f4"/><file name="mysql4-upgrade-1.4.0.0.6-1.4.0.0.7.php" hash="e3a56b28711daac89ba7f7f0a0f1c236"/><file name="mysql4-upgrade-1.4.0.0.7-1.4.0.0.8.php" hash="20ec846642be63a3c0185211f45a4683"/><file name="mysql4-upgrade-1.4.0.0.8-1.4.0.0.9.php" hash="de70d7d3fb9ac7702845c5486f251a7e"/><file name="mysql4-upgrade-1.4.0.0.9-1.4.0.0.10.php" hash="d020d258926fad12d51577fb92238711"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="e9d8993129029d6ce440139fe76d2ae3"/><file name="mysql4-upgrade-1.6.0.0.8-1.6.0.0.9.php" hash="0e7307795fa7b2020f3e7d7068664395"/><file name="upgrade-1.6.0.0-1.6.0.0.1.php" hash="018fc237065f4d0f3d467f40b6337eb3"/><file name="upgrade-1.6.0.0.1-1.6.0.0.2.php" hash="ae66a75fdc23f3b148a98ff5f7189e75"/><file name="upgrade-1.6.0.0.10-1.6.0.0.11.php" hash="f4c233432fc57f2dad363dfa899eebe1"/><file name="upgrade-1.6.0.0.11-1.6.0.0.12.php" hash="38c8277fa9982c564b395248794a0fcf"/><file name="upgrade-1.6.0.0.14-1.6.0.0.15.php" hash="9d146cf31e038d66f1a6fbe754db7c8f"/><file name="upgrade-1.6.0.0.15-1.6.0.0.18.php" hash="57dc7ac4fdfb98a730fd06a8c52fb59e"/><file name="upgrade-1.6.0.0.18-1.6.0.0.19.php" hash="21c046f401d22b516e1a770e5b1e236f"/><file name="upgrade-1.6.0.0.19.1.1-1.6.0.0.19.1.2.php" hash="c7ac3babd810049a182c93b938467a2a"/><file name="upgrade-1.6.0.0.19.1.2-1.6.0.0.19.1.3.php" hash="fa45ba4962aaead2f228b24d7689b147"/><file name="upgrade-1.6.0.0.19.1.4-1.6.0.0.19.1.5.php" hash="00f9556e80b5c888cb8003cf895573b7"/><file name="upgrade-1.6.0.0.2-1.6.0.0.3.php" hash="756234b5c7485325e34e07d0ceb575b6"/><file name="upgrade-1.6.0.0.3-1.6.0.0.4.php" hash="d8db9fed9a6b4c3fb944f7fc2cde147e"/><file name="upgrade-1.6.0.0.4-1.6.0.0.5.php" hash="8beffe03092e948fad66fc023a34ab6e"/><file name="upgrade-1.6.0.0.5-1.6.0.0.6.php" hash="bc7b55027d59403cb325f1f79be7ec95"/><file name="upgrade-1.6.0.0.6-1.6.0.0.7.php" hash="74cdd027eb485ce7a38e5910f90c3833"/><file name="upgrade-1.6.0.0.7-1.6.0.0.8.php" hash="88c429ccc6589bc338a8f7459f0560d2"/><file name="upgrade-1.6.0.0.9-1.6.0.0.10.php" hash="3afc43cd784b7397da0318b7dd60c314"/></dir></dir></dir><dir name="CatalogIndex"><dir name="Model"><file name="Aggregation.php" hash="d8446e11e4e245b251f88cfd4da269b7"/><file name="Attribute.php" hash="e6216e285d12b7b51b0dff0d81747fca"/><dir name="Catalog"><dir name="Index"><file name="Flag.php" hash="e1eb655da746408366e7a977d28f6209"/><dir name="Kill"><file name="Flag.php" hash="1d37bd5c967979aa21bc99d6bc9f7154"/></dir></dir></dir><dir name="Data"><file name="Abstract.php" hash="d9f91599be307f824b17ba55a03777c3"/><file name="Configurable.php" hash="c98b4e4546bbf5af9cdec5bf4d32779c"/><file name="Grouped.php" hash="8964208ac3299ed7a0e918a1ad282c4d"/><file name="Simple.php" hash="966919e26852450fde971814d9267314"/><file name="Virtual.php" hash="34c4e295e18d47a3f0c84000c7cf37b7"/></dir><dir name="Indexer"><file name="Abstract.php" hash="163c7eb1f9d54cf54919c301a50d08bc"/><file name="Eav.php" hash="5f2d4772baae0ae42a3e963e9e6d1398"/><file name="Interface.php" hash="1701436dc2c161fc778c18135dad5579"/><file name="Minimalprice.php" hash="eb3b85b428e99ed84ff4226ce6430c00"/><file name="Price.php" hash="96f194a17250f6bf3c9737f5eb5b82f4"/><file name="Tierprice.php" hash="1765d4fed0a73ae74e756ac5f853aeaf"/></dir><file name="Indexer.php" hash="42484b0ee84d41b72aadad7334fda63b"/><dir name="Mysql4"><file name="Abstract.php" hash="8d7b96a754563d987b35f54ba1807457"/><file name="Aggregation.php" hash="82843ec810859f175730e7ca27225fca"/><file name="Attribute.php" hash="7e23d064ce0f6e24501c97cacd21adaa"/><dir name="Data"><file name="Abstract.php" hash="c869b2447587f487d821e953cde65236"/><file name="Configurable.php" hash="d841008e1a838053533d6a02ca3db950"/><file name="Grouped.php" hash="9765ee55da8451f5d76796eeb996f5d4"/></dir><dir name="Indexer"><file name="Abstract.php" hash="2e9a20aae085d294fbbccd65b34aee6f"/><file name="Eav.php" hash="a91a531718dd714f86f5819b8a4c3f22"/><file name="Minimalprice.php" hash="139a035f3cd6627a4b622471fa6bf6aa"/><file name="Price.php" hash="7d118cd7699496534a6318140f213256"/></dir><file name="Indexer.php" hash="aaa9010ef33d1e3b6e3babe05404a0e8"/><file name="Price.php" hash="5b01f7a082382b399f8cc02fc5f8637a"/><file name="Retreiver.php" hash="a8d0312325f1fcb397f1a816786cae9a"/><file name="Setup.php" hash="7c74778b63f245643a02b3133532fa0a"/></dir><file name="Observer.php" hash="4c4839c5c6289e4a68a4e68055d0fc39"/><file name="Price.php" hash="3cede2cadd925a804f5ab4533a0aedb6"/><dir name="Resource"><file name="Abstract.php" hash="6d28df0cb41449e78938675c2177ea5b"/><file name="Aggregation.php" hash="357e91b7049334de0d0e2242c40d6af5"/><file name="Attribute.php" hash="1c6e6fcd593b3982206ee870740b6632"/><dir name="Data"><file name="Abstract.php" hash="44d9ff50977584d81e3732a6bfca8c66"/><file name="Configurable.php" hash="33c11796275c59a0ccb21475d5fca796"/><file name="Grouped.php" hash="aee13957e362b6b29da1e130a0c9183e"/></dir><dir name="Indexer"><file name="Abstract.php" hash="77bd665e3220fba4e8874a2c9415f0f4"/><file name="Eav.php" hash="eeb4d41a3b496b7fa452aa7a88eb219f"/><file name="Minimalprice.php" hash="9e4e2c07140ee094c03dcf870fc7a8af"/><file name="Price.php" hash="b80a57584e61871ff1796c752f78110f"/></dir><file name="Indexer.php" hash="62590ce725754ad991a4b13b7631d100"/><file name="Price.php" hash="463262c0563bfbc9b4b12931edd38940"/><file name="Retreiver.php" hash="105b6e091067d5ad5ffbba34ec6de9e8"/><file name="Setup.php" hash="1e75b2e97a20aab6b916d800595a1423"/></dir><file name="Retreiver.php" hash="b0bad24bf9db93ad36c6a3f12cd6912e"/></dir><dir name="etc"><file name="config.xml" hash="a53aa3f175d09e5ec6364d19c0a41b05"/></dir><dir name="sql"><dir name="catalogindex_setup"><file name="install-1.6.0.0.php" hash="0301fb68116b2e5c6e57829c85770221"/><file name="mysql4-install-0.7.0.php" hash="ef60e25208b1c1c69f7760f788608866"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="edb518ac2880e64a3d1196fcca5c5408"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="5b08f13eecdbb190392bb1079ea992fa"/><file name="mysql4-upgrade-0.7.2-0.7.3.php" hash="79a5d99838ab289d59644b628479549d"/><file name="mysql4-upgrade-0.7.3-0.7.4.php" hash="86691781b4c72f2e3c009dbb219449d7"/><file name="mysql4-upgrade-0.7.4-0.7.5.php" hash="e0bbb2cf8699048f0dd4f11e26ee5b6f"/><file name="mysql4-upgrade-0.7.5-0.7.6.php" hash="ba2a3bf8d66332e75bda38855c520895"/><file name="mysql4-upgrade-0.7.6-0.7.7.php" hash="ce4b36e3b2e090fed799fcd96c1f3b4b"/><file name="mysql4-upgrade-0.7.7-0.7.8.php" hash="e9fb63a6f1712e39622423875a731f80"/><file name="mysql4-upgrade-0.7.8-0.7.9.php" hash="9cb3838b1c74e3ebb09bd1275d598d32"/><file name="mysql4-upgrade-0.7.9-0.7.10.php" hash="e49c1677360cdb321d1dc5fab9507457"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="c9a23a1358aa13ee28bfadf65ca8d70a"/></dir></dir></dir><dir name="CatalogInventory"><dir name="Block"><dir name="Adminhtml"><dir name="Form"><dir name="Field"><file name="Customergroup.php" hash="163d3b06c6d929bcbb5aa7bcc37dd3b0"/><file name="Minsaleqty.php" hash="a1253bfe158b1c145657c13d7f530c52"/></dir></dir></dir><file name="Qtyincrements.php" hash="0b959b5a8399ff56452d30bf872c1af5"/><dir name="Stockqty"><file name="Abstract.php" hash="634f12287ffad43305214d5425338a79"/><file name="Composite.php" hash="39a929bff736748e49c8762cef926fae"/><file name="Default.php" hash="2b9c5f6a616b4d46ee15d5665b2c1012"/><dir name="Type"><file name="Configurable.php" hash="22930288268d14c881af4b0e228f5a77"/><file name="Grouped.php" hash="299fcfde251b737162a76c738b709af3"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="533b21d642ec4d0da92a493a52a9fcdf"/><file name="Minsaleqty.php" hash="252c7dc08342b1b576cd15adf6896cc3"/></dir><dir name="Model"><dir name="Api2"><dir name="Stock"><dir name="Item"><dir name="Rest"><dir name="Admin"><file name="V1.php" hash="c84e4ed181f22fa7b7af3c76ed05b18f"/></dir></dir><file name="Rest.php" hash="e270aadfdfe27e36ce10ce652df5cd5f"/><dir name="Validator"><file name="Item.php" hash="b9d1b5db0d174bf229f6481140eccf61"/></dir></dir><file name="Item.php" hash="b1e6789de22bc81cd8c9e5d418f6e417"/></dir></dir><dir name="Indexer"><file name="Stock.php" hash="86bb76e8c6e4eed87e48a7f1d5969118"/></dir><dir name="Mysql4"><dir name="Indexer"><dir name="Stock"><file name="Configurable.php" hash="c575d00d8ec9f9a02fd2fc91f093e862"/><file name="Default.php" hash="71fef27bb3953dab13046778d6cc85cb"/><file name="Grouped.php" hash="681655f42e1abf8a5e4c65bcd51b9632"/><file name="Interface.php" hash="6f8454915dcd8d4c0aa8098ac47d3149"/></dir><file name="Stock.php" hash="aa87f7c0f015fe5348afbf63d8b64307"/></dir><dir name="Stock"><dir name="Item"><file name="Collection.php" hash="d89055e9f449549be221f5e68157f53b"/></dir><file name="Item.php" hash="0095d1ccf8329fb63a3506ae6a2edb28"/><file name="Status.php" hash="dbfb58bd7d8ae6a805d15ea4520740fc"/></dir><file name="Stock.php" hash="b92334f297141b9295798bc2e4608675"/></dir><file name="Observer.php" hash="29a2f1d731037a75fa2e3ac539e9750b"/><dir name="Resource"><dir name="Indexer"><dir name="Stock"><file name="Configurable.php" hash="cc79a58c240df2dea5a7876596f4fa98"/><file name="Default.php" hash="dd5890df9d9d4dec9eaa9a22311cf636"/><file name="Grouped.php" hash="645cece573ebe2ae8c9a5b44a5d5875a"/><file name="Interface.php" hash="935fe279b249565fe7fc209bed740516"/></dir><file name="Stock.php" hash="47cac76c6e244d2f76686813fb8bc00a"/></dir><dir name="Stock"><dir name="Item"><file name="Collection.php" hash="9dd080a07edee641c784c898b5295238"/></dir><file name="Item.php" hash="a2064ba40b20174a12164cc36d3bd33d"/><file name="Status.php" hash="ad92e42f445a27ff103eb6f1b8fb63f3"/></dir><file name="Stock.php" hash="ad4cbd3e0236e529cd80a11de1b7a53a"/></dir><dir name="Source"><file name="Backorders.php" hash="7f08d25b4803c2b5b85e29e5af359c37"/><file name="Stock.php" hash="b9450ed75a0d1be3c4daeea22202a455"/></dir><dir name="Stock"><dir name="Item"><dir name="Api"><file name="V2.php" hash="783c76e4aed5a72e67a7de070185b741"/></dir><file name="Api.php" hash="e39eb5620e1f577cb51e9feae480c035"/></dir><file name="Item.php" hash="a7b33c47af793511fb67d3a00319654d"/><file name="Status.php" hash="20fbca52b8afa08194b67aa6b2c16c44"/></dir><file name="Stock.php" hash="d6185257041d13f6b566d6601b49edb2"/><dir name="System"><dir name="Config"><dir name="Backend"><file name="Minqty.php" hash="00aa4d4dba81277cb07a21de73133759"/><file name="Minsaleqty.php" hash="a29d77d011b419a9786b1d7f17ede6af"/><file name="Qtyincrements.php" hash="5663f823ca9993f8995a70d6a909d88e"/></dir></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="ec7bc5e2292512488a4248e8dbd1631e"/><file name="api.xml" hash="b037c38c8dfc663cbf6e1c1353e5d252"/><file name="api2.xml" hash="f983c350e9c44229e4fc4d41ce294d91"/><file name="config.xml" hash="79dd5f14b3d64fb65f20d5f3e3309a12"/><file name="system.xml" hash="d962c914c34134200d08f18d87d2fb00"/><file name="wsdl.xml" hash="cfad5924eb32b8fb7ccf79309e5966df"/><file name="wsi.xml" hash="ec7bdd8cb2bc5dd12c0a4d865fe3d313"/></dir><dir name="sql"><dir name="cataloginventory_setup"><file name="install-1.6.0.0.php" hash="186d243fdf3189b96caf9fbdc80aee6c"/><file name="mysql4-install-0.7.0.php" hash="75e2c895e6dfbad69c600f865db6cff4"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="6f0d39d6f4fe87c167fd43b5a39de2d9"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="7e6fcee3d6aeb8bed8be763687cdb8ba"/><file name="mysql4-upgrade-0.7.2-0.7.3.php" hash="04f921c7375bfb01a658b349c31537fd"/><file name="mysql4-upgrade-0.7.3-0.7.4.php" hash="e0e7a7ccefc05896c771fd99f780f708"/><file name="mysql4-upgrade-0.7.4-0.7.5.php" hash="5565cd4be6aead2b0932872f0eb55340"/><file name="mysql4-upgrade-0.7.5-0.7.6.php" hash="be17870a38cf723722f6f99b5bb68c18"/><file name="mysql4-upgrade-0.7.6-0.7.7.php" hash="17a69f148b233711d0c94537352837f1"/><file name="mysql4-upgrade-0.7.7-0.7.8.php" hash="243f5fc0eb15dec1d62992f4c7c7d56d"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="281755ca835ad1ee976f5118076bc94d"/><file name="mysql4-upgrade-1.6.0.0-1.6.0.0.1.php" hash="bfd977798f6118c5368b614c9c5c7795"/><file name="upgrade-1.6.0.0.1-1.6.0.0.2.php" hash="53308b12950c985fa05c7bbf9d49e12c"/></dir></dir></dir><dir name="CatalogRule"><dir name="Helper"><file name="Data.php" hash="560016778ef760247cb7d3b1caabb70f"/></dir><dir name="Model"><dir name="Action"><dir name="Index"><dir name="Refresh"><file name="Row.php" hash="b3d2f0876cfc7c3dc88cf084aa011f8c"/></dir><file name="Refresh.php" hash="73fc903920175f260c1400aa3924b902"/></dir></dir><file name="Flag.php" hash="7903d33b2f3b537f31def82ab02ea752"/><dir name="Mysql4"><dir name="Rule"><file name="Collection.php" hash="1c7ef5836a12d91c7b6cd1596a5c0c9d"/><dir name="Product"><dir name="Price"><file name="Collection.php" hash="4745a3b75d783c2ce549f8c66880f1b0"/></dir><file name="Price.php" hash="659daee66e70387f6ec6ad1c2782a9af"/></dir></dir><file name="Rule.php" hash="a2252e99ac1beaa96c558788d7541dca"/></dir><file name="Observer.php" hash="cc5c3ee1e4dfcff8e656b4c4f7df9713"/><dir name="Resource"><dir name="Rule"><file name="Collection.php" hash="b90b0ab93e58b0d99ba8a1d611a69b34"/><dir name="Product"><dir name="Price"><file name="Collection.php" hash="b05d4de6ec29c21af930a60b6b30b111"/></dir><file name="Price.php" hash="52dbe3cbb55103fcc8b1673ad0e29d5c"/></dir></dir><file name="Rule.php" hash="d4e895a2ed2e80408a4dadc95985eff2"/></dir><dir name="Rule"><dir name="Action"><file name="Collection.php" hash="cbefca5d6a981c7aa1d79431da1a1006"/><file name="Product.php" hash="1ef05545bae581adff21dea5eef7436c"/></dir><dir name="Condition"><file name="Combine.php" hash="d476c6954ab95cb3ebd80aff66eabb83"/><file name="Product.php" hash="22634d4e9c59ea7d4da5ac793e79c2e8"/></dir><dir name="Product"><file name="Price.php" hash="866097a5efe4d81c1bca28d1fce9973b"/></dir></dir><file name="Rule.php" hash="e3cd573194b1bcefbcd8d41b1ed07fa2"/></dir><dir name="etc"><file name="adminhtml.xml" hash="093d6f0890d18e7d864a9635fa08e26d"/><file name="config.xml" hash="93a7c143800b9a7f3ae090a0a97ce8bb"/></dir><dir name="sql"><dir name="catalogrule_setup"><file name="install-1.6.0.0.php" hash="f267d851d396f216b2ed0a73a177c717"/><file name="mysql4-install-0.7.0.php" hash="a2de42b77075ec0b403630b1a93e95f7"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="0fb948870f4792fd810bf6982237a0f7"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="9a60dc6338554003d882475a411f24ba"/><file name="mysql4-upgrade-0.7.2-0.7.3.php" hash="900eebf1d56e35c1ec6fe8b169ff71ab"/><file name="mysql4-upgrade-0.7.3-0.7.4.php" hash="c935d33a43baf1b58075fcd2fa9c8667"/><file name="mysql4-upgrade-0.7.4-0.7.5.php" hash="94818b4c3f6694c3fea522fa7071129a"/><file name="mysql4-upgrade-0.7.5-0.7.6.php" hash="b97239fccace41b55ae0b01d0334f07e"/><file name="mysql4-upgrade-0.7.6-0.7.7.php" hash="cd83d4f6daea4ea53974f39fc2603bf0"/><file name="mysql4-upgrade-0.7.7-0.7.8.php" hash="72612964477cbfdeacaa95a8bc7ace43"/><file name="mysql4-upgrade-0.7.8-0.7.9.php" hash="09a0d5a3d5c97841401bad35a7b34d05"/><file name="mysql4-upgrade-0.7.9-0.7.10.php" hash="5ada9f5e099cbbd1f03393f46d2ca6b7"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="4e50dfe5c65040c848b49001884ff11f"/><file name="upgrade-1.6.0.0-1.6.0.1.php" hash="6e81e9960d6c8d22bfbdd8642bc41da8"/><file name="upgrade-1.6.0.1-1.6.0.2.php" hash="d87e4ab753b65806b9cd8b3231abf543"/><file name="upgrade-1.6.0.2-1.6.0.3.php" hash="363f01664e7f1b960920a03a67be5037"/></dir></dir></dir><dir name="CatalogSearch"><dir name="Block"><dir name="Advanced"><file name="Form.php" hash="e73320b5f9aa1db5d6dd535cd5a51c77"/><file name="Result.php" hash="158d8c4234b2b24f5bce04f068878997"/></dir><file name="Autocomplete.php" hash="40a423ace61e14fb7e928aa1c18dbb74"/><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="686db1fc07ef2ff608bc1982b43359a3"/></dir></dir><file name="Layer.php" hash="8c4c35b064430d739f6d0d4a216f2b14"/><file name="Result.php" hash="e2767174a41982becba4446853a38d6c"/><file name="Term.php" hash="f02a1a1991d2837d54ee71c632e641a7"/></dir><dir name="Helper"><file name="Data.php" hash="16b83aedc3e508276e90b116a5ef0610"/></dir><dir name="Model"><file name="Advanced.php" hash="673206deb25181e532fa901a3cfdd5ea"/><dir name="Fulltext"><file name="Observer.php" hash="d98bcfbda298c86a256b0039c88463ca"/></dir><file name="Fulltext.php" hash="f45fac39b3af844c0ad489cc31fd36c5"/><dir name="Indexer"><file name="Fulltext.php" hash="fdb752b9e4a49a9a06022f7cd943846d"/></dir><dir name="Layer"><dir name="Filter"><file name="Attribute.php" hash="70ca3a299e5a79880ae1e67593f207eb"/></dir></dir><file name="Layer.php" hash="9b58138cc29407e8df0bbeed10991657"/><dir name="Mysql4"><dir name="Advanced"><file name="Collection.php" hash="4e13897ad78aadf7dd362b68f57449e7"/></dir><file name="Advanced.php" hash="852588dba6d4f9e68b7ccd72ed22efd7"/><dir name="Fulltext"><file name="Collection.php" hash="cdf89df38a26752fb99ad76f1889266d"/><file name="Engine.php" hash="c4268d353f9345fa90659ada21e85120"/></dir><file name="Fulltext.php" hash="dc7b4be01985a3a6be2641549777ba7d"/><dir name="Indexer"><file name="Fulltext.php" hash="4bf43c11bd0a0691220b6f435927b394"/></dir><dir name="Query"><file name="Collection.php" hash="446ad51d56c11f26debb0b2452f3b412"/></dir><file name="Query.php" hash="13604101b9dee37fe489630cec0a8887"/><dir name="Search"><file name="Collection.php" hash="de4b4bb9646a0a2b8185d4ad7d8612d4"/></dir></dir><file name="Query.php" hash="da8170ea36c99b6fe69cadee58ff624c"/><dir name="Resource"><dir name="Advanced"><file name="Collection.php" hash="a31a945c32e467b20a94fcb4cbe0a902"/></dir><file name="Advanced.php" hash="2db00b3266767e591d4a3712a95b0d0a"/><dir name="Fulltext"><file name="Collection.php" hash="5bc08811112fe51ee569a649d4aeb3b1"/><file name="Engine.php" hash="c82ac50d4a4c7dd5cca266611d5bb32b"/></dir><file name="Fulltext.php" hash="1bdc33c95bcc0db28ab7ba6067298ae6"/><dir name="Helper"><file name="Mysql4.php" hash="936338862674186b816444f5c6797af0"/></dir><dir name="Indexer"><file name="Fulltext.php" hash="f2f34a970c04267593442eac45fabed1"/></dir><dir name="Query"><file name="Collection.php" hash="9e49419777202fb6732dd4e76d80ca83"/></dir><file name="Query.php" hash="a62f0dac4012d29dcd4a4aa0c107eebd"/><dir name="Search"><file name="Collection.php" hash="72a2af0b587772e944547732ec6c46ec"/></dir></dir><file name="Session.php" hash="74ee378fc7dd0cf7c17637b1a876e733"/><dir name="System"><dir name="Config"><dir name="Backend"><file name="Sitemap.php" hash="28eafe560f68a8bd2cf7ae5ed82abd35"/></dir></dir></dir></dir><dir name="controllers"><file name="AdvancedController.php" hash="f58f4832cf837a644aff27d3e9831d82"/><file name="AjaxController.php" hash="c512ebd4bd8ab2f0ad0a2d18f068de21"/><file name="ResultController.php" hash="6199d499b4d9040b3beda927f07248c8"/><file name="TermController.php" hash="3ff5982242c57a7f4ae02ce2cd28b7f0"/></dir><dir name="etc"><file name="adminhtml.xml" hash="666740063c81d96ab024d95108e0eb1b"/><file name="config.xml" hash="071d829deff261b3899f8506a20da0d7"/><file name="system.xml" hash="7e133c61e5dac5dfaf765f29e429bc78"/></dir><dir name="sql"><dir name="catalogsearch_setup"><file name="install-1.6.0.0.php" hash="685d4b125a8c0156af263540c0662aa6"/><file name="mysql4-install-0.7.0.php" hash="b692090952faab6b90b0013012a67a5a"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="fcfb5aa7d2be0d3619fb1273db0bc0fa"/><file name="mysql4-upgrade-0.7.2-0.7.3.php" hash="78f25300474601a56ccae20b2899228a"/><file name="mysql4-upgrade-0.7.3-0.7.4.php" hash="6375fb28c6357cf9d9fa92d92801cd4e"/><file name="mysql4-upgrade-0.7.4-0.7.5.php" hash="85b4b27b90be56dff302e49b9038d419"/><file name="mysql4-upgrade-0.7.5-0.7.6.php" hash="80d97a392fd15c328d6e929428bfe677"/><file name="mysql4-upgrade-0.7.6-0.7.7.php" hash="435822849781f094803c02ded421fe8a"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="20c3c617d661d1bf8a421594a6b3981a"/><file name="upgrade-1.6.0.0-1.8.2.0.php" hash="e9e7f420007c062e4c4536cf49205104"/></dir></dir></dir><dir name="Checkout"><dir name="Block"><file name="Agreements.php" hash="8d56692ecac1020f66f55d778263faff"/><dir name="Cart"><file name="Abstract.php" hash="f9ec040f942e590fdfc265813fd9fd1d"/><file name="Coupon.php" hash="511ace3d8e590ab1d3801d4da74e142c"/><file name="Crosssell.php" hash="862405f0b1554945cf9d249e33f0aaf6"/><dir name="Item"><file name="Configure.php" hash="278e92e905c3100630c48e875aa0466d"/><dir name="Renderer"><file name="Configurable.php" hash="87f290557da9375aa29539bbe00928d2"/><file name="Grouped.php" hash="0bf0e8c6a45b426435a63eb499029599"/></dir><file name="Renderer.php" hash="483f7b9973a1a2e5ec1cd4b380e1c773"/></dir><file name="Minicart.php" hash="2357ea9c0d495c8c608b36d67f8d864d"/><file name="Shipping.php" hash="1d480d34a3aa3829e7a17ec5d66a0100"/><file name="Sidebar.php" hash="479be1a791631077e4848911a2fe9816"/><file name="Totals.php" hash="643a06ca086b06a732004f073688eb35"/></dir><file name="Cart.php" hash="7ffacdd2422f769df682c83156aab966"/><file name="Links.php" hash="3ea4b4fd3a0c040d55c258e2b9c23102"/><dir name="Multishipping"><file name="Abstract.php" hash="b0a1ea630d0c18369dadc359446bb1e1"/><dir name="Address"><file name="Select.php" hash="0b7c8184050f87a58b1e2eb5a82f4dc9"/></dir><file name="Addresses.php" hash="f64e18dd22554cae891a9181e02abed0"/><dir name="Billing"><file name="Items.php" hash="75dbdfc33982acd44dc344b0b23626f5"/></dir><file name="Billing.php" hash="78b56757554c4e521e610376d975648d"/><file name="Link.php" hash="2a19d42e946334b65b12ce78a24ae31f"/><file name="Overview.php" hash="9bc38e98f85764d58ba8292aed5335c6"/><dir name="Payment"><file name="Info.php" hash="a670440634774b806310ea1a251ea034"/></dir><file name="Shipping.php" hash="3f1832bfc1c91d15d4491c4b8fed4ba4"/><file name="State.php" hash="0ec043c400c0ef3640c4946d85277a82"/><file name="Success.php" hash="d869c536a16ec9386b7dfca8eb94ab19"/></dir><dir name="Onepage"><file name="Abstract.php" hash="bcfa18c091ad1413c3398067b7919d66"/><file name="Billing.php" hash="edaae580ab1c058260cd2919bbbd86b5"/><file name="Failure.php" hash="56bf05b27fbf60186f6967e47726c78c"/><file name="Link.php" hash="3273d959fbb7923af96284a736d6fcca"/><file name="Login.php" hash="260a20603dd06f5f0be399db86464f3f"/><dir name="Payment"><file name="Info.php" hash="d165a359b5da76e98f30c8031a12d0a9"/><file name="Methods.php" hash="8f17730b97a36e5d20542afe940146e8"/></dir><file name="Payment.php" hash="0ad11208d8bcf7523aa4690846fa3b1f"/><file name="Progress.php" hash="fe224885dc3f53b82d7faa8c77b2a2dd"/><dir name="Review"><file name="Info.php" hash="6f9552265170840423bddf029c15def5"/></dir><file name="Review.php" hash="6f3b70cd1870a4349af5e78a29ca554b"/><dir name="Shipping"><dir name="Method"><file name="Additional.php" hash="9406f7ac92241d223906b3fa12531a82"/><file name="Available.php" hash="429a98e91babb72ae1eb1d5b03ce28e8"/></dir><file name="Method.php" hash="33542a802205b6e0aecfa7064dd396e5"/></dir><file name="Shipping.php" hash="1f9301b61fe67ab39e6e2d5462ab1b41"/><file name="Success.php" hash="44abaf732daf677bd272fda41c8e83b0"/></dir><file name="Onepage.php" hash="975f6c5d38ee23b49a336baaf90ec759"/><file name="Success.php" hash="e1bdcc4ff63a008a52416e7dcd9f20b7"/><dir name="Total"><file name="Default.php" hash="f72876020eb1e469d32a2439a9335608"/><file name="Nominal.php" hash="4675f9491a2608573a67371428db578d"/><file name="Tax.php" hash="5dc3bd46f6a148f409a7731ce1a5af84"/></dir></dir><dir name="Controller"><file name="Action.php" hash="43c24f20c6930bc9b9227eeb2dc057de"/></dir><file name="Exception.php" hash="4bffd7231c2d9380b18fc9f44ea62e07"/><dir name="Helper"><file name="Cart.php" hash="17e59a7184d8a7cb99b900984736e197"/><file name="Data.php" hash="51217ce0f916f303606743f5f3b8c98d"/><file name="Url.php" hash="9676658d942ddb56c34c76bb48705570"/></dir><dir name="Model"><file name="Agreement.php" hash="5ea689d86468a3e9bfe38d26274548a1"/><dir name="Api"><dir name="Resource"><file name="Customer.php" hash="fd4f5a72d3450a84bf635fea8d4bfa90"/><file name="Product.php" hash="0b62cd2b7405e808aadfc1b94d3a4f9a"/></dir><file name="Resource.php" hash="f70d9833d06848322aa3199ddf6aaff9"/></dir><dir name="Cart"><dir name="Api"><file name="V2.php" hash="8e565977022bad3538d555b4143600ce"/></dir><file name="Api.php" hash="4f3cd847a5e5ec831cf5a91875da1fe8"/><dir name="Coupon"><dir name="Api"><file name="V2.php" hash="300d9073ae574bf1a59c8a49405ccb54"/></dir><file name="Api.php" hash="3d79972a820b8e118eaaeb55fe71df84"/></dir><dir name="Customer"><dir name="Api"><file name="V2.php" hash="37e2cde05368b1825ae543663c98c64b"/></dir><file name="Api.php" hash="e148b69dbf2338fe2ca192de81af2615"/></dir><file name="Interface.php" hash="b12492224b276a8af17c00aa7dd22d3b"/><dir name="Payment"><dir name="Api"><file name="V2.php" hash="0a212d789a1bedf703f930b16873050c"/></dir><file name="Api.php" hash="400fbc37a9bbde155bbec0f92feeabd6"/></dir><dir name="Product"><dir name="Api"><file name="V2.php" hash="72dac519831f333fe8ad4f1cc6b68822"/></dir><file name="Api.php" hash="8462145424fadbc98ecb6ba3b6b03045"/></dir><dir name="Shipping"><dir name="Api"><file name="V2.php" hash="32bd4bbb1a051851da1c7b611f228f09"/></dir><file name="Api.php" hash="2d905e80b2233b6464722d4bcbfa9a22"/></dir></dir><file name="Cart.php" hash="86e4afc52506b761ca0226ed32f6f218"/><dir name="Config"><dir name="Source"><dir name="Cart"><file name="Summary.php" hash="08585e104eb4aed09d41c4491ff0d07b"/></dir></dir></dir><dir name="Mysql4"><dir name="Agreement"><file name="Collection.php" hash="0afca26f992a28eb4892066decbcb69b"/></dir><file name="Agreement.php" hash="792d897865a39eecbb919609a410619a"/><file name="Cart.php" hash="be6723269141b1451a4f7c86e7497300"/><file name="Setup.php" hash="c38f1ad47143d40d06a970a385a313bc"/></dir><file name="Observer.php" hash="2d31b6d1cb06767587b0a1c4cdfae1c9"/><dir name="Resource"><dir name="Agreement"><file name="Collection.php" hash="c913189410058ef96f312aa6a5d3527b"/></dir><file name="Agreement.php" hash="e0995392f16cfa42398e742a2c2abced"/><file name="Cart.php" hash="c78518be163aa4f0ab31e61c7f5e0e19"/><file name="Setup.php" hash="081ca5d71ba089d5d605f3186d423313"/></dir><file name="Session.php" hash="f8abf097841c62f56529f482a406296b"/><dir name="Type"><file name="Abstract.php" hash="fc48b701ceebbf0d057cc8d158827fac"/><dir name="Multishipping"><file name="State.php" hash="6d7e4f36bf9477d11f9a2a10cc39ccb1"/></dir><file name="Multishipping.php" hash="92f299c426eaaf207ff10f1a42ac0d31"/><file name="Onepage.php" hash="52bdd3ad2ea82a6adf54145ba10798bb"/></dir></dir><dir name="controllers"><file name="CartController.php" hash="0c443eccd41d6ef12a0ce8deb1f06a4a"/><file name="IndexController.php" hash="27765c343e0c3204259e5ac11bcad9b2"/><dir name="Multishipping"><file name="AddressController.php" hash="96de3280a8451974d109e44ffbedc311"/></dir><file name="MultishippingController.php" hash="d89dfbf2f130b832792907e62746e9c5"/><file name="OnepageController.php" hash="de8e00a003711936b831abb34c52e4d0"/></dir><dir name="etc"><file name="adminhtml.xml" hash="3a89352000cfec6bdaebcfdba1fd01d9"/><file name="api.xml" hash="c898575a004eac996f514232ec42d894"/><file name="config.xml" hash="a033a72513ee637d6c86fae693430061"/><file name="jstranslator.xml" hash="09192c5171c833110988c9929eb8dff5"/><file name="system.xml" hash="047fb91fb6234a0f324ae8f88b75bf03"/><file name="wsdl.xml" hash="9a10e25803e84713f5031a168dd0c624"/><file name="wsi.xml" hash="2567bee4ef18e1b426c700ce66c3bcb1"/></dir><dir name="sql"><dir name="checkout_setup"><file name="install-1.6.0.0.php" hash="e9845a59bd24b9ed5ce891dcbc8929fe"/><file name="mysql4-install-0.9.1.php" hash="a583303cd013f23487f913cf7489a65c"/><file name="mysql4-upgrade-0.9.0-0.9.1.php" hash="0bb20a7e58b933371b288d310e528a3b"/><file name="mysql4-upgrade-0.9.1-0.9.2.php" hash="25503ad4ffcb56651642b2519194b852"/><file name="mysql4-upgrade-0.9.2-0.9.3.php" hash="fd21901e41bfea81736ac0ca1075a1ad"/><file name="mysql4-upgrade-0.9.3-0.9.4.php" hash="d79b9cb31eb2a39f4fd51ff16908f0ef"/><file name="mysql4-upgrade-0.9.4-0.9.5.php" hash="ff007a238948d561df296dbed692cb47"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="bc84512cc6d28fff2ee3c02bf1fb2ede"/></dir></dir></dir><dir name="Cms"><dir name="Block"><file name="Block.php" hash="808cc7b98e9d5d6b9bffa3fa2fb00620"/><file name="Page.php" hash="d9987805a72d22baf4267b0a1c34a572"/><dir name="Widget"><file name="Block.php" hash="ebe7556437cd84216b0a3dbd25b69269"/><dir name="Page"><file name="Link.php" hash="7aedc331ff5e05d58314a0650235d45c"/></dir></dir></dir><dir name="Controller"><file name="Router.php" hash="153a05f03ef48b34b18276dc18faf339"/></dir><dir name="Helper"><file name="Data.php" hash="704b0bf92e17ea9d45ad7aead5825fb8"/><file name="Page.php" hash="ef27b6592747ccbbcd19a7a32e774ffd"/><dir name="Wysiwyg"><file name="Images.php" hash="1af03c026e2fefc7c47d96166c3bdc3a"/></dir></dir><dir name="Model"><dir name="Adminhtml"><dir name="Template"><file name="Filter.php" hash="5f12afe3c720ffb4cea6fed946135bb9"/></dir></dir><file name="Block.php" hash="d4d7b6f77300797ba3ca3d72bc58818c"/><dir name="Mysql4"><dir name="Block"><file name="Collection.php" hash="6fd2d7b274c65303976683c9255f5667"/></dir><file name="Block.php" hash="16bd676bde704194d0eb383b53d853b4"/><dir name="Page"><file name="Collection.php" hash="c34032769799df3970c4edc4ceacce8d"/><file name="Service.php" hash="1404261f5a2aedd536cc79d431348eb1"/></dir><file name="Page.php" hash="477f2eff400115e79e61ef848d129d8c"/></dir><file name="Observer.php" hash="cc521139189d28588d9434bb58e79693"/><file name="Page.php" hash="2967afd2aa4840338d22e2d0e090cc3f"/><dir name="Resource"><dir name="Block"><file name="Collection.php" hash="9a86e9526a30783ed5ded05d9f5e9f14"/></dir><file name="Block.php" hash="d641f3d6a76d9186f44dae801d8094fc"/><dir name="Page"><file name="Collection.php" hash="c6ad6050fb8c4163a438698e1bb2cd0a"/><file name="Service.php" hash="ee4af8837bfd0333f48aa9d1475eea28"/></dir><file name="Page.php" hash="af4b60e4531be743407d0f6c36f5b2dd"/></dir><dir name="Template"><file name="Filter.php" hash="ea84ea91afc7c16077e72ac41a17e7d3"/></dir><dir name="Wysiwyg"><file name="Config.php" hash="a5e8ed87851da04ef8e219cc2b4f6596"/><dir name="Images"><dir name="Storage"><file name="Collection.php" hash="3fbb9096f505cf63a7a54f7f67fa3095"/></dir><file name="Storage.php" hash="1ddce482989fd0b9244845f903f2270c"/></dir></dir></dir><dir name="controllers"><file name="IndexController.php" hash="0e7e12bc4babef09e69e7467cb65a108"/><file name="PageController.php" hash="55524ed778a003db6067c75ded5c7516"/></dir><dir name="data"><dir name="cms_setup"><file name="data-install-1.6.0.0.php" hash="fa64f4284e2bdbda37b03a586787eadf"/><file name="data-upgrade-1.6.0.0.0-1.6.0.0.1.php" hash="b3b6fa8bef11edfc71f459e7873b6268"/><file name="data-upgrade-1.6.0.0.1-1.6.0.0.2.php" hash="2de01ad853f4243be77e6a8b6953870d"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="fe1b8ff7eebe920ed8ab2adc1eb0c7ea"/><file name="config.xml" hash="57993187979be0c04798d298a31fafd7"/><file name="system.xml" hash="df2b1f760a8f78b9f43a1ec7d05eea13"/><file name="widget.xml" hash="6c29f20e2b3267e154cba1fb4cccfb82"/></dir><dir name="sql"><dir name="cms_setup"><file name="install-1.6.0.0.php" hash="5669050d7b7e3b78e466fcd832eb66ab"/><file name="mysql4-install-0.7.0.php" hash="e7c388928acdec38b1146c1ea6482ad6"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="8199f7126a7a23e3fcd3010c212b86cb"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="2809caa9a092d89fc11e22504bb149be"/><file name="mysql4-upgrade-0.7.10-0.7.11.php" hash="e26c67326979cee3f22ead8e4a330ac2"/><file name="mysql4-upgrade-0.7.11-0.7.12.php" hash="971bb950e4533dc2fbfdb3651062bae8"/><file name="mysql4-upgrade-0.7.12-0.7.13.php" hash="ecf73f12a15a4c76b4b0c184b2815e41"/><file name="mysql4-upgrade-0.7.2-0.7.3.php" hash="c27a9ac81e7664b8555f369eb73c00ba"/><file name="mysql4-upgrade-0.7.4-0.7.5.php" hash="1d526c35029e9ccd1358bfb79ba85219"/><file name="mysql4-upgrade-0.7.5-0.7.6.php" hash="f7c8cad8181dce1db0ff749bb2a1f1c3"/><file name="mysql4-upgrade-0.7.7-0.7.8.php" hash="1a877f21e0adb5d14696f155d744cf3e"/><file name="mysql4-upgrade-0.7.8-0.7.9.php" hash="772f6217e2477aa7c7f6096654c08fc3"/><file name="mysql4-upgrade-0.7.9-0.7.10.php" hash="3533979da1385e39faff4bbde8179e24"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="be1f73f82e59a420e0a74401a0fca80b"/></dir></dir></dir><dir name="ConfigurableSwatches"><dir name="Block"><dir name="Catalog"><dir name="Layer"><dir name="State"><file name="Swatch.php" hash="ba2d565918d86b78d018bf2252ce107f"/></dir></dir><dir name="Media"><dir name="Js"><file name="Abstract.php" hash="65d13549eff5aed01e7de5fbd1dae86a"/><file name="List.php" hash="5d1bf59d2c66986f88516c17e578843d"/><file name="Product.php" hash="0e01cd15f0d717b0ed2db9a5c63a5d8b"/></dir></dir><dir name="Product"><dir name="List"><file name="Price.php" hash="1274be29931b6896545f142fc32fa5dd"/></dir><dir name="View"><dir name="Type"><dir name="Configurable"><file name="Swatches.php" hash="ca8cde3ec6ecba0f802a4be0a95b2720"/></dir></dir></dir></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="83667ceddcda8538e54503027669e31b"/><dir name="List"><file name="Price.php" hash="c6597c6257ea1be6bd0c33e79cbdb21e"/></dir><file name="Mediafallback.php" hash="a4c9b34b6c02f24f5f879dfdcf431ee8"/><file name="Productimg.php" hash="7c45bc60904625048daebe1ae6ee3426"/><file name="Productlist.php" hash="485ac59635fa6338bb6047899ce210b6"/><file name="Swatchdimensions.php" hash="5d9b2d9c5cb9db5eee4b3a43d11c940d"/></dir><dir name="Model"><file name="Observer.php" hash="21a8192931a3a8c5a58e64b86a1a16b0"/><dir name="Resource"><dir name="Catalog"><dir name="Product"><dir name="Attribute"><dir name="Super"><file name="Collection.php" hash="19e2652eebbc5781ec5a5200ff21cf88"/></dir></dir><dir name="Type"><dir name="Configurable"><dir name="Product"><file name="Collection.php" hash="7ee76f04040a166ff09c9f49057916cf"/></dir></dir><file name="Configurable.php" hash="e240a0d73107c1a05bcd2f2c717b6305"/></dir></dir></dir></dir><dir name="System"><dir name="Config"><dir name="Source"><dir name="Catalog"><dir name="Product"><dir name="Configattribute"><file name="Select.php" hash="c1307cb449fcfc2b28405c32ac1be385"/></dir><file name="Configattribute.php" hash="36770f92cc2f60edf324faa1f7c26f0b"/></dir></dir></dir></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="520821e755cb0713359c9d5e41e9b793"/><file name="config.xml" hash="34c0ad0df08a9ccdbb358d7d46778cf8"/><file name="jstranslator.xml" hash="6c0bfe8d32613e25cd6e81bf40e2eb52"/><file name="system.xml" hash="e06ba414a420bfbc067f36f2724bc147"/></dir></dir><dir name="Connect"><dir name="Block"><dir name="Adminhtml"><dir name="Extension"><dir name="Custom"><dir name="Edit"><file name="Form.php" hash="d789b9e5f5b5be54256d54c2067a7495"/><dir name="Tab"><file name="Abstract.php" hash="faa6ebfa9a24b2726091a7079e32b2af"/><file name="Authors.php" hash="18e44b9c37050798bc44e7bebefe6b79"/><file name="Contents.php" hash="a69e88be8f99a4dfdc42d1d8a5cfe64c"/><file name="Depends.php" hash="2f4c09428ffbafc3c976394e94a013ee"/><file name="Grid.php" hash="ff77b7a1539670805534f87ae2ef4a93"/><file name="Load.php" hash="1e51f328e913bbcb0a08feed4d1fdfc1"/><file name="Local.php" hash="2d3289cfa670c6ed650344225ad9175a"/><file name="Package.php" hash="e9d0265bb0a008a6c36cc760ceec0386"/><file name="Release.php" hash="b7f347176161922003596b1819dc0027"/></dir><file name="Tabs.php" hash="b27a5ab996909088f5d914598ffd5e22"/></dir><file name="Edit.php" hash="c7861675784fbb52b833e3dbe0f480fa"/></dir></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="08cf5672c1c0b67a213ba6ace2a58107"/></dir><dir name="Model"><dir name="Extension"><file name="Collection.php" hash="8a067c24e32d6ce8ea9d8a5968a728f7"/></dir><file name="Extension.php" hash="816868c3415ddd41f45e409501f6c7dc"/><file name="Session.php" hash="5440476ad3ef3f7c3c2230ae1ab28ea8"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Extension"><file name="CustomController.php" hash="f33eead77dce7b537894d8b16226c5f2"/><file name="LocalController.php" hash="d930aaed8a7b773573b59e8bb442ddf6"/></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="101c7900791af6e5ee9c95da47c483f1"/><file name="config.xml" hash="fe2f20c5ab7f316d5c8148ff72008105"/></dir></dir><dir name="Contacts"><dir name="Helper"><file name="Data.php" hash="1a738165172917c879f9ac141c11b9e1"/></dir><dir name="Model"><dir name="System"><dir name="Config"><dir name="Backend"><file name="Links.php" hash="ba1b3017172093f46465a105ad2996a2"/></dir></dir></dir></dir><dir name="controllers"><file name="IndexController.php" hash="bf03d63562bb14bc90fed7f19e0b7f30"/></dir><dir name="etc"><file name="adminhtml.xml" hash="2cedca70a58666ac2347bbe3f9bdafd0"/><file name="config.xml" hash="5c00f20bddf8f55411db826d7d613921"/><file name="system.xml" hash="4de5af82897ea61d65abc342179e27f0"/></dir><dir name="sql"><dir name="contacts_setup"><file name="install-1.6.0.0.php" hash="13f3139c5258cd52688763b6b9dd99b0"/><file name="mysql4-install-0.7.1.php" hash="94a59176972576cb435ea6505e08636f"/><file name="mysql4-install-0.8.0.php" hash="894c4d3fda75ee5ff0bad394ef03ae15"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="f21132d7a6189d17610d76954ba3e6f8"/></dir></dir></dir><dir name="Core"><dir name="Block"><file name="Abstract.php" hash="60ab25109ee03a2e80dcd9c223b7a4c0"/><file name="Flush.php" hash="689a5e3eb946bcb0d761dfbc1ef737d4"/><dir name="Html"><file name="Calendar.php" hash="6159aac3f3bcfbb50f6292f8426128b5"/><file name="Date.php" hash="44aa2b30529c837699f0302d3f5a129e"/><file name="Link.php" hash="c0586fbede4941f473fb0d9b4199eabb"/><file name="Select.php" hash="3a00a83d4fcc827a19050989db504111"/></dir><file name="Messages.php" hash="81e21fc3d8782d4ddb9f82847f79f78d"/><file name="Profiler.php" hash="768c063dfbf1fd40e5d1472fe3f77884"/><dir name="Store"><file name="Switcher.php" hash="81c614c6aaa95f2b016351aa60a6565c"/></dir><dir name="Template"><file name="Facade.php" hash="66b97c587f08c3312a3a7e902d012d25"/><file name="Smarty.php" hash="726d82c94a6e6aca2b2ecc3a4abb2ce2"/><file name="Zend.php" hash="62cca867dd890b50e95988c0f863861c"/></dir><file name="Template.php" hash="e9011e2cee5cee76db541491dfc871fa"/><dir name="Text"><dir name="List"><file name="Item.php" hash="be4927dd33ac2147f6bbee57c4d9ce63"/><file name="Link.php" hash="8935c490d0b2cfea4147236707135178"/></dir><file name="List.php" hash="0415c60e89ee20a9b164303625630320"/><dir name="Tag"><dir name="Css"><file name="Admin.php" hash="bd031a45ce2d6071fcaa9d6c68c16201"/></dir><file name="Css.php" hash="871935fa964adbf99609e014e60d4ddd"/><file name="Debug.php" hash="36f5331bdcb23703d33418c423abc5ae"/><file name="Js.php" hash="659e91e2758e5e5582a42188e8671f59"/><file name="Meta.php" hash="cee17b0e3efeb8cd34c4f7f34d191789"/></dir><file name="Tag.php" hash="09b53ed3fe7f8730140f85ef49d8ba6e"/></dir><file name="Text.php" hash="5dd0190a290ba9314143284a465f3783"/></dir><dir name="Controller"><dir name="Front"><file name="Action.php" hash="0bd3f2b0428b65fec0b20d3260624a4c"/><file name="Router.php" hash="f4a1e85ed9ceff4df31de9fc3925b749"/></dir><dir name="Request"><file name="Http.php" hash="af9331e309ad5a600e37f45f456b85ea"/></dir><dir name="Response"><file name="Http.php" hash="b4e08d0cf4f3958fea43e98d23e921a3"/></dir><dir name="Varien"><file name="Action.php" hash="89b97e5ebc240a83f5d37a95fb0e269b"/><file name="Exception.php" hash="a798a1e14cf080320fd8ff1c61b7c0ce"/><file name="Front.php" hash="fa826d6cb39da808d9f2abdb6c4a3619"/><dir name="Router"><file name="Abstract.php" hash="9b7dbb6f0025291498471f3df80a1775"/><file name="Admin.php" hash="e2bfb79df9e269912795b699a2cbc57c"/><file name="Default.php" hash="4af9b582bf8c1d58a787c1b0fd814296"/><file name="Standard.php" hash="e270230e4ab92d50e975c49774ef57b2"/></dir></dir></dir><file name="Exception.php" hash="e24ff5a61dfb253617d88752d7035dae"/><dir name="Helper"><file name="Abstract.php" hash="8e71f2a30d98a6a7e9bdfa3d473679ed"/><file name="Array.php" hash="484a0a74a7f9e3c08c3a4b73f7337ac5"/><file name="Cookie.php" hash="7c6e78a4bb52f8a2e8cd72c611c3a607"/><file name="Data.php" hash="ef93ca79009474e6b8d935fdd7f03c46"/><dir name="File"><dir name="Storage"><file name="Database.php" hash="ad54c841a0cb8f9a6c85923fd70899d7"/></dir><file name="Storage.php" hash="8f02a3f236314fceb25ab16c5d47f2f6"/></dir><file name="Hint.php" hash="694fd4bbddbaacdd56bd07683802a234"/><file name="Http.php" hash="a63b38419324891ec908414714758d00"/><file name="Js.php" hash="be84944e4f41c399d10b154b8a130a81"/><file name="String.php" hash="30c8bed45c799cf6fdee9d34f699f472"/><file name="Translate.php" hash="a6dd08880eb8f27ef543d93ea532fff2"/><file name="UnserializeArray.php" hash="d5506fe8abd8794aaa7e4ad23821bce7"/><dir name="Url"><file name="Rewrite.php" hash="97e46be2318d6a82d40e217f234663d6"/></dir><file name="Url.php" hash="9f8fc179fc4eb191c17041ddca1ce8a1"/></dir><dir name="Model"><file name="Abstract.php" hash="3ebc995256ad69f924819f96e401b60f"/><dir name="App"><file name="Area.php" hash="6c814d69b0066a826869f69841e0b287"/><file name="Emulation.php" hash="218411722dbc2925f6afd70c4c493cb7"/></dir><file name="App.php" hash="c7d73ebf537565a7293a88ece6ea7613"/><file name="Cache.php" hash="00e7b0a35d49e3774f39b4c9811017da"/><file name="Calculator.php" hash="7903aee2fa175e91615c702870866b9f"/><dir name="Config"><file name="Base.php" hash="95d6606f6dc37e645b9bf5d95f860dac"/><file name="Data.php" hash="b002587f1ecdf2ddced2371c44591eb0"/><file name="Element.php" hash="070129342aea34a54ba3cc99052d4075"/><file name="Options.php" hash="a2afec98dfdde676d372aab35fc1d0b3"/><file name="System.php" hash="e44dcb546c68d06df2e58d135030a140"/></dir><file name="Config.php" hash="c0aac670427c25d85f8667a47ea9eb63"/><file name="Convert.php" hash="96387227fa5be3cff23e39a345234b75"/><file name="Cookie.php" hash="cc5c60b0a34494b472adcb4197286026"/><file name="Date.php" hash="1f7628558283dc16fc637116fc3df677"/><dir name="Design"><file name="Config.php" hash="93276cf40f2f17108cb16e6feb0fb674"/><file name="Fallback.php" hash="5484111090937874c9989a2df61a13d8"/><file name="Package.php" hash="267df9446f26ba8a64cb2c04c9f7b20d"/><dir name="Source"><file name="Apply.php" hash="232aac8a7ca16ed044f1d88d8ece4775"/><file name="Design.php" hash="b594cf0c90f77d1eab9947667024a6b3"/></dir></dir><file name="Design.php" hash="edf9897c28bb0697addc9050785b1389"/><file name="Domainpolicy.php" hash="80272f0001a2360486342d53df6a7890"/><dir name="Email"><file name="Info.php" hash="b928f262cef6543836df610a9ddb81d5"/><file name="Queue.php" hash="faa403ad5e67f15b7e76a702a72c787f"/><dir name="Template"><file name="Abstract.php" hash="8f8c124b78d71d3757fb7439d06ed229"/><file name="Filter.php" hash="5b30e3fd74c056d97ba00b49f3a7691b"/><file name="Mailer.php" hash="14660ee8eeee2b300b46a01392c35712"/></dir><file name="Template.php" hash="5ee9291da1cb0bfcf71d14430777d5ae"/><file name="Transport.php" hash="46a8e4e2e504fc31a034f41bd05af5ca"/></dir><file name="Email.php" hash="e31ab1cef8d2dbaf9c9e02239774c039"/><file name="Encryption.php" hash="19930c4f9ce2b59dff7bf8e6ebcb9fc4"/><file name="Factory.php" hash="1def8ecf557dd80c27bd8b9ae0389aa0"/><dir name="File"><dir name="Storage"><file name="Abstract.php" hash="0f4742c51ad478f62623ce0ff36c02b7"/><dir name="Database"><file name="Abstract.php" hash="9558ea6318d43c989527c5c6781427d9"/></dir><file name="Database.php" hash="c8cd146d38f94cb1a34aa7ba4807e9d5"/><dir name="Directory"><file name="Database.php" hash="59a04f3cc135f69cc177d7713ee44da5"/></dir><file name="File.php" hash="33253411661b819e14dd8ffcbf68b991"/><file name="Flag.php" hash="36cd58ed02c91be1d8d6e163a6a37eaf"/></dir><file name="Storage.php" hash="29f0f2b03940992772d6d575742eac8b"/><file name="Uploader.php" hash="ac91eabcb578a50962258f0a1f684472"/><dir name="Validator"><file name="AvailablePath.php" hash="ec8d101e319bf09e3514236868d9fe96"/><file name="Image.php" hash="fed721fed352dcf04bae8d86d64c5e38"/><file name="NotProtectedExtension.php" hash="2a5bc90d074468f322ec80c5f22ff994"/></dir></dir><file name="Flag.php" hash="7dfd86cc88faaecb61270b06a8949afe"/><dir name="Input"><dir name="Filter"><file name="MaliciousCode.php" hash="45d2eba5b5367dd11cb343c3d95b2a0f"/></dir><file name="Filter.php" hash="9a705f56a3b458781ed1d0e08eb6d9de"/></dir><file name="Language.php" hash="5553b1a3996e214ee04bb873d2e496a2"/><dir name="Layout"><file name="Data.php" hash="ad8e232f9bfbcb6a2597762a4794ef59"/><file name="Element.php" hash="f763346da15b317cee92c02f57a37292"/><file name="Update.php" hash="d6b3c449d3e49dabc4087c36d083fa55"/></dir><file name="Layout.php" hash="f0496b8ddcef27367d8c492ed398a506"/><dir name="Locale"><file name="Config.php" hash="f38c5dec6e40442e75cac2587838acba"/></dir><file name="Locale.php" hash="8501f332360a8052748e3b25d1db656a"/><dir name="Log"><file name="Adapter.php" hash="16e93511497b13a8e07e4d517225ed0c"/></dir><file name="Logger.php" hash="beb95c8bf5b8505b8104278d3b9958a5"/><dir name="Magento"><dir name="Api"><file name="V2.php" hash="990a2e9e5813e05c5d1add95e22148a6"/></dir><file name="Api.php" hash="6fc47bad41f25c86614e3339b6171c4b"/></dir><dir name="Message"><file name="Abstract.php" hash="0b916894d2dc70d6ce62d46921e33d37"/><file name="Collection.php" hash="344cf87be807bf3d3824af6aca2bb9e3"/><file name="Error.php" hash="403f98d2d9612549c6f6258fa10a8d17"/><file name="Notice.php" hash="5d9e6c832be4e1bef81ad8081f75bc43"/><file name="Success.php" hash="66438b0c9cff77eb73ff5ff315df52f4"/><file name="Warning.php" hash="aafb26c475337e687ff1dfeb005edcaa"/></dir><file name="Message.php" hash="85d7966c908e150ac1e8fc41244f245a"/><dir name="Mysql4"><file name="Abstract.php" hash="44d0b31e3085e15ca2b3b0f9d0be2c5c"/><file name="Cache.php" hash="535e51f36277a7df2d30b9d2d6601b3c"/><dir name="Collection"><file name="Abstract.php" hash="4a98bfc00bea6a5da2fc5bf3609e6433"/></dir><dir name="Config"><dir name="Data"><file name="Collection.php" hash="4ef79294f6f55c6c2722abfb7ed34706"/></dir><file name="Data.php" hash="f53c79280bc295051fa7b3860cfea9ae"/></dir><file name="Config.php" hash="a42970610f64863e0097a58b9e6cc23b"/><dir name="Design"><file name="Collection.php" hash="743cd2d296bb161ecc98616e57a05d12"/><dir name="Package"><file name="Collection.php" hash="b0e13eba451dcbc84e59b3c1ba879b23"/></dir><dir name="Theme"><file name="Collection.php" hash="d15267e5e6c26e9e59a9c4be4735986e"/></dir></dir><file name="Design.php" hash="eda39942885b6a2679aa1ef3f41ea025"/><dir name="Email"><dir name="Template"><file name="Collection.php" hash="4f591b6e7817ed5fe9a06d1bbf77acf6"/></dir><file name="Template.php" hash="3ff3b156f0cc0cb243a1b09b74673339"/></dir><dir name="File"><dir name="Storage"><file name="Abstract.php" hash="3922d04eb1e885ba9ee02df7cc9a6408"/><file name="Database.php" hash="c60d8d1728e449fac71590330def8f94"/><dir name="Directory"><file name="Database.php" hash="4ce089a2e5594faf2a7cb6ea88944dd1"/></dir><file name="File.php" hash="2072a576162d3e7d4b2d17dfff5c647f"/></dir></dir><file name="Flag.php" hash="a0a11d34b0b0e100b96fc11c9c975a1f"/><dir name="Language"><file name="Collection.php" hash="58144f7d71289903e929638fc4fc5f1d"/></dir><file name="Language.php" hash="aced85d1d84667357d79ebb0fb8bc3b8"/><file name="Layout.php" hash="57bc0dbe1d31bb305e4660759025901b"/><file name="Resource.php" hash="c408f0d94d0cf7c85b60b281665c7444"/><file name="Session.php" hash="2a829f916eb8f50f7a63b670ca399bf2"/><dir name="Store"><file name="Collection.php" hash="ee4457bf62e4b2e3e7614558cf2f0cb7"/><dir name="Group"><file name="Collection.php" hash="e78c87707665daf3261d0e61aa003175"/></dir><file name="Group.php" hash="2f704ed0988128cc94aa579c23b40195"/></dir><file name="Store.php" hash="b9ec990140144ae2b4ff4b1b4357a276"/><dir name="Translate"><file name="String.php" hash="2550beff52f20647c9070a521b177d81"/></dir><file name="Translate.php" hash="2bae6bc9d6d6f9b54d1e74e3ef541620"/><dir name="Url"><dir name="Rewrite"><file name="Collection.php" hash="618b2b7ac1893631af1c96381be8d6e2"/></dir><file name="Rewrite.php" hash="f0847e55d9ab40a714791c1866102915"/></dir><dir name="Variable"><file name="Collection.php" hash="8c6cf80f822398f16ddcb1f700e5b97a"/></dir><file name="Variable.php" hash="e3412c25b10a5e79c59e90f7fe817ce3"/><dir name="Website"><file name="Collection.php" hash="34999e0a76945a915346632845961062"/></dir><file name="Website.php" hash="a6457ca65b822869a2c42abab954ba12"/></dir><file name="Observer.php" hash="7a1f30833ecd016885791a9df66ba83e"/><dir name="Resource"><file name="Abstract.php" hash="694793a99cc08f415b84aa6f87d3b080"/><file name="Cache.php" hash="d421e47284b76a6d0034a55954354601"/><dir name="Config"><dir name="Data"><file name="Collection.php" hash="aa72268f5dcd2cb27a2e9583bd9a7b97"/></dir><file name="Data.php" hash="6f5b1ffa861eb1a771b650e55393b8d2"/></dir><file name="Config.php" hash="b609a605366bda0d9b77fb0b4da8f680"/><dir name="Db"><file name="Abstract.php" hash="2aa23ed3e3cfbb4f1ee504b1b080dc93"/><dir name="Collection"><file name="Abstract.php" hash="856ffddfc4b7eef7e653fc9f4ed1cc12"/></dir></dir><dir name="Design"><file name="Collection.php" hash="9eda836bfcfc20bd10d992cff0f42dee"/><dir name="Package"><file name="Collection.php" hash="71080e12d259608667ca14694fc06786"/></dir></dir><file name="Design.php" hash="ab67c437c1fb6b21e174271b5eea4795"/><dir name="Email"><dir name="Queue"><file name="Collection.php" hash="dc99090438f9d3da4eafdd6289b0e593"/></dir><file name="Queue.php" hash="e6ff94522082f76abd83abeede4350c4"/><dir name="Template"><file name="Collection.php" hash="74ff7fee4831faeabb215e745ea2c5d5"/></dir><file name="Template.php" hash="e24b6c1aa4117729b9e1fef8ce470df1"/></dir><dir name="Entity"><file name="Abstract.php" hash="fbab338c7741fac0f55ee32753eabb31"/><file name="Table.php" hash="82ccdee4411353933aa056b40219c66a"/></dir><dir name="File"><dir name="Storage"><file name="Abstract.php" hash="63f9930772d7d6218a97eba4ef2e51e5"/><file name="Database.php" hash="9f8d3d2ae031cf910550022e48e04f24"/><dir name="Directory"><file name="Database.php" hash="7fd49ee18d156fc2cb5322497f066d8e"/></dir><file name="File.php" hash="db44e3c71d0a7ed03a1f98772fee81a1"/></dir></dir><file name="Flag.php" hash="fd7d58c0720668e089e1721675309e11"/><dir name="Helper"><file name="Abstract.php" hash="7f7d5923b0d30b78b5bb09101c6fa45d"/><file name="Mysql4.php" hash="9b7abcaf9407b0cfd54878aac2dc4a71"/></dir><file name="Iterator.php" hash="87812d0f3cc7c2aa3ad880845a9d81cb"/><dir name="Language"><file name="Collection.php" hash="a94b4d950521edf293306f2ce3d1f2e3"/></dir><file name="Language.php" hash="1a8abe38849f32cf206d94908d0bb157"/><file name="Layout.php" hash="eceec3e6ab5a55a7cdbcc9ed830cd9d8"/><file name="Resource.php" hash="5dd772aa7bd15d23902ec45c73a6e757"/><file name="Session.php" hash="f6113f0ded8c6c1ac47a3d3ea30a5d05"/><dir name="Setup"><dir name="Query"><file name="Modifier.php" hash="441f79117cff4d7d6bc7e1bf3af0534d"/></dir></dir><file name="Setup.php" hash="af2e8140844cf09135c7270cb6cc57b6"/><dir name="Store"><file name="Collection.php" hash="77e38160ee990c0ef701635da0727f27"/><dir name="Group"><file name="Collection.php" hash="69ef898295bf51476f85350909a30dbb"/></dir><file name="Group.php" hash="aadd4f4301afaa93d49cb98cd6a31a27"/></dir><file name="Store.php" hash="8deab7031d5538151a02b5a7b27b4de1"/><file name="Transaction.php" hash="304008e754044346662a2763add16495"/><dir name="Translate"><file name="String.php" hash="14389d4db4ba5795ccfbe923b876fd7d"/></dir><file name="Translate.php" hash="6717d307f1747093eaea31225aa18935"/><dir name="Type"><file name="Abstract.php" hash="688b26e10a67f4484131cdf9de51557b"/><dir name="Db"><dir name="Mysqli"><file name="Setup.php" hash="8a5f3235eb45f511db2b0e14ca7bac3d"/></dir><file name="Mysqli.php" hash="6459b80b973a0944cba2619a173aa895"/><dir name="Pdo"><file name="Mysql.php" hash="747a0822bd08cb3f0b2d1526c6dfeccf"/></dir></dir><file name="Db.php" hash="b8eb52fe758a85e093f2e7694d8663ca"/></dir><dir name="Url"><dir name="Rewrite"><file name="Collection.php" hash="683f36f30c844c054f01be8ff310230e"/></dir><file name="Rewrite.php" hash="fecead19766cf14766a558ea79f5a67d"/></dir><dir name="Variable"><file name="Collection.php" hash="5bc6509f458ccad5ff27fc03f35aa9d4"/></dir><file name="Variable.php" hash="75b3c3b20e1bfd1a0f4017b7e64ec1ce"/><dir name="Website"><file name="Collection.php" hash="1c353c8ed5e653bf799a81896da8a645"/></dir><file name="Website.php" hash="e385a6d19f6d87c1e8c0ac0e31dbf471"/></dir><file name="Resource.php" hash="a97d261d1638b03f3a19ba7947c0f03e"/><dir name="Session"><dir name="Abstract"><file name="Varien.php" hash="19260a0b1483c335437a1b83fbecbde4"/><file name="Zend.php" hash="48602c6c721a1419a16291602bbc6e6b"/></dir><file name="Abstract.php" hash="0fd88d73bd06001281b3f4cd3185f855"/><file name="Exception.php" hash="1419325851e05e56085a80360993ec7a"/></dir><file name="Session.php" hash="e2c1d6077d37b1fd5a648b1f7835c3e7"/><dir name="Source"><dir name="Email"><file name="Variables.php" hash="2d6e88ba25d3321a5af0d7fde74569c3"/></dir></dir><dir name="Store"><dir name="Api"><file name="V2.php" hash="23fce9936bfde4eddf3bc042da49c704"/></dir><file name="Api.php" hash="e26d51518a7bcd09ed5da2fac58b1b4f"/><file name="Exception.php" hash="59d2bd50b218ccf5f217e8f4f87db294"/><file name="Group.php" hash="685ea0a277d23ec5e17d44728deef16a"/><file name="Observer.php" hash="beed858da489fece24868586ae67624b"/></dir><file name="Store.php" hash="f895e6a4d4fc82542c471c2c276ff215"/><file name="Template.php" hash="e78ec82cbb982ce5e06e6937e8616ae0"/><dir name="Translate"><file name="Expr.php" hash="5e7825d1ad5d680fae8d2cb2e3e56a3f"/><file name="Inline.php" hash="c46e75758767785fcbf90429f3b27f7c"/><file name="String.php" hash="ff5d4c7d438f42a96481bcf50dcfe726"/></dir><file name="Translate.php" hash="40815cb1b455d9b11ee7bc5b209f7883"/><dir name="Url"><dir name="Rewrite"><file name="Interface.php" hash="9c5c19dbddac570166efa99fe23636eb"/><file name="Request.php" hash="1d981ff6255931373ab21012ef728a43"/></dir><file name="Rewrite.php" hash="65284f3fd21eab368bb60e9fcef41980"/><file name="Validator.php" hash="c701ffe374838bcc86a02daeb531716c"/></dir><file name="Url.php" hash="8d74e01ecc551a7fb4170fce4aab07d2"/><dir name="Variable"><file name="Config.php" hash="2e89c7e08f594c235ee7c54d9d8ecd04"/><file name="Observer.php" hash="abeffe7406776babb339ff8530c97bcb"/></dir><file name="Variable.php" hash="6b550791573110761a25dd7a014bd0ea"/><file name="Website.php" hash="159a68fc3084c56aa44b77214f6d22be"/></dir><dir name="controllers"><file name="AjaxController.php" hash="0fdf2d77ca172a26f52a058d9f4a7744"/><file name="IndexController.php" hash="bf938059a97c970206756db4f00c9584"/></dir><dir name="etc"><file name="api.xml" hash="6bbb100de305337ddec14d20e0cfdf70"/><file name="config.xml" hash="21bdbe591bc2a77e460fdfecfc12ffca"/><file name="jstranslator.xml" hash="75e1f15bd4333b43b2b4ed1f8e8d5584"/><file name="system.xml" hash="dfb91fb13c9b137c2d2314b6416f26eb"/><file name="wsdl.xml" hash="79501d6ccf39846b5dd551e85880dcb8"/><file name="wsi.xml" hash="31fa195d527181c946019bcd44d819d6"/></dir><file name="functions.php" hash="e720e89444d851040333f1cd71fc72f5"/><dir name="sql"><dir name="core_setup"><file name="install-1.6.0.0.php" hash="c69f3177bd988dcf47af832d0f30d867"/><file name="mysql4-data-upgrade-1.6.0.2-1.6.0.3.php" hash="fb24c3e570816db655406d337f606568"/><file name="mysql4-install-0.7.0.php" hash="d7fd9846b6460fc316c7e16c6728dedc"/><file name="mysql4-install-0.8.0.php" hash="cdee3cc30f18e8867a1a2804cdd84d03"/><file name="mysql4-upgrade-0.6.26-0.7.0.php" hash="345976f0456345f682763fac7316cc55"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="32fefbbffd4cecd44bb883383cfd9371"/><file name="mysql4-upgrade-0.7.2-0.7.3.php" hash="66ebb46fb35c1af148779933ef65fca8"/><file name="mysql4-upgrade-0.7.3-0.7.4.php" hash="c5412377ad835880e87f4732a3b6714a"/><file name="mysql4-upgrade-0.7.4-0.7.5.php" hash="0c21a8b350aeef94116668aca96d4ded"/><file name="mysql4-upgrade-0.7.5-0.7.6.php" hash="9e245ebd96215aae487df642a4244006"/><file name="mysql4-upgrade-0.7.6-0.7.7.php" hash="67525f1672117b14999c40df9b4ffe44"/><file name="mysql4-upgrade-0.7.7-0.7.8.php" hash="8aa20d72ba29c2c4c036a74f5da81354"/><file name="mysql4-upgrade-0.7.8-0.7.9.php" hash="60cfbe9a16cea4084149fbb60aadfe33"/><file name="mysql4-upgrade-0.8.0-0.8.1.php" hash="4b5bfe8f064af5094380fd0c6f4230b8"/><file name="mysql4-upgrade-0.8.1-0.8.2.php" hash="5e889e1e36552f97c6b47ccacc037878"/><file name="mysql4-upgrade-0.8.10-0.8.11.php" hash="e7b405393ee923ce77b4fc73fe2c49e5"/><file name="mysql4-upgrade-0.8.11-0.8.12.php" hash="e5177617bf9ff7cad413ebadbaa36c2e"/><file name="mysql4-upgrade-0.8.12-0.8.13.php" hash="58d94dcd86435d9a9678110d7380e9e6"/><file name="mysql4-upgrade-0.8.13-0.8.14.php" hash="4ef7145c13ab85b257e149ee4ce42aae"/><file name="mysql4-upgrade-0.8.14-0.8.15.php" hash="11462279aad7a312d138871c1232bc4c"/><file name="mysql4-upgrade-0.8.15-0.8.16.php" hash="b68084f2461e13da31d10ffb69b6c427"/><file name="mysql4-upgrade-0.8.16-0.8.17.php" hash="cc5a96f1ec35576e5cc04d2f3c8fcdbe"/><file name="mysql4-upgrade-0.8.17-0.8.18.php" hash="a049195d8b49c8fac0b422b55444f072"/><file name="mysql4-upgrade-0.8.18-0.8.19.php" hash="5c1e0d78fe374bc179fac4e0a201024c"/><file name="mysql4-upgrade-0.8.19-0.8.20.php" hash="57188799f2c9aa98b2db3e9cc88f57ca"/><file name="mysql4-upgrade-0.8.2-0.8.3.php" hash="5c4c948191730c5aaa46a9c0a4d529af"/><file name="mysql4-upgrade-0.8.20-0.8.21.php" hash="26306dc6458b0403f1a05bc92447af40"/><file name="mysql4-upgrade-0.8.21-0.8.22.php" hash="1375cdd7860773ed2f80282af9986008"/><file name="mysql4-upgrade-0.8.22-0.8.23.php" hash="96d94946d3d1d8471ff619228407cb7a"/><file name="mysql4-upgrade-0.8.23-0.8.24.php" hash="219d2459c587c5e8a81290c56154e0d6"/><file name="mysql4-upgrade-0.8.24-0.8.25.php" hash="6f1f9c00a382d22bcc220e1b9f3c8905"/><file name="mysql4-upgrade-0.8.25-0.8.26.php" hash="4558c5a6d9be1ca611ac9ca058e4edfb"/><file name="mysql4-upgrade-0.8.26-0.8.27.php" hash="65e15fa502932b633a0c8c828a6334bf"/><file name="mysql4-upgrade-0.8.27-0.8.28.php" hash="19590c1ee41148edfc36fc72965e402b"/><file name="mysql4-upgrade-0.8.3-0.8.4.php" hash="3cc627e59b0ceb3b3016e328c88b829e"/><file name="mysql4-upgrade-0.8.4-0.8.5.php" hash="5a829783619299f2538700da0ae1e123"/><file name="mysql4-upgrade-0.8.5-0.8.6.php" hash="3e314226e8fbaa3bcaf1694faefd8809"/><file name="mysql4-upgrade-0.8.6-0.8.7.php" hash="c2344bc955f3fb823c2926310209c25e"/><file name="mysql4-upgrade-0.8.7-0.8.8.php" hash="9b86798fe5b7fe0cb5cc595874b07501"/><file name="mysql4-upgrade-0.8.8-0.8.9.php" hash="d2bbc20b4f415a188d706abd0f67bb0d"/><file name="mysql4-upgrade-0.8.9-0.8.10.php" hash="6255b0401694107d9c3c67d0a7cb4a6f"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="91433f5df703361ded3d282200923d2d"/><file name="upgrade-1.6.0.1-1.6.0.2.php" hash="dba0fecbc83001d5c62b114522103050"/><file name="upgrade-1.6.0.2-1.6.0.3.php" hash="e043db02bb9983863f06f46dac0b78c2"/><file name="upgrade-1.6.0.3-1.6.0.4.php" hash="1be7d02e33df1abe18f3df4d76063329"/><file name="upgrade-1.6.0.5-1.6.0.6.php" hash="eb7b611019f69996f4963183636b6094"/></dir></dir></dir><dir name="Cron"><file name="Exception.php" hash="7ad70a581e997407204ecec98768cdd5"/><dir name="Helper"><file name="Data.php" hash="a977275822fc9e8de01235a624ba7cc4"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Schedule"><file name="Collection.php" hash="62f2dd629591cebffd75273bdea7c5b7"/></dir><file name="Schedule.php" hash="6ac83aed52b6ae3256a9906a4370a66c"/></dir><file name="Observer.php" hash="3a61f2a4165aadd074686fc4dd6bfeea"/><dir name="Resource"><dir name="Schedule"><file name="Collection.php" hash="a8f6dddabd1265fb4743245ced01230b"/></dir><file name="Schedule.php" hash="33fc20836d2171d9949b73cc50e2d105"/></dir><file name="Schedule.php" hash="97c2856ad13132d2abbb4ad4937dae60"/></dir><dir name="etc"><file name="config.xml" hash="8ea948903301aed5a1117e1ec2b52b7d"/><file name="system.xml" hash="bc4190c5898ffc674bf7ae552b14cc7e"/></dir><dir name="sql"><dir name="cron_setup"><file name="install-1.6.0.0.php" hash="4ac9e29af105f14c9ea6e0565eb21dce"/><file name="mysql4-install-0.7.0.php" hash="3ba830a77c1d985f7a83fe0e008475e9"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="4d5d452d004acae9c2ace046afe0ad92"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="9008bddeb8e836fbb26f0c20aab65fdf"/></dir></dir></dir><dir name="CurrencySymbol"><dir name="Block"><dir name="Adminhtml"><dir name="System"><file name="Currencysymbol.php" hash="f47a77be4420bffac85f7d872e89f102"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="147a5a7af07ed0831da300c3f100c20e"/></dir><dir name="Model"><file name="Observer.php" hash="c6a9f862b406983ac0c3b4667998338b"/><dir name="System"><file name="Currencysymbol.php" hash="f43af0d9441283cb3583dfb25c9c72c2"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="System"><file name="CurrencysymbolController.php" hash="81843fabc7a4edeffb3c66a96f245111"/></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="d406b1181fcc035d9e66f0478c772053"/><file name="config.xml" hash="9b618f0e516ffa912d7d6ba9ec4f7e93"/></dir></dir><dir name="Customer"><dir name="Block"><dir name="Account"><file name="Changeforgotten.php" hash="fced334ff0b4c476c421e8eb61ab898c"/><dir name="Dashboard"><file name="Address.php" hash="08fc3da5ef87ce0f3d3b6a49c6d6b96d"/><file name="Block.php" hash="7ecc346998aa07b344b488a1f68bcf3a"/><file name="Hello.php" hash="1577a3b7e668fb5eba42d771cee2a4df"/><file name="Info.php" hash="a28109d8c9e53d8df9c112fc6456c618"/><file name="Newsletter.php" hash="81eaf17f4451110516d15c1e9060a6df"/><file name="Sidebar.php" hash="78f7c1ecea5c5d84ffc9265ec682112b"/></dir><file name="Dashboard.php" hash="4ea7dc3f67fb46c8de31ac6dde8702a2"/><file name="Forgotpassword.php" hash="0954e6e8365b6f1bed1c8b5cfdb711c0"/><file name="Navigation.php" hash="2bb91a3fca4c66259eab57b299240a30"/><file name="Resetpassword.php" hash="ed4565c138a3ddc81e64fe6dbc84bd0a"/></dir><file name="Account.php" hash="afe508a80c28e23a4ecb1c3c5544a6b0"/><dir name="Address"><file name="Book.php" hash="5729c1d41ac620d29fbd2b7720f64c51"/><file name="Edit.php" hash="3ffd80fd5dfe6540383e8072433c6965"/><dir name="Renderer"><file name="Default.php" hash="fc8079a31280cb3e17e4955f002e9732"/><file name="Interface.php" hash="d66b89c20dd7ea78138f1f959cc0b901"/></dir></dir><dir name="Form"><file name="Edit.php" hash="d53369b67258ffabea416ab39348ae00"/><file name="Login.php" hash="0198cb1a7280263217b6c028c679ce8f"/><file name="Register.php" hash="cc64439d56326d315840b6bf8d50e151"/></dir><file name="Newsletter.php" hash="a1c95a95a4498fc1544da8b9060e85be"/><dir name="Widget"><file name="Abstract.php" hash="9f8810def5e03f41ca7bfbc6d029538f"/><file name="Dob.php" hash="cccffffa3c36c6f37cf7db02dc5e7cc9"/><file name="Gender.php" hash="20a92e9abae465f22df00485388e7ec2"/><file name="Name.php" hash="44e46d85ffc1aadf9584aadefb9a623d"/><file name="Taxvat.php" hash="5b6a1aeb9ea9eabc7a2202464c56e0a5"/></dir></dir><file name="Exception.php" hash="334d5017aa3ad32335b631affbf8b194"/><dir name="Helper"><file name="Address.php" hash="2d3a7d87871f4c022b6f5f531cf1f8ea"/><file name="Data.php" hash="10513c8d44c1f203ac836573cff34b66"/></dir><dir name="Model"><dir name="Address"><file name="Abstract.php" hash="5d9dee72eb717beae28d1922c057a11b"/><dir name="Api"><file name="V2.php" hash="266ad678cd335ba60c1af1da19f22bf9"/></dir><file name="Api.php" hash="a03cc80ec147566fcff37dbf64faab06"/><file name="Config.php" hash="80d39631075023919039fd1c57ba6669"/></dir><file name="Address.php" hash="fdd7f0519a98d5b0254d3fec6f21665c"/><dir name="Api"><file name="Resource.php" hash="a3ca3939facf9676e07572b2e0e2b1b8"/></dir><dir name="Api2"><dir name="Customer"><dir name="Address"><dir name="Rest"><dir name="Admin"><file name="V1.php" hash="0c688ce090e3d27195058d7d498dbede"/></dir><dir name="Customer"><file name="V1.php" hash="5234f6e89921abb1805b252a2f191545"/></dir></dir><file name="Rest.php" hash="b8d40fa6226e0a1de076a2dea49e7d8b"/><file name="Validator.php" hash="57a2007eca992a01d27ee93844ef1c83"/></dir><file name="Address.php" hash="aaa3e23cf5369a422c7dc7f60fe988f0"/><dir name="Rest"><dir name="Admin"><file name="V1.php" hash="5b2113835c16750e3496a5f5fb1f5ae3"/></dir><dir name="Customer"><file name="V1.php" hash="4405dc245188874865c837f9558b3082"/></dir></dir><file name="Rest.php" hash="5ed64554ea1364509e0cf89288c04208"/></dir><file name="Customer.php" hash="bb6e0e4c5c2d5bfc28516547e6e61b64"/></dir><dir name="Attribute"><dir name="Backend"><dir name="Data"><file name="Boolean.php" hash="4ac8df716d7f38367d6dbe49e72052e2"/></dir></dir><dir name="Data"><file name="Abstract.php" hash="1867ecd751e10de5d28f4acf3459b1eb"/><file name="Boolean.php" hash="58e453aa57b80ec5e9372436ebaca1d6"/><file name="Date.php" hash="8452492f198664592e3e7a86aae0d9ef"/><file name="File.php" hash="d28febe339b50dbddaab12ca9b8cca4e"/><file name="Hidden.php" hash="6d33bce9cf131d228af61789be63cef0"/><file name="Image.php" hash="fdc9ced5bcab3f489d4d23db1c145c81"/><file name="Multiline.php" hash="475699822544385ca3dcc69e76fa13ba"/><file name="Multiselect.php" hash="cdc75f0b1ab1ce27dadb82349be079b6"/><file name="Postcode.php" hash="6a5bf54cf10fc54829effc31a63a72a2"/><file name="Select.php" hash="4d3809b46c33a1db0853ff6094d0e834"/><file name="Text.php" hash="fc8c36ddfdf5332a5d992b17a816c318"/><file name="Textarea.php" hash="fcd0ca5818876ddb39402575783eeebf"/></dir><file name="Data.php" hash="be5db892203623727253be6c7b993b88"/></dir><file name="Attribute.php" hash="4c616f072194b568dfa6dbcf2c9a28cd"/><dir name="Config"><file name="Share.php" hash="48d6a459edd906fa4433a8c7eb18bb53"/></dir><dir name="Convert"><dir name="Adapter"><file name="Customer.php" hash="d2eae522d3ca91753fbc3e29ddc1299f"/></dir><dir name="Parser"><file name="Customer.php" hash="beae99d9a77e453b1190adfec0750a3d"/></dir></dir><dir name="Customer"><dir name="Api"><file name="V2.php" hash="aa2436ca33afdaae7bdf096fc511b942"/></dir><file name="Api.php" hash="19f6a519c966b04198379abe62639baf"/><dir name="Attribute"><dir name="Backend"><file name="Billing.php" hash="faa9c2539bbf7b7a74b943d00caa708c"/><file name="Password.php" hash="d0393528b65c863a25de9175c9cf0784"/><file name="Shipping.php" hash="b68a9d6f1736be20b4ed6a21a6d0b49a"/><file name="Store.php" hash="2e69bab09b526a69a49a83b3c0cce498"/><file name="Website.php" hash="4334601d447e0fda794cec9dce34da7e"/></dir><dir name="Source"><file name="Group.php" hash="98360127300b5e9809144987e61a0264"/><file name="Store.php" hash="4abe85c31478e7fa194d4c2c98fc66a7"/><file name="Website.php" hash="2618b2a43a90336eec9ca4e84e20c2a5"/></dir></dir></dir><file name="Customer.php" hash="415ef1ba5874495e1af03ce6532157b1"/><dir name="Entity"><dir name="Address"><dir name="Attribute"><dir name="Backend"><file name="Region.php" hash="1e8b5f5d46a5ad344f18f856dbc86a53"/><file name="Street.php" hash="f3eb2077afa392b82939a7d33058ad81"/></dir><file name="Collection.php" hash="d3ec4db3da89f9371c49196ff87d9cab"/><dir name="Source"><file name="Country.php" hash="ac1d2569e723fd3324242a1ab4c05849"/><file name="Region.php" hash="e4e8342efe2fd0b38294f3788e1bcbbc"/></dir></dir><file name="Collection.php" hash="05ddc8ad4046b66ef051b52d44fdd1e6"/></dir><file name="Address.php" hash="9ca25098a2ce67cc50d1f0c0bf492f32"/><dir name="Attribute"><file name="Collection.php" hash="b1bb2d740a7c345c0c46ecafa70167bd"/></dir><file name="Attribute.php" hash="e1b8d57fa9b3d802ac0ad6ff895b98b0"/><dir name="Customer"><file name="Collection.php" hash="c23343549f1e667660861a73fbe3dc19"/></dir><file name="Customer.php" hash="9cd6abf273d7d3699ee02f49569d327e"/><dir name="Form"><dir name="Attribute"><file name="Collection.php" hash="ef67e77017f7db0946f21874e3ebc711"/></dir><file name="Attribute.php" hash="618a8aff4746774c556906e2dbb56dc0"/></dir><dir name="Group"><file name="Collection.php" hash="e06ab66c1fc6b016a8cdc6e39fee5ab0"/></dir><file name="Group.php" hash="45fb0fbbe8e357fe6f26ae1cbf31b77f"/><file name="Setup.php" hash="33c38b117ba9aa195bb79504b56ae25c"/><dir name="Wishlist"><file name="Collection.php" hash="354fb025a63f5b3026f690cb4442ab9b"/></dir></dir><file name="Flowpassword.php" hash="aee79bea3f86395824b27d7d6ca93f50"/><file name="Form.php" hash="d5f1aa9224be4aa721771b8fb65e7abf"/><dir name="Group"><dir name="Api"><file name="V2.php" hash="5bdbdfeb06ce9a196eb712fefc9c402b"/></dir><file name="Api.php" hash="6d92e16c176002b84361ac07832bffb6"/></dir><file name="Group.php" hash="7cc8f0dd768aba328ee3564cbfecaf31"/><file name="Observer.php" hash="9758d692c88270f13c25e555ce4346c0"/><dir name="Resource"><dir name="Address"><dir name="Attribute"><dir name="Backend"><file name="Region.php" hash="0d9f0d30f70655765bed01b63d96d9b6"/><file name="Street.php" hash="04a83b26c53aa80ab01c1aafbb796ea1"/></dir><file name="Collection.php" hash="637774f2478002e6ee054df43bcc379b"/><dir name="Source"><file name="Country.php" hash="71a2b37a1748851c0035f809e0bdfe89"/><file name="Region.php" hash="844de0dca956ee491723b7902228fb04"/></dir></dir><file name="Collection.php" hash="36dce3f02858cf7a208cb5e1725aa97e"/></dir><file name="Address.php" hash="9903c920d224421684fb7bd93a7781a5"/><dir name="Attribute"><file name="Collection.php" hash="db7bbf94e78302488fde013cfacd9e98"/></dir><file name="Attribute.php" hash="eb31a55d0a28cffe6bc03e05df1ed514"/><dir name="Customer"><file name="Collection.php" hash="5c3207823fed1f27990d26cf0f8f3d2c"/></dir><file name="Customer.php" hash="78f73dd318200e4c5a07a766d63b7c68"/><dir name="Flowpassword"><file name="Collection.php" hash="ba8c62785415537ac758c04cf37289e7"/></dir><file name="Flowpassword.php" hash="337364917b9f7e2193d08b0518a7b4ad"/><dir name="Form"><dir name="Attribute"><file name="Collection.php" hash="d62fab14dc76f758829cef6a810df9d8"/></dir><file name="Attribute.php" hash="d7a7296e899066d4fc01b6f2a56f4db8"/></dir><dir name="Group"><file name="Collection.php" hash="5afd75ae771a976b601f81dafbbcec87"/></dir><file name="Group.php" hash="b7a915449ed7749c86b0ad1ce6ff0585"/><file name="Setup.php" hash="e9702ba3b32f695e2a2d99b31448ce85"/><dir name="Wishlist"><file name="Collection.php" hash="5a0c9faad27c135369581b4c329b3843"/></dir></dir><file name="Session.php" hash="49a0f51d836465a95c0d1879519ad6b1"/></dir><dir name="controllers"><file name="AccountController.php" hash="a040da959746ebea9bd0eaae566f9ce8"/><file name="AddressController.php" hash="7aad194cd62fe564653be015222e0081"/><file name="ReviewController.php" hash="508c3a4932ad2b216fc78ff8a701d6f5"/></dir><dir name="data"><dir name="customer_setup"><file name="data-upgrade-1.6.2.0.2-1.6.2.0.3.php" hash="2bc893a5f3d9baf672cf84e8c913567c"/><file name="data-upgrade-1.6.2.0.4-1.6.2.0.5.php" hash="d244bf5a02f26e562324a548a2fbcca5"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="50849c1982934971d289b35dc3ecd0a4"/><file name="api.xml" hash="3ea62419ec25f6ad40d443166c628740"/><file name="api2.xml" hash="47711ce85c8d796ed91d265c6d460469"/><file name="config.xml" hash="134f43d37be148cada304bcb116b84e5"/><file name="system.xml" hash="1e1e4f8aea51ef3c6e6b6171ce76db40"/><file name="wsdl.xml" hash="b31ebf1de4a58469781b383f455991f5"/><file name="wsi.xml" hash="4c81aee30c525677be5c38e078b98408"/></dir><dir name="sql"><dir name="customer_setup"><file name="install-1.6.0.0.php" hash="c6722d28dacef27ab29b643f758ef193"/><file name="mysql4-data-upgrade-1.4.0.0.11-1.4.0.0.12.php" hash="ef5abe9941b9b1a0c895f5fa2b1f0aea"/><file name="mysql4-data-upgrade-1.4.0.0.13-1.4.0.0.14.php" hash="d44a1e3efa2cd3fc388c207917821570"/><file name="mysql4-data-upgrade-1.4.0.0.7-1.4.0.0.8.php" hash="2c91627628c1339f5cebf10890a38f2d"/><file name="mysql4-data-upgrade-1.4.0.0.8-1.4.0.0.9.php" hash="e49b632aca5e28a67293c325126a0409"/><file name="mysql4-install-0.7.0.php" hash="d8dcd4d5094da2f12e692ece42d88127"/><file name="mysql4-install-0.8.0.php" hash="0d3fbb7ed5c62178e222485988d9e7b5"/><file name="mysql4-install-1.4.0.0.0.php" hash="138bdb5365d60a33117ac3478aa9f85f"/><file name="mysql4-upgrade-0.6.1-0.7.0.php" hash="7c1fd0262a63c8ff50b79e001083f7a1"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="363e9b57cd3696b36f431f085752b5d8"/><file name="mysql4-upgrade-0.7.2-0.7.3.php" hash="021c527478a0ff9af0baf7ec3df02f4e"/><file name="mysql4-upgrade-0.8.0-0.8.1.php" hash="2c8c202d1ec6e3c1ae311b7f8e9f3463"/><file name="mysql4-upgrade-0.8.10-0.8.11.php" hash="6f0b05e3e4874f5eaca3a05a8d60b896"/><file name="mysql4-upgrade-0.8.11-0.8.12.php" hash="4628af77d20620d7560e13a6bd669472"/><file name="mysql4-upgrade-0.8.12-1.4.0.0.0.php" hash="36c583e090c0a00072dc6f0bbc63f5ca"/><file name="mysql4-upgrade-0.8.4-0.8.5.php" hash="0e6780ab9ffb88582b6380835eae0995"/><file name="mysql4-upgrade-0.8.5-0.8.6.php" hash="54566539dc7db512ee378323de4bf19b"/><file name="mysql4-upgrade-0.8.6-0.8.7.php" hash="a88dc9d5df61e4f1c35ca05aac6ae861"/><file name="mysql4-upgrade-0.8.7-0.8.8.php" hash="65ba249ca2d34310acecaf58a90c730a"/><file name="mysql4-upgrade-0.8.8-0.8.9.php" hash="faf1b1cc527fded99a6daf08abeb7eb0"/><file name="mysql4-upgrade-0.8.9-0.8.10.php" hash="f4c7bda051fd88c4ddc9dfd2bd561e21"/><file name="mysql4-upgrade-1.4.0.0.0-1.4.0.0.1.php" hash="2c281af9f5d3c7d765e0e811c737ae95"/><file name="mysql4-upgrade-1.4.0.0.1-1.4.0.0.2.php" hash="034ba91d9726928771e871b07577b8fb"/><file name="mysql4-upgrade-1.4.0.0.10-1.4.0.0.11.php" hash="8d674f068cc86cb857728b8b6fb08622"/><file name="mysql4-upgrade-1.4.0.0.12-1.4.0.0.13.php" hash="61c185677d57da12a970d22ddb05f05a"/><file name="mysql4-upgrade-1.4.0.0.2-1.4.0.0.3.php" hash="04f55ef4393d258f5a55e0028a9931f3"/><file name="mysql4-upgrade-1.4.0.0.3-1.4.0.0.4.php" hash="e637abb3ec729c7d5a823cd7a4aff962"/><file name="mysql4-upgrade-1.4.0.0.5-1.4.0.0.6.php" hash="c42b6bd2019102e3131ea7f540c50b6d"/><file name="mysql4-upgrade-1.4.0.0.6-1.4.0.0.7.php" hash="2b9caa7eda59e0d4450dedbb36b87cd8"/><file name="mysql4-upgrade-1.4.0.0.7-1.4.0.0.8.php" hash="001e91ba0859756ba7048bae6b38cc1c"/><file name="mysql4-upgrade-1.4.0.0.8-1.4.0.0.9.php" hash="b8786ebb55d6c1e0fc128d0e4da6ab2a"/><file name="mysql4-upgrade-1.4.0.0.9-1.4.0.0.10.php" hash="0b1efc85ae90a8caaefa357e4255ea82"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="e8b9f39275e935992bb92394b8d88a6d"/><file name="mysql4-upgrade-1.6.0.0-1.6.1.0.php" hash="239edb6475a8d43322ee37e6c93430f2"/><file name="upgrade-1.6.1.0-1.6.2.0.php" hash="ff896a7214ac40c54417217d57f8ed0a"/><file name="upgrade-1.6.2.0-1.6.2.0.1.php" hash="b297335d55acecbde135d6df95779463"/><file name="upgrade-1.6.2.0.1-1.6.2.0.2.php" hash="480c316c173021f5b6a3969c732aedf9"/><file name="upgrade-1.6.2.0.3-1.6.2.0.4.php" hash="7c8a6b2ad86df5b8af8fc57bc67d0fe2"/><file name="upgrade-1.6.2.0.4-1.6.2.0.5.php" hash="b9c2b754feef606a2e64651c44820ace"/></dir></dir></dir><dir name="Dataflow"><dir name="Helper"><file name="Data.php" hash="6465cd672c3f3b789f0ce68fe56ca210"/></dir><dir name="Model"><dir name="Batch"><file name="Abstract.php" hash="a72b30a0f7f2dbd2355cc9ab7a065fc0"/><file name="Export.php" hash="2a347c5b937768e63d94a291f4c6ee8c"/><file name="Import.php" hash="8609cf6fe2ec5e47113bfd892475f99c"/><file name="Io.php" hash="3b4e1278ab16b6cfa9abff8507f46063"/></dir><file name="Batch.php" hash="4c44c87c6a834e0f58efd26fed42a2c8"/><dir name="Convert"><dir name="Action"><file name="Abstract.php" hash="2438ed004179ffa108a63d5e2f222236"/><file name="Interface.php" hash="733da76667237922d6d449a3b69ae435"/></dir><file name="Action.php" hash="6cfe1a8b8d52145278b58895236b52be"/><dir name="Adapter"><file name="Abstract.php" hash="58e1fdd534d4f3f76d8fe1d865b60f86"/><dir name="Db"><file name="Table.php" hash="53e10c1ac23116f8c6a6ddbde64a1f9e"/></dir><dir name="Http"><file name="Curl.php" hash="744b8a2b86864abfea92b71725fc8820"/></dir><file name="Http.php" hash="d1ea66edc722b8accd19b0adfbd7d11c"/><file name="Interface.php" hash="11052c6a192dd467f389fe7ac6b84e85"/><file name="Io.php" hash="8c0296ddbbee95bf24aae0bcb78eea80"/><file name="Soap.php" hash="ca3e6862b566aeb5581f4344f3d621f6"/><file name="Std.php" hash="2d58df33c9796d6b046bb20c966054f7"/><dir name="Zend"><file name="Cache.php" hash="fcd406583fd02b7c8be74cc7843e6b95"/><file name="Db.php" hash="a85645a65ced26200c5525f15b8119e0"/></dir></dir><dir name="Container"><file name="Abstract.php" hash="f1802b2e4c92ec8877317fb50111f2c3"/><file name="Collection.php" hash="38380862831c2305259d46abbf41aa43"/><file name="Generic.php" hash="739a1e2be58f1870eda3f31b834a1823"/><file name="Interface.php" hash="fef9bc1ba0f04e432cdff336660ffc20"/></dir><file name="Exception.php" hash="d2d901bbcbf10a28df208dcd1a1980a8"/><dir name="Iterator"><dir name="File"><file name="Csv.php" hash="043ee74f2fceaef1af9170ec825d70b5"/></dir><file name="Http.php" hash="4727281da701bcae4d2f46982db9c980"/><file name="Interface.php" hash="2e6f3b56123eb3cffbc19c548dcfdafe"/></dir><file name="Iterator.php" hash="3a915c5742dcf64bc1f2d91626b9b0ee"/><dir name="Mapper"><file name="Abstract.php" hash="a786dee51483da6557501bf1673fd5d4"/><file name="Column.php" hash="0d247eb378c928e90f80a496b0388730"/><file name="Interface.php" hash="4bbf145346856b2c9f282fa2825f424b"/></dir><dir name="Parser"><file name="Abstract.php" hash="ef292d2447ef56d86ed9534aae6b3fff"/><file name="Csv.php" hash="7ecf34f0a9cf2bf9438e84a49e68c890"/><file name="Interface.php" hash="dadb9f463b43f28640e4708a4d866a50"/><file name="Serialize.php" hash="60e5ce469511bca43d4a89254424e823"/><dir name="Xml"><file name="Excel.php" hash="8ff8502bbf1565b2b25dcc2ff090197c"/></dir></dir><dir name="Profile"><file name="Abstract.php" hash="20b74ec5332d569fc3afc25fd4376f12"/><file name="Collection.php" hash="588af8f423060628544b544013ce1b47"/><file name="Interface.php" hash="ec1304f19b742cbf5229890d2a8fc226"/></dir><file name="Profile.php" hash="8812c4fc43739ace2116ab49c5d47806"/><dir name="Validator"><file name="Abstract.php" hash="c6f104eff1b82659a4d36d4de5eb3891"/><file name="Column.php" hash="76ce0db2dfa4136b77398245390d13f0"/><file name="Dryrun.php" hash="2fa547ec5aecf1a736f9877b00f75848"/><file name="Interface.php" hash="ed4f54c6508ce31a19f449cf527132ae"/></dir></dir><file name="Convert.php" hash="1a118785cfee26e0249652922fb3fa6f"/><file name="Import.php" hash="c4125b22472e8edb07aaf55a499201ee"/><dir name="Mysql4"><dir name="Batch"><file name="Abstract.php" hash="3aa5d4c54262bfbf463b7b2e90e6a0ca"/><file name="Collection.php" hash="9ea3700a10c5e6e85006c9d63a45b4e8"/><file name="Export.php" hash="5df742225ff7f0cb3c2530248a345b28"/><file name="Import.php" hash="fe2b0f2f6fc0bddc67825793ad13afba"/></dir><file name="Batch.php" hash="3803aa35bc8f1772737d21f0d65f6e07"/><file name="Catalogold.php" hash="0e023972193f136cebfde36252fa2c4c"/><dir name="Import"><file name="Collection.php" hash="7722967ae22783fe92f27e55e90de1ff"/></dir><file name="Import.php" hash="eb5d31c548d4eddbf751b208da673050"/><dir name="Profile"><file name="Collection.php" hash="ab4e4ad47794284cba12a444d7f3f495"/><dir name="History"><file name="Collection.php" hash="ee4193e87158ffceee49a1449c7bca99"/></dir><file name="History.php" hash="964aa735b3fd1ba3a06632ca19d28eee"/></dir><file name="Profile.php" hash="94be3bfa9c5f1a175fc6ee5d60e5ee65"/><file name="Session.php" hash="f8795a0c5817f0809c11f19ea5df5cf4"/></dir><dir name="Profile"><file name="History.php" hash="755a5ed8dd4c1b25f237fb1598b82c7d"/></dir><file name="Profile.php" hash="0f50de57e9866953aed96146620ac59f"/><dir name="Resource"><dir name="Batch"><file name="Abstract.php" hash="11746a73dbf367baddc49c98ee4bcd04"/><file name="Collection.php" hash="82529698919888159989a4595e4bdba4"/><file name="Export.php" hash="f41c179fc4ee246cb750f7c8d43df57f"/><file name="Import.php" hash="a0fcb8df641d15a8dd39009544e19447"/></dir><file name="Batch.php" hash="fcc5b78df2ea986e82415fe9e8e246ec"/><dir name="Import"><file name="Collection.php" hash="65eafb61a50696e1f399cd3a2f01030f"/></dir><file name="Import.php" hash="35a2c1acb655ff0c76c330114462fd25"/><dir name="Profile"><file name="Collection.php" hash="baca3a6c70f7ae2717341a6742db7782"/><dir name="History"><file name="Collection.php" hash="f689357486f341ee846696b278221fe3"/></dir><file name="History.php" hash="655b62bbe1d2eb9bbc4fbf34b1a272b2"/></dir><file name="Profile.php" hash="063582cabd6ad164def62f04205cb245"/><file name="Session.php" hash="773fef3cc64d0d4a9d2438125d2f6e6a"/></dir><dir name="Session"><dir name="Adapter"><file name="Http.php" hash="6f3b7442403f2d17c462d0f6ebc6486f"/></dir><dir name="Parser"><file name="Csv.php" hash="222ce10f61da341c9ca849bc2f8145d7"/></dir></dir><file name="Session.php" hash="dd3e356428c1f99f97906eb168dd5f33"/></dir><dir name="data"><dir name="dataflow_setup"><file name="data-install-1.6.0.0.php" hash="e071429f47116a98b169da9819c35640"/></dir></dir><dir name="etc"><file name="config.xml" hash="2e118dec7181a8e54eecd6476d20b1cd"/></dir><dir name="sql"><dir name="dataflow_setup"><file name="install-1.6.0.0.php" hash="16396d55ee8be825295fe63d5d89df7b"/><file name="mysql4-install-0.7.0.php" hash="1a3e64911829e084e4523ed8e02ed41f"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="6b7fb755e32fbdb7b0a8b8e2d07a8ea2"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="c38208cf5ed155921e0294d9149afa27"/><file name="mysql4-upgrade-0.7.2-0.7.3.php" hash="b51f71e9fd234db0af7ff97c442af60e"/><file name="mysql4-upgrade-0.7.3-0.7.4.php" hash="e3d3aaa974b011cb94c2ad7a5e026cdc"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="6d8690664c883cd6be731ebc8bce9894"/></dir></dir></dir><dir name="Directory"><dir name="Block"><dir name="Adminhtml"><dir name="Frontend"><dir name="Currency"><file name="Base.php" hash="3df3b6aaceeac2d31ceb35688be211cb"/></dir><dir name="Region"><file name="Updater.php" hash="fa6d4e9f133a8477fb646dae7aa7e4c8"/></dir></dir></dir><file name="Currency.php" hash="1410e677f27c3583f211be2d85a2149b"/><file name="Data.php" hash="c909b4874ea35549661d47ee2c1d921f"/></dir><file name="Exception.php" hash="453781dee8161d7b895ba3b1b0899ed3"/><dir name="Helper"><file name="Data.php" hash="aa37d979e53ded8d6ed9d432e6def025"/><file name="Url.php" hash="9e2d3271ce5db109658ee9f773db2fe0"/></dir><dir name="Model"><dir name="Country"><dir name="Api"><file name="V2.php" hash="afc6233ae08cfd5f08f8af38dfadad2a"/></dir><file name="Api.php" hash="c9307a174e99bb73fd7721d0cc15d628"/><file name="Format.php" hash="549856f02db55e157ce7cc937dd5795c"/></dir><file name="Country.php" hash="f47612b251ae4076df80ba085b1a00be"/><dir name="Currency"><file name="Filter.php" hash="3e3723b4af1bb35a6742a5ef2c019cd1"/><dir name="Import"><file name="Abstract.php" hash="3a1c5f29cca4389e86d6cebbe4f7be52"/><file name="Webservicex.php" hash="dea261da8bc1c2ddb0f00813a7d62754"/></dir></dir><file name="Currency.php" hash="f24df11a73ec1ac000d4ee91fe4cccf4"/><dir name="Mysql4"><dir name="Country"><file name="Collection.php" hash="490fcff8cc039c4a882d3e3b39ac0b3e"/><dir name="Format"><file name="Collection.php" hash="0f58e5a9fa3243c66db014d768a98da0"/></dir><file name="Format.php" hash="1b5b0f7deb5ec7a20a428d3c9a51cec5"/></dir><file name="Country.php" hash="23ff3d527006e79be8d941145374b004"/><dir name="Currency"><file name="Collection.php" hash="7418fb72c4b329862657fea893873e32"/></dir><file name="Currency.php" hash="8e9d26aad2bafd54bfab262341b89840"/><dir name="Region"><file name="Collection.php" hash="003d2e43eab9416cc832faaae38d445e"/></dir><file name="Region.php" hash="ac20fa937cd177b663e7acab340b7f4a"/></dir><file name="Observer.php" hash="66dfc096ba692f66d368654743204f2f"/><dir name="Region"><dir name="Api"><file name="V2.php" hash="da3f09a99c24d056d3461b600884f039"/></dir><file name="Api.php" hash="13196b7ad957235c9d4d80744baacc3d"/></dir><file name="Region.php" hash="5f11b838130796d0c106ef14e9a101ba"/><dir name="Resource"><dir name="Country"><file name="Collection.php" hash="ced5dce56f137888a778c307244eadf4"/><dir name="Format"><file name="Collection.php" hash="69cb0e29571bd557c535465669d45e66"/></dir><file name="Format.php" hash="801e9aeb9fcac19129e86aaf6c742bd2"/></dir><file name="Country.php" hash="d6826020474e1e50a9f7d616110c1eed"/><dir name="Currency"><file name="Collection.php" hash="4d6afb22b96acf37ac4f67a6326166b5"/></dir><file name="Currency.php" hash="24f10a37fe14475176ee98163b700344"/><dir name="Region"><file name="Collection.php" hash="57023acea67abf21b68492953657446c"/></dir><file name="Region.php" hash="bc8800af3d7e35e91fa90f2b553d9a91"/></dir></dir><dir name="controllers"><file name="CurrencyController.php" hash="35bb0925782ebd04e4943ab84951b0a3"/></dir><dir name="data"><dir name="directory_setup"><file name="data-install-1.6.0.0.php" hash="449178d272d3d195a1cbb6fc539a19d7"/><file name="data-upgrade-1.6.0.0-1.6.0.1.php" hash="8e186141736e15ee67ac6666545fed8d"/><file name="data-upgrade-1.6.0.2-1.6.0.3.php" hash="e0f4e5efad915f8bd637815adb08569a"/></dir></dir><dir name="etc"><file name="api.xml" hash="a8c3af31971871f3375af3bed83efb86"/><file name="config.xml" hash="74e76d5a9efb3fee78fc4c625c294ab6"/><file name="system.xml" hash="184976587366b082639fb50d529be1ee"/><file name="wsdl.xml" hash="cc488b81c0eae648a0ee360d6e2d9960"/><file name="wsi.xml" hash="66de37cc17e24c0c66f74c52e2df616e"/></dir><dir name="sql"><dir name="directory_setup"><file name="install-1.6.0.0.php" hash="96c305524970800bd33dbe4fde4fc024"/><file name="mysql4-install-0.7.0.php" hash="42cf2e07bdba83c4a27ef841f02cf584"/><file name="mysql4-install-0.8.0.php" hash="44a9bc17d349599c2f6ff1a4b2007846"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="0959ae732181c61075a30c10e25ef9d0"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="32c7d7431d0eb0edeae4ee12ee8e4330"/><file name="mysql4-upgrade-0.8.0-0.8.1.php" hash="4a159005aafdf056c758c1f2dab6b6e5"/><file name="mysql4-upgrade-0.8.1-0.8.2.php" hash="112a839147f190e708ac455635a889ea"/><file name="mysql4-upgrade-0.8.10-0.8.11.php" hash="4506726831a1d03b8207430506e602cd"/><file name="mysql4-upgrade-0.8.2-0.8.3.php" hash="f88e75dc363e65884f3c048e7ffc0923"/><file name="mysql4-upgrade-0.8.3-0.8.4.php" hash="20244a13eae58dcc96177cee74fccfbd"/><file name="mysql4-upgrade-0.8.4-0.8.5.php" hash="8bd7e20943ffcf758a319bc15e9c3d05"/><file name="mysql4-upgrade-0.8.5-0.8.6.php" hash="bfbf0cf011d06e1e92bd31462ebcce0a"/><file name="mysql4-upgrade-0.8.6-0.8.7.php" hash="e86faf4aaa60d3c6594e6a86f00dcb7d"/><file name="mysql4-upgrade-0.8.7-0.8.8.php" hash="5d20a16495474937945473bac9216f5b"/><file name="mysql4-upgrade-0.8.8-0.8.9.php" hash="c2e580ccc38df1b269b211a97b6631f8"/><file name="mysql4-upgrade-0.8.9-0.8.10.php" hash="449b434a82d218c5247b29abc82af315"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="ab1088a57c79f78a47f80873415e5804"/><file name="mysql4-upgrade-1.6.0.1-1.6.0.2.php" hash="990a1d52cb2fe443704da47a700b5237"/><file name="upgrade-1.6.0.1-1.6.0.2.php" hash="8882e2847161262a97651fe455d3cb09"/></dir></dir></dir><dir name="Downloadable"><dir name="Block"><dir name="Adminhtml"><dir name="Catalog"><dir name="Product"><dir name="Composite"><dir name="Fieldset"><file name="Downloadable.php" hash="7358eefbe70ee183fff6b1a2704b89df"/></dir></dir><dir name="Edit"><dir name="Tab"><dir name="Downloadable"><file name="Links.php" hash="a9ce2e6282195240d0a02688817f4e9c"/><file name="Samples.php" hash="1c7b91bec2db896a3f314db755b58a24"/></dir><file name="Downloadable.php" hash="f8b9ba9f21da82fdc42aca57b2342440"/></dir></dir></dir></dir><dir name="Sales"><dir name="Items"><dir name="Column"><dir name="Downloadable"><file name="Name.php" hash="ac478179897d1c38ed89186f2b96c6d1"/></dir></dir></dir></dir></dir><dir name="Catalog"><dir name="Product"><file name="Links.php" hash="6f12867079f0056e33188a1781b26ce2"/><file name="Samples.php" hash="584482a2e01386e3e5adcdfebe777bab"/><dir name="View"><file name="Type.php" hash="3f08ab2df3b23f5cd17db5552eba2c3d"/></dir></dir></dir><dir name="Checkout"><dir name="Cart"><dir name="Item"><file name="Renderer.php" hash="5ccfcdb46c34c9b9156755ac704c5a08"/></dir></dir><file name="Success.php" hash="99e840479f116e644a35d9d216159b4b"/></dir><dir name="Customer"><dir name="Products"><file name="List.php" hash="be90199170ef5e92035c539a27929df4"/></dir></dir><dir name="Sales"><dir name="Order"><dir name="Email"><dir name="Items"><file name="Downloadable.php" hash="4c877a4a2d8b36d09606d16d9aff6c4f"/><dir name="Order"><file name="Downloadable.php" hash="6d1f06f133472f790e0b00c1e9bdf37f"/></dir></dir></dir><dir name="Item"><dir name="Renderer"><file name="Downloadable.php" hash="f52357f0c231d6ff9741fdc6ff165ea6"/></dir></dir></dir></dir></dir><dir name="Helper"><dir name="Catalog"><dir name="Product"><file name="Configuration.php" hash="d7d2ffc5fcd3d53a4273289cdf6921b3"/></dir></dir><file name="Data.php" hash="07eb756ae74dfa62fd3bf51609d4d4a6"/><file name="Download.php" hash="3c298ba201ccc8d74bc52c2e49390af8"/><file name="File.php" hash="d38bd38baf4d6ac7028f9916c109027a"/></dir><dir name="Model"><dir name="CatalogIndex"><dir name="Data"><file name="Downloadable.php" hash="125f7269d544ba02f6655baa197f4473"/></dir></dir><dir name="Link"><dir name="Api"><file name="Uploader.php" hash="9746c685682eb407d254a2465886b4a3"/><file name="V2.php" hash="991ca71de9dda0bea63cc0cd33ef9daa"/><file name="Validator.php" hash="062a30a7333c11b09b71ee717a328731"/></dir><file name="Api.php" hash="9b300c79df89089057c7bdf443919b1e"/><dir name="Purchased"><file name="Item.php" hash="594d6579858a2b03be09fcae48e919c2"/></dir><file name="Purchased.php" hash="a4f94fc05023dca72a2a604892446c16"/></dir><file name="Link.php" hash="694fe1ab9a01117859c6d5eb125ad60e"/><dir name="Mysql4"><dir name="Indexer"><file name="Price.php" hash="8b811e5db6b18e60eff2b867aa535f2e"/></dir><dir name="Link"><file name="Collection.php" hash="60724c4412e2745d17770867f6136310"/><dir name="Purchased"><file name="Collection.php" hash="15568a7cf224010ec291774a3aa455d7"/><dir name="Item"><file name="Collection.php" hash="19e24646e835c28b1b48edea775b85fc"/></dir><file name="Item.php" hash="b2988c475c696f3d23346dd4ee4135f2"/></dir><file name="Purchased.php" hash="f4005b7a02cd00de35ae48f249373fca"/></dir><file name="Link.php" hash="ca2faf7ecebc50591c1bf629d75206a7"/><dir name="Sample"><file name="Collection.php" hash="2941b96e46a0d3371c4af2e3466c779f"/></dir><file name="Sample.php" hash="793b63049588a8f428f288fbfee5d383"/></dir><file name="Observer.php" hash="c2de9729f8c6eda48909ebed3700d321"/><dir name="Product"><file name="Price.php" hash="037cc3a2002e5a88fb7a058ce69d5b22"/><file name="Type.php" hash="62299715d7e4dc49cceb8e0fab2a3ef3"/></dir><dir name="Resource"><dir name="Indexer"><file name="Price.php" hash="7bcb28ca3896a121f3fb2822c097ad76"/></dir><dir name="Link"><file name="Collection.php" hash="1ac5104d02a0f70f31164c1daef776d3"/><dir name="Purchased"><file name="Collection.php" hash="75c749171a918e324c290fe466540cb1"/><dir name="Item"><file name="Collection.php" hash="439f6d97c98306cd8d5eb1ba41e73f3a"/></dir><file name="Item.php" hash="006ec93b3aed51e5f19c9919cb4ef97d"/></dir><file name="Purchased.php" hash="0441d43b422ec40025ef75acabdacb86"/></dir><file name="Link.php" hash="d05c0bd3eda5e6f29879afa45ac75c30"/><dir name="Sample"><file name="Collection.php" hash="a5bb7f15c1bde679a53a0ee8ed712b42"/></dir><file name="Sample.php" hash="91bf983e907eecbb76965a7c392b9020"/></dir><dir name="Sales"><dir name="Order"><dir name="Pdf"><dir name="Items"><file name="Abstract.php" hash="272c182a0a9898fceddebc88df8c1b05"/><file name="Creditmemo.php" hash="6490db251da913698d88f4197d6a09d5"/><file name="Invoice.php" hash="7ad07c0b6573103c7cea924be44579d5"/></dir></dir></dir></dir><file name="Sample.php" hash="a1edf7159521eb4b34a1b4031ba1c091"/><dir name="System"><dir name="Config"><dir name="Source"><file name="Contentdisposition.php" hash="e722e6c4fee62f44ed6eeecaa501e38b"/><file name="Orderitemstatus.php" hash="b3d1a82bbb57611c7adda7e58783385c"/></dir></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Downloadable"><file name="FileController.php" hash="e9308d58b8f4264a784b19151a76babb"/><dir name="Product"><file name="EditController.php" hash="0969a4037610b06894afa3b4cbbd7f56"/></dir></dir></dir><file name="CustomerController.php" hash="1ddd6baf02a69a69975de56e17a01940"/><file name="DownloadController.php" hash="83756594be03b31dbf6d23f569fe70ec"/><file name="FileController.php" hash="c8e35419fe8ba798b09e1e9cebdedc0a"/><dir name="Product"><file name="EditController.php" hash="70913c9ac3ada8a871d54c0a4f681746"/></dir></dir><dir name="data"><dir name="downloadable_setup"><file name="data-install-1.6.0.0.php" hash="b14b0b3975296dab7f22c9eb3a9a0b05"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="ae491bc8ec858cca1e75cb3e8c5f2b17"/><file name="api.xml" hash="bbe19285b70034f9d5e27f0fda6cb3ae"/><file name="config.xml" hash="b1854a9ecf6b790247072bf98573fbe0"/><file name="system.xml" hash="c4960eb43b0313ec2f48cc2f3565d3c2"/><file name="wsdl.xml" hash="b3935ff3bf7e2ca40ddd304b4c78577f"/><file name="wsi.xml" hash="7eef36b29c2abf88596e63b6a042626d"/></dir><dir name="sql"><dir name="downloadable_setup"><file name="install-1.6.0.0.php" hash="beb734081bb4155a9cb7f553e69b594c"/><file name="mysql4-install-0.1.0.php" hash="7ce2cf98b69fbfba519760dc52e80459"/><file name="mysql4-install-1.4.0.0.php" hash="23dc8c45995c1e29783cd4cb2a9b45d7"/><file name="mysql4-upgrade-0.1.0-0.1.1.php" hash="935c425258ea38e53750b2c29d4f8963"/><file name="mysql4-upgrade-0.1.1-0.1.2.php" hash="fe155b21566d67a442234b6e79eb5adb"/><file name="mysql4-upgrade-0.1.10-0.1.11.php" hash="49d09f81d946f2adb1c85d9df82ef2b0"/><file name="mysql4-upgrade-0.1.11-0.1.12.php" hash="ea206eb1a90b9f69d218f67061f333d6"/><file name="mysql4-upgrade-0.1.12-0.1.13.php" hash="1ff853acaa6a28fd9b4bdaf29514ca0f"/><file name="mysql4-upgrade-0.1.13-0.1.14.php" hash="04bcdb5db567384f5f5730e515860f52"/><file name="mysql4-upgrade-0.1.14-0.1.15.php" hash="f0881b027d876ba04ee199cc78cf526c"/><file name="mysql4-upgrade-0.1.15-0.1.16.php" hash="57216ec34addd7ee5c7eaec22ec2c27f"/><file name="mysql4-upgrade-0.1.2-0.1.3.php" hash="7661dc81d863d694545619cc29bb5eae"/><file name="mysql4-upgrade-0.1.3-0.1.4.php" hash="590fa44959f6f7eee97b3ed60f457f79"/><file name="mysql4-upgrade-0.1.4-0.1.5.php" hash="c48d705fd46c240333b9714d285608ff"/><file name="mysql4-upgrade-0.1.5-0.1.6.php" hash="954022ed0f417fc88563f7714b837002"/><file name="mysql4-upgrade-0.1.6-0.1.7.php" hash="47f79b65ee08a98d9a2384ee272b6115"/><file name="mysql4-upgrade-0.1.7-0.1.8.php" hash="08329ddb5b63676cb1ec21c54d656b9c"/><file name="mysql4-upgrade-0.1.8-0.1.9.php" hash="c6f922e771296d9825ed6ac46baf201e"/><file name="mysql4-upgrade-0.1.9-0.1.10.php" hash="4959673a9ecfd8101537611c2196389f"/><file name="mysql4-upgrade-1.3.9-1.4.0.0.php" hash="9a05f94ff39ae21bf150a5de0c989000"/><file name="mysql4-upgrade-1.4.0.0-1.4.0.1.php" hash="9ffbb8d7bb6bab9522c8d973cc1c3a7b"/><file name="mysql4-upgrade-1.4.0.1-1.4.0.2.php" hash="9c21c4304bb549da8bf45ef68d2eb955"/><file name="mysql4-upgrade-1.4.0.2-1.4.0.3.php" hash="959e73c2831f1beba3b34283dd9080ae"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="22ff9aa1fa9bed6cd198f6c363bdebd0"/><file name="mysql4-upgrade-1.6.0.0.1-1.6.0.0.2.php" hash="721d09be119a9721f79cd7b1616937ce"/><file name="upgrade-1.6.0.0-1.6.0.0.1.php" hash="d98e8b797596118339ad1f7d1d11a56a"/><file name="upgrade-1.6.0.0.1-1.6.0.0.2.php" hash="3334037f3df011313b4cc5567d6cfa1a"/></dir></dir></dir><dir name="Eav"><dir name="Block"><dir name="Adminhtml"><dir name="Attribute"><dir name="Edit"><file name="Js.php" hash="e0bba2d57c4540d7195297cdf88d2bd6"/><dir name="Main"><file name="Abstract.php" hash="457a084c10be074a8c774f997d9ac8e4"/></dir><dir name="Options"><file name="Abstract.php" hash="b4f11e7d20dbfe0c6869e8eea80dfb1f"/></dir></dir><dir name="Grid"><file name="Abstract.php" hash="a2657b40ee26194898ae39afc02947cc"/></dir></dir></dir></dir><file name="Exception.php" hash="ba78eaacf2dc82c3cffe9548d50747f3"/><dir name="Helper"><file name="Data.php" hash="6d1932a60c28de1ecd04570ca364eaa3"/></dir><dir name="Model"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Source"><dir name="Inputtype"><file name="Validator.php" hash="a2675fe89ef6f342922029238f2ea5c0"/></dir><file name="Inputtype.php" hash="4afc8da40c91a9f47b55c03ceac7990f"/></dir></dir></dir></dir><dir name="Attribute"><dir name="Data"><file name="Abstract.php" hash="306fcd0c0607ac616612120f9c77d287"/><file name="Boolean.php" hash="18858a47815608071999b0b5ca1165c3"/><file name="Date.php" hash="6769356dbf884bf768ee06a318aa44e2"/><file name="Datetime.php" hash="df486c8eb6af383ad7804695e91efff1"/><file name="File.php" hash="7cead2c01b8e44a125d763e865fbdeb3"/><file name="Hidden.php" hash="24980022dd521fb150ae8c538786fbbf"/><file name="Image.php" hash="c4d430baccc315f46a45b99c3a4bf9be"/><file name="Multiline.php" hash="faf0756527157bbb78ac40d08f0e6ea6"/><file name="Multiselect.php" hash="2732b3248b01aee3f10fb501cd01e6c4"/><file name="Select.php" hash="f1bcb979195337a74e5cfdb282551cd3"/><file name="Text.php" hash="c9d2dc2235eb7170bfa1cf0b5d9a203c"/><file name="Textarea.php" hash="80ec9bc40d0b8cc4f0c4fb597d2819f1"/></dir><file name="Data.php" hash="305a8daf73fe035215210e588ae6c8ad"/></dir><file name="Attribute.php" hash="4ace96e951c06dd07f00c390e870a60d"/><file name="Config.php" hash="c42f7c5fd927b3a5c64d7a7c34c4a6a5"/><dir name="Convert"><dir name="Adapter"><file name="Entity.php" hash="0ade841607bab74e7a483d455b9f52f9"/><file name="Grid.php" hash="7fc479f09d622aaaf52890c7d58cfc8f"/></dir><dir name="Parser"><file name="Abstract.php" hash="8db62cb6da63d23daf851de36e320be3"/></dir></dir><dir name="Entity"><file name="Abstract.php" hash="1b3e6381322b675e379867450e961b14"/><dir name="Attribute"><file name="Abstract.php" hash="4453af18683a4f976e0482f8b22c5e49"/><dir name="Backend"><file name="Abstract.php" hash="aab703cc6b8cce7d9a8a8f118e5e7531"/><file name="Array.php" hash="99875b63f65864791260146ba38d3206"/><file name="Datetime.php" hash="e9d9857bff9668b2c652a9d6b9a16e4e"/><file name="Default.php" hash="8fbbfcbd555ebdd43d03bb958ff33390"/><file name="Increment.php" hash="4a0efac8a50f88f2b1d97fc86fb91fd9"/><file name="Interface.php" hash="6e0ed88de1bfdcf5bb4de9d64a945dac"/><file name="Serialized.php" hash="0c6e0dcc914fffe7ddc3d6d7090e0c21"/><file name="Store.php" hash="97409a22dc17d154d20ca68eb1f3864b"/><dir name="Time"><file name="Created.php" hash="42b416adf0c6918aeba35d9c27b249b8"/><file name="Updated.php" hash="240414877034fe485c7270a923935c58"/></dir></dir><file name="Exception.php" hash="1b3b6f8d415510f60ca92f8fae59876e"/><dir name="Frontend"><file name="Abstract.php" hash="24237f13ba4d0cc05b45103aa15052d6"/><file name="Datetime.php" hash="aae764ac16d26251acb7c4a948782102"/><file name="Default.php" hash="5c45d132eaa76426fb30c662fa161e0d"/><file name="Interface.php" hash="cfdc936f738438f302061440b520b68d"/></dir><file name="Group.php" hash="0aa9726a108e94b20a07365b28105996"/><file name="Interface.php" hash="3ceddd274b6274c99a51aa1f36a406dc"/><file name="Option.php" hash="9ee6bc3d4f689086b37b2ffc18b785cd"/><file name="Set.php" hash="e647755dae1f6158ef4c05ff9ca4c5a8"/><dir name="Source"><file name="Abstract.php" hash="85bb954a30e6e5789456b2041872fbc5"/><file name="Boolean.php" hash="7acdb80b01292956b92db947973b0cdc"/><file name="Config.php" hash="e9dec75fb6c8eb8726fd5039c3e2fde8"/><file name="Interface.php" hash="789df7c41a366fe4fc689c655d492a8d"/><file name="Store.php" hash="83cfdbed4e59a35f70996934da9c053d"/><file name="Table.php" hash="b641a1cbeedacfd68baca2ba7f05ecc9"/></dir></dir><file name="Attribute.php" hash="32b1110f5ac0bff0bf83fa1a9fc3c72e"/><dir name="Collection"><file name="Abstract.php" hash="1d7bc470b4508cb09a6fc7db7d651f15"/></dir><file name="Collection.php" hash="f33ad123504fcded784d6390769539cc"/><dir name="Increment"><file name="Abstract.php" hash="f967bb4fc23c850be7c268d50a7cea0b"/><file name="Alphanum.php" hash="f7a3e9c80bcefde59d531d46a6433fce"/><file name="Interface.php" hash="bb5b075e6e0f93b5294d8394e0f4c8cb"/><file name="Numeric.php" hash="a6df9348d7d018da95bbf66a2c8a3503"/></dir><file name="Interface.php" hash="4a2c904265bdf814ea5b3cdad22c615b"/><file name="Setup.php" hash="60425807abfee75f5949f0bdb758f407"/><file name="Store.php" hash="af4c09a4e20e7fbacb7deeac0e470bcb"/><file name="Type.php" hash="c94283878472673af91cc9c1d06332e4"/></dir><file name="Entity.php" hash="a354f3b0d015f164ac3af7292b617019"/><dir name="Form"><file name="Element.php" hash="f7e425204d55ac6395c0695b7a550bd4"/><file name="Fieldset.php" hash="6f911a1dd046a6c2d9429a0e42a7bdc3"/><file name="Type.php" hash="389f76edf7ae69afaa26be81d817e63a"/></dir><file name="Form.php" hash="1ad7a7957defd42a9fd071ad02b138a2"/><dir name="Mysql4"><file name="Config.php" hash="007e3a0c288d5a921a1d7ffbccd15c9c"/><dir name="Entity"><dir name="Attribute"><file name="Collection.php" hash="af2a8e18dec1095aeb8cd167f4084f08"/><dir name="Group"><file name="Collection.php" hash="63819ab574b2252fb3e36f4722c3bfe1"/></dir><file name="Group.php" hash="7f4daa758c746bcf7a35ba2fcca56aa8"/><dir name="Option"><file name="Collection.php" hash="d981884b8300d5f1cdc295badad4d397"/></dir><file name="Option.php" hash="5123a55ce2e310234ed2eea4ba2103d2"/><dir name="Set"><file name="Collection.php" hash="59191804e6864586038796ace8ed39e9"/></dir><file name="Set.php" hash="6ac37acb880ef52967c53c20f4a18292"/></dir><file name="Attribute.php" hash="36f7157a08817d00f8408a80ad307726"/><file name="Store.php" hash="ac8bdd504017b69c029d014f1acb883e"/><dir name="Type"><file name="Collection.php" hash="df4a0594aa35f346c052a9188a5c4471"/></dir><file name="Type.php" hash="ad6ac3edee4ec97ce9332b165eef1736"/></dir><dir name="Form"><dir name="Element"><file name="Collection.php" hash="45b9183328ee19850345752b1a8e23fd"/></dir><file name="Element.php" hash="4166c03b2847882e3368be57d1cb7f6b"/><dir name="Fieldset"><file name="Collection.php" hash="5146d0c568cddd8ec261ffb7c0a7bac0"/></dir><file name="Fieldset.php" hash="988d72a77b0182cabebdff61fc9a2531"/><dir name="Type"><file name="Collection.php" hash="5cda9032e5d07855388b412abe4c8d71"/></dir><file name="Type.php" hash="85d66f2053a03b1a495ed6ffd7cba6c8"/></dir></dir><dir name="Resource"><dir name="Attribute"><file name="Collection.php" hash="745a9bffdca7a1641891bcd4b0b3ec32"/></dir><file name="Attribute.php" hash="9b08b8a0b41eeed8a9ebf3acfb1b89ec"/><file name="Config.php" hash="30786ab3c85c165506c3db425cf9cfa5"/><dir name="Entity"><dir name="Attribute"><file name="Collection.php" hash="5aa1077e62b09344de49240534ac1c1f"/><dir name="Group"><file name="Collection.php" hash="f6d61cf7b743537537a27648b7b1605a"/></dir><file name="Group.php" hash="017cba9a5945e4f851460e5080aed89d"/><dir name="Option"><file name="Collection.php" hash="021d33b2d1d89308eb74f3597a3796cd"/></dir><file name="Option.php" hash="1515ac3c5a915d814a63b7fe1d5e63bb"/><dir name="Set"><file name="Collection.php" hash="4064d63b518886a4e1a8b0539868297b"/></dir><file name="Set.php" hash="5caa0c72cd0a8bb9a73f6c537ab7c19a"/></dir><file name="Attribute.php" hash="0d90287692b6f7b8aa961e82992e6b80"/><file name="Store.php" hash="7ccda84a385ab0b3bcfbe2d0f9214a8e"/><dir name="Type"><file name="Collection.php" hash="f2271900b7cc9bcc317c3b15561b460f"/></dir><file name="Type.php" hash="258dc3600151215743abb3f826df4572"/></dir><dir name="Form"><dir name="Attribute"><file name="Collection.php" hash="b3e6bffd6179cf09b589f1d0f7a57a4c"/></dir><file name="Attribute.php" hash="1bae3456f8a814790ea27c6f87fe640e"/><dir name="Element"><file name="Collection.php" hash="fcbc5b35885479067ec6fcd8ddb212e5"/></dir><file name="Element.php" hash="25036926d29af351dbddea9896c118d1"/><dir name="Fieldset"><file name="Collection.php" hash="86c6b6a9ed62afd852f3ffd3aa82e88a"/></dir><file name="Fieldset.php" hash="76933617fe53fd9d5cccf6c4c3e6ae65"/><dir name="Type"><file name="Collection.php" hash="94d8400f8b81c0b5d46c3716a46197a1"/></dir><file name="Type.php" hash="bfcfa79bf5911c3cf38699903edcbde3"/></dir><dir name="Helper"><file name="Mysql4.php" hash="e569889cc3ec54dc85de288aaf895e09"/></dir></dir></dir><dir name="etc"><file name="config.xml" hash="dbab2258c8d26c903915254fe61ef3b3"/></dir><dir name="sql"><dir name="eav_setup"><file name="install-1.6.0.0.php" hash="8bd8cda1628ad65acced30d89f9e79f2"/><file name="mysql4-install-0.7.0.php" hash="b5c7cab312704e2f4b0837c7713ed7e5"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="4dc93d791f8319279f500b0b4ed8b72b"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="3304a0f850d10d0083eacfb2614043af"/><file name="mysql4-upgrade-0.7.10-0.7.11.php" hash="0a66058a0c21cb0746195f2cf09a8987"/><file name="mysql4-upgrade-0.7.11-0.7.12.php" hash="45a1db26109e930762aa3e6d27e7315e"/><file name="mysql4-upgrade-0.7.12-0.7.13.php" hash="eac8e6dbd6a556a0c97ec397a4b2bb6d"/><file name="mysql4-upgrade-0.7.13-0.7.14.php" hash="f9ef9728e9111ce19b3d4b0ced28c5dd"/><file name="mysql4-upgrade-0.7.14-0.7.15.php" hash="ead9b25a17f8bcfc1b874e568008e688"/><file name="mysql4-upgrade-0.7.15-0.7.16.php" hash="74a8a82cc1660b3be1ccec4131387b5b"/><file name="mysql4-upgrade-0.7.2-0.7.3.php" hash="821ca88eb77698b1e1363314d78c61b4"/><file name="mysql4-upgrade-0.7.3-0.7.4.php" hash="507ed2e28ff2f31e35df016bcb3aa6ce"/><file name="mysql4-upgrade-0.7.4-0.7.5.php" hash="962eed9c04187bec9872955c3cbcdd24"/><file name="mysql4-upgrade-0.7.5-0.7.6.php" hash="1794620b2d297dd60179fcf6f5932c74"/><file name="mysql4-upgrade-0.7.6-0.7.7.php" hash="41bc6f807ca7e82b1a49860647de4d22"/><file name="mysql4-upgrade-0.7.7-0.7.8.php" hash="b47e4d4570ed78ec510b818e705c60e5"/><file name="mysql4-upgrade-0.7.8-0.7.9.php" hash="3cc86e7527496b42cc349baf22061625"/><file name="mysql4-upgrade-0.7.9-0.7.10.php" hash="31a77042c51dda6249cf7b26175d41cf"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="5d300439dcdb43b988cdc3eb6a723a69"/><file name="upgrade-1.6.0.0-1.6.0.1.php" hash="c254084e38d31391d4a9dcf6f5efb1b5"/></dir></dir></dir><dir name="GiftMessage"><dir name="Block"><dir name="Adminhtml"><dir name="Product"><dir name="Helper"><dir name="Form"><file name="Config.php" hash="2b97d65b248912e6056105eb7b22647a"/></dir></dir></dir><dir name="Sales"><dir name="Order"><dir name="Create"><file name="Form.php" hash="102f55b5670ecc4624d2779a5d9dae47"/><file name="Giftoptions.php" hash="5af2eaa83c347cf87f944cecc240f72f"/><file name="Items.php" hash="b4833f6731249bb524d0ac5c8b61b823"/></dir><dir name="View"><file name="Form.php" hash="d96b129bc6aa7fb968b6b3bca40d6641"/><file name="Giftoptions.php" hash="8e5db4e604059e74dfa6a6cbf48eab22"/><file name="Items.php" hash="8c4cfb13907db5b6caab2a99ee039918"/></dir></dir></dir></dir><dir name="Message"><file name="Form.php" hash="e0b6247f6e0dac8a096335409c8bbf58"/><file name="Helper.php" hash="3a4cbf8851f4b489b433bb23fb62a50b"/><file name="Inline.php" hash="07b38ebaac00b45a1929387903ff3862"/></dir></dir><dir name="Helper"><file name="Data.php" hash="5b88dfacb8f95f979585366200b80f72"/><file name="Message.php" hash="92f73fd54b2a59340bfdbf05615fb68f"/><file name="Url.php" hash="9f8d36e13391f023deaaf0b912cc37fc"/></dir><dir name="Model"><dir name="Api"><file name="V2.php" hash="f04aee0ff3e2490540050c4b319ccedf"/></dir><file name="Api.php" hash="ae703cf87197282f7efde1dae67864af"/><dir name="Entity"><dir name="Attribute"><dir name="Backend"><dir name="Boolean"><file name="Config.php" hash="912ab6934476d64533586fd38351183d"/></dir></dir><dir name="Source"><dir name="Boolean"><file name="Config.php" hash="529f82da62485f46d085625efc092714"/></dir></dir></dir></dir><file name="Message.php" hash="6e3d9660ffca1ed6f992e15d2143e486"/><dir name="Mysql4"><dir name="Message"><file name="Collection.php" hash="8610d5937a758e916c2d81dbd41d36ac"/></dir><file name="Message.php" hash="6d0ccc5368848a220e397da25dfaf737"/><file name="Setup.php" hash="2407a2d026ed41cb38ceff1ebccb8c88"/></dir><file name="Observer.php" hash="9e8f1570cc6efdf82b5fc5b4b2e12b58"/><dir name="Resource"><dir name="Message"><file name="Collection.php" hash="6949121421c02e75fb923b0170b73d99"/></dir><file name="Message.php" hash="6b09b60ccc7b993dd17c5240cd2aa7ac"/><file name="Setup.php" hash="30c57e5147e83cce71f3976820ce24c6"/></dir></dir><dir name="controllers"><file name="IndexController.php" hash="7897754c8f0647dd688d6c57f4b74070"/></dir><dir name="etc"><file name="api.xml" hash="14039afdb9315721b5b515c9f34f41cb"/><file name="config.xml" hash="3cb2d88b80c9f48c64a36d62e9abcd3f"/><file name="system.xml" hash="510b3986f40a221b5d18f9dda07194c9"/><file name="wsdl.xml" hash="b99aaaac0126c6e09a7ba59fa4dbcf30"/><file name="wsi.xml" hash="ab77c7cfecb0f5d6cb7b07c0b5abc1d1"/></dir><dir name="sql"><dir name="giftmessage_setup"><file name="install-1.6.0.0.php" hash="0fb2290857ea3b17b7ed76e851d27c62"/><file name="mysql4-install-0.7.0.php" hash="654f2dbfc67cf93ffdd6d78a461e896a"/><file name="mysql4-upgrade-0.1.3-0.7.0.php" hash="e4ca5e477b610b00e61a8f7509ee1f5f"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="7775c0535994eefcc81be63041a681a1"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="2d547e8260cc8efdad80bb7898d536f5"/><file name="mysql4-upgrade-0.7.2-0.7.3.php" hash="80c9fd152bb817c49659463cc955b7a2"/><file name="mysql4-upgrade-0.7.3-0.7.4.php" hash="e11619037b1758b3ee2cd847af91315d"/><file name="mysql4-upgrade-0.7.4-0.7.5.php" hash="01dc822919ac4feb64b4d321078d3f8a"/><file name="mysql4-upgrade-0.7.5-0.7.6.php" hash="fd7bb80cc8682a3991609c5b1eed3977"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="ab382785e333359bb9793011aac0f586"/></dir></dir></dir><dir name="GoogleAnalytics"><dir name="Block"><file name="Ga.php" hash="21d9fd37c1e92ae684566de0eb42791f"/></dir><dir name="Helper"><file name="Data.php" hash="100f3a40bea481c98c1393f43b6bc603"/></dir><dir name="Model"><file name="Observer.php" hash="ad6ac25124a3322a714e20a977064be0"/><dir name="System"><dir name="Config"><dir name="Source"><file name="Type.php" hash="4805f9d896da417036af79e15613eac3"/></dir></dir></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="5fea2673308abebb7cd8c15359737309"/><file name="config.xml" hash="4284f96f4068849482549a713d11c4f8"/><file name="system.xml" hash="c91c97c91ae42121ff31cd23d5a5682b"/></dir><dir name="sql"><dir name="googleanalytics_setup"><file name="install-1.6.0.0.php" hash="a7ae51e268e4b23f43b1f6b1477691f9"/></dir></dir></dir><dir name="GoogleBase"><dir name="Block"><dir name="Adminhtml"><file name="Captcha.php" hash="62f522f22cb64d19850b09ccee65adb6"/><dir name="Items"><file name="Item.php" hash="f8c9007a1ad978bb47b6c9d5d2c11d93"/><file name="Product.php" hash="e51f257f3918fcd5e72ce12f5f527b87"/><dir name="Renderer"><file name="Id.php" hash="a163a4d6a3edc89a19bb0efa0675ac7d"/></dir></dir><file name="Items.php" hash="f78483b50fc3e072d0dccb10fdc6e45a"/><dir name="Store"><file name="Switcher.php" hash="7dd1e22cb003eecdfa9a7d4df6628e1e"/></dir><dir name="Types"><dir name="Edit"><file name="Attributes.php" hash="de7ce9a9907ae7d7d94adb123ba364c4"/><file name="Form.php" hash="76cb4afbadef58a6cb517007fd258a1a"/></dir><file name="Edit.php" hash="7a8c72d4f8d506f69561735fe175d759"/><file name="Grid.php" hash="1794a6560af01397f30022cbf248de3f"/><dir name="Renderer"><file name="Country.php" hash="60106faee902375cc177fa463e27ec2a"/></dir></dir><file name="Types.php" hash="cc6a7f78d0e2edf4dfe7a40b46282138"/></dir></dir><dir name="Helper"><file name="Data.php" hash="a9d67fdd71f358434564df80fc163a06"/></dir><dir name="Model"><file name="Attribute.php" hash="c9e51b38341831512db3e739233707d4"/><file name="Config.php" hash="a3afa7ff5098f38dfe1d5c979f7389d1"/><file name="Item.php" hash="a200fd6fc7e97b66695133fa4650f35e"/><dir name="Mysql4"><dir name="Attribute"><file name="Collection.php" hash="4bf3b43f87dac062e4cba4ee6b155b02"/></dir><file name="Attribute.php" hash="8a74acdccc2d5e802c2f1ddf6b9f2a2d"/><dir name="Item"><file name="Collection.php" hash="26993881e30a5bc17876ae4024400823"/></dir><file name="Item.php" hash="73f6da324cb2de0d5975130fc7db4077"/><dir name="Type"><file name="Collection.php" hash="0294f3588c2dce8cd416e4ed5349d832"/></dir><file name="Type.php" hash="062cb6dd81aed45a04e69ef7acd5ab3d"/></dir><file name="Observer.php" hash="7a728d960e8d7291dad86f4391091696"/><dir name="Resource"><dir name="Attribute"><file name="Collection.php" hash="ea5ac4726d4656f50002c16f0b95cd58"/></dir><file name="Attribute.php" hash="8ff14327de62fcf5a8a0b01677202a41"/><dir name="Item"><file name="Collection.php" hash="b00cf45f527f967c76c8ce2d4b74fda4"/></dir><file name="Item.php" hash="ec0a24d01ec1e532d7d1c68ba0bf8eca"/><dir name="Type"><file name="Collection.php" hash="f72ce44ab1aec0e8c9e8dab0353b388c"/></dir><file name="Type.php" hash="4364b45b8eba2cf13aa0aa945ee9c03d"/></dir><dir name="Service"><file name="Feed.php" hash="199e735393a20e97b65cdee9f1c23fcd"/><file name="Item.php" hash="f02a6db44af965fc155d93048077ac08"/></dir><file name="Service.php" hash="278413ad9e0e76f20e58736aaf8aa5b9"/><dir name="Source"><file name="Accounttype.php" hash="f52c54635bd844df6474a5b890d468b2"/><file name="Authtype.php" hash="31fc1f9aa9000ff058ab8765cafd4e04"/><file name="Country.php" hash="886467f45e88a020c30ae01c9e5578e9"/><file name="Statuses.php" hash="ebcdec3951e1ed9ee101d149dd1bb24a"/></dir><file name="Type.php" hash="328e54fa39d0fbb1dffbe800b38d4100"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Googlebase"><file name="ItemsController.php" hash="b643377439ef3280554774f5d422766f"/><file name="SelectionController.php" hash="7238751980394f57e9f8cca86819114f"/><file name="TypesController.php" hash="72e6982dad771b164f21aa77b7507bbf"/></dir></dir><file name="ItemsController.php" hash="3e1165defd70e63523405e6a8debcab7"/><file name="SelectionController.php" hash="63901f0e85cb0769358a745c4628e58d"/><file name="TypesController.php" hash="9e01961f36dee9a443ac5c875f5ba939"/></dir><dir name="etc"><file name="adminhtml.xml" hash="a72bbb994243c60b20bd507b5ad4bd5e"/><file name="config.xml" hash="8b080f10dc19b429bfa57197e0fed070"/><file name="system.xml" hash="abdd0ddd6a9936e18c2e12181ccd0cf4"/></dir><dir name="sql"><dir name="googlebase_setup"><file name="install-1.6.0.0.php" hash="ac81f7ef2a424e846595f7aaeca9eb57"/><file name="mysql4-install-0.1.0.php" hash="5ef567e8fd3f272288334985d8319ed7"/><file name="mysql4-upgrade-0.1.0-0.1.1.php" hash="0bbd83ea551e93f64fa1ee618659d1bd"/><file name="mysql4-upgrade-0.1.1-0.1.2.php" hash="e94099eedd81ce5f48dbeb10adbcc391"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="f5618d5a47a34bdfc1a20c869f60b2ee"/></dir></dir></dir><dir name="GoogleCheckout"><dir name="Model"><file name="Payment.php" hash="1f39c37b4560a4016f479f8e97d4ef08"/></dir><dir name="etc"><file name="config.xml" hash="46071ba0ff385dc63194959aa98e5b89"/></dir></dir><dir name="ImportExport"><dir name="Block"><dir name="Adminhtml"><dir name="Export"><dir name="Edit"><file name="Form.php" hash="191ccf47abab7c84547280304805073a"/></dir><file name="Edit.php" hash="360e63e850d8f71eb7e75cf3cc21578c"/><file name="Filter.php" hash="c02bfef81c8010bc55d03bd26d4d72a8"/></dir><dir name="Import"><dir name="Edit"><file name="Form.php" hash="792fe3b32111587f3cb6da0e20b2dd7d"/></dir><file name="Edit.php" hash="89d3340a3cf9ca522457b72f882681f9"/><dir name="Frame"><file name="Result.php" hash="d325e4179d827ca9af9098f0d875f888"/></dir></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="ca76d4112ae9ddbdcac3405c84cc0fd6"/></dir><dir name="Model"><file name="Abstract.php" hash="40838be4ecbacd9411cce97a8e33fd59"/><file name="Config.php" hash="157790b05e5a9c2e0b7d204b88917318"/><dir name="Export"><dir name="Adapter"><file name="Abstract.php" hash="067bc84c008b653830cfec4b1c85a563"/><file name="Csv.php" hash="adfef1439deb7997cc6d2daa177461af"/></dir><dir name="Entity"><file name="Abstract.php" hash="ecd9e50ef2e64fdf47d99f55187a375d"/><file name="Customer.php" hash="6fbab142f39b8face3992add03aa5e28"/><dir name="Product"><dir name="Type"><file name="Abstract.php" hash="1de48655376671c162493cb3d95a0be9"/><file name="Configurable.php" hash="4686346b2b166ff1f92146293cc7e327"/><file name="Grouped.php" hash="38f7b2c87a9455afdd0c135758740796"/><file name="Simple.php" hash="9ef13bb631878a0af571539965571172"/></dir></dir><file name="Product.php" hash="35e6194ad1be721d030dc574851b549a"/></dir></dir><file name="Export.php" hash="3315b1eb387128ff2d2fcf4ed9a90be7"/><dir name="Import"><dir name="Adapter"><file name="Abstract.php" hash="2ad7d03cced97eaaa1651ddd2b7f7083"/><file name="Csv.php" hash="75a2655c6e3540b2ca24619293902dd1"/></dir><file name="Adapter.php" hash="f236483dac22b562e1d06a5355a7f8f5"/><dir name="Entity"><file name="Abstract.php" hash="ae4bdb8377bd890291cf075cd2effefa"/><dir name="Customer"><file name="Address.php" hash="2dff3ecd1ea7e56b7eb5d1df71592688"/></dir><file name="Customer.php" hash="797346fdbfe9af363bd6dae40547a87a"/><dir name="Product"><dir name="Type"><file name="Abstract.php" hash="93a0b9def9a8f96499b060c3e12caadf"/><file name="Configurable.php" hash="855d66a8f65b42bc32724de18dbffcaf"/><file name="Grouped.php" hash="7fb797515dc6bf4fb6b695dd7a50209c"/><file name="Simple.php" hash="1fbbbbf117e24efa9ab1fa9fce3736f9"/></dir></dir><file name="Product.php" hash="6a7097746a67925f2a7d464b476e385d"/></dir><dir name="Proxy"><dir name="Product"><file name="Resource.php" hash="fd09d311d1aa8f092f7bafd3057a74ba"/></dir><file name="Product.php" hash="ef5715669f2930b67adf56d347ed4335"/></dir><file name="Uploader.php" hash="dcfeeb3f8ada78be25beca1dccef0708"/></dir><file name="Import.php" hash="31c1fb6a58202618c63bedc68330edfe"/><dir name="Mysql4"><dir name="Import"><file name="Data.php" hash="4b9f1050be63d5e883107af1296175f2"/></dir><file name="Setup.php" hash="ae69a84651baea4a3980558f63bef95a"/></dir><dir name="Product"><dir name="Attribute"><dir name="Backend"><file name="Urlkey.php" hash="c48051028fca4186c5c6d9b86de4b26b"/></dir></dir></dir><dir name="Resource"><dir name="Helper"><file name="Mysql4.php" hash="bf9c7c30ee1dc6fa8dfc921f8ae7dfc4"/></dir><dir name="Import"><file name="Data.php" hash="c4db1e915b5b7f72a0ff25cf4f2f1541"/></dir><file name="Setup.php" hash="2d595c2da3a7deb58f70949f10a2dd3e"/></dir><dir name="Source"><dir name="Export"><file name="Entity.php" hash="b1e3a8910a8855867da94132482feb51"/><file name="Format.php" hash="d6d5b4658fc212ba88e5ee9200b65080"/></dir><dir name="Import"><file name="Behavior.php" hash="887159c45f3ab8ccd55f07ae44855d40"/><file name="Entity.php" hash="482bac24d63807f8a1e7dce11b15ca63"/></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="ExportController.php" hash="8f99a0a7b22cf679f906787d83d7e2ca"/><file name="ImportController.php" hash="60eaa6d4654ea83fcc6f35912b3493c3"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="8b27d8fa6369ee77b35c48e50dd63eb0"/><file name="config.xml" hash="a371b4c0e0e2475f7ad26c0c0a0e02e4"/><file name="system.xml" hash="143e367568323924092b21685a72c211"/></dir><dir name="sql"><dir name="importexport_setup"><file name="install-1.6.0.0.php" hash="e9c28a9b24e977248e6cf669002a4ebe"/><file name="mysql4-install-0.1.0.php" hash="477525d2570e7ec6f7b26cde9ba38f4a"/><file name="mysql4-upgrade-1.6.0.1-1.6.0.2.php" hash="31078007e13b489ee06a2d98c5f68f0e"/></dir></dir></dir><dir name="Index"><dir name="Block"><dir name="Adminhtml"><file name="Notifications.php" hash="64e42d1d0916743a3c267a9d3986a018"/><dir name="Process"><dir name="Edit"><file name="Form.php" hash="afec06dbd7f7e4703655d23518471df5"/><dir name="Tab"><file name="Main.php" hash="eab42bfbcdb027c24bdf85780380b453"/></dir><file name="Tabs.php" hash="f0027c1dec504f914afc09a5107d98cc"/></dir><file name="Edit.php" hash="a8607cfd423515bbab8652621b57ba97"/><dir name="Grid"><file name="Massaction.php" hash="81e99da4acec59e14a5328d88d1eef59"/></dir><file name="Grid.php" hash="2d48734f2ffba326c7e48f1c79fec71b"/></dir><file name="Process.php" hash="a5905ac7c9d456b64ab5efcbb01bfce8"/></dir></dir><file name="Exception.php" hash="3f9709e30bf75621f0b2b009fac764a3"/><dir name="Helper"><file name="Data.php" hash="526c8c51d7557bb7e2bebdc796d83dee"/></dir><dir name="Model"><file name="Event.php" hash="4ddf63e7fa648061409e0225cd44e404"/><dir name="Indexer"><file name="Abstract.php" hash="3456ff7dde44167200fa592863a01abb"/></dir><file name="Indexer.php" hash="7e249ec7766c897fcc067337af52f972"/><dir name="Lock"><dir name="Storage"><file name="Db.php" hash="7b6395c88009ce3b639153553dbfbe90"/><file name="Interface.php" hash="228a5b390d2eb1461f8284f0b0a0e436"/></dir></dir><file name="Lock.php" hash="18ae0b5da223a0e92aed6b366118633f"/><dir name="Mysql4"><file name="Abstract.php" hash="da2155dd41c4e0bc6d59024cfb8ecb6c"/><dir name="Event"><file name="Collection.php" hash="309b479d4c1fd12a8bb3ef51ab199245"/></dir><file name="Event.php" hash="b25a7b1d24b6260998c37c63c333d8b2"/><dir name="Process"><file name="Collection.php" hash="254e38062f1c44ddeb34b6e28bf1cd70"/></dir><file name="Process.php" hash="50c2548f9175cc128f8cb28251d82ab0"/><file name="Setup.php" hash="e173a9a5363dc1795e537e33aa2fd2e0"/></dir><file name="Observer.php" hash="f651484dc38526885bcb6b52a330a92c"/><file name="Process.php" hash="1beada279d1055354e1567b610ecf06b"/><dir name="Resource"><file name="Abstract.php" hash="e3f04920b0ccdcf81cad334aa4c98d92"/><dir name="Event"><file name="Collection.php" hash="7e1da3865c397d4f8f8f39deacdaf477"/></dir><file name="Event.php" hash="b38237c2f5e6479523e2e5dca54abfb7"/><dir name="Helper"><dir name="Lock"><file name="Interface.php" hash="68edac6eef4180e63de6c52596f2b6b7"/></dir><file name="Mysql4.php" hash="02072c9858b4d309efadf7b07f58538d"/></dir><dir name="Lock"><file name="Resource.php" hash="b1ade0fb2bf60074421c007373cd8f87"/></dir><dir name="Process"><file name="Collection.php" hash="23640077491875846f0bd74705a3fb3d"/></dir><file name="Process.php" hash="6cc0a505a68ac88ea9a9fd8bfed8ace4"/><file name="Setup.php" hash="9d334f0343ac10a2224fab7adb308709"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="ProcessController.php" hash="828bd6d468d2ac1b795a96963e61effa"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="881d9be8b3c918a1cf77f9e930efdf42"/><file name="config.xml" hash="0f27f7d206075ae8f14bff9293b2189c"/></dir><dir name="sql"><dir name="index_setup"><file name="install-1.6.0.0.php" hash="15418fe240598d12bf4d35dfd4d30a24"/><file name="mysql4-install-1.4.0.0.php" hash="3d1236edd44f29b962421065da8f0296"/><file name="mysql4-upgrade-1.4.0.0-1.4.0.1.php" hash="1c13dc777f4d4ed5ecd9ba41006fa6d3"/><file name="mysql4-upgrade-1.4.0.1-1.4.0.2.php" hash="4469700c7a18ff4a769e76be0c90266e"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="614694540111f3a5a21295109475a53e"/></dir></dir></dir><dir name="Install"><dir name="Block"><file name="Abstract.php" hash="555000323855b771524db1059d3c7325"/><file name="Admin.php" hash="acc664e804f36a76f83951fa9e006179"/><file name="Begin.php" hash="3c352bab206779b7424b8353cda33106"/><file name="Config.php" hash="5aaa7143564a85f0514f302e750756e2"/><dir name="Db"><file name="Main.php" hash="b47e431840dcbd7f3ad112a5bab094ff"/><dir name="Type"><file name="Mysql4.php" hash="0758a30a32781d178ceebf407b8ec7ed"/></dir><file name="Type.php" hash="29ba04bc5cfacd3edd3af12454ecf420"/></dir><file name="Download.php" hash="015e92ffaafb93fbc7734a019747cefc"/><file name="End.php" hash="6869d3d567eca578c8ac18375c235764"/><file name="Locale.php" hash="c237683a54c18d9e9c1e592cf3abfa32"/><file name="State.php" hash="d2b2eb2154ba0696c2e8f51c360fb38c"/></dir><dir name="Controller"><file name="Action.php" hash="936a0d4a816a2f20af2e82075fc09faf"/><dir name="Router"><file name="Install.php" hash="daad88210875f371d0308ad9232527ff"/></dir></dir><dir name="Helper"><file name="Data.php" hash="19d3c8e41fbdb23f2d36c7136daf4ca3"/></dir><dir name="Model"><file name="Config.php" hash="97fe63982485036efc55aa51f5a56664"/><dir name="Installer"><file name="Abstract.php" hash="3cfd0c23eec851411c164e572f2a9d77"/><file name="Config.php" hash="6d712ce39c557e7170d3450401a66bad"/><file name="Console.php" hash="a1a9e4fa9c3a75a3a3672d80ec6f7445"/><file name="Data.php" hash="3187a8648f8bd73efc4037e7491a29c6"/><dir name="Db"><file name="Abstract.php" hash="ee952066e04729eb05b4aad84e1266aa"/><file name="Mysql4.php" hash="58e387d6ca053687e4dc3c16664105d9"/></dir><file name="Db.php" hash="1c677f1de56b0cfed06c89d43fd2e6a4"/><file name="Env.php" hash="ab54af3da141dcffd4550230932fc31b"/><file name="Filesystem.php" hash="dd2164debedfc223c151543d6604754b"/><file name="Pear.php" hash="ea295ba14228f45bac4fd7c0efe3b655"/></dir><file name="Installer.php" hash="8aab26a891e8786b3fd82d1a6ddd2d86"/><file name="Observer.php" hash="7121ca74bcbf584b617f1beedb6b8a22"/><file name="Session.php" hash="cc550bb13df895f0ea855727598c60c2"/><file name="Wizard.php" hash="5d0aee29acb9303f1769d3a254335a1a"/></dir><dir name="controllers"><file name="IndexController.php" hash="256c45076b06fa9e37bda5b226d085b0"/><file name="WizardController.php" hash="20a361bc4c1b891c0406740e24dde5ab"/></dir><dir name="etc"><file name="config.xml" hash="d6b69e99d14fba4296f9ddf90ae4ec25"/><file name="install.xml" hash="31da31823570f91544558cd61c7fc226"/></dir></dir><dir name="Log"><dir name="Helper"><file name="Data.php" hash="30ae369a1aa4759d45a453609b5dad3c"/></dir><dir name="Model"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Source"><file name="Loglevel.php" hash="9cad9bf72c99c36940a09de844584716"/></dir></dir></dir></dir><file name="Aggregation.php" hash="5f78ce71ac5613af4644991bf532ff0b"/><file name="Cron.php" hash="d8ad0584b0f7ac24aff2ff0d6cc4cd91"/><file name="Customer.php" hash="b5f937ab16fa39630d9109616fbcbf59"/><file name="Log.php" hash="3aeefc6a2d29ec116b3099bd92164549"/><dir name="Mysql4"><file name="Aggregation.php" hash="b97140f67f21e77ede87b020e9517f5e"/><file name="Customer.php" hash="0d514c735d2ac96ab53aef336ec152c6"/><file name="Log.php" hash="f8e29884e1fe0ea14f53216ea119b753"/><dir name="Visitor"><file name="Collection.php" hash="a310d6e6b71610a4282e467a1b4aa41c"/><dir name="Online"><file name="Collection.php" hash="eb1e5990f2e12de88f7b0aa2b1b62dc1"/></dir><file name="Online.php" hash="e9b8b8a9bd0f56a674ef13f26e76173e"/></dir><file name="Visitor.php" hash="4102a469fbf239d68fb7b2ffb9905a22"/></dir><dir name="Resource"><file name="Aggregation.php" hash="4ce2a95673f3e0d6a96b9416adc1435c"/><file name="Customer.php" hash="e6d3b8a6a126f61a432b4a24967bcdfa"/><file name="Log.php" hash="cd9efd22a95cebc176759b75f3479a6b"/><dir name="Visitor"><file name="Collection.php" hash="a71743a48c7c2074c1af4611b8d8e905"/><dir name="Online"><file name="Collection.php" hash="50f686d723180437039b42ea42553113"/></dir><file name="Online.php" hash="b04b67e7d53aaa3cc4e96f12179bc905"/></dir><file name="Visitor.php" hash="55fb2c737e70985f71d03e9b2d5f3f20"/></dir><dir name="Visitor"><file name="Online.php" hash="c8744cb16a9038474c624a4bc0939166"/></dir><file name="Visitor.php" hash="928d3f4c1949c88f8ef947e47affb03d"/></dir><dir name="data"><dir name="log_setup"><file name="data-install-1.6.0.0.php" hash="83ebb5d68ec9c7a74ea170c7ad4d523d"/></dir></dir><dir name="etc"><file name="config.xml" hash="752c4b618caa3b66cba80355f680f61f"/><file name="system.xml" hash="1d8c7a56952b37a70adba7d4005d69e5"/></dir><dir name="sql"><dir name="log_setup"><file name="install-1.6.0.0.php" hash="e4885569c21f047e584cf37ba17af655"/><file name="mysql4-install-0.7.0.php" hash="d3b05b14033df61f11df7029aab003a0"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="b822f8f0e83f17b4853b78b816205ef9"/><file name="mysql4-upgrade-0.7.1-0.7.2.php" hash="44c6c31099f5e75706ef83c6c0d3e0d8"/><file name="mysql4-upgrade-0.7.3-0.7.4.php" hash="942917aad3bd435d793185fb16dfa1f6"/><file name="mysql4-upgrade-0.7.4-0.7.5.php" hash="273e630ff2847772bc2f0680947defa2"/><file name="mysql4-upgrade-0.7.5-0.7.6.php" hash="7dcc3a767526ab0fa4b626538011fd4a"/><file name="mysql4-upgrade-0.7.6-0.7.7.php" hash="9f31ffe2d94a4610da2b65219f42cb2c"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="81747aadb709ceef438bd9005f838da3"/><file name="mysql4-upgrade-1.6.0.0-1.6.1.0.php" hash="88ba8d186737c788be142f3b1f99c732"/><file name="mysql4-upgrade-1.6.1.0-1.6.1.1.php" hash="3ae3748b58bb788c9b1aed2198689aa6"/></dir></dir></dir><dir name="Media"><dir name="Helper"><file name="Data.php" hash="26771745a6464a7198d3e593254ca53d"/></dir><dir name="Model"><dir name="File"><file name="Image.php" hash="963140ba20341c36389eb43c64d54d9b"/></dir><dir name="Image"><dir name="Config"><file name="Interface.php" hash="57b1124aa9c503223ef3f88a5a967e33"/></dir></dir><file name="Image.php" hash="ed0066b2bf423c2cefed47ddb1af4236"/></dir><dir name="etc"><file name="config.xml" hash="1f67f3dc20255bd6e3cd3280969a23a9"/></dir></dir><dir name="Newsletter"><dir name="Block"><file name="Subscribe.php" hash="449ab55028a54ca25d0839b9cfc5b0b8"/></dir><dir name="Helper"><file name="Data.php" hash="14eceb7d1f476c6d32a0bc989e25f655"/></dir><dir name="Model"><file name="Message.php" hash="3cf3c04a138a75d3d21b60aebf14e8bf"/><dir name="Mysql4"><dir name="Problem"><file name="Collection.php" hash="3d949f32e546368ff16e02e088233531"/></dir><file name="Problem.php" hash="85f0b29f8d01c7869a6b436b38b62233"/><dir name="Queue"><file name="Collection.php" hash="361b217b7fd75fe633ac97e1d665da54"/></dir><file name="Queue.php" hash="4ee1b747ca7dbffcaf84a933341b7642"/><dir name="Subscriber"><file name="Collection.php" hash="e7141e4d1f981040b525a268cfbbe0b6"/></dir><file name="Subscriber.php" hash="4d67750c55b9944f29c7c127a1630e8a"/><dir name="Template"><file name="Collection.php" hash="761c9841afb177482318503120ecf6c2"/></dir><file name="Template.php" hash="0b3568e98b4a06b9eacdd19c40e2c35b"/></dir><file name="Observer.php" hash="f01f66d03b935a633b2a47e5177e6753"/><file name="Problem.php" hash="609d83b319fccdfdd963caef0dd98b7a"/><file name="Queue.php" hash="03683875ef4fb937ac4fd7ff32cb3db7"/><dir name="Resource"><dir name="Problem"><file name="Collection.php" hash="b38f7bc74ebaa7bc00b1cc6fc7522d45"/></dir><file name="Problem.php" hash="9759f8034517091ffeff187d0f1cc143"/><dir name="Queue"><file name="Collection.php" hash="3e77b2973b1d1e9ee11b3fffa4a019e3"/></dir><file name="Queue.php" hash="d48763a0ddf55e5acce61a64c5a0e342"/><dir name="Subscriber"><file name="Collection.php" hash="fe744d0af0f83889863470f07021cc2f"/></dir><file name="Subscriber.php" hash="381627f97da58822b99c853fceea89ed"/><dir name="Template"><file name="Collection.php" hash="1d5164328ce7a03fc4425c72e2929f84"/></dir><file name="Template.php" hash="274acf2f5d0e27a4c5190061ac53f19c"/></dir><file name="Session.php" hash="9ba9110e39fe7c83ea5d3d8083a83f40"/><file name="Subscriber.php" hash="b356c4fb473c18c566204ea520ece6ab"/><dir name="Template"><file name="Filter.php" hash="bbed59b047d5680c0980dd5c2d124f36"/></dir><file name="Template.php" hash="3706ee69d89cbf54d6b84622451215e0"/></dir><dir name="controllers"><file name="ManageController.php" hash="f7829644363c4307be49d59b3a480f79"/><file name="SubscriberController.php" hash="6e44a9acf8256e118ee24fbad6f88dab"/></dir><dir name="data"><dir name="newsletter_setup"><file name="data-upgrade-1.6.0.0-1.6.0.1.php" hash="4cf6778e36701416f8c01cf7b109f145"/><file name="data-upgrade-1.6.0.1-1.6.0.2.php" hash="888b0e1cbdd1d55dee197b4d91370314"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="503ba54d7c27fa034797c32c9bd0b7dc"/><file name="config.xml" hash="3c69e269d11922d08bdeaadb6aaadb4e"/><file name="system.xml" hash="7ef3fb951e816306912826b8697a27d4"/></dir><dir name="sql"><dir name="newsletter_setup"><file name="install-1.6.0.0.php" hash="58883f3e4e4c19304b7029df9d5d5e66"/><file name="mysql4-install-0.7.0.php" hash="0c1559a857127c060b1505c3c696b8b4"/><file name="mysql4-install-0.8.0.php" hash="a1544eb72c9a919917611239ef5f1988"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="8efdcb593f2e1007738ef1c18f3d7de1"/><file name="mysql4-upgrade-0.8.0-0.8.1.php" hash="58d80ff20a72380bdff5ea6959131765"/><file name="mysql4-upgrade-0.8.1-0.8.2.php" hash="faa728001981a1495b3fdee678e16249"/><file name="mysql4-upgrade-0.8.2-0.8.3.php" hash="3593430c5b8682e42147ff755846efb2"/><file name="mysql4-upgrade-1.5.9.9-1.6.0.0.php" hash="47e0fb7b1c861432c1b2b3162ab8f9a6"/></dir></dir></dir><dir name="Oauth"><dir name="Block"><dir name="Adminhtml"><dir name="Oauth"><dir name="Admin"><dir name="Token"><file name="Grid.php" hash="42036a33467da4f42d9058ddd47ab959"/></dir><file name="Token.php" hash="e4ce330fec980d7a70e2f88403c0c66e"/></dir><dir name="Authorize"><file name="Button.php" hash="71991ce5a051162fba9687620c5290ba"/></dir><file name="Authorize.php" hash="c6bf2c6799b7198418fe9a7e9d01c683"/><dir name="AuthorizedTokens"><file name="Grid.php" hash="76a530eda3c116a423400284c20f5c9c"/></dir><file name="AuthorizedTokens.php" hash="c9d45c65803f066fa8438be651c285d8"/><dir name="Consumer"><dir name="Edit"><file name="Form.php" hash="2226a3bcda3e8c3d2388135c5472b9db"/></dir><file name="Edit.php" hash="199e0dcb4a0a490de70b964b7b5cdb9b"/><file name="Grid.php" hash="26eb0ea15a6d1d5489f314cec6f661e4"/></dir><file name="Consumer.php" hash="0312def158a954066ad38a714819ba72"/></dir></dir><dir name="Authorize"><file name="Abstract.php" hash="f353f1ba5541b14e93b2b435aca1b545"/><file name="Button.php" hash="346967facd6467c8b10af56bc79eb306"/><file name="ButtonBaseAbstract.php" hash="16c30c4c11dcca0bb6f881c5caaed97c"/></dir><file name="Authorize.php" hash="f97e5456556525395dee90320c4436ad"/><file name="AuthorizeBaseAbstract.php" hash="a465b5fb6fb39b657966057c6ccff3b9"/><dir name="Customer"><dir name="Token"><file name="List.php" hash="3ffbb0ed0553620eb7f3fbe6e9016599"/></dir></dir></dir><file name="Exception.php" hash="f4e95c4ab7bad97ff9577d33ec4ab39a"/><dir name="Helper"><file name="Data.php" hash="9ad92655975ce86bb2df598306c7ea4b"/></dir><dir name="Model"><dir name="Consumer"><dir name="Validator"><file name="KeyLength.php" hash="b4b6e8060e7d3e294f7901dc35725f49"/></dir></dir><file name="Consumer.php" hash="e25d96d06e6d8da85bf5682c52fe9c5c"/><file name="Nonce.php" hash="9769e90a4ed04e55aa61e6d4d2dc36a2"/><file name="Observer.php" hash="c74d4927d19fbddac91433efd6922bd7"/><dir name="Resource"><dir name="Consumer"><file name="Collection.php" hash="71ba2fcde335893d300a9eabcd00c837"/></dir><file name="Consumer.php" hash="fef2c17117346cdbda4a13ad1d76b398"/><dir name="Nonce"><file name="Collection.php" hash="cf540be396de9075c3faad12a0f185a7"/></dir><file name="Nonce.php" hash="1aa04099dd8af352a53941355cb637e6"/><file name="Setup.php" hash="f4e3e2147d0f2a707ba7626f64174fcb"/><dir name="Token"><file name="Collection.php" hash="9b7d966bb3eb546bca3e02e6ad926ec6"/></dir><file name="Token.php" hash="d68c2670ee4466f74bef021fd8d1d2fe"/></dir><file name="Server.php" hash="242f6708ffec74be6f3fb5a1b3344bb8"/><file name="Token.php" hash="a514038f9060a508704578c4fc7687de"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Oauth"><dir name="Admin"><file name="TokenController.php" hash="8e468113385b7a74e3839dad6c498876"/></dir><file name="AuthorizeController.php" hash="7f7733f394041f5a87571c5a8299d740"/><file name="AuthorizedTokensController.php" hash="bcbce949721b421810bde10f13a8908d"/><file name="ConsumerController.php" hash="d65a605940f42aa8ff904d0e1a15017e"/></dir></dir><file name="AuthorizeController.php" hash="911adff8b475a3da8a22adc711522c45"/><dir name="Customer"><file name="TokenController.php" hash="927ebd85e7a1c2f4d131169e4d07ab5e"/></dir><file name="InitiateController.php" hash="a1313c0315c9cf39f182b096013c3600"/><file name="TokenController.php" hash="d823cd1d366e521328961389696e6d76"/></dir><dir name="etc"><file name="adminhtml.xml" hash="14e19f6615abc0e1fa1ad599784fbd1f"/><file name="config.xml" hash="6e8262e104995201cdf1364b6f8ade1d"/><file name="system.xml" hash="6e56da8ad6bcd25048783b50946a8ee2"/></dir><dir name="sql"><dir name="oauth_setup"><file name="install-1.0.0.0.php" hash="1a04a4872f35972c93888c4ac6a3877f"/></dir></dir></dir><dir name="Page"><dir name="Block"><dir name="Html"><file name="Breadcrumbs.php" hash="76af1c2d62a351333dcf0d5b08fec99f"/><file name="CookieNotice.php" hash="d99d2a80b967fbe83f55f23ad52becb2"/><file name="Footer.php" hash="ff6f73f6b42e113499ae3b3064bb430f"/><file name="Head.php" hash="f1ec3c20a89e408bfda4d199b608800f"/><file name="Header.php" hash="b5796cf01cabb982036e16b31c3d802a"/><file name="Notices.php" hash="d73e9b23a0554aa17d65dc9fe9a41f8b"/><file name="Pager.php" hash="cb7e6e7f110b4aae632f042992f13dea"/><file name="Toplinks.php" hash="0ca598406370b7c20b701e1503de60c2"/><dir name="Topmenu"><file name="Renderer.php" hash="c7820b31bfc7f45f214e0443889ef1f9"/></dir><file name="Topmenu.php" hash="d6038fa18c19d3a1790783f1a1cdfc34"/><file name="Welcome.php" hash="e29f11ee527cf91312c1df7a1169a3ec"/><file name="Wrapper.php" hash="728d2084b2ca0112b9d19d3621f376f3"/></dir><file name="Html.php" hash="fb9c260b36a23840c073ee9a8767e994"/><dir name="Js"><file name="Cookie.php" hash="9c3b30a237707c39b54125be0c6c8b95"/><file name="Translate.php" hash="7b301f7fdc537ae8845db32933577ba7"/></dir><file name="Redirect.php" hash="9743b0e148b44690057ce8aef91c32f1"/><file name="Switch.php" hash="2813eb1fcc51fbd521f62ca8841b2503"/><dir name="Template"><file name="Container.php" hash="a47ca180b7c5fe949b77ab548a148a7a"/><dir name="Links"><file name="Block.php" hash="7a36747c24374c252232ae00d1e07e4b"/></dir><file name="Links.php" hash="209d295ad695628faf975c1366e3f70d"/></dir></dir><dir name="Helper"><file name="Data.php" hash="b3237bb0b644e30e9de83668c2c57f75"/><file name="Html.php" hash="d50c1710bf6ac9bd53637016c514736b"/><file name="Layout.php" hash="b2ab663e18bb1617a8c520b0ff87e03c"/></dir><dir name="Model"><file name="Config.php" hash="ce257767900549bccb75fbac14b14b0b"/><dir name="Source"><file name="Layout.php" hash="498643f03bf27d411a95c1885970b4cb"/></dir></dir><dir name="etc"><file name="config.xml" hash="1e437f497da55c56e92332739548ffd6"/><file name="system.xml" hash="35f4c6faed23af9b665de3933c674820"/></dir></dir><dir name="PageCache"><dir name="Block"><dir name="Adminhtml"><dir name="Cache"><file name="Additional.php" hash="3dba80fb53e5a4e05ab038242a5062a6"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="82b38eb4d6f3326dced9558236f05b84"/></dir><dir name="Model"><dir name="Control"><file name="Interface.php" hash="32465287fd5ad49a5373b2f49c6d7787"/><file name="Zend.php" hash="ae15c24b95b8a22abb718c2615d1501a"/></dir><file name="Observer.php" hash="1cc8787360b74db204bc992a9961a810"/><dir name="System"><dir name="Config"><dir name="Source"><file name="Controls.php" hash="da7eb2b87b1c384efa2acab229a831e0"/></dir></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="PageCacheController.php" hash="8253cb13731f25fdc7054db569def5de"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="cf82072d1f673dd4f2cb8298d944b06a"/><file name="config.xml" hash="c4fc5364d36f687cf8ae0c9ebfcd5d07"/><file name="system.xml" hash="d8f45c4bac9d0d1f705c6bcd46c2ca57"/></dir></dir><dir name="Paygate"><dir name="Block"><dir name="Authorizenet"><dir name="Form"><file name="Cc.php" hash="3a748028fe3f5b5d5f066c448f419fba"/></dir><dir name="Info"><file name="Cc.php" hash="a78355ba5a73bc8f26fccf2373cc2ae9"/></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="e9561c30aa2df8e942f466c827656736"/></dir><dir name="Model"><dir name="Authorizenet"><file name="Cards.php" hash="668c87965a89ec7ad2aa5fd30cdc4ca3"/><file name="Debug.php" hash="8618355606cd3814e802dc10c700b41c"/><file name="Request.php" hash="c1f4b4089359478b40a1b6a9e23351c2"/><file name="Result.php" hash="bf8a7bbce2821c12d49cbf7984d23b99"/><dir name="Source"><file name="Cctype.php" hash="71c90de1db4b2238bc322349f070730c"/><file name="PaymentAction.php" hash="83e8c00869bf0234049555f0f22c8ebe"/></dir></dir><file name="Authorizenet.php" hash="3b79d254814dcb1a5ff8815ea38594a1"/><dir name="Mysql4"><dir name="Authorizenet"><dir name="Debug"><file name="Collection.php" hash="213ce4998f43bc900c8df45cfd5100a3"/></dir><file name="Debug.php" hash="b25abe86de7da9d31b0e6e2fbebca46e"/></dir></dir><dir name="Resource"><dir name="Authorizenet"><dir name="Debug"><file name="Collection.php" hash="96579efd296c9747bc69ddb93563c7c7"/></dir><file name="Debug.php" hash="8b16f0e8c62f27c974a630174b445e9e"/></dir></dir></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Paygate"><dir name="Authorizenet"><file name="PaymentController.php" hash="0786c25427d18f4c42d7e0dbeeecce44"/></dir></dir></dir><dir name="Authorizenet"><file name="PaymentController.php" hash="cba52139f51e9c6036da7a9d43000559"/></dir></dir><dir name="etc"><file name="config.xml" hash="7d9c108a4f7461e38e453595ae99e166"/><file name="system.xml" hash="4c7ad997873f413974b8d7acda17fe00"/></dir><dir name="sql"><dir name="paygate_setup"><file name="install-1.6.0.0.php" hash="b42125deb1bb3e94a0b964bce550a2db"/><file name="mysql4-data-upgrade-0.7.0-0.7.1.php" hash="4f22fe3689b223adc5818e70691f671c"/><file name="mysql4-install-0.7.0.php" hash="3e2e04f85dfdf7b9fa7697904035e86e"/><file name="mysql4-upgrade-0.7.0-0.7.1.php" hash="48c76ca9ce36054b194288542f4bbd25"/></dir></dir></dir><dir name="Payment"><dir name="Block"><dir name="Catalog"><dir name="Product"><dir name="View"><file name="Profile.php" hash="4cbf4eb8350c8a40f01970c7960122de"/></dir></dir></dir><dir name="Form"><file name="Banktransfer.php" hash="ca8b755ddb73aeb8b2f35b9f75338a0f"/><file name="Cashondelivery.php" hash="ff169ed043cc386faf01e8fe15bf3022"/><file name="Cc.php" hash="2389f3a83069e0643b4e750ba4e8e44f"/><file name="Ccsave.php" hash="5ff8d24e9e6a4297b8e4f687368da407"/><file name="Checkmo.php" hash="bdc8bb2c6ba10b7e9957e8e521e90c12"/><file name="Container.php" hash="cec07bf2ca7b4b2bb3a0baa0ffb9f2c1"/><file name="Purchaseorder.php" hash="137da51f5fde7f115c2a85a5b36990a4"/></dir><file name="Form.php" hash="dd368566c7eb6919ad947e78cbe1859e"/><dir name="Info"><file name="Banktransfer.php" hash="ecf02d9d5721675e2975d7dfec284403"/><file name="Cc.php" hash="99dc5f4df2287ab2c22bdc58542f074b"/><file name="Ccsave.php" hash="082a31b849bbb55a59190e02893a75d5"/><file name="Checkmo.php" hash="64b822848cc97dcd27bd0bd3f01e1656"/><file name="Container.php" hash="2ee3f38b5cd1f6fa43b95a858d921708"/><file name="Purchaseorder.php" hash="0fe351afef830b891f9bfb105c44d030"/></dir><file name="Info.php" hash="f71e6f15698f402e9189ca9e5bc670b4"/></dir><file name="Exception.php" hash="beb2d8551ade49853e5437659b614c6c"/><dir name="Helper"><file name="Data.php" hash="7b268b8060a3e70aa39971ef7258a253"/></dir><dir name="Model"><dir name="Billing"><dir name="Agreement"><file name="MethodInterface.php" hash="424553e9cc4fe2fa6befb6401bcf1006"/></dir><file name="AgreementAbstract.php" hash="4043c168c28cfb9a86f15bdde1aa4f33"/></dir><file name="Config.php" hash="195db58e611647682704767e965799e9"/><dir name="Info"><file name="Exception.php" hash="fc52e6ca869415f8a26d7f36a5752f60"/></dir><file name="Info.php" hash="38f6883ca27e92501ca87f8c5310c983"/><dir name="Method"><file name="Abstract.php" hash="7fcbd59cc63e90c83a8ac304b21fb959"/><file name="Banktransfer.php" hash="fb540e43ac0f7fd3bd1635e4762fdbd4"/><file name="Cashondelivery.php" hash="b09ee08f6805fbef82daed86b26548d4"/><file name="Cc.php" hash="84f1de4c65ee35656911a740549912a1"/><file name="Ccsave.php" hash="6df7df82d30724aacb47c6447cb1fcac"/><file name="Checkmo.php" hash="20737ca73dc12889ac107605ec7d27ca"/><file name="Free.php" hash="0b771056ddecea00184fe0c141550e47"/><file name="Purchaseorder.php" hash="a7b2b57eb818f50e3508c7838ad211be"/></dir><file name="Observer.php" hash="d6337e367754f1da2328f9907c9a17e6"/><dir name="Paygate"><file name="Request.php" hash="86a6803dfe434c5d7afc2fd7b27cc3db"/><file name="Result.php" hash="4f715aa54c36a891099828332fc68aee"/></dir><dir name="Recurring"><dir name="Profile"><file name="MethodInterface.php" hash="d434add969bedb69762a5be4866f54d3"/></dir><file name="Profile.php" hash="f07c2863b3b89472e76678fca27cdf0c"/></dir><dir name="Source"><file name="Cctype.php" hash="8941383914fc870894a525c394311e10"/><file name="Invoice.php" hash="bbb8f9293ea7928c47007f7c05066b63"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="7a5adf8c1263e48cf2f9071c5195ee2a"/><file name="config.xml" hash="74b9d5cb7149617310b34c1f59542126"/><file name="system.xml" hash="adcf3b2b91219f1f5526b0f70849f65c"/></dir></dir><dir name="Paypal"><dir name="Block"><dir name="Adminhtml"><dir name="Settlement"><dir name="Details"><file name="Form.php" hash="7a5470652fc38ab2c5918a16becdf54f"/></dir><file name="Details.php" hash="49132e87516ed2cd05aa80f7a4afbcb2"/><dir name="Report"><file name="Grid.php" hash="3e6dda1e1a4aadbd6007772f17cd35dc"/></dir><file name="Report.php" hash="c3104724d674c1317dc23146436dc33e"/></dir><dir name="System"><dir name="Config"><file name="ApiWizard.php" hash="237edd4428f23a4d0824161159031907"/><file name="BmlApiWizard.php" hash="0d02c63e9dcd5d8f92abbf6a7435e9d2"/><dir name="Field"><file name="Country.php" hash="194bfb6c4fd11f9eedaa2df850a243ba"/><file name="Hidden.php" hash="fc1085a05c3570cc1345d82bc6f46153"/><file name="SolutionType.php" hash="c199b755054bed63b98bcfe870ee24c3"/></dir><dir name="Fieldset"><file name="Deprecated.php" hash="75ccac6c4a42d1d89bd4453afc5d7936"/><file name="Expanded.php" hash="f6979eb0dec53d903b255cb81fa64e7d"/><file name="Global.php" hash="b243db32fddae60eda87b9cf8615983d"/><file name="Group.php" hash="8fc7543ec871e4bc58965ec050f19f9d"/><file name="Hint.php" hash="849288a88f8ecff4c66bd9b7f39f5f73"/><file name="Location.php" hash="6bed7b43656d2201e15fed7c4ee91372"/><file name="PathDependent.php" hash="e4a8685376fa5318336d2285b727cb6d"/><file name="Payment.php" hash="202f147418cb85a3d895f96b76eeb412"/><file name="Store.php" hash="8cf7dfe2261b400034ab9e8d45b31e49"/></dir><dir name="Payflowlink"><file name="Advanced.php" hash="dbb8abc9fc791cd9e4f9d8b0db1a5799"/><file name="Info.php" hash="0b570584ebe08a45704445fb84b7e64d"/></dir></dir></dir></dir><dir name="Bml"><file name="Banners.php" hash="9ce71c3a54451fd06f8a58d6dfa94774"/><file name="Form.php" hash="8861e608e012ad0d129cbaacce543fa4"/></dir><dir name="Express"><file name="Form.php" hash="2dfe96f6ec89fa9cc6efba0d71efcb27"/><dir name="Review"><file name="Billing.php" hash="f87c07fbe423ba3cfbae38b0359f8e9d"/><file name="Details.php" hash="41e9c8426c47365611cfdd8c2cba6537"/><file name="Shipping.php" hash="87ab76371ff5d8cf3cff2adf2d864347"/></dir><file name="Review.php" hash="1b9840c465a17813701faf8c4307315f"/><file name="Shortcut.php" hash="fd29062b729328ca291f45c5ad541773"/></dir><dir name="Hosted"><dir name="Pro"><file name="Form.php" hash="fb0a5f67251cc199cd8ce40b4e543003"/><file name="Iframe.php" hash="6ad033d68b559ae0eeb0f4ce580368aa"/><file name="Info.php" hash="88de1e67a4cf09a19b18db35594e2f83"/></dir></dir><file name="Iframe.php" hash="130b950fb3db789617577e253f44d0d4"/><file name="Logo.php" hash="01ad9e06cf747d11e56fb1232191fa97"/><dir name="Payflow"><dir name="Advanced"><file name="Form.php" hash="e27e11120227c4317975d53d6ec87a07"/><file name="Iframe.php" hash="dbdcf942fcca65ce33275ec2546c4cfc"/><file name="Info.php" hash="c653c07418e1b95851a35dfa6167c703"/><file name="Review.php" hash="fc88e4f21988be8c6df7d6061c305c40"/></dir><dir name="Link"><file name="Form.php" hash="3aa3d74747d840e18d4573e68c7a7986"/><file name="Iframe.php" hash="da1e91b2b849623f4b12bd7f64bcbd04"/><file name="Info.php" hash="a0870dd47d4228d2d425e4a3f5f27f2e"/><file name="Review.php" hash="13c8891d5e0cefda15c57b6e402bf6ff"/></dir></dir><dir name="Payment"><file name="Info.php" hash="7f2d80e99718b0c94a08347d73a64da4"/></dir><dir name="Standard"><file name="Form.php" hash="d4bd08c533fe4c4db3daab3bf9360860"/><file name="Redirect.php" hash="36d3646e7d3e4013847ff219e3f9e3db"/></dir></dir><dir name="Controller"><dir name="Express"><file name="Abstract.php" hash="4695d1fac56793866c282316b3d33917"/></dir></dir><file name="Exception.php" hash="7dee8f2f62ac73a1c4e25b12fb85a3fb"/><dir name="Helper"><file name="Checkout.php" hash="f71e0d44157c5c7c710f768317a418b0"/><file name="Data.php" hash="0e4a617f7985832bca600b52de577278"/><file name="Hss.php" hash="1643e958dd97f7b024e5412d82e0de3c"/></dir><dir name="Model"><dir name="Api"><file name="Abstract.php" hash="5c289e9731993409f86cee3b2919f4a8"/><file name="Nvp.php" hash="d62ad239a8f1ceb38f1dad77986f40d6"/><file name="ProcessableException.php" hash="4313e637008571be2bd2d86f6a560112"/><file name="Standard.php" hash="986fd1dec22bc55cb84ecf75c7bc3729"/></dir><file name="Bml.php" hash="ac3c55752b8eb272c9481fc11521bb0b"/><file name="Cart.php" hash="d6979cb0fe3174d7d70bbf26474b3a16"/><file name="Cert.php" hash="8b23417ca6e231a0ec8f89a6e769f01e"/><file name="Config.php" hash="d356e412f4eca6207004674303791ad6"/><file name="Direct.php" hash="04692b3598ead300783c59dc664e5ad5"/><dir name="Express"><file name="Checkout.php" hash="ad1ee11ffcf63815cea1c988f8679697"/></dir><file name="Express.php" hash="553e93873ac88d39e98b5a01ef0e26f2"/><dir name="Hostedpro"><file name="Request.php" hash="4aaa99812f8ba31c0e2aee9c18d68671"/></dir><file name="Hostedpro.php" hash="14ae27c0f8a9d9c2ec1525ec9b06be7c"/><file name="Info.php" hash="31e9a1d2d63b0d826079a4c74a4779d2"/><file name="Ipn.php" hash="5a216c988a5b749bcda